@mmnto/totem 1.78.0 → 1.80.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 (64) hide show
  1. package/dist/artifacts/panel.d.ts +48 -48
  2. package/dist/artifacts/schema.d.ts +40 -40
  3. package/dist/compiler-schema.d.ts +2455 -35
  4. package/dist/compiler-schema.d.ts.map +1 -1
  5. package/dist/compiler-schema.js +229 -1
  6. package/dist/compiler-schema.js.map +1 -1
  7. package/dist/compiler-schema.test.js +249 -2
  8. package/dist/compiler-schema.test.js.map +1 -1
  9. package/dist/compiler.d.ts +2 -2
  10. package/dist/compiler.d.ts.map +1 -1
  11. package/dist/compiler.js +1 -1
  12. package/dist/compiler.js.map +1 -1
  13. package/dist/config-schema.d.ts +6 -6
  14. package/dist/index.d.ts +10 -4
  15. package/dist/index.d.ts.map +1 -1
  16. package/dist/index.js +4 -1
  17. package/dist/index.js.map +1 -1
  18. package/dist/spine/authored-rule.d.ts +1358 -0
  19. package/dist/spine/authored-rule.d.ts.map +1 -0
  20. package/dist/spine/authored-rule.js +313 -0
  21. package/dist/spine/authored-rule.js.map +1 -0
  22. package/dist/spine/authored-rule.test.d.ts +2 -0
  23. package/dist/spine/authored-rule.test.d.ts.map +1 -0
  24. package/dist/spine/authored-rule.test.js +226 -0
  25. package/dist/spine/authored-rule.test.js.map +1 -0
  26. package/dist/spine/authoring-ledger.d.ts +204 -0
  27. package/dist/spine/authoring-ledger.d.ts.map +1 -0
  28. package/dist/spine/authoring-ledger.js +220 -0
  29. package/dist/spine/authoring-ledger.js.map +1 -0
  30. package/dist/spine/authoring-ledger.test.d.ts +2 -0
  31. package/dist/spine/authoring-ledger.test.d.ts.map +1 -0
  32. package/dist/spine/authoring-ledger.test.js +144 -0
  33. package/dist/spine/authoring-ledger.test.js.map +1 -0
  34. package/dist/spine/candidate-rule.d.ts +32 -0
  35. package/dist/spine/candidate-rule.d.ts.map +1 -1
  36. package/dist/spine/candidate-rule.js +2 -2
  37. package/dist/spine/candidate-rule.js.map +1 -1
  38. package/dist/spine/classify.d.ts +5 -5
  39. package/dist/spine/compile.d.ts +16 -4
  40. package/dist/spine/compile.d.ts.map +1 -1
  41. package/dist/spine/compile.js +23 -0
  42. package/dist/spine/compile.js.map +1 -1
  43. package/dist/spine/compile.test.js +72 -0
  44. package/dist/spine/compile.test.js.map +1 -1
  45. package/dist/spine/corpus-dispositions.d.ts +22 -22
  46. package/dist/spine/extract.d.ts +2 -2
  47. package/dist/spine/extract.d.ts.map +1 -1
  48. package/dist/spine/extract.js +5 -4
  49. package/dist/spine/extract.js.map +1 -1
  50. package/dist/spine/ledgers.d.ts +46 -21
  51. package/dist/spine/ledgers.d.ts.map +1 -1
  52. package/dist/spine/ledgers.js +16 -8
  53. package/dist/spine/ledgers.js.map +1 -1
  54. package/dist/spine/rule-policy.d.ts +27 -0
  55. package/dist/spine/rule-policy.d.ts.map +1 -0
  56. package/dist/spine/rule-policy.js +43 -0
  57. package/dist/spine/rule-policy.js.map +1 -0
  58. package/dist/spine/rule-policy.test.d.ts +2 -0
  59. package/dist/spine/rule-policy.test.d.ts.map +1 -0
  60. package/dist/spine/rule-policy.test.js +31 -0
  61. package/dist/spine/rule-policy.test.js.map +1 -0
  62. package/dist/spine/windtunnel-lock.d.ts +14 -14
  63. package/dist/store/lance-schema.d.ts +2 -2
  64. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"compiler-schema.d.ts","sourceRoot":"","sources":["../src/compiler-schema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"compiler-schema.d.ts","sourceRoot":"","sources":["../src/compiler-schema.ts"],"names":[],"mappings":"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"}
@@ -39,6 +39,37 @@ export const AstGrepYamlRuleSchema = NapiConfigSchema;
39
39
  * the very transform/hash-stability hazard flagged for `reviewThread` below.
40
40
  */
41
41
  const COMMIT_SHA_RE = /^[0-9a-f]{40}$/;
42
+ /**
43
+ * ADR-112 §4/§8 — the codomain of an IMMUTABLE lesson reference: the 16-hex
44
+ * `hashLesson` id (`compile-lesson.ts`). A `lessonRef` MUST be this immutable id,
45
+ * never a path (`docs/lessons/foo.md`) or a mutable alias (`latest`) — a drifting
46
+ * anchor would break the §4 preimage-differential's identity discipline. Pinned
47
+ * to the codomain so a path/alias fails LOUD at the schema boundary. NOTE
48
+ * (couple-on-merge, strategy#767): bound to the current 16-hex `hashLesson` form;
49
+ * widen here if the lesson-id codomain ever changes.
50
+ */
51
+ const LESSON_REF_RE = /^[0-9a-f]{16}$/;
52
+ /**
53
+ * ISO-8601 shape for an authoring date — a calendar date (`YYYY-MM-DD`) or a full
54
+ * timestamp with optional fractional seconds + `Z`/offset. Shape only; the calendar
55
+ * validity is enforced by `isIso8601CalendarDate` (#2259 — GCA-high + CR).
56
+ */
57
+ const ISO_8601_DATE_RE = /^\d{4}-\d{2}-\d{2}(?:T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:?\d{2})?)?$/;
58
+ /**
59
+ * True iff `s` is a well-formed ISO-8601 date/timestamp AND a REAL calendar date.
60
+ * `Date.parse` alone is insufficient: it NORMALIZES day-overflow (`2026-02-31` → Mar 3,
61
+ * `2026-02-29` non-leap → Mar 1) instead of rejecting it (#2259 CR re-review). The
62
+ * `Date.UTC` round-trip validates the date HEAD's calendar independently of any timezone
63
+ * in the time component — a negative offset can legitimately shift the UTC day, so the
64
+ * head, not the parsed instant, is what must round-trip.
65
+ */
66
+ export function isIso8601CalendarDate(s) {
67
+ if (!ISO_8601_DATE_RE.test(s) || Number.isNaN(Date.parse(s)))
68
+ return false;
69
+ const [y, m, d] = s.slice(0, 10).split('-').map(Number);
70
+ const probe = new Date(Date.UTC(y, m - 1, d));
71
+ return probe.getUTCFullYear() === y && probe.getUTCMonth() + 1 === m && probe.getUTCDate() === d;
72
+ }
42
73
  /**
43
74
  * mmnto-ai/totem#2183 — the §3.1 provenance leg of the ADR-110 Gate-1
44
75
  * legitimacy bar: the identity of the merged-PR history a regenerated rule was
@@ -48,8 +79,25 @@ const COMMIT_SHA_RE = /^[0-9a-f]{40}$/;
48
79
  * zero-trust), the single source of truth `deriveRuleClass` reads. Control
49
80
  * *evidence* (which PRs/fixtures proved each control) rides the wind-tunnel
50
81
  * manifest (ADR-110 §6), not the per-rule marker.
82
+ *
83
+ * **ADR-112 — this is the MINED variant of the `ProvenanceRecord` union.** The
84
+ * wire shape is otherwise UNCHANGED: `kind` is OPTIONAL and absent on every
85
+ * pre-ADR-112 record, so a legacy mined provenance parses + reserializes
86
+ * BYTE-IDENTICAL (no added key — `canonicalStringify` omits the undefined
87
+ * discriminator exactly as it omits an absent `unverified`), preserving the
88
+ * non-mutating-refine manifest-hash discipline. Absence ⇒ `'mined'` via
89
+ * `provenanceKind()`; the miner path types its provenance as
90
+ * `MinedProvenanceRecord` (the documented mining-only boundary), so its readers
91
+ * of `mergedPr` / `commitSha` stay type-safe without narrowing.
51
92
  */
