@mmnto/totem 1.14.9 → 1.14.11

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 (64) hide show
  1. package/dist/compile-lesson.d.ts +19 -0
  2. package/dist/compile-lesson.d.ts.map +1 -1
  3. package/dist/compile-lesson.js +212 -45
  4. package/dist/compile-lesson.js.map +1 -1
  5. package/dist/compile-lesson.test.js +277 -1
  6. package/dist/compile-lesson.test.js.map +1 -1
  7. package/dist/compiler-schema.d.ts +31 -0
  8. package/dist/compiler-schema.d.ts.map +1 -1
  9. package/dist/compiler-schema.js +7 -0
  10. package/dist/compiler-schema.js.map +1 -1
  11. package/dist/compiler.test.js +2 -3
  12. package/dist/compiler.test.js.map +1 -1
  13. package/dist/config-schema.d.ts +41 -0
  14. package/dist/config-schema.d.ts.map +1 -1
  15. package/dist/config-schema.js +33 -0
  16. package/dist/config-schema.js.map +1 -1
  17. package/dist/config-schema.test.js +87 -0
  18. package/dist/config-schema.test.js.map +1 -1
  19. package/dist/index.d.ts +3 -1
  20. package/dist/index.d.ts.map +1 -1
  21. package/dist/index.js +2 -1
  22. package/dist/index.js.map +1 -1
  23. package/dist/ledger.d.ts +10 -0
  24. package/dist/ledger.d.ts.map +1 -1
  25. package/dist/ledger.js +8 -0
  26. package/dist/ledger.js.map +1 -1
  27. package/dist/lesson-pattern.d.ts +38 -1
  28. package/dist/lesson-pattern.d.ts.map +1 -1
  29. package/dist/lesson-pattern.js +119 -9
  30. package/dist/lesson-pattern.js.map +1 -1
  31. package/dist/lesson-pattern.test.js +165 -1
  32. package/dist/lesson-pattern.test.js.map +1 -1
  33. package/dist/pack-merge.d.ts +73 -0
  34. package/dist/pack-merge.d.ts.map +1 -0
  35. package/dist/pack-merge.js +117 -0
  36. package/dist/pack-merge.js.map +1 -0
  37. package/dist/pack-merge.test.d.ts +2 -0
  38. package/dist/pack-merge.test.d.ts.map +1 -0
  39. package/dist/pack-merge.test.js +238 -0
  40. package/dist/pack-merge.test.js.map +1 -0
  41. package/dist/regex-utils.d.ts +5 -0
  42. package/dist/regex-utils.d.ts.map +1 -1
  43. package/dist/regex-utils.js +6 -1
  44. package/dist/regex-utils.js.map +1 -1
  45. package/dist/regex-utils.test.js +15 -2
  46. package/dist/regex-utils.test.js.map +1 -1
  47. package/dist/rule-engine.d.ts.map +1 -1
  48. package/dist/rule-engine.js +14 -3
  49. package/dist/rule-engine.js.map +1 -1
  50. package/dist/rule-engine.test.js +29 -0
  51. package/dist/rule-engine.test.js.map +1 -1
  52. package/dist/store/lance-store.d.ts +55 -1
  53. package/dist/store/lance-store.d.ts.map +1 -1
  54. package/dist/store/lance-store.js +140 -25
  55. package/dist/store/lance-store.js.map +1 -1
  56. package/dist/store/lance-store.test.js +77 -0
  57. package/dist/store/lance-store.test.js.map +1 -1
  58. package/dist/sys/git.d.ts +12 -1
  59. package/dist/sys/git.d.ts.map +1 -1
  60. package/dist/sys/git.js +59 -5
  61. package/dist/sys/git.js.map +1 -1
  62. package/dist/sys/git.test.js +23 -3
  63. package/dist/sys/git.test.js.map +1 -1
  64. package/package.json +1 -1
