@mmnto/totem 1.87.0 → 1.89.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (75) hide show
  1. package/dist/index.d.ts +8 -1
  2. package/dist/index.d.ts.map +1 -1
  3. package/dist/index.js +6 -1
  4. package/dist/index.js.map +1 -1
  5. package/dist/sarif.d.ts +17 -0
  6. package/dist/sarif.d.ts.map +1 -1
  7. package/dist/sarif.js +71 -5
  8. package/dist/sarif.js.map +1 -1
  9. package/dist/sarif.test.js +94 -1
  10. package/dist/sarif.test.js.map +1 -1
  11. package/dist/spine/authored-controls.d.ts +8 -0
  12. package/dist/spine/authored-controls.d.ts.map +1 -1
  13. package/dist/spine/authored-controls.js +15 -5
  14. package/dist/spine/authored-controls.js.map +1 -1
  15. package/dist/spine/authored-controls.test.js +31 -0
  16. package/dist/spine/authored-controls.test.js.map +1 -1
  17. package/dist/spine/authored-freeze-gates.d.ts +45 -0
  18. package/dist/spine/authored-freeze-gates.d.ts.map +1 -0
  19. package/dist/spine/authored-freeze-gates.js +167 -0
  20. package/dist/spine/authored-freeze-gates.js.map +1 -0
  21. package/dist/spine/authored-freeze-gates.test.d.ts +2 -0
  22. package/dist/spine/authored-freeze-gates.test.d.ts.map +1 -0
  23. package/dist/spine/authored-freeze-gates.test.js +159 -0
  24. package/dist/spine/authored-freeze-gates.test.js.map +1 -0
  25. package/dist/spine/authored-rule.d.ts +10 -0
  26. package/dist/spine/authored-rule.d.ts.map +1 -1
  27. package/dist/spine/authored-rule.js +11 -0
  28. package/dist/spine/authored-rule.js.map +1 -1
  29. package/dist/spine/authoring-ledger.d.ts +28 -0
  30. package/dist/spine/authoring-ledger.d.ts.map +1 -1
  31. package/dist/spine/authoring-ledger.js +27 -0
  32. package/dist/spine/authoring-ledger.js.map +1 -1
  33. package/dist/spine/authoring-ledger.test.js +8 -0
  34. package/dist/spine/authoring-ledger.test.js.map +1 -1
  35. package/dist/spine/cert-corpus-seed.d.ts +38 -8
  36. package/dist/spine/cert-corpus-seed.d.ts.map +1 -1
  37. package/dist/spine/cert-corpus-seed.js +52 -1
  38. package/dist/spine/cert-corpus-seed.js.map +1 -1
  39. package/dist/spine/cert-corpus-seed.test.js +76 -0
  40. package/dist/spine/cert-corpus-seed.test.js.map +1 -1
  41. package/dist/spine/frozen-split.d.ts +541 -0
  42. package/dist/spine/frozen-split.d.ts.map +1 -0
  43. package/dist/spine/frozen-split.js +205 -0
  44. package/dist/spine/frozen-split.js.map +1 -0
  45. package/dist/spine/frozen-split.test.d.ts +2 -0
  46. package/dist/spine/frozen-split.test.d.ts.map +1 -0
  47. package/dist/spine/frozen-split.test.js +89 -0
  48. package/dist/spine/frozen-split.test.js.map +1 -0
  49. package/dist/spine/gate2-eligibility.d.ts +33 -0
  50. package/dist/spine/gate2-eligibility.d.ts.map +1 -0
  51. package/dist/spine/gate2-eligibility.js +54 -0
  52. package/dist/spine/gate2-eligibility.js.map +1 -0
  53. package/dist/spine/gate2-eligibility.test.d.ts +2 -0
  54. package/dist/spine/gate2-eligibility.test.d.ts.map +1 -0
  55. package/dist/spine/gate2-eligibility.test.js +252 -0
  56. package/dist/spine/gate2-eligibility.test.js.map +1 -0
  57. package/dist/spine/ledgers.d.ts +24 -0
  58. package/dist/spine/ledgers.d.ts.map +1 -1
  59. package/dist/spine/split.d.ts +16 -0
  60. package/dist/spine/split.d.ts.map +1 -1
  61. package/dist/spine/split.js +13 -0
  62. package/dist/spine/split.js.map +1 -1
  63. package/dist/spine/windtunnel-firing.d.ts +6 -2
  64. package/dist/spine/windtunnel-firing.d.ts.map +1 -1
  65. package/dist/spine/windtunnel-firing.js.map +1 -1
  66. package/dist/spine/windtunnel-lock.d.ts +4 -4
  67. package/dist/spine/windtunnel-scorer-authored.d.ts +70 -0
  68. package/dist/spine/windtunnel-scorer-authored.d.ts.map +1 -0
  69. package/dist/spine/windtunnel-scorer-authored.js +204 -0
  70. package/dist/spine/windtunnel-scorer-authored.js.map +1 -0
  71. package/dist/spine/windtunnel-scorer-authored.test.d.ts +2 -0
  72. package/dist/spine/windtunnel-scorer-authored.test.d.ts.map +1 -0
  73. package/dist/spine/windtunnel-scorer-authored.test.js +455 -0
  74. package/dist/spine/windtunnel-scorer-authored.test.js.map +1 -0
  75. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"windtunnel-firing.js","sourceRoot":"","sources":["../../src/spine/windtunnel-firing.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"windtunnel-firing.js","sourceRoot":"","sources":["../../src/spine/windtunnel-firing.ts"],"names":[],"mappings":"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"}
@@ -298,8 +298,8 @@ export declare const WindtunnelLockSchema: z.ZodEffects<z.ZodObject<{
298
298
  diffSha?: string | undefined;
299
299
  }[];
300
300
  };
