/** * Independent reviewer role. * * A bounded reviewer that receives a structured, evidence-scoped packet (not * raw logs or secrets) and returns structured, addressable findings. The * reviewer cannot execute mutating tools by default, cannot authorize scope * expansion, cannot publish, cannot override deterministic readiness, and * cannot waive user-required criteria. */ import type { AcceptanceCriterion, ReviewReport } from "./types.js"; export interface ReviewPacket { objective: string; criteria: readonly AcceptanceCriterion[]; executionSummary: readonly { key: string; value: string; }[]; diffSummary?: string; evidenceSummaries: readonly { evidenceId: string; summary: string; }[]; warnings: string[]; budgetState?: string; allowMutatingTools: boolean; } export interface ReviewerPermissions { canExecuteMutatingTools: boolean; canExpandScope: boolean; canPublish: boolean; canWaiveCriteria: boolean; canOverrideReadiness: boolean; } export declare const DEFAULT_REVIEWER_PERMISSIONS: ReviewerPermissions; /** Normalize raw reviewer findings into a bounded, addressable report. */ export declare function normalizeFindings(packet: ReviewPacket, raw: Array<{ kind?: string; summary?: string; references?: string[]; }>): ReviewReport; /** Whether the report contains an explicit approval. */ export declare function reviewsApprove(report: ReviewReport): boolean; /** Aggregate verdict: only explicit approvals count, never implicit. */ export declare function aggregateVerdict(report: ReviewReport): "approve" | "correction" | "block"; /** * Enforce that a reviewer's findings cannot expand authority. A release * approval is only honored when the reviewer is explicitly permitted to publish * and all required criteria are satisfied. */ export declare function applyReviewerAuthority(report: ReviewReport, permissions: ReviewerPermissions, requiredCriteriaSatisfied: boolean): { publishApproved: boolean; authorityExpanded: boolean; }; //# sourceMappingURL=reviewer.d.ts.map