{"version":3,"file":"constants.mjs","sources":["../../../../src/tools/approval/constants.ts"],"sourcesContent":["/**\n * Shared HITL (Human-in-the-Loop) constants and enums.\n *\n * Single source of truth for approval-related values consumed by\n * the agents library, host backend, and browser extension.\n *\n * @module approval/constants\n */\n\n// ============================================================================\n// Execution Context\n// ============================================================================\n\n/**\n * Execution context determines whether HITL approval is required.\n *\n * - `INTERACTIVE`: User is present in the chat session — approval prompts are shown.\n * - `SCHEDULED`: Automated/scheduled execution — all approvals are auto-granted.\n * - `HANDOFF`: Agent is running as a handoff/delegate/workflow target — approvals\n *   are auto-granted so the autonomous multi-agent pipeline isn't blocked.\n *   The primary agent retains HITL; only handoff agents bypass it.\n */\nexport enum ExecutionContext {\n  INTERACTIVE = 'interactive',\n  SCHEDULED = 'scheduled',\n  HANDOFF = 'handoff',\n}\n\n// ============================================================================\n// Approval Policy\n// ============================================================================\n\n/**\n * Static approval policy values.\n *\n * - `ALWAYS`: Every tool call requires approval (strictest).\n * - `NEVER`: No tool call requires approval (used for auto-approved tools).\n */\nexport enum ApprovalPolicy {\n  ALWAYS = 'always',\n  NEVER = 'never',\n}\n\n// ============================================================================\n// Approval Tier\n// ============================================================================\n\n/**\n * Three-tier policy evaluation pipeline.\n * Higher tiers are checked first; once a tier matches, lower tiers are skipped.\n *\n * - `AUTO_APPROVE`: Built-in tools that always skip approval (Tier 1).\n * - `RULE_BASED`: Per-tool argument-aware rules (Tier 2).\n * - `KEYWORD_FALLBACK`: Token-based keyword matching on tool name (Tier 3).\n */\nexport enum ApprovalTier {\n  AUTO_APPROVE = 'auto_approve',\n  RULE_BASED = 'rule_based',\n  KEYWORD_FALLBACK = 'keyword_fallback',\n}\n\n// ============================================================================\n// Risk Level\n// ============================================================================\n\n/**\n * Risk classification for tool calls.\n * Used for audit logging and future UI customization (e.g., showing risk badges).\n *\n * - `NONE`: Read-only, no side effects (search, list, get).\n * - `LOW`: Minor side effects (bookmark, star, mark as read).\n * - `MEDIUM`: User-specific mutations (send email to known contact).\n * - `HIGH`: Destructive or irreversible (delete, modify critical data).\n * - `CRITICAL`: Multi-system impact (transfer funds, delete account).\n */\nexport enum RiskLevel {\n  NONE = 'none',\n  LOW = 'low',\n  MEDIUM = 'medium',\n  HIGH = 'high',\n  CRITICAL = 'critical',\n}\n\n// ============================================================================\n// Action Category\n// ============================================================================\n\n/**\n * Semantic category for tool actions.\n * Maps action keywords to high-level intent for risk classification.\n */\nexport enum ActionCategory {\n  READ = 'read',\n  WRITE = 'write',\n  DELETE = 'delete',\n  SEND = 'send',\n  EXECUTE = 'execute',\n  FINANCIAL = 'financial',\n  ACCOUNT = 'account',\n}\n\n// ============================================================================\n// MCP Delimiter\n// ============================================================================\n\n/**\n * Delimiter used in MCP tool names to separate the tool name from the server key.\n *\n * Example: `send_email_mcp_outlook` → tool = `send_email`, server = `outlook`\n *\n * Must match the host data-provider delimiter constant.\n */\nexport const MCP_DELIMITER = '_mcp_';\n"],"names":[],"mappings":"AAAA;;;;;;;AAOG;AAEH;AACA;AACA;AAEA;;;;;;;;AAQG;IACS;AAAZ,CAAA,UAAY,gBAAgB,EAAA;AAC1B,IAAA,gBAAA,CAAA,aAAA,CAAA,GAAA,aAA2B;AAC3B,IAAA,gBAAA,CAAA,WAAA,CAAA,GAAA,WAAuB;AACvB,IAAA,gBAAA,CAAA,SAAA,CAAA,GAAA,SAAmB;AACrB,CAAC,EAJW,gBAAgB,KAAhB,gBAAgB,GAAA,EAAA,CAAA,CAAA;AAM5B;AACA;AACA;AAEA;;;;;AAKG;IACS;AAAZ,CAAA,UAAY,cAAc,EAAA;AACxB,IAAA,cAAA,CAAA,QAAA,CAAA,GAAA,QAAiB;AACjB,IAAA,cAAA,CAAA,OAAA,CAAA,GAAA,OAAe;AACjB,CAAC,EAHW,cAAc,KAAd,cAAc,GAAA,EAAA,CAAA,CAAA;AAK1B;AACA;AACA;AAEA;;;;;;;AAOG;IACS;AAAZ,CAAA,UAAY,YAAY,EAAA;AACtB,IAAA,YAAA,CAAA,cAAA,CAAA,GAAA,cAA6B;AAC7B,IAAA,YAAA,CAAA,YAAA,CAAA,GAAA,YAAyB;AACzB,IAAA,YAAA,CAAA,kBAAA,CAAA,GAAA,kBAAqC;AACvC,CAAC,EAJW,YAAY,KAAZ,YAAY,GAAA,EAAA,CAAA,CAAA;AAMxB;AACA;AACA;AAEA;;;;;;;;;AASG;IACS;AAAZ,CAAA,UAAY,SAAS,EAAA;AACnB,IAAA,SAAA,CAAA,MAAA,CAAA,GAAA,MAAa;AACb,IAAA,SAAA,CAAA,KAAA,CAAA,GAAA,KAAW;AACX,IAAA,SAAA,CAAA,QAAA,CAAA,GAAA,QAAiB;AACjB,IAAA,SAAA,CAAA,MAAA,CAAA,GAAA,MAAa;AACb,IAAA,SAAA,CAAA,UAAA,CAAA,GAAA,UAAqB;AACvB,CAAC,EANW,SAAS,KAAT,SAAS,GAAA,EAAA,CAAA,CAAA;AAQrB;AACA;AACA;AAEA;;;AAGG;IACS;AAAZ,CAAA,UAAY,cAAc,EAAA;AACxB,IAAA,cAAA,CAAA,MAAA,CAAA,GAAA,MAAa;AACb,IAAA,cAAA,CAAA,OAAA,CAAA,GAAA,OAAe;AACf,IAAA,cAAA,CAAA,QAAA,CAAA,GAAA,QAAiB;AACjB,IAAA,cAAA,CAAA,MAAA,CAAA,GAAA,MAAa;AACb,IAAA,cAAA,CAAA,SAAA,CAAA,GAAA,SAAmB;AACnB,IAAA,cAAA,CAAA,WAAA,CAAA,GAAA,WAAuB;AACvB,IAAA,cAAA,CAAA,SAAA,CAAA,GAAA,SAAmB;AACrB,CAAC,EARW,cAAc,KAAd,cAAc,GAAA,EAAA,CAAA,CAAA;AAU1B;AACA;AACA;AAEA;;;;;;AAMG;AACI,MAAM,aAAa,GAAG;;;;"}