summaryrefslogtreecommitdiff
path: root/packages/core/src/telemetry/tool-call-decision.ts
diff options
context:
space:
mode:
Diffstat (limited to 'packages/core/src/telemetry/tool-call-decision.ts')
-rw-r--r--packages/core/src/telemetry/tool-call-decision.ts32
1 files changed, 32 insertions, 0 deletions
diff --git a/packages/core/src/telemetry/tool-call-decision.ts b/packages/core/src/telemetry/tool-call-decision.ts
new file mode 100644
index 00000000..167df10a
--- /dev/null
+++ b/packages/core/src/telemetry/tool-call-decision.ts
@@ -0,0 +1,32 @@
+/**
+ * @license
+ * Copyright 2025 Google LLC
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+import { ToolConfirmationOutcome } from '../tools/tools.js';
+
+export enum ToolCallDecision {
+ ACCEPT = 'accept',
+ REJECT = 'reject',
+ MODIFY = 'modify',
+ AUTO_ACCEPT = 'auto_accept',
+}
+
+export function getDecisionFromOutcome(
+ outcome: ToolConfirmationOutcome,
+): ToolCallDecision {
+ switch (outcome) {
+ case ToolConfirmationOutcome.ProceedOnce:
+ return ToolCallDecision.ACCEPT;
+ case ToolConfirmationOutcome.ProceedAlways:
+ case ToolConfirmationOutcome.ProceedAlwaysServer:
+ case ToolConfirmationOutcome.ProceedAlwaysTool:
+ return ToolCallDecision.AUTO_ACCEPT;
+ case ToolConfirmationOutcome.ModifyWithEditor:
+ return ToolCallDecision.MODIFY;
+ case ToolConfirmationOutcome.Cancel:
+ default:
+ return ToolCallDecision.REJECT;
+ }
+}