diff options
Diffstat (limited to 'packages/core/src/telemetry/uiTelemetry.ts')
| -rw-r--r-- | packages/core/src/telemetry/uiTelemetry.ts | 20 |
1 files changed, 19 insertions, 1 deletions
diff --git a/packages/core/src/telemetry/uiTelemetry.ts b/packages/core/src/telemetry/uiTelemetry.ts index 8d1b044f..318478aa 100644 --- a/packages/core/src/telemetry/uiTelemetry.ts +++ b/packages/core/src/telemetry/uiTelemetry.ts @@ -63,6 +63,10 @@ export interface SessionMetrics { }; byName: Record<string, ToolCallStats>; }; + files: { + totalLinesAdded: number; + totalLinesRemoved: number; + }; } const createInitialModelMetrics = (): ModelMetrics => ({ @@ -96,6 +100,10 @@ const createInitialMetrics = (): SessionMetrics => ({ }, byName: {}, }, + files: { + totalLinesAdded: 0, + totalLinesRemoved: 0, + }, }); export class UiTelemetryService extends EventEmitter { @@ -171,7 +179,7 @@ export class UiTelemetryService extends EventEmitter { } private processToolCall(event: ToolCallEvent) { - const { tools } = this.#metrics; + const { tools, files } = this.#metrics; tools.totalCalls++; tools.totalDurationMs += event.duration_ms; @@ -209,6 +217,16 @@ export class UiTelemetryService extends EventEmitter { tools.totalDecisions[event.decision]++; toolStats.decisions[event.decision]++; } + + // Aggregate line count data from metadata + if (event.metadata) { + if (event.metadata['ai_added_lines'] !== undefined) { + files.totalLinesAdded += event.metadata['ai_added_lines']; + } + if (event.metadata['ai_removed_lines'] !== undefined) { + files.totalLinesRemoved += event.metadata['ai_removed_lines']; + } + } } } |
