@mmnto/totem 1.14.11 → 1.14.13

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 (48) hide show
  1. package/dist/adversarial.test.js +20 -15
  2. package/dist/adversarial.test.js.map +1 -1
  3. package/dist/compile-lesson.d.ts +58 -2
  4. package/dist/compile-lesson.d.ts.map +1 -1
  5. package/dist/compile-lesson.js +307 -29
  6. package/dist/compile-lesson.js.map +1 -1
  7. package/dist/compile-lesson.test.js +491 -19
  8. package/dist/compile-lesson.test.js.map +1 -1
  9. package/dist/compiler-schema.d.ts +154 -9
  10. package/dist/compiler-schema.d.ts.map +1 -1
  11. package/dist/compiler-schema.js +88 -10
  12. package/dist/compiler-schema.js.map +1 -1
  13. package/dist/compiler.d.ts +12 -4
  14. package/dist/compiler.d.ts.map +1 -1
  15. package/dist/compiler.js +25 -5
  16. package/dist/compiler.js.map +1 -1
  17. package/dist/compiler.test.js +194 -50
  18. package/dist/compiler.test.js.map +1 -1
  19. package/dist/config-schema.d.ts +45 -0
  20. package/dist/config-schema.d.ts.map +1 -1
  21. package/dist/config-schema.js +21 -0
  22. package/dist/config-schema.js.map +1 -1
  23. package/dist/config-schema.test.js +50 -1
  24. package/dist/config-schema.test.js.map +1 -1
  25. package/dist/index.d.ts +6 -6
  26. package/dist/index.d.ts.map +1 -1
  27. package/dist/index.js +3 -3
  28. package/dist/index.js.map +1 -1
  29. package/dist/rule-engine.d.ts +56 -13
  30. package/dist/rule-engine.d.ts.map +1 -1
  31. package/dist/rule-engine.js +62 -40
  32. package/dist/rule-engine.js.map +1 -1
  33. package/dist/rule-engine.test.js +87 -56
  34. package/dist/rule-engine.test.js.map +1 -1
  35. package/dist/rule-metrics.d.ts +40 -0
  36. package/dist/rule-metrics.d.ts.map +1 -1
  37. package/dist/rule-metrics.js +28 -0
  38. package/dist/rule-metrics.js.map +1 -1
  39. package/dist/rule-metrics.test.js +104 -3
  40. package/dist/rule-metrics.test.js.map +1 -1
  41. package/dist/rule-tester.d.ts.map +1 -1
  42. package/dist/rule-tester.js +9 -3
  43. package/dist/rule-tester.js.map +1 -1
  44. package/dist/test-utils.d.ts +9 -0
  45. package/dist/test-utils.d.ts.map +1 -1
  46. package/dist/test-utils.js +13 -0
  47. package/dist/test-utils.js.map +1 -1
  48. package/package.json +1 -1
@@ -1,5 +1,10 @@
1
- import { describe, expect, it } from 'vitest';
1
+ import { beforeEach, describe, expect, it } from 'vitest';
2
2
  import { applyRules, applyRulesToAdditions, } from './compiler.js';
3
+ import { makeRuleEngineCtx } from './test-utils.js';
4
+ let ctx;
5
+ beforeEach(() => {
6
+ ctx = makeRuleEngineCtx();
7
+ });
3
8
  // ─── Adversarial Evaluation Harness ─────────────────
4
9
  //
5
10
  // Tests that compiled Totem rules catch planted bugs in realistic diffs.
@@ -37,7 +42,7 @@ describe('adversarial evaluation harness', () => {
37
42
  + - run: npm run test
38
43
  - run: pnpm build
39
44
  `;
40
- const violations = applyRules(ADVERSARIAL_RULES, diff);
45
+ const violations = applyRules(ctx, ADVERSARIAL_RULES, diff);
41
46
  expect(violations.length).toBeGreaterThan(0); // totem-ignore
42
47
  expect(violations.some((v) => v.rule.lessonHeading === 'Never use npm')).toBe(true);
43
48
  });
@@ -52,7 +57,7 @@ describe('adversarial evaluation harness', () => {
52
57
  + console.error(error);
53
58
  }
54
59
  `;
55
- const violations = applyRules(ADVERSARIAL_RULES, diff);
60
+ const violations = applyRules(ctx, ADVERSARIAL_RULES, diff);
56
61
  expect(violations.some((v) => v.rule.lessonHeading === 'Use err not error')).toBe(true);
57
62
  });
