@mmnto/totem 1.87.0 → 1.89.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (75) hide show
  1. package/dist/index.d.ts +8 -1
  2. package/dist/index.d.ts.map +1 -1
  3. package/dist/index.js +6 -1
  4. package/dist/index.js.map +1 -1
  5. package/dist/sarif.d.ts +17 -0
  6. package/dist/sarif.d.ts.map +1 -1
  7. package/dist/sarif.js +71 -5
  8. package/dist/sarif.js.map +1 -1
  9. package/dist/sarif.test.js +94 -1
  10. package/dist/sarif.test.js.map +1 -1
  11. package/dist/spine/authored-controls.d.ts +8 -0
  12. package/dist/spine/authored-controls.d.ts.map +1 -1
  13. package/dist/spine/authored-controls.js +15 -5
  14. package/dist/spine/authored-controls.js.map +1 -1
  15. package/dist/spine/authored-controls.test.js +31 -0
  16. package/dist/spine/authored-controls.test.js.map +1 -1
  17. package/dist/spine/authored-freeze-gates.d.ts +45 -0
  18. package/dist/spine/authored-freeze-gates.d.ts.map +1 -0
  19. package/dist/spine/authored-freeze-gates.js +167 -0
  20. package/dist/spine/authored-freeze-gates.js.map +1 -0
  21. package/dist/spine/authored-freeze-gates.test.d.ts +2 -0
  22. package/dist/spine/authored-freeze-gates.test.d.ts.map +1 -0
  23. package/dist/spine/authored-freeze-gates.test.js +159 -0
  24. package/dist/spine/authored-freeze-gates.test.js.map +1 -0
  25. package/dist/spine/authored-rule.d.ts +10 -0
  26. package/dist/spine/authored-rule.d.ts.map +1 -1
  27. package/dist/spine/authored-rule.js +11 -0
  28. package/dist/spine/authored-rule.js.map +1 -1
  29. package/dist/spine/authoring-ledger.d.ts +28 -0
  30. package/dist/spine/authoring-ledger.d.ts.map +1 -1
  31. package/dist/spine/authoring-ledger.js +27 -0
  32. package/dist/spine/authoring-ledger.js.map +1 -1
  33. package/dist/spine/authoring-ledger.test.js +8 -0
  34. package/dist/spine/authoring-ledger.test.js.map +1 -1
  35. package/dist/spine/cert-corpus-seed.d.ts +38 -8
  36. package/dist/spine/cert-corpus-seed.d.ts.map +1 -1
  37. package/dist/spine/cert-corpus-seed.js +52 -1
  38. package/dist/spine/cert-corpus-seed.js.map +1 -1
  39. package/dist/spine/cert-corpus-seed.test.js +76 -0
  40. package/dist/spine/cert-corpus-seed.test.js.map +1 -1
  41. package/dist/spine/frozen-split.d.ts +541 -0
  42. package/dist/spine/frozen-split.d.ts.map +1 -0
  43. package/dist/spine/frozen-split.js +205 -0
  44. package/dist/spine/frozen-split.js.map +1 -0
  45. package/dist/spine/frozen-split.test.d.ts +2 -0
  46. package/dist/spine/frozen-split.test.d.ts.map +1 -0
  47. package/dist/spine/frozen-split.test.js +89 -0
  48. package/dist/spine/frozen-split.test.js.map +1 -0
  49. package/dist/spine/gate2-eligibility.d.ts +33 -0
  50. package/dist/spine/gate2-eligibility.d.ts.map +1 -0
  51. package/dist/spine/gate2-eligibility.js +54 -0
  52. package/dist/spine/gate2-eligibility.js.map +1 -0
  53. package/dist/spine/gate2-eligibility.test.d.ts +2 -0
  54. package/dist/spine/gate2-eligibility.test.d.ts.map +1 -0
  55. package/dist/spine/gate2-eligibility.test.js +252 -0
  56. package/dist/spine/gate2-eligibility.test.js.map +1 -0
  57. package/dist/spine/ledgers.d.ts +24 -0
  58. package/dist/spine/ledgers.d.ts.map +1 -1
  59. package/dist/spine/split.d.ts +16 -0
  60. package/dist/spine/split.d.ts.map +1 -1
  61. package/dist/spine/split.js +13 -0
  62. package/dist/spine/split.js.map +1 -1
  63. package/dist/spine/windtunnel-firing.d.ts +6 -2
  64. package/dist/spine/windtunnel-firing.d.ts.map +1 -1
  65. package/dist/spine/windtunnel-firing.js.map +1 -1
  66. package/dist/spine/windtunnel-lock.d.ts +4 -4
  67. package/dist/spine/windtunnel-scorer-authored.d.ts +70 -0
  68. package/dist/spine/windtunnel-scorer-authored.d.ts.map +1 -0
  69. package/dist/spine/windtunnel-scorer-authored.js +204 -0
  70. package/dist/spine/windtunnel-scorer-authored.js.map +1 -0
  71. package/dist/spine/windtunnel-scorer-authored.test.d.ts +2 -0
  72. package/dist/spine/windtunnel-scorer-authored.test.d.ts.map +1 -0
  73. package/dist/spine/windtunnel-scorer-authored.test.js +455 -0
  74. package/dist/spine/windtunnel-scorer-authored.test.js.map +1 -0
  75. package/package.json +1 -1
