summaryrefslogtreecommitdiff
path: root/packages/core/src
diff options
context:
space:
mode:
authorJacob Richman <[email protected]>2025-08-13 11:13:18 -0700
committerGitHub <[email protected]>2025-08-13 18:13:18 +0000
commite4473a9007e7555809ec9e4087be636e8aadf017 (patch)
tree9273204712b0eaf922589a473128aa886e0c207b /packages/core/src
parent38876b738f4c9ef8bd1b839d5e33580486e9a089 (diff)
Revert "chore(cli/slashcommands): Add status enum to SlashCommandEvent telemetry" (#6161)
Diffstat (limited to 'packages/core/src')
-rw-r--r--packages/core/src/telemetry/clearcut-logger/clearcut-logger.ts7
-rw-r--r--packages/core/src/telemetry/clearcut-logger/event-metadata-key.ts3
-rw-r--r--packages/core/src/telemetry/index.ts2
-rw-r--r--packages/core/src/telemetry/types.ts81
4 files changed, 30 insertions, 63 deletions
diff --git a/packages/core/src/telemetry/clearcut-logger/clearcut-logger.ts b/packages/core/src/telemetry/clearcut-logger/clearcut-logger.ts
index 9450f06d..b7be2af7 100644
--- a/packages/core/src/telemetry/clearcut-logger/clearcut-logger.ts
+++ b/packages/core/src/telemetry/clearcut-logger/clearcut-logger.ts
@@ -639,13 +639,6 @@ export class ClearcutLogger {
});
}
- if (event.status) {
- data.push({
- gemini_cli_key: EventMetadataKey.GEMINI_CLI_SLASH_COMMAND_STATUS,
- value: JSON.stringify(event.status),
- });
- }
-
this.enqueueLogEvent(this.createLogEvent(slash_command_event_name, data));
this.flushIfNeeded();
}
diff --git a/packages/core/src/telemetry/clearcut-logger/event-metadata-key.ts b/packages/core/src/telemetry/clearcut-logger/event-metadata-key.ts
index cb4172ed..314e61a8 100644
--- a/packages/core/src/telemetry/clearcut-logger/event-metadata-key.ts
+++ b/packages/core/src/telemetry/clearcut-logger/event-metadata-key.ts
@@ -174,9 +174,6 @@ export enum EventMetadataKey {
// Logs the subcommand of the slash command.
GEMINI_CLI_SLASH_COMMAND_SUBCOMMAND = 42,
- // Logs the status of the slash command (e.g. 'success', 'error')
- GEMINI_CLI_SLASH_COMMAND_STATUS = 51,
-
// ==========================================================================
// Next Speaker Check Event Keys
// ===========================================================================
diff --git a/packages/core/src/telemetry/index.ts b/packages/core/src/telemetry/index.ts
index 0f343ab3..33781b87 100644
--- a/packages/core/src/telemetry/index.ts
+++ b/packages/core/src/telemetry/index.ts
@@ -41,8 +41,6 @@ export {
FlashFallbackEvent,
SlashCommandEvent,
KittySequenceOverflowEvent,
- makeSlashCommandEvent,
- SlashCommandStatus,
} from './types.js';
export { SpanStatusCode, ValueType } from '@opentelemetry/api';
export { SemanticAttributes } from '@opentelemetry/semantic-conventions';
diff --git a/packages/core/src/telemetry/types.ts b/packages/core/src/telemetry/types.ts
index b07c4ca4..2b10280d 100644
--- a/packages/core/src/telemetry/types.ts
+++ b/packages/core/src/telemetry/types.ts
@@ -14,17 +14,9 @@ import {
ToolCallDecision,
} from './tool-call-decision.js';
-interface BaseTelemetryEvent {
- 'event.name': string;
- /** Current timestamp in ISO 8601 format */
- 'event.timestamp': string;
-}
-
-type CommonFields = keyof BaseTelemetryEvent;
-
-export class StartSessionEvent implements BaseTelemetryEvent {
+export class StartSessionEvent {
'event.name': 'cli_config';
- 'event.timestamp': string;
+ 'event.timestamp': string; // ISO 8601
model: string;
embedding_model: string;
sandbox_enabled: boolean;
@@ -68,9 +60,9 @@ export class StartSessionEvent implements BaseTelemetryEvent {
}
}
-export class EndSessionEvent implements BaseTelemetryEvent {
+export class EndSessionEvent {
'event.name': 'end_session';
- 'event.timestamp': string;
+ 'event.timestamp': string; // ISO 8601
session_id?: string;
constructor(config?: Config) {
@@ -80,9 +72,9 @@ export class EndSessionEvent implements BaseTelemetryEvent {
}
}
-export class UserPromptEvent implements BaseTelemetryEvent {
+export class UserPromptEvent {
'event.name': 'user_prompt';
- 'event.timestamp': string;
+ 'event.timestamp': string; // ISO 8601
prompt_length: number;
prompt_id: string;
auth_type?: string;
@@ -103,9 +95,9 @@ export class UserPromptEvent implements BaseTelemetryEvent {
}
}
-export class ToolCallEvent implements BaseTelemetryEvent {
+export class ToolCallEvent {
'event.name': 'tool_call';
- 'event.timestamp': string;
+ 'event.timestamp': string; // ISO 8601
function_name: string;
function_args: Record<string, unknown>;
duration_ms: number;
@@ -150,9 +142,9 @@ export class ToolCallEvent implements BaseTelemetryEvent {
}
}
-export class ApiRequestEvent implements BaseTelemetryEvent {
+export class ApiRequestEvent {
'event.name': 'api_request';
- 'event.timestamp': string;
+ 'event.timestamp': string; // ISO 8601
model: string;
prompt_id: string;
request_text?: string;
@@ -166,9 +158,9 @@ export class ApiRequestEvent implements BaseTelemetryEvent {
}
}
-export class ApiErrorEvent implements BaseTelemetryEvent {
+export class ApiErrorEvent {
'event.name': 'api_error';
- 'event.timestamp': string;
+ 'event.timestamp': string; // ISO 8601
model: string;
error: string;
error_type?: string;
@@ -198,9 +190,9 @@ export class ApiErrorEvent implements BaseTelemetryEvent {
}
}
-export class ApiResponseEvent implements BaseTelemetryEvent {
+export class ApiResponseEvent {
'event.name': 'api_response';
- 'event.timestamp': string;
+ 'event.timestamp': string; // ISO 8601
model: string;
status_code?: number | string;
duration_ms: number;
@@ -242,9 +234,9 @@ export class ApiResponseEvent implements BaseTelemetryEvent {
}
}
-export class FlashFallbackEvent implements BaseTelemetryEvent {
+export class FlashFallbackEvent {
'event.name': 'flash_fallback';
- 'event.timestamp': string;
+ 'event.timestamp': string; // ISO 8601
auth_type: string;
constructor(auth_type: string) {
@@ -260,9 +252,9 @@ export enum LoopType {
LLM_DETECTED_LOOP = 'llm_detected_loop',
}
-export class LoopDetectedEvent implements BaseTelemetryEvent {
+export class LoopDetectedEvent {
'event.name': 'loop_detected';
- 'event.timestamp': string;
+ 'event.timestamp': string; // ISO 8601
loop_type: LoopType;
prompt_id: string;
@@ -274,9 +266,9 @@ export class LoopDetectedEvent implements BaseTelemetryEvent {
}
}
-export class NextSpeakerCheckEvent implements BaseTelemetryEvent {
+export class NextSpeakerCheckEvent {
'event.name': 'next_speaker_check';
- 'event.timestamp': string;
+ 'event.timestamp': string; // ISO 8601
prompt_id: string;
finish_reason: string;
result: string;
@@ -290,36 +282,23 @@ export class NextSpeakerCheckEvent implements BaseTelemetryEvent {
}
}
-export interface SlashCommandEvent extends BaseTelemetryEvent {
+export class SlashCommandEvent {
'event.name': 'slash_command';
'event.timestamp': string; // ISO 8106
command: string;
subcommand?: string;
- status?: SlashCommandStatus;
-}
-
-export function makeSlashCommandEvent({
- command,
- subcommand,
- status,
-}: Omit<SlashCommandEvent, CommonFields>): SlashCommandEvent {
- return {
- 'event.name': 'slash_command',
- 'event.timestamp': new Date().toISOString(),
- command,
- subcommand,
- status,
- };
-}
-export enum SlashCommandStatus {
- SUCCESS = 'success',
- ERROR = 'error',
+ constructor(command: string, subcommand?: string) {
+ this['event.name'] = 'slash_command';
+ this['event.timestamp'] = new Date().toISOString();
+ this.command = command;
+ this.subcommand = subcommand;
+ }
}
-export class MalformedJsonResponseEvent implements BaseTelemetryEvent {
+export class MalformedJsonResponseEvent {
'event.name': 'malformed_json_response';
- 'event.timestamp': string;
+ 'event.timestamp': string; // ISO 8601
model: string;
constructor(model: string) {
@@ -336,7 +315,7 @@ export enum IdeConnectionType {
export class IdeConnectionEvent {
'event.name': 'ide_connection';
- 'event.timestamp': string;
+ 'event.timestamp': string; // ISO 8601
connection_type: IdeConnectionType;
constructor(connection_type: IdeConnectionType) {