mirror of
https://github.com/google-gemini/gemini-cli.git
synced 2026-04-23 11:34:44 -07:00
feat(headless): gate diagnostic output behind --debug flag
Diagnostic monitoring data (auth_method, user_tier, api_requests, api_errors, retry_count, RETRY events, LOOP_DETECTED events, and stderr warnings) is now only emitted when --debug / -d is passed. Without the flag, headless output is identical to before — no new fields, no new events, no stderr noise. This keeps default output clean for piped workflows while making diagnostics available on demand.
This commit is contained in:
@@ -39,25 +39,21 @@ export class StreamJsonFormatter {
|
||||
convertToStreamStats(
|
||||
metrics: SessionMetrics,
|
||||
durationMs: number,
|
||||
retryCount?: number,
|
||||
options?: { retryCount?: number; includeDiagnostics?: boolean },
|
||||
): StreamStats {
|
||||
let totalTokens = 0;
|
||||
let inputTokens = 0;
|
||||
let outputTokens = 0;
|
||||
let cached = 0;
|
||||
let input = 0;
|
||||
let apiRequests = 0;
|
||||
let apiErrors = 0;
|
||||
|
||||
// Aggregate token counts and API stats across all models
|
||||
// Aggregate token counts across all models
|
||||
for (const modelMetrics of Object.values(metrics.models)) {
|
||||
totalTokens += modelMetrics.tokens.total;
|
||||
inputTokens += modelMetrics.tokens.prompt;
|
||||
outputTokens += modelMetrics.tokens.candidates;
|
||||
cached += modelMetrics.tokens.cached;
|
||||
input += modelMetrics.tokens.input;
|
||||
apiRequests += modelMetrics.api.totalRequests;
|
||||
apiErrors += modelMetrics.api.totalErrors;
|
||||
}
|
||||
|
||||
const stats: StreamStats = {
|
||||
@@ -68,12 +64,21 @@ export class StreamJsonFormatter {
|
||||
input,
|
||||
duration_ms: durationMs,
|
||||
tool_calls: metrics.tools.totalCalls,
|
||||
api_requests: apiRequests,
|
||||
api_errors: apiErrors,
|
||||
};
|
||||
|
||||
if (retryCount && retryCount > 0) {
|
||||
stats.retry_count = retryCount;
|
||||
if (options?.includeDiagnostics) {
|
||||
let apiRequests = 0;
|
||||
let apiErrors = 0;
|
||||
for (const modelMetrics of Object.values(metrics.models)) {
|
||||
apiRequests += modelMetrics.api.totalRequests;
|
||||
apiErrors += modelMetrics.api.totalErrors;
|
||||
}
|
||||
stats.api_requests = apiRequests;
|
||||
stats.api_errors = apiErrors;
|
||||
|
||||
if (options.retryCount && options.retryCount > 0) {
|
||||
stats.retry_count = options.retryCount;
|
||||
}
|
||||
}
|
||||
|
||||
return stats;
|
||||
|
||||
Reference in New Issue
Block a user