@mmnto/cli 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 (89) hide show
  1. package/dist/author-sandbox.d.ts +32 -0
  2. package/dist/author-sandbox.d.ts.map +1 -0
  3. package/dist/author-sandbox.js +95 -0
  4. package/dist/author-sandbox.js.map +1 -0
  5. package/dist/authored-rule-intake-prewindow.test.d.ts +2 -0
  6. package/dist/authored-rule-intake-prewindow.test.d.ts.map +1 -0
  7. package/dist/authored-rule-intake-prewindow.test.js +84 -0
  8. package/dist/authored-rule-intake-prewindow.test.js.map +1 -0
  9. package/dist/authored-rule-intake.d.ts +21 -1
  10. package/dist/authored-rule-intake.d.ts.map +1 -1
  11. package/dist/authored-rule-intake.js +56 -1
  12. package/dist/authored-rule-intake.js.map +1 -1
  13. package/dist/commands/authored-whitelist.d.ts.map +1 -1
  14. package/dist/commands/authored-whitelist.js +19 -8
  15. package/dist/commands/authored-whitelist.js.map +1 -1
  16. package/dist/commands/eject.d.ts.map +1 -1
  17. package/dist/commands/eject.js +10 -6
  18. package/dist/commands/eject.js.map +1 -1
  19. package/dist/commands/eject.test.js +5 -1
  20. package/dist/commands/eject.test.js.map +1 -1
  21. package/dist/commands/init-templates.d.ts +4 -0
  22. package/dist/commands/init-templates.d.ts.map +1 -1
  23. package/dist/commands/init-templates.js +25 -1
  24. package/dist/commands/init-templates.js.map +1 -1
  25. package/dist/commands/init.test.js +8 -3
  26. package/dist/commands/init.test.js.map +1 -1
  27. package/dist/commands/rule-author-command.test.js +29 -2
  28. package/dist/commands/rule-author-command.test.js.map +1 -1
  29. package/dist/commands/rule-author-teardown.test.d.ts +2 -0
  30. package/dist/commands/rule-author-teardown.test.d.ts.map +1 -0
  31. package/dist/commands/rule-author-teardown.test.js +123 -0
  32. package/dist/commands/rule-author-teardown.test.js.map +1 -0
  33. package/dist/commands/rule-author.d.ts +1 -0
  34. package/dist/commands/rule-author.d.ts.map +1 -1
  35. package/dist/commands/rule-author.js +143 -2
  36. package/dist/commands/rule-author.js.map +1 -1
  37. package/dist/commands/spine-authored-cert-corpus.d.ts +15 -0
  38. package/dist/commands/spine-authored-cert-corpus.d.ts.map +1 -1
  39. package/dist/commands/spine-authored-cert-corpus.js +17 -1
  40. package/dist/commands/spine-authored-cert-corpus.js.map +1 -1
  41. package/dist/commands/spine-authored-cert-corpus.test.js +440 -4
  42. package/dist/commands/spine-authored-cert-corpus.test.js.map +1 -1
  43. package/dist/commands/spine-authored-materialize.d.ts +55 -0
  44. package/dist/commands/spine-authored-materialize.d.ts.map +1 -0
  45. package/dist/commands/spine-authored-materialize.js +315 -0
  46. package/dist/commands/spine-authored-materialize.js.map +1 -0
  47. package/dist/commands/spine-cert-materialize.d.ts.map +1 -1
  48. package/dist/commands/spine-cert-materialize.js +17 -0
  49. package/dist/commands/spine-cert-materialize.js.map +1 -1
  50. package/dist/commands/spine-cert-persist.d.ts +17 -1
  51. package/dist/commands/spine-cert-persist.d.ts.map +1 -1
  52. package/dist/commands/spine-cert-persist.js +17 -5
  53. package/dist/commands/spine-cert-persist.js.map +1 -1
  54. package/dist/commands/spine-cert-persist.test.js +60 -0
  55. package/dist/commands/spine-cert-persist.test.js.map +1 -1
  56. package/dist/commands/spine-cert-run-corpus.d.ts +18 -28
  57. package/dist/commands/spine-cert-run-corpus.d.ts.map +1 -1
  58. package/dist/commands/spine-cert-run-corpus.js +162 -21
  59. package/dist/commands/spine-cert-run-corpus.js.map +1 -1
  60. package/dist/commands/spine-derive-labels.d.ts.map +1 -1
  61. package/dist/commands/spine-derive-labels.js +9 -1
  62. package/dist/commands/spine-derive-labels.js.map +1 -1
  63. package/dist/commands/spine-freeze-orchestration.test.d.ts +2 -0
  64. package/dist/commands/spine-freeze-orchestration.test.d.ts.map +1 -0
  65. package/dist/commands/spine-freeze-orchestration.test.js +468 -0
  66. package/dist/commands/spine-freeze-orchestration.test.js.map +1 -0
  67. package/dist/commands/spine-freeze-split.d.ts +10 -0
  68. package/dist/commands/spine-freeze-split.d.ts.map +1 -0
  69. package/dist/commands/spine-freeze-split.js +131 -0
  70. package/dist/commands/spine-freeze-split.js.map +1 -0
  71. package/dist/commands/spine-windtunnel.d.ts +35 -0
  72. package/dist/commands/spine-windtunnel.d.ts.map +1 -1
  73. package/dist/commands/spine-windtunnel.js +47 -7
  74. package/dist/commands/spine-windtunnel.js.map +1 -1
  75. package/dist/index.js +21 -0
  76. package/dist/index.js.map +1 -1
  77. package/dist/spine-fixture-ancestry.d.ts +20 -0
  78. package/dist/spine-fixture-ancestry.d.ts.map +1 -0
  79. package/dist/spine-fixture-ancestry.js +46 -0
  80. package/dist/spine-fixture-ancestry.js.map +1 -0
  81. package/dist/spine-fixture-ancestry.test.d.ts +2 -0
  82. package/dist/spine-fixture-ancestry.test.d.ts.map +1 -0
  83. package/dist/spine-fixture-ancestry.test.js +62 -0
  84. package/dist/spine-fixture-ancestry.test.js.map +1 -0
  85. package/dist/spine-freeze-proof.d.ts +89 -0
  86. package/dist/spine-freeze-proof.d.ts.map +1 -0
  87. package/dist/spine-freeze-proof.js +237 -0
  88. package/dist/spine-freeze-proof.js.map +1 -0
  89. package/package.json +2 -2
