/** * Auto-approval evaluator. * * Precedence (highest wins): * 0. [GAP-SEC-005] Posture: allowAutoApprove === false (category block) * 0b.[GAP-SEC-005] Posture: requireExplicitRule with no matching rule * 1. never-auto-approve rule match * 2. alwaysBreakOn profile tags * 3. auto-approve rule match * 4. autoApproveAfterN threshold (clamped by posture minConsecutiveApprovalsForAutoN) * 5. prompt (default — no auto-approval) */ import type { BreakpointRule, AutoApprovalResult, ActionCategory, ApprovalPosture } from "./types"; import type { BreakpointConfig } from "../profiles/types"; export interface EvaluateAutoApprovalOptions { breakpointId: string; tags?: string[]; expert?: string; rules: BreakpointRule[]; profileConfig?: BreakpointConfig; /** Number of consecutive past approvals for this breakpointId. */ consecutiveApprovals?: number; /** autoApproveAfterN from breakpoint definition (-1 = disabled). */ autoApproveAfterN?: number; /** GAP-SEC-005: Explicit action category. Overrides prefix-derived category. */ actionCategory?: ActionCategory; /** GAP-SEC-005: Override posture for this evaluation (skips DEFAULT_POSTURES lookup). */ postureOverride?: ApprovalPosture; /** GAP-SEC-005: When true, posture enforcement is skipped entirely. */ skipPostureEnforcement?: boolean; } export declare function evaluateAutoApproval(options: EvaluateAutoApprovalOptions): AutoApprovalResult; //# sourceMappingURL=evaluator.d.ts.map