summaryrefslogtreecommitdiff
path: root/packages/cli/src
diff options
context:
space:
mode:
authorSilvio Junior <[email protected]>2025-08-01 11:20:08 -0400
committerGitHub <[email protected]>2025-08-01 15:20:08 +0000
commit7748e56153159373ba4b9bf0f937ed476504b6c7 (patch)
treeb43ac3c1634acc326f791d503478175c30b3ea36 /packages/cli/src
parente126d2fcd97221df7de63df09bc0eba386314781 (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.ts2
-rw-r--r--packages/cli/src/nonInteractiveCli.ts7
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) {