@mmnto/totem 1.27.0 → 1.28.1

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.
@@ -5,6 +5,7 @@ import { matchAstGrepPatternsBatch } from './ast-grep-query.js';
5
5
  import { matchAstQueriesBatch } from './ast-query.js';
6
6
  import { extractAddedLines } from './diff-parser.js';
7
7
  import { TotemParseError } from './errors.js';
8
+ import { detectStaleManifest, staleManifestError } from './stale-manifest.js';
8
9
  // ─── File glob matching ─────────────────────────────
9
10
  /**
10
11
  * Check if a file path matches a single glob pattern.
@@ -332,6 +333,22 @@ export async function applyAstRulesToAdditions(ctx, rules, additions, workingDir
332
333
  if (!extensionToLanguage(ext)) {
333
334
  const ruleExpectingThisFile = allAstRules.find((r) => r.fileGlobs && r.fileGlobs.length > 0 && fileMatchesGlobs(file, r.fileGlobs));
334
335
  if (ruleExpectingThisFile) {
336
+ // mmnto-ai/totem#1811 (ADR-101): before re-throwing the raw
337
+ // Tree-sitter language-miss error, check whether the user is
338
+ // one `totem sync --packs-only` away from a working state.
339
+ // The detector consults `.totem/installed-packs.json`'s
340
+ // `cohort` field against the running engine; on staleness
341
+ // (missing / pre-1.27.0 / minor bump) we surface a structured
342
+ // `STALE_MANIFEST` nudge instead of the generic install hint.
343
+ // Cohort-match falls through to the original parse error.
344
+ const staleDetection = detectStaleManifest({ workingDirectory });
345
+ if (staleDetection) {
346
+ throw staleManifestError(staleDetection, {
347
+ file,
348
+ extension: ext,
349
+ ruleHash: ruleExpectingThisFile.lessonHash,
350
+ });
351
+ }
335
352
  // `[Totem Error]` prefix is auto-prepended by the TotemError base
336
353
  // class constructor (`errors.ts:40`). The literal prefix is
337
354
  // intentionally NOT in the message argument here — duplicating it
@@ -1 +1 @@
1
- {"version":3,"file":"rule-engine.js","sourceRoot":"","sources":["../src/rule-engine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rule-engine.js","sourceRoot":"","sources":["../src/rule-engine.ts"],"names":[],"mappings":"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"}
@@ -2,9 +2,23 @@ import * as fs from 'node:fs';
2
2
  import * as os from 'node:os';
3
3
  import * as path from 'node:path';
4
4
  import { afterEach, beforeEach, describe, expect, it } from 'vitest';
5
- import { TotemParseError } from './errors.js';
5
+ import { TotemError, TotemParseError } from './errors.js';
6
+ import { resolveEngineVersion } from './pack-discovery.js';
6
7
  import { applyAstRulesToAdditions, applyRulesToAdditions, extractJustification, matchesGlob, } from './rule-engine.js';
7
8
  import { cleanTmpDir, makeRuleEngineCtx } from './test-utils.js';
9
+ /**
10
+ * Seed `.totem/installed-packs.json` at `dir` so the stale-manifest
11
+ * detector (mmnto-ai/totem#1811, ADR-101) sees a fresh cohort and
12
+ * the rule-engine falls through to the original `TotemParseError`
13
+ * path. Pre-1811, the existence check wasn't there so test fixtures
14
+ * didn't need a manifest.
15
+ */
16
+ function seedFreshManifest(dir, cohort = resolveEngineVersion()) {
17
+ const totemDir = path.join(dir, '.totem');
18
+ fs.mkdirSync(totemDir, { recursive: true });
19
+ // totem-context: writing a totem manifest fixture under tmpDir, not a git hook
20
+ fs.writeFileSync(path.join(totemDir, 'installed-packs.json'), JSON.stringify({ version: 1, cohort, packs: [] }), 'utf-8');
21
+ }
8
22
  // ─── Helpers ────────────────────────────────────────
9
23
  let tmpDir;
10
24
  let ctx;
