@mmnto/cli 1.104.0 → 1.106.0

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.
@@ -1,5 +1,211 @@
1
1
  // ─── Constants ──────────────────────────────────────
2
2
  const COMPILED_RULES_FILE = 'compiled-rules.json';
3
+ // ─── Corpus-bearing derivation (mmnto-ai/totem-strategy#971, Prop 309) ─
4
+ /**
5
+ * Count the lesson-corpus files a repo carries on disk: every existing file
6
+ * matched by a lesson-kind ingest target's glob in the loaded totem config,
7
+ * deduplicated across targets.
8
+ *
9
+ * This is the discriminator {@link runCompiledRules} uses when zero compiled
10
+ * rules load. A count > 0 means the repo genuinely HAS lessons, so a
11
+ * zero-rules run has silently disarmed the enforcement gate and must fail loud
12
+ * (mmnto-ai/totem-strategy#971, Prop 309). A count of 0 is a legitimate
13
+ * empty-corpus / early-adoption repo that skips (mmnto-ai/totem#1831).
14
+ *
15
+ * Config-driven — the lesson paths come from `config.targets`, never a
16
+ * hardcoded `.totem/lessons` (`totem describe`'s "Lessons: N" reads the fixed
17
+ * dir; this derivation honors a config that relocates the corpus). Pure
18
+ * filesystem scan with NO git spawn, so it stays Windows-temp-dir safe under
19
+ * test: each target's static path prefix bounds the walk, and candidate paths
20
+ * are matched with the shared glob matcher.
21
+ */
22
+ async function countLessonCorpusFiles(config, projectRoot) {
23
+ const fs = await import('node:fs');
24
+ const path = await import('node:path');
25
+ const { matchesGlob } = await import('@mmnto/totem');
26
+ const WILDCARD = /[*?{}[\]]/;
27
+ // Bound the walk so a broad lesson glob can never blow up on heavy trees. A
28
+ // non-terminal wildcard (e.g. '.totem/*/lessons/*.md') collapses the static
29
+ // prefix to a shallow dir, so the heavy subtrees lessons never live in —
30
+ // embedding stores and build output — are skipped by name alongside the
31
+ // usual suspects.
32
+ const SKIP_DIRS = new Set(['.git', 'node_modules', '.lancedb', 'dist']);
33
+ const toPosix = (p) => p.replace(/\\/g, '/');
34
+ const matched = new Set();
35
+ for (const target of config.targets) {
36
+ if (target.type !== 'lesson')
37
+ continue;
38
+ const glob = target.glob;
39
+ // Concrete path (no wildcard) — a direct existence check (e.g. a single
40
+ // aggregated `.totem/lessons.md`).
41
+ if (!WILDCARD.test(glob)) {
42
+ try {
43
+ if (fs.statSync(path.join(projectRoot, glob)).isFile())
44
+ matched.add(toPosix(glob));
45
+ // totem-context: best-effort — an absent concrete lesson path is simply not counted; ENOENT here is expected, never surfaced.
46
+ }
47
+ catch {
48
+ // path absent — contributes nothing
49
+ }
50
+ continue;
51
+ }
52
+ // Wildcard glob — walk the static prefix directory (segments before the
53
+ // first wildcard segment) and match each candidate against the full config
54
+ // glob. The prefix scopes the walk to the lessons subtree.
55
+ const segments = glob.split('/');
56
+ const firstWildcard = segments.findIndex((s) => WILDCARD.test(s));
57
+ const baseRel = segments.slice(0, firstWildcard).join('/');
58
+ const stack = [baseRel ? path.join(projectRoot, baseRel) : projectRoot];
59
+ while (stack.length > 0) {
60
+ const dir = stack.pop();
61
+ let entries;
62
+ try {
63
+ entries = fs.readdirSync(dir, { withFileTypes: true });
64
+ // totem-context: best-effort — an unreadable/absent lesson subtree contributes nothing rather than throwing; this cold-path scan must never crash lint.
65
+ }
66
+ catch {
67
+ continue;
68
+ }
69
+ for (const entry of entries) {
70
+ const abs = path.join(dir, entry.name);
71
+ if (entry.isDirectory()) {
72
+ if (!SKIP_DIRS.has(entry.name))
73
+ stack.push(abs);
74
+ }
75
+ else if (entry.isFile()) {
76
+ const rel = toPosix(path.relative(projectRoot, abs));
77
+ if (matchesGlob(rel, glob))
78
+ matched.add(rel);
79
+ }
80
+ }
81
+ }
82
+ }
83
+ return matched.size;
84
+ }
85
+ // ─── Target-mismatch derivation (mmnto-ai/totem-strategy#971, Prop 309 Class 7) ─
86
+ /**
87
+ * Hard-error when a loaded AST rule can never execute because NONE of its
88
+ * declared `fileGlobs` targets an extension the engine has a registered
89
+ * Tree-sitter language for (mmnto-ai/totem-strategy#971, Prop 309 Class 7).
90
+ *
91
+ * The failure this closes: `resolveAstGrepLangs` (ast-grep-query.ts) silently
92
+ * falls back to `Lang.Tsx` when no glob resolves, so a target-mismatched rule
93
+ * looks healthy at load. It then detonates at RUN time — `rule-engine.ts`'s
94
+ * language check throws `TotemParseError` the first time a diff happens to
95
+ * contain a file the rule's globs match, and that throw escapes the per-file
96
+ * loop and aborts the WHOLE lint. The observed specimen was an `ast-grep` rule
97
+ * whose four globs all pointed at `.json` files, which no language registration
98
+ * covers. Diff-dependent detonation is the worst property: the gate is green on
99
+ * every run until the one run where it isn't.
100
+ *
101
+ * The guard converts that into a deterministic load-time failure. It runs on
102
+ * EVERY invocation regardless of the diff, and — unlike the corpus-bearing gate
103
+ * above — it is deliberately NOT gated on `options.config`. That opt-out exists
104
+ * because zero-rules is genuinely ambiguous (empty-corpus repo vs disarmed gate)
105
+ * and the config is the only discriminator. Target-mismatch is unambiguous from
106
+ * the manifest alone: no discriminator is needed, so there is nothing to opt out
107
+ * of and `shield estimate` gets the same protection. The one escape is the
108
+ * pre-existing `--ast-parse-mode lenient` operator flag (see the branch below),
109
+ * which is opt-in and leaves the strict default fail-closed.
110
+ *
111
+ * Scope matches the abort seam exactly. `rule-engine.ts` searches the
112
+ * `allAstRules` union (Tree-sitter `'ast'` ∪ `'ast-grep'`) for a rule whose
113
+ * globs claim the unparseable file, so BOTH engines are validated here.
114
+ *
115
+ * Two shapes stay permitted:
116
+ *
117
+ * - **Globless rules** (`fileGlobs` absent or empty). The documented
118
+ * `Lang.Tsx` fallback is their intended behavior — many pre-1.16 rules ship
119
+ * unscoped — and `rule-engine.ts` only throws for a rule with non-empty
120
+ * `fileGlobs`, so a globless rule cannot arm the landmine.
121
+ * - **Extensionless positive globs** — a recursive `src/**`, a bare-star
122
+ * leaf, or a brace-set leaf like `.{ts,json}` (glob literals are omitted
123
+ * here because a star-slash pair would close this comment).
124
+ * `TRAILING_EXT_RE` extracts nothing from these, but at run time they can
125
+ * and do match `.ts` files and dispatch correctly. Absence of a trailing
126
+ * extension is absence of evidence, not proof of mismatch — treating it as
127
+ * unresolvable would hard-error legitimately broad rules. A rule is only
128
+ * condemned when EVERY positive glob names a concrete extension and NOT ONE
129
+ * of those extensions resolves.
130
+ *
131
+ * Lifecycle status needs no filtering here: `loadCompiledRules` has already
132
+ * dropped `archived` / `untested-against-codebase` / `pending-verification`
133
+ * (compiler.ts), so an archived specimen never reaches this function — which is
134
+ * exactly why archiving is the offered remedy.
135
+ *
136
+ * Pack-contributed languages are honored: CLI commands call `bootstrapEngine`
137
+ * (→ `loadInstalledPacks`) before this point, so a pack that registers `.rs`
138
+ * has already populated the registry when the check reads it.
139
+ */
140
+ async function assertRulesCanTargetTheirGlobs(rules, astParseMode, onWarn) {
141
+ const { extensionToLanguage, registeredExtensions, sanitizeForTerminal, TotemError, TRAILING_EXT_RE, } = await import('@mmnto/totem');
142
+ const offenders = [];
143
+ for (const rule of rules) {
144
+ if (rule.engine !== 'ast-grep' && rule.engine !== 'ast')
145
+ continue;
146
+ const globs = rule.fileGlobs;
147
+ if (!globs || globs.length === 0)
148
+ continue;
149
+ // Negations describe files the rule must NOT match, so they never carry a
150
+ // dispatch target — same skip `resolveAstGrepLangs` performs.
151
+ const positive = globs.filter((g) => typeof g === 'string' && !g.startsWith('!'));
152
+ // An all-negation glob list matches every file (see the zero-match
153
+ // derivation below, where `positive.length === 0` matches unconditionally),
154
+ // so it necessarily reaches resolvable files. Permitted.
155
+ if (positive.length === 0)
156
+ continue;
157
+ const extensions = [];
158
+ let resolvable = false;
159
+ for (const glob of positive) {
160
+ const match = glob.match(TRAILING_EXT_RE);
161
+ if (!match) {
162
+ // Extensionless positive glob — unprovable, therefore permitted.
163
+ resolvable = true;
164
+ break;
165
+ }
166
+ const ext = `.${match[1].toLowerCase()}`;
167
+ if (extensionToLanguage(ext)) {
168
+ resolvable = true;
169
+ break;
170
+ }
171
+ if (!extensions.includes(ext))
172
+ extensions.push(ext);
173
+ }
174
+ if (!resolvable)
175
+ offenders.push({ rule, globs: positive, extensions });
176
+ }
177
+ if (offenders.length === 0)
178
+ return;
179
+ // Deterministic detail line per offender — corpus order, every field the
180
+ // operator needs to act without opening the manifest.
181
+ const detail = offenders
182
+ .map((o) => `'${o.rule.lessonHash}' (${o.rule.lessonHeading}) engine '${o.rule.engine}' fileGlobs [${o.globs.join(', ')}] → unregistered extension(s) ${o.extensions.join(', ')}`)
183
+ .join('; ');
184
+ // Manifest-derived fields (lessonHash, lessonHeading, fileGlobs) are
185
+ // repo-controlled text reaching operator terminals and CI logs — sanitize the
186
+ // whole rendered summary so a corrupted or hostile manifest cannot inject
187
+ // control sequences through the guard's own report. The remedy line is
188
+ // engine-derived only and needs no sanitizing.
189
+ const summary = sanitizeForTerminal(`${offenders.length} active AST rule(s) declare fileGlobs whose extensions have no registered Tree-sitter language, so they can never match and instead abort the entire lint on first contact with a file they claim — ${detail}.`);
190
+ // Three remedies, deliberately un-ranked: the manifest alone cannot tell a
191
+ // permanently-broken rule (`.json`, which no pack will ever register) from an
192
+ // incomplete environment (`.rs`, which a pack provides but which has not been
193
+ // installed/synced here). Leading with "archive it" would misdiagnose the
194
+ // second case, which `rule-engine.ts`'s STALE_MANIFEST path handles well.
195
+ const remedy = `Install or sync the pack that provides the language ('totem sync --packs-only'), archive each rule (set status: 'archived'), or correct its fileGlobs/engine so at least one positive glob targets a registered extension. Registered now: ${registeredExtensions().join(', ')}.`;
196
+ if (astParseMode === 'lenient') {
197
+ // Honor the operator escape (mmnto-ai/totem#1982). `--ast-parse-mode lenient`
198
+ // already means "an AST language the engine cannot parse degrades this run
199
+ // instead of failing it", and a target-mismatched rule is exactly that class
200
+ // — it simply fails at load rather than at dispatch. Without this branch the
201
+ // guard would REMOVE the only escape for a repo whose rules target a pack
202
+ // language it has not installed, leaving the operator no way to lint at all.
203
+ // The rules stay inert either way, so lenient loses no enforcement it had.
204
+ onWarn(`AST rules target-mismatched (--ast-parse-mode lenient): ${summary} ${remedy}`);
205
+ return;
206
+ }
207
+ throw new TotemError('LINT_LESSONS_FAILED', `Enforcement disarmed: ${summary}`, remedy);
208
+ }
3
209
  // ─── Core logic ─────────────────────────────────────
