diff options
| author | Shreya Keshive <[email protected]> | 2025-07-29 16:20:37 -0400 |
|---|---|---|
| committer | GitHub <[email protected]> | 2025-07-29 20:20:37 +0000 |
| commit | 293bb820193a41aee6f1421367a2d1fc6d836422 (patch) | |
| tree | 639f1cb516ea4f0dd772a0a54a20790f5a63520c /packages/core/src/telemetry/clearcut-logger/clearcut-logger.ts | |
| parent | 80079cd2a5741d7024c8500853fe7a3af5e6ba0a (diff) | |
Adds centralized support to log slash commands + sub commands (#5128)
Diffstat (limited to 'packages/core/src/telemetry/clearcut-logger/clearcut-logger.ts')
| -rw-r--r-- | packages/core/src/telemetry/clearcut-logger/clearcut-logger.ts | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/packages/core/src/telemetry/clearcut-logger/clearcut-logger.ts b/packages/core/src/telemetry/clearcut-logger/clearcut-logger.ts index fd5a9ab2..d221ef5e 100644 --- a/packages/core/src/telemetry/clearcut-logger/clearcut-logger.ts +++ b/packages/core/src/telemetry/clearcut-logger/clearcut-logger.ts @@ -19,6 +19,7 @@ import { FlashFallbackEvent, LoopDetectedEvent, FlashDecidedToContinueEvent, + SlashCommandEvent, } from '../types.js'; import { EventMetadataKey } from './event-metadata-key.js'; import { Config } from '../../config/config.js'; @@ -40,6 +41,7 @@ const end_session_event_name = 'end_session'; const flash_fallback_event_name = 'flash_fallback'; const loop_detected_event_name = 'loop_detected'; const flash_decided_to_continue_event_name = 'flash_decided_to_continue'; +const slash_command_event_name = 'slash_command'; export interface LogResponse { nextRequestWaitMs?: number; @@ -528,6 +530,25 @@ export class ClearcutLogger { this.flushIfNeeded(); } + logSlashCommandEvent(event: SlashCommandEvent): void { + const data = [ + { + gemini_cli_key: EventMetadataKey.GEMINI_CLI_SLASH_COMMAND_NAME, + value: JSON.stringify(event.command), + }, + ]; + + if (event.subcommand) { + data.push({ + gemini_cli_key: EventMetadataKey.GEMINI_CLI_SLASH_COMMAND_SUBCOMMAND, + value: JSON.stringify(event.subcommand), + }); + } + + this.enqueueLogEvent(this.createLogEvent(slash_command_event_name, data)); + this.flushIfNeeded(); + } + logEndSessionEvent(event: EndSessionEvent): void { const data = [ { |
