@mmnto/totem 1.14.13 → 1.14.15
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/compile-lesson.d.ts +7 -0
- package/dist/compile-lesson.d.ts.map +1 -1
- package/dist/compile-lesson.js +49 -2
- package/dist/compile-lesson.js.map +1 -1
- package/dist/compile-lesson.test.js +211 -4
- package/dist/compile-lesson.test.js.map +1 -1
- package/dist/compile-smoke-gate.d.ts +10 -6
- package/dist/compile-smoke-gate.d.ts.map +1 -1
- package/dist/compile-smoke-gate.js +17 -13
- package/dist/compile-smoke-gate.js.map +1 -1
- package/dist/compile-smoke-gate.test.js +42 -0
- package/dist/compile-smoke-gate.test.js.map +1 -1
- package/dist/compiler-schema.d.ts +61 -16
- package/dist/compiler-schema.d.ts.map +1 -1
- package/dist/compiler-schema.js +56 -1
- package/dist/compiler-schema.js.map +1 -1
- package/dist/compiler-schema.test.js +113 -0
- package/dist/compiler-schema.test.js.map +1 -1
- package/dist/compiler.test.js +9 -2
- package/dist/compiler.test.js.map +1 -1
- package/dist/lesson-pattern.d.ts +12 -0
- package/dist/lesson-pattern.d.ts.map +1 -1
- package/dist/lesson-pattern.js +23 -0
- package/dist/lesson-pattern.js.map +1 -1
- package/dist/lesson-pattern.test.js +93 -1
- package/dist/lesson-pattern.test.js.map +1 -1
- package/package.json +1 -1
|
@@ -76,6 +76,16 @@ export declare const CompiledRuleSchema: z.ZodEffects<z.ZodObject<{
|
|
|
76
76
|
* 1.14.9; flips to required when #1408 turns on the gate.
|
|
77
77
|
*/
|
|
78
78
|
badExample: z.ZodOptional<z.ZodString>;
|
|
79
|
+
/**
|
|
80
|
+
* Optional code snippet the rule MUST NOT match. mmnto-ai/totem#1580
|
|
81
|
+
* added the over-matching check: the compile-time smoke gate runs the
|
|
82
|
+
* rule against `goodExample` and rejects it with reason code
|
|
83
|
+
* `'matches-good-example'` if the pattern fires. Optional at the
|
|
84
|
+
* persisted-rule boundary for backward compatibility with pre-#1580
|
|
85
|
+
* rules; `CompilerOutputSchema` requires it for regex and ast-grep
|
|
86
|
+
* producers (see `refineGoodExampleRequired`).
|
|
87
|
+
*/
|
|
88
|
+
goodExample: z.ZodOptional<z.ZodString>;
|
|
79
89
|
/** ISO timestamp of when this rule was compiled */
|
|
80
90
|
compiledAt: z.ZodString;
|
|
81
91
|
/** ISO timestamp of when this rule was first created (survives recompilation) */
|
|
@@ -139,6 +149,7 @@ export declare const CompiledRuleSchema: z.ZodEffects<z.ZodObject<{
|
|
|
139
149
|
rule: z.ZodRecord<z.ZodString, z.ZodUnknown>;
|
|
140
150
|
}, z.ZodTypeAny, "passthrough"> | undefined;
|
|
141
151
|
badExample?: string | undefined;
|
|
152
|
+
goodExample?: string | undefined;
|
|
142
153
|
createdAt?: string | undefined;
|
|
143
154
|
fileGlobs?: string[] | undefined;
|
|
144
155
|
category?: "security" | "architecture" | "style" | "performance" | undefined;
|
|
@@ -161,6 +172,7 @@ export declare const CompiledRuleSchema: z.ZodEffects<z.ZodObject<{
|
|
|
161
172
|
rule: z.ZodRecord<z.ZodString, z.ZodUnknown>;
|
|
162
173
|
}, z.ZodTypeAny, "passthrough"> | undefined;
|
|
163
174
|
badExample?: string | undefined;
|
|
175
|
+
goodExample?: string | undefined;
|
|
164
176
|
createdAt?: string | undefined;
|
|
165
177
|
fileGlobs?: string[] | undefined;
|
|
166
178
|
category?: "security" | "architecture" | "style" | "performance" | undefined;
|
|
@@ -183,6 +195,7 @@ export declare const CompiledRuleSchema: z.ZodEffects<z.ZodObject<{
|
|
|
183
195
|
rule: z.ZodRecord<z.ZodString, z.ZodUnknown>;
|
|
184
196
|
}, z.ZodTypeAny, "passthrough"> | undefined;
|
|
185
197
|
badExample?: string | undefined;
|
|
198
|
+
goodExample?: string | undefined;
|
|
186
199
|
createdAt?: string | undefined;
|
|
187
200
|
fileGlobs?: string[] | undefined;
|
|
188
201
|
category?: "security" | "architecture" | "style" | "performance" | undefined;
|
|
@@ -205,6 +218,7 @@ export declare const CompiledRuleSchema: z.ZodEffects<z.ZodObject<{
|
|
|
205
218
|
rule: z.ZodRecord<z.ZodString, z.ZodUnknown>;
|
|
206
219
|
}, z.ZodTypeAny, "passthrough"> | undefined;
|
|
207
220
|
badExample?: string | undefined;
|
|
221
|
+
goodExample?: string | undefined;
|
|
208
222
|
createdAt?: string | undefined;
|
|
209
223
|
fileGlobs?: string[] | undefined;
|
|
210
224
|
category?: "security" | "architecture" | "style" | "performance" | undefined;
|
|
@@ -228,7 +242,7 @@ export type CompiledRule = z.infer<typeof CompiledRuleSchema>;
|
|
|
228
242
|
* losing the hash/title pair. Fresh compile runs MUST NOT emit
|
|
229
243
|
* `'legacy-unknown'`; enforcement sits at producers, not the schema.
|
|
230
244
|
*/
|
|
231
|
-
export declare const NonCompilableReasonCodeSchema: z.ZodEnum<["no-pattern-generated", "pattern-syntax-invalid", "pattern-zero-match", "verify-retry-exhausted", "security-rule-rejected", "no-pattern-found", "out-of-scope", "missing-badexample", "legacy-unknown"]>;
|
|
245
|
+
export declare const NonCompilableReasonCodeSchema: z.ZodEnum<["no-pattern-generated", "pattern-syntax-invalid", "pattern-zero-match", "verify-retry-exhausted", "security-rule-rejected", "no-pattern-found", "out-of-scope", "missing-badexample", "missing-goodexample", "matches-good-example", "legacy-unknown"]>;
|
|
232
246
|
export type NonCompilableReasonCode = z.infer<typeof NonCompilableReasonCodeSchema>;
|
|
233
247
|
/**
|
|
234
248
|
* Strict Write schema for `nonCompilable` entries. Every persisted entry
|
|
@@ -246,17 +260,17 @@ export type NonCompilableReasonCode = z.infer<typeof NonCompilableReasonCodeSche
|
|
|
246
260
|
export declare const NonCompilableEntryWriteSchema: z.ZodObject<{
|
|
247
261
|
hash: z.ZodString;
|
|
248
262
|
title: z.ZodString;
|
|
249
|
-
reasonCode: z.ZodEnum<["no-pattern-generated", "pattern-syntax-invalid", "pattern-zero-match", "verify-retry-exhausted", "security-rule-rejected", "no-pattern-found", "out-of-scope", "missing-badexample", "legacy-unknown"]>;
|
|
263
|
+
reasonCode: z.ZodEnum<["no-pattern-generated", "pattern-syntax-invalid", "pattern-zero-match", "verify-retry-exhausted", "security-rule-rejected", "no-pattern-found", "out-of-scope", "missing-badexample", "missing-goodexample", "matches-good-example", "legacy-unknown"]>;
|
|
250
264
|
reason: z.ZodOptional<z.ZodString>;
|
|
251
265
|
}, "strip", z.ZodTypeAny, {
|
|
252
266
|
hash: string;
|
|
253
267
|
title: string;
|
|
254
|
-
reasonCode: "no-pattern-generated" | "pattern-syntax-invalid" | "pattern-zero-match" | "verify-retry-exhausted" | "security-rule-rejected" | "no-pattern-found" | "out-of-scope" | "missing-badexample" | "legacy-unknown";
|
|
268
|
+
reasonCode: "no-pattern-generated" | "pattern-syntax-invalid" | "pattern-zero-match" | "verify-retry-exhausted" | "security-rule-rejected" | "no-pattern-found" | "out-of-scope" | "missing-badexample" | "missing-goodexample" | "matches-good-example" | "legacy-unknown";
|
|
255
269
|
reason?: string | undefined;
|
|
256
270
|
}, {
|
|
257
271
|
hash: string;
|
|
258
272
|
title: string;
|
|
259
|
-
reasonCode: "no-pattern-generated" | "pattern-syntax-invalid" | "pattern-zero-match" | "verify-retry-exhausted" | "security-rule-rejected" | "no-pattern-found" | "out-of-scope" | "missing-badexample" | "legacy-unknown";
|
|
273
|
+
reasonCode: "no-pattern-generated" | "pattern-syntax-invalid" | "pattern-zero-match" | "verify-retry-exhausted" | "security-rule-rejected" | "no-pattern-found" | "out-of-scope" | "missing-badexample" | "missing-goodexample" | "matches-good-example" | "legacy-unknown";
|
|
260
274
|
reason?: string | undefined;
|
|
261
275
|
}>;
|
|
262
276
|
/**
|
|
@@ -270,17 +284,17 @@ export declare const NonCompilableEntryWriteSchema: z.ZodObject<{
|
|
|
270
284
|
export declare const NonCompilableEntryReadSchema: z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodObject<{
|
|
271
285
|
hash: z.ZodString;
|
|
272
286
|
title: z.ZodString;
|
|
273
|
-
reasonCode: z.ZodEnum<["no-pattern-generated", "pattern-syntax-invalid", "pattern-zero-match", "verify-retry-exhausted", "security-rule-rejected", "no-pattern-found", "out-of-scope", "missing-badexample", "legacy-unknown"]>;
|
|
287
|
+
reasonCode: z.ZodEnum<["no-pattern-generated", "pattern-syntax-invalid", "pattern-zero-match", "verify-retry-exhausted", "security-rule-rejected", "no-pattern-found", "out-of-scope", "missing-badexample", "missing-goodexample", "matches-good-example", "legacy-unknown"]>;
|
|
274
288
|
reason: z.ZodOptional<z.ZodString>;
|
|
275
289
|
}, "strip", z.ZodTypeAny, {
|
|
276
290
|
hash: string;
|
|
277
291
|
title: string;
|
|
278
|
-
reasonCode: "no-pattern-generated" | "pattern-syntax-invalid" | "pattern-zero-match" | "verify-retry-exhausted" | "security-rule-rejected" | "no-pattern-found" | "out-of-scope" | "missing-badexample" | "legacy-unknown";
|
|
292
|
+
reasonCode: "no-pattern-generated" | "pattern-syntax-invalid" | "pattern-zero-match" | "verify-retry-exhausted" | "security-rule-rejected" | "no-pattern-found" | "out-of-scope" | "missing-badexample" | "missing-goodexample" | "matches-good-example" | "legacy-unknown";
|
|
279
293
|
reason?: string | undefined;
|
|
280
294
|
}, {
|
|
281
295
|
hash: string;
|
|
282
296
|
title: string;
|
|
283
|
-
reasonCode: "no-pattern-generated" | "pattern-syntax-invalid" | "pattern-zero-match" | "verify-retry-exhausted" | "security-rule-rejected" | "no-pattern-found" | "out-of-scope" | "missing-badexample" | "legacy-unknown";
|
|
297
|
+
reasonCode: "no-pattern-generated" | "pattern-syntax-invalid" | "pattern-zero-match" | "verify-retry-exhausted" | "security-rule-rejected" | "no-pattern-found" | "out-of-scope" | "missing-badexample" | "missing-goodexample" | "matches-good-example" | "legacy-unknown";
|
|
284
298
|
reason?: string | undefined;
|
|
285
299
|
}>, z.ZodObject<{
|
|
286
300
|
hash: z.ZodString;
|
|
@@ -294,12 +308,12 @@ export declare const NonCompilableEntryReadSchema: z.ZodEffects<z.ZodUnion<[z.Zo
|
|
|
294
308
|
}>]>, {
|
|
295
309
|
hash: string;
|
|
296
310
|
title: string;
|
|
297
|
-
reasonCode: "no-pattern-generated" | "pattern-syntax-invalid" | "pattern-zero-match" | "verify-retry-exhausted" | "security-rule-rejected" | "no-pattern-found" | "out-of-scope" | "missing-badexample" | "legacy-unknown";
|
|
311
|
+
reasonCode: "no-pattern-generated" | "pattern-syntax-invalid" | "pattern-zero-match" | "verify-retry-exhausted" | "security-rule-rejected" | "no-pattern-found" | "out-of-scope" | "missing-badexample" | "missing-goodexample" | "matches-good-example" | "legacy-unknown";
|
|
298
312
|
reason?: string | undefined;
|
|
299
313
|
}, string | {
|
|
300
314
|
hash: string;
|
|
301
315
|
title: string;
|
|
302
|
-
reasonCode: "no-pattern-generated" | "pattern-syntax-invalid" | "pattern-zero-match" | "verify-retry-exhausted" | "security-rule-rejected" | "no-pattern-found" | "out-of-scope" | "missing-badexample" | "legacy-unknown";
|
|
316
|
+
reasonCode: "no-pattern-generated" | "pattern-syntax-invalid" | "pattern-zero-match" | "verify-retry-exhausted" | "security-rule-rejected" | "no-pattern-found" | "out-of-scope" | "missing-badexample" | "missing-goodexample" | "matches-good-example" | "legacy-unknown";
|
|
303
317
|
reason?: string | undefined;
|
|
304
318
|
} | {
|
|
305
319
|
hash: string;
|
|
@@ -352,6 +366,16 @@ export declare const CompiledRulesFileSchema: z.ZodObject<{
|
|
|
352
366
|
* 1.14.9; flips to required when #1408 turns on the gate.
|
|
353
367
|
*/
|
|
354
368
|
badExample: z.ZodOptional<z.ZodString>;
|
|
369
|
+
/**
|
|
370
|
+
* Optional code snippet the rule MUST NOT match. mmnto-ai/totem#1580
|
|
371
|
+
* added the over-matching check: the compile-time smoke gate runs the
|
|
372
|
+
* rule against `goodExample` and rejects it with reason code
|
|
373
|
+
* `'matches-good-example'` if the pattern fires. Optional at the
|
|
374
|
+
* persisted-rule boundary for backward compatibility with pre-#1580
|
|
375
|
+
* rules; `CompilerOutputSchema` requires it for regex and ast-grep
|
|
376
|
+
* producers (see `refineGoodExampleRequired`).
|
|
377
|
+
*/
|
|
378
|
+
goodExample: z.ZodOptional<z.ZodString>;
|
|
355
379
|
/** ISO timestamp of when this rule was compiled */
|
|
356
380
|
compiledAt: z.ZodString;
|
|
357
381
|
/** ISO timestamp of when this rule was first created (survives recompilation) */
|
|
@@ -415,6 +439,7 @@ export declare const CompiledRulesFileSchema: z.ZodObject<{
|
|
|
415
439
|
rule: z.ZodRecord<z.ZodString, z.ZodUnknown>;
|
|
416
440
|
}, z.ZodTypeAny, "passthrough"> | undefined;
|
|
417
441
|
badExample?: string | undefined;
|
|
442
|
+
goodExample?: string | undefined;
|
|
418
443
|
createdAt?: string | undefined;
|
|
419
444
|
fileGlobs?: string[] | undefined;
|
|
420
445
|
category?: "security" | "architecture" | "style" | "performance" | undefined;
|
|
@@ -437,6 +462,7 @@ export declare const CompiledRulesFileSchema: z.ZodObject<{
|
|
|
437
462
|
rule: z.ZodRecord<z.ZodString, z.ZodUnknown>;
|
|
438
463
|
}, z.ZodTypeAny, "passthrough"> | undefined;
|
|
439
464
|
badExample?: string | undefined;
|
|
465
|
+
goodExample?: string | undefined;
|
|
440
466
|
createdAt?: string | undefined;
|
|
441
467
|
fileGlobs?: string[] | undefined;
|
|
442
468
|
category?: "security" | "architecture" | "style" | "performance" | undefined;
|
|
@@ -459,6 +485,7 @@ export declare const CompiledRulesFileSchema: z.ZodObject<{
|
|
|
459
485
|
rule: z.ZodRecord<z.ZodString, z.ZodUnknown>;
|
|
460
486
|
}, z.ZodTypeAny, "passthrough"> | undefined;
|
|
461
487
|
badExample?: string | undefined;
|
|
488
|
+
goodExample?: string | undefined;
|
|
462
489
|
createdAt?: string | undefined;
|
|
463
490
|
fileGlobs?: string[] | undefined;
|
|
464
491
|
category?: "security" | "architecture" | "style" | "performance" | undefined;
|
|
@@ -481,6 +508,7 @@ export declare const CompiledRulesFileSchema: z.ZodObject<{
|
|
|
481
508
|
rule: z.ZodRecord<z.ZodString, z.ZodUnknown>;
|
|
482
509
|
}, z.ZodTypeAny, "passthrough"> | undefined;
|
|
483
510
|
badExample?: string | undefined;
|
|
511
|
+
goodExample?: string | undefined;
|
|
484
512
|
createdAt?: string | undefined;
|
|
485
513
|
fileGlobs?: string[] | undefined;
|
|
486
514
|
category?: "security" | "architecture" | "style" | "performance" | undefined;
|
|
@@ -502,17 +530,17 @@ export declare const CompiledRulesFileSchema: z.ZodObject<{
|
|
|
502
530
|
nonCompilable: z.ZodOptional<z.ZodArray<z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodObject<{
|
|
503
531
|
hash: z.ZodString;
|
|
504
532
|
title: z.ZodString;
|
|
505
|
-
reasonCode: z.ZodEnum<["no-pattern-generated", "pattern-syntax-invalid", "pattern-zero-match", "verify-retry-exhausted", "security-rule-rejected", "no-pattern-found", "out-of-scope", "missing-badexample", "legacy-unknown"]>;
|
|
533
|
+
reasonCode: z.ZodEnum<["no-pattern-generated", "pattern-syntax-invalid", "pattern-zero-match", "verify-retry-exhausted", "security-rule-rejected", "no-pattern-found", "out-of-scope", "missing-badexample", "missing-goodexample", "matches-good-example", "legacy-unknown"]>;
|
|
506
534
|
reason: z.ZodOptional<z.ZodString>;
|
|
507
535
|
}, "strip", z.ZodTypeAny, {
|
|
508
536
|
hash: string;
|
|
509
537
|
title: string;
|
|
510
|
-
reasonCode: "no-pattern-generated" | "pattern-syntax-invalid" | "pattern-zero-match" | "verify-retry-exhausted" | "security-rule-rejected" | "no-pattern-found" | "out-of-scope" | "missing-badexample" | "legacy-unknown";
|
|
538
|
+
reasonCode: "no-pattern-generated" | "pattern-syntax-invalid" | "pattern-zero-match" | "verify-retry-exhausted" | "security-rule-rejected" | "no-pattern-found" | "out-of-scope" | "missing-badexample" | "missing-goodexample" | "matches-good-example" | "legacy-unknown";
|
|
511
539
|
reason?: string | undefined;
|
|
512
540
|
}, {
|
|
513
541
|
hash: string;
|
|
514
542
|
title: string;
|
|
515
|
-
reasonCode: "no-pattern-generated" | "pattern-syntax-invalid" | "pattern-zero-match" | "verify-retry-exhausted" | "security-rule-rejected" | "no-pattern-found" | "out-of-scope" | "missing-badexample" | "legacy-unknown";
|
|
543
|
+
reasonCode: "no-pattern-generated" | "pattern-syntax-invalid" | "pattern-zero-match" | "verify-retry-exhausted" | "security-rule-rejected" | "no-pattern-found" | "out-of-scope" | "missing-badexample" | "missing-goodexample" | "matches-good-example" | "legacy-unknown";
|
|
516
544
|
reason?: string | undefined;
|
|
517
545
|
}>, z.ZodObject<{
|
|
518
546
|
hash: z.ZodString;
|
|
@@ -526,12 +554,12 @@ export declare const CompiledRulesFileSchema: z.ZodObject<{
|
|
|
526
554
|
}>]>, {
|
|
527
555
|
hash: string;
|
|
528
556
|
title: string;
|
|
529
|
-
reasonCode: "no-pattern-generated" | "pattern-syntax-invalid" | "pattern-zero-match" | "verify-retry-exhausted" | "security-rule-rejected" | "no-pattern-found" | "out-of-scope" | "missing-badexample" | "legacy-unknown";
|
|
557
|
+
reasonCode: "no-pattern-generated" | "pattern-syntax-invalid" | "pattern-zero-match" | "verify-retry-exhausted" | "security-rule-rejected" | "no-pattern-found" | "out-of-scope" | "missing-badexample" | "missing-goodexample" | "matches-good-example" | "legacy-unknown";
|
|
530
558
|
reason?: string | undefined;
|
|
531
559
|
}, string | {
|
|
532
560
|
hash: string;
|
|
533
561
|
title: string;
|
|
534
|
-
reasonCode: "no-pattern-generated" | "pattern-syntax-invalid" | "pattern-zero-match" | "verify-retry-exhausted" | "security-rule-rejected" | "no-pattern-found" | "out-of-scope" | "missing-badexample" | "legacy-unknown";
|
|
562
|
+
reasonCode: "no-pattern-generated" | "pattern-syntax-invalid" | "pattern-zero-match" | "verify-retry-exhausted" | "security-rule-rejected" | "no-pattern-found" | "out-of-scope" | "missing-badexample" | "missing-goodexample" | "matches-good-example" | "legacy-unknown";
|
|
535
563
|
reason?: string | undefined;
|
|
536
564
|
} | {
|
|
537
565
|
hash: string;
|
|
@@ -553,6 +581,7 @@ export declare const CompiledRulesFileSchema: z.ZodObject<{
|
|
|
553
581
|
rule: z.ZodRecord<z.ZodString, z.ZodUnknown>;
|
|
554
582
|
}, z.ZodTypeAny, "passthrough"> | undefined;
|
|
555
583
|
badExample?: string | undefined;
|
|
584
|
+
goodExample?: string | undefined;
|
|
556
585
|
createdAt?: string | undefined;
|
|
557
586
|
fileGlobs?: string[] | undefined;
|
|
558
587
|
category?: "security" | "architecture" | "style" | "performance" | undefined;
|
|
@@ -565,7 +594,7 @@ export declare const CompiledRulesFileSchema: z.ZodObject<{
|
|
|
565
594
|
nonCompilable?: {
|
|
566
595
|
hash: string;
|
|
567
596
|
title: string;
|
|
568
|
-
reasonCode: "no-pattern-generated" | "pattern-syntax-invalid" | "pattern-zero-match" | "verify-retry-exhausted" | "security-rule-rejected" | "no-pattern-found" | "out-of-scope" | "missing-badexample" | "legacy-unknown";
|
|
597
|
+
reasonCode: "no-pattern-generated" | "pattern-syntax-invalid" | "pattern-zero-match" | "verify-retry-exhausted" | "security-rule-rejected" | "no-pattern-found" | "out-of-scope" | "missing-badexample" | "missing-goodexample" | "matches-good-example" | "legacy-unknown";
|
|
569
598
|
reason?: string | undefined;
|
|
570
599
|
}[] | undefined;
|
|
571
600
|
}, {
|
|
@@ -584,6 +613,7 @@ export declare const CompiledRulesFileSchema: z.ZodObject<{
|
|
|
584
613
|
rule: z.ZodRecord<z.ZodString, z.ZodUnknown>;
|
|
585
614
|
}, z.ZodTypeAny, "passthrough"> | undefined;
|
|
586
615
|
badExample?: string | undefined;
|
|
616
|
+
goodExample?: string | undefined;
|
|
587
617
|
createdAt?: string | undefined;
|
|
588
618
|
fileGlobs?: string[] | undefined;
|
|
589
619
|
category?: "security" | "architecture" | "style" | "performance" | undefined;
|
|
@@ -596,7 +626,7 @@ export declare const CompiledRulesFileSchema: z.ZodObject<{
|
|
|
596
626
|
nonCompilable?: (string | {
|
|
597
627
|
hash: string;
|
|
598
628
|
title: string;
|
|
599
|
-
reasonCode: "no-pattern-generated" | "pattern-syntax-invalid" | "pattern-zero-match" | "verify-retry-exhausted" | "security-rule-rejected" | "no-pattern-found" | "out-of-scope" | "missing-badexample" | "legacy-unknown";
|
|
629
|
+
reasonCode: "no-pattern-generated" | "pattern-syntax-invalid" | "pattern-zero-match" | "verify-retry-exhausted" | "security-rule-rejected" | "no-pattern-found" | "out-of-scope" | "missing-badexample" | "missing-goodexample" | "matches-good-example" | "legacy-unknown";
|
|
600
630
|
reason?: string | undefined;
|
|
601
631
|
} | {
|
|
602
632
|
hash: string;
|
|
@@ -632,6 +662,17 @@ export declare const CompilerOutputSchema: z.ZodEffects<z.ZodObject<{
|
|
|
632
662
|
* can name the engine and cite the ticket.
|
|
633
663
|
*/
|
|
634
664
|
badExample: z.ZodOptional<z.ZodString>;
|
|
665
|
+
/**
|
|
666
|
+
* Code snippet the rule MUST NOT match. Flipped from optional to
|
|
667
|
+
* engine-conditional required in mmnto-ai/totem#1580 - regex and
|
|
668
|
+
* ast-grep rules must carry a non-empty snippet so the compile-time
|
|
669
|
+
* smoke gate can assert the pattern does not over-match on known-good
|
|
670
|
+
* code before it lands in compiled-rules.json. The Zod field stays
|
|
671
|
+
* optional here; the `refineGoodExampleRequired` superRefine below
|
|
672
|
+
* enforces the engine-conditional requirement so the error message
|
|
673
|
+
* can name the engine and cite the ticket.
|
|
674
|
+
*/
|
|
675
|
+
goodExample: z.ZodOptional<z.ZodString>;
|
|
635
676
|
severity: z.ZodOptional<z.ZodEnum<["error", "warning"]>>;
|
|
636
677
|
/** LLM explanation for why a lesson was marked non-compilable */
|
|
637
678
|
reason: z.ZodOptional<z.ZodString>;
|
|
@@ -646,6 +687,7 @@ export declare const CompilerOutputSchema: z.ZodEffects<z.ZodObject<{
|
|
|
646
687
|
rule: z.ZodRecord<z.ZodString, z.ZodUnknown>;
|
|
647
688
|
}, z.ZodTypeAny, "passthrough"> | undefined;
|
|
648
689
|
badExample?: string | undefined;
|
|
690
|
+
goodExample?: string | undefined;
|
|
649
691
|
fileGlobs?: string[] | undefined;
|
|
650
692
|
severity?: "error" | "warning" | undefined;
|
|
651
693
|
reason?: string | undefined;
|
|
@@ -660,6 +702,7 @@ export declare const CompilerOutputSchema: z.ZodEffects<z.ZodObject<{
|
|
|
660
702
|
rule: z.ZodRecord<z.ZodString, z.ZodUnknown>;
|
|
661
703
|
}, z.ZodTypeAny, "passthrough"> | undefined;
|
|
662
704
|
badExample?: string | undefined;
|
|
705
|
+
goodExample?: string | undefined;
|
|
663
706
|
fileGlobs?: string[] | undefined;
|
|
664
707
|
severity?: "error" | "warning" | undefined;
|
|
665
708
|
reason?: string | undefined;
|
|
@@ -674,6 +717,7 @@ export declare const CompilerOutputSchema: z.ZodEffects<z.ZodObject<{
|
|
|
674
717
|
rule: z.ZodRecord<z.ZodString, z.ZodUnknown>;
|
|
675
718
|
}, z.ZodTypeAny, "passthrough"> | undefined;
|
|
676
719
|
badExample?: string | undefined;
|
|
720
|
+
goodExample?: string | undefined;
|
|
677
721
|
fileGlobs?: string[] | undefined;
|
|
678
722
|
severity?: "error" | "warning" | undefined;
|
|
679
723
|
reason?: string | undefined;
|
|
@@ -688,6 +732,7 @@ export declare const CompilerOutputSchema: z.ZodEffects<z.ZodObject<{
|
|
|
688
732
|
rule: z.ZodRecord<z.ZodString, z.ZodUnknown>;
|
|
689
733
|
}, z.ZodTypeAny, "passthrough"> | undefined;
|
|
690
734
|
badExample?: string | undefined;
|
|
735
|
+
goodExample?: string | undefined;
|
|
691
736
|
fileGlobs?: string[] | undefined;
|
|
692
737
|
severity?: "error" | "warning" | undefined;
|
|
693
738
|
reason?: string | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compiler-schema.d.ts","sourceRoot":"","sources":["../src/compiler-schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,gBAAgB;;;;;;gCAIb,CAAC;AAEjB,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAE1D;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB;;;;;;gCAAmB,CAAC;AAEtD,MAAM,MAAM,eAAe,GAAG,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"compiler-schema.d.ts","sourceRoot":"","sources":["../src/compiler-schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,gBAAgB;;;;;;gCAIb,CAAC;AAEjB,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAE1D;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB;;;;;;gCAAmB,CAAC;AAEtD,MAAM,MAAM,eAAe,GAAG,UAAU,CAAC;AAsIzC,eAAO,MAAM,kBAAkB;IAjI7B,0EAA0E;;IAE1E,+DAA+D;;IAE/D,sDAAsD;;IAEtD,sEAAsE;;IAEtE,6IAA6I;;IAE7I,qEAAqE;;IAErE;;;;OAIG;;IAEH;;;;;;OAMG;;;;;;;;IAEH;;;;;OAKG;;IAEH;;;;;;;;OAQG;;IAEH,mDAAmD;;IAEnD,iFAAiF;;IAEjF,kGAAkG;;IAElG,mDAAmD;;IAEnD,yEAAyE;;IAEzE,+EAA+E;;IAE/E,uDAAuD;;IAEvD;;;;;;;;;;;OAWG;;IAEH;;;;;OAKG;;IAEH;;;;;;;;;;;;;OAaG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAuC6F,CAAC;AAEnG,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAE9D;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,6BAA6B,oQAYxC,CAAC;AAEH,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,6BAA6B,CAAC,CAAC;AAEpF;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,6BAA6B;;;;;;;;;;;;;;;EAKxC,CAAC;AAEH;;;;;;;GAOG;AACH,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAsBrC,CAAC;AAEL;;;GAGG;AACH,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAC;AAE9E,eAAO,MAAM,uBAAuB;;;QA5NlC,0EAA0E;;QAE1E,+DAA+D;;QAE/D,sDAAsD;;QAEtD,sEAAsE;;QAEtE,6IAA6I;;QAE7I,qEAAqE;;QAErE;;;;WAIG;;QAEH;;;;;;WAMG;;;;;;;;QAEH;;;;;WAKG;;QAEH;;;;;;;;WAQG;;QAEH,mDAAmD;;QAEnD,iFAAiF;;QAEjF,kGAAkG;;QAElG,mDAAmD;;QAEnD,yEAAyE;;QAEzE,+EAA+E;;QAE/E,uDAAuD;;QAEvD;;;;;;;;;;;WAWG;;QAEH;;;;;WAKG;;QAEH;;;;;;;;;;;;;WAaG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAqIH;;;;;;;;OAQG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAEH,CAAC;AAEH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAmHxE,eAAO,MAAM,oBAAoB;;;;;;;IAvG/B,+EAA+E;;IAE/E,qFAAqF;;;;;;;;IAErF;;;;;;;;;OASG;;IAEH;;;;;;;;;OASG;;;IAGH,iEAAiE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAgFjE,CAAC;AAEH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAIlE,MAAM,WAAW,SAAS;IACxB,iCAAiC;IACjC,IAAI,EAAE,YAAY,CAAC;IACnB,+DAA+D;IAC/D,IAAI,EAAE,MAAM,CAAC;IACb,gCAAgC;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,6DAA6D;IAC7D,UAAU,EAAE,MAAM,CAAC;CACpB;AAID,oEAAoE;AACpE,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,QAAQ,GAAG,SAAS,GAAG,OAAO,CAAC;AAEjE,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,8FAA8F;IAC9F,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,+FAA+F;IAC/F,UAAU,CAAC,EAAE,UAAU,CAAC;CACzB;AAID,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,wEAAwE;AACxE,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,uEAAuE;IACvE,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB;;;;;;OAMG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;;;OAKG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED;;;;;;;;GAQG;AACH,MAAM,MAAM,iBAAiB,GAAG,CAC9B,KAAK,EAAE,SAAS,GAAG,UAAU,GAAG,SAAS,EACzC,UAAU,EAAE,MAAM,EAClB,OAAO,CAAC,EAAE,gBAAgB,KACvB,IAAI,CAAC"}
|
package/dist/compiler-schema.js
CHANGED
|
@@ -62,6 +62,16 @@ const CompiledRuleBaseSchema = z.object({
|
|
|
62
62
|
* 1.14.9; flips to required when #1408 turns on the gate.
|
|
63
63
|
*/
|
|
64
64
|
badExample: z.string().optional(),
|
|
65
|
+
/**
|
|
66
|
+
* Optional code snippet the rule MUST NOT match. mmnto-ai/totem#1580
|
|
67
|
+
* added the over-matching check: the compile-time smoke gate runs the
|
|
68
|
+
* rule against `goodExample` and rejects it with reason code
|
|
69
|
+
* `'matches-good-example'` if the pattern fires. Optional at the
|
|
70
|
+
* persisted-rule boundary for backward compatibility with pre-#1580
|
|
71
|
+
* rules; `CompilerOutputSchema` requires it for regex and ast-grep
|
|
72
|
+
* producers (see `refineGoodExampleRequired`).
|
|
73
|
+
*/
|
|
74
|
+
goodExample: z.string().optional(),
|
|
65
75
|
/** ISO timestamp of when this rule was compiled */
|
|
66
76
|
compiledAt: z.string(),
|
|
67
77
|
/** ISO timestamp of when this rule was first created (survives recompilation) */
|
|
@@ -163,6 +173,8 @@ export const NonCompilableReasonCodeSchema = z.enum([
|
|
|
163
173
|
'no-pattern-found',
|
|
164
174
|
'out-of-scope',
|
|
165
175
|
'missing-badexample',
|
|
176
|
+
'missing-goodexample',
|
|
177
|
+
'matches-good-example',
|
|
166
178
|
'legacy-unknown',
|
|
167
179
|
]);
|
|
168
180
|
/**
|
|
@@ -253,6 +265,17 @@ const CompilerOutputBaseSchema = z.object({
|
|
|
253
265
|
* can name the engine and cite the ticket.
|
|
254
266
|
*/
|
|
255
267
|
badExample: z.string().optional(),
|
|
268
|
+
/**
|
|
269
|
+
* Code snippet the rule MUST NOT match. Flipped from optional to
|
|
270
|
+
* engine-conditional required in mmnto-ai/totem#1580 - regex and
|
|
271
|
+
* ast-grep rules must carry a non-empty snippet so the compile-time
|
|
272
|
+
* smoke gate can assert the pattern does not over-match on known-good
|
|
273
|
+
* code before it lands in compiled-rules.json. The Zod field stays
|
|
274
|
+
* optional here; the `refineGoodExampleRequired` superRefine below
|
|
275
|
+
* enforces the engine-conditional requirement so the error message
|
|
276
|
+
* can name the engine and cite the ticket.
|
|
277
|
+
*/
|
|
278
|
+
goodExample: z.string().optional(),
|
|
256
279
|
severity: z.enum(['error', 'warning']).optional(),
|
|
257
280
|
/** LLM explanation for why a lesson was marked non-compilable */
|
|
258
281
|
reason: z.string().optional(),
|
|
@@ -278,7 +301,12 @@ function refineBadExampleRequired(data, ctx) {
|
|
|
278
301
|
const engineRequiresBadExample = data.engine !== 'ast';
|
|
279
302
|
if (!engineRequiresBadExample)
|
|
280
303
|
return;
|
|
281
|
-
|
|
304
|
+
// `.trim().length > 0` rather than `.length > 0` because the smoke gate
|
|
305
|
+
// treats whitespace-only snippets as no-ops via its own early-return,
|
|
306
|
+
// so a blank string would slip through schema validation but provide
|
|
307
|
+
// zero gate coverage. Flagged by CodeRabbit on mmnto-ai/totem#1591 for
|
|
308
|
+
// `goodExample`; the same hole existed on `badExample` since #1409.
|
|
309
|
+
if (typeof data.badExample === 'string' && data.badExample.trim().length > 0)
|
|
282
310
|
return;
|
|
283
311
|
ctx.addIssue({
|
|
284
312
|
code: z.ZodIssueCode.custom,
|
|
@@ -286,8 +314,35 @@ function refineBadExampleRequired(data, ctx) {
|
|
|
286
314
|
path: ['badExample'],
|
|
287
315
|
});
|
|
288
316
|
}
|
|
317
|
+
/**
|
|
318
|
+
* Symmetric counterpart of `refineBadExampleRequired` for the over-matching
|
|
319
|
+
* check shipped in mmnto-ai/totem#1580. Every Pipeline 2 / Pipeline 3
|
|
320
|
+
* compilable rule must carry a non-empty `goodExample` so the smoke gate
|
|
321
|
+
* can assert the pattern does not fire on known-good code. Same engine
|
|
322
|
+
* carve-out as badExample: `ast` engine exempt because the gate does not
|
|
323
|
+
* yet evaluate Tree-sitter S-expression queries.
|
|
324
|
+
*/
|
|
325
|
+
function refineGoodExampleRequired(data, ctx) {
|
|
326
|
+
if (!data.compilable)
|
|
327
|
+
return;
|
|
328
|
+
const engineRequiresGoodExample = data.engine !== 'ast';
|
|
329
|
+
if (!engineRequiresGoodExample)
|
|
330
|
+
return;
|
|
331
|
+
// `.trim().length > 0` rather than `.length > 0` so a whitespace-only
|
|
332
|
+
// goodExample cannot satisfy the required-field check. The smoke gate's
|
|
333
|
+
// early-return on `snippet.trim().length === 0` would treat the blank
|
|
334
|
+
// string as a no-op, producing zero over-matching coverage.
|
|
335
|
+
if (typeof data.goodExample === 'string' && data.goodExample.trim().length > 0)
|
|
336
|
+
return;
|
|
337
|
+
ctx.addIssue({
|
|
338
|
+
code: z.ZodIssueCode.custom,
|
|
339
|
+
message: 'goodExample is required (non-empty string) for regex and ast-grep engines (mmnto-ai/totem#1580)',
|
|
340
|
+
path: ['goodExample'],
|
|
341
|
+
});
|
|
342
|
+
}
|
|
289
343
|
export const CompilerOutputSchema = CompilerOutputBaseSchema.superRefine((data, ctx) => {
|
|
290
344
|
refineAstGrepMutualExclusion(data, ctx);
|
|
291
345
|
refineBadExampleRequired(data, ctx);
|
|
346
|
+
refineGoodExampleRequired(data, ctx);
|
|
292
347
|
});
|
|
293
348
|
//# sourceMappingURL=compiler-schema.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compiler-schema.js","sourceRoot":"","sources":["../src/compiler-schema.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"compiler-schema.js","sourceRoot":"","sources":["../src/compiler-schema.ts"],"names":[],"mappings":"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"}
|
|
@@ -109,6 +109,7 @@ describe('CompilerOutputSchema mutual exclusion', () => {
|
|
|
109
109
|
message: 'msg',
|
|
110
110
|
astGrepYamlRule: { rule: { pattern: 'foo($A)' } },
|
|
111
111
|
badExample: 'foo(1)',
|
|
112
|
+
goodExample: 'bar(1)',
|
|
112
113
|
});
|
|
113
114
|
expect(parsed.astGrepYamlRule).toBeDefined();
|
|
114
115
|
});
|
|
@@ -148,6 +149,7 @@ describe('CompilerOutput badExample required by engine', () => {
|
|
|
148
149
|
message: 'No foo',
|
|
149
150
|
engine: 'regex',
|
|
150
151
|
badExample: 'const foo = 1;',
|
|
152
|
+
goodExample: 'const bar = 1;',
|
|
151
153
|
});
|
|
152
154
|
expect(parsed.badExample).toBe('const foo = 1;');
|
|
153
155
|
});
|
|
@@ -158,6 +160,7 @@ describe('CompilerOutput badExample required by engine', () => {
|
|
|
158
160
|
engine: 'ast-grep',
|
|
159
161
|
astGrepPattern: 'console.log($A)',
|
|
160
162
|
badExample: 'console.log("debug");',
|
|
163
|
+
goodExample: 'logger.info("debug");',
|
|
161
164
|
});
|
|
162
165
|
expect(parsed.badExample).toBe('console.log("debug");');
|
|
163
166
|
});
|
|
@@ -238,6 +241,116 @@ describe('CompilerOutput badExample required by engine', () => {
|
|
|
238
241
|
});
|
|
239
242
|
expect(result.success).toBe(false);
|
|
240
243
|
});
|
|
244
|
+
it('rejects a regex CompilerOutput with a whitespace-only badExample', () => {
|
|
245
|
+
// Flagged by CodeRabbit on mmnto-ai/totem#1591: a blank string passes
|
|
246
|
+
// `length > 0` but the smoke gate's early-return on `trim().length === 0`
|
|
247
|
+
// would treat it as a no-op, so the required-field check must use
|
|
248
|
+
// `.trim().length > 0` to close the hole.
|
|
249
|
+
const result = CompilerOutputSchema.safeParse({
|
|
250
|
+
compilable: true,
|
|
251
|
+
pattern: '\\bfoo\\b',
|
|
252
|
+
message: 'No foo',
|
|
253
|
+
engine: 'regex',
|
|
254
|
+
badExample: ' \t\n ',
|
|
255
|
+
goodExample: 'const bar = 1;',
|
|
256
|
+
});
|
|
257
|
+
expect(result.success).toBe(false);
|
|
258
|
+
});
|
|
259
|
+
});
|
|
260
|
+
// ─── CompilerOutput goodExample required per engine (mmnto-ai/totem#1580) ──
|
|
261
|
+
describe('CompilerOutput goodExample required by engine', () => {
|
|
262
|
+
it('accepts a regex CompilerOutput with a non-empty goodExample', () => {
|
|
263
|
+
const parsed = CompilerOutputSchema.parse({
|
|
264
|
+
compilable: true,
|
|
265
|
+
pattern: '\\bfoo\\b',
|
|
266
|
+
message: 'No foo',
|
|
267
|
+
engine: 'regex',
|
|
268
|
+
badExample: 'const foo = 1;',
|
|
269
|
+
goodExample: 'const bar = 1;',
|
|
270
|
+
});
|
|
271
|
+
expect(parsed.goodExample).toBe('const bar = 1;');
|
|
272
|
+
});
|
|
273
|
+
it('rejects a regex CompilerOutput missing goodExample', () => {
|
|
274
|
+
const result = CompilerOutputSchema.safeParse({
|
|
275
|
+
compilable: true,
|
|
276
|
+
pattern: '\\bfoo\\b',
|
|
277
|
+
message: 'No foo',
|
|
278
|
+
engine: 'regex',
|
|
279
|
+
badExample: 'const foo = 1;',
|
|
280
|
+
});
|
|
281
|
+
expect(result.success).toBe(false);
|
|
282
|
+
});
|
|
283
|
+
it('rejects a regex CompilerOutput with an empty goodExample string', () => {
|
|
284
|
+
const result = CompilerOutputSchema.safeParse({
|
|
285
|
+
compilable: true,
|
|
286
|
+
pattern: '\\bfoo\\b',
|
|
287
|
+
message: 'No foo',
|
|
288
|
+
engine: 'regex',
|
|
289
|
+
badExample: 'const foo = 1;',
|
|
290
|
+
goodExample: '',
|
|
291
|
+
});
|
|
292
|
+
expect(result.success).toBe(false);
|
|
293
|
+
});
|
|
294
|
+
it('rejects a regex CompilerOutput with a whitespace-only goodExample', () => {
|
|
295
|
+
// The case CodeRabbit flagged directly on mmnto-ai/totem#1591: a
|
|
296
|
+
// blank string satisfies `length > 0` but has zero over-matching
|
|
297
|
+
// coverage because the smoke gate treats it as no-op.
|
|
298
|
+
const result = CompilerOutputSchema.safeParse({
|
|
299
|
+
compilable: true,
|
|
300
|
+
pattern: '\\bfoo\\b',
|
|
301
|
+
message: 'No foo',
|
|
302
|
+
engine: 'regex',
|
|
303
|
+
badExample: 'const foo = 1;',
|
|
304
|
+
goodExample: ' \t\n ',
|
|
305
|
+
});
|
|
306
|
+
expect(result.success).toBe(false);
|
|
307
|
+
});
|
|
308
|
+
it('accepts an ast engine CompilerOutput without goodExample (exempt engine)', () => {
|
|
309
|
+
const parsed = CompilerOutputSchema.parse({
|
|
310
|
+
compilable: true,
|
|
311
|
+
message: 'AST check',
|
|
312
|
+
engine: 'ast',
|
|
313
|
+
astQuery: '(catch_clause) @c',
|
|
314
|
+
});
|
|
315
|
+
expect(parsed.engine).toBe('ast');
|
|
316
|
+
expect(parsed.goodExample).toBeUndefined();
|
|
317
|
+
});
|
|
318
|
+
it('rejects an ast-grep CompilerOutput missing goodExample', () => {
|
|
319
|
+
const result = CompilerOutputSchema.safeParse({
|
|
320
|
+
compilable: true,
|
|
321
|
+
message: 'No console.log',
|
|
322
|
+
engine: 'ast-grep',
|
|
323
|
+
astGrepPattern: 'console.log($A)',
|
|
324
|
+
badExample: 'console.log("debug");',
|
|
325
|
+
});
|
|
326
|
+
expect(result.success).toBe(false);
|
|
327
|
+
});
|
|
328
|
+
it('rejects an ast-grep CompilerOutput with a whitespace-only goodExample', () => {
|
|
329
|
+
const result = CompilerOutputSchema.safeParse({
|
|
330
|
+
compilable: true,
|
|
331
|
+
message: 'No console.log',
|
|
332
|
+
engine: 'ast-grep',
|
|
333
|
+
astGrepPattern: 'console.log($A)',
|
|
334
|
+
badExample: 'console.log("debug");',
|
|
335
|
+
goodExample: ' \n\t ',
|
|
336
|
+
});
|
|
337
|
+
expect(result.success).toBe(false);
|
|
338
|
+
});
|
|
339
|
+
it('rejects an ast-grep compound CompilerOutput missing goodExample', () => {
|
|
340
|
+
const result = CompilerOutputSchema.safeParse({
|
|
341
|
+
compilable: true,
|
|
342
|
+
message: 'No const inside for-loop',
|
|
343
|
+
engine: 'ast-grep',
|
|
344
|
+
astGrepYamlRule: {
|
|
345
|
+
rule: {
|
|
346
|
+
pattern: 'const $VAR = $VAL',
|
|
347
|
+
inside: { kind: 'for_statement', stopBy: 'end' },
|
|
348
|
+
},
|
|
349
|
+
},
|
|
350
|
+
badExample: 'for (let i = 0; i < 10; i++) { const x = 1; }',
|
|
351
|
+
});
|
|
352
|
+
expect(result.success).toBe(false);
|
|
353
|
+
});
|
|
241
354
|
});
|
|
242
355
|
// ─── RuleEventCallback discriminator (mmnto/totem#1408) ─────
|
|
243
356
|
describe('RuleEventCallback discriminator', () => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compiler-schema.test.js","sourceRoot":"","sources":["../src/compiler-schema.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"compiler-schema.test.js","sourceRoot":"","sources":["../src/compiler-schema.test.ts"],"names":[],"mappings":"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"}
|