diff options
| author | Silvio Junior <[email protected]> | 2025-08-01 11:20:08 -0400 |
|---|---|---|
| committer | GitHub <[email protected]> | 2025-08-01 15:20:08 +0000 |
| commit | 7748e56153159373ba4b9bf0f937ed476504b6c7 (patch) | |
| tree | b43ac3c1634acc326f791d503478175c30b3ea36 /packages/cli/src | |
| parent | e126d2fcd97221df7de63df09bc0eba386314781 (diff) | |
[Fix Telemetry for tool calls, PR 1/n] Propagate tool reported errors via ToolCallResponseInfo and ToolResult (#5222)
Diffstat (limited to 'packages/cli/src')
| -rw-r--r-- | packages/cli/src/nonInteractiveCli.test.ts | 2 | ||||
| -rw-r--r-- | packages/cli/src/nonInteractiveCli.ts | 7 |
2 files changed, 4 insertions, 5 deletions
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) { |
