import type { AcEvidence, DeepVerdict } from '@manehorizons/cadence-types'; import type { AcId, TestRef } from '../verify/coverage.js'; /** * Phase 140: strongest evidence backing an AC's PASS verdict, ranked * ai-verified > executed > assertion > mention > unverified. Pure — reads * only the coverage scan, coverage mode, whether build-test-must-pass * actually executed the suite this settle (`buildTestRan`), and any * deep-verify verdicts. * * A mock-provider deep-verify pass does NOT count as ai-verified (v1.25 * mock-honesty precedent: mock is a placeholder, not real verification) — * it falls through to whatever test-coverage evidence applies. */ export declare function deriveAcEvidence(acId: string, coverage: Map, coverageMode: 'mention' | 'assertion', buildTestRan: boolean, deepVerify: Record | undefined): AcEvidence; /** Phase 214 (T2): the numeric rank of `level` on the evidence ladder. */ export declare function rankEvidence(level: AcEvidence): number; /** * Phase 214 (T2): does `actual` rank at or above `floor` on the evidence * ladder? Equal-strength counts as meeting the floor. */ export declare function meetsEvidenceFloor(actual: AcEvidence, floor: AcEvidence): boolean; /** One AC whose evidence ranked below the configured floor. */ export interface EvidenceFloorOffender { readonly id: string; readonly actual: AcEvidence; readonly required: AcEvidence; } /** Result of the evidence-floor gate step (`checkEvidenceFloor`). */ export interface EvidenceFloorCheck { readonly outcome: 'pass' | 'refuse'; readonly offenders: readonly EvidenceFloorOffender[]; /** Present only when `outcome === 'refuse'`. */ readonly reason?: string; } /** * Phase 214 (T2, AC-1): the evidence-floor gate step. Compares each AC's * already-derived `deriveAcEvidence` result against the effective * `gates.evidenceFloor` (`effectiveEvidenceFloor` in `./engine.js`), * refusing when any AC ranks below it. * * Deliberately pure and data-in rather than a `GateImpl` that re-derives * evidence itself: `deriveAcEvidence` needs `deepVerify` + * `buildTestRan`, which are only fully known after the settle gate loop * and `--auto` AC derivation finish (`services/settle.ts` computes the * `acResultsWithEvidence` shape this function consumes at that point, past * where a `GateImpl` sees only `SettleContext`). Names every offending AC * with its actual vs. required level — never a single blanket refusal — so * an operator can see exactly which ACs need stronger evidence. */ export declare function checkEvidenceFloor(results: ReadonlyArray<{ id: string; evidence?: AcEvidence; }>, floor: AcEvidence): EvidenceFloorCheck; //# sourceMappingURL=ac-evidence.d.ts.map