@@ -8,14 +8,155 @@
8
8
  // strategy seam-review (f)). SLICE B: from-YAML only (interactive is a later
9
9
  // upgrade, §8); records are produced + ledgered, not yet fed to the certifying corpus.
10
10
  export async function ruleAuthorCommand(opts) {
11
+ const fs = await import('node:fs');
11
12
  const path = await import('node:path');
12
13
  const { loadConfig, resolveConfigPath } = await import('../utils.js');
13
- const { runRuleAuthor } = await import('../authored-rule-intake.js');
14
+ const { AUTHORED_RULES_REL, runRuleAuthor } = await import('../authored-rule-intake.js');
15
+ const { resolveGitRoot, safeExec, SPLIT_REF_RE, TotemError } = await import('@mmnto/totem');
14
16
  const cwd = process.cwd();
15
17
  const config = await loadConfig(resolveConfigPath(cwd));
16
18
  const totemDir = path.join(cwd, config.totemDir);
19
+ // ── R1 freeze binding (ADR-112 §5.1/§8): a content-addressed splitRef in the
20
+ // authoring header engages the shared-history proof BEFORE intake — resolve
21
+ // the frozen artifact by ref, prove it on the shared ref (topology-first),
22
+ // and hand the VERIFIED artifact to the git-free intake. A legacy free-text
23
+ // splitRef binds nothing (pre-R1 shape; intake enforces the partition). ──
24
+ let freezeBinding;
25
+ const yamlPath = path.join(totemDir, AUTHORED_RULES_REL);
26
+ let declaredSplitRef;
27
+ let yamlText;
28
+ if (fs.existsSync(yamlPath)) {
29
+ // Cheap header peek (full validation stays in runRuleAuthor): the splitRef line
30
+ // decides whether the proof machinery loads at all (lazy-load discipline).
31
+ yamlText = fs.readFileSync(yamlPath, 'utf-8');
32
+ const m = /^splitRef:\s*["']?(\S+?)["']?\s*$/m.exec(yamlText);
33
+ declaredSplitRef = m?.[1];
34
+ }
17
35
  const judgedBy = opts.judgedBy?.trim() || 'static-whitelist@cert-1';
18
- const result = runRuleAuthor(totemDir, { judgedBy });
36
+ if (declaredSplitRef !== undefined && SPLIT_REF_RE.test(declaredSplitRef)) {
37
+ // The §5.4 sandbox is NON-OPTIONAL under a content-addressed binding (#2294
38
+ // couple): a flag whose omission skips the guard is an author-owned knob,
39
+ // which the independence axiom forbids. Gate BEFORE the proof machinery
40
+ // loads — nothing is verified or partially engaged on failure. The legacy
41
+ // free-text lane below binds nothing and is byte-unaffected.
42
+ const lcDir = opts.lcDir?.trim();
43
+ if (lcDir === undefined || lcDir === '') {
44
+ throw new TotemError('GATE_INVALID', 'rule author: the authoring header names a frozen split artifact (content-addressed splitRef), so the §5.4 author sandbox is NON-OPTIONAL — --lc-dir is missing.', 'Pass --lc-dir <path-to-lc-clone> (env: TOTEM_LC_DIR); the sandbox root derives from the frozen artifact alone and its reachability proof must run before intake.');
45
+ }
46
+ const { resolveFrozenSplitByRef, verifySharedFrozenSplit } = await import('../spine-freeze-proof.js');
47
+ const repoRoot = resolveGitRoot(cwd) ?? cwd;
48
+ const resolved = resolveFrozenSplitByRef(totemDir, repoRoot, declaredSplitRef);
49
+ verifySharedFrozenSplit({ repoRoot, resolved, safeExec });
50
+ freezeBinding = { artifact: resolved.artifact };
51
+ console.log(`[RuleAuthor] freeze binding verified: ${resolved.artifact.splitRef} ` +
52
+ `(commitment ${resolved.artifact.freezeCommitment.slice(0, 12)}…, shared-history proof passed)`);
53
+ // §5.2 leakage semantics (#2294 couple, operator option (a)): prove any
54
+ // OUT-OF-WINDOW fixture PR strictly pre-window by ANCESTRY to the artifact's
55
+ // cutBoundarySha — this command is the git-holding boundary; intake consumes
56
+ // the verified set and never proves (the freezeBinding seam). The candidate
57
+ // collection is a best-effort structural walk: a malformed YAML yields no
58
+ // candidates here and intake's own strict parse rejects the file properly.
59
+ let verifiedPreWindowFixturePrs = new Set();
60
+ const { parse: parseYaml } = await import('yaml');
61
+ const declaredFixturePrs = collectDeclaredFixturePrs(yamlText ?? '', parseYaml);
62
+ const inWindow = new Set([
63
+ ...resolved.artifact.split.trainPrs,
64
+ ...resolved.artifact.split.heldOutPrs,
65
+ ]);
66
+ const outOfWindow = declaredFixturePrs.filter((pr) => !inWindow.has(pr));
67
+ if (outOfWindow.length > 0) {
68
+ const { verifyPreWindowFixturePrs } = await import('../spine-fixture-ancestry.js');
69
+ const { isAncestor } = await import('../git.js');
70
+ const { mergeCommitMap, parsePrNumber, parseRevertSha, isBotIdentity } = await import('@mmnto/totem');
71
+ const { enumeratePrMetas } = await import('./spine-windtunnel.js');
72
+ const metas = enumeratePrMetas(resolved.artifact.split.asOfCommit, lcDir, safeExec, {
73
+ parsePrNumber,
74
+ parseRevertSha,
75
+ isBotIdentity,
76
+ });
77
+ verifiedPreWindowFixturePrs = verifyPreWindowFixturePrs({
78
+ fixturePrs: outOfWindow,
79
+ trainPrs: resolved.artifact.split.trainPrs,
80
+ heldOutPrs: resolved.artifact.split.heldOutPrs,
81
+ mergeCommitByPr: mergeCommitMap(metas),
82
+ isAncestorOfCutBoundary: (mc) => isAncestor(lcDir, mc, resolved.artifact.cutBoundarySha),
83
+ });
84
+ console.log(`[RuleAuthor] §5.2 pre-window ancestry: ${verifiedPreWindowFixturePrs.size}/${outOfWindow.length} ` +
85
+ `out-of-window fixture PR(s) proven pre-window (cut boundary ${resolved.artifact.cutBoundarySha.slice(0, 12)}…)`);
86
+ }
87
+ // §5.4: materialize + tear down the derived sandbox to PROVE the boundary sha
88
+ // is reachable from this clone. The root derives from the artifact alone —
89
+ // no author-supplied root/allowlist exists on this surface (independence axiom).
90
+ const { prepareAuthorSandbox, removeAuthorSandbox } = await import('../author-sandbox.js');
91
+ const sandbox = prepareAuthorSandbox({
92
+ lcDir,
93
+ totemDir,
94
+ artifact: resolved.artifact,
95
+ safeExec,
96
+ });
97
+ console.log(`[RuleAuthor] §5.4 author sandbox verified: train tree as of ${sandbox.cutBoundarySha.slice(0, 12)} (derived root, torn down after intake)`);
98
+ let primaryErr;
99
+ try {
100
+ const result = runRuleAuthor(totemDir, {
101
+ judgedBy,
102
+ freezeBinding,
103
+ verifiedPreWindowFixturePrs,
104
+ });
105
+ reportRuleAuthor(result);
106
+ return;
107
+ }
108
+ catch (err) {
109
+ primaryErr = err;
110
+ throw err;
111
+ }
112
+ finally {
113
+ try {
114
+ removeAuthorSandbox({ lcDir, root: sandbox.root, safeExec });
115
+ }
116
+ catch (teardownErr) {
117
+ // A throw in `finally` SHADOWS the in-flight error (GCA #2293 round 4):
118
+ // with no primary in flight the teardown failure IS the error (throw);
119
+ // with one, surface the teardown loudly beside it — never replace it.
120
+ if (primaryErr === undefined)
121
+ throw teardownErr;
122
+ console.warn(`[RuleAuthor] WARNING: sandbox teardown failed after a primary error (root kept at ${sandbox.root}): ${teardownErr instanceof Error ? teardownErr.message : String(teardownErr)}`);
123
+ }
124
+ }
125
+ }
126
+ const result = runRuleAuthor(totemDir, { judgedBy, freezeBinding });
127
+ reportRuleAuthor(result);
128
+ }
129
+ /**
130
+ * Best-effort structural walk of the authored YAML for `rules[].positiveFixtures[].pr`
131
+ * — ONLY to decide which PRs need the §5.2 ancestry proof. Anything malformed yields
132
+ * no candidates; `runRuleAuthor`'s strict schema parse remains the real validator.
133
+ */
134
+ function collectDeclaredFixturePrs(yamlText, parse) {
135
+ let doc;
136
+ try {
137
+ doc = parse(yamlText.replace(/\r\n/g, '\n'));
138
+ // totem-context: intentional best-effort — runRuleAuthor re-parses the identical input strictly and fails loud; this pre-pass only picks ancestry-proof candidates
139
+ }
140
+ catch {
141
+ return [];
142
+ }
143
+ const rules = doc?.rules;
144
+ if (!Array.isArray(rules))
145
+ return [];
146
+ const prs = [];
147
+ for (const r of rules) {
148
+ const fixtures = r?.positiveFixtures;
149
+ if (!Array.isArray(fixtures))
150
+ continue;
151
+ for (const f of fixtures) {
152
+ const pr = f?.pr;
153
+ if (typeof pr === 'number' && Number.isInteger(pr) && pr > 0)
154
+ prs.push(pr);
155
+ }
156
+ }
157
+ return prs;
158
+ }
159
+ function reportRuleAuthor(result) {
19
160
  console.log(`[RuleAuthor] ${result.records.length} authored rule(s): ` +
20
161
  `${result.minted} minted, ${result.revised} revised, ${result.unchanged} unchanged.`);
21
162
  for (const rec of result.records) {
@@ -1 +1 @@
1
- {"version":3,"file":"rule-author.js","sourceRoot":"","sources":["../../src/commands/rule-author.ts"],"names":[],"mappings":"AAAA,iFAAiF;AACjF,EAAE;AACF,iFAAiF;AACjF,kFAAkF;AAClF,+EAA+E;AAC/E,kFAAkF;AAClF,4EAA4E;AAC5E,6EAA6E;AAC7E,uFAAuF;AAEvF,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,IAA2B;IACjE,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,CAAC;IACvC,MAAM,EAAE,UAAU,EAAE,iBAAiB,EAAE,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC;IACtE,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,MAAM,CAAC,4BAA4B,CAAC,CAAC;IAErE,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAC1B,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC;IACxD,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;IAEjD,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,yBAAyB,CAAC;IACpE,MAAM,MAAM,GAAG,aAAa,CAAC,QAAQ,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;IAErD,OAAO,CAAC,GAAG,CACT,gBAAgB,MAAM,CAAC,OAAO,CAAC,MAAM,qBAAqB;QACxD,GAAG,MAAM,CAAC,MAAM,YAAY,MAAM,CAAC,OAAO,aAAa,MAAM,CAAC,SAAS,aAAa,CACvF,CAAC;IACF,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QACjC,OAAO,CAAC,GAAG,CAAC,OAAO,GAAG,CAAC,MAAM,KAAK,GAAG,CAAC,UAAU,CAAC,MAAM,OAAO,GAAG,CAAC,UAAU,CAAC,YAAY,EAAE,CAAC,CAAC;IAC/F,CAAC;IAED,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC/B,OAAO,CAAC,IAAI,CACV,2BAA2B,MAAM,CAAC,QAAQ,CAAC,MAAM,uCAAuC;YACtF,+CAA+C,CAClD,CAAC;QACF,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;YAChC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,OAAO,CAAC,CAAC,YAAY,KAAK,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;QACpE,CAAC;QACD,2FAA2F;QAC3F,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;IACvB,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"rule-author.js","sourceRoot":"","sources":["../../src/commands/rule-author.ts"],"names":[],"mappings":"AAAA,iFAAiF;AACjF,EAAE;AACF,iFAAiF;AACjF,kFAAkF;AAClF,+EAA+E;AAC/E,kFAAkF;AAClF,4EAA4E;AAC5E,6EAA6E;AAC7E,uFAAuF;AAEvF,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,IAGvC;IACC,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,CAAC;IACnC,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,CAAC;IACvC,MAAM,EAAE,UAAU,EAAE,iBAAiB,EAAE,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC;IACtE,MAAM,EAAE,kBAAkB,EAAE,aAAa,EAAE,GAAG,MAAM,MAAM,CAAC,4BAA4B,CAAC,CAAC;IACzF,MAAM,EAAE,cAAc,EAAE,QAAQ,EAAE,YAAY,EAAE,UAAU,EAAE,GAAG,MAAM,MAAM,CAAC,cAAc,CAAC,CAAC;IAE5F,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAC1B,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC;IACxD,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;IAEjD,8EAA8E;IAC9E,+EAA+E;IAC/E,8EAA8E;IAC9E,+EAA+E;IAC/E,8EAA8E;IAC9E,IAAI,aAAmF,CAAC;IACxF,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,kBAAkB,CAAC,CAAC;IACzD,IAAI,gBAAoC,CAAC;IACzC,IAAI,QAA4B,CAAC;IACjC,IAAI,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC5B,gFAAgF;QAChF,2EAA2E;QAC3E,QAAQ,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAC9C,MAAM,CAAC,GAAG,oCAAoC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC9D,gBAAgB,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAC5B,CAAC;IACD,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,yBAAyB,CAAC;IACpE,IAAI,gBAAgB,KAAK,SAAS,IAAI,YAAY,CAAC,IAAI,CAAC,gBAAgB,CAAC,EAAE,CAAC;QAC1E,4EAA4E;QAC5E,0EAA0E;QAC1E,wEAAwE;QACxE,0EAA0E;QAC1E,6DAA6D;QAC7D,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC;QACjC,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,EAAE,EAAE,CAAC;YACxC,MAAM,IAAI,UAAU,CAClB,cAAc,EACd,iKAAiK,EACjK,kKAAkK,CACnK,CAAC;QACJ,CAAC;QACD,MAAM,EAAE,uBAAuB,EAAE,uBAAuB,EAAE,GACxD,MAAM,MAAM,CAAC,0BAA0B,CAAC,CAAC;QAC3C,MAAM,QAAQ,GAAG,cAAc,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC;QAC5C,MAAM,QAAQ,GAAG,uBAAuB,CAAC,QAAQ,EAAE,QAAQ,EAAE,gBAAgB,CAAC,CAAC;QAC/E,uBAAuB,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC;QAC1D,aAAa,GAAG,EAAE,QAAQ,EAAE,QAAQ,CAAC,QAAQ,EAAE,CAAC;QAChD,OAAO,CAAC,GAAG,CACT,yCAAyC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,GAAG;YACpE,eAAe,QAAQ,CAAC,QAAQ,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,iCAAiC,CAClG,CAAC;QACF,wEAAwE;QACxE,6EAA6E;QAC7E,6EAA6E;QAC7E,4EAA4E;QAC5E,0EAA0E;QAC1E,2EAA2E;QAC3E,IAAI,2BAA2B,GAAwB,IAAI,GAAG,EAAU,CAAC;QACzE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,CAAC;QAClD,MAAM,kBAAkB,GAAG,yBAAyB,CAAC,QAAQ,IAAI,EAAE,EAAE,SAAS,CAAC,CAAC;QAChF,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC;YACvB,GAAG,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ;YACnC,GAAG,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,UAAU;SACtC,CAAC,CAAC;QACH,MAAM,WAAW,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;QACzE,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC3B,MAAM,EAAE,yBAAyB,EAAE,GAAG,MAAM,MAAM,CAAC,8BAA8B,CAAC,CAAC;YACnF,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,CAAC;YACjD,MAAM,EAAE,cAAc,EAAE,aAAa,EAAE,cAAc,EAAE,aAAa,EAAE,GACpE,MAAM,MAAM,CAAC,cAAc,CAAC,CAAC;YAC/B,MAAM,EAAE,gBAAgB,EAAE,GAAG,MAAM,MAAM,CAAC,uBAAuB,CAAC,CAAC;YACnE,MAAM,KAAK,GAAG,gBAAgB,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,EAAE,QAAQ,EAAE;gBAClF,aAAa;gBACb,cAAc;gBACd,aAAa;aACd,CAAC,CAAC;YACH,2BAA2B,GAAG,yBAAyB,CAAC;gBACtD,UAAU,EAAE,WAAW;gBACvB,QAAQ,EAAE,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ;gBAC1C,UAAU,EAAE,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,UAAU;gBAC9C,eAAe,EAAE,cAAc,CAAC,KAAK,CAAC;gBACtC,uBAAuB,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,EAAE,QAAQ,CAAC,QAAQ,CAAC,cAAc,CAAC;aACzF,CAAC,CAAC;YACH,OAAO,CAAC,GAAG,CACT,0CAA0C,2BAA2B,CAAC,IAAI,IAAI,WAAW,CAAC,MAAM,GAAG;gBACjG,+DAA+D,QAAQ,CAAC,QAAQ,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CACnH,CAAC;QACJ,CAAC;QACD,8EAA8E;QAC9E,2EAA2E;QAC3E,iFAAiF;QACjF,MAAM,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,GAAG,MAAM,MAAM,CAAC,sBAAsB,CAAC,CAAC;QAC3F,MAAM,OAAO,GAAG,oBAAoB,CAAC;YACnC,KAAK;YACL,QAAQ;YACR,QAAQ,EAAE,QAAQ,CAAC,QAAQ;YAC3B,QAAQ;SACT,CAAC,CAAC;QACH,OAAO,CAAC,GAAG,CACT,+DAA+D,OAAO,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,yCAAyC,CAC5I,CAAC;QACF,IAAI,UAAmB,CAAC;QACxB,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,aAAa,CAAC,QAAQ,EAAE;gBACrC,QAAQ;gBACR,aAAa;gBACb,2BAA2B;aAC5B,CAAC,CAAC;YACH,gBAAgB,CAAC,MAAM,CAAC,CAAC;YACzB,OAAO;QACT,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,UAAU,GAAG,GAAG,CAAC;YACjB,MAAM,GAAG,CAAC;QACZ,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC;gBACH,mBAAmB,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;YAC/D,CAAC;YAAC,OAAO,WAAW,EAAE,CAAC;gBACrB,wEAAwE;gBACxE,uEAAuE;gBACvE,sEAAsE;gBACtE,IAAI,UAAU,KAAK,SAAS;oBAAE,MAAM,WAAW,CAAC;gBAChD,OAAO,CAAC,IAAI,CACV,qFAAqF,OAAO,CAAC,IAAI,MAAM,WAAW,YAAY,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,CAClL,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;IAED,MAAM,MAAM,GAAG,aAAa,CAAC,QAAQ,EAAE,EAAE,QAAQ,EAAE,aAAa,EAAE,CAAC,CAAC;IACpE,gBAAgB,CAAC,MAAM,CAAC,CAAC;AAC3B,CAAC;AAED;;;;GAIG;AACH,SAAS,yBAAyB,CAAC,QAAgB,EAAE,KAA6B;IAChF,IAAI,GAAY,CAAC;IACjB,IAAI,CAAC;QACH,GAAG,GAAG,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;QAC7C,mKAAmK;IACrK,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,MAAM,KAAK,GAAI,GAAkC,EAAE,KAAK,CAAC;IACzD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IACrC,MAAM,GAAG,GAAa,EAAE,CAAC;IACzB,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;QACtB,MAAM,QAAQ,GAAI,CAA2C,EAAE,gBAAgB,CAAC;QAChF,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC;YAAE,SAAS;QACvC,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;YACzB,MAAM,EAAE,GAAI,CAA6B,EAAE,EAAE,CAAC;YAC9C,IAAI,OAAO,EAAE,KAAK,QAAQ,IAAI,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,CAAC;gBAAE,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC7E,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,gBAAgB,CAAC,MAA6D;IACrF,OAAO,CAAC,GAAG,CACT,gBAAgB,MAAM,CAAC,OAAO,CAAC,MAAM,qBAAqB;QACxD,GAAG,MAAM,CAAC,MAAM,YAAY,MAAM,CAAC,OAAO,aAAa,MAAM,CAAC,SAAS,aAAa,CACvF,CAAC;IACF,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QACjC,OAAO,CAAC,GAAG,CAAC,OAAO,GAAG,CAAC,MAAM,KAAK,GAAG,CAAC,UAAU,CAAC,MAAM,OAAO,GAAG,CAAC,UAAU,CAAC,YAAY,EAAE,CAAC,CAAC;IAC/F,CAAC;IAED,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC/B,OAAO,CAAC,IAAI,CACV,2BAA2B,MAAM,CAAC,QAAQ,CAAC,MAAM,uCAAuC;YACtF,+CAA+C,CAClD,CAAC;QACF,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;YAChC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,OAAO,CAAC,CAAC,YAAY,KAAK,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;QACpE,CAAC;QACD,2FAA2F;QAC3F,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;IACvB,CAAC;AACH,CAAC"}
@@ -1,4 +1,5 @@
1
1
  import type { AuthoredControlsDeps, GroundTruthLabel, ResolvedPrDiff, SplitArtifact, Stage4VerifierDeps } from '@mmnto/totem';
2
+ import type { FreezeBinding } from '../spine-freeze-proof.js';
2
3
  import type { CertifyingCorpus } from './spine-windtunnel.js';
3
4
  export interface BuildAuthoredCertifyingCorpusDeps {
4
5
  /** `.totem` dir holding `spine/authored-rules.yaml` + the authoring-ledger. */
@@ -23,6 +24,20 @@ export interface BuildAuthoredCertifyingCorpusDeps {
23
24
  now: string;
24
25
  /** Optional §4 differential-evaluator injection for `deriveAuthoredControls` (defaults to the real one). */
25
26
  authoredControlsDeps?: AuthoredControlsDeps;
27
+ /**
28
+ * R1: the PROVEN freeze binding for a content-addressed `expectedSplitRef`
29
+ * (constructed ONLY by `resolveProvenFreezeBinding` at the cert-run boundary —
30
+ * this builder is git-free and never proves). Absent on a legacy free-text run;
31
+ * absent on a content-addressed run ⇒ the intake's total partition fails loud.
32
+ */
33
+ freezeBinding?: FreezeBinding;
34
+ /**
35
+ * §5.2 leakage semantics (#2294 couple, option (a)): fixture PRs the git-holding
36
+ * run boundary PROVED strictly pre-window by ancestry to the artifact's
37
+ * cutBoundarySha (`verifyPreWindowFixturePrs`). Threaded to the intake gate and
38
+ * the §6 deriver; absent/empty ⇒ strict train-only, byte-unchanged.
39
+ */
40
+ verifiedPreWindowFixturePrs?: ReadonlySet<number>;
26
41
  }
27
42
  /**
28
43
  * Assemble an AUTHORED `CertifyingCorpus` from `.totem/spine/authored-rules.yaml`.
@@ -1 +1 @@
1
- {"version":3,"file":"spine-authored-cert-corpus.d.ts","sourceRoot":"","sources":["../../src/commands/spine-authored-cert-corpus.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EACV,oBAAoB,EAEpB,gBAAgB,EAEhB,cAAc,EACd,aAAa,EACb,kBAAkB,EACnB,MAAM,cAAc,CAAC;AAEtB,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAE9D,MAAM,WAAW,iCAAiC;IAChD,+EAA+E;IAC/E,QAAQ,EAAE,MAAM,CAAC;IAKjB;;;;;;OAMG;IACH,gBAAgB,EAAE,MAAM,CAAC;IACzB,0FAA0F;IAC1F,KAAK,EAAE,aAAa,CAAC;IACrB,uFAAuF;IACvF,OAAO,EAAE,cAAc,EAAE,CAAC;IAC1B,0EAA0E;IAC1E,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;IAC3C,wEAAwE;IACxE,MAAM,EAAE,kBAAkB,CAAC;IAC3B,mFAAmF;IACnF,GAAG,EAAE,MAAM,CAAC;IACZ,4GAA4G;IAC5G,oBAAoB,CAAC,EAAE,oBAAoB,CAAC;CAC7C;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,6BAA6B,CACjD,IAAI,EAAE,iCAAiC,GACtC,OAAO,CAAC,gBAAgB,CAAC,CAqN3B"}
1
+ {"version":3,"file":"spine-authored-cert-corpus.d.ts","sourceRoot":"","sources":["../../src/commands/spine-authored-cert-corpus.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EACV,oBAAoB,EAEpB,gBAAgB,EAEhB,cAAc,EACd,aAAa,EACb,kBAAkB,EACnB,MAAM,cAAc,CAAC;AAEtB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAE9D,MAAM,WAAW,iCAAiC;IAChD,+EAA+E;IAC/E,QAAQ,EAAE,MAAM,CAAC;IAKjB;;;;;;OAMG;IACH,gBAAgB,EAAE,MAAM,CAAC;IACzB,0FAA0F;IAC1F,KAAK,EAAE,aAAa,CAAC;IACrB,uFAAuF;IACvF,OAAO,EAAE,cAAc,EAAE,CAAC;IAC1B,0EAA0E;IAC1E,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;IAC3C,wEAAwE;IACxE,MAAM,EAAE,kBAAkB,CAAC;IAC3B,mFAAmF;IACnF,GAAG,EAAE,MAAM,CAAC;IACZ,4GAA4G;IAC5G,oBAAoB,CAAC,EAAE,oBAAoB,CAAC;IAC5C;;;;;OAKG;IACH,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B;;;;;OAKG;IACH,2BAA2B,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;CACnD;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,6BAA6B,CACjD,IAAI,EAAE,iCAAiC,GACtC,OAAO,CAAC,gBAAgB,CAAC,CAqO3B"}
@@ -66,7 +66,20 @@ export async function buildAuthoredCertifyingCorpus(deps) {
66
66
  // cover (non-empty-but-stale): step-0 empty → no-mint stale → step-3 verdict/binding (Q3 layered).
67
67
  // The producer establishes eligibility/identity; NEVER construct AuthoredRuleRecord[] ad hoc or
68
68
  // read YAML→record here.
69
- const authorResult = runRuleAuthor(deps.totemDir, { judgedBy, verifyOnly: true });
69
+ // R1: a content-addressed expectedSplitRef binds the run to a FROZEN artifact — the caller
70
+ // resolves + PROVES the binding at the cert-run boundary (`resolveProvenFreezeBinding`) and
71
+ // threads it here, or the intake's own content-ref gate voids the verifyOnly re-derive
72
+ // (CR #2293 round 1: the cert re-derive ran bindingless). This builder stays git-free:
73
+ // it CONSUMES a proven binding, never constructs one (the never-unverified-binding
74
+ // invariant — proof lives with the boundary that has git).
75
+ const authorResult = runRuleAuthor(deps.totemDir, {
76
+ judgedBy,
77
+ verifyOnly: true,
78
+ ...(deps.freezeBinding !== undefined ? { freezeBinding: deps.freezeBinding } : {}),
79
+ ...(deps.verifiedPreWindowFixturePrs !== undefined
80
+ ? { verifiedPreWindowFixturePrs: deps.verifiedPreWindowFixturePrs }
81
+ : {}),
82
+ });
70
83
  // 2. rejected.length === 0 precondition: a partially-invalid authored file is broken
71
84
  // cert input — never certify the eligible subset (fail loud, not a partial corpus).
72
85
  if (authorResult.rejected.length > 0) {
@@ -165,6 +178,9 @@ export async function buildAuthoredCertifyingCorpus(deps) {
165
178
  split: deps.split,
166
179
  provenanceByRule,
167
180
  ...(deps.authoredControlsDeps ? { deps: deps.authoredControlsDeps } : {}),
181
+ ...(deps.verifiedPreWindowFixturePrs !== undefined
182
+ ? { verifiedPreWindowFixturePrs: deps.verifiedPreWindowFixturePrs }
183
+ : {}),
168
184
  });
169
185
  return {
170
186
  rules,
@@ -1 +1 @@
1
- {"version":3,"file":"spine-authored-cert-corpus.js","sourceRoot":"","sources":["../../src/commands/spine-authored-cert-corpus.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"spine-authored-cert-corpus.js","sourceRoot":"","sources":["../../src/commands/spine-authored-cert-corpus.ts"],"names":[],"mappings":"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"}