@mmnto/totem 1.78.0 → 1.79.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/artifacts/panel.d.ts +48 -48
- package/dist/artifacts/schema.d.ts +40 -40
- package/dist/compiler-schema.d.ts +1048 -7
- package/dist/compiler-schema.d.ts.map +1 -1
- package/dist/compiler-schema.js +129 -1
- package/dist/compiler-schema.js.map +1 -1
- package/dist/compiler-schema.test.js +92 -2
- package/dist/compiler-schema.test.js.map +1 -1
- package/dist/compiler.d.ts +2 -2
- package/dist/compiler.d.ts.map +1 -1
- package/dist/compiler.js +1 -1
- package/dist/compiler.js.map +1 -1
- package/dist/index.d.ts +8 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/dist/spine/authored-rule.d.ts +360 -0
- package/dist/spine/authored-rule.d.ts.map +1 -0
- package/dist/spine/authored-rule.js +199 -0
- package/dist/spine/authored-rule.js.map +1 -0
- package/dist/spine/authored-rule.test.d.ts +2 -0
- package/dist/spine/authored-rule.test.d.ts.map +1 -0
- package/dist/spine/authored-rule.test.js +220 -0
- package/dist/spine/authored-rule.test.js.map +1 -0
- package/dist/spine/candidate-rule.d.ts +32 -0
- package/dist/spine/candidate-rule.d.ts.map +1 -1
- package/dist/spine/candidate-rule.js +2 -2
- package/dist/spine/candidate-rule.js.map +1 -1
- package/dist/spine/classify.d.ts +5 -5
- package/dist/spine/compile.d.ts +16 -4
- package/dist/spine/compile.d.ts.map +1 -1
- package/dist/spine/compile.js +23 -0
- package/dist/spine/compile.js.map +1 -1
- package/dist/spine/compile.test.js +69 -0
- package/dist/spine/compile.test.js.map +1 -1
- package/dist/spine/corpus-dispositions.d.ts +18 -18
- package/dist/spine/extract.d.ts +2 -2
- package/dist/spine/extract.d.ts.map +1 -1
- package/dist/spine/extract.js +5 -4
- package/dist/spine/extract.js.map +1 -1
- package/dist/spine/ledgers.d.ts +46 -21
- package/dist/spine/ledgers.d.ts.map +1 -1
- package/dist/spine/ledgers.js +16 -8
- package/dist/spine/ledgers.js.map +1 -1
- package/dist/spine/rule-policy.d.ts +27 -0
- package/dist/spine/rule-policy.d.ts.map +1 -0
- package/dist/spine/rule-policy.js +43 -0
- package/dist/spine/rule-policy.js.map +1 -0
- package/dist/spine/rule-policy.test.d.ts +2 -0
- package/dist/spine/rule-policy.test.d.ts.map +1 -0
- package/dist/spine/rule-policy.test.js +31 -0
- package/dist/spine/rule-policy.test.js.map +1 -0
- package/dist/spine/windtunnel-lock.d.ts +8 -8
- package/package.json +1 -1
package/dist/spine/ledgers.d.ts
CHANGED
|
@@ -5,13 +5,17 @@ export type Routing = z.infer<typeof RoutingSchema>;
|
|
|
5
5
|
/**
|
|
6
6
|
* Provenance of a classifier-ledger disposition: a genuine classifier judgment
|
|
7
7
|
* (`classified`) vs a safe-default forced by classifier failure (`error-default`,
|
|
8
|
-
* always `behavioral`/RAG-only)
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
8
|
+
* always `behavioral`/RAG-only) vs an authored rule's INDEPENDENT structural
|
|
9
|
+
* eligibility verdict (`authored-whitelist`, ADR-112 §3 — judged by the static
|
|
10
|
+
* decidable-class whitelist, NOT an LLM classifier; named distinctly so the
|
|
11
|
+
* classifier ledger never claims an LLM classified a human-authored rule —
|
|
12
|
+
* Tenet-20 honesty). Reported in the §8 done-criterion so a flaky classifier's
|
|
13
|
+
* error rate is a NAMED cause of behavioral-heavy output — never conflated with
|
|
14
|
+
* "lc structural signal is sparse" (a valid HONEST-NEGATIVE) or "the classifier
|
|
15
|
+
* mis-routed everything" (Tenet 19). It is NOT a falsifying condition (no FM
|
|
16
|
+
* clause) — a done-criterion diagnostic, like `stage4Confirmed`.
|
|
13
17
|
*/
|
|
14
|
-
export declare const DispositionSourceSchema: z.ZodEnum<["classified", "error-default"]>;
|
|
18
|
+
export declare const DispositionSourceSchema: z.ZodEnum<["classified", "error-default", "authored-whitelist"]>;
|
|
15
19
|
export type DispositionSource = z.infer<typeof DispositionSourceSchema>;
|
|
16
20
|
/**
|
|
17
21
|
* Compile + Stage-4 disposition of a compile-routed (structural) candidate (slice 4).
|
|
@@ -46,6 +50,7 @@ export type DraftSourceKind = z.infer<typeof DraftSourceKindSchema>;
|
|
|
46
50
|
export declare const EmissionLedgerEntrySchema: z.ZodObject<{
|
|
47
51
|
candidateRef: z.ZodEffects<z.ZodString, string, string>;
|
|
48
52
|
provenance: z.ZodObject<{
|
|
53
|
+
kind: z.ZodOptional<z.ZodLiteral<"mined">>;
|
|
49
54
|
mergedPr: z.ZodNumber;
|
|
50
55
|
reviewThread: z.ZodEffects<z.ZodString, string, string>;
|
|
51
56
|
commitSha: z.ZodString;
|
|
@@ -53,10 +58,12 @@ export declare const EmissionLedgerEntrySchema: z.ZodObject<{
|
|
|
53
58
|
mergedPr: number;
|
|
54
59
|
reviewThread: string;
|
|
55
60
|
commitSha: string;
|
|
61
|
+
kind?: "mined" | undefined;
|
|
56
62
|
}, {
|
|
57
63
|
mergedPr: number;
|
|
58
64
|
reviewThread: string;
|
|
59
65
|
commitSha: string;
|
|
66
|
+
kind?: "mined" | undefined;
|
|
60
67
|
}>;
|
|
61
68
|
classifierDisposition: z.ZodEnum<["structural", "behavioral"]>;
|
|
62
69
|
routing: z.ZodEnum<["compile", "rag-only"]>;
|
|
@@ -74,6 +81,7 @@ export declare const EmissionLedgerEntrySchema: z.ZodObject<{
|
|
|
74
81
|
mergedPr: number;
|
|
75
82
|
reviewThread: string;
|
|
76
83
|
commitSha: string;
|
|
84
|
+
kind?: "mined" | undefined;
|
|
77
85
|
};
|
|
78
86
|
unverified: true;
|
|
79
87
|
classifierDisposition: "structural" | "behavioral";
|
|
@@ -86,6 +94,7 @@ export declare const EmissionLedgerEntrySchema: z.ZodObject<{
|
|
|
86
94
|
mergedPr: number;
|
|
87
95
|
reviewThread: string;
|
|
88
96
|
commitSha: string;
|
|
97
|
+
kind?: "mined" | undefined;
|
|
89
98
|
};
|
|
90
99
|
unverified: true;
|
|
91
100
|
classifierDisposition: "structural" | "behavioral";
|
|
@@ -99,6 +108,7 @@ export declare const EmissionLedgerSchema: z.ZodObject<{
|
|
|
99
108
|
entries: z.ZodArray<z.ZodObject<{
|
|
100
109
|
candidateRef: z.ZodEffects<z.ZodString, string, string>;
|
|
101
110
|
provenance: z.ZodObject<{
|
|
111
|
+
kind: z.ZodOptional<z.ZodLiteral<"mined">>;
|
|
102
112
|
mergedPr: z.ZodNumber;
|
|
103
113
|
reviewThread: z.ZodEffects<z.ZodString, string, string>;
|
|
104
114
|
commitSha: z.ZodString;
|
|
@@ -106,10 +116,12 @@ export declare const EmissionLedgerSchema: z.ZodObject<{
|
|
|
106
116
|
mergedPr: number;
|
|
107
117
|
reviewThread: string;
|
|
108
118
|
commitSha: string;
|
|
119
|
+
kind?: "mined" | undefined;
|
|
109
120
|
}, {
|
|
110
121
|
mergedPr: number;
|
|
111
122
|
reviewThread: string;
|
|
112
123
|
commitSha: string;
|
|
124
|
+
kind?: "mined" | undefined;
|
|
113
125
|
}>;
|
|
114
126
|
classifierDisposition: z.ZodEnum<["structural", "behavioral"]>;
|
|
115
127
|
routing: z.ZodEnum<["compile", "rag-only"]>;
|
|
@@ -127,6 +139,7 @@ export declare const EmissionLedgerSchema: z.ZodObject<{
|
|
|
127
139
|
mergedPr: number;
|
|
128
140
|
reviewThread: string;
|
|
129
141
|
commitSha: string;
|
|
142
|
+
kind?: "mined" | undefined;
|
|
130
143
|
};
|
|
131
144
|
unverified: true;
|
|
132
145
|
classifierDisposition: "structural" | "behavioral";
|
|
@@ -139,6 +152,7 @@ export declare const EmissionLedgerSchema: z.ZodObject<{
|
|
|
139
152
|
mergedPr: number;
|
|
140
153
|
reviewThread: string;
|
|
141
154
|
commitSha: string;
|
|
155
|
+
kind?: "mined" | undefined;
|
|
142
156
|
};
|
|
143
157
|
unverified: true;
|
|
144
158
|
classifierDisposition: "structural" | "behavioral";
|
|
@@ -164,6 +178,7 @@ export declare const EmissionLedgerSchema: z.ZodObject<{
|
|
|
164
178
|
mergedPr: number;
|
|
165
179
|
reviewThread: string;
|
|
166
180
|
commitSha: string;
|
|
181
|
+
kind?: "mined" | undefined;
|
|
167
182
|
};
|
|
168
183
|
unverified: true;
|
|
169
184
|
classifierDisposition: "structural" | "behavioral";
|
|
@@ -181,6 +196,7 @@ export declare const EmissionLedgerSchema: z.ZodObject<{
|
|
|
181
196
|
mergedPr: number;
|
|
182
197
|
reviewThread: string;
|
|
183
198
|
commitSha: string;
|
|
199
|
+
kind?: "mined" | undefined;
|
|
184
200
|
};
|
|
185
201
|
unverified: true;
|
|
186
202
|
classifierDisposition: "structural" | "behavioral";
|
|
@@ -343,7 +359,7 @@ export declare const ClassifierLedgerEntrySchema: z.ZodObject<{
|
|
|
343
359
|
* masquerading as structural-signal sparsity (Tenet 19, panel flag-5). Not an FM
|
|
344
360
|
* condition — a diagnostic, like `stage4Confirmed`.
|
|
345
361
|
*/
|
|
346
|
-
dispositionSource: z.ZodEnum<["classified", "error-default"]>;
|
|
362
|
+
dispositionSource: z.ZodEnum<["classified", "error-default", "authored-whitelist"]>;
|
|
347
363
|
/**
|
|
348
364
|
* Compile + Stage-4 outcome (slice 4), set by `runCompileStage` on the matched
|
|
349
365
|
* compile-routed entry. OPTIONAL — absent until the compile stage runs (and
|
|
@@ -357,13 +373,13 @@ export declare const ClassifierLedgerEntrySchema: z.ZodObject<{
|
|
|
357
373
|
candidateRef: string;
|
|
358
374
|
disposition: "structural" | "behavioral";
|
|
359
375
|
stage4Confirmed: boolean;
|
|
360
|
-
dispositionSource: "classified" | "error-default";
|
|
376
|
+
dispositionSource: "classified" | "error-default" | "authored-whitelist";
|
|
361
377
|
stage4Outcome?: "confirmed" | "untested-no-matches" | "archived-out-of-scope" | "compile-rejected" | undefined;
|
|
362
378
|
}, {
|
|
363
379
|
candidateRef: string;
|
|
364
380
|
disposition: "structural" | "behavioral";
|
|
365
381
|
stage4Confirmed: boolean;
|
|
366
|
-
dispositionSource: "classified" | "error-default";
|
|
382
|
+
dispositionSource: "classified" | "error-default" | "authored-whitelist";
|
|
367
383
|
stage4Outcome?: "confirmed" | "untested-no-matches" | "archived-out-of-scope" | "compile-rejected" | undefined;
|
|
368
384
|
}>;
|
|
369
385
|
export type ClassifierLedgerEntry = z.infer<typeof ClassifierLedgerEntrySchema>;
|
|
@@ -393,7 +409,7 @@ export declare const ClassifierLedgerSchema: z.ZodObject<{
|
|
|
393
409
|
* masquerading as structural-signal sparsity (Tenet 19, panel flag-5). Not an FM
|
|
394
410
|
* condition — a diagnostic, like `stage4Confirmed`.
|
|
395
411
|
*/
|
|
396
|
-
dispositionSource: z.ZodEnum<["classified", "error-default"]>;
|
|
412
|
+
dispositionSource: z.ZodEnum<["classified", "error-default", "authored-whitelist"]>;
|
|
397
413
|
/**
|
|
398
414
|
* Compile + Stage-4 outcome (slice 4), set by `runCompileStage` on the matched
|
|
399
415
|
* compile-routed entry. OPTIONAL — absent until the compile stage runs (and
|
|
@@ -407,13 +423,13 @@ export declare const ClassifierLedgerSchema: z.ZodObject<{
|
|
|
407
423
|
candidateRef: string;
|
|
408
424
|
disposition: "structural" | "behavioral";
|
|
409
425
|
stage4Confirmed: boolean;
|
|
410
|
-
dispositionSource: "classified" | "error-default";
|
|
426
|
+
dispositionSource: "classified" | "error-default" | "authored-whitelist";
|
|
411
427
|
stage4Outcome?: "confirmed" | "untested-no-matches" | "archived-out-of-scope" | "compile-rejected" | undefined;
|
|
412
428
|
}, {
|
|
413
429
|
candidateRef: string;
|
|
414
430
|
disposition: "structural" | "behavioral";
|
|
415
431
|
stage4Confirmed: boolean;
|
|
416
|
-
dispositionSource: "classified" | "error-default";
|
|
432
|
+
dispositionSource: "classified" | "error-default" | "authored-whitelist";
|
|
417
433
|
stage4Outcome?: "confirmed" | "untested-no-matches" | "archived-out-of-scope" | "compile-rejected" | undefined;
|
|
418
434
|
}>, "many">;
|
|
419
435
|
}, "strip", z.ZodTypeAny, {
|
|
@@ -421,7 +437,7 @@ export declare const ClassifierLedgerSchema: z.ZodObject<{
|
|
|
421
437
|
candidateRef: string;
|
|
422
438
|
disposition: "structural" | "behavioral";
|
|
423
439
|
stage4Confirmed: boolean;
|
|
424
|
-
dispositionSource: "classified" | "error-default";
|
|
440
|
+
dispositionSource: "classified" | "error-default" | "authored-whitelist";
|
|
425
441
|
stage4Outcome?: "confirmed" | "untested-no-matches" | "archived-out-of-scope" | "compile-rejected" | undefined;
|
|
426
442
|
}[];
|
|
427
443
|
}, {
|
|
@@ -429,7 +445,7 @@ export declare const ClassifierLedgerSchema: z.ZodObject<{
|
|
|
429
445
|
candidateRef: string;
|
|
430
446
|
disposition: "structural" | "behavioral";
|
|
431
447
|
stage4Confirmed: boolean;
|
|
432
|
-
dispositionSource: "classified" | "error-default";
|
|
448
|
+
dispositionSource: "classified" | "error-default" | "authored-whitelist";
|
|
433
449
|
stage4Outcome?: "confirmed" | "untested-no-matches" | "archived-out-of-scope" | "compile-rejected" | undefined;
|
|
434
450
|
}[];
|
|
435
451
|
}>;
|
|
@@ -673,6 +689,7 @@ export declare const MinerLedgersSchema: z.ZodObject<{
|
|
|
673
689
|
entries: z.ZodArray<z.ZodObject<{
|
|
674
690
|
candidateRef: z.ZodEffects<z.ZodString, string, string>;
|
|
675
691
|
provenance: z.ZodObject<{
|
|
692
|
+
kind: z.ZodOptional<z.ZodLiteral<"mined">>;
|
|
676
693
|
mergedPr: z.ZodNumber;
|
|
677
694
|
reviewThread: z.ZodEffects<z.ZodString, string, string>;
|
|
678
695
|
commitSha: z.ZodString;
|
|
@@ -680,10 +697,12 @@ export declare const MinerLedgersSchema: z.ZodObject<{
|
|
|
680
697
|
mergedPr: number;
|
|
681
698
|
reviewThread: string;
|
|
682
699
|
commitSha: string;
|
|
700
|
+
kind?: "mined" | undefined;
|
|
683
701
|
}, {
|
|
684
702
|
mergedPr: number;
|
|
685
703
|
reviewThread: string;
|
|
686
704
|
commitSha: string;
|
|
705
|
+
kind?: "mined" | undefined;
|
|
687
706
|
}>;
|
|
688
707
|
classifierDisposition: z.ZodEnum<["structural", "behavioral"]>;
|
|
689
708
|
routing: z.ZodEnum<["compile", "rag-only"]>;
|
|
@@ -701,6 +720,7 @@ export declare const MinerLedgersSchema: z.ZodObject<{
|
|
|
701
720
|
mergedPr: number;
|
|
702
721
|
reviewThread: string;
|
|
703
722
|
commitSha: string;
|
|
723
|
+
kind?: "mined" | undefined;
|
|
704
724
|
};
|
|
705
725
|
unverified: true;
|
|
706
726
|
classifierDisposition: "structural" | "behavioral";
|
|
@@ -713,6 +733,7 @@ export declare const MinerLedgersSchema: z.ZodObject<{
|
|
|
713
733
|
mergedPr: number;
|
|
714
734
|
reviewThread: string;
|
|
715
735
|
commitSha: string;
|
|
736
|
+
kind?: "mined" | undefined;
|
|
716
737
|
};
|
|
717
738
|
unverified: true;
|
|
718
739
|
classifierDisposition: "structural" | "behavioral";
|
|
@@ -738,6 +759,7 @@ export declare const MinerLedgersSchema: z.ZodObject<{
|
|
|
738
759
|
mergedPr: number;
|
|
739
760
|
reviewThread: string;
|
|
740
761
|
commitSha: string;
|
|
762
|
+
kind?: "mined" | undefined;
|
|
741
763
|
};
|
|
742
764
|
unverified: true;
|
|
743
765
|
classifierDisposition: "structural" | "behavioral";
|
|
@@ -755,6 +777,7 @@ export declare const MinerLedgersSchema: z.ZodObject<{
|
|
|
755
777
|
mergedPr: number;
|
|
756
778
|
reviewThread: string;
|
|
757
779
|
commitSha: string;
|
|
780
|
+
kind?: "mined" | undefined;
|
|
758
781
|
};
|
|
759
782
|
unverified: true;
|
|
760
783
|
classifierDisposition: "structural" | "behavioral";
|
|
@@ -849,7 +872,7 @@ export declare const MinerLedgersSchema: z.ZodObject<{
|
|
|
849
872
|
* masquerading as structural-signal sparsity (Tenet 19, panel flag-5). Not an FM
|
|
850
873
|
* condition — a diagnostic, like `stage4Confirmed`.
|
|
851
874
|
*/
|
|
852
|
-
dispositionSource: z.ZodEnum<["classified", "error-default"]>;
|
|
875
|
+
dispositionSource: z.ZodEnum<["classified", "error-default", "authored-whitelist"]>;
|
|
853
876
|
/**
|
|
854
877
|
* Compile + Stage-4 outcome (slice 4), set by `runCompileStage` on the matched
|
|
855
878
|
* compile-routed entry. OPTIONAL — absent until the compile stage runs (and
|
|
@@ -863,13 +886,13 @@ export declare const MinerLedgersSchema: z.ZodObject<{
|
|
|
863
886
|
candidateRef: string;
|
|
864
887
|
disposition: "structural" | "behavioral";
|
|
865
888
|
stage4Confirmed: boolean;
|
|
866
|
-
dispositionSource: "classified" | "error-default";
|
|
889
|
+
dispositionSource: "classified" | "error-default" | "authored-whitelist";
|
|
867
890
|
stage4Outcome?: "confirmed" | "untested-no-matches" | "archived-out-of-scope" | "compile-rejected" | undefined;
|
|
868
891
|
}, {
|
|
869
892
|
candidateRef: string;
|
|
870
893
|
disposition: "structural" | "behavioral";
|
|
871
894
|
stage4Confirmed: boolean;
|
|
872
|
-
dispositionSource: "classified" | "error-default";
|
|
895
|
+
dispositionSource: "classified" | "error-default" | "authored-whitelist";
|
|
873
896
|
stage4Outcome?: "confirmed" | "untested-no-matches" | "archived-out-of-scope" | "compile-rejected" | undefined;
|
|
874
897
|
}>, "many">;
|
|
875
898
|
}, "strip", z.ZodTypeAny, {
|
|
@@ -877,7 +900,7 @@ export declare const MinerLedgersSchema: z.ZodObject<{
|
|
|
877
900
|
candidateRef: string;
|
|
878
901
|
disposition: "structural" | "behavioral";
|
|
879
902
|
stage4Confirmed: boolean;
|
|
880
|
-
dispositionSource: "classified" | "error-default";
|
|
903
|
+
dispositionSource: "classified" | "error-default" | "authored-whitelist";
|
|
881
904
|
stage4Outcome?: "confirmed" | "untested-no-matches" | "archived-out-of-scope" | "compile-rejected" | undefined;
|
|
882
905
|
}[];
|
|
883
906
|
}, {
|
|
@@ -885,7 +908,7 @@ export declare const MinerLedgersSchema: z.ZodObject<{
|
|
|
885
908
|
candidateRef: string;
|
|
886
909
|
disposition: "structural" | "behavioral";
|
|
887
910
|
stage4Confirmed: boolean;
|
|
888
|
-
dispositionSource: "classified" | "error-default";
|
|
911
|
+
dispositionSource: "classified" | "error-default" | "authored-whitelist";
|
|
889
912
|
stage4Outcome?: "confirmed" | "untested-no-matches" | "archived-out-of-scope" | "compile-rejected" | undefined;
|
|
890
913
|
}[];
|
|
891
914
|
}>;
|
|
@@ -1131,6 +1154,7 @@ export declare const MinerLedgersSchema: z.ZodObject<{
|
|
|
1131
1154
|
mergedPr: number;
|
|
1132
1155
|
reviewThread: string;
|
|
1133
1156
|
commitSha: string;
|
|
1157
|
+
kind?: "mined" | undefined;
|
|
1134
1158
|
};
|
|
1135
1159
|
unverified: true;
|
|
1136
1160
|
classifierDisposition: "structural" | "behavioral";
|
|
@@ -1157,7 +1181,7 @@ export declare const MinerLedgersSchema: z.ZodObject<{
|
|
|
1157
1181
|
candidateRef: string;
|
|
1158
1182
|
disposition: "structural" | "behavioral";
|
|
1159
1183
|
stage4Confirmed: boolean;
|
|
1160
|
-
dispositionSource: "classified" | "error-default";
|
|
1184
|
+
dispositionSource: "classified" | "error-default" | "authored-whitelist";
|
|
1161
1185
|
stage4Outcome?: "confirmed" | "untested-no-matches" | "archived-out-of-scope" | "compile-rejected" | undefined;
|
|
1162
1186
|
}[];
|
|
1163
1187
|
};
|
|
@@ -1195,6 +1219,7 @@ export declare const MinerLedgersSchema: z.ZodObject<{
|
|
|
1195
1219
|
mergedPr: number;
|
|
1196
1220
|
reviewThread: string;
|
|
1197
1221
|
commitSha: string;
|
|
1222
|
+
kind?: "mined" | undefined;
|
|
1198
1223
|
};
|
|
1199
1224
|
unverified: true;
|
|
1200
1225
|
classifierDisposition: "structural" | "behavioral";
|
|
@@ -1221,7 +1246,7 @@ export declare const MinerLedgersSchema: z.ZodObject<{
|
|
|
1221
1246
|
candidateRef: string;
|
|
1222
1247
|
disposition: "structural" | "behavioral";
|
|
1223
1248
|
stage4Confirmed: boolean;
|
|
1224
|
-
dispositionSource: "classified" | "error-default";
|
|
1249
|
+
dispositionSource: "classified" | "error-default" | "authored-whitelist";
|
|
1225
1250
|
stage4Outcome?: "confirmed" | "untested-no-matches" | "archived-out-of-scope" | "compile-rejected" | undefined;
|
|
1226
1251
|
}[];
|
|
1227
1252
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ledgers.d.ts","sourceRoot":"","sources":["../../src/spine/ledgers.ts"],"names":[],"mappings":"AAYA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAcxB,yGAAyG;AACzG,eAAO,MAAM,aAAa,oCAAkC,CAAC;AAC7D,MAAM,MAAM,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAC;AAEpD
|
|
1
|
+
{"version":3,"file":"ledgers.d.ts","sourceRoot":"","sources":["../../src/spine/ledgers.ts"],"names":[],"mappings":"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"}
|
package/dist/spine/ledgers.js
CHANGED
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
// split → FM(d)/(g) cover + FM(e) split-disjointness
|
|
11
11
|
// apiUsage → FM(h) held-out-fetch count MUST be 0
|
|
12
12
|
import { z } from 'zod';
|
|
13
|
-
import {
|
|
13
|
+
import { MinedProvenanceWireSchema } from '../compiler-schema.js';
|
|
14
14
|
import { ClassifierDispositionSchema } from './candidate-rule.js';
|
|
15
15
|
import { SplitArtifactSchema } from './split.js';
|
|
16
16
|
function nonEmpty(label) {
|
|
@@ -24,13 +24,21 @@ export const RoutingSchema = z.enum(['compile', 'rag-only']);
|
|
|
24
24
|
/**
|
|
25
25
|
* Provenance of a classifier-ledger disposition: a genuine classifier judgment
|
|
26
26
|
* (`classified`) vs a safe-default forced by classifier failure (`error-default`,
|
|
27
|
-
* always `behavioral`/RAG-only)
|
|
28
|
-
*
|
|
29
|
-
*
|
|
30
|
-
*
|
|
31
|
-
*
|
|
27
|
+
* always `behavioral`/RAG-only) vs an authored rule's INDEPENDENT structural
|
|
28
|
+
* eligibility verdict (`authored-whitelist`, ADR-112 §3 — judged by the static
|
|
29
|
+
* decidable-class whitelist, NOT an LLM classifier; named distinctly so the
|
|
30
|
+
* classifier ledger never claims an LLM classified a human-authored rule —
|
|
31
|
+
* Tenet-20 honesty). Reported in the §8 done-criterion so a flaky classifier's
|
|
32
|
+
* error rate is a NAMED cause of behavioral-heavy output — never conflated with
|
|
33
|
+
* "lc structural signal is sparse" (a valid HONEST-NEGATIVE) or "the classifier
|
|
34
|
+
* mis-routed everything" (Tenet 19). It is NOT a falsifying condition (no FM
|
|
35
|
+
* clause) — a done-criterion diagnostic, like `stage4Confirmed`.
|
|
32
36
|
*/
|
|
33
|
-
export const DispositionSourceSchema = z.enum([
|
|
37
|
+
export const DispositionSourceSchema = z.enum([
|
|
38
|
+
'classified',
|
|
39
|
+
'error-default',
|
|
40
|
+
'authored-whitelist',
|
|
41
|
+
]);
|
|
34
42
|
/**
|
|
35
43
|
* Compile + Stage-4 disposition of a compile-routed (structural) candidate (slice 4).
|
|
36
44
|
* Recorded additively on the classifier ledger so the §8 done-criterion (which reads
|
|
@@ -67,7 +75,7 @@ export const DraftSourceKindSchema = z.enum(['human', 'bot', 'mixed']);
|
|
|
67
75
|
// ── 1. Emission ledger ──────────────────────────────────────────────────────
|
|
68
76
|
export const EmissionLedgerEntrySchema = z.object({
|
|
69
77
|
candidateRef: nonEmpty('candidateRef'),
|
|
70
|
-
provenance:
|
|
78
|
+
provenance: MinedProvenanceWireSchema,
|
|
71
79
|
classifierDisposition: ClassifierDispositionSchema,
|
|
72
80
|
routing: RoutingSchema,
|
|
73
81
|
classifierLedgerRef: nonEmpty('classifierLedgerRef'),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ledgers.js","sourceRoot":"","sources":["../../src/spine/ledgers.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,EAAE;AACF,8EAA8E;AAC9E,gFAAgF;AAChF,4EAA4E;AAC5E,+DAA+D;AAC/D,4EAA4E;AAC5E,yDAAyD;AACzD,iDAAiD;AACjD,4DAA4D;AAC5D,sDAAsD;AAEtD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"ledgers.js","sourceRoot":"","sources":["../../src/spine/ledgers.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/** ADR-112 — a rule's producer kind (the `provenance.kind` discriminator). */
|
|
2
|
+
export type ProducerKind = 'mined' | 'authored';
|
|
3
|
+
/**
|
|
4
|
+
* The producer-kind override config (ADR-112 §9). Each field is an upstream
|
|
5
|
+
* contract behaviour that authoring changes relative to mining:
|
|
6
|
+
* - `labelScope` — §9: mined labels the held-out slice only; authored
|
|
7
|
+
* must label EVERY non-control firing across BOTH
|
|
8
|
+
* slices, else a train-slice FP has no label and
|
|
9
|
+
* escapes the precision-1.0 FAIL.
|
|
10
|
+
* - `positiveControlSide` — §6: mined positive controls are held-out; authored
|
|
11
|
+
* positive controls are TRAIN-side (the rule is
|
|
12
|
+
* authored against the train slice).
|
|
13
|
+
* - `exposureControlSide` — §5.3: which slice `positiveControlsExercised`
|
|
14
|
+
* counts. Mirrors `positiveControlSide`.
|
|
15
|
+
*/
|
|
16
|
+
export interface RulePolicy {
|
|
17
|
+
readonly labelScope: 'held-out-only' | 'whole-window';
|
|
18
|
+
readonly positiveControlSide: 'held-out' | 'train';
|
|
19
|
+
readonly exposureControlSide: 'held-out' | 'train';
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* ADR-112 §9 — resolve the override config for a producer kind. Pure +
|
|
23
|
+
* exhaustive over the 2-value union. The MINED branch is the live, byte-identical
|
|
24
|
+
* path; the AUTHORED branch is defined for slice D's consumers (not yet wired).
|
|
25
|
+
*/
|
|
26
|
+
export declare function getRulePolicy(kind: ProducerKind): RulePolicy;
|
|
27
|
+
//# sourceMappingURL=rule-policy.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rule-policy.d.ts","sourceRoot":"","sources":["../../src/spine/rule-policy.ts"],"names":[],"mappings":"AAgBA,8EAA8E;AAC9E,MAAM,MAAM,YAAY,GAAG,OAAO,GAAG,UAAU,CAAC;AAEhD;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,UAAU;IAIzB,QAAQ,CAAC,UAAU,EAAE,eAAe,GAAG,cAAc,CAAC;IACtD,QAAQ,CAAC,mBAAmB,EAAE,UAAU,GAAG,OAAO,CAAC;IACnD,QAAQ,CAAC,mBAAmB,EAAE,UAAU,GAAG,OAAO,CAAC;CACpD;AAcD;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,YAAY,GAAG,UAAU,CAa5D"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
// ─── ADR-112 §9 — the producer-kind → override SINGLE HOME ───────────────────
|
|
2
|
+
//
|
|
3
|
+
// The one place behaviour switches on `provenance.kind`. ADR-112 §9 amends the
|
|
4
|
+
// upstream contracts (ADR-110/111) with a table of producer-kind overrides;
|
|
5
|
+
// rather than smear a `switch(kind)` across derive-labels / scorer / materializer
|
|
6
|
+
// (N scattered branches — the gemini break), every consumer asks THIS function
|
|
7
|
+
// "how do I handle a rule of this kind?" (Tenet 20 single-home).
|
|
8
|
+
//
|
|
9
|
+
// SLICE A scope: the home + the MINED policy are wired live (mined behaviour is
|
|
10
|
+
// byte-identical to pre-ADR-112). The AUTHORED policy is DEFINED here (so slice
|
|
11
|
+
// D extends one place, not many) but NO scorer/derive-labels/materializer
|
|
12
|
+
// consumer reads it yet — the operational window-wide label derivation, the
|
|
13
|
+
// train-side control materialization, and the held-out-activation metric are
|
|
14
|
+
// slice D. Until then a run is single-producer (`provenanceKind` on the lock,
|
|
15
|
+
// default `mined`); a mixed-kind corpus is out of scope for the first cert (§7).
|
|
16
|
+
const MINED_POLICY = Object.freeze({
|
|
17
|
+
labelScope: 'held-out-only',
|
|
18
|
+
positiveControlSide: 'held-out',
|
|
19
|
+
exposureControlSide: 'held-out',
|
|
20
|
+
});
|
|
21
|
+
const AUTHORED_POLICY = Object.freeze({
|
|
22
|
+
labelScope: 'whole-window',
|
|
23
|
+
positiveControlSide: 'train',
|
|
24
|
+
exposureControlSide: 'train',
|
|
25
|
+
});
|
|
26
|
+
/**
|
|
27
|
+
* ADR-112 §9 — resolve the override config for a producer kind. Pure +
|
|
28
|
+
* exhaustive over the 2-value union. The MINED branch is the live, byte-identical
|
|
29
|
+
* path; the AUTHORED branch is defined for slice D's consumers (not yet wired).
|
|
30
|
+
*/
|
|
31
|
+
export function getRulePolicy(kind) {
|
|
32
|
+
switch (kind) {
|
|
33
|
+
case 'mined':
|
|
34
|
+
return MINED_POLICY;
|
|
35
|
+
case 'authored':
|
|
36
|
+
return AUTHORED_POLICY;
|
|
37
|
+
default: {
|
|
38
|
+
const _exhaustive = kind;
|
|
39
|
+
throw new Error(`[Totem Error] getRulePolicy: unknown producer kind '${String(_exhaustive)}'`);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=rule-policy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rule-policy.js","sourceRoot":"","sources":["../../src/spine/rule-policy.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,EAAE;AACF,+EAA+E;AAC/E,4EAA4E;AAC5E,kFAAkF;AAClF,+EAA+E;AAC/E,iEAAiE;AACjE,EAAE;AACF,gFAAgF;AAChF,gFAAgF;AAChF,0EAA0E;AAC1E,4EAA4E;AAC5E,6EAA6E;AAC7E,8EAA8E;AAC9E,iFAAiF;AA2BjF,MAAM,YAAY,GAAe,MAAM,CAAC,MAAM,CAAC;IAC7C,UAAU,EAAE,eAAe;IAC3B,mBAAmB,EAAE,UAAU;IAC/B,mBAAmB,EAAE,UAAU;CAChC,CAAC,CAAC;AAEH,MAAM,eAAe,GAAe,MAAM,CAAC,MAAM,CAAC;IAChD,UAAU,EAAE,cAAc;IAC1B,mBAAmB,EAAE,OAAO;IAC5B,mBAAmB,EAAE,OAAO;CAC7B,CAAC,CAAC;AAEH;;;;GAIG;AACH,MAAM,UAAU,aAAa,CAAC,IAAkB;IAC9C,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,OAAO;YACV,OAAO,YAAY,CAAC;QACtB,KAAK,UAAU;YACb,OAAO,eAAe,CAAC;QACzB,OAAO,CAAC,CAAC,CAAC;YACR,MAAM,WAAW,GAAU,IAAI,CAAC;YAChC,MAAM,IAAI,KAAK,CACb,uDAAuD,MAAM,CAAC,WAAW,CAAC,GAAG,CAC9E,CAAC;QACJ,CAAC;IACH,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rule-policy.test.d.ts","sourceRoot":"","sources":["../../src/spine/rule-policy.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { describe, expect, it } from 'vitest';
|
|
2
|
+
import { getRulePolicy } from './rule-policy.js';
|
|
3
|
+
describe('getRulePolicy (ADR-112 §9 single-home)', () => {
|
|
4
|
+
it('mined → held-out-only label scope + held-out controls (the LIVE, byte-identical path)', () => {
|
|
5
|
+
expect(getRulePolicy('mined')).toEqual({
|
|
6
|
+
labelScope: 'held-out-only',
|
|
7
|
+
positiveControlSide: 'held-out',
|
|
8
|
+
exposureControlSide: 'held-out',
|
|
9
|
+
});
|
|
10
|
+
});
|
|
11
|
+
it('authored → whole-window labels + train-side controls (DEFINED for slice D; not yet wired live)', () => {
|
|
12
|
+
expect(getRulePolicy('authored')).toEqual({
|
|
13
|
+
labelScope: 'whole-window',
|
|
14
|
+
positiveControlSide: 'train',
|
|
15
|
+
exposureControlSide: 'train',
|
|
16
|
+
});
|
|
17
|
+
});
|
|
18
|
+
it('mined and authored diverge on label scope (the §9 amendment the scorer reads in slice D)', () => {
|
|
19
|
+
expect(getRulePolicy('mined').labelScope).not.toBe(getRulePolicy('authored').labelScope);
|
|
20
|
+
});
|
|
21
|
+
it('returns a frozen singleton — a caller cannot mutate policy resolution process-wide (#2259)', () => {
|
|
22
|
+
const policy = getRulePolicy('mined');
|
|
23
|
+
// Frozen ⇒ any property write throws in strict mode (ESM), so policy resolution can't be
|
|
24
|
+
// mutated process-wide through the shared reference. `Object.assign` exercises that [[Set]].
|
|
25
|
+
expect(Object.isFrozen(policy)).toBe(true);
|
|
26
|
+
expect(() => Object.assign(policy, { labelScope: 'whole-window' })).toThrow();
|
|
27
|
+
// the next resolution is unaffected by the attempted mutation.
|
|
28
|
+
expect(getRulePolicy('mined').labelScope).toBe('held-out-only');
|
|
29
|
+
});
|
|
30
|
+
});
|
|
31
|
+
//# sourceMappingURL=rule-policy.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rule-policy.test.js","sourceRoot":"","sources":["../../src/spine/rule-policy.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAE9C,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjD,QAAQ,CAAC,wCAAwC,EAAE,GAAG,EAAE;IACtD,EAAE,CAAC,uFAAuF,EAAE,GAAG,EAAE;QAC/F,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC;YACrC,UAAU,EAAE,eAAe;YAC3B,mBAAmB,EAAE,UAAU;YAC/B,mBAAmB,EAAE,UAAU;SAChC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gGAAgG,EAAE,GAAG,EAAE;QACxG,MAAM,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC;YACxC,UAAU,EAAE,cAAc;YAC1B,mBAAmB,EAAE,OAAO;YAC5B,mBAAmB,EAAE,OAAO;SAC7B,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0FAA0F,EAAE,GAAG,EAAE;QAClG,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC,UAAU,CAAC,CAAC;IAC3F,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4FAA4F,EAAE,GAAG,EAAE;QACpG,MAAM,MAAM,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;QACtC,yFAAyF;QACzF,6FAA6F;QAC7F,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3C,MAAM,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,UAAU,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;QAC9E,+DAA+D;QAC/D,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IAClE,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -88,14 +88,14 @@ export declare const WindtunnelLockSchema: z.ZodEffects<z.ZodObject<{
|
|
|
88
88
|
headSha: z.ZodString;
|
|
89
89
|
diffSha: z.ZodOptional<z.ZodString>;
|
|
90
90
|
}, "strip", z.ZodTypeAny, {
|
|
91
|
-
headSha: string;
|
|
92
91
|
pr: number;
|
|
92
|
+
headSha: string;
|
|
93
93
|
mergeCommit: string;
|
|
94
94
|
baseSha: string;
|
|
95
95
|
diffSha?: string | undefined;
|
|
96
96
|
}, {
|
|
97
|
-
headSha: string;
|
|
98
97
|
pr: number;
|
|
98
|
+
headSha: string;
|
|
99
99
|
mergeCommit: string;
|
|
100
100
|
baseSha: string;
|
|
101
101
|
diffSha?: string | undefined;
|
|
@@ -120,8 +120,8 @@ export declare const WindtunnelLockSchema: z.ZodEffects<z.ZodObject<{
|
|
|
120
120
|
} | undefined;
|
|
121
121
|
};
|
|
122
122
|
resolvedPrs: {
|
|
123
|
-
headSha: string;
|
|
124
123
|
pr: number;
|
|
124
|
+
headSha: string;
|
|
125
125
|
mergeCommit: string;
|
|
126
126
|
baseSha: string;
|
|
127
127
|
diffSha?: string | undefined;
|
|
@@ -146,8 +146,8 @@ export declare const WindtunnelLockSchema: z.ZodEffects<z.ZodObject<{
|
|
|
146
146
|
excludeBotPrs?: boolean | undefined;
|
|
147
147
|
};
|
|
148
148
|
resolvedPrs: {
|
|
149
|
-
headSha: string;
|
|
150
149
|
pr: number;
|
|
150
|
+
headSha: string;
|
|
151
151
|
mergeCommit: string;
|
|
152
152
|
baseSha: string;
|
|
153
153
|
diffSha?: string | undefined;
|
|
@@ -283,8 +283,8 @@ export declare const WindtunnelLockSchema: z.ZodEffects<z.ZodObject<{
|
|
|
283
283
|
} | undefined;
|
|
284
284
|
};
|
|
285
285
|
resolvedPrs: {
|
|
286
|
-
headSha: string;
|
|
287
286
|
pr: number;
|
|
287
|
+
headSha: string;
|
|
288
288
|
mergeCommit: string;
|
|
289
289
|
baseSha: string;
|
|
290
290
|
diffSha?: string | undefined;
|
|
@@ -349,8 +349,8 @@ export declare const WindtunnelLockSchema: z.ZodEffects<z.ZodObject<{
|
|
|
349
349
|
excludeBotPrs?: boolean | undefined;
|
|
350
350
|
};
|
|
351
351
|
resolvedPrs: {
|
|
352
|
-
headSha: string;
|
|
353
352
|
pr: number;
|
|
353
|
+
headSha: string;
|
|
354
354
|
mergeCommit: string;
|
|
355
355
|
baseSha: string;
|
|
356
356
|
diffSha?: string | undefined;
|
|
@@ -415,8 +415,8 @@ export declare const WindtunnelLockSchema: z.ZodEffects<z.ZodObject<{
|
|
|
415
415
|
} | undefined;
|
|
416
416
|
};
|
|
417
417
|
resolvedPrs: {
|
|
418
|
-
headSha: string;
|
|
419
418
|
pr: number;
|
|
419
|
+
headSha: string;
|
|
420
420
|
mergeCommit: string;
|
|
421
421
|
baseSha: string;
|
|
422
422
|
diffSha?: string | undefined;
|
|
@@ -481,8 +481,8 @@ export declare const WindtunnelLockSchema: z.ZodEffects<z.ZodObject<{
|
|
|
481
481
|
excludeBotPrs?: boolean | undefined;
|
|
482
482
|
};
|
|
483
483
|
resolvedPrs: {
|
|
484
|
-
headSha: string;
|
|
485
484
|
pr: number;
|
|
485
|
+
headSha: string;
|
|
486
486
|
mergeCommit: string;
|
|
487
487
|
baseSha: string;
|
|
488
488
|
diffSha?: string | undefined;
|