execute method

  1. @override
Future<MCPToolResult> execute(
  1. Map<String, dynamic> arguments
)
override

Executes the tool actions using the supplied LLM arguments.

Implementation

@override
Future<MCPToolResult> execute(Map<String, dynamic> arguments) async {
  final assignee = arguments['assignee'] as String? ?? 'clone';
  final task = arguments['task'] as String? ?? '';
  final enabledTools = (arguments['enabledTools'] as List?)?.cast<String>();

  if (task.trim().isEmpty) {
    return MCPToolResult.error('Task description cannot be empty.');
  }

  try {
    final result = await runner(
      assignee: assignee,
      task: task,
      enabledTools: enabledTools,
    );
    return MCPToolResult.text(result);
  } catch (e) {
    return MCPToolResult.error('Failed to execute delegated sub-task: $e');
  }
}