4
210
  /**
5
211
  * Compiled-rules execution engine used by `totem lint`. Loads rules, extracts additions, enriches
@@ -19,17 +225,28 @@ export async function runCompiledRules(options) {
19
225
  state: { hasWarnedShieldContext: false },
20
226
  };
21
227
  const resolvedTotemDir = path.join(options.configRoot ?? cwd, totemDir);
22
- // Load compiled rules
228
+ // Load compiled rules. Thread an `onWarn` that both RECORDS the load-time
229
+ // warning and RENDERS it (log.warn). The lint call site historically omitted
230
+ // onWarn, so a truncated / unreadable manifest dropped even the accounting
231
+ // line and lint passed vacuously (mmnto-ai/totem-strategy#971, Prop 309).
232
+ // Zod-shape errors still THROW from core (a corrupt SCHEMA is never a skip).
23
233
  const rulesPath = path.join(resolvedTotemDir, COMPILED_RULES_FILE);
24
- const rules = loadCompiledRules(rulesPath);
25
- // Empty corpus is a legitimate state for early-adoption / aspirational repos
26
- // (mmnto-ai/totem#1831). Log + skip rather than throwing so CI does not fail
27
- // on repos that have a valid lint configuration but no lessons compiled yet.
28
- // Consumers that need a "rule count > 0" CI guardrail can check
29
- // `compiled-rules.json` length directly in their pipeline.
234
+ let loadWarning;
235
+ const rules = loadCompiledRules(rulesPath, (msg) => {
236
+ loadWarning = msg;
237
+ log.warn(tag, msg);
238
+ });
30
239
  if (rules.length === 0) {
31
- log.info(tag, `No compiled rules at ${totemDir}/${COMPILED_RULES_FILE} skipping (empty-corpus repo). Run 'totem lesson compile' once you have lessons.`);
32
- return {
240
+ // Zero rules can mean two very different things. An empty-corpus /
241
+ // early-adoption repo legitimately skips (mmnto-ai/totem#1831). But a repo
242
+ // that ACTUALLY carries a lesson corpus and still loads zero rules has its
243
+ // entire enforcement gate silently disarmed behind a green exit
244
+ // (mmnto-ai/totem-strategy#971, Prop 309) — a missing manifest, a
245
+ // truncated/unreadable one (onWarn fired above), or a manifest that
246
+ // filtered down to zero ACTIVE rules. Discriminate on corpus-bearing: does
247
+ // the config declare lesson-kind targets that match real files on disk?
248
+ const fs = await import('node:fs');
249
+ const emptyResult = {
33
250
  violations: [],
34
251
  findings: [],
35
252
  rules: [],
@@ -37,7 +254,50 @@ export async function runCompiledRules(options) {
37
254
  regexTimeouts: [],
38
255
  astParseFailures: [],
39
256
  };
257
+ const lessonCount = options.config
258
+ ? await countLessonCorpusFiles(options.config, options.configRoot ?? cwd)
259
+ : 0;
260
+ if (lessonCount > 0) {
261
+ const manifestRel = `${totemDir}/${COMPILED_RULES_FILE}`;
262
+ // This existsSync re-derives what loadCompiledRules saw internally
263
+ // (compiler.ts checks the same path). A manifest CREATED between the two
264
+ // reads would fall through to the zero-active-rules info-skip — an
265
+ // accepted single-shot-CLI race (mmnto-ai/totem#2499 review): the window
266
+ // is microseconds and a concurrent compile implies an imminent re-lint.
267
+ if (!fs.existsSync(rulesPath)) {
268
+ throw new TotemError('LINT_LESSONS_FAILED', `Enforcement disarmed: ${lessonCount} lesson file(s) present but no compiled-rules manifest at ${manifestRel} — 'totem lint' would pass every diff vacuously.`, "Regenerate the manifest with 'totem lesson compile' so the compiled rules are enforced.");
269
+ }
270
+ if (loadWarning) {
271
+ throw new TotemError('LINT_LESSONS_FAILED', `Enforcement disarmed: ${lessonCount} lesson file(s) present but the compiled-rules manifest at ${manifestRel} could not be loaded — ${loadWarning}. 'totem lint' would pass every diff vacuously.`, "Repair or regenerate the manifest with 'totem lesson compile' so the compiled rules are enforced.");
272
+ }
273
+ // Manifest present and loaded validly, but every rule filtered out as
274
+ // inert (archived / pending-verification / untested-against-codebase).
275
+ // Archived-in-place rules preserve telemetry by design — a legitimate
276
+ // lifecycle state, NOT a disarmed gate — so this stays an info-skip, but
277
+ // one that NAMES the zero-active-rules condition instead of masquerading
278
+ // as an empty corpus.
279
+ log.info(tag, `${manifestRel} is present with zero ACTIVE rules (all archived / pending-verification / untested-against-codebase) — skipping. Legitimate lifecycle state, not a disarmed gate.`);
280
+ return emptyResult;
281
+ }
282
+ // Not corpus-bearing — preserve the mmnto-ai/totem#1831 empty-corpus skip
283
+ // exactly (early-adoption / aspirational repos with a valid lint config but
284
+ // no lessons compiled yet). Consumers that need a "rule count > 0" CI
285
+ // guardrail can check `compiled-rules.json` length directly in their
286
+ // pipeline.
287
+ log.info(tag, `No compiled rules at ${totemDir}/${COMPILED_RULES_FILE} — skipping (empty-corpus repo). Run 'totem lesson compile' once you have lessons.`);
288
+ return emptyResult;
40
289
  }
290
+ // mmnto-ai/totem#1982. Resolved here rather than at the AST dispatch site
291
+ // because the rule-load guard below shares the mode (CLI flag > env > strict).
292
+ const effectiveAstParseMode = astParseMode ??
293
+ // totem-context: reading Node's process.env (cleaned by the runtime), not parsing a custom .env file; CRLF/quote-stripping rule doesn't apply.
294
+ (process.env['TOTEM_LINT_AST_PARSE_MODE'] === 'lenient' ? 'lenient' : 'strict');
295
+ // Rule-LOAD validation (mmnto-ai/totem-strategy#971, Prop 309 Class 7). Runs
296
+ // before any diff is touched so a rule whose engine cannot process ANY of its
297
+ // declared globs fails on every run, not on the unlucky run whose diff happens
298
+ // to contain a file it claims. Ordered AFTER the corpus-bearing block so a
299
+ // missing/unloadable manifest still reports its own (more fundamental) cause.
300
+ await assertRulesCanTargetTheirGlobs(rules, effectiveAstParseMode, (msg) => log.warn(tag, msg));
41
301
  log.info(tag, `Running ${rules.length} rules (zero LLM)...`);
42
302
  // Extract additions, exclude compiled rules file, export targets, and binary files
43
303
  const BINARY_EXTENSIONS = new Set([
@@ -172,11 +432,8 @@ export async function runCompiledRules(options) {
172
432
  const astRules = rules.filter((r) => r.engine === 'ast' || r.engine === 'ast-grep');
173
433
  let astViolations = [];
174
434
  const astParseFailures = [];
175
- // mmnto-ai/totem#1982. Resolve effective mode with env override (matches
176
- // the operator escape pattern: CLI flag > env var > default 'strict').
177
- const effectiveAstParseMode = astParseMode ??
178
- // totem-context: reading Node's process.env (cleaned by the runtime), not parsing a custom .env file; CRLF/quote-stripping rule doesn't apply.
179
- (process.env['TOTEM_LINT_AST_PARSE_MODE'] === 'lenient' ? 'lenient' : 'strict');
435
+ // `effectiveAstParseMode` (mmnto-ai/totem#1982) is resolved above the rule-load
436
+ // guard, which shares the same operator escape.
180
437
  if (astRules.length > 0) {
181
438
  log.dim(tag, `Running ${astRules.length} AST rule(s)...`);
182
439
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"run-compiled-rules.js","sourceRoot":"","sources":["../../src/commands/run-compiled-rules.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"run-compiled-rules.js","sourceRoot":"","sources":["../../src/commands/run-compiled-rules.ts"],"names":[],"mappings":"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"}