@@ -6,6 +6,13 @@ export interface LessonInput {
6
6
  body: string;
7
7
  hash: string;
8
8
  }
9
+ /**
10
+ * Machine-readable skip reasons. Threaded through `CompileLessonResult` so
11
+ * downstream consumers (totem doctor, Layer 4 fallthrough reporting per ADR-088)
12
+ * can distinguish why a lesson produced no rule without string-matching
13
+ * human-readable messages.
14
+ */
15
+ export type CompileLessonReasonCode = 'non-compilable' | 'missing-badexample' | 'verify-retry-exhausted' | 'security-verify-rejected';
9
16
  export type CompileLessonResult = {
10
17
  status: 'compiled';
11
18
  rule: CompiledRule;
@@ -13,6 +20,7 @@ export type CompileLessonResult = {
13
20
  status: 'skipped';
14
21
  hash: string;
15
22
  reason?: string;
23
+ reasonCode: CompileLessonReasonCode;
16
24
  } | {
17
25
  status: 'failed';
18
26
  } | {
@@ -53,6 +61,17 @@ export interface CompileLessonDeps {
53
61
  * system prompt would invalidate the cache on every --upgrade call.
54
62
  */
55
63
  telemetryPrefix?: string;
64
+ /**
65
+ * Assert that this compile is producing a security rule. Per ADR-088
66
+ * Decision 3 (Layer 3 zero-tolerance), security rules that fail the smoke
67
+ * gate are rejected outright with no retry. Reserved for callers that know
68
+ * the source pack context (e.g., compiling lessons from a pack scoped
69
+ * `@totem/pack-agent-security` or any pack whose manifest carries an
70
+ * immutable severity contract). Today's `totem lesson compile` at repo
71
+ * level does not set this; a future pack-build command will. Defaults to
72
+ * false; security zero-tolerance is gated on an affirmative caller assertion.
73
+ */
74
+ securityContext?: boolean;
56
75
  }
57
76
  /**
58
77
  * Compile-time validation for ast-grep patterns (#1062, #1339).
@@ -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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"}
@@ -355,6 +355,16 @@ export function buildManualRule(lesson, existingByHash) {
355
355
  const manual = extractManualPattern(lesson.body);
356
356
  if (!manual)
357
357
  return { rule: null };
358
+ // Compound ast-grep path: the lesson authored a NapiConfig-shaped rule via
359
+ // a yaml fenced block under **Pattern:**. Route the parsed object through
360
+ // validateAstGrepPattern (which accepts both string and object shapes via
361
+ // the spike-validated polymorphic signature).
362
+ const isCompound = manual.engine === 'ast-grep' && manual.astGrepYamlRule !== undefined;
363
+ const astSource = isCompound
364
+ ? manual.astGrepYamlRule
365
+ : manual.engine === 'ast-grep'
366
+ ? manual.pattern
367
+ : undefined;
358
368
  if (manual.engine === 'regex') {
359
369
  const validation = validateRegex(manual.pattern);
360
370
  if (!validation.valid) {
@@ -362,7 +372,13 @@ export function buildManualRule(lesson, existingByHash) {
362
372
  }
363
373
  }
364
374
  if (manual.engine === 'ast-grep') {
365
- const validation = validateAstGrepPattern(manual.pattern);
375
+ if (astSource === undefined || (typeof astSource === 'string' && astSource.length === 0)) {
376
+ return {
377
+ rule: null,
378
+ rejectReason: 'Manual ast-grep lesson has neither a flat **Pattern:** value nor a `yaml`-tagged fenced block',
379
+ };
380
+ }
381
+ const validation = validateAstGrepPattern(astSource);
366
382
  if (!validation.valid) {
367
383
  return { rule: null, rejectReason: `Manual ast-grep pattern rejected: ${validation.reason}` };
368
384
  }
@@ -370,6 +386,7 @@ export function buildManualRule(lesson, existingByHash) {
370
386
  const now = new Date().toISOString();
371
387
  const existing = existingByHash.get(lesson.hash);
372
388
  const sanitizedGlobs = manual.fileGlobs ? sanitizeFileGlobs(manual.fileGlobs) : undefined;
389
+ const engineFieldArgs = manual.engine === 'ast-grep' && astSource !== undefined ? astSource : manual.pattern;
373
390
  return {
374
391
  rule: {
375
392
  lessonHash: lesson.hash,
@@ -385,7 +402,7 @@ export function buildManualRule(lesson, existingByHash) {
385
402
  // so we set this flag explicitly here. Old compiled-rules.json files don't
386
403
  // have it; the legacy heuristic stays as a fallback for those.
387
404
  manual: true,
388
- ...engineFields(manual.engine, manual.pattern),
405
+ ...engineFields(manual.engine, engineFieldArgs),
389
406
  compiledAt: now,
390
407
  createdAt: existing?.createdAt ?? now,
391
408
  ...(sanitizedGlobs && sanitizedGlobs.length > 0 ? { fileGlobs: sanitizedGlobs } : {}),
@@ -447,7 +464,12 @@ export async function compileLesson(lesson, compilerPrompt, deps) {
447
464
  }
448
465
  if (!parsed.compilable) {
449
466
  callbacks?.onDim?.(lesson.heading, 'Pipeline 3: not compilable — skipping');
450
- return { status: 'skipped', hash: lesson.hash, reason: parsed.reason };
467
+ return {
468
+ status: 'skipped',
469
+ hash: lesson.hash,
470
+ reason: parsed.reason,
471
+ reasonCode: 'non-compilable',
472
+ };
451
473
  }
452
474
  // mmnto/totem#1408: Pipeline 3 reuses its Bad snippet as the smoke-gate
453
475
  // target. The LLM may or may not echo the snippet back in parsed.badExample;
@@ -479,50 +501,195 @@ export async function compileLesson(lesson, compilerPrompt, deps) {
479
501
  }
480
502
  return { status: 'compiled', rule: ruleResult.rule };
481
503
  }
482
- // ── Pipeline 2: LLM compilation ──────────────────
483
- // The compilerPrompt (ast-grep manual + few-shot examples, ~50KB) is the
484
- // persistent system context same bytes across every Pipeline 2 call within
485
- // a session. Pass it as systemPrompt so the orchestrator can cache it
486
- // (mmnto/totem#1291 Phase 3). The user prompt carries only the per-lesson
487
- // body and the optional telemetry directive (which is per-rule, not cacheable).
504
+ // ── Pipeline 2 / Layer 3: LLM compilation with verify-retry loop ──
505
+ // ADR-088 Phase 1 (mmnto-ai/totem#1479). The compilerPrompt (ast-grep
506
+ // manual + few-shot examples, ~50KB) is the persistent system context
507
+ // same bytes across every call within a session. Pass it as systemPrompt
508
+ // so the orchestrator can cache it (mmnto/totem#1291 Phase 3). The user
509
+ // prompt carries only the per-lesson body, the optional telemetry
510
+ // directive (per --upgrade target, not cacheable), and on retries the
511
+ // prior-attempt feedback block.
488
512
  //
489
- // Optional telemetry directive (mmnto/totem#1131) — nudges Sonnet toward ast-grep
490
- // when the existing rule is firing in strings/comments instead of code. Lives
491
- // in the user prompt because it varies per --upgrade target.
492
- const userPromptParts = [];
493
- if (deps.telemetryPrefix) {
494
- userPromptParts.push('## Telemetry-Driven Refinement Directive', deps.telemetryPrefix);
495
- }
496
- userPromptParts.push('## Lesson to Compile', `Heading: ${lesson.heading}`, lesson.body);
497
- const userPrompt = userPromptParts.join('\n\n');
498
- const response = await runOrchestrator(userPrompt, compilerPrompt);
499
- if (response == null)
500
- return { status: 'noop' };
501
- const parsed = parseCompilerResponse(response);
502
- if (!parsed) {
503
- callbacks?.onWarn?.(lesson.heading, 'Failed to parse LLM response — skipping');
504
- return { status: 'failed' };
505
- }
506
- if (!parsed.compilable) {
507
- callbacks?.onDim?.(lesson.heading, 'Not compilable (conceptual/architectural) skipping');
508
- return { status: 'skipped', hash: lesson.hash, reason: parsed.reason };
509
- }
510
- // mmnto/totem#1408: Pipeline 2 enforces the smoke gate. Rules without a
511
- // badExample, or whose badExample fails to match the pattern, are rejected
512
- // with a clear reason before landing in compiled-rules.json. The compile
513
- // prompt rewrite in mmnto/totem#1409 teaches Sonnet to emit the field.
514
- const ruleResult = buildCompiledRule(parsed, lesson, existingByHash, {
515
- enforceSmokeGate: true,
516
- });
517
- if (!ruleResult.rule) {
518
- callbacks?.onWarn?.(lesson.heading, `${ruleResult.rejectReason ?? 'Unknown error'} — skipping`);
519
- return { status: 'failed' };
513
+ // Retry semantics:
514
+ // - On smoke-gate zero-match, rebuild the user prompt with a
515
+ // "Previous Attempt Failed Verification" section that names the
516
+ // failed pattern and the badExample it could not match, then call
517
+ // the LLM again. Up to MAX_VERIFY_ATTEMPTS total attempts.
518
+ // - Security context (deps.securityContext === true) disables retry:
519
+ // a failing verify rejects outright with reasonCode
520
+ // 'security-verify-rejected' per ADR-088 Decision 3 (zero
521
+ // tolerance).
522
+ // - On attempt exhaustion, fall through to Layer 4 with reasonCode
523
+ // 'verify-retry-exhausted'. The lesson is recorded as skipped
524
+ // with a machine-readable reason so totem doctor and downstream
525
+ // tooling can distinguish this from 'non-compilable'.
526
+ const MAX_VERIFY_ATTEMPTS = 3;
527
+ let previousFailure = null;
528
+ for (let attempt = 1; attempt <= MAX_VERIFY_ATTEMPTS; attempt++) {
529
+ const userPromptParts = [];
530
+ if (deps.telemetryPrefix) {
531
+ userPromptParts.push('## Telemetry-Driven Refinement Directive', deps.telemetryPrefix);
532
+ }
533
+ if (previousFailure) {
534
+ userPromptParts.push('## Previous Attempt Failed Verification', buildRetryDirective(previousFailure, attempt, MAX_VERIFY_ATTEMPTS));
535
+ }
536
+ userPromptParts.push('## Lesson to Compile', `Heading: ${lesson.heading}`, lesson.body);
537
+ const userPrompt = userPromptParts.join('\n\n');
538
+ const response = await runOrchestrator(userPrompt, compilerPrompt);
539
+ if (response == null)
540
+ return { status: 'noop' };
541
+ const parsed = parseCompilerResponse(response);
542
+ if (!parsed) {
543
+ callbacks?.onWarn?.(lesson.heading, 'Failed to parse LLM response — skipping');
544
+ return { status: 'failed' };
545
+ }
546
+ if (!parsed.compilable) {
547
+ callbacks?.onDim?.(lesson.heading, 'Not compilable (conceptual/architectural) — skipping');
548
+ return {
549
+ status: 'skipped',
550
+ hash: lesson.hash,
551
+ reason: parsed.reason,
552
+ reasonCode: 'non-compilable',
553
+ };
554
+ }
555
+ // Smoke gate enforcement lives in buildCompiledRule (mmnto-ai/totem#1408).
556
+ // Rules without a badExample, or whose badExample fails to match the
557
+ // pattern, come back with rule === null and a rejectReason. Classify the
558
+ // outcome into one of four buckets:
559
+ // success — rule built AND Example Hit/Miss verify passed
560
+ // retry-eligible — smoke-gate zero-match OR verifyRuleExamples failure
561
+ // missing-badexample — LLM omitted a required field (structural)
562
+ // validator-failure — invalid regex / ast-grep parse error / self-
563
+ // suppression guard; retrying would produce more
564
+ // invalid patterns, so the lesson stays pending
565
+ const ruleResult = buildCompiledRule(parsed, lesson, existingByHash, {
566
+ enforceSmokeGate: true,
567
+ });
568
+ let retryReason;
569
+ let retrySnippet;
570
+ if (ruleResult.rule) {
571
+ const testResult = verifyRuleExamples(ruleResult.rule, lesson.body);
572
+ if (!testResult || testResult.passed) {
573
+ return { status: 'compiled', rule: ruleResult.rule };
574
+ }
575
+ // Example Hit/Miss verification failed against the lesson's ground
576
+ // truth. ADR-088 AC: "verifies every LLM-generated pattern against
577
+ // the lesson's Example Hit block. Zero-match triggers a retry."
578
+ retryReason = formatExampleFailure(testResult);
579
+ // The snippet the retry directive should show is the Example Hit
580
+ // line the pattern missed, not the LLM's own badExample (which the
581
+ // pattern did match, since the smoke gate passed). If missedFails
582
+ // is empty but the test still failed (false-positive-only case),
583
+ // fall back to the badExample so the directive has something
584
+ // concrete to anchor on.
585
+ retrySnippet =
586
+ testResult.missedFails.length > 0
587
+ ? testResult.missedFails.join('\n')
588
+ : (parsed.badExample ?? '(no snippet available)');
589
+ }
590
+ else {
591
+ const rejectReason = ruleResult.rejectReason ?? 'Unknown error';
592
+ // Missing-badExample is a structural-output failure. Retrying won't
593
+ // teach the LLM to emit a field it just omitted — the compiler
594
+ // system prompt already requires it (mmnto-ai/totem#1409).
595
+ // Short-circuit to skipped with a distinct reasonCode.
596
+ if (rejectReason.includes('missing badExample')) {
597
+ callbacks?.onWarn?.(lesson.heading, `${rejectReason} — skipping`);
598
+ return {
599
+ status: 'skipped',
600
+ hash: lesson.hash,
601
+ reason: rejectReason,
602
+ reasonCode: 'missing-badexample',
603
+ };
604
+ }
605
+ // Only smoke-gate zero-match against the LLM's own badExample is
606
+ // retry-eligible. Validator-level rejections — invalid regex,
607
+ // ast-grep parse errors, self-suppression guards — are terminal.
608
+ // Retrying them produces more invalid patterns and wastes tokens.
609
+ // 'failed' keeps the rule pending for a future recompile rather
610
+ // than marking it permanently nonCompilable.
611
+ const isZeroMatch = rejectReason.startsWith('smoke gate: zero matches');
612
+ if (!isZeroMatch) {
613
+ callbacks?.onWarn?.(lesson.heading, `${rejectReason} — failing`);
614
+ return { status: 'failed' };
615
+ }
616
+ retryReason = rejectReason;
617
+ retrySnippet = parsed.badExample ?? '(no badExample emitted)';
618
+ }
619
+ // Shared retry path. Triggered by smoke-gate zero-match OR by
620
+ // Example Hit/Miss verify failure. Both carry a retryReason that
621
+ // threads back into the next LLM attempt's user prompt.
622
+ // ADR-088 Decision 3: security rules zero-tolerance. No retry.
623
+ if (deps.securityContext === true) {
624
+ callbacks?.onWarn?.(lesson.heading, `Security rule rejected on verify failure (no retry): ${retryReason}`);
625
+ return {
626
+ status: 'skipped',
627
+ hash: lesson.hash,
628
+ reason: retryReason,
629
+ reasonCode: 'security-verify-rejected',
630
+ };
631
+ }
632
+ if (attempt < MAX_VERIFY_ATTEMPTS) {
633
+ previousFailure = {
634
+ pattern: extractPatternString(parsed),
635
+ snippet: retrySnippet,
636
+ reason: retryReason,
637
+ };
638
+ callbacks?.onDim?.(lesson.heading, `Verify failed (attempt ${attempt}/${MAX_VERIFY_ATTEMPTS}): ${retryReason} — retrying`);
639
+ continue;
640
+ }
641
+ // Attempts exhausted → Layer 4 fallthrough per ADR-088.
642
+ callbacks?.onWarn?.(lesson.heading, `Verify retry exhausted after ${MAX_VERIFY_ATTEMPTS} attempts: ${retryReason} — skipping`);
643
+ return {
644
+ status: 'skipped',
645
+ hash: lesson.hash,
646
+ reason: `Verify retry exhausted after ${MAX_VERIFY_ATTEMPTS} attempts: ${retryReason}`,
647
+ reasonCode: 'verify-retry-exhausted',
648
+ };
520
649
  }
521
- const testResult = verifyRuleExamples(ruleResult.rule, lesson.body);
522
- if (testResult && !testResult.passed) {
523
- callbacks?.onWarn?.(lesson.heading, formatExampleFailure(testResult));
524
- return { status: 'failed' };
650
+ // Unreachable: every path inside the loop returns. Kept to satisfy the
651
+ // return-type checker without using a non-null assertion dance.
652
+ return { status: 'failed' };
653
+ }
654
+ // ─── Retry loop helpers (ADR-088 Layer 3) ──────────
655
+ /**
656
+ * Render the parsed LLM output's pattern as a printable string for the
657
+ * retry-directive prompt. regex and astGrepPattern are string-native; a
658
+ * compound ast-grep rule is JSON-serialized so the LLM can see the
659
+ * structure that produced zero matches.
660
+ */
661
+ function extractPatternString(parsed) {
662
+ if (typeof parsed.pattern === 'string' && parsed.pattern.length > 0)
663
+ return parsed.pattern;
664
+ if (typeof parsed.astGrepPattern === 'string' && parsed.astGrepPattern.length > 0) {
665
+ return parsed.astGrepPattern;
525
666
  }
526
- return { status: 'compiled', rule: ruleResult.rule };
667
+ if (parsed.astGrepYamlRule)
668
+ return JSON.stringify(parsed.astGrepYamlRule, null, 2);
669
+ return '(pattern unavailable)';
670
+ }
671
+ /**
672
+ * Build the "Previous Attempt Failed Verification" user-prompt block that
673
+ * threads the prior-attempt pattern, badExample, and reject reason back to
674
+ * the LLM so it can correct its output.
675
+ */
676
+ function buildRetryDirective(failure, attempt, maxAttempts) {
677
+ return [
678
+ `This is attempt ${attempt} of ${maxAttempts}. The previous attempt produced a pattern that failed verification.`,
679
+ '',
680
+ '**Previous pattern:**',
681
+ '```',
682
+ failure.pattern,
683
+ '```',
684
+ '',
685
+ '**Code snippet the pattern had to match:**',
686
+ '```',
687
+ failure.snippet,
688
+ '```',
689
+ '',
690
+ `**Failure reason:** ${failure.reason}`,
691
+ '',
692
+ 'Generate a corrected pattern that satisfies the requirements. Keep the lesson intent unchanged; only fix the pattern so it triggers correctly.',
693
+ ].join('\n');
527
694
  }
528
695
  //# sourceMappingURL=compile-lesson.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"compile-lesson.js","sourceRoot":"","sources":["../src/compile-lesson.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"compile-lesson.js","sourceRoot":"","sources":["../src/compile-lesson.ts"],"names":[],"mappings":"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"}