summaryrefslogtreecommitdiff
path: root/packages/core/src/telemetry/uiTelemetry.ts
diff options
context:
space:
mode:
Diffstat (limited to 'packages/core/src/telemetry/uiTelemetry.ts')
-rw-r--r--packages/core/src/telemetry/uiTelemetry.ts20
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'];
+ }
+ }
}
}