import type { AuthoredControlsDeps, GroundTruthLabel, ResolvedPrDiff, SplitArtifact, Stage4VerifierDeps } from '@mmnto/totem'; import type { FreezeBinding } from '../spine-freeze-proof.js'; import type { CertifyingCorpus } from './spine-windtunnel.js'; export interface BuildAuthoredCertifyingCorpusDeps { /** `.totem` dir holding `spine/authored-rules.yaml` + the authoring-ledger. */ totemDir: string; /** * The splitRef THIS cert run is bound to (ADR-110 §6). Every authored record's * authoring split (file header → authoring-ledger entry) MUST equal this, or the * rules were authored under a DIFFERENT split — the run is voided BEFORE compile * (codex finding 4: `deriveAuthoredControls`'s train-side fixture check ALONE is * insufficient for leakage; the file/ledger split-binding is the load-bearing guard). */ expectedSplitRef: string; /** The frozen split (the §5 leakage gate + `deriveAuthoredControls` train-side check). */ split: SplitArtifact; /** Resolved-PR diffs — the producer-independent scoring substrate (passed through). */ prDiffs: ResolvedPrDiff[]; /** Frozen ground-truth labels keyed by firingLabelId (passed through). */ groundTruth: Map; /** Stage-4 verifier deps (listFiles/readFile) for the compile stage. */ stage4: Stage4VerifierDeps; /** Injected timestamp (Tenet 15 determinism — no `new Date()` in the pipeline). */ now: string; /** Optional §4 differential-evaluator injection for `deriveAuthoredControls` (defaults to the real one). */ authoredControlsDeps?: AuthoredControlsDeps; /** * R1: the PROVEN freeze binding for a content-addressed `expectedSplitRef` * (constructed ONLY by `resolveProvenFreezeBinding` at the cert-run boundary — * this builder is git-free and never proves). Absent on a legacy free-text run; * absent on a content-addressed run ⇒ the intake's total partition fails loud. */ freezeBinding?: FreezeBinding; /** * §5.2 leakage semantics (#2294 couple, option (a)): fixture PRs the git-holding * run boundary PROVED strictly pre-window by ancestry to the artifact's * cutBoundarySha (`verifyPreWindowFixturePrs`). Threaded to the intake gate and * the §6 deriver; absent/empty ⇒ strict train-only, byte-unchanged. */ verifiedPreWindowFixturePrs?: ReadonlySet; } /** * Assemble an AUTHORED `CertifyingCorpus` from `.totem/spine/authored-rules.yaml`. * * Pipeline: `runRuleAuthor` (preserving ALL §3/§8 producer invariants — strict * authored-file shape, recursive producer-owned-key rejection, independent * structural-eligibility, stable id mint/reuse, fail-loud dup-identity, ledger * append/read-back, `judgedBy`≠author) → `rejected.length === 0` precondition → * file/ledger split-binding verification (BEFORE compile) → `toCompileFeed` → * `runCompileStage` (authored compile-rejection = HARD failure) → homogeneous * authored-provenance assembly from the `c.provenance` SIDECAR (never * `rule.legitimacy`) → `deriveAuthoredControls`. * * Pure of its own IO except the producer's authoring-ledger read/append (behind * `runRuleAuthor`) — `stage4`/diffs/ground-truth are injected, so it is fully * testable with a real temp `.totem` dir + fakes (no LLM, no network, no real git). */ export declare function buildAuthoredCertifyingCorpus(deps: BuildAuthoredCertifyingCorpusDeps): Promise; //# sourceMappingURL=spine-authored-cert-corpus.d.ts.map