301
- canonicalPath: string;
302
301
  gate: string;
302
+ canonicalPath: string;
303
303
  phase: "harness" | "certifying";
304
304
  fpDefinition: {
305
305
  rubricRef: string;
@@ -368,8 +368,8 @@ export declare const WindtunnelLockSchema: z.ZodEffects<z.ZodObject<{
368
368
  diffSha?: string | undefined;
369
369
  }[];
370
370
  };
371
- canonicalPath: string;
372
371
  gate: string;
372
+ canonicalPath: string;
373
373
  phase: "harness" | "certifying";
374
374
  fpDefinition: {
375
375
  rubricRef: string;
@@ -438,8 +438,8 @@ export declare const WindtunnelLockSchema: z.ZodEffects<z.ZodObject<{
438
438
  diffSha?: string | undefined;
439
439
  }[];
440
440
  };
441
- canonicalPath: string;
442
441
  gate: string;
442
+ canonicalPath: string;
443
443
  phase: "harness" | "certifying";
444
444
  fpDefinition: {
445
445
  rubricRef: string;
@@ -508,8 +508,8 @@ export declare const WindtunnelLockSchema: z.ZodEffects<z.ZodObject<{
508
508
  diffSha?: string | undefined;
509
509
  }[];
510
510
  };
511
- canonicalPath: string;
512
511
  gate: string;
512
+ canonicalPath: string;
513
513
  phase: "harness" | "certifying";
