executeToolSafe function
Execute a tool with timeout and error handling.
Implementation
Future<ToolResult> executeToolSafe(
Tool tool,
Map<String, dynamic> input, {
Duration timeout = const Duration(minutes: 2),
}) async {
try {
return await tool.execute(input).timeout(timeout);
} on TimeoutException {
return ToolResult.error(
'Tool execution timed out after ${timeout.inSeconds}s.',
);
} catch (e) {
return ToolResult.error('$e');
}
}