@@ -86,6 +86,9 @@ function derive(args) {
86
86
  split: args.split,
87
87
  provenanceByRule: provBy(args.rules),
88
88
  ...(args.deps ? { deps: args.deps } : {}),
89
+ ...(args.verifiedPreWindowFixturePrs
90
+ ? { verifiedPreWindowFixturePrs: args.verifiedPreWindowFixturePrs }
91
+ : {}),
89
92
  });
90
93
  }
91
94
  /** A minimal valid SplitArtifact — only `trainPrs` is read by the builder. */
@@ -360,6 +363,34 @@ describe('deriveAuthoredControls — fail-loud guards', () => {
360
363
  deps: scriptedDeps({ 'ch-leak': makeResult('differential-holds') }),
361
364
  })).rejects.toThrow(/leakage/i);
362
365
  });
366
+ it('throws on an out-of-window fixture pr that is NOT proven pre-window (§5.2 leakage semantics)', async () => {
367
+ const rule = authoredRule('rule-post', [posFixture(50, 'ch-post')]);
368
+ await expect(derive({
369
+ rules: [rule],
370
+ split: splitWithTrain([1, 2], [3]), // 50 is neither train nor held-out
371
+ deps: scriptedDeps({ 'ch-post': makeResult('differential-holds') }),
372
+ })).rejects.toThrow(/NOT proven strictly pre-window/);
373
+ });
374
+ it('accepts an out-of-window fixture pr proven pre-window (#2294 couple, option (a))', async () => {
375
+ const rule = authoredRule('rule-pre', [posFixture(50, 'ch-pre')]);
376
+ const controls = await derive({
377
+ rules: [rule],
378
+ split: splitWithTrain([1, 2], [3]),
379
+ deps: scriptedDeps({ 'ch-pre': makeResult('differential-holds') }),
380
+ verifiedPreWindowFixturePrs: new Set([50]),
381
+ });
382
+ expect(controls.positive).toHaveLength(1);
383
+ expect(controls.positive[0].pr).toBe(50);
384
+ });
385
+ it('the verified set can NEVER override a held-out fixture (FM (c) defense-in-depth)', async () => {
386
+ const rule = authoredRule('rule-ho', [posFixture(99, 'ch-ho')]);
387
+ await expect(derive({
388
+ rules: [rule],
389
+ split: splitWithTrain([1, 2], [99]),
390
+ deps: scriptedDeps({ 'ch-ho': makeResult('differential-holds') }),
391
+ verifiedPreWindowFixturePrs: new Set([99]), // caller-fault set — must not be honored
392
+ })).rejects.toThrow(/HELD-OUT/);
393
+ });
363
394
  it('throws when authored policy.positiveControlSide is not train (§6 producer mismatch)', async () => {
364
395
  vi.mocked(getRulePolicy).mockReturnValueOnce({
365
396
  labelScope: 'whole-window',
@@ -1 +1 @@
1
- {"version":3,"file":"authored-controls.test.js","sourceRoot":"","sources":["../../src/spine/authored-controls.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"authored-controls.test.js","sourceRoot":"","sources":["../../src/spine/authored-controls.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,45 @@
1
+ import type { AuthoringLedgerEntry } from './authoring-ledger.js';
2
+ import type { SplitArtifact } from './split.js';
3
+ /**
4
+ * Q2 (strategy floor): the held-out slice must be ≥ 50% of the non-excluded
5
+ * scored window `N = |trainPrs| + |heldOutPrs|` — inclusive (`=0.5` passes), so
6
+ * per-rule generalization evidence (§5.3) rests on a substantial unseen slice.
7
+ * Returns [] or the single violation message.
8
+ */
9
+ export declare function checkHeldOutFloor(split: SplitArtifact): string[];
10
+ /**
11
+ * Q3.1 (strategy temporal): the split's `frozenAt` must PRECEDE every effective
12
+ * rule's `authoredAt` — §5.1 "frozen before authoring" made mechanical. A split
13
+ * frozen at-or-after authoring is a HARD FAIL (the author may have tuned matchers
14
+ * against held-out code — an exposure re-freezing cannot undo). Returns per-rule
15
+ * violation messages ([] if clean). A missing `frozenAt` is itself a violation
16
+ * (no mechanical proof possible).
17
+ */
18
+ export declare function checkFrozenBeforeAuthoring(split: SplitArtifact, effectiveEntries: readonly AuthoringLedgerEntry[]): string[];
19
+ /**
20
+ * Q3.2 (strategy membership) — LEAKAGE SEMANTICS (the #2294-couple ruling,
21
+ * operator option (a) recorded on strategy#810): a positive fixture PR is legal
22
+ * iff `∉ heldOutPrs` AND (`∈ trainPrs` OR strictly pre-window). Falsifying
23
+ * Metric (c)'s condition is HELD-OUT membership — a pre-window anchor cannot
24
+ * leak code that post-dates it, so the Q4-ruled cert-1 anchor set (all pre-
25
+ * window) stays legal without re-anchoring.
26
+ *
27
+ * This gate stays PURE (no git): "strictly pre-window" is proven by ANCESTRY
28
+ * (`is-ancestor(mergeCommit(pr), cutBoundarySha)` — never PR-number order,
29
+ * which is not merge-ordered) at the command layer that has git, and handed in
30
+ * as `verifiedPreWindowPrs`. An empty set reproduces the strict pre-ruling
31
+ * behavior byte-for-byte (the legacy lane passes empty). Returns per-(rule,pr)
32
+ * violation messages ([] if clean).
33
+ */
34
+ export declare function checkPositiveFixturesTrainSide(split: SplitArtifact, effectiveEntries: readonly AuthoringLedgerEntry[], verifiedPreWindowPrs: ReadonlySet<number>): string[];
35
+ /**
36
+ * The composed authored freeze precondition (strategy D5 Q2 + Q3). Runs all three
37
+ * orthogonal gates, aggregates EVERY violation, and throws ONE `GATE_INVALID`
38
+ * naming them all (compose-never-replace; both axes surfaced, never short-circuit).
39
+ * No-op on clean input. Call at the authored producer's freeze step, before any
40
+ * lock/substrate write (Tenet 13 sensor-not-actuator: detect + fail, never repair).
41
+ */
42
+ export declare function assertAuthoredFreezePreconditions(split: SplitArtifact, effectiveEntries: readonly AuthoringLedgerEntry[],
43
+ /** Fixture PRs proven strictly pre-window by ancestry at the git-holding boundary (empty ⇒ strict). */
44
+ verifiedPreWindowPrs: ReadonlySet<number>): void;
45
+ //# sourceMappingURL=authored-freeze-gates.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"authored-freeze-gates.d.ts","sourceRoot":"","sources":["../../src/spine/authored-freeze-gates.ts"],"names":[],"mappings":"AAoBA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAClE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAsChD;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,aAAa,GAAG,MAAM,EAAE,CAchE;AAED;;;;;;;GAOG;AACH,wBAAgB,0BAA0B,CACxC,KAAK,EAAE,aAAa,EACpB,gBAAgB,EAAE,SAAS,oBAAoB,EAAE,GAChD,MAAM,EAAE,CA4BV;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,8BAA8B,CAC5C,KAAK,EAAE,aAAa,EACpB,gBAAgB,EAAE,SAAS,oBAAoB,EAAE,EACjD,oBAAoB,EAAE,WAAW,CAAC,MAAM,CAAC,GACxC,MAAM,EAAE,CA0BV;AAED;;;;;;GAMG;AACH,wBAAgB,iCAAiC,CAC/C,KAAK,EAAE,aAAa,EACpB,gBAAgB,EAAE,SAAS,oBAAoB,EAAE;AACjD,uGAAuG;AACvG,oBAAoB,EAAE,WAAW,CAAC,MAAM,CAAC,GACxC,IAAI,CAgBN"}
@@ -0,0 +1,167 @@
1
+ // ─── ADR-112 §5.1/§5.3 Slice D5 — the authored freeze-time preconditions (pure) ─
2
+ //
3
+ // When the AUTHORED producer freezes a cert-run split, three orthogonal, fail-loud
4
+ // gates must hold BEFORE any lock/substrate is written (strategy D5 ruling
5
+ // 2026-07-02, Q2 + Q3). They are the §5 leakage guard + the §5.3 generalization
6
+ // floor made MECHANICAL — verified against real split/ledger facts, never the
7
+ // author's `authoredAfterSplit:true` attestation (Tenet 13 sensor-not-actuator ⊕
8
+ // Tenet 4 fail-loud). Detect-never-repair: a violation THROWS `GATE_INVALID`; the
9
+ // materializer never re-freezes or re-authors (that is a human authoring-lane act).
10
+ //
11
+ // COMPOSE-NEVER-REPLACE (strategy Q3): the three axes are independent — a rule can
12
+ // pass one and fail another — so `assertAuthoredFreezePreconditions` collects ALL
13
+ // violations across ALL axes and throws ONCE naming every one, never short-circuits
14
+ // on the first (else a two-round debug for the operator).
15
+ //
16
+ // Pure: no I/O. The caller passes the resolved split + the EFFECTIVE (last-per-
17
+ // ruleId) authoring-ledger entries; the facts are DEREFERENCED from the split
18
+ // artifact (Tenet 20), never recomputed here.
19
+ import { TotemError } from '../errors.js';
20
+ /**
21
+ * A certifiable row's timestamp MUST be a full ISO-8601 instant with a time
22
+ * component AND an explicit timezone — a date-only string (`2026-07-01`) makes
23
+ * "frozen BEFORE authored" ambiguous within the day (codex Q3 + agy row-vii), and a
24
+ * zone-less `2026-07-01T12:00:00` would be parsed by `Date.parse` as LOCAL time,
25
+ * making the comparison timezone-nondeterministic across machines/CI (CR Minor).
26
+ * Require `Z` or a numeric `±hh:mm` offset so the temporal proof is deterministic.
27
+ */
28
+ const FULL_INSTANT_RE = /^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}(:\d{2})?(\.\d+)?(Z|[+-]\d{2}:\d{2})$/;
29
+ /**
30
+ * Parse a certifiable-row instant to epoch-ms, fail-loud on a date-only/malformed
31
+ * value (agy row-vii: never fall back to `now`/0 or silently skip the check).
32
+ * Returns a RESULT UNION rather than throwing — the caller aggregates the reason
33
+ * into the single `GATE_INVALID` (compose-never-replace), so there is no
34
+ * exceptions-as-control-flow inside the pure gate.
35
+ */
36
+ function parseCertifiableInstant(value, label) {
37
+ if (!FULL_INSTANT_RE.test(value.trim())) {
38
+ return {
39
+ ok: false,
40
+ message: `${label} ('${value}') is not a full ISO-8601 instant (needs a T<hh>:<mm> time) — ` +
41
+ `a date-only/malformed stamp makes the frozen-before-authoring proof ambiguous`,
42
+ };
43
+ }
44
+ const ms = Date.parse(value.trim());
45
+ if (!Number.isFinite(ms)) {
46
+ return { ok: false, message: `${label} ('${value}') is not a parseable ISO-8601 instant` };
47
+ }
48
+ return { ok: true, ms };
49
+ }
50
+ /**
51
+ * Q2 (strategy floor): the held-out slice must be ≥ 50% of the non-excluded
52
+ * scored window `N = |trainPrs| + |heldOutPrs|` — inclusive (`=0.5` passes), so
53
+ * per-rule generalization evidence (§5.3) rests on a substantial unseen slice.
54
+ * Returns [] or the single violation message.
55
+ */
56
+ export function checkHeldOutFloor(split) {
57
+ const heldOut = split.heldOutPrs.length;
58
+ const n = split.trainPrs.length + heldOut;
59
+ if (n === 0) {
60
+ return ['Q2 held-out floor: the non-excluded window is empty (|train| + |heldOut| == 0)'];
61
+ }
62
+ const ratio = heldOut / n;
63
+ if (ratio < 0.5) {
64
+ return [
65
+ `Q2 held-out floor: heldOut/N = ${heldOut}/${n} = ${ratio.toFixed(4)} < 0.50 — the authored ` +
66
+ `cert window must hold out at least half the scored PRs (ADR-112 §5.3 generalization floor)`,
67
+ ];
68
+ }
69
+ return [];
70
+ }
71
+ /**
72
+ * Q3.1 (strategy temporal): the split's `frozenAt` must PRECEDE every effective
73
+ * rule's `authoredAt` — §5.1 "frozen before authoring" made mechanical. A split
74
+ * frozen at-or-after authoring is a HARD FAIL (the author may have tuned matchers
75
+ * against held-out code — an exposure re-freezing cannot undo). Returns per-rule
76
+ * violation messages ([] if clean). A missing `frozenAt` is itself a violation
77
+ * (no mechanical proof possible).
78
+ */
79
+ export function checkFrozenBeforeAuthoring(split, effectiveEntries) {
80
+ const issues = [];
81
+ if (split.frozenAt === undefined) {
82
+ return [
83
+ 'Q3 temporal: the split carries no `frozenAt` stamp — an authored cert split MUST record ' +
84
+ 'its freeze instant so frozen-before-authoring is mechanically provable (ADR-112 §5.1)',
85
+ ];
86
+ }
87
+ const frozen = parseCertifiableInstant(split.frozenAt, 'split.frozenAt');
88
+ if (!frozen.ok) {
89
+ return [`Q3 temporal: ${frozen.message}`];
90
+ }
91
+ const frozenMs = frozen.ms;
92
+ for (const entry of effectiveEntries) {
93
+ const authored = parseCertifiableInstant(entry.authoredAt, `rule '${entry.ruleId}' authoredAt`);
94
+ if (!authored.ok) {
95
+ issues.push(`Q3 temporal: ${authored.message}`);
96
+ continue;
97
+ }
98
+ if (frozenMs >= authored.ms) {
99
+ issues.push(`Q3 temporal: rule '${entry.ruleId}' was authored at '${entry.authoredAt}' but the split ` +
100
+ `froze at '${split.frozenAt}' — the split must freeze STRICTLY BEFORE authoring ` +
101
+ `(frozenAt < authoredAt); a split frozen at-or-after authoring is a §5.1 leakage event`);
102
+ }
103
+ }
104
+ return issues;
105
+ }
106
+ /**
107
+ * Q3.2 (strategy membership) — LEAKAGE SEMANTICS (the #2294-couple ruling,
108
+ * operator option (a) recorded on strategy#810): a positive fixture PR is legal
109
+ * iff `∉ heldOutPrs` AND (`∈ trainPrs` OR strictly pre-window). Falsifying
110
+ * Metric (c)'s condition is HELD-OUT membership — a pre-window anchor cannot
111
+ * leak code that post-dates it, so the Q4-ruled cert-1 anchor set (all pre-
112
+ * window) stays legal without re-anchoring.
113
+ *
114
+ * This gate stays PURE (no git): "strictly pre-window" is proven by ANCESTRY
115
+ * (`is-ancestor(mergeCommit(pr), cutBoundarySha)` — never PR-number order,
116
+ * which is not merge-ordered) at the command layer that has git, and handed in
117
+ * as `verifiedPreWindowPrs`. An empty set reproduces the strict pre-ruling
118
+ * behavior byte-for-byte (the legacy lane passes empty). Returns per-(rule,pr)
119
+ * violation messages ([] if clean).
120
+ */
121
+ export function checkPositiveFixturesTrainSide(split, effectiveEntries, verifiedPreWindowPrs) {
122
+ const trainSet = new Set(split.trainPrs);
123
+ const heldOutSet = new Set(split.heldOutPrs);
124
+ const issues = [];
125
+ for (const entry of effectiveEntries) {
126
+ for (const pr of entry.positiveFixturePrs) {
127
+ // Held-out membership is checked FIRST and is never overridable by the
128
+ // verified set — held-out members descend from the cut boundary, so a
129
+ // correct ancestry proof cannot contain them; a set that does is a caller
130
+ // fault the gate must not honor (FM (c) is the load-bearing condition).
131
+ if (heldOutSet.has(pr)) {
132
+ issues.push(`Q3 membership: rule '${entry.ruleId}' positive fixture PR #${pr} is in the HELD-OUT ` +
133
+ `slice — a held-out positive fixture is the ADR-112 §5(2)/FM(c) leakage violation`);
134
+ continue;
135
+ }
136
+ if (trainSet.has(pr) || verifiedPreWindowPrs.has(pr))
137
+ continue;
138
+ issues.push(`Q3 membership: rule '${entry.ruleId}' positive fixture PR #${pr} is outside the window ` +
139
+ `and NOT proven strictly pre-window (ancestry to the cut boundary) — post-window or ` +
140
+ `unverifiable anchors are illegal (ADR-112 §5.2 leakage semantics)`);
141
+ }
142
+ }
143
+ return issues;
144
+ }
145
+ /**
146
+ * The composed authored freeze precondition (strategy D5 Q2 + Q3). Runs all three
147
+ * orthogonal gates, aggregates EVERY violation, and throws ONE `GATE_INVALID`
148
+ * naming them all (compose-never-replace; both axes surfaced, never short-circuit).
149
+ * No-op on clean input. Call at the authored producer's freeze step, before any
150
+ * lock/substrate write (Tenet 13 sensor-not-actuator: detect + fail, never repair).
151
+ */
152
+ export function assertAuthoredFreezePreconditions(split, effectiveEntries,
153
+ /** Fixture PRs proven strictly pre-window by ancestry at the git-holding boundary (empty ⇒ strict). */
154
+ verifiedPreWindowPrs) {
155
+ const issues = [
156
+ ...checkHeldOutFloor(split),
157
+ ...checkFrozenBeforeAuthoring(split, effectiveEntries),
158
+ ...checkPositiveFixturesTrainSide(split, effectiveEntries, verifiedPreWindowPrs),
159
+ ];
160
+ if (issues.length > 0) {
161
+ throw new TotemError('GATE_INVALID', `authored cert freeze rejected — ${issues.length} precondition violation(s):\n` +
162
+ issues.map((i) => ` • ${i}`).join('\n'), 'Re-freeze a split BEFORE authoring, keep every positive fixture out of held-out (train or ' +
163
+ 'proven pre-window), and hold out ≥ half the window; the materializer never auto-repairs ' +
164
+ 'a leakage event (ADR-112 §5.1/§5.3).');
165
+ }
166
+ }
167
+ //# sourceMappingURL=authored-freeze-gates.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"authored-freeze-gates.js","sourceRoot":"","sources":["../../src/spine/authored-freeze-gates.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=authored-freeze-gates.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"authored-freeze-gates.test.d.ts","sourceRoot":"","sources":["../../src/spine/authored-freeze-gates.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,159 @@
1
+ import { describe, expect, it } from 'vitest';
2
+ import { assertAuthoredFreezePreconditions, checkFrozenBeforeAuthoring, checkHeldOutFloor, checkPositiveFixturesTrainSide, } from './authored-freeze-gates.js';
3
+ // ─── ADR-112 §5.1/§5.3 D5 — the authored freeze-time gates (Q2 floor + Q3 temporal/membership) ─
4
+ const sha = (n) => String(n).padStart(40, '0');
5
+ /** A split fixture; controls empty (authored controls are train-side, not split tags). */
6
+ function split(over = {}) {
7
+ return {
8
+ asOfCommit: sha(1),
9
+ trainPrs: [1, 2],
10
+ heldOutPrs: [3, 4],
11
+ excludedPrs: [],
12
+ positiveControlPrs: [],
13
+ negativeControlPrs: [],
14
+ splitRule: { predicate: 'code-touching', cutIndex: 2 },
15
+ frozenAt: '2026-06-01T00:00:00.000Z',
16
+ ...over,
17
+ };
18
+ }
19
+ /**
20
+ * A ledger entry — the gates read ONLY `ruleId` / `authoredAt` / `positiveFixturePrs`, so we
21
+ * build the read fields and cast (this is a gate-LOGIC unit test, not a schema-parse test).
22
+ */
23
+ function entry(over = {}) {
24
+ return {
25
+ ruleId: 'rule-a',
26
+ authoredAt: '2026-06-15T12:00:00.000Z',
27
+ positiveFixturePrs: [1],
28
+ ...over,
29
+ };
30
+ }
31
+ describe('checkHeldOutFloor (Q2)', () => {
32
+ it('(v) heldOut/N < 0.5 → one violation naming the ratio', () => {
33
+ const issues = checkHeldOutFloor(split({ trainPrs: [1, 2, 3], heldOutPrs: [4] }));
34
+ expect(issues).toHaveLength(1);
35
+ expect(issues[0]).toMatch(/1\/4 = 0\.2500 < 0\.50/);
36
+ });
37
+ it('(vi) heldOut/N = 0.5 exactly → PASS (inclusive)', () => {
38
+ expect(checkHeldOutFloor(split({ trainPrs: [1, 2], heldOutPrs: [3, 4] }))).toEqual([]);
39
+ });
40
+ it('heldOut/N > 0.5 → PASS', () => {
41
+ expect(checkHeldOutFloor(split({ trainPrs: [1], heldOutPrs: [2, 3] }))).toEqual([]);
42
+ });
43
+ it('empty window → violation (guards div-by-zero)', () => {
44
+ const issues = checkHeldOutFloor(split({ trainPrs: [], heldOutPrs: [] }));
45
+ expect(issues[0]).toMatch(/window is empty/);
46
+ });
47
+ });
48
+ describe('checkFrozenBeforeAuthoring (Q3 temporal)', () => {
49
+ it('frozen strictly before authored → PASS', () => {
50
+ expect(checkFrozenBeforeAuthoring(split({ frozenAt: '2026-06-01T00:00:00.000Z' }), [
51
+ entry({ authoredAt: '2026-06-15T12:00:00.000Z' }),
52
+ ])).toEqual([]);
53
+ });
54
+ it('(ii) frozen AFTER authored → violation naming the rule + BOTH stamps', () => {
55
+ const issues = checkFrozenBeforeAuthoring(split({ frozenAt: '2026-06-20T00:00:00.000Z' }), [
56
+ entry({ ruleId: 'rule-late', authoredAt: '2026-06-15T12:00:00.000Z' }),
57
+ ]);
58
+ expect(issues).toHaveLength(1);
59
+ expect(issues[0]).toContain('rule-late');
60
+ expect(issues[0]).toContain('2026-06-15T12:00:00.000Z');
61
+ expect(issues[0]).toContain('2026-06-20T00:00:00.000Z');
62
+ expect(issues[0]).toMatch(/STRICTLY BEFORE/);
63
+ });
64
+ it('frozen EQUAL to authored → violation (cannot prove strictly-before)', () => {
65
+ const t = '2026-06-15T12:00:00.000Z';
66
+ const issues = checkFrozenBeforeAuthoring(split({ frozenAt: t }), [entry({ authoredAt: t })]);
67
+ expect(issues).toHaveLength(1);
68
+ });
69
+ it('(vii) date-only authoredAt → violation (ambiguous "after"), never a silent pass', () => {
70
+ const issues = checkFrozenBeforeAuthoring(split({ frozenAt: '2026-06-01T00:00:00.000Z' }), [
71
+ entry({ authoredAt: '2026-06-15' }),
72
+ ]);
73
+ expect(issues).toHaveLength(1);
74
+ expect(issues[0]).toMatch(/not a full ISO-8601 instant/);
75
+ });
76
+ it('(vii) missing frozenAt → violation (no mechanical proof possible)', () => {
77
+ const issues = checkFrozenBeforeAuthoring(split({ frozenAt: undefined }), [entry()]);
78
+ expect(issues).toHaveLength(1);
79
+ expect(issues[0]).toMatch(/no `frozenAt` stamp/);
80
+ });
81
+ it('every offending rule is surfaced (not just the first)', () => {
82
+ const issues = checkFrozenBeforeAuthoring(split({ frozenAt: '2026-06-20T00:00:00.000Z' }), [
83
+ entry({ ruleId: 'r1', authoredAt: '2026-06-15T00:00:00.000Z' }),
84
+ entry({ ruleId: 'r2', authoredAt: '2026-06-16T00:00:00.000Z' }),
85
+ ]);
86
+ expect(issues).toHaveLength(2);
87
+ expect(issues.join('\n')).toContain('r1');
88
+ expect(issues.join('\n')).toContain('r2');
89
+ });
90
+ });
91
+ describe('checkPositiveFixturesTrainSide (Q3 membership — §5.2 leakage semantics)', () => {
92
+ const none = new Set();
93
+ it('all positive fixtures train-side → PASS', () => {
94
+ expect(checkPositiveFixturesTrainSide(split({ trainPrs: [1, 2], heldOutPrs: [3, 4] }), [entry({ positiveFixturePrs: [1, 2] })], none)).toEqual([]);
95
+ });
96
+ it('(iii) a held-out positive fixture → violation naming rule + PR + HELD-OUT', () => {
97
+ const issues = checkPositiveFixturesTrainSide(split({ trainPrs: [1], heldOutPrs: [3, 4] }), [entry({ ruleId: 'rule-leak', positiveFixturePrs: [3] })], none);
98
+ expect(issues).toHaveLength(1);
99
+ expect(issues[0]).toContain('rule-leak');
100
+ expect(issues[0]).toContain('#3');
101
+ expect(issues[0]).toContain('HELD-OUT');
102
+ });
103
+ it('a fixture outside the window, UNVERIFIED → violation ("NOT proven strictly pre-window")', () => {
104
+ const issues = checkPositiveFixturesTrainSide(split({ trainPrs: [1], heldOutPrs: [3] }), [entry({ positiveFixturePrs: [99] })], none);
105
+ expect(issues[0]).toContain('NOT proven strictly pre-window');
106
+ });
107
+ it('a fixture outside the window, PROVEN pre-window → PASS (the #2294-couple option (a))', () => {
108
+ expect(checkPositiveFixturesTrainSide(split({ trainPrs: [447, 601], heldOutPrs: [602, 697] }), [entry({ positiveFixturePrs: [422, 447] })], new Set([422]))).toEqual([]);
109
+ });
110
+ it('the verified set can NEVER override held-out membership (FM (c) defense-in-depth)', () => {
111
+ const issues = checkPositiveFixturesTrainSide(split({ trainPrs: [1], heldOutPrs: [3] }), [entry({ positiveFixturePrs: [3] })], new Set([3]));
112
+ expect(issues).toHaveLength(1);
113
+ expect(issues[0]).toContain('HELD-OUT');
114
+ });
115
+ it('a post-window fixture (not in the verified set) → violation, the door stays shut', () => {
116
+ // PR 999 merged after asOfCommit: the ancestry derivation cannot resolve or prove
117
+ // it, so it is absent from the verified set and must reject.
118
+ const issues = checkPositiveFixturesTrainSide(split({ trainPrs: [1], heldOutPrs: [3] }), [entry({ positiveFixturePrs: [999] })], new Set([422]));
119
+ expect(issues).toHaveLength(1);
120
+ expect(issues[0]).toContain('#999');
121
+ });
122
+ });
123
+ describe('assertAuthoredFreezePreconditions (composed, compose-never-replace)', () => {
124
+ const none = new Set();
125
+ it('(i) clean split + train-side fixtures + frozen-before → no throw', () => {
126
+ expect(() => assertAuthoredFreezePreconditions(split(), [entry({ positiveFixturePrs: [1, 2] })], none)).not.toThrow();
127
+ });
128
+ it('(iv) both axes violate → ONE throw surfacing BOTH (not short-circuited)', () => {
129
+ // temporal (frozen after authored) AND membership (held-out fixture) AND floor (<0.5).
130
+ let caught;
131
+ try {
132
+ assertAuthoredFreezePreconditions(split({ trainPrs: [1, 2, 3], heldOutPrs: [4], frozenAt: '2026-06-20T00:00:00.000Z' }), [entry({ ruleId: 'rx', authoredAt: '2026-06-15T00:00:00.000Z', positiveFixturePrs: [4] })], none);
133
+ }
134
+ catch (e) {
135
+ caught = e;
136
+ }
137
+ expect(caught).toBeDefined();
138
+ const msg = caught.message;
139
+ expect(msg).toMatch(/Q2 held-out floor/); // floor axis
140
+ expect(msg).toMatch(/Q3 temporal/); // temporal axis
141
+ expect(msg).toMatch(/Q3 membership/); // membership axis
142
+ expect(msg).toContain('rx');
143
+ });
144
+ it('a proven pre-window fixture passes the composed gate (§5.2 leakage semantics)', () => {
145
+ expect(() => assertAuthoredFreezePreconditions(split(), [entry({ positiveFixturePrs: [5] })], // pr 5: outside train [1,2] ∪ heldOut [3,4]
146
+ new Set([5]))).not.toThrow();
147
+ });
148
+ it('surfaces a GATE_INVALID TotemError code', () => {
149
+ let code;
150
+ try {
151
+ assertAuthoredFreezePreconditions(split({ frozenAt: undefined }), [entry()], none);
152
+ }
153
+ catch (e) {
154
+ code = e.code;
155
+ }
156
+ expect(code).toBe('GATE_INVALID');
157
+ });
158
+ });
159
+ //# sourceMappingURL=authored-freeze-gates.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"authored-freeze-gates.test.js","sourceRoot":"","sources":["../../src/spine/authored-freeze-gates.test.ts"],"names":[],"mappings":"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"}
@@ -750,6 +750,14 @@ export declare const AuthoredRulesFileSchema: z.ZodObject<{
750
750
  authoredAfterSplit: z.ZodLiteral<true>;
751
751
  /** §5 attestation — the author did not inspect the held-out slice. Always `true`; sandboxed in C. */
752
752
  heldOutNonInspectionAttestation: z.ZodLiteral<true>;
753
+ /**
754
+ * ADR-112 §5.1/§8 R1 — the frozen split's `freezeCommitment`, REQUIRED when
755
+ * `splitRef` is a content-addressed frozen-artifact reference (`split:<sha256>`):
756
+ * the intake binding verifies it against the resolved artifact and chains it
757
+ * into every ledger entry's material (the (b) tamper-evidence leg). A legacy
758
+ * free-text `splitRef` omits it (pre-R1 adherence-class shape, byte-unchanged).
759
+ */
760
+ freezeCommitment: z.ZodOptional<z.ZodString>;
753
761
  /** The authored rules (≥1). */
754
762
  rules: z.ZodArray<z.ZodObject<{
755
763
  /** Agent-id or operator handle — attributable (mirrors the provenance field). Trimmed. */
@@ -1080,6 +1088,7 @@ export declare const AuthoredRulesFileSchema: z.ZodObject<{
1080
1088
  splitRef: string;
1081
1089
  authoredAfterSplit: true;
1082
1090
  heldOutNonInspectionAttestation: true;
1091
+ freezeCommitment?: string | undefined;
1083
1092
  }, {
1084
1093
  rules: {
1085
1094
  author: string;
@@ -1127,6 +1136,7 @@ export declare const AuthoredRulesFileSchema: z.ZodObject<{
1127
1136
  splitRef: string;
1128
1137
  authoredAfterSplit: true;
1129
1138
  heldOutNonInspectionAttestation: true;
1139
+ freezeCommitment?: string | undefined;
1130
1140
  }>;
1131
1141
  export type AuthoredRulesFile = z.infer<typeof AuthoredRulesFileSchema>;
1132
1142
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"authored-rule.d.ts","sourceRoot":"","sources":["../../src/spine/authored-rule.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"authored-rule.d.ts","sourceRoot":"","sources":["../../src/spine/authored-rule.ts"],"names":[],"mappings":"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"}
@@ -221,6 +221,17 @@ export const AuthoredRulesFileSchema = z
221
221
  authoredAfterSplit: z.literal(true),
222
222
  /** §5 attestation — the author did not inspect the held-out slice. Always `true`; sandboxed in C. */
223
223
  heldOutNonInspectionAttestation: z.literal(true),
224
+ /**
225
+ * ADR-112 §5.1/§8 R1 — the frozen split's `freezeCommitment`, REQUIRED when
226
+ * `splitRef` is a content-addressed frozen-artifact reference (`split:<sha256>`):
227
+ * the intake binding verifies it against the resolved artifact and chains it
228
+ * into every ledger entry's material (the (b) tamper-evidence leg). A legacy
229
+ * free-text `splitRef` omits it (pre-R1 adherence-class shape, byte-unchanged).
230
+ */
231
+ freezeCommitment: z
232
+ .string()
233
+ .regex(/^[0-9a-f]{64}$/, 'freezeCommitment must be the frozen split artifact sha256 hex')
234
+ .optional(),
224
235
  /** The authored rules (≥1). */
225
236
  rules: z.array(AuthoredRuleInputSchema).min(1, {
226
237
  message: 'authored-rules.yaml must declare ≥1 rule',