executeToolSafe function

Future<ToolResult> executeToolSafe(
  1. Tool tool,
  2. Map<String, dynamic> input, {
  3. Duration timeout = const Duration(minutes: 2),
})

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');
  }
}