52
- export const ProvenanceRecordSchema = z.object({
93
+ export const MinedProvenanceWireSchema = z.object({
94
+ /**
95
+ * ADR-112 discriminator. OPTIONAL on the mined wire so legacy records (which
96
+ * have no `kind`) round-trip byte-identical; absence is read as `'mined'` by
97
+ * `provenanceKind()`. A new mined artifact MAY carry `kind: 'mined'` only
98
+ * where the resulting hash churn is intentional.
99
+ */
100
+ kind: z.literal('mined').optional(),
53
101
  /** Merged PR the rule was mined from (positive integer PR number). */
54
102
  mergedPr: z.number().int().positive(),
55
103
  /**
@@ -66,6 +114,186 @@ export const ProvenanceRecordSchema = z.object({
66
114
  /** Full 40-hex git commit SHA the rule was frozen at. */
67
115
  commitSha: z.string().regex(COMMIT_SHA_RE),
68
116
  });
117
+ /**
118
+ * ADR-112 §4 — the preimage-differential SOURCE for one fixture, a discriminated
119
+ * union on `kind` (declared PER FIXTURE; not a fixed binding to landed commits).
120
+ * The materializer (slice C/D) fires the matcher on the preimage and asserts it
121
+ * is SILENT on the postimage — a matcher that fires only on the fixed form is
122
+ * fix-shaped and is NOT a legitimate positive control (FM(i)):
123
+ * - `lesson` (PRIMARY, review-caught repos): the lesson corpus' `badExample`
124
+ * (preimage — fire) / `goodExample` (postimage — silent). `lessonRef` is an
125
+ * IMMUTABLE lesson id/hash (the `hashLesson` codomain, `LESSON_REF_RE`),
126
+ * never a path/mutable alias (§8 identity discipline).
127
+ * - `commit` (FALLBACK, land-then-fix repos): the pre-fix parent
128
+ * (`preimageCommitSha` — fire) / post-fix merge (`mergeCommitSha` — silent).
129
+ *
130
+ * `z.discriminatedUnion` (not `z.union`): both branches carry a REQUIRED literal
131
+ * `kind`, so Zod routes a parse error to the matched branch instead of emitting
132
+ * "no union member matched" noise (cf. `cert-corpus-seed.ts`'s `window`). The
133
+ * OPTIONAL-discriminator round-trip reason `ProvenanceRecordSchema` documents for
134
+ * its `z.union` does NOT apply — `preimageSource` is a new field with no persisted
135
+ * authored set. Each branch is `.strict()` so a cross-branch key (e.g. a
136
+ * `badExample` under `kind:'commit'`) fails LOUD (FM(d) posture) rather than being
137
+ * silently stripped. All refines are NON-mutating (no `.trim()`) to preserve the
138
+ * manifest-hash stability discipline.
139
+ */
140
+ export const PreimageSourceSchema = z.discriminatedUnion('kind', [
141
+ z
142
+ .object({
143
+ kind: z.literal('lesson'),
144
+ /** IMMUTABLE lesson id/hash (the 16-hex `hashLesson` codomain) — never a path/mutable alias (§4/§8). */
145
+ lessonRef: z.string().regex(LESSON_REF_RE, {
146
+ message: 'lessonRef must be an immutable lesson id (16-hex hashLesson codomain), not a path or mutable alias',
147
+ }),
148
+ /**
149
+ * The defect PREIMAGE exemplar the matcher must FIRE on (§4). This is a lesson
150
+ * corpus `badExample` — distinct from `CompiledRuleBaseSchema.badExample` (an
151
+ * optional human-readable code snippet on a compiled rule); here it is the
152
+ * load-bearing positive-control preimage, so non-empty is required.
153
+ */
154
+ badExample: z.string().refine((s) => s.trim().length > 0, {
155
+ message: 'badExample (the defect preimage the matcher must fire on) must be non-empty',
156
+ }),
157
+ /** The fixed POSTIMAGE exemplar the matcher must stay SILENT on (§4) — a lesson `goodExample`. */
158
+ goodExample: z.string().refine((s) => s.trim().length > 0, {
159
+ message: 'goodExample (the fixed form the matcher must stay silent on) must be non-empty',
160
+ }),
161
+ })
162
+ .strict(),
163
+ z
164
+ .object({
165
+ kind: z.literal('commit'),
166
+ /** The PARENT (pre-fix) commit where the DEFECT is present — the matcher must FIRE on this (ADR-112 §4). */
167
+ preimageCommitSha: z.string().regex(COMMIT_SHA_RE, {
168
+ message: 'preimageCommitSha must be a 40-character lowercase hex commit SHA',
169
+ }),
170
+ /** The PR's merge/squash commit — the post-fix (defect-absent) anchor; the matcher must stay SILENT on this. */
171
+ mergeCommitSha: z.string().regex(COMMIT_SHA_RE, {
172
+ message: 'mergeCommitSha must be a 40-character lowercase hex commit SHA',
173
+ }),
174
+ })
175
+ .strict(),
176
+ ]);
177
+ /**
178
+ * ADR-112 §3 — one real lc instance an authored rule claims to catch. ALL such
179
+ * fixtures are TRAIN-side (the §5 leakage guard); the preimage-differential
180
+ * (§4) is evaluated in slice C/D, but the record CARRIES the declared
181
+ * `preimageSource` (lesson | commit) + the defect locus here so derivation is
182
+ * possible. `matchedSpan` + `contentHash` are the line-drift-stable locus
183
+ * (cf. `firingLabelId`), not just the file.
184
+ */
185
+ export const AuthoredFixtureSchema = z
186
+ .object({
187
+ /** The PR where the defect was caught/introduced (the in-corpus anchor). */
188
+ pr: z.number().int().positive(),
189
+ /** The §4 preimage-differential source — lesson-anchored (PRIMARY) or commit-pair (FALLBACK). */
190
+ preimageSource: PreimageSourceSchema,
191
+ /** File the defect locus lives in. */
192
+ filePath: z.string().refine((s) => s.trim().length > 0, {
193
+ message: 'filePath must be a non-empty reference',
194
+ }),
195
+ /** Line-range or AST-node path — the defect locus, not just the file. */
196
+ matchedSpan: z.string().refine((s) => s.trim().length > 0, {
197
+ message: 'matchedSpan must be a non-empty locus',
198
+ }),
199
+ /** Span content hash, line-drift-stable (cf. `firingLabelId`). */
200
+ contentHash: z.string().refine((s) => s.trim().length > 0, {
201
+ message: 'contentHash must be a non-empty hash',
202
+ }),
203
+ })
204
+ // `.strict()` (CR outside-diff): the outer fixture closes too, not just the union branches —
205
+ // a partially-migrated fixture carrying `preimageSource` AND a leftover flat `mergeCommitSha`/
206
+ // `preimageCommitSha` must fail LOUD, never validate-and-silently-strip the stale key (FM(d)).
207
+ .strict()
208
+ // ANTI-VACUITY FAST-FAIL (GCA finding; strategy#767-blessed defense-in-depth). This is NOT the
209
+ // §4 preimage-differential — that is the load-bearing C/D materializer (fire-on-preimage /
210
+ // silent-on-postimage). This only rejects the DEGENERATE case where the two sides are IDENTICAL:
211
+ // an identical preimage/postimage is an UNCONDITIONALLY vacuous control (a matcher cannot fire on
212
+ // one and stay silent on the other), so it is zero-false-positive to reject at intake — distinct
213
+ // from "does the differential hold", which two *different* sides still must prove in C/D.
214
+ // Non-mutating (compares trimmed, never transforms) — manifest-hash stability. A `superRefine` on
215
+ // the OUTER fixture (not a branch `.refine`, which would wrap a `discriminatedUnion` member in a
216
+ // ZodEffects and break discriminator extraction).
217
+ .superRefine((fixture, ctx) => {
218
+ const src = fixture.preimageSource;
219
+ if (src.kind === 'lesson' && src.badExample.trim() === src.goodExample.trim()) {
220
+ ctx.addIssue({
221
+ code: z.ZodIssueCode.custom,
222
+ message: 'badExample and goodExample must differ — identical sides are a vacuous preimage-differential control (ADR-112 §4)',
223
+ path: ['preimageSource', 'goodExample'],
224
+ });
225
+ }
226
+ if (src.kind === 'commit' && src.preimageCommitSha === src.mergeCommitSha) {
227
+ ctx.addIssue({
228
+ code: z.ZodIssueCode.custom,
229
+ message: 'preimageCommitSha and mergeCommitSha must differ — an identical pre/post commit is a vacuous preimage-differential control (ADR-112 §4)',
230
+ path: ['preimageSource', 'mergeCommitSha'],
231
+ });
232
+ }
233
+ });
234
+ /**
235
+ * ADR-112 §3 — the AUTHORED variant of the `ProvenanceRecord` union. A
236
+ * hand-authored rule is anchored to a real historical DEFECT (the pre-image,
237
+ * NOT its fix — ADR-110 §4 TP-def) via ≥1 train-side `positiveFixtures` entry.
238
+ * `kind: 'authored'` is REQUIRED (the discriminator), so this can never be
239
+ * mistaken for a mined record and an authored record can never round-trip as
240
+ * mined. Attributable (`author` never anonymous); the embargo/ledger
241
+ * attestations ride the §8 authoring-ledger, not this marker.
242
+ */
243
+ export const AuthoredProvenanceRecordSchema = z.object({
244
+ kind: z.literal('authored'),
245
+ /** Agent-id or operator handle — attributable, never anonymous. */
246
+ author: z.string().refine((s) => s.trim().length > 0, {
247
+ message: 'author must be a non-empty, attributable handle',
248
+ }),
249
+ /** ISO-8601 authoring date — a real calendar date (`YYYY-MM-DD`) or a full timestamp. */
250
+ authoredAt: z.string().refine(isIso8601CalendarDate, {
251
+ message: 'authoredAt must be a valid ISO-8601 calendar date (YYYY-MM-DD or a full timestamp)',
252
+ }),
253
+ /** The declared DEFECT the rule targets — the pre-image, not its fix. */
254
+ targetDefect: z.string().refine((s) => s.trim().length > 0, {
255
+ message: 'targetDefect must be a non-empty defect description',
256
+ }),
257
+ /** ≥1 real lc instance the rule claims to catch — ALL train-side (§5). */
258
+ positiveFixtures: z.array(AuthoredFixtureSchema).min(1, {
259
+ message: 'an authored rule must declare ≥1 positive fixture (ADR-112 §3)',
260
+ }),
261
+ /** Declared near-misses the rule must stay silent on (feeds §6 negative controls). */
262
+ negativeFixtures: z.array(AuthoredFixtureSchema).optional(),
263
+ });
264
+ /**
265
+ * ADR-112 §3 — `provenance` is a discriminated UNION on `kind`
266
+ * (`mined | authored`), the first multi-producer attribute on a rule
267
+ * (Consequence 3). Built as a `z.union` (NOT `z.discriminatedUnion`) on
268
+ * purpose: the mined wire keeps `kind` OPTIONAL for byte-identical legacy
269
+ * round-trip, which a required-discriminator schema cannot express. The two
270
+ * branches are disjoint on their required fields (`authored` requires
271
+ * `kind:'authored'` + author/targetDefect/fixtures; the mined branch is the
272
+ * only one a legacy `{mergedPr, reviewThread, commitSha}` record satisfies), so
273
+ * the union is unambiguous. `Authored` is listed FIRST so a record carrying
274
+ * `kind:'authored'` never matches the mined branch.
275
+ */
276
+ export const ProvenanceRecordSchema = z.union([
277
+ AuthoredProvenanceRecordSchema,
278
+ MinedProvenanceWireSchema,
279
+ ]);
280
+ /**
281
+ * ADR-112 — the canonical reader of a provenance record's producer kind. An
282
+ * absent discriminator (every legacy mined record) reads as `'mined'`. Use this
283
+ * + the guards below instead of touching `.kind` directly, so the
284
+ * absent-⇒-mined default lives in exactly one place (Tenet 20).
285
+ */
286
+ export function provenanceKind(p) {
287
+ return p.kind ?? 'mined';
288
+ }
289
+ /** ADR-112 — type-narrowing guard for the mined branch (mined-only field reads). */
290
+ export function isMinedProvenance(p) {
291
+ return provenanceKind(p) === 'mined';
292
+ }
293
+ /** ADR-112 — type-narrowing guard for the authored branch. */
294
+ export function isAuthoredProvenance(p) {
295
+ return p.kind === 'authored';
296
+ }
69
297
  /**
70
298
  * mmnto-ai/totem#2183 — the three **peer** legs of the ADR-110 §3 legitimacy
71
299
  * bar, mapping 1:1 onto the strategy#666 Tenet-9 three-check so the Gate-1
@@ -1 +1 @@
1
- {"version":3,"file":"compiler-schema.js","sourceRoot":"","sources":["../src/compiler-schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,uDAAuD;AAEvD;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC;KAC9B,MAAM,CAAC;IACN,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;CAC5B,CAAC;KACD,WAAW,EAAE,CAAC;AAIjB;;;;;GAKG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,gBAAgB,CAAC;AAItD,uDAAuD;AAEvD;;;;;;;;;GASG;AACH,MAAM,aAAa,GAAG,gBAAgB,CAAC;AAEvC;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC7C,sEAAsE;IACtE,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;IACrC;;;;;;;OAOG;IACH,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE;QAC1D,OAAO,EAAE,4DAA4D;KACtE,CAAC;IACF,yDAAyD;IACzD,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,aAAa,CAAC;CAC3C,CAAC,CAAC;AAIH;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IACvC,UAAU,EAAE,sBAAsB;IAClC,eAAe,EAAE,CAAC,CAAC,OAAO,EAAE;IAC5B,eAAe,EAAE,CAAC,CAAC,OAAO,EAAE;CAC7B,CAAC,CAAC;AAIH,uDAAuD;AAEvD,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC;IACtC,0EAA0E;IAC1E,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;IACtB,+DAA+D;IAC/D,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE;IACzB,sDAAsD;IACtD,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;IACnB,sEAAsE;IACtE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;IACnB,6IAA6I;IAC7I,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC;IAC5C,qEAAqE;IACrE,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC/B;;;;OAIG;IACH,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACrC;;;;;;OAMG;IACH,eAAe,EAAE,qBAAqB,CAAC,QAAQ,EAAE;IACjD;;;;;OAKG;IACH,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACjC;;;;;;;;OAQG;IACH,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClC,mDAAmD;IACnD,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;IACtB,iFAAiF;IACjF,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAChC,kGAAkG;IAClG,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IACzC,mDAAmD;IACnD,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,cAAc,EAAE,OAAO,EAAE,aAAa,CAAC,CAAC,CAAC,QAAQ,EAAE;IACjF,yEAAyE;IACzE,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,QAAQ,EAAE;IACjD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAoCG;IACH,MAAM,EAAE,CAAC;SACN,IAAI,CAAC,CAAC,QAAQ,EAAE,UAAU,EAAE,2BAA2B,EAAE,sBAAsB,CAAC,CAAC;SACjF,QAAQ,EAAE;IACb;;;;;;;;;;;OAWG;IACH,UAAU,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,EAAE;IACvC,uDAAuD;IACvD,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACrC;;;;;;;;;OASG;IACH,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACjC;;;;;;;;;;;OAWG;IACH,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAC9B;;;;;OAKG;IACH,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IACjC;;;;;;;;;;;;;OAaG;IACH,UAAU,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAClC;;;;;;;OAOG;IACH,UAAU,EAAE,gBAAgB,CAAC,QAAQ,EAAE;IACvC;;;;;;;;;OASG;IACH,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,QAAQ,EAAE;CACnD,CAAC,CAAC;AAEH;;;;;;;GAOG;AACH,SAAS,4BAA4B,CACnC,IAIC,EACD,GAAoB;IAEpB,IAAI,IAAI,CAAC,MAAM,KAAK,UAAU;QAAE,OAAO;IACvC,MAAM,UAAU,GAAG,OAAO,IAAI,CAAC,cAAc,KAAK,QAAQ,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC;IAC7F,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,KAAK,SAAS,CAAC;IACnD,IAAI,UAAU,IAAI,OAAO,EAAE,CAAC;QAC1B,GAAG,CAAC,QAAQ,CAAC;YACX,IAAI,EAAE,CAAC,CAAC,YAAY,CAAC,MAAM;YAC3B,OAAO,EAAE,qEAAqE;YAC9E,IAAI,EAAE,CAAC,iBAAiB,CAAC;SAC1B,CAAC,CAAC;IACL,CAAC;IACD,IAAI,CAAC,UAAU,IAAI,CAAC,OAAO,EAAE,CAAC;QAC5B,GAAG,CAAC,QAAQ,CAAC;YACX,IAAI,EAAE,CAAC,CAAC,YAAY,CAAC,MAAM;YAC3B,OAAO,EAAE,oEAAoE;YAC7E,IAAI,EAAE,CAAC,gBAAgB,CAAC;SACzB,CAAC,CAAC;IACL,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,eAAe,CAAC,IAG/B;IACC,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC;IAC5B,IAAI,CAAC,GAAG;QAAE,OAAO,UAAU,CAAC;IAC5B,IAAI,IAAI,CAAC,UAAU,KAAK,IAAI;QAAE,OAAO,UAAU,CAAC;IAChD,IAAI,CAAC,GAAG,CAAC,eAAe,IAAI,CAAC,GAAG,CAAC,eAAe;QAAE,OAAO,UAAU,CAAC;IACpE,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,SAAS,oCAAoC,CAC3C,IAAwF,EACxF,GAAoB;IAEpB,MAAM,aAAa,GAAG,IAAI,CAAC,UAAU,KAAK,SAAS,CAAC;IACpD,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,KAAK,SAAS,CAAC;IAClD,IAAI,aAAa,KAAK,YAAY,EAAE,CAAC;QACnC,GAAG,CAAC,QAAQ,CAAC;YACX,IAAI,EAAE,CAAC,CAAC,YAAY,CAAC,MAAM;YAC3B,OAAO,EAAE,oFAAoF;YAC7F,IAAI,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,WAAW,CAAC;SAClD,CAAC,CAAC;QACH,OAAO;IACT,CAAC;IACD,IAAI,aAAa,IAAI,YAAY,EAAE,CAAC;QAClC,MAAM,QAAQ,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;QACvC,IAAI,IAAI,CAAC,SAAS,KAAK,QAAQ,EAAE,CAAC;YAChC,GAAG,CAAC,QAAQ,CAAC;gBACX,IAAI,EAAE,CAAC,CAAC,YAAY,CAAC,MAAM;gBAC3B,OAAO,EAAE,cAAc,IAAI,CAAC,SAAS,6CAA6C,QAAQ,yBAAyB;gBACnH,IAAI,EAAE,CAAC,WAAW,CAAC;aACpB,CAAC,CAAC;QACL,CAAC;IACH,CAAC;AACH,CAAC;AAED,MAAM,CAAC,MAAM,kBAAkB,GAAG,sBAAsB,CAAC,WAAW,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE;IACjF,4BAA4B,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IACxC,oCAAoC,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;AAClD,CAAC,CAAC,CAAC;AAIH;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,MAAM,6BAA6B,GAAG,CAAC,CAAC,IAAI,CAAC;IAClD,sBAAsB;IACtB,wBAAwB;IACxB,oBAAoB;IACpB,wBAAwB;IACxB,wBAAwB;IACxB,kBAAkB;IAClB,cAAc;IACd,oBAAoB;IACpB,qBAAqB;IACrB,sBAAsB;IACtB,2EAA2E;IAC3E,yEAAyE;IACzE,0EAA0E;IAC1E,uEAAuE;IACvE,2EAA2E;IAC3E,kDAAkD;IAClD,kBAAkB;IAClB,wEAAwE;IACxE,qEAAqE;IACrE,kEAAkE;IAClE,gEAAgE;IAChE,sEAAsE;IACtE,qEAAqE;IACrE,4BAA4B;IAC5B,4EAA4E;IAC5E,yEAAyE;IACzE,uEAAuE;IACvE,yEAAyE;IACzE,sEAAsE;IACtE,0EAA0E;IAC1E,mEAAmE;IACnE,sEAAsE;IACtE,kEAAkE;IAClE,0BAA0B;IAC1B,0EAA0E;IAC1E,sEAAsE;IACtE,kEAAkE;IAClE,sEAAsE;IACtE,yEAAyE;IACzE,yEAAyE;IACzE,qEAAqE;IACrE,yDAAyD;IACzD,wEAAwE;IACxE,kEAAkE;IAClE,2BAA2B;IAC3B,gBAAgB;CACjB,CAAC,CAAC;AAIH;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAyC,IAAI,GAAG,CAAC;IACtF,wBAAwB;IACxB,oBAAoB;IACpB,wBAAwB;IACxB,oBAAoB;IACpB,qBAAqB;IACrB,sBAAsB;CACvB,CAAC,CAAC;AAEH;;;;;;;;;GASG;AACH,MAAM,UAAU,mBAAmB,CAAC,UAAmC;IACrE,OAAO,CAAC,0BAA0B,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;AACrD,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,MAAM,6BAA6B,GAAG,CAAC,CAAC,MAAM,CAAC;IACpD,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,UAAU,EAAE,6BAA6B;IACzC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAC9B,CAAC,CAAC;AAEH;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC;KAC1C,KAAK,CAAC;IACL,CAAC,CAAC,MAAM,EAAE;IACV,qEAAqE;IACrE,oEAAoE;IACpE,mEAAmE;IACnE,sEAAsE;IACtE,yEAAyE;IACzE,6BAA6B;IAC7B,CAAC,CAAC,MAAM,CAAC;QACP,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;QAChB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;KAClB,CAAC;CACH,CAAC;KACD,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE;IACnB,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,gBAAgB,EAAE,UAAU,EAAE,gBAAyB,EAAE,CAAC;IACzF,CAAC;IACD,IAAI,YAAY,IAAI,KAAK,EAAE,CAAC;QAC1B,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,UAAU,EAAE,gBAAyB,EAAE,CAAC;AACzF,CAAC,CAAC,CAAC;AAQL,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC9C,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;IACrB,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,kBAAkB,CAAC;IAClC;;;;;;;;OAQG;IACH,aAAa,EAAE,CAAC,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC,QAAQ,EAAE;CAChE,CAAC,CAAC;AAIH,uDAAuD;AAEvD,8EAA8E;AAC9E,MAAM,wBAAwB,GAAG,CAAC,CAAC,MAAM,CAAC;IACxC,UAAU,EAAE,CAAC,CAAC,OAAO,EAAE;IACvB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC9B,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC9B,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IACzC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,QAAQ,EAAE;IACvD,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC/B,+EAA+E;IAC/E,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACrC,qFAAqF;IACrF,eAAe,EAAE,qBAAqB,CAAC,QAAQ,EAAE;IACjD;;;;;;;;;OASG;IACH,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACjC;;;;;;;;;OASG;IACH,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClC,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,QAAQ,EAAE;IACjD,iEAAiE;IACjE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC7B;;;;;;;;;;;OAWG;IACH,UAAU,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,kBAAkB,EAAE,4BAA4B,CAAC,CAAC,CAAC,QAAQ,EAAE;CAClF,CAAC,CAAC;AAEH;;;;;;;;;;;;;;GAcG;AACH,SAAS,wBAAwB,CAC/B,IAIC,EACD,GAAoB;IAEpB,IAAI,CAAC,IAAI,CAAC,UAAU;QAAE,OAAO;IAC7B,MAAM,wBAAwB,GAAG,IAAI,CAAC,MAAM,KAAK,KAAK,CAAC;IACvD,IAAI,CAAC,wBAAwB;QAAE,OAAO;IACtC,wEAAwE;IACxE,sEAAsE;IACtE,qEAAqE;IACrE,uEAAuE;IACvE,oEAAoE;IACpE,IAAI,OAAO,IAAI,CAAC,UAAU,KAAK,QAAQ,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO;IACrF,GAAG,CAAC,QAAQ,CAAC;QACX,IAAI,EAAE,CAAC,CAAC,YAAY,CAAC,MAAM;QAC3B,OAAO,EACL,gGAAgG;QAClG,IAAI,EAAE,CAAC,YAAY,CAAC;KACrB,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,yBAAyB,CAChC,IAIC,EACD,GAAoB;IAEpB,IAAI,CAAC,IAAI,CAAC,UAAU;QAAE,OAAO;IAC7B,MAAM,yBAAyB,GAAG,IAAI,CAAC,MAAM,KAAK,KAAK,CAAC;IACxD,IAAI,CAAC,yBAAyB;QAAE,OAAO;IACvC,sEAAsE;IACtE,wEAAwE;IACxE,sEAAsE;IACtE,4DAA4D;IAC5D,IAAI,OAAO,IAAI,CAAC,WAAW,KAAK,QAAQ,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO;IACvF,GAAG,CAAC,QAAQ,CAAC;QACX,IAAI,EAAE,CAAC,CAAC,YAAY,CAAC,MAAM;QAC3B,OAAO,EACL,iGAAiG;QACnG,IAAI,EAAE,CAAC,aAAa,CAAC;KACtB,CAAC,CAAC;AACL,CAAC;AAED;;;;;GAKG;AACH,SAAS,qCAAqC,CAC5C,IAAkD,EAClD,GAAoB;IAEpB,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS;QAAE,OAAO;IAC1C,IAAI,CAAC,IAAI,CAAC,UAAU;QAAE,OAAO;IAC7B,GAAG,CAAC,QAAQ,CAAC;QACX,IAAI,EAAE,CAAC,CAAC,YAAY,CAAC,MAAM;QAC3B,OAAO,EAAE,yEAAyE;QAClF,IAAI,EAAE,CAAC,YAAY,CAAC;KACrB,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,MAAM,oBAAoB,GAAG,wBAAwB,CAAC,WAAW,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE;IACrF,4BAA4B,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IACxC,wBAAwB,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IACpC,yBAAyB,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IACrC,qCAAqC,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;AACnD,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"compiler-schema.js","sourceRoot":"","sources":["../src/compiler-schema.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { describe, expect, it } from 'vitest';
2
2
  import { canonicalStringify } from './compile-manifest.js';
3
- import { AstGrepYamlRuleSchema, CompiledRuleSchema, CompilerOutputSchema, deriveRuleClass, LEDGER_RETRY_PENDING_CODES, LegitimacySchema, NapiConfigSchema, NonCompilableEntryReadSchema, NonCompilableEntryWriteSchema, NonCompilableReasonCodeSchema, ProvenanceRecordSchema, shouldWriteToLedger, } from './compiler-schema.js';
3
+ import { AstGrepYamlRuleSchema, AuthoredFixtureSchema, AuthoredProvenanceRecordSchema, CompiledRuleSchema, CompilerOutputSchema, deriveRuleClass, isAuthoredProvenance, isMinedProvenance, LEDGER_RETRY_PENDING_CODES, LegitimacySchema, MinedProvenanceWireSchema, NapiConfigSchema, NonCompilableEntryReadSchema, NonCompilableEntryWriteSchema, NonCompilableReasonCodeSchema, PreimageSourceSchema, provenanceKind, ProvenanceRecordSchema, shouldWriteToLedger, } from './compiler-schema.js';
4
4
  // ─── NapiConfigSchema / AstGrepYamlRuleSchema ────────
5
5
  describe('NapiConfigSchema', () => {
6
6
  it('accepts a minimal compound rule with a rule key', () => {
@@ -801,13 +801,260 @@ describe('legitimacy / ruleClass marker (mmnto-ai/totem#2183)', () => {
801
801
  });
802
802
  it('does not mutate a whitespace-padded reviewThread (non-mutating validator, greptile/CR #2186)', () => {
803
803
  const padded = ' pr#2183-thread ';
804
- const parsed = ProvenanceRecordSchema.parse({ ...provenance, reviewThread: padded });
804
+ // `reviewThread` lives on the MINED branch of the ADR-112 union; parse it
805
+ // through the mined wire schema directly (the union round-trip is covered
806
+ // by the dedicated ProvenanceRecord-union suite above).
807
+ const parsed = MinedProvenanceWireSchema.parse({ ...provenance, reviewThread: padded });
805
808
  expect(parsed.reviewThread).toBe(padded);
806
809
  });
807
810
  it('requires both controls explicitly (no defaulting) when legitimacy is present', () => {
808
811
  expect(() => LegitimacySchema.parse({ provenance, positiveControl: true })).toThrow();
809
812
  });
810
813
  });
814
+ describe('ProvenanceRecord union (ADR-112)', () => {
815
+ const minedWire = {
816
+ mergedPr: 2183,
817
+ reviewThread: 'pulls/2183/comments',
818
+ commitSha: 'a'.repeat(40),
819
+ };
820
+ const authored = {
821
+ kind: 'authored',
822
+ author: 'totem-claude',
823
+ authoredAt: '2026-06-27',
824
+ targetDefect: 'float equality compared with == instead of a finite-tolerance check',
825
+ positiveFixtures: [
826
+ {
827
+ pr: 100,
828
+ // §4 FALLBACK source — commit-pair (land-then-fix).
829
+ preimageSource: {
830
+ kind: 'commit',
831
+ preimageCommitSha: 'c'.repeat(40),
832
+ mergeCommitSha: 'b'.repeat(40),
833
+ },
834
+ filePath: 'src/physics/step.ts',
835
+ matchedSpan: 'L10-L12',
836
+ contentHash: 'deadbeefcafe',
837
+ },
838
+ ],
839
+ };
840
+ // §4 PRIMARY source — lesson-anchored (review-caught); same fixture, lesson preimageSource.
841
+ const authoredLesson = {
842
+ ...authored,
843
+ positiveFixtures: [
844
+ {
845
+ pr: 100,
846
+ preimageSource: {
847
+ kind: 'lesson',
848
+ lessonRef: 'a1b2c3d4e5f60718', // 16-hex hashLesson codomain
849
+ badExample: 'if (a == b) { applyImpulse(); }',
850
+ goodExample: 'if (Math.abs(a - b) < EPS) { applyImpulse(); }',
851
+ },
852
+ filePath: 'src/physics/step.ts',
853
+ matchedSpan: 'L10-L12',
854
+ contentHash: 'deadbeefcafe',
855
+ },
856
+ ],
857
+ };
858
+ it('parses a legacy mined record (no kind) BYTE-IDENTICAL — no kind key added (manifest-hash safe)', () => {
859
+ const before = canonicalStringify(minedWire);
860
+ const parsed = ProvenanceRecordSchema.parse(minedWire);
861
+ const after = canonicalStringify(parsed);
862
+ expect(after).toBe(before);
863
+ expect(after).not.toContain('kind');
864
+ expect(provenanceKind(parsed)).toBe('mined');
865
+ });
866
+ it('reads an absent discriminator as mined; a present one as authored', () => {
867
+ expect(provenanceKind(ProvenanceRecordSchema.parse(minedWire))).toBe('mined');
868
+ expect(provenanceKind(ProvenanceRecordSchema.parse(authored))).toBe('authored');
869
+ });
870
+ it('discriminates the two branches with the type guards', () => {
871
+ const m = ProvenanceRecordSchema.parse(minedWire);
872
+ const a = ProvenanceRecordSchema.parse(authored);
873
+ expect(isMinedProvenance(m)).toBe(true);
874
+ expect(isAuthoredProvenance(m)).toBe(false);
875
+ expect(isAuthoredProvenance(a)).toBe(true);
876
+ expect(isMinedProvenance(a)).toBe(false);
877
+ });
878
+ it('accepts an explicit kind:mined and still round-trips it', () => {
879
+ const explicit = { ...minedWire, kind: 'mined' };
880
+ const parsed = MinedProvenanceWireSchema.parse(explicit);
881
+ expect(parsed.kind).toBe('mined');
882
+ expect(canonicalStringify(parsed)).toBe(canonicalStringify(explicit));
883
+ });
884
+ it('rejects an authored record with zero positiveFixtures (ADR-112 §3 ≥1)', () => {
885
+ expect(() => AuthoredProvenanceRecordSchema.parse({ ...authored, positiveFixtures: [] })).toThrow();
886
+ });
887
+ it('rejects an authored record with an empty author or targetDefect', () => {
888
+ expect(() => AuthoredProvenanceRecordSchema.parse({ ...authored, author: ' ' })).toThrow();
889
+ expect(() => AuthoredProvenanceRecordSchema.parse({ ...authored, targetDefect: '' })).toThrow();
890
+ });
891
+ it('validates authoredAt as a real ISO-8601 calendar date — rejects free text + impossible dates, accepts real dates/timestamps (#2259)', () => {
892
+ // '2026-02-31' + non-leap '2026-02-29' are the Date.parse-normalization trap (CR re-review):
893
+ // Date.parse rolls them into March rather than rejecting, so the calendar round-trip must catch them.
894
+ for (const bad of [
895
+ 'last tuesday',
896
+ '2026-13-45',
897
+ '06/27/2026',
898
+ '',
899
+ '2026-02-31',
900
+ '2026-02-29',
901
+ ]) {
902
+ expect(() => AuthoredProvenanceRecordSchema.parse({ ...authored, authoredAt: bad })).toThrow();
903
+ }
904
+ for (const ok of ['2026-06-27', '2026-06-27T12:00:00.000Z', '2024-02-29']) {
905
+ expect(() => AuthoredProvenanceRecordSchema.parse({ ...authored, authoredAt: ok })).not.toThrow();
906
+ }
907
+ });
908
+ it('accepts both §4 preimageSource kinds and preserves the discriminator + branch fields', () => {
909
+ const commit = AuthoredProvenanceRecordSchema.parse(authored);
910
+ const lesson = AuthoredProvenanceRecordSchema.parse(authoredLesson);
911
+ const cSrc = commit.positiveFixtures[0].preimageSource;
912
+ const lSrc = lesson.positiveFixtures[0].preimageSource;
913
+ expect(cSrc.kind).toBe('commit');
914
+ if (cSrc.kind === 'commit')
915
+ expect(cSrc.preimageCommitSha).toBe('c'.repeat(40));
916
+ expect(lSrc.kind).toBe('lesson');
917
+ if (lSrc.kind === 'lesson') {
918
+ expect(lSrc.lessonRef).toBe('a1b2c3d4e5f60718');
919
+ expect(lSrc.badExample).toBe('if (a == b) { applyImpulse(); }');
920
+ }
921
+ });
922
+ // The §4 commit branch carries TWO SHAs; the old flat test only guarded preimageCommitSha.
923
+ // Each malformed-SHA case keeps the OTHER SHA valid so the rejection can ONLY be the regex
924
+ // under test — not a missing-field throw (the rewrap landmine: a bad value must live INSIDE
925
+ // preimageSource; a top-level leftover SHA is now rejected by the strict outer object too).
926
+ // The asserted message text is the GCA-requested regression guard (the message is wired).
927
+ it('rejects a commit preimageSource with a malformed preimageCommitSha (other SHA valid)', () => {
928
+ expect(() => AuthoredFixtureSchema.parse({
929
+ ...authored.positiveFixtures[0],
930
+ preimageSource: {
931
+ kind: 'commit',
932
+ preimageCommitSha: 'nope',
933
+ mergeCommitSha: 'b'.repeat(40),
934
+ },
935
+ })).toThrow(/preimageCommitSha must be a 40-character lowercase hex commit SHA/);
936
+ });
937
+ it('rejects a commit preimageSource with a malformed mergeCommitSha (other SHA valid)', () => {
938
+ expect(() => AuthoredFixtureSchema.parse({
939
+ ...authored.positiveFixtures[0],
940
+ preimageSource: {
941
+ kind: 'commit',
942
+ preimageCommitSha: 'c'.repeat(40),
943
+ mergeCommitSha: 'nope',
944
+ },
945
+ })).toThrow(/mergeCommitSha must be a 40-character lowercase hex commit SHA/);
946
+ });
947
+ it('rejects a fixture carrying a leftover flat SHA alongside preimageSource (strict outer — CR outside-diff)', () => {
948
+ // A partial migration (preimageSource added but a stale flat mergeCommitSha left behind) must
949
+ // fail LOUD under `.strict()`, never validate-and-silently-strip the leftover key (FM(d)).
950
+ expect(() => AuthoredFixtureSchema.parse({
951
+ ...authored.positiveFixtures[0],
952
+ mergeCommitSha: 'b'.repeat(40), // leftover flat field — unknown to the strict fixture
953
+ })).toThrow();
954
+ });
955
+ // ANTI-VACUITY fast-fail (GCA finding; strategy#767-blessed). Identical preimage/postimage sides
956
+ // are an UNCONDITIONALLY vacuous control — rejected at intake. This is NOT the §4 differential
957
+ // (that's C/D); it only catches the degenerate identical-sides case (zero-false-positive).
958
+ it('rejects a lesson fixture whose badExample equals its goodExample (vacuous — identical sides)', () => {
959
+ expect(() => AuthoredFixtureSchema.parse({
960
+ ...authoredLesson.positiveFixtures[0],
961
+ preimageSource: {
962
+ kind: 'lesson',
963
+ lessonRef: 'a1b2c3d4e5f60718',
964
+ badExample: 'if (a == b) {}',
965
+ goodExample: ' if (a == b) {} ', // trim-equal → still vacuous (non-mutating compare)
966
+ },
967
+ })).toThrow(/identical sides|must differ/i);
968
+ });
969
+ it('rejects a commit fixture whose preimageCommitSha equals its mergeCommitSha (vacuous — identical sides)', () => {
970
+ expect(() => AuthoredFixtureSchema.parse({
971
+ ...authored.positiveFixtures[0],
972
+ preimageSource: {
973
+ kind: 'commit',
974
+ preimageCommitSha: 'a'.repeat(40),
975
+ mergeCommitSha: 'a'.repeat(40),
976
+ },
977
+ })).toThrow(/identical pre\/post commit|must differ/i);
978
+ });
979
+ it('rejects a lesson preimageSource whose lessonRef is a path or mutable alias (immutable 16-hex id only)', () => {
980
+ for (const badRef of [
981
+ 'docs/lessons/foo.md',
982
+ 'latest',
983
+ 'a1b2c3d4e5f60718x',
984
+ 'A1B2C3D4E5F60718',
985
+ ]) {
986
+ expect(() => PreimageSourceSchema.parse({
987
+ kind: 'lesson',
988
+ lessonRef: badRef,
989
+ badExample: 'x == y',
990
+ goodExample: 'abs(x - y) < EPS',
991
+ })).toThrow();
992
+ }
993
+ });
994
+ it('rejects a lesson preimageSource with a whitespace-only badExample or goodExample (vacuous control)', () => {
995
+ const base = { kind: 'lesson', lessonRef: 'a1b2c3d4e5f60718' };
996
+ expect(() => PreimageSourceSchema.parse({ ...base, badExample: ' ', goodExample: 'ok' })).toThrow();
997
+ expect(() => PreimageSourceSchema.parse({ ...base, badExample: 'bad', goodExample: ' ' })).toThrow();
998
+ });
999
+ it('rejects a fixture missing preimageSource entirely (§4 source is required)', () => {
1000
+ const { preimageSource: _omit, ...noSource } = authored.positiveFixtures[0];
1001
+ void _omit;
1002
+ expect(() => AuthoredFixtureSchema.parse(noSource)).toThrow();
1003
+ });
1004
+ it('rejects a preimageSource with a missing or unknown kind (discriminated union)', () => {
1005
+ const validLessonBody = {
1006
+ lessonRef: 'a1b2c3d4e5f60718',
1007
+ badExample: 'x == y',
1008
+ goodExample: 'abs(x - y) < EPS',
1009
+ };
1010
+ // No kind at all, and a bogus kind on an otherwise-valid lesson body — both fail the discriminator.
1011
+ expect(() => PreimageSourceSchema.parse(validLessonBody)).toThrow();
1012
+ expect(() => PreimageSourceSchema.parse({ kind: 'bogus', ...validLessonBody })).toThrow();
1013
+ });
1014
+ it('rejects a cross-branch leak — a lesson key under kind:commit (strict branch, FM(d))', () => {
1015
+ expect(() => PreimageSourceSchema.parse({
1016
+ kind: 'commit',
1017
+ preimageCommitSha: 'c'.repeat(40),
1018
+ mergeCommitSha: 'b'.repeat(40),
1019
+ badExample: 'x == y', // foreign key — strict branch fails LOUD, never silently stripped
1020
+ })).toThrow();
1021
+ });
1022
+ it('does not mutate whitespace-padded (but non-empty) lesson exemplars (non-mutating validator)', () => {
1023
+ const padded = ' if (a == b) {} ';
1024
+ const parsed = PreimageSourceSchema.parse({
1025
+ kind: 'lesson',
1026
+ lessonRef: 'a1b2c3d4e5f60718',
1027
+ badExample: padded,
1028
+ goodExample: padded,
1029
+ });
1030
+ if (parsed.kind === 'lesson') {
1031
+ expect(parsed.badExample).toBe(padded);
1032
+ expect(parsed.goodExample).toBe(padded);
1033
+ }
1034
+ });
1035
+ it('threads the union through negativeFixtures (same shape, lesson kind)', () => {
1036
+ const withNeg = AuthoredProvenanceRecordSchema.parse({
1037
+ ...authored,
1038
+ negativeFixtures: authoredLesson.positiveFixtures,
1039
+ });
1040
+ expect(withNeg.negativeFixtures?.[0].preimageSource.kind).toBe('lesson');
1041
+ });
1042
+ it('round-trips a fixture-bearing authored record byte-identically (manifest-hash safe)', () => {
1043
+ for (const rec of [authored, authoredLesson]) {
1044
+ const before = canonicalStringify(rec);
1045
+ const after = canonicalStringify(AuthoredProvenanceRecordSchema.parse(rec));
1046
+ expect(after).toBe(before);
1047
+ }
1048
+ });
1049
+ it('does not let an authored record masquerade as mined (kind required on authored branch)', () => {
1050
+ // An authored-shaped payload tagged kind:'mined' must validate as NEITHER branch: it lacks
1051
+ // the mined wire's required fields (mergedPr/reviewThread/commitSha) AND fails the authored
1052
+ // discriminator — so the union REJECTS it rather than letting it round-trip as mined (#2259).
1053
+ expect(() => ProvenanceRecordSchema.parse({ ...authored, kind: 'mined' })).toThrow();
1054
+ // And a genuine mined record is never read as authored.
1055
+ expect(isAuthoredProvenance(ProvenanceRecordSchema.parse(minedWire))).toBe(false);
1056
+ });
1057
+ });
811
1058
  describe('manifest-hash stability', () => {
812
1059
  it('serializes a legacy rule byte-identically through a parse round-trip', () => {
813
1060
  const before = canonicalStringify(baseRegexRule);