executeClientToolCall method
Future<Content>
executeClientToolCall(
- AgentClientToolCallRequested request
)
Implementation
Future<Content> executeClientToolCall(AgentClientToolCallRequested request) async {
for (final toolkit in _clientToolkits.values) {
final hasTool = toolkit.tools.any((tool) => tool.name == request.tool);
if (!hasTool) {
continue;
}
try {
final output = await toolkit.execute(
const ToolContext(),
request.tool,
ToolContentInput(JsonContent(json: Map<String, dynamic>.from(request.arguments))),
);
if (output is ToolContentOutput) {
return output.content;
}
return ErrorContent(text: "Client toolkit '${request.tool}' returned a streaming response, which is not supported.");
} catch (error) {
return ErrorContent(text: "Client toolkit '${request.tool}' failed: $error");
}
}
return ErrorContent(text: "Client toolkit '${request.tool}' is not registered.");
}