diff options
Diffstat (limited to 'packages/core/src/telemetry/tool-call-decision.ts')
| -rw-r--r-- | packages/core/src/telemetry/tool-call-decision.ts | 32 |
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; + } +} |