514
514
  fpDefinition: {
515
515
  rubricRef: string;
@@ -0,0 +1,70 @@
1
+ import type { AuthoredControls } from './authored-controls.js';
2
+ import type { PerRuleControlResult } from './windtunnel-firing.js';
3
+ import type { RuleFiring, ScorerInput, WindtunnelVerdict } from './windtunnel-scorer.js';
4
+ /**
5
+ * Input to the authored scorer. Extends the mined `ScorerInput` MINUS
6
+ * `positiveControlTargets` (that field is DERIVED here from `authoredControls`),
7
+ * plus the §6 answer key and the held-out partition for the O3 metric.
8
+ *
9
+ * `firings` carries the MERGED train + held-out firings — a train-side FP fails the
10
+ * whole window (a window-wide verdict), and `heldOutPrs` partitions them for the O3
11
+ * metric only. `exposureFloors` and the first two `actualExposure` legs pass straight
12
+ * through to the mined scorer; the THIRD leg (`positiveControlsExercised`) is
13
+ * OVERRIDDEN with |authoredControls.positive| (the option-(i) ruling — the §4
14
+ * differential at emission is the exercise proof; held-out activations never
15
+ * inflate it because they are not emissions).
16
+ */
17
+ export interface AuthoredScorerInput extends Omit<ScorerInput, 'positiveControlTargets'> {
18
+ /** The §6 answer key from `deriveAuthoredControls` — the emitted positives + the kept non-emissions. */
19
+ authoredControls: Pick<AuthoredControls, 'positive' | 'nonEmissions'>;
20
+ /** Held-out (scored-slice) PR numbers — the O3 partition. Supplied from `split.heldOutPrs` at D4. */
21
+ heldOutPrs: ReadonlySet<number>;
22
+ }
23
+ /** How the non-emission gate demoted the mined verdict ('none' = the mined verdict already met/exceeded the gate). */
24
+ export type AuthoredControlGateEffect = 'none' | 'fail-illegitimate' | 'honest-negative-not-certifiable';
25
+ /**
26
+ * The non-emission gate's audit record — observable so a consumed non-emission is
27
+ * NEVER a silent skip (Tenet-4). The counts report the raw `nonEmissions[]` tally
28
+ * regardless of `effect`; `effect` reports the demotion actually APPLIED to the
29
+ * mined verdict (so a more-severe mined FAIL can coexist with `effect: 'none'`
30
+ * while `illegitimate > 0` — the counts, not `effect`, are the presence signal).
31
+ */
32
+ export interface AuthoredControlGate {
33
+ illegitimate: number;
34
+ undecidable: number;
35
+ deferred: number;
36
+ effect: AuthoredControlGateEffect;
37
+ }
38
+ /** The mined verdict + the two authored additions (both never re-consulted for the verdict). */
39
+ export interface AuthoredWindtunnelVerdict extends WindtunnelVerdict {
40
+ /** O3 (verdict-inert): `targetRuleId → held-out non-control activation count`. Join-back keyed. */
41
+ heldOutActivationsByRule: Record<string, number>;
42
+ /** The non-emission gate's audit record (§6 fold). */
43
+ authoredControlGate: AuthoredControlGate;
44
+ }
45
+ /**
46
+ * Score an AUTHORED wind-tunnel run. Pure function: no IO, no clock, no
47
+ * randomness, byte-identical across re-runs for identical inputs (Tenet-15).
48
+ * Reduces to `scoreWindtunnel` after normalizing the §6 controls, applies the
49
+ * non-emission gate (demote-only), and appends the verdict-inert O3 metric.
50
+ */
51
+ export declare function scoreAuthoredWindtunnel(input: AuthoredScorerInput): AuthoredWindtunnelVerdict;
52
+ /**
53
+ * The AUTHORED sibling of `computePerRuleControlResults` (option-(i) ruling,
54
+ * operator 2026-07-04 / #2291): a rule's per-rule positive-control verdict is
55
+ * the §4 preimage-differential HELD AT EMISSION — the rule has ≥1 entry in
56
+ * `authoredControls.positive[]` (only `differential-holds` fixtures reach it) —
57
+ * never fire-on-window-diff (pre-window anchors have no window substrate by
58
+ * §5.2 design). The negative leg and the cull axis are IDENTICAL to the mined
59
+ * sibling: a rule firing on any negative control is culled (not a survivor,
60
+ * never stamped); survivors fired on none, so `negativeControl` is invariantly
61
+ * true. `evidenceRefs` carry §6-emission locus refs (`§6-emission:` prefixed) —
62
+ * record-only, deliberately NOT shaped like 64-hex firing labelIds so they can
63
+ * never be mistaken for (or joined against) the ground-truth key space.
64
+ */
65
+ export declare function computeAuthoredPerRuleControlResults(input: {
66
+ firings: RuleFiring[];
67
+ mintedRuleIds: string[];
68
+ authoredControls: Pick<AuthoredControls, 'positive'>;
69
+ }): Map<string, PerRuleControlResult>;
70
+ //# sourceMappingURL=windtunnel-scorer-authored.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"windtunnel-scorer-authored.d.ts","sourceRoot":"","sources":["../../src/spine/windtunnel-scorer-authored.ts"],"names":[],"mappings":"AA6CA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AACnE,OAAO,KAAK,EACV,UAAU,EACV,WAAW,EACX,iBAAiB,EAElB,MAAM,wBAAwB,CAAC;AAKhC;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,mBAAoB,SAAQ,IAAI,CAAC,WAAW,EAAE,wBAAwB,CAAC;IACtF,wGAAwG;IACxG,gBAAgB,EAAE,IAAI,CAAC,gBAAgB,EAAE,UAAU,GAAG,cAAc,CAAC,CAAC;IACtE,qGAAqG;IACrG,UAAU,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;CACjC;AAED,sHAAsH;AACtH,MAAM,MAAM,yBAAyB,GACjC,MAAM,GACN,mBAAmB,GACnB,iCAAiC,CAAC;AAEtC;;;;;;GAMG;AACH,MAAM,WAAW,mBAAmB;IAClC,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,yBAAyB,CAAC;CACnC;AAED,gGAAgG;AAChG,MAAM,WAAW,yBAA0B,SAAQ,iBAAiB;IAClE,mGAAmG;IACnG,wBAAwB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjD,sDAAsD;IACtD,mBAAmB,EAAE,mBAAmB,CAAC;CAC1C;AAaD;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,mBAAmB,GAAG,yBAAyB,CAmH7F;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,oCAAoC,CAAC,KAAK,EAAE;IAC1D,OAAO,EAAE,UAAU,EAAE,CAAC;IACtB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,gBAAgB,EAAE,IAAI,CAAC,gBAAgB,EAAE,UAAU,CAAC,CAAC;CACtD,GAAG,GAAG,CAAC,MAAM,EAAE,oBAAoB,CAAC,CA0BpC"}
@@ -0,0 +1,204 @@
1
+ // ─── ADR-112 §5.3/§6/§8 — the AUTHORED window-tunnel scorer (slice D3) ────────
2
+ //
3
+ // The sibling scorer for an AUTHORED rule window. Per strategy's Q1 ruling
4
+ // (2026-07-01) it REDUCES to the mined `scoreWindtunnel`, it does NOT fork it — a
5
+ // fork would violate the §5.3 content-blind-scorer invariant + §9 one-PASS/FAIL-
6
+ // meaning (contract-illegal). The mined cascade is reused BYTE-UNCHANGED; this
7
+ // layer only (a) normalizes the §6 authored controls into a `ScorerInput`, (b)
8
+ // applies a pre-scorer non-emission gate, and (c) appends a verdict-inert O3
9
+ // generalization metric.
10
+ //
11
+ // It is INERT like D1–D2.6: nothing here is wired into a cert run. The CLI
12
+ // `spine-windtunnel` command stays on the mined scorer until slice D4 flips the
13
+ // authored path reachable (D4 owes the whole-path couple-on-merge — scorer + the
14
+ // #793 no-mint gate + the §6 deriver, end-to-end). D3 is the pure inert core,
15
+ // offline-unit-tested in `@mmnto/core`.
16
+ //
17
+ // The three reduction moves (converged 4-seat panel, design in
18
+ // `.totem/specs/d3-authored-scorer.md`):
19
+ // 1. [REVISED by the option-(i) ruling, operator 2026-07-04 (#2291) — the D3
20
+ // projection was structurally unsatisfiable]: the §4 preimage-differential
21
+ // recorded AT EMISSION is the authored exercise + non-vacuity proof — only
22
+ // `differential-holds` fixtures reach `positive[]` (discharged in
23
+ // authored-controls.ts). The mined target-must-FIRE machinery is the MINED
24
+ // sibling's proof and is never consulted here: authored anchors may be
25
+ // strictly pre-window (§5.2), whose diffs are not window substrate BY
26
+ // DESIGN, so a projected target could never fire (every authored run would
27
+ // vacuous-FAIL). `positiveControlsExercised` := |authoredControls.positive|
28
+ // (the §6 emission channel); `positiveControlTargets` passed to the mined
29
+ // cascade is [] — its Step-3 check is vacuously true, and the authored
30
+ // vacuity guard is Move 2 below plus the exercised floor.
31
+ // 2. Non-emission gate (codex's load-bearing fold): a culled differential (empty
32
+ // `positive[]` + a recorded `nonEmissions[]`) must NOT reach the mined scorer
33
+ // as `positiveControlTargets: []` and silently PASS. An `illegitimate` class
34
+ // is a Gate-1 FAIL-equivalent; `undecidable`/`deferred` is not-certifiable
35
+ // (HONEST-NEGATIVE). The gate is DEMOTE-ONLY (mirrors the mined "a guard may
36
+ // demote a would-be PASS, never upgrade a FAIL") and PER-non-emission (a
37
+ // holding control on one fixture does not launder an illegitimate sibling).
38
+ // 3. O3 metric (verdict-inert post-pass): `heldOutActivationsByRule` — per
39
+ // authored rule under test, the count of its non-control (`corpus`) firings on
40
+ // held-out PRs. Keys are JOIN-BACK-derived from the positive controls'
41
+ // `targetRuleId` (Tenet-20; a firing-only derivation would drop a rule with
42
+ // zero held-out activations — the rare-defect case). Strategy Q2: the metric
43
+ // is NEVER consulted for the verdict, and the Gate-2-eligible SET derivation
44
+ // is DEFERRED to D4 (D3 emits only the raw metric).
45
+ import { scoreWindtunnel } from './windtunnel-scorer.js';
46
+ // ─── Verdict-severity ladder (demote-only combination) ───────────────────────
47
+ /** PASS < HONEST-NEGATIVE < FAIL. The gate may only raise severity, never lower it. */
48
+ const VERDICT_SEVERITY = {
49
+ PASS: 0,
50
+ 'HONEST-NEGATIVE': 1,
51
+ FAIL: 2,
52
+ };
53
+ // ─── Public API ─────────────────────────────────────
54
+ /**
55
+ * Score an AUTHORED wind-tunnel run. Pure function: no IO, no clock, no
56
+ * randomness, byte-identical across re-runs for identical inputs (Tenet-15).
57
+ * Reduces to `scoreWindtunnel` after normalizing the §6 controls, applies the
58
+ * non-emission gate (demote-only), and appends the verdict-inert O3 metric.
59
+ */
60
+ export function scoreAuthoredWindtunnel(input) {
61
+ const { firings, groundTruth, mintedRuleIds, cullRateThreshold, exposureFloors, actualExposure, authoredControls, heldOutPrs, } = input;
62
+ // Move 1 (option-(i) ruling) — the §6 emission channel IS the exercise proof:
63
+ // `positiveControlsExercised` = |positive[]| (each entry is differential-held
64
+ // by construction). The input's exercised leg is a mined-lane artifact of the
65
+ // shared `ScorerInput` shape and is OVERRIDDEN here — the authored scorer owns
66
+ // this leg (Tenet-20 single source; a caller-supplied count would be a second
67
+ // home). No targets go to the mined cascade: its fire-on-window-diff proof is
68
+ // unsatisfiable for pre-window anchors (§5.2) — the run-level `nonVacuity`
69
+ // field therefore reads vacuously true on an authored verdict; the authored
70
+ // vacuity guards are the Move-2 non-emission gate + the exercised floor.
71
+ const mined = scoreWindtunnel({
72
+ firings,
73
+ groundTruth,
74
+ positiveControlTargets: [],
75
+ mintedRuleIds,
76
+ cullRateThreshold,
77
+ exposureFloors,
78
+ actualExposure: {
79
+ ...actualExposure,
80
+ positiveControlsExercised: authoredControls.positive.length,
81
+ },
82
+ });
83
+ // Move 2 — the non-emission gate. Tally the classes, then combine the gate's
84
+ // implied verdict with the mined verdict on the severity ladder (demote-only).
85
+ let illegitimate = 0;
86
+ let undecidable = 0;
87
+ let deferred = 0;
88
+ for (const ne of authoredControls.nonEmissions) {
89
+ switch (ne.class) {
90
+ case 'illegitimate':
91
+ illegitimate += 1;
92
+ break;
93
+ case 'undecidable':
94
+ undecidable += 1;
95
+ break;
96
+ case 'deferred':
97
+ deferred += 1;
98
+ break;
99
+ default: {
100
+ // Exhaustiveness guard (Tenet-4; mirrors authored-controls.ts's
101
+ // NON_EMISSION_CLASS_BY_OUTCOME Record-over-Exclude). A future 4th class
102
+ // breaks THIS build instead of silently laundering into `deferred` → a
103
+ // spurious HONEST-NEGATIVE. The Zod boundary rejects it at runtime; the
104
+ // `never` binding makes a schema addition a COMPILE error here.
105
+ const _exhaustive = ne.class;
106
+ throw new Error(`[Totem Error] scoreAuthoredWindtunnel: unhandled non-emission class '${String(_exhaustive)}'`);
107
+ }
108
+ }
109
+ }
110
+ // The gate's implied verdict: an illegitimate control is a Gate-1 FAIL-equivalent
111
+ // (outranks undecidable/deferred); an undecidable/deferred control is not-
112
+ // certifiable → HONEST-NEGATIVE. No blocking non-emission ⇒ no constraint.
113
+ let gateKind = null;
114
+ let gateLabel = null;
115
+ if (illegitimate > 0) {
116
+ gateKind = 'FAIL';
117
+ gateLabel = 'fail-illegitimate';
118
+ }
119
+ else if (undecidable + deferred > 0) {
120
+ gateKind = 'HONEST-NEGATIVE';
121
+ gateLabel = 'honest-negative-not-certifiable';
122
+ }
123
+ // Demote-only: the gate applies ONLY when strictly more severe than the mined
124
+ // verdict. When equal (e.g. an illegitimate non-emission co-occurring with a real
125
+ // FP FAIL), the mined verdict is kept — a structural control defect does not erase
126
+ // a real FP measurement (build-altitude micro-decision, flagged for strategy).
127
+ let verdict = mined;
128
+ let effect = 'none';
129
+ if (gateKind !== null && VERDICT_SEVERITY[gateKind] > VERDICT_SEVERITY[mined.verdict]) {
130
+ // A gate demotion is a structural, no-claim verdict → precision null (#2189):
131
+ // a 0 would falsely read as an all-FP measurement.
132
+ verdict = { ...mined, verdict: gateKind, precision: null };
133
+ effect = gateLabel;
134
+ }
135
+ // Move 3 — the verdict-inert O3 metric. Keys are the authored rules under test
136
+ // (join-back from the positive controls), minus any culled rule. Values count each
137
+ // rule's non-control (`corpus`) firings on held-out PRs — 0 is a valid observable
138
+ // (the rare-defect case), so a keyed rule always appears even with no activation.
139
+ const culled = new Set(mined.cullLedger.map((e) => e.ruleId));
140
+ const heldOutActivationsByRule = {};
141
+ for (const c of authoredControls.positive) {
142
+ if (culled.has(c.targetRuleId))
143
+ continue; // (d) cull symmetry — out of the metric AND its keys
144
+ if (!Object.hasOwn(heldOutActivationsByRule, c.targetRuleId)) {
145
+ heldOutActivationsByRule[c.targetRuleId] = 0;
146
+ }
147
+ }
148
+ for (const f of firings) {
149
+ if (f.controlKind !== 'corpus')
150
+ continue; // (c) a rule's own control firing is excluded
151
+ if (!heldOutPrs.has(f.pr))
152
+ continue; // held-out slice only
153
+ if (culled.has(f.ruleId))
154
+ continue; // (d) culled rule contributes nothing
155
+ if (!Object.hasOwn(heldOutActivationsByRule, f.ruleId))
156
+ continue; // only rules with a positive control
157
+ heldOutActivationsByRule[f.ruleId] += 1;
158
+ }
159
+ return {
160
+ ...verdict,
161
+ heldOutActivationsByRule,
162
+ authoredControlGate: { illegitimate, undecidable, deferred, effect },
163
+ };
164
+ }
165
+ /**
166
+ * The AUTHORED sibling of `computePerRuleControlResults` (option-(i) ruling,
167
+ * operator 2026-07-04 / #2291): a rule's per-rule positive-control verdict is
168
+ * the §4 preimage-differential HELD AT EMISSION — the rule has ≥1 entry in
169
+ * `authoredControls.positive[]` (only `differential-holds` fixtures reach it) —
170
+ * never fire-on-window-diff (pre-window anchors have no window substrate by
171
+ * §5.2 design). The negative leg and the cull axis are IDENTICAL to the mined
172
+ * sibling: a rule firing on any negative control is culled (not a survivor,
173
+ * never stamped); survivors fired on none, so `negativeControl` is invariantly
174
+ * true. `evidenceRefs` carry §6-emission locus refs (`§6-emission:` prefixed) —
175
+ * record-only, deliberately NOT shaped like 64-hex firing labelIds so they can
176
+ * never be mistaken for (or joined against) the ground-truth key space.
177
+ */
178
+ export function computeAuthoredPerRuleControlResults(input) {
179
+ const { firings, mintedRuleIds, authoredControls } = input;
180
+ const culled = new Set();
181
+ for (const f of firings) {
182
+ if (f.controlKind === 'negative')
183
+ culled.add(f.ruleId);
184
+ }
185
+ const emissionRefsByRule = new Map();
186
+ for (const c of authoredControls.positive) {
187
+ const refs = emissionRefsByRule.get(c.targetRuleId) ?? [];
188
+ refs.push(`§6-emission:${c.pr}:${c.filePath}:${c.matchedSpan}`);
189
+ emissionRefsByRule.set(c.targetRuleId, refs);
190
+ }
191
+ const result = new Map();
192
+ for (const ruleId of mintedRuleIds) {
193
+ if (culled.has(ruleId))
194
+ continue; // not a survivor — never stamped (mined parity)
195
+ const refs = emissionRefsByRule.get(ruleId) ?? [];
196
+ result.set(ruleId, {
197
+ positiveControl: refs.length > 0,
198
+ negativeControl: true,
199
+ evidenceRefs: refs,
200
+ });
201
+ }
202
+ return result;
203
+ }
204
+ //# sourceMappingURL=windtunnel-scorer-authored.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"windtunnel-scorer-authored.js","sourceRoot":"","sources":["../../src/spine/windtunnel-scorer-authored.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=windtunnel-scorer-authored.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"windtunnel-scorer-authored.test.d.ts","sourceRoot":"","sources":["../../src/spine/windtunnel-scorer-authored.test.ts"],"names":[],"mappings":""}