From 7748e56153159373ba4b9bf0f937ed476504b6c7 Mon Sep 17 00:00:00 2001 From: Silvio Junior Date: Fri, 1 Aug 2025 11:20:08 -0400 Subject: [Fix Telemetry for tool calls, PR 1/n] Propagate tool reported errors via ToolCallResponseInfo and ToolResult (#5222) --- packages/cli/src/nonInteractiveCli.test.ts | 2 ++ packages/cli/src/nonInteractiveCli.ts | 7 ++----- 2 files changed, 4 insertions(+), 5 deletions(-) (limited to 'packages/cli/src') diff --git a/packages/cli/src/nonInteractiveCli.test.ts b/packages/cli/src/nonInteractiveCli.test.ts index a0fc6f9f..938eb4e7 100644 --- a/packages/cli/src/nonInteractiveCli.test.ts +++ b/packages/cli/src/nonInteractiveCli.test.ts @@ -8,6 +8,7 @@ import { Config, executeToolCall, ToolRegistry, + ToolErrorType, shutdownTelemetry, GeminiEventType, ServerGeminiStreamEvent, @@ -161,6 +162,7 @@ describe('runNonInteractive', () => { }; mockCoreExecuteToolCall.mockResolvedValue({ error: new Error('Tool execution failed badly'), + errorType: ToolErrorType.UNHANDLED_EXCEPTION, }); mockGeminiClient.sendMessageStream.mockReturnValue( createStreamFromEvents([toolCallEvent]), diff --git a/packages/cli/src/nonInteractiveCli.ts b/packages/cli/src/nonInteractiveCli.ts index 1d0a7f3d..8e573134 100644 --- a/packages/cli/src/nonInteractiveCli.ts +++ b/packages/cli/src/nonInteractiveCli.ts @@ -12,6 +12,7 @@ import { shutdownTelemetry, isTelemetrySdkInitialized, GeminiEventType, + ToolErrorType, } from '@google/gemini-cli-core'; import { Content, Part, FunctionCall } from '@google/genai'; @@ -97,15 +98,11 @@ export async function runNonInteractive( ); if (toolResponse.error) { - const isToolNotFound = toolResponse.error.message.includes( - 'not found in registry', - ); console.error( `Error executing tool ${fc.name}: ${toolResponse.resultDisplay || toolResponse.error.message}`, ); - if (!isToolNotFound) { + if (toolResponse.errorType === ToolErrorType.UNHANDLED_EXCEPTION) process.exit(1); - } } if (toolResponse.responseParts) { -- cgit v1.2.3