diff options
| author | Jerop Kipruto <[email protected]> | 2025-06-13 03:44:17 -0400 |
|---|---|---|
| committer | GitHub <[email protected]> | 2025-06-13 03:44:17 -0400 |
| commit | b20c8389f3f483f3972c254ec97fff4004b7c75f (patch) | |
| tree | 2afe57f8f7232e3ba7c9dde4cdfd3ee510bb994a /packages/cli/src | |
| parent | 8bb6eca91548330f03feeedfa36372edf8aca1c6 (diff) | |
Handle telemetry in non-interactive mode (#1002)
Changes:
- Ensure proper shutdown in non-interactive mode
- Ensures the initial user prompt is logged in non-interactive mode
- Improve telemetry for streaming - handle chunks and input token count is now alongside other token counts in response
To test:
- Follow instructions in https://github.com/google-gemini/gemini-cli/blob/main/docs/core/telemetry.md#google-cloud
- Run CLI in non-interactive mode and observe logs/metrics in GCP Logs Explorer and Metrics Explorer
#750
Diffstat (limited to 'packages/cli/src')
| -rw-r--r-- | packages/cli/src/gemini.tsx | 6 | ||||
| -rw-r--r-- | packages/cli/src/nonInteractiveCli.ts | 6 |
2 files changed, 12 insertions, 0 deletions
diff --git a/packages/cli/src/gemini.tsx b/packages/cli/src/gemini.tsx index 0478a40e..34ec3bd0 100644 --- a/packages/cli/src/gemini.tsx +++ b/packages/cli/src/gemini.tsx @@ -33,6 +33,7 @@ import { WebSearchTool, WriteFileTool, sessionId, + logUserPrompt, } from '@gemini-cli/core'; export async function main() { @@ -120,6 +121,11 @@ export async function main() { process.exit(1); } + logUserPrompt(config, { + prompt: input, + prompt_length: input.length, + }); + // Non-interactive mode handled by runNonInteractive const nonInteractiveConfig = await loadNonInteractiveConfig( config, diff --git a/packages/cli/src/nonInteractiveCli.ts b/packages/cli/src/nonInteractiveCli.ts index 069a7be8..bf60011f 100644 --- a/packages/cli/src/nonInteractiveCli.ts +++ b/packages/cli/src/nonInteractiveCli.ts @@ -9,6 +9,8 @@ import { ToolCallRequestInfo, executeToolCall, ToolRegistry, + shutdownTelemetry, + isTelemetrySdkInitialized, } from '@gemini-cli/core'; import { Content, @@ -119,5 +121,9 @@ export async function runNonInteractive( } catch (error) { console.error('Error processing input:', error); process.exit(1); + } finally { + if (isTelemetrySdkInitialized()) { + await shutdownTelemetry(); + } } } |
