@sema-agent/core
Version:
Stateless, task-oriented AI agent core
18 lines (17 loc) • 1.03 kB
JavaScript
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) };
}