@mmnto/totem 1.88.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.
- package/dist/index.d.ts +7 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -2
- package/dist/index.js.map +1 -1
- package/dist/sarif.d.ts +17 -0
- package/dist/sarif.d.ts.map +1 -1
- package/dist/sarif.js +71 -5
- package/dist/sarif.js.map +1 -1
- package/dist/sarif.test.js +94 -1
- package/dist/sarif.test.js.map +1 -1
- package/dist/spine/authored-controls.d.ts +8 -0
- package/dist/spine/authored-controls.d.ts.map +1 -1
- package/dist/spine/authored-controls.js +15 -5
- package/dist/spine/authored-controls.js.map +1 -1
- package/dist/spine/authored-controls.test.js +31 -0
- package/dist/spine/authored-controls.test.js.map +1 -1
- package/dist/spine/authored-freeze-gates.d.ts +45 -0
- package/dist/spine/authored-freeze-gates.d.ts.map +1 -0
- package/dist/spine/authored-freeze-gates.js +167 -0
- package/dist/spine/authored-freeze-gates.js.map +1 -0
- package/dist/spine/authored-freeze-gates.test.d.ts +2 -0
- package/dist/spine/authored-freeze-gates.test.d.ts.map +1 -0
- package/dist/spine/authored-freeze-gates.test.js +159 -0
- package/dist/spine/authored-freeze-gates.test.js.map +1 -0
- package/dist/spine/authored-rule.d.ts +10 -0
- package/dist/spine/authored-rule.d.ts.map +1 -1
- package/dist/spine/authored-rule.js +11 -0
- package/dist/spine/authored-rule.js.map +1 -1
- package/dist/spine/authoring-ledger.d.ts +28 -0
- package/dist/spine/authoring-ledger.d.ts.map +1 -1
- package/dist/spine/authoring-ledger.js +27 -0
- package/dist/spine/authoring-ledger.js.map +1 -1
- package/dist/spine/authoring-ledger.test.js +8 -0
- package/dist/spine/authoring-ledger.test.js.map +1 -1
- package/dist/spine/cert-corpus-seed.d.ts +38 -8
- package/dist/spine/cert-corpus-seed.d.ts.map +1 -1
- package/dist/spine/cert-corpus-seed.js +52 -1
- package/dist/spine/cert-corpus-seed.js.map +1 -1
- package/dist/spine/cert-corpus-seed.test.js +76 -0
- package/dist/spine/cert-corpus-seed.test.js.map +1 -1
- package/dist/spine/frozen-split.d.ts +541 -0
- package/dist/spine/frozen-split.d.ts.map +1 -0
- package/dist/spine/frozen-split.js +205 -0
- package/dist/spine/frozen-split.js.map +1 -0
- package/dist/spine/frozen-split.test.d.ts +2 -0
- package/dist/spine/frozen-split.test.d.ts.map +1 -0
- package/dist/spine/frozen-split.test.js +89 -0
- package/dist/spine/frozen-split.test.js.map +1 -0
- package/dist/spine/gate2-eligibility.d.ts +33 -0
- package/dist/spine/gate2-eligibility.d.ts.map +1 -0
- package/dist/spine/gate2-eligibility.js +54 -0
- package/dist/spine/gate2-eligibility.js.map +1 -0
- package/dist/spine/gate2-eligibility.test.d.ts +2 -0
- package/dist/spine/gate2-eligibility.test.d.ts.map +1 -0
- package/dist/spine/gate2-eligibility.test.js +252 -0
- package/dist/spine/gate2-eligibility.test.js.map +1 -0
- package/dist/spine/ledgers.d.ts +24 -0
- package/dist/spine/ledgers.d.ts.map +1 -1
- package/dist/spine/split.d.ts +16 -0
- package/dist/spine/split.d.ts.map +1 -1
- package/dist/spine/split.js +13 -0
- package/dist/spine/split.js.map +1 -1
- package/dist/spine/windtunnel-firing.d.ts +6 -2
- package/dist/spine/windtunnel-firing.d.ts.map +1 -1
- package/dist/spine/windtunnel-firing.js.map +1 -1
- package/dist/spine/windtunnel-lock.d.ts +4 -4
- package/dist/spine/windtunnel-scorer-authored.d.ts +25 -4
- package/dist/spine/windtunnel-scorer-authored.d.ts.map +1 -1
- package/dist/spine/windtunnel-scorer-authored.js +65 -13
- package/dist/spine/windtunnel-scorer-authored.js.map +1 -1
- package/dist/spine/windtunnel-scorer-authored.test.js +103 -1
- package/dist/spine/windtunnel-scorer-authored.test.js.map +1 -1
- 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 @@
|
|
|
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":"AAmBA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAQxB,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AACjE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAErD,wFAAwF;AACxF,eAAO,MAAM,oBAAoB,yCAAuC,CAAC;AACzE,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAQlE;;;;;;;GAOG;AACH,eAAO,MAAM,sBAAsB;;IAEjC;;;;;;;;;OASG;;;;;;;;;;;EAQH,CAAC;AACH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAEtE,+GAA+G;AAC/G,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;IAS/B,CAAC;AACH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAWlE,eAAO,MAAM,mBAAmB,QAE/B,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,wBAAwB;IACnC;;;;;;;;;;OAUG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAMH,mFAAmF;;;QArEnF;;;;;;;;;WASG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAgEH,6FAA6F;;IAI7F,gFAAgF;;IAIhF,wEAAwE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAExE,CAAC;AACH,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAwB1E,eAAO,MAAM,uBAAuB;IAEhC,0FAA0F;;IAK1F;;;;;OAKG;;IAQH,sGAAsG;;IAOtG,yGAAyG;;IAEzG;;;;;;;OAOG;;IAOH,gFAAgF;;IAIhF,0EAA0E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAI1E;;;;OAIG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAEH;;;;OAIG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAGI,CAAC;AACZ,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAExE;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,uBAAuB;IAEhC,qMAAqM;;IAOrM,qGAAqG;;IAErG,qGAAqG;;IAErG,+BAA+B;;
|
|
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',
|