From 882a97aff998b2f19731e9966d135f1db5a59914 Mon Sep 17 00:00:00 2001 From: agarwalravikant Date: Wed, 6 Aug 2025 23:16:42 +0530 Subject: Fix to send user tool confirmation decision for yolo or non interacti… (#5677) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Ravikant Agarwal --- packages/core/src/telemetry/metrics.ts | 2 +- packages/core/src/telemetry/types.ts | 4 +++- packages/core/src/telemetry/uiTelemetry.test.ts | 6 ++++++ packages/core/src/telemetry/uiTelemetry.ts | 4 ++++ 4 files changed, 14 insertions(+), 2 deletions(-) (limited to 'packages/core/src/telemetry') diff --git a/packages/core/src/telemetry/metrics.ts b/packages/core/src/telemetry/metrics.ts index 124bc602..103f7f71 100644 --- a/packages/core/src/telemetry/metrics.ts +++ b/packages/core/src/telemetry/metrics.ts @@ -100,7 +100,7 @@ export function recordToolCallMetrics( functionName: string, durationMs: number, success: boolean, - decision?: 'accept' | 'reject' | 'modify', + decision?: 'accept' | 'reject' | 'modify' | 'auto_accept', ): void { if (!toolCallCounter || !toolCallLatencyHistogram || !isMetricsInitialized) return; diff --git a/packages/core/src/telemetry/types.ts b/packages/core/src/telemetry/types.ts index 668421f0..db84e2da 100644 --- a/packages/core/src/telemetry/types.ts +++ b/packages/core/src/telemetry/types.ts @@ -14,6 +14,7 @@ export enum ToolCallDecision { ACCEPT = 'accept', REJECT = 'reject', MODIFY = 'modify', + AUTO_ACCEPT = 'auto_accept', } export function getDecisionFromOutcome( @@ -21,10 +22,11 @@ export function getDecisionFromOutcome( ): ToolCallDecision { switch (outcome) { case ToolConfirmationOutcome.ProceedOnce: + return ToolCallDecision.ACCEPT; case ToolConfirmationOutcome.ProceedAlways: case ToolConfirmationOutcome.ProceedAlwaysServer: case ToolConfirmationOutcome.ProceedAlwaysTool: - return ToolCallDecision.ACCEPT; + return ToolCallDecision.AUTO_ACCEPT; case ToolConfirmationOutcome.ModifyWithEditor: return ToolCallDecision.MODIFY; case ToolConfirmationOutcome.Cancel: diff --git a/packages/core/src/telemetry/uiTelemetry.test.ts b/packages/core/src/telemetry/uiTelemetry.test.ts index bce54ad8..221804d2 100644 --- a/packages/core/src/telemetry/uiTelemetry.test.ts +++ b/packages/core/src/telemetry/uiTelemetry.test.ts @@ -104,6 +104,7 @@ describe('UiTelemetryService', () => { [ToolCallDecision.ACCEPT]: 0, [ToolCallDecision.REJECT]: 0, [ToolCallDecision.MODIFY]: 0, + [ToolCallDecision.AUTO_ACCEPT]: 0, }, byName: {}, }, @@ -362,6 +363,7 @@ describe('UiTelemetryService', () => { [ToolCallDecision.ACCEPT]: 1, [ToolCallDecision.REJECT]: 0, [ToolCallDecision.MODIFY]: 0, + [ToolCallDecision.AUTO_ACCEPT]: 0, }, }); }); @@ -395,6 +397,7 @@ describe('UiTelemetryService', () => { [ToolCallDecision.ACCEPT]: 0, [ToolCallDecision.REJECT]: 1, [ToolCallDecision.MODIFY]: 0, + [ToolCallDecision.AUTO_ACCEPT]: 0, }, }); }); @@ -434,11 +437,13 @@ describe('UiTelemetryService', () => { [ToolCallDecision.ACCEPT]: 0, [ToolCallDecision.REJECT]: 0, [ToolCallDecision.MODIFY]: 0, + [ToolCallDecision.AUTO_ACCEPT]: 0, }); expect(tools.byName['test_tool'].decisions).toEqual({ [ToolCallDecision.ACCEPT]: 0, [ToolCallDecision.REJECT]: 0, [ToolCallDecision.MODIFY]: 0, + [ToolCallDecision.AUTO_ACCEPT]: 0, }); }); @@ -483,6 +488,7 @@ describe('UiTelemetryService', () => { [ToolCallDecision.ACCEPT]: 1, [ToolCallDecision.REJECT]: 1, [ToolCallDecision.MODIFY]: 0, + [ToolCallDecision.AUTO_ACCEPT]: 0, }, }); }); diff --git a/packages/core/src/telemetry/uiTelemetry.ts b/packages/core/src/telemetry/uiTelemetry.ts index 2713ac65..fbf5b8dc 100644 --- a/packages/core/src/telemetry/uiTelemetry.ts +++ b/packages/core/src/telemetry/uiTelemetry.ts @@ -32,6 +32,7 @@ export interface ToolCallStats { [ToolCallDecision.ACCEPT]: number; [ToolCallDecision.REJECT]: number; [ToolCallDecision.MODIFY]: number; + [ToolCallDecision.AUTO_ACCEPT]: number; }; } @@ -62,6 +63,7 @@ export interface SessionMetrics { [ToolCallDecision.ACCEPT]: number; [ToolCallDecision.REJECT]: number; [ToolCallDecision.MODIFY]: number; + [ToolCallDecision.AUTO_ACCEPT]: number; }; byName: Record; }; @@ -94,6 +96,7 @@ const createInitialMetrics = (): SessionMetrics => ({ [ToolCallDecision.ACCEPT]: 0, [ToolCallDecision.REJECT]: 0, [ToolCallDecision.MODIFY]: 0, + [ToolCallDecision.AUTO_ACCEPT]: 0, }, byName: {}, }, @@ -192,6 +195,7 @@ export class UiTelemetryService extends EventEmitter { [ToolCallDecision.ACCEPT]: 0, [ToolCallDecision.REJECT]: 0, [ToolCallDecision.MODIFY]: 0, + [ToolCallDecision.AUTO_ACCEPT]: 0, }, }; } -- cgit v1.2.3