/** * Standing certification registry for derived-artifact acceleration paths. * * The registry is deliberately finite and reviewable. Adding an acceleration means adding a * row here and an executable assertion to the `test:equivalence` suite. Equivalence is evaluated * over the semantic answer projection; operational evidence such as cache state and repair status * remains in the served response and is asserted separately. * * change: certify-derived-artifact-equivalence */ export declare const SEMANTIC_ANSWER_PROJECTION: "semantic-answer-v1"; export type EquivalenceRowId = 'cold-warm-context' | 'memo-hit-miss' | 'parallel-serial-extraction' | 'precomputed-live-traversal' | 'incremental-full-repair' | 'imported-local-structural' | 'bm25-cached-uncached' | 'function-vector-repair' | 'spec-vector-repair'; export type RecoveryMode = 'rebuild' | 'fallback' | 'fail-closed-then-repair'; export interface EquivalenceRow { id: EquivalenceRowId; artifact: string; authoritativeInputs: readonly string[]; acceleratedPath: string; authoritativePath: string; assertion: string; recovery: RecoveryMode; fixtures: readonly string[]; queryFixture: string | null; workerCounts: { accelerated: number; authoritative: number; } | null; cacheModes: { accelerated: string; authoritative: string; } | null; ciTests: readonly string[]; } /** Every registered acceleration row must be green before the certification gate passes. */ export declare const DERIVED_ARTIFACT_EQUIVALENCE_MATRIX: readonly EquivalenceRow[]; /** Exact response paths excluded from semantic equality and asserted through row-specific tests. */ export declare const OPERATIONAL_ANSWER_PATHS: Set; /** Stable bytes for the conclusion fields whose equality the matrix certifies. */ export declare function semanticAnswerBytes(value: unknown): string; /** * The first semantic difference between two answers, as a JSON path plus both values — or * `undefined` when they are equal. * * A byte comparison of two canonicalized answers proves equality but says nothing useful when it * fails: the message is two truncated JSON strings that differ somewhere. That is what left the * bundle round-trip's Windows divergence undiagnosed through several passes. Equality is still * decided by the same canonical form, so this narrows the report without widening what counts as * equal. */ export declare function firstSemanticDifference(actual: unknown, expected: unknown): string | undefined; //# sourceMappingURL=derived-artifact-equivalence.d.ts.map