58
63
  it('catches debugger statements left in production code', () => {
@@ -66,7 +71,7 @@ describe('adversarial evaluation harness', () => {
66
71
  + debugger;
67
72
  return res.json();
68
73
  `;
69
- const violations = applyRules(ADVERSARIAL_RULES, diff);
74
+ const violations = applyRules(ctx, ADVERSARIAL_RULES, diff);
70
75
  const debugViolations = violations.filter((v) => v.rule.lessonHeading === 'No debugger in production');
71
76
  expect(debugViolations).toHaveLength(2);
72
77
  });
@@ -80,7 +85,7 @@ describe('adversarial evaluation harness', () => {
80
85
  + return fetchData().catch(() => {})
81
86
  }
82
87
  `;
83
- const violations = applyRules(ADVERSARIAL_RULES, diff);
88
+ const violations = applyRules(ctx, ADVERSARIAL_RULES, diff);
84
89
  expect(violations.some((v) => v.rule.lessonHeading === 'No empty catch blocks')).toBe(true);
85
90
  });
86
91
  it('catches TODO comments in new code', () => {
@@ -93,7 +98,7 @@ describe('adversarial evaluation harness', () => {
93
98
  + // FIXME: this is a temporary hack
94
99
  return validateToken(token);
95
100
  `;
96
- const violations = applyRules(ADVERSARIAL_RULES, diff);
101
+ const violations = applyRules(ctx, ADVERSARIAL_RULES, diff);
97
102
  const todoViolations = violations.filter((v) => v.rule.lessonHeading === 'No TODO in production');
98
103
  expect(todoViolations).toHaveLength(2);
99
104
  });
@@ -107,7 +112,7 @@ describe('adversarial evaluation harness', () => {
107
112
  + password: 'hunter2',
108
113
  };
109
114
  `;
110
- const violations = applyRules(ADVERSARIAL_RULES, diff);
115
+ const violations = applyRules(ctx, ADVERSARIAL_RULES, diff);
111
116
  expect(violations.some((v) => v.rule.lessonHeading === 'No hardcoded secrets')).toBe(true);
112
117
  });
113
118
  it('catches TypeScript any type', () => {
@@ -120,7 +125,7 @@ describe('adversarial evaluation harness', () => {
120
125
  + metadata: any;
121
126
  }
122
127
  `;
123
- const violations = applyRules(ADVERSARIAL_RULES, diff);
128
+ const violations = applyRules(ctx, ADVERSARIAL_RULES, diff);
124
129
  expect(violations.some((v) => v.rule.lessonHeading === 'No any types')).toBe(true);
125
130
  });
126
131
  it('passes a clean diff with no violations', () => {
@@ -133,7 +138,7 @@ describe('adversarial evaluation harness', () => {
133
138
  + return \`Hello, \${name}!\`;
134
139
  }
135
140
  `;
136
- const violations = applyRules(ADVERSARIAL_RULES, diff);
141
+ const violations = applyRules(ctx, ADVERSARIAL_RULES, diff);
137
142
  expect(violations).toHaveLength(0);
138
143
  });
139
144
  it('respects inline suppression (totem-ignore)', () => {
@@ -145,7 +150,7 @@ describe('adversarial evaluation harness', () => {
145
150
  + debugger; // totem-ignore
146
151
  run();
147
152
  `;
148
- const violations = applyRules(ADVERSARIAL_RULES, diff);
153
+ const violations = applyRules(ctx, ADVERSARIAL_RULES, diff);
149
154
  const debugViolations = violations.filter((v) => v.rule.lessonHeading === 'No debugger in production');
150
155
  expect(debugViolations).toHaveLength(0);
151
156
  });
@@ -165,7 +170,7 @@ describe('adversarial evaluation harness', () => {
165
170
  + const data: any = fetch('/api');
166
171
  }
167
172
  `;
168
- const violations = applyRules(ADVERSARIAL_RULES, diff);
173
+ const violations = applyRules(ctx, ADVERSARIAL_RULES, diff);
169
174
  // Should catch: debugger, TODO, error (not err), any
170
175
  expect(violations.length).toBeGreaterThanOrEqual(4); // totem-ignore
171
176
  const headings = new Set(violations.map((v) => v.rule.lessonHeading));
@@ -204,7 +209,7 @@ describe('AST gating suppresses false positives', () => {
204
209
  astContext: 'string',
205
210
  },
206
211
  ];
207
- const violations = applyRulesToAdditions(rules, additions);
212
+ const violations = applyRulesToAdditions(ctx, rules, additions);
208
213
  expect(violations).toHaveLength(0);
209
214
  });
210
215
  it('skips violations in comment-context additions', () => {
@@ -218,7 +223,7 @@ describe('AST gating suppresses false positives', () => {
218
223
  astContext: 'comment',
219
224
  },
220
225
  ];
221
- const violations = applyRulesToAdditions(rules, additions);
226
+ const violations = applyRulesToAdditions(ctx, rules, additions);
222
227
  expect(violations).toHaveLength(0);
223
228
  });
224
229
  it('still catches violations in code-context additions', () => {
@@ -232,7 +237,7 @@ describe('AST gating suppresses false positives', () => {
232
237
  astContext: 'code',
233
238
  },
234
239
  ];
235
- const violations = applyRulesToAdditions(rules, additions);
240
+ const violations = applyRulesToAdditions(ctx, rules, additions);
236
241
  expect(violations.length).toBeGreaterThan(0); // totem-ignore
237
242
  expect(violations.some((v) => v.rule.lessonHeading === 'No debugger in production')).toBe(true);
238
243
  });
@@ -248,7 +253,7 @@ describe('AST gating suppresses false positives', () => {
248
253
  // astContext is undefined
249
254
  },
250
255
  ];
251
- const violations = applyRulesToAdditions(rules, additions);
256
+ const violations = applyRulesToAdditions(ctx, rules, additions);
252
257
  expect(violations.length).toBeGreaterThan(0); // totem-ignore
253
258
  });
254
259
  });
@@ -1 +1 @@
1
- {"version":3,"file":"adversarial.test.js","sourceRoot":"","sources":["../src/adversarial.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"adversarial.test.js","sourceRoot":"","sources":["../src/adversarial.test.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import type { CompiledRule, CompilerOutput, RegexValidation } from './compiler-schema.js';
1
+ import type { CompiledRule, CompilerOutput, NonCompilableReasonCode, RegexValidation } from './compiler-schema.js';
2
2
  import type { RuleTestResult } from './rule-tester.js';
3
3
  export interface LessonInput {
4
4
  index: number;
@@ -11,20 +11,59 @@ export interface LessonInput {
11
11
  * downstream consumers (totem doctor, Layer 4 fallthrough reporting per ADR-088)
12
12
  * can distinguish why a lesson produced no rule without string-matching
13
13
  * human-readable messages.
14
+ *
15
+ * mmnto-ai/totem#1481 aligned this internal type 1:1 with the persisted
16
+ * `NonCompilableReasonCode` enum so ledger writers can pass the code through
17
+ * without a mapping table. `'non-compilable'` renamed to `'out-of-scope'`,
18
+ * `'security-verify-rejected'` renamed to `'security-rule-rejected'`, and
19
+ * four producer-facing codes joined: `'no-pattern-generated'`,
20
+ * `'pattern-syntax-invalid'`, `'pattern-zero-match'`, `'no-pattern-found'`.
21
+ * Fresh compile runs MUST NOT emit `'legacy-unknown'`; that sentinel exists
22
+ * solely for migrating pre-#1481 2-tuples.
23
+ */
24
+ export type CompileLessonReasonCode = Exclude<NonCompilableReasonCode, 'legacy-unknown'>;
25
+ /**
26
+ * Single event inside a lesson's compile pipeline. Appended to a per-lesson
27
+ * `trace` array on every pipeline step (generate / verify / retry / result)
28
+ * and surfaced via `CompileLessonResult.trace` for the CLI `--verbose`
29
+ * renderer (mmnto-ai/totem#1482).
30
+ *
31
+ * `layer` numbers align with the ADR-088 staging (1 = manual, 2 = example-
32
+ * based, 3 = Layer 3 LLM with verify-retry). Consumers MUST tolerate unknown
33
+ * layer numbers so a future ADR-088 phase (dedicated Layer 1 / Layer 2
34
+ * telemetry) can emit without breaking the renderer.
35
+ *
36
+ * `patternHash` is a stable 16-character sha256 prefix of the emitted
37
+ * pattern, included only on `generate` events. Callers use it to correlate
38
+ * retries ("this retry produced the same pattern") without forwarding the
39
+ * pattern string itself.
40
+ *
41
+ * `reasonCode` is only set on the terminal `result` event when the lesson
42
+ * skipped. A compiled or failed lesson omits the field.
14
43
  */
15
- export type CompileLessonReasonCode = 'non-compilable' | 'missing-badexample' | 'verify-retry-exhausted' | 'security-verify-rejected';
44
+ export interface LayerTraceEvent {
45
+ layer: number;
46
+ action: 'generate' | 'verify' | 'retry' | 'result';
47
+ outcome: string;
48
+ patternHash?: string;
49
+ reasonCode?: Exclude<NonCompilableReasonCode, 'legacy-unknown'>;
50
+ }
16
51
  export type CompileLessonResult = {
17
52
  status: 'compiled';
18
53
  rule: CompiledRule;
54
+ trace?: LayerTraceEvent[];
19
55
  } | {
20
56
  status: 'skipped';
21
57
  hash: string;
22
58
  reason?: string;
23
59
  reasonCode: CompileLessonReasonCode;
60
+ trace?: LayerTraceEvent[];
24
61
  } | {
25
62
  status: 'failed';
63
+ trace?: LayerTraceEvent[];
26
64
  } | {
27
65
  status: 'noop';
66
+ trace?: LayerTraceEvent[];
28
67
  };
29
68
  export interface CompileLessonCallbacks {
30
69
  onWarn?: (heading: string, message: string) => void;
@@ -160,6 +199,23 @@ export declare function formatExampleFailure(result: RuleTestResult): string;
160
199
  * Returns { rule, rejectReason } so callers can report why a pattern was rejected.
161
200
  */
162
201
  export declare function buildManualRule(lesson: LessonInput, existingByHash: Map<string, CompiledRule>): BuildRuleResult;
202
+ /**
203
+ * Security-context signal for the missing-Example-Hit check. Either the
204
+ * compile orchestrator asserts the pack is security-scoped
205
+ * (`deps.securityContext === true`) OR the rule under construction already
206
+ * carries `immutable: true` (set by the pack manifest, ADR-089). Both
207
+ * paths trigger the zero-tolerance reject per ADR-088 Decision 3.
208
+ *
209
+ * The LLM-emitted `CompilerOutput` does not currently carry an `immutable`
210
+ * field (packs set it at pack-merge time), so the second signal only
211
+ * engages on the Pipeline 1 manual-rule path where `buildManualRule`
212
+ * could synthesize an immutable rule directly. A future change that
213
+ * threads `immutable` through `CompilerOutput` can wire Pipeline 2/3
214
+ * into this helper without touching the call sites.
215
+ */
216
+ export declare function isSecurityContext(deps: CompileLessonDeps, rule?: {
217
+ immutable?: boolean;
218
+ } | null): boolean;
163
219
  /**
164
220
  * Compile a single lesson into a rule.
165
221
  * Handles both manual patterns (zero LLM) and LLM-compiled patterns.
@@ -1 +1 @@
1
- {"version":3,"file":"compile-lesson.d.ts","sourceRoot":"","sources":["../src/compile-lesson.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"compile-lesson.d.ts","sourceRoot":"","sources":["../src/compile-lesson.ts"],"names":[],"mappings":"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"}