summaryrefslogtreecommitdiff
path: root/packages/cli/src
diff options
context:
space:
mode:
authorJerop Kipruto <[email protected]>2025-06-13 03:44:17 -0400
committerGitHub <[email protected]>2025-06-13 03:44:17 -0400
commitb20c8389f3f483f3972c254ec97fff4004b7c75f (patch)
tree2afe57f8f7232e3ba7c9dde4cdfd3ee510bb994a /packages/cli/src
parent8bb6eca91548330f03feeedfa36372edf8aca1c6 (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.tsx6
-rw-r--r--packages/cli/src/nonInteractiveCli.ts6
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();
+ }
}
}