execute method

  1. @override
Future<ToolResult> execute(
  1. Map<String, dynamic> input
)
override

Execute the tool with the given input.

Implementation

@override
Future<ToolResult> execute(Map<String, dynamic> input) async {
  final validation = validateInput(input);
  if (!validation.isValid) return ToolResult.error(validation.error!);

  final parsed = SubagentInput.fromJson(input);
  if (spawner != null) return spawner!(parsed);

  // Stub: real implementation would spawn an agent session.
  final agentId = '${parsed.name}_${DateTime.now().millisecondsSinceEpoch}';
  return ToolResult.success(
    'Sub-agent "$agentId" created with role "${parsed.role}". '
    'Task queued: ${parsed.task}',
    metadata: {'agent_id': agentId, 'status': 'queued'},
  );
}