UNPKG

@sema-agent/core

Version:

Stateless, task-oriented AI agent core

18 lines (17 loc) • 1.03 kB
import { classifierUnavailableAskMessage, classifierUnavailableDenyMessage } from "./auto-mode.js"; import { attestClassifierDenyCause, carryEngineAttestations } from "./tool-policy.js"; export function classifierUnavailableArm(args) { const { ask, req, cause } = args; const seated = args.seat?.approvalSeat === true; if (!args.aborted) { try { args.seat?.onUnavailable?.({ toolName: req.toolName, toolCallId: req.toolCallId, cause, disposition: seated ? "asked" : "denied" }); } catch { } } if (seated) return { kind: "asked", ask: carryEngineAttestations(ask, { ...ask, message: classifierUnavailableAskMessage(ask.message ?? `approval required for "${req.toolName}"`, cause), requiresRealApproval: true }) }; const deny = { action: "deny", message: classifierUnavailableDenyMessage(req.toolName, cause, args.attribution), decisionReason: "classifier" }; return { kind: "denied", deny: attestClassifierDenyCause(deny, "unavailable", req) }; }