getPrompt method

  1. @override
Future<List<ContentBlock>> getPrompt(
  1. String args,
  2. ToolUseContext context
)
override

Build the prompt content for this command.

Implementation

@override
Future<List<ContentBlock>> getPrompt(
  String args,
  ToolUseContext context,
) async {
  var prompt = skill.promptContent;

  // Substitute $ARGUMENTS placeholder
  if (args.isNotEmpty) {
    prompt = prompt.replaceAll(r'$ARGUMENTS', args);
  }

  // Substitute named arguments
  if (skill.argNames != null && args.isNotEmpty) {
    final parts = args.split(RegExp(r'\s+'));
    for (var i = 0; i < skill.argNames!.length && i < parts.length; i++) {
      prompt = prompt.replaceAll('\$${skill.argNames![i]}', parts[i]);
    }
  }

  return [TextBlock(prompt)];
}