@@ -610,6 +624,8 @@ describe('matchesGlob', () => {
610
624
  describe('applyAstRulesToAdditions fail-loud on unmapped extension (mmnto-ai/totem#1653)', () => {
611
625
  // totem-context: test fixtures genuinely need async — they `await applyAstRulesToAdditions(...)` whose contract is async
612
626
  it('throws when an AST rule is scoped to an unregistered extension', async () => {
627
+ // totem-context: seed the manifest with a fresh cohort so mmnto-ai/totem#1811's STALE_MANIFEST nudge stays silent and the original install-hint path stays under test
628
+ seedFreshManifest(tmpDir);
613
629
  fs.writeFileSync(path.join(tmpDir, 'src', 'main.py'), 'print("x")\n'); // totem-context: writing a python source fixture under tmpDir, not a git hook
614
630
  const rule = makeRule({
615
631
  engine: 'ast',
@@ -641,6 +657,90 @@ describe('applyAstRulesToAdditions fail-loud on unmapped extension (mmnto-ai/tot
641
657
  expect(tpe.message).toMatch(/AST rule 'py-rule-hash'.*scoped to.*extension '\.py'.*no Tree-sitter language is registered/);
642
658
  expect(tpe.recoveryHint).toMatch(/Install the pack that provides '\.py'/);
643
659
  });
660
+ // mmnto-ai/totem#1811 (ADR-101): stale-manifest UX nudge — when the
661
+ // installed-packs.json cohort doesn't match the running engine, the
662
+ // unmapped-extension throw is replaced with a structured
663
+ // STALE_MANIFEST error pointing at `totem sync --packs-only`. Two
664
+ // parallel tests below establish the contract: cohort-match passes
665
+ // through to the original TotemParseError; everything else fires
666
+ // the nudge.
667
+ // totem-context: test fixture genuinely awaits async API (`applyAstRulesToAdditions`)
668
+ it('surfaces STALE_MANIFEST when installed-packs.json is missing', async () => {
669
+ // Note: NO seedFreshManifest call — tmpDir has no .totem/.
670
+ fs.writeFileSync(path.join(tmpDir, 'src', 'main.py'), 'print("x")\n'); // totem-context: writing a python source fixture under tmpDir, not a git hook
671
+ const rule = makeRule({
672
+ engine: 'ast',
673
+ astQuery: '(call_expression)',
674
+ fileGlobs: ['**/*.py'],
675
+ lessonHash: 'py-rule-hash',
676
+ });
677
+ const additions = [makeAddition('src/main.py', 'print("x")', 1)];
678
+ let caught;
679
+ try {
680
+ await applyAstRulesToAdditions(ctx, [rule], additions, tmpDir);
681
+ }
682
+ catch (err) {
683
+ caught = err;
684
+ }
685
+ expect(caught).toBeInstanceOf(TotemError);
686
+ expect(caught).not.toBeInstanceOf(TotemParseError);
687
+ // totem-context: narrowing a thrown error after toBeInstanceOf — not parsing untrusted input
688
+ const te = caught;
689
+ expect(te.code).toBe('STALE_MANIFEST');
690
+ expect(te.recoveryHint).toMatch(/--packs-only/);
691
+ });
692
+ // totem-context: test fixture genuinely awaits async API (`applyAstRulesToAdditions`)
693
+ it('surfaces STALE_MANIFEST when manifest cohort is from a prior minor version', async () => {
694
+ // Seed cohort '0.0.0' so semver-minor compare always reads stale
695
+ // regardless of the running engine version.
696
+ seedFreshManifest(tmpDir, '0.0.0');
697
+ fs.writeFileSync(path.join(tmpDir, 'src', 'main.py'), 'print("x")\n'); // totem-context: writing a python source fixture under tmpDir, not a git hook
698
+ const rule = makeRule({
699
+ engine: 'ast',
700
+ astQuery: '(call_expression)',
701
+ fileGlobs: ['**/*.py'],
702
+ lessonHash: 'py-rule-hash',
703
+ });
704
+ const additions = [makeAddition('src/main.py', 'print("x")', 1)];
705
+ let caught;
706
+ try {
707
+ await applyAstRulesToAdditions(ctx, [rule], additions, tmpDir);
708
+ }
709
+ catch (err) {
710
+ caught = err;
711
+ }
712
+ // totem-context: narrowing a thrown error after toBeInstanceOf — not parsing untrusted input
713
+ const te1 = caught;
714
+ expect(te1.code).toBe('STALE_MANIFEST');
715
+ expect(te1.message).toMatch(/0\.0\.0/);
716
+ });
717
+ // totem-context: test fixture genuinely awaits async API (`applyAstRulesToAdditions`)
718
+ it('surfaces STALE_MANIFEST when manifest is pre-1.27.0 (no cohort field)', async () => {
719
+ // Pre-1.27.0 manifest shape: schema-valid but missing cohort.
720
+ const totemDir = path.join(tmpDir, '.totem');
721
+ fs.mkdirSync(totemDir, { recursive: true });
722
+ // totem-context: writing a totem manifest fixture under tmpDir, not a git hook
723
+ fs.writeFileSync(path.join(totemDir, 'installed-packs.json'), JSON.stringify({ version: 1, packs: [] }), 'utf-8');
724
+ fs.writeFileSync(path.join(tmpDir, 'src', 'main.py'), 'print("x")\n'); // totem-context: writing a python source fixture under tmpDir, not a git hook
725
+ const rule = makeRule({
726
+ engine: 'ast',
727
+ astQuery: '(call_expression)',
728
+ fileGlobs: ['**/*.py'],
729
+ lessonHash: 'py-rule-hash',
730
+ });
731
+ const additions = [makeAddition('src/main.py', 'print("x")', 1)];
732
+ let caught;
733
+ try {
734
+ await applyAstRulesToAdditions(ctx, [rule], additions, tmpDir);
735
+ }
736
+ catch (err) {
737
+ caught = err;
738
+ }
739
+ // totem-context: narrowing a thrown error after toBeInstanceOf — not parsing untrusted input
740
+ const te2 = caught;
741
+ expect(te2.code).toBe('STALE_MANIFEST');
742
+ expect(te2.message).toMatch(/pre-1\.27\.0/);
743
+ });
644
744
  // totem-context: test fixture genuinely awaits async API
645
745
  it('does NOT throw when an unmapped-extension file is in the diff but no rule scopes to it', async () => {
646
746
  fs.writeFileSync(path.join(tmpDir, 'src', 'main.py'), 'print("x")\n'); // totem-context: writing a python source fixture under tmpDir, not a git hook
@@ -1 +1 @@
1
- {"version":3,"file":"rule-engine.test.js","sourceRoot":"","sources":["../src/rule-engine.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rule-engine.test.js","sourceRoot":"","sources":["../src/rule-engine.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,72 @@
1
+ /**
2
+ * Stale `installed-packs.json` detector for the rule-engine UX nudge
3
+ * fast-path (mmnto-ai/totem#1811, ADR-101).
4
+ *
5
+ * When `applyAstRulesToAdditions` hits a Tree-sitter language miss
6
+ * (file extension mapped by no registered language), it normally
7
+ * throws `TotemParseError` with an "install the pack" hint. After
8
+ * `mmnto-ai/totem#1811` the rule-engine first asks this module
9
+ * whether the user is one `totem sync --packs-only` away from a
10
+ * working state — pre-1.27.0 manifest, missing manifest, malformed
11
+ * cohort, or a cohort whose major.minor differs from the running
12
+ * engine. Patch-level cohort drift passes (caret-range pack semver
13
+ * tolerance — OQ2 disposition).
14
+ */
15
+ import { TotemError } from './errors.js';
16
+ export type StaleManifestReason = 'no-manifest' | 'no-cohort' | 'cohort-mismatch';
17
+ export interface StaleManifestDetection {
18
+ readonly reason: StaleManifestReason;
19
+ /** Manifest's recorded cohort, if present and parseable. */
20
+ readonly manifestCohort?: string;
21
+ /** Running `@mmnto/totem` engine version. */
22
+ readonly engineVersion: string;
23
+ }
24
+ export interface DetectStaleManifestOptions {
25
+ /** Project root (where `.totem/` lives). */
26
+ readonly workingDirectory: string;
27
+ /** Totem directory name, defaults to `.totem`. */
28
+ readonly totemDir?: string;
29
+ /** Test seam: stub the engine-version resolver. */
30
+ readonly resolveVersion?: () => string;
31
+ /** Test seam: stub the file reader (returns null for ENOENT). */
32
+ readonly readManifest?: (manifestPath: string) => string | null;
33
+ }
34
+ /**
35
+ * Decide whether the running engine is ahead of (or out of sync with)
36
+ * the manifest's recorded cohort. Returns `null` when no nudge is
37
+ * warranted (manifest reads cleanly and major.minor matches the
38
+ * engine), otherwise returns a structured detection that the caller
39
+ * surfaces as a `STALE_MANIFEST` `TotemError`.
40
+ *
41
+ * Failure-mode discipline (Tenet 4):
42
+ * - Manifest missing (ENOENT): `{ reason: 'no-manifest' }`.
43
+ * - Manifest unreadable / non-JSON / fails schema: treated as missing
44
+ * (`'no-manifest'`). The lint-time path is a UX nudge, not a
45
+ * correctness gate; surfacing schema noise here would mask the
46
+ * underlying "user just needs to re-sync" signal.
47
+ * - Cohort field absent (pre-1.27.0 manifest): `'no-cohort'`.
48
+ * - Cohort field present but not semver-valid: `'no-cohort'`
49
+ * (defensive fallback — design doc spec line for malformed cohort).
50
+ * - Cohort major.minor differs from engine: `'cohort-mismatch'`.
51
+ * - `engineVersion` itself not semver-valid (defensive — should not
52
+ * happen given `resolveEngineVersion`'s '0.0.0' sentinel fallback,
53
+ * but a malformed `@mmnto/totem` package.json could surface one):
54
+ * return `null` so the caller falls through to the original
55
+ * `TotemParseError` unmasked. Source-level validation of engine
56
+ * version is tracked separately as mmnto-ai/totem#1829.
57
+ */
58
+ export declare function detectStaleManifest(opts: DetectStaleManifestOptions): StaleManifestDetection | null;
59
+ /**
60
+ * Build the `TotemError('STALE_MANIFEST', ...)` surfaced when a
61
+ * Tree-sitter language miss collides with an out-of-sync manifest.
62
+ * The diagnostic always points at the same recovery: `totem sync
63
+ * --packs-only`. The message reflects which class of staleness
64
+ * fired so users can correlate with their environment (CI vs local,
65
+ * pre-1.27.0 manifest vs minor bump).
66
+ */
67
+ export declare function staleManifestError(detection: StaleManifestDetection, context: {
68
+ readonly file: string;
69
+ readonly extension: string;
70
+ readonly ruleHash: string;
71
+ }): TotemError;
72
+ //# sourceMappingURL=stale-manifest.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stale-manifest.d.ts","sourceRoot":"","sources":["../src/stale-manifest.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAOH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAGzC,MAAM,MAAM,mBAAmB,GAAG,aAAa,GAAG,WAAW,GAAG,iBAAiB,CAAC;AAElF,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,MAAM,EAAE,mBAAmB,CAAC;IACrC,4DAA4D;IAC5D,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,6CAA6C;IAC7C,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;CAChC;AAED,MAAM,WAAW,0BAA0B;IACzC,4CAA4C;IAC5C,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,kDAAkD;IAClD,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,mDAAmD;IACnD,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,MAAM,CAAC;IACvC,iEAAiE;IACjE,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,CAAC;CACjE;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,0BAA0B,GAC/B,sBAAsB,GAAG,IAAI,CAiD/B;AAED;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAChC,SAAS,EAAE,sBAAsB,EACjC,OAAO,EAAE;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GACxF,UAAU,CAUZ"}
@@ -0,0 +1,119 @@
1
+ /**
2
+ * Stale `installed-packs.json` detector for the rule-engine UX nudge
3
+ * fast-path (mmnto-ai/totem#1811, ADR-101).
4
+ *
5
+ * When `applyAstRulesToAdditions` hits a Tree-sitter language miss
6
+ * (file extension mapped by no registered language), it normally
7
+ * throws `TotemParseError` with an "install the pack" hint. After
8
+ * `mmnto-ai/totem#1811` the rule-engine first asks this module
9
+ * whether the user is one `totem sync --packs-only` away from a
10
+ * working state — pre-1.27.0 manifest, missing manifest, malformed
11
+ * cohort, or a cohort whose major.minor differs from the running
12
+ * engine. Patch-level cohort drift passes (caret-range pack semver
13
+ * tolerance — OQ2 disposition).
14
+ */
15
+ import * as fs from 'node:fs';
16
+ import * as path from 'node:path';
17
+ import * as semver from 'semver';
18
+ import { TotemError } from './errors.js';
19
+ import { InstalledPacksManifestSchema, resolveEngineVersion } from './pack-discovery.js';
20
+ /**
21
+ * Decide whether the running engine is ahead of (or out of sync with)
22
+ * the manifest's recorded cohort. Returns `null` when no nudge is
23
+ * warranted (manifest reads cleanly and major.minor matches the
24
+ * engine), otherwise returns a structured detection that the caller
25
+ * surfaces as a `STALE_MANIFEST` `TotemError`.
26
+ *
27
+ * Failure-mode discipline (Tenet 4):
28
+ * - Manifest missing (ENOENT): `{ reason: 'no-manifest' }`.
29
+ * - Manifest unreadable / non-JSON / fails schema: treated as missing
30
+ * (`'no-manifest'`). The lint-time path is a UX nudge, not a
31
+ * correctness gate; surfacing schema noise here would mask the
32
+ * underlying "user just needs to re-sync" signal.
33
+ * - Cohort field absent (pre-1.27.0 manifest): `'no-cohort'`.
34
+ * - Cohort field present but not semver-valid: `'no-cohort'`
35
+ * (defensive fallback — design doc spec line for malformed cohort).
36
+ * - Cohort major.minor differs from engine: `'cohort-mismatch'`.
37
+ * - `engineVersion` itself not semver-valid (defensive — should not
38
+ * happen given `resolveEngineVersion`'s '0.0.0' sentinel fallback,
39
+ * but a malformed `@mmnto/totem` package.json could surface one):
40
+ * return `null` so the caller falls through to the original
41
+ * `TotemParseError` unmasked. Source-level validation of engine
42
+ * version is tracked separately as mmnto-ai/totem#1829.
43
+ */
44
+ export function detectStaleManifest(opts) {
45
+ const totemDir = opts.totemDir ?? '.totem';
46
+ const manifestPath = path.join(opts.workingDirectory, totemDir, 'installed-packs.json');
47
+ const resolve = opts.resolveVersion ?? resolveEngineVersion;
48
+ const reader = opts.readManifest ?? defaultReadManifest;
49
+ const engineVersion = resolve();
50
+ if (!semver.valid(engineVersion)) {
51
+ return null;
52
+ }
53
+ const raw = reader(manifestPath);
54
+ if (raw === null) {
55
+ return { reason: 'no-manifest', engineVersion };
56
+ }
57
+ let parsedJson;
58
+ try {
59
+ parsedJson = JSON.parse(raw); // totem-context: intentional cleanup — corrupted manifest JSON is treated as missing for the lint-time UX-nudge fast-path; the boot-time loader at pack-discovery.ts:readManifestAndResolveCallbacks is the strict-failure surface (re-throws), this fallback is downstream of it
60
+ }
61
+ catch {
62
+ return { reason: 'no-manifest', engineVersion };
63
+ }
64
+ const validation = InstalledPacksManifestSchema.safeParse(parsedJson);
65
+ if (!validation.success) {
66
+ return { reason: 'no-manifest', engineVersion };
67
+ }
68
+ const manifestCohort = validation.data.cohort;
69
+ if (manifestCohort === undefined) {
70
+ return { reason: 'no-cohort', engineVersion };
71
+ }
72
+ if (!semver.valid(manifestCohort)) {
73
+ return { reason: 'no-cohort', manifestCohort, engineVersion };
74
+ }
75
+ // Tolerate patch drift; flag minor or major mismatches. Caret-range
76
+ // pack semver semantics already accept patch bumps without ABI
77
+ // change, so rebuilding the manifest on a 1.27.0 → 1.27.1 bump is
78
+ // spurious (mmnto-ai/totem#1811 OQ2).
79
+ if (semver.major(manifestCohort) !== semver.major(engineVersion) || // totem-context: `||` combines two booleans (`semver.major` returns are integers, `!==` produces booleans); the "use ?? for numeric metric defaults" rule targets `metric || fallback` numeric-coercion, not boolean OR
80
+ semver.minor(manifestCohort) !== semver.minor(engineVersion)) {
81
+ return { reason: 'cohort-mismatch', manifestCohort, engineVersion };
82
+ }
83
+ return null;
84
+ }
85
+ /**
86
+ * Build the `TotemError('STALE_MANIFEST', ...)` surfaced when a
87
+ * Tree-sitter language miss collides with an out-of-sync manifest.
88
+ * The diagnostic always points at the same recovery: `totem sync
89
+ * --packs-only`. The message reflects which class of staleness
90
+ * fired so users can correlate with their environment (CI vs local,
91
+ * pre-1.27.0 manifest vs minor bump).
92
+ */
93
+ export function staleManifestError(detection, context) {
94
+ const summary = detection.reason === 'no-manifest'
95
+ ? `installed-packs.json is missing or unreadable`
96
+ : detection.reason === 'no-cohort'
97
+ ? `installed-packs.json was written by a pre-1.27.0 totem (no cohort field)`
98
+ : `installed-packs.json was written by totem ${detection.manifestCohort ?? 'unknown'} but the running engine is ${detection.engineVersion}`;
99
+ const message = `Tree-sitter language not registered for '${context.extension}' while AST rule '${context.ruleHash}' expected to lint '${context.file}'. ${summary}; the pack manifest is stale.`;
100
+ const hint = `Run \`totem sync --packs-only\` to regenerate \`.totem/installed-packs.json\` (no API key required). If the rule still fails after re-sync, install the pack that registers '${context.extension}' (e.g., \`pnpm add -D @mmnto/pack-rust-architecture\` for '.rs').`;
101
+ return new TotemError('STALE_MANIFEST', message, hint);
102
+ }
103
+ // totem-context: intentional cleanup — every read failure (ENOENT,
104
+ // EACCES, transient I/O) collapses to the same "no manifest" sentinel
105
+ // for this UX-nudge fast-path. The caller maps the null to the
106
+ // `'no-manifest'` reason and surfaces a structured `STALE_MANIFEST`
107
+ // error pointing at `totem sync --packs-only`. The boot-time loader
108
+ // at `pack-discovery.ts:readManifestAndResolveCallbacks` is the
109
+ // strict-failure surface (re-throws on non-ENOENT); this helper is a
110
+ // best-effort sibling for the lint-time nudge.
111
+ function defaultReadManifest(manifestPath) {
112
+ try {
113
+ return fs.readFileSync(manifestPath, 'utf-8'); // totem-context: synchronous read keeps the per-file Tree-sitter language-miss check non-async; the caller's parse-error path is hot — threading a Promise here would cascade async into every AST rule dispatch site
114
+ }
115
+ catch {
116
+ return null;
117
+ }
118
+ }
119
+ //# sourceMappingURL=stale-manifest.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stale-manifest.js","sourceRoot":"","sources":["../src/stale-manifest.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Tests for `detectStaleManifest` + `staleManifestError`
3
+ * (mmnto-ai/totem#1811, ADR-101).
4
+ *
5
+ * Two parallel paths drive the design:
6
+ * - Tree-sitter miss + cohort matches (semver-minor) → null detection,
7
+ * caller falls through to the original `TotemParseError`.
8
+ * - Tree-sitter miss + cohort missing/mismatched → detection object,
9
+ * caller surfaces a structured `STALE_MANIFEST` nudge.
10
+ *
11
+ * Both paths use a stubbed engine version + manifest reader so the
12
+ * test does not depend on the real package.json or filesystem.
13
+ */
14
+ export {};
15
+ //# sourceMappingURL=stale-manifest.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stale-manifest.test.d.ts","sourceRoot":"","sources":["../src/stale-manifest.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG"}