execute method
Future<ToolCallOutput>
execute(
- ToolContext context,
- String name,
- ToolInput input
)
inherited
Implementation
Future<ToolCallOutput> execute(ToolContext context, String name, ToolInput input) async {
final tool = getTool(name);
if (tool is FunctionTool) {
if (input is! ToolContentInput) {
throw Exception("tool '$name' does not accept streamed input");
}
final arguments = _decodeFunctionToolArguments(toolName: name, input: input.content);
final response = await tool.execute(context, arguments);
return ToolContentOutput(response);
}
if (tool is ContentTool) {
return await tool.execute(context, input);
}
throw Exception("tool '$name' has unsupported type");
}