@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.
- package/dist/adversarial.test.js +20 -15
- package/dist/adversarial.test.js.map +1 -1
- package/dist/compile-lesson.d.ts +58 -2
- package/dist/compile-lesson.d.ts.map +1 -1
- package/dist/compile-lesson.js +307 -29
- package/dist/compile-lesson.js.map +1 -1
- package/dist/compile-lesson.test.js +491 -19
- package/dist/compile-lesson.test.js.map +1 -1
- package/dist/compiler-schema.d.ts +154 -9
- package/dist/compiler-schema.d.ts.map +1 -1
- package/dist/compiler-schema.js +88 -10
- package/dist/compiler-schema.js.map +1 -1
- package/dist/compiler.d.ts +12 -4
- package/dist/compiler.d.ts.map +1 -1
- package/dist/compiler.js +25 -5
- package/dist/compiler.js.map +1 -1
- package/dist/compiler.test.js +194 -50
- package/dist/compiler.test.js.map +1 -1
- package/dist/config-schema.d.ts +45 -0
- package/dist/config-schema.d.ts.map +1 -1
- package/dist/config-schema.js +21 -0
- package/dist/config-schema.js.map +1 -1
- package/dist/config-schema.test.js +50 -1
- package/dist/config-schema.test.js.map +1 -1
- package/dist/index.d.ts +6 -6
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -3
- package/dist/index.js.map +1 -1
- package/dist/rule-engine.d.ts +56 -13
- package/dist/rule-engine.d.ts.map +1 -1
- package/dist/rule-engine.js +62 -40
- package/dist/rule-engine.js.map +1 -1
- package/dist/rule-engine.test.js +87 -56
- package/dist/rule-engine.test.js.map +1 -1
- package/dist/rule-metrics.d.ts +40 -0
- package/dist/rule-metrics.d.ts.map +1 -1
- package/dist/rule-metrics.js +28 -0
- package/dist/rule-metrics.js.map +1 -1
- package/dist/rule-metrics.test.js +104 -3
- package/dist/rule-metrics.test.js.map +1 -1
- package/dist/rule-tester.d.ts.map +1 -1
- package/dist/rule-tester.js +9 -3
- package/dist/rule-tester.js.map +1 -1
- package/dist/test-utils.d.ts +9 -0
- package/dist/test-utils.d.ts.map +1 -1
- package/dist/test-utils.js +13 -0
- package/dist/test-utils.js.map +1 -1
- package/package.json +1 -1
package/dist/compiler.test.js
CHANGED
|
@@ -4,7 +4,11 @@ import * as path from 'node:path';
|
|
|
4
4
|
import { afterEach, beforeEach, describe, expect, it } from 'vitest';
|
|
5
5
|
import { applyRules, engineFields, extractAddedLines, hashLesson, loadCompiledRules, loadCompiledRulesFile, parseCompilerResponse, sanitizeFileGlobs, saveCompiledRules, saveCompiledRulesFile, validateRegex, } from './compiler.js';
|
|
6
6
|
import { CompiledRuleSchema } from './compiler-schema.js';
|
|
7
|
-
import { cleanTmpDir } from './test-utils.js';
|
|
7
|
+
import { cleanTmpDir, makeRuleEngineCtx } from './test-utils.js';
|
|
8
|
+
let ctx;
|
|
9
|
+
beforeEach(() => {
|
|
10
|
+
ctx = makeRuleEngineCtx();
|
|
11
|
+
});
|
|
8
12
|
// ─── hashLesson ──────────────────────────────────────
|
|
9
13
|
describe('hashLesson', () => {
|
|
10
14
|
it('returns a 16-char hex string', () => {
|
|
@@ -173,14 +177,14 @@ describe('applyRules', () => {
|
|
|
173
177
|
`;
|
|
174
178
|
it('detects a simple pattern violation', () => {
|
|
175
179
|
const rules = [makeRule('\\bnpm\\.install\\b', 'Do not call npm.install directly')];
|
|
176
|
-
const violations = applyRules(rules, diff);
|
|
180
|
+
const violations = applyRules(ctx, rules, diff);
|
|
177
181
|
expect(violations).toHaveLength(1);
|
|
178
182
|
expect(violations[0].rule.message).toBe('Do not call npm.install directly');
|
|
179
183
|
expect(violations[0].file).toBe('src/app.ts');
|
|
180
184
|
});
|
|
181
185
|
it('returns no violations when patterns do not match', () => {
|
|
182
186
|
const rules = [makeRule('\\byarn\\b', 'Do not use yarn')];
|
|
183
|
-
const violations = applyRules(rules, diff);
|
|
187
|
+
const violations = applyRules(ctx, rules, diff);
|
|
184
188
|
expect(violations).toHaveLength(0);
|
|
185
189
|
});
|
|
186
190
|
it('applies multiple rules', () => {
|
|
@@ -188,28 +192,28 @@ describe('applyRules', () => {
|
|
|
188
192
|
makeRule('\\bnpm\\b', 'Do not use npm'),
|
|
189
193
|
makeRule('\\berror\\b', 'Use err, not error'),
|
|
190
194
|
];
|
|
191
|
-
const violations = applyRules(rules, diff);
|
|
195
|
+
const violations = applyRules(ctx, rules, diff);
|
|
192
196
|
expect(violations).toHaveLength(2);
|
|
193
197
|
});
|
|
194
198
|
it('throws on rules with invalid regex patterns (mmnto/totem#1442 — no silent-compliance footgun)', () => {
|
|
195
199
|
const rules = [makeRule('[invalid', 'Bad pattern')];
|
|
196
|
-
expect(() => applyRules(rules, diff)).toThrow(/invalid regex pattern/);
|
|
200
|
+
expect(() => applyRules(ctx, rules, diff)).toThrow(/invalid regex pattern/);
|
|
197
201
|
});
|
|
198
202
|
it('returns empty for empty diff', () => {
|
|
199
203
|
const rules = [makeRule('anything', 'test')];
|
|
200
|
-
expect(applyRules(rules, '')).toEqual([]);
|
|
204
|
+
expect(applyRules(ctx, rules, '')).toEqual([]);
|
|
201
205
|
});
|
|
202
206
|
it('returns empty for empty rules', () => {
|
|
203
|
-
expect(applyRules([], diff)).toEqual([]);
|
|
207
|
+
expect(applyRules(ctx, [], diff)).toEqual([]);
|
|
204
208
|
});
|
|
205
209
|
it('excludes files listed in excludeFiles', () => {
|
|
206
210
|
const rules = [makeRule('\\bnpm\\.install\\b', 'Do not call npm.install directly')];
|
|
207
|
-
const violations = applyRules(rules, diff, ['src/app.ts']);
|
|
211
|
+
const violations = applyRules(ctx, rules, diff, ['src/app.ts']);
|
|
208
212
|
expect(violations).toHaveLength(0);
|
|
209
213
|
});
|
|
210
214
|
it('still detects violations in non-excluded files', () => {
|
|
211
215
|
const rules = [makeRule('\\bnpm\\.install\\b', 'Do not call npm.install directly')];
|
|
212
|
-
const violations = applyRules(rules, diff, ['other-file.ts']);
|
|
216
|
+
const violations = applyRules(ctx, rules, diff, ['other-file.ts']);
|
|
213
217
|
expect(violations).toHaveLength(1);
|
|
214
218
|
});
|
|
215
219
|
// ─── fileGlobs scoping ─────────────────────────────
|
|
@@ -233,7 +237,7 @@ describe('applyRules', () => {
|
|
|
233
237
|
].join('\n');
|
|
234
238
|
it('applies rule to all files when fileGlobs is absent', () => {
|
|
235
239
|
const rules = [makeRule('\\$\\w+', 'Found a dollar-sign variable')];
|
|
236
|
-
const violations = applyRules(rules, multiFileDiff);
|
|
240
|
+
const violations = applyRules(ctx, rules, multiFileDiff);
|
|
237
241
|
expect(violations).toHaveLength(2); // matches in both .sh and .ts
|
|
238
242
|
});
|
|
239
243
|
it('restricts rule to matching file types via fileGlobs', () => {
|
|
@@ -243,7 +247,7 @@ describe('applyRules', () => {
|
|
|
243
247
|
fileGlobs: ['*.sh', '*.bash'],
|
|
244
248
|
},
|
|
245
249
|
];
|
|
246
|
-
const violations = applyRules(rules, multiFileDiff);
|
|
250
|
+
const violations = applyRules(ctx, rules, multiFileDiff);
|
|
247
251
|
expect(violations).toHaveLength(1);
|
|
248
252
|
expect(violations[0].file).toBe('deploy.sh');
|
|
249
253
|
});
|
|
@@ -254,7 +258,7 @@ describe('applyRules', () => {
|
|
|
254
258
|
fileGlobs: ['*.py'],
|
|
255
259
|
},
|
|
256
260
|
];
|
|
257
|
-
const violations = applyRules(rules, multiFileDiff);
|
|
261
|
+
const violations = applyRules(ctx, rules, multiFileDiff);
|
|
258
262
|
expect(violations).toHaveLength(0);
|
|
259
263
|
});
|
|
260
264
|
it('handles **/*.ext glob pattern', () => {
|
|
@@ -264,7 +268,7 @@ describe('applyRules', () => {
|
|
|
264
268
|
fileGlobs: ['**/*.ts'],
|
|
265
269
|
},
|
|
266
270
|
];
|
|
267
|
-
const violations = applyRules(rules, multiFileDiff);
|
|
271
|
+
const violations = applyRules(ctx, rules, multiFileDiff);
|
|
268
272
|
expect(violations).toHaveLength(1);
|
|
269
273
|
expect(violations[0].file).toBe('src/utils.ts');
|
|
270
274
|
});
|
|
@@ -275,7 +279,7 @@ describe('applyRules', () => {
|
|
|
275
279
|
fileGlobs: [],
|
|
276
280
|
},
|
|
277
281
|
];
|
|
278
|
-
const violations = applyRules(rules, multiFileDiff);
|
|
282
|
+
const violations = applyRules(ctx, rules, multiFileDiff);
|
|
279
283
|
expect(violations).toHaveLength(2);
|
|
280
284
|
});
|
|
281
285
|
it('excludes files matching negated glob patterns', () => {
|
|
@@ -285,7 +289,7 @@ describe('applyRules', () => {
|
|
|
285
289
|
fileGlobs: ['*.sh', '*.ts', '!*.sh'],
|
|
286
290
|
},
|
|
287
291
|
];
|
|
288
|
-
const violations = applyRules(rules, multiFileDiff);
|
|
292
|
+
const violations = applyRules(ctx, rules, multiFileDiff);
|
|
289
293
|
expect(violations).toHaveLength(1);
|
|
290
294
|
expect(violations[0].file).toBe('src/utils.ts');
|
|
291
295
|
});
|
|
@@ -320,7 +324,7 @@ describe('applyRules', () => {
|
|
|
320
324
|
fileGlobs: ['packages/mcp/**/*.ts'],
|
|
321
325
|
},
|
|
322
326
|
];
|
|
323
|
-
const violations = applyRules(rules, monorepoMultiFileDiff);
|
|
327
|
+
const violations = applyRules(ctx, rules, monorepoMultiFileDiff);
|
|
324
328
|
expect(violations).toHaveLength(2); // server.ts + tools.test.ts
|
|
325
329
|
expect(violations.every((v) => v.file.startsWith('packages/mcp/'))).toBe(true);
|
|
326
330
|
});
|
|
@@ -331,7 +335,7 @@ describe('applyRules', () => {
|
|
|
331
335
|
fileGlobs: ['packages/mcp/**/*.ts', '!**/*.test.ts'],
|
|
332
336
|
},
|
|
333
337
|
];
|
|
334
|
-
const violations = applyRules(rules, monorepoMultiFileDiff);
|
|
338
|
+
const violations = applyRules(ctx, rules, monorepoMultiFileDiff);
|
|
335
339
|
expect(violations).toHaveLength(1);
|
|
336
340
|
expect(violations[0].file).toBe('packages/mcp/src/server.ts');
|
|
337
341
|
});
|
|
@@ -342,7 +346,7 @@ describe('applyRules', () => {
|
|
|
342
346
|
fileGlobs: ['packages/cli/**/*.ts'],
|
|
343
347
|
},
|
|
344
348
|
];
|
|
345
|
-
const violations = applyRules(rules, monorepoMultiFileDiff);
|
|
349
|
+
const violations = applyRules(ctx, rules, monorepoMultiFileDiff);
|
|
346
350
|
expect(violations).toHaveLength(0);
|
|
347
351
|
});
|
|
348
352
|
// ─── Inline suppression (totem-ignore) ─────────────
|
|
@@ -357,7 +361,7 @@ describe('applyRules', () => {
|
|
|
357
361
|
' export default x;',
|
|
358
362
|
].join('\n');
|
|
359
363
|
const rules = [makeRule('\\bnpm\\.install\\b', 'Do not call npm.install directly')];
|
|
360
|
-
const violations = applyRules(rules, suppressedDiff);
|
|
364
|
+
const violations = applyRules(ctx, rules, suppressedDiff);
|
|
361
365
|
expect(violations).toHaveLength(0);
|
|
362
366
|
});
|
|
363
367
|
it('suppresses next-line violation with totem-ignore-next-line (both added)', () => {
|
|
@@ -372,7 +376,7 @@ describe('applyRules', () => {
|
|
|
372
376
|
' export default x;',
|
|
373
377
|
].join('\n');
|
|
374
378
|
const rules = [makeRule('\\bnpm\\.install\\b', 'Do not call npm.install directly')];
|
|
375
|
-
const violations = applyRules(rules, suppressedDiff);
|
|
379
|
+
const violations = applyRules(ctx, rules, suppressedDiff);
|
|
376
380
|
expect(violations).toHaveLength(0);
|
|
377
381
|
});
|
|
378
382
|
it('suppresses next-line violation when directive is a context line', () => {
|
|
@@ -389,7 +393,7 @@ describe('applyRules', () => {
|
|
|
389
393
|
' export default x;',
|
|
390
394
|
].join('\n');
|
|
391
395
|
const rules = [makeRule('\\bnpm\\.install\\b', 'Do not call npm.install directly')];
|
|
392
|
-
const violations = applyRules(rules, suppressedDiff);
|
|
396
|
+
const violations = applyRules(ctx, rules, suppressedDiff);
|
|
393
397
|
expect(violations).toHaveLength(0);
|
|
394
398
|
});
|
|
395
399
|
it('does not suppress when there is no directive', () => {
|
|
@@ -403,7 +407,7 @@ describe('applyRules', () => {
|
|
|
403
407
|
' export default x;',
|
|
404
408
|
].join('\n');
|
|
405
409
|
const rules = [makeRule('\\bnpm\\.install\\b', 'Do not call npm.install directly')];
|
|
406
|
-
const violations = applyRules(rules, plainDiff);
|
|
410
|
+
const violations = applyRules(ctx, rules, plainDiff);
|
|
407
411
|
expect(violations).toHaveLength(1);
|
|
408
412
|
});
|
|
409
413
|
it('supports hash-style comment suppression', () => {
|
|
@@ -418,7 +422,7 @@ describe('applyRules', () => {
|
|
|
418
422
|
' exit 0',
|
|
419
423
|
].join('\n');
|
|
420
424
|
const rules = [makeRule('\\$[A-Z_]+', 'Quote shell variables')];
|
|
421
|
-
const violations = applyRules(rules, suppressedDiff);
|
|
425
|
+
const violations = applyRules(ctx, rules, suppressedDiff);
|
|
422
426
|
expect(violations).toHaveLength(0);
|
|
423
427
|
});
|
|
424
428
|
it('supports HTML comment suppression', () => {
|
|
@@ -432,7 +436,7 @@ describe('applyRules', () => {
|
|
|
432
436
|
' More text',
|
|
433
437
|
].join('\n');
|
|
434
438
|
const rules = [makeRule('\\bnpm\\.install\\b', 'Do not call npm.install')];
|
|
435
|
-
const violations = applyRules(rules, suppressedDiff);
|
|
439
|
+
const violations = applyRules(ctx, rules, suppressedDiff);
|
|
436
440
|
expect(violations).toHaveLength(0);
|
|
437
441
|
});
|
|
438
442
|
it('suppresses all rule violations on a single ignored line', () => {
|
|
@@ -449,7 +453,7 @@ describe('applyRules', () => {
|
|
|
449
453
|
makeRule('\\bnpm\\.install\\b', 'Do not call npm.install'),
|
|
450
454
|
makeRule('\\berror\\b', 'Use err, not error'),
|
|
451
455
|
];
|
|
452
|
-
const violations = applyRules(rules, suppressedDiff);
|
|
456
|
+
const violations = applyRules(ctx, rules, suppressedDiff);
|
|
453
457
|
expect(violations).toHaveLength(0);
|
|
454
458
|
});
|
|
455
459
|
it('handles suppression at first line of hunk (no preceding line)', () => {
|
|
@@ -463,7 +467,7 @@ describe('applyRules', () => {
|
|
|
463
467
|
' export default x;',
|
|
464
468
|
].join('\n');
|
|
465
469
|
const rules = [makeRule('\\bnpm\\.install\\b', 'Do not call npm.install')];
|
|
466
|
-
const violations = applyRules(rules, suppressedDiff);
|
|
470
|
+
const violations = applyRules(ctx, rules, suppressedDiff);
|
|
467
471
|
expect(violations).toHaveLength(0);
|
|
468
472
|
});
|
|
469
473
|
it('excludes test files with negated glob while matching source files', () => {
|
|
@@ -489,7 +493,7 @@ describe('applyRules', () => {
|
|
|
489
493
|
fileGlobs: ['*.ts', '!*.test.ts', '!*.spec.ts'],
|
|
490
494
|
},
|
|
491
495
|
];
|
|
492
|
-
const violations = applyRules(rules, testFileDiff);
|
|
496
|
+
const violations = applyRules(ctx, rules, testFileDiff);
|
|
493
497
|
expect(violations).toHaveLength(1);
|
|
494
498
|
expect(violations[0].file).toBe('src/utils.ts');
|
|
495
499
|
});
|
|
@@ -647,7 +651,7 @@ describe('compiled rules file I/O', () => {
|
|
|
647
651
|
'+const first = "the active rule must fire here";',
|
|
648
652
|
'+const second = "the archived rule must not fire here";',
|
|
649
653
|
].join('\n');
|
|
650
|
-
const violations = applyRules(rules, diff);
|
|
654
|
+
const violations = applyRules(ctx, rules, diff);
|
|
651
655
|
expect(violations).toHaveLength(1);
|
|
652
656
|
expect(violations[0].rule.lessonHash).toBe(activeRule.lessonHash);
|
|
653
657
|
expect(violations.some((v) => v.rule.lessonHash === archivedRule.lessonHash)).toBe(false);
|
|
@@ -665,6 +669,8 @@ describe('nonCompilable tuple schema (#1280)', () => {
|
|
|
665
669
|
it('loads legacy string-only nonCompilable arrays without errors', async () => {
|
|
666
670
|
// Pre-#1280: nonCompilable was Array<string>. Existing 1.13.0 compiled-rules.json
|
|
667
671
|
// files in the wild have this shape. The schema must keep accepting them.
|
|
672
|
+
// mmnto-ai/totem#1481: strings migrate to the 4-tuple shape with
|
|
673
|
+
// reasonCode: 'legacy-unknown'.
|
|
668
674
|
const { loadCompiledRulesFile } = await import('./compiler.js');
|
|
669
675
|
const rulesPath = path.join(tmpDir, 'compiled-rules.json');
|
|
670
676
|
fs.writeFileSync(rulesPath, JSON.stringify({
|
|
@@ -673,13 +679,16 @@ describe('nonCompilable tuple schema (#1280)', () => {
|
|
|
673
679
|
nonCompilable: ['legacy-hash-aaa', 'legacy-hash-bbb'],
|
|
674
680
|
}));
|
|
675
681
|
const loaded = loadCompiledRulesFile(rulesPath);
|
|
676
|
-
// Loader normalizes legacy strings to {hash, title} tuples for downstream uniformity.
|
|
677
682
|
expect(loaded.nonCompilable).toEqual([
|
|
678
|
-
{ hash: 'legacy-hash-aaa', title: '(legacy entry)' },
|
|
679
|
-
{ hash: 'legacy-hash-bbb', title: '(legacy entry)' },
|
|
683
|
+
{ hash: 'legacy-hash-aaa', title: '(legacy entry)', reasonCode: 'legacy-unknown' },
|
|
684
|
+
{ hash: 'legacy-hash-bbb', title: '(legacy entry)', reasonCode: 'legacy-unknown' },
|
|
680
685
|
]);
|
|
681
686
|
});
|
|
682
|
-
it('loads
|
|
687
|
+
it('loads legacy 2-tuple nonCompilable arrays and migrates to 4-tuple', async () => {
|
|
688
|
+
// Pre-mmnto-ai/totem#1481: nonCompilable was Array<{hash, title}>. Files
|
|
689
|
+
// compiled between #1280 and #1481 carry this shape. The Read transform
|
|
690
|
+
// normalizes them to the 4-tuple with reasonCode: 'legacy-unknown' and
|
|
691
|
+
// preserves the original title.
|
|
683
692
|
const { loadCompiledRulesFile } = await import('./compiler.js');
|
|
684
693
|
const rulesPath = path.join(tmpDir, 'compiled-rules.json');
|
|
685
694
|
fs.writeFileSync(rulesPath, JSON.stringify({
|
|
@@ -692,13 +701,53 @@ describe('nonCompilable tuple schema (#1280)', () => {
|
|
|
692
701
|
}));
|
|
693
702
|
const loaded = loadCompiledRulesFile(rulesPath);
|
|
694
703
|
expect(loaded.nonCompilable).toEqual([
|
|
695
|
-
{
|
|
696
|
-
|
|
704
|
+
{
|
|
705
|
+
hash: 'newer-hash-1',
|
|
706
|
+
title: 'Async error handling without context',
|
|
707
|
+
reasonCode: 'legacy-unknown',
|
|
708
|
+
},
|
|
709
|
+
{
|
|
710
|
+
hash: 'newer-hash-2',
|
|
711
|
+
title: 'SSR hydration mismatch logging',
|
|
712
|
+
reasonCode: 'legacy-unknown',
|
|
713
|
+
},
|
|
697
714
|
]);
|
|
698
715
|
});
|
|
699
|
-
it('loads
|
|
700
|
-
//
|
|
701
|
-
//
|
|
716
|
+
it('loads modern 4-tuple nonCompilable arrays without transforming them', async () => {
|
|
717
|
+
// Post-mmnto-ai/totem#1481 shape. The Read schema recognizes the full
|
|
718
|
+
// 4-tuple and passes it through unchanged (no 'legacy-unknown' coercion).
|
|
719
|
+
const { loadCompiledRulesFile } = await import('./compiler.js');
|
|
720
|
+
const rulesPath = path.join(tmpDir, 'compiled-rules.json');
|
|
721
|
+
fs.writeFileSync(rulesPath, JSON.stringify({
|
|
722
|
+
version: 1,
|
|
723
|
+
rules: [],
|
|
724
|
+
nonCompilable: [
|
|
725
|
+
{
|
|
726
|
+
hash: 'modern-1',
|
|
727
|
+
title: 'Cannot distill into a rule',
|
|
728
|
+
reasonCode: 'out-of-scope',
|
|
729
|
+
reason: 'Architectural principle.',
|
|
730
|
+
},
|
|
731
|
+
{ hash: 'modern-2', title: 'Missing example', reasonCode: 'missing-badexample' },
|
|
732
|
+
],
|
|
733
|
+
}));
|
|
734
|
+
const loaded = loadCompiledRulesFile(rulesPath);
|
|
735
|
+
expect(loaded.nonCompilable).toEqual([
|
|
736
|
+
{
|
|
737
|
+
hash: 'modern-1',
|
|
738
|
+
title: 'Cannot distill into a rule',
|
|
739
|
+
reasonCode: 'out-of-scope',
|
|
740
|
+
reason: 'Architectural principle.',
|
|
741
|
+
},
|
|
742
|
+
{ hash: 'modern-2', title: 'Missing example', reasonCode: 'missing-badexample' },
|
|
743
|
+
]);
|
|
744
|
+
});
|
|
745
|
+
it('loads mixed legacy + 2-tuple + 4-tuple arrays', async () => {
|
|
746
|
+
// Migration scenario: a project with stale legacy strings, intermediate
|
|
747
|
+
// 2-tuples, and fresh 4-tuples coexisting (e.g., someone upgraded mid
|
|
748
|
+
// cycle across multiple schema versions). Loader normalizes the first
|
|
749
|
+
// two shapes to 4-tuples with reasonCode: 'legacy-unknown' and leaves
|
|
750
|
+
// the modern entry untouched.
|
|
702
751
|
const { loadCompiledRulesFile } = await import('./compiler.js');
|
|
703
752
|
const rulesPath = path.join(tmpDir, 'compiled-rules.json');
|
|
704
753
|
fs.writeFileSync(rulesPath, JSON.stringify({
|
|
@@ -707,37 +756,91 @@ describe('nonCompilable tuple schema (#1280)', () => {
|
|
|
707
756
|
nonCompilable: [
|
|
708
757
|
'legacy-hash',
|
|
709
758
|
{ hash: 'tuple-hash', title: 'Has a real title' },
|
|
759
|
+
{ hash: 'modern-hash', title: 'Modern entry', reasonCode: 'out-of-scope' },
|
|
710
760
|
'another-legacy',
|
|
711
761
|
],
|
|
712
762
|
}));
|
|
713
763
|
const loaded = loadCompiledRulesFile(rulesPath);
|
|
714
764
|
expect(loaded.nonCompilable).toEqual([
|
|
715
|
-
{ hash: 'legacy-hash', title: '(legacy entry)' },
|
|
716
|
-
{ hash: 'tuple-hash', title: 'Has a real title' },
|
|
717
|
-
{ hash: '
|
|
765
|
+
{ hash: 'legacy-hash', title: '(legacy entry)', reasonCode: 'legacy-unknown' },
|
|
766
|
+
{ hash: 'tuple-hash', title: 'Has a real title', reasonCode: 'legacy-unknown' },
|
|
767
|
+
{ hash: 'modern-hash', title: 'Modern entry', reasonCode: 'out-of-scope' },
|
|
768
|
+
{ hash: 'another-legacy', title: '(legacy entry)', reasonCode: 'legacy-unknown' },
|
|
718
769
|
]);
|
|
719
770
|
});
|
|
720
|
-
it('
|
|
771
|
+
it('Write schema rejects malformed shapes with a loud error', async () => {
|
|
772
|
+
// Read schema is permissive (accepts 3 shapes); Write schema is strict.
|
|
773
|
+
// mmnto-ai/totem#1481 locks this separation so legacy 2-tuples cannot
|
|
774
|
+
// round-trip through save and silently stay legacy on disk.
|
|
775
|
+
const { NonCompilableEntryWriteSchema } = await import('./compiler.js');
|
|
776
|
+
// Legacy string: rejected on write.
|
|
777
|
+
expect(NonCompilableEntryWriteSchema.safeParse('raw-hash').success).toBe(false);
|
|
778
|
+
// Legacy 2-tuple: rejected on write.
|
|
779
|
+
expect(NonCompilableEntryWriteSchema.safeParse({ hash: 'h', title: 't' }).success).toBe(false);
|
|
780
|
+
// Modern 4-tuple: accepted.
|
|
781
|
+
expect(NonCompilableEntryWriteSchema.safeParse({
|
|
782
|
+
hash: 'h',
|
|
783
|
+
title: 't',
|
|
784
|
+
reasonCode: 'out-of-scope',
|
|
785
|
+
}).success).toBe(true);
|
|
786
|
+
// reasonCode: 'legacy-unknown' is explicitly accepted on write so migrated
|
|
787
|
+
// 2-tuples can round-trip to disk on the first post-#1481 compile (the
|
|
788
|
+
// behavioral invariant that fresh producers never emit 'legacy-unknown'
|
|
789
|
+
// lives at the call site, not the schema).
|
|
790
|
+
expect(NonCompilableEntryWriteSchema.safeParse({
|
|
791
|
+
hash: 'h',
|
|
792
|
+
title: 't',
|
|
793
|
+
reasonCode: 'legacy-unknown',
|
|
794
|
+
}).success).toBe(true);
|
|
795
|
+
});
|
|
796
|
+
it('saveCompiledRulesFile rejects malformed nonCompilable entries', async () => {
|
|
797
|
+
// The writer is the last line of defense for the Read/Write invariant
|
|
798
|
+
// (lesson 400fed87). If a caller wires up a Read-shape entry into the
|
|
799
|
+
// save path, we fail loudly rather than persist it.
|
|
800
|
+
const { saveCompiledRulesFile } = await import('./compiler.js');
|
|
801
|
+
const rulesPath = path.join(tmpDir, 'compiled-rules.json');
|
|
802
|
+
const malformed = {
|
|
803
|
+
version: 1,
|
|
804
|
+
rules: [],
|
|
805
|
+
// Deliberately a legacy 2-tuple — Read-shape leaking into Write path.
|
|
806
|
+
nonCompilable: [{ hash: 'h', title: 't' }],
|
|
807
|
+
};
|
|
808
|
+
expect(() => saveCompiledRulesFile(rulesPath, malformed)).toThrowError(/nonCompilable\[0\] failed strict write validation/);
|
|
809
|
+
});
|
|
810
|
+
it('round-trips 4-tuple entries through save and load', async () => {
|
|
721
811
|
const { loadCompiledRulesFile, saveCompiledRulesFile } = await import('./compiler.js');
|
|
722
812
|
const rulesPath = path.join(tmpDir, 'compiled-rules.json');
|
|
723
813
|
saveCompiledRulesFile(rulesPath, {
|
|
724
814
|
version: 1,
|
|
725
815
|
rules: [],
|
|
726
816
|
nonCompilable: [
|
|
727
|
-
{
|
|
728
|
-
|
|
817
|
+
{
|
|
818
|
+
hash: 'roundtrip-1',
|
|
819
|
+
title: 'First entry',
|
|
820
|
+
reasonCode: 'out-of-scope',
|
|
821
|
+
reason: 'Architectural principle, not a pattern.',
|
|
822
|
+
},
|
|
823
|
+
{ hash: 'roundtrip-2', title: 'Second entry', reasonCode: 'missing-badexample' },
|
|
729
824
|
],
|
|
730
825
|
});
|
|
731
826
|
const loaded = loadCompiledRulesFile(rulesPath);
|
|
732
827
|
expect(loaded.nonCompilable).toEqual([
|
|
733
|
-
{
|
|
734
|
-
|
|
828
|
+
{
|
|
829
|
+
hash: 'roundtrip-1',
|
|
830
|
+
title: 'First entry',
|
|
831
|
+
reasonCode: 'out-of-scope',
|
|
832
|
+
reason: 'Architectural principle, not a pattern.',
|
|
833
|
+
},
|
|
834
|
+
{ hash: 'roundtrip-2', title: 'Second entry', reasonCode: 'missing-badexample' },
|
|
735
835
|
]);
|
|
736
836
|
});
|
|
737
|
-
it('save
|
|
738
|
-
// The
|
|
739
|
-
//
|
|
740
|
-
//
|
|
837
|
+
it('save migrates legacy strings through load, persisting as 4-tuples with legacy-unknown', async () => {
|
|
838
|
+
// The Read transform normalizes legacy strings to 4-tuples on load
|
|
839
|
+
// (reasonCode: 'legacy-unknown'). When the normalized data flows back
|
|
840
|
+
// through save, the strict Write schema accepts `'legacy-unknown'`
|
|
841
|
+
// so migration round-trips safely on the first post-#1481 compile.
|
|
842
|
+
// Fresh compile paths still never emit `'legacy-unknown'` themselves
|
|
843
|
+
// (producer-side invariant, not schema-side).
|
|
741
844
|
const { loadCompiledRulesFile, saveCompiledRulesFile } = await import('./compiler.js');
|
|
742
845
|
const rulesPath = path.join(tmpDir, 'compiled-rules.json');
|
|
743
846
|
fs.writeFileSync(rulesPath, JSON.stringify({
|
|
@@ -748,7 +851,48 @@ describe('nonCompilable tuple schema (#1280)', () => {
|
|
|
748
851
|
const firstLoad = loadCompiledRulesFile(rulesPath);
|
|
749
852
|
saveCompiledRulesFile(rulesPath, firstLoad);
|
|
750
853
|
const onDisk = JSON.parse(fs.readFileSync(rulesPath, 'utf-8'));
|
|
751
|
-
expect(onDisk.nonCompilable).toEqual([
|
|
854
|
+
expect(onDisk.nonCompilable).toEqual([
|
|
855
|
+
{ hash: 'legacy-only', title: '(legacy entry)', reasonCode: 'legacy-unknown' },
|
|
856
|
+
]);
|
|
857
|
+
});
|
|
858
|
+
});
|
|
859
|
+
// ─── Manifest-hash backward compatibility (mmnto-ai/totem#1480) ──
|
|
860
|
+
describe('CompiledRule manifest-hash stability with unverified flag', () => {
|
|
861
|
+
it('canonicalStringify yields identical output for undefined unverified and an absent field', async () => {
|
|
862
|
+
// Invariant #10: a CompiledRule compiled without `unverified` (absent)
|
|
863
|
+
// hashes identically to the same rule pre-#1480. The guard is that
|
|
864
|
+
// `canonicalStringify` walks `Object.keys` and ignores entries with
|
|
865
|
+
// `undefined` values (JSON.stringify drops them anyway). Explicit
|
|
866
|
+
// `unverified: false` would add the key and break every pre-#1480
|
|
867
|
+
// manifest hash on disk. We never write that literal; this test
|
|
868
|
+
// anchors the property.
|
|
869
|
+
const { canonicalStringify } = await import('./compile-manifest.js');
|
|
870
|
+
const preRule = {
|
|
871
|
+
lessonHash: 'abc123def4567890',
|
|
872
|
+
lessonHeading: 'Test rule',
|
|
873
|
+
pattern: '\\bfoo\\b',
|
|
874
|
+
message: 'No foo',
|
|
875
|
+
engine: 'regex',
|
|
876
|
+
compiledAt: '2026-01-01T00:00:00Z',
|
|
877
|
+
};
|
|
878
|
+
const postRule = { ...preRule, unverified: undefined };
|
|
879
|
+
expect(canonicalStringify(preRule)).toBe(canonicalStringify(postRule));
|
|
880
|
+
});
|
|
881
|
+
it('canonicalStringify differs when unverified is explicitly true', async () => {
|
|
882
|
+
// Negative control: the flag does change the hash when set. An
|
|
883
|
+
// unverified rule is a different rule from a verified one; they must
|
|
884
|
+
// hash differently so the manifest reflects the governance signal.
|
|
885
|
+
const { canonicalStringify } = await import('./compile-manifest.js');
|
|
886
|
+
const verifiedRule = {
|
|
887
|
+
lessonHash: 'abc123def4567890',
|
|
888
|
+
lessonHeading: 'Test rule',
|
|
889
|
+
pattern: '\\bfoo\\b',
|
|
890
|
+
message: 'No foo',
|
|
891
|
+
engine: 'regex',
|
|
892
|
+
compiledAt: '2026-01-01T00:00:00Z',
|
|
893
|
+
};
|
|
894
|
+
const unverifiedRule = { ...verifiedRule, unverified: true };
|
|
895
|
+
expect(canonicalStringify(verifiedRule)).not.toBe(canonicalStringify(unverifiedRule));
|
|
752
896
|
});
|
|
753
897
|
});
|
|
754
898
|
// ─── CompiledRuleSchema: status / archivedReason ────
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compiler.test.js","sourceRoot":"","sources":["../src/compiler.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"compiler.test.js","sourceRoot":"","sources":["../src/compiler.test.ts"],"names":[],"mappings":"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"}
|