@mmnto/cli 2.1.0 → 2.2.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.
Files changed (58) hide show
  1. package/dist/commands/doctor-parity-fetch.d.ts +93 -2
  2. package/dist/commands/doctor-parity-fetch.d.ts.map +1 -1
  3. package/dist/commands/doctor-parity-fetch.js +332 -11
  4. package/dist/commands/doctor-parity-fetch.js.map +1 -1
  5. package/dist/commands/doctor-parity-fetch.test.d.ts +6 -0
  6. package/dist/commands/doctor-parity-fetch.test.d.ts.map +1 -1
  7. package/dist/commands/doctor-parity-fetch.test.js +405 -1
  8. package/dist/commands/doctor-parity-fetch.test.js.map +1 -1
  9. package/dist/commands/doctor-parity.d.ts.map +1 -1
  10. package/dist/commands/doctor-parity.js +27 -1
  11. package/dist/commands/doctor-parity.js.map +1 -1
  12. package/dist/commands/doctor-parity.test.js +67 -0
  13. package/dist/commands/doctor-parity.test.js.map +1 -1
  14. package/dist/commands/eject-gate-needle.test.d.ts +2 -0
  15. package/dist/commands/eject-gate-needle.test.d.ts.map +1 -0
  16. package/dist/commands/eject-gate-needle.test.js +48 -0
  17. package/dist/commands/eject-gate-needle.test.js.map +1 -0
  18. package/dist/commands/eject.d.ts +10 -0
  19. package/dist/commands/eject.d.ts.map +1 -1
  20. package/dist/commands/eject.js +67 -12
  21. package/dist/commands/eject.js.map +1 -1
  22. package/dist/commands/eject.test.js +113 -0
  23. package/dist/commands/eject.test.js.map +1 -1
  24. package/dist/commands/gate-install.d.ts +55 -5
  25. package/dist/commands/gate-install.d.ts.map +1 -1
  26. package/dist/commands/gate-install.js +47 -34
  27. package/dist/commands/gate-install.js.map +1 -1
  28. package/dist/commands/gate-install.test.js +514 -56
  29. package/dist/commands/gate-install.test.js.map +1 -1
  30. package/dist/commands/gate.d.ts +24 -9
  31. package/dist/commands/gate.d.ts.map +1 -1
  32. package/dist/commands/gate.js +50 -18
  33. package/dist/commands/gate.js.map +1 -1
  34. package/dist/commands/gate.test.js +74 -3
  35. package/dist/commands/gate.test.js.map +1 -1
  36. package/dist/commands/host-hooks.d.ts +8 -2
  37. package/dist/commands/host-hooks.d.ts.map +1 -1
  38. package/dist/commands/host-hooks.js.map +1 -1
  39. package/dist/commands/init-templates.d.ts +4 -4
  40. package/dist/commands/init-templates.d.ts.map +1 -1
  41. package/dist/commands/init-templates.js +243 -63
  42. package/dist/commands/init-templates.js.map +1 -1
  43. package/dist/commands/init.d.ts.map +1 -1
  44. package/dist/commands/init.js +35 -17
  45. package/dist/commands/init.js.map +1 -1
  46. package/dist/commands/init.test.js +10 -0
  47. package/dist/commands/init.test.js.map +1 -1
  48. package/dist/commands/session-context-journal-select.test.d.ts +2 -0
  49. package/dist/commands/session-context-journal-select.test.d.ts.map +1 -0
  50. package/dist/commands/session-context-journal-select.test.js +95 -0
  51. package/dist/commands/session-context-journal-select.test.js.map +1 -0
  52. package/dist/commands/sync-labels-forms.test.d.ts +33 -0
  53. package/dist/commands/sync-labels-forms.test.d.ts.map +1 -0
  54. package/dist/commands/sync-labels-forms.test.js +325 -0
  55. package/dist/commands/sync-labels-forms.test.js.map +1 -0
  56. package/dist/index.js +2 -2
  57. package/dist/index.js.map +1 -1
  58. package/package.json +2 -2
@@ -3,7 +3,7 @@
3
3
  // ─── Reflex versioning ────────────────────────────────────
4
4
  // Bump REFLEX_VERSION whenever the AI_PROMPT_BLOCK content changes materially.
5
5
  // This allows `totem init` to detect stale blocks and offer upgrades.
6
- export const REFLEX_VERSION = 14;
6
+ export const REFLEX_VERSION = 15;
7
7
  export const REFLEX_START = '<!-- totem:reflexes:start -->';
8
8
  export const REFLEX_END = '<!-- totem:reflexes:end -->';
9
9
  export const REFLEX_VERSION_RE = /<!-- totem:reflexes:version:(\d+) -->/;
@@ -42,6 +42,7 @@ Totem provides CLI commands that map to your development lifecycle. Use them at
42
42
  3. **Before Push:** Run \`totem lint\` — the deterministic enforcement floor (zero LLM, ~2s). **Before PR:** \`totem review\` runs supplementary AI lanes over the diff (~18s) — advisory sensors, not a merge gate; known limits are disclosed in the run output (LLM window truncation on large diffs; non-code files skipped). Your team's own review discipline decides what constitutes the review of record.
43
43
  4. **End of Session:** Run \`totem handoff\` to generate a snapshot for the next agent session with current progress and open threads.
44
44
  5. **Managed hooks self-repair:** \`totem init\` distributes \`.totem/prepare.cjs\` and wires \`package.json\` \`prepare\` to it only when no \`prepare\` script exists. The wrapper runs \`totem hook install\` on every \`pnpm install\`, drift-repairing the managed Claude/Gemini hooks — no manual re-install needed.
45
+ 6. **Action gates (PreToolUse):** a gate installed with \`totem gate install <event>\` is evaluated by the repo-local \`@mmnto/cli\` first and by a \`totem\` on PATH when that is absent; an applicable gate that neither can evaluate fails closed and its message names the exits. A \`Bash|PowerShell\`-matched gate applies to a fresh clone's bootstrap commands (install, build), so bootstrap such a clone from a terminal outside the harness when no \`totem\` is on PATH (mmnto-ai/totem#2799, mmnto-ai/totem#2822).
45
46
 
46
47
  ### Cloud / PR Review Bots
47
48
  [FOR CLOUD BOTS ONLY — e.g., Gemini Code Assist, GitHub Copilot PR Review]
@@ -1195,8 +1196,14 @@ try {
1195
1196
  describeText = (result.stdout || '') + (result.stderr || '');
1196
1197
  process.stdout.write(describeText);
1197
1198
  } else {
1199
+ // The notice is printed in exactly the state where a Bash|PowerShell-matched
1200
+ // gate self-blocks (no repo-local CLI), so it names the property and the exit
1201
+ // (mmnto-ai/totem#2822 ask 3): the wrapper's PATH arm usually carries a fresh
1202
+ // clone, and when it cannot, the bootstrap belongs in a real terminal.
1198
1203
  process.stdout.write(
1199
- '[Totem] @mmnto/cli not installed. Run \`pnpm install\` (or your package manager equivalent) to enable session-start orientation.\\n',
1204
+ '[Totem] @mmnto/cli not installed. Run \`pnpm install\` (or your package manager equivalent) to enable session-start orientation. ' +
1205
+ 'If a Bash|PowerShell-matched gate is installed here it applies to the bootstrap commands and falls back to a totem on PATH; ' +
1206
+ 'with no totem anywhere, bootstrap this clone from a terminal outside the harness.\\n',
1200
1207
  );
1201
1208
  }
1202
1209
  } catch (err) {
@@ -1311,7 +1318,9 @@ export const CLAUDE_SESSION_START_ENTRY = {
1311
1318
  // ONE parameterized PreToolUse wrapper that generalizes the shipped
1312
1319
  // `review-gate.sh` content-hash pattern into a reusable form. It reads the
1313
1320
  // PreToolUse stdin envelope, shells to `totem gate check --event <name>
1314
- // --payload <json>`, parses the emitted `GateVerdict`, and maps
1321
+ // --payload -` with the projected JSON on the child's stdin (never argv: a
1322
+ // Bash command can run to tens of kilobytes and win32 caps a command line at
1323
+ // 32,767 characters), parses the emitted `GateVerdict`, and maps
1315
1324
  // `disposition` → host exit code (ADR-109 §2). One wrapper, N gates: each
1316
1325
  // installed PreToolUse entry points at this same script with a different
1317
1326
  // `--event` arg baked into the `command` string, so new gates need no new
@@ -1359,15 +1368,82 @@ export const CLAUDE_GATE_WRAPPER = `// [totem] auto-generated — Claude Code ac
1359
1368
  //
1360
1369
  // Exit-code contract (LOAD-BEARING — ADR-109 §2; branch ONLY on disposition):
1361
1370
  // 0 = allow | warn | --pilot deny | NOT-APPLICABLE fail-soft
1362
- // (unparseable/non-object envelope, no-declared-subsystem pass-through)
1371
+ // (unparseable/non-object envelope; freeze-check with no declared
1372
+ // subsystem; transport-shield on a tool other than Bash/PowerShell or
1373
+ // with no non-empty string command)
1363
1374
  // 2 = deny (--strict, Claude block convention)
1364
- // | APPLICABLE-gate-not-evaluable fail-closed (missing CLI, non-zero
1365
- // \`gate check\`, unparseable verdict, or unknown disposition)
1375
+ // | APPLICABLE-gate-not-evaluable fail-closed (no CLI resolvable
1376
+ // (repo-local, then PATH), non-zero \`gate check\`, unparseable verdict,
1377
+ // or unknown disposition)
1378
+ // | an --event this wrapper has no payload projection for (a baked event
1379
+ // it cannot project is an applicable gate it cannot evaluate)
1366
1380
  'use strict';
1367
1381
 
1368
1382
  const { spawnSync } = require('child_process');
1369
- const { existsSync } = require('fs');
1370
- const { join } = require('path');
1383
+ const { existsSync, realpathSync } = require('fs');
1384
+ const { basename, delimiter, dirname, join } = require('path');
1385
+
1386
+ // ─── PATH FALLBACK for the Totem CLI (mmnto-ai/totem#2822) ──────────────
1387
+ // A \`Bash|PowerShell\`-matched gate applies to the very commands that CREATE
1388
+ // the repo-local CLI on a fresh clone (\`pnpm install\`, then \`pnpm build\` in
1389
+ // this monorepo), so with a repo-local-only resolution the gate blocks its own
1390
+ // bootstrap — and blocks the cure it prints. This is a RESOLUTION arm, not an
1391
+ // exemption: an applicable gate that cannot be evaluated by EITHER arm still
1392
+ // fails closed (mmnto-ai/totem#2799 ruling, Tenet 4).
1393
+ //
1394
+ // A session started in a fresh worktree has no node_modules at its cwd and
1395
+ // takes this arm; with no global CLI it fails closed — the ruling, not a bug.
1396
+ //
1397
+ // The repo-local pinned dist stays FIRST — the pinned-beats-ambient ordering of
1398
+ // ADR-072 § 2; tiers 1, 3 and 5 are out of scope for a hook that must not shell
1399
+ // out. This runs only when the pinned dist is absent. Two npm-global layouts
1400
+ // are probed per PATH dir, first hit wins:
1401
+ // (a) <dir>/node_modules/@mmnto/cli/dist/index.js — the win32 layout, where
1402
+ // the \`totem.cmd\` shim sits beside \`node_modules\`;
1403
+ // (b) <dir>/totem realpath'd — the POSIX npm-global symlink, taken only when
1404
+ // it resolves to an existing \`.js\` file (a shell shim resolves to an
1405
+ // extensionless script and is correctly skipped).
1406
+ // A dir that yields neither is skipped; nothing here throws.
1407
+ //
1408
+ // PATH is trusted here at exactly the level \`node\` itself already is: the
1409
+ // settings.json entry invokes this hook as a bare \`node\`, so whoever controls
1410
+ // PATH controls the interpreter before this line ever runs.
1411
+ //
1412
+ // Returns { entry, display }: \`entry\` is the absolute path to spawn, \`display\`
1413
+ // a NON-resolvable rendering (basenames only) for the stderr provenance line —
1414
+ // hook stderr lands in transcripts that get pasted into issues, so it never
1415
+ // carries a user-profile path.
1416
+ function resolveCliFromPath() {
1417
+ const raw = typeof process.env.PATH === 'string' ? process.env.PATH : '';
1418
+ const dirs = raw.split(delimiter);
1419
+ for (let i = 0; i < dirs.length; i++) {
1420
+ const dir = dirs[i];
1421
+ if (!dir) continue;
1422
+ const packaged = join(dir, 'node_modules', '@mmnto', 'cli', 'dist', 'index.js');
1423
+ if (existsSync(packaged)) {
1424
+ return {
1425
+ entry: packaged,
1426
+ display: basename(dir) + '/node_modules/@mmnto/cli/dist/index.js',
1427
+ };
1428
+ }
1429
+ const shim = join(dir, 'totem');
1430
+ if (existsSync(shim)) {
1431
+ try {
1432
+ const real = realpathSync(shim);
1433
+ if (typeof real === 'string' && real.endsWith('.js') && existsSync(real)) {
1434
+ return {
1435
+ entry: real,
1436
+ display:
1437
+ basename(dir) + '/totem -> ' + basename(dirname(real)) + '/' + basename(real),
1438
+ };
1439
+ }
1440
+ } catch (err) {
1441
+ // An unreadable link is not a resolution — keep scanning the PATH.
1442
+ }
1443
+ }
1444
+ }
1445
+ return null;
1446
+ }
1371
1447
 
1372
1448
  // ─── Parse baked args (--event <name>, optional --pilot / --strict) ─────
1373
1449
  // The tier is read ONLY from argv (baked into the installed command at
@@ -1418,68 +1494,159 @@ process.stdin.on('end', () => {
1418
1494
  const input =
1419
1495
  typeof parsed.tool_input === 'object' && parsed.tool_input !== null ? parsed.tool_input : {};
1420
1496
 
1421
- // ─── THE EMPTY-SUBSYSTEM GUARDRAIL ────────────────────────────────────
1422
- // freeze-check's predicate is on a DECLARED subsystem. A normal Edit/Write
1423
- // carries tool_input.file_path (a path), NOT a subsystem. With no declared
1424
- // subsystem, NO GATE APPLIES pass through (exit 0). Do NOT shell out — a
1425
- // blanket fail-closed here would block every ordinary edit.
1426
- const declaredSubsystem =
1427
- typeof input.subsystem === 'string' && input.subsystem.trim() !== ''
1428
- ? input.subsystem.trim()
1429
- : '';
1430
- if (declaredSubsystem === '') {
1431
- process.exit(0);
1497
+ // ─── PER-EVENT PAYLOAD PROJECTION ─────────────────────────────────────
1498
+ // Each gate reads a DIFFERENT slice of the PreToolUse envelope, so the
1499
+ // projection branches on the baked --event. Every branch owns its own
1500
+ // NOT-APPLICABLE test the point past which a gate genuinely applies and
1501
+ // any evaluation failure must fail CLOSED.
1502
+ //
1503
+ // event | applies when | payload
1504
+ // -----------------|----------------------------------|---------------------------
1505
+ // freeze-check | tool_input.subsystem is a | { subsystem }
1506
+ // | non-empty string |
1507
+ // transport-shield | tool_name is Bash or PowerShell | { tool, command, platform }
1508
+ // | AND tool_input.command is a |
1509
+ // | non-empty string |
1510
+ // (anything else) | — no projection → fail closed | —
1511
+ let payload = '';
1512
+
1513
+ if (event === 'freeze-check') {
1514
+ // THE EMPTY-SUBSYSTEM GUARDRAIL: freeze-check's predicate is on a DECLARED
1515
+ // subsystem. A normal Edit/Write carries tool_input.file_path (a path), NOT
1516
+ // a subsystem. With no declared subsystem, NO GATE APPLIES → pass through
1517
+ // (exit 0). Do NOT shell out — a blanket fail-closed here would block every
1518
+ // ordinary edit.
1519
+ const declaredSubsystem =
1520
+ typeof input.subsystem === 'string' && input.subsystem.trim() !== ''
1521
+ ? input.subsystem.trim()
1522
+ : '';
1523
+ if (declaredSubsystem === '') {
1524
+ process.exit(0);
1525
+ }
1526
+ payload = JSON.stringify({ subsystem: declaredSubsystem });
1527
+ } else if (event === 'transport-shield') {
1528
+ // transport-shield's predicate is on a SHELL COMMAND. Anything that is not
1529
+ // a Bash/PowerShell invocation carrying a command string is NOT an
1530
+ // applicable gate → pass through (exit 0), mirroring the guardrail above.
1531
+ // The installed matcher is the CLI's own, so a foreign tool_name here means
1532
+ // a hand-edited settings entry, not a shape to judge.
1533
+ const tool = parsed.tool_name;
1534
+ if (tool !== 'Bash' && tool !== 'PowerShell') {
1535
+ process.exit(0);
1536
+ }
1537
+ if (typeof input.command !== 'string' || input.command.trim() === '') {
1538
+ process.exit(0);
1539
+ }
1540
+ payload = JSON.stringify({
1541
+ tool: tool,
1542
+ command: input.command,
1543
+ platform: process.platform,
1544
+ });
1545
+ } else {
1546
+ // A baked --event this wrapper cannot project is an APPLICABLE gate it
1547
+ // cannot evaluate → fail closed (ADR-109). Reinstalling refreshes the
1548
+ // wrapper (\`totem gate install\` drift-repairs the bounded region).
1549
+ process.stderr.write(
1550
+ '[totem gate-wrapper] no payload projection for event "' + event + '"; failing closed.\\n',
1551
+ );
1552
+ process.exit(2);
1432
1553
  }
1433
1554
 
1434
- // A gate genuinely applies. Build the --payload from the declared fields.
1435
- // NOTE: this payload projection is freeze-check-shaped (subsystem-only). The
1436
- // wrapper is --event-parameterized, but the payload it builds is currently
1437
- // freeze-check-specific; a future gate needing a different payload field must
1438
- // extend this projection (e.g. branch on \`event\`).
1439
- const payload = JSON.stringify({ subsystem: declaredSubsystem });
1440
-
1441
- // Resolve the LOCAL Totem CLI (the global \`totem\` binary may be stale and
1442
- // missing deps — the known repo gotcha). Invoke node on the installed dist
1443
- // entry.
1555
+ // Resolve the Totem CLI: the repo-local pinned dist FIRST (a global \`totem\`
1556
+ // may be stale and missing deps the known repo gotcha; the
1557
+ // pinned-beats-ambient ordering of ADR-072 § 2, Tenet 14), then a \`totem\` on
1558
+ // PATH as a FALLBACK (mmnto-ai/totem#2822 the bootstrap self-block above).
1559
+ // Invoke node on whichever dist entry resolved.
1444
1560
  //
1445
- // FAIL-CLOSED on a missing CLI: we are PAST the empty-subsystem guardrail, so
1446
- // a gate genuinely APPLIES here. freeze-check has NO commit-time hard floor
1447
- // (unlike PreWriteShield, whose fail-soft is backed by \`totem-lint\` at
1448
- // commit), so an APPLICABLE gate that cannot be evaluated for ANY reason
1449
- // (missing CLI OR corrupt freeze.json) must fail closed not silently allow
1450
- // (guardrail rule + Tenet 4 fail-closed). Fail-SOFT (exit 0) is reserved for
1451
- // genuinely NOT-APPLICABLE inputs (unparseable/non-object envelope, no
1452
- // declared subsystem), all of which already returned above.
1453
- const cliPath = join(process.cwd(), 'node_modules', '@mmnto', 'cli', 'dist', 'index.js');
1454
- if (!existsSync(cliPath)) {
1561
+ // FAIL-CLOSED when NEITHER arm resolves: we are PAST the per-event
1562
+ // applicability guardrail (freeze-check: a declared subsystem;
1563
+ // transport-shield: a Bash or PowerShell command), so a gate genuinely
1564
+ // APPLIES here. Neither gate has a commit-time hard floor (unlike
1565
+ // PreWriteShield, whose fail-soft is backed by \`totem-lint\` at commit), so an
1566
+ // APPLICABLE gate that cannot be evaluated for ANY reason (no CLI anywhere OR
1567
+ // a broken source) must fail closed — not silently allow (guardrail rule +
1568
+ // Tenet 4 fail-closed). Fail-SOFT (exit 0) is reserved for genuinely
1569
+ // NOT-APPLICABLE inputs (unparseable/non-object envelope, no declared
1570
+ // subsystem, no shell command), all of which already returned above.
1571
+ const localCliPath = join(process.cwd(), 'node_modules', '@mmnto', 'cli', 'dist', 'index.js');
1572
+ let cliPath = '';
1573
+ // Which arm resolved — 'repo-local' or 'PATH' — for the provenance line the
1574
+ // fail-closed arms below disclose. Empty until one resolves.
1575
+ let arm = '';
1576
+ // The PATH arm's non-resolvable rendering of what it found (basenames only).
1577
+ let cliDisplay = '';
1578
+ if (existsSync(localCliPath)) {
1579
+ cliPath = localCliPath;
1580
+ arm = 'repo-local';
1581
+ } else {
1582
+ const fromPath = resolveCliFromPath();
1583
+ if (fromPath) {
1584
+ cliPath = fromPath.entry;
1585
+ cliDisplay = fromPath.display;
1586
+ arm = 'PATH';
1587
+ }
1588
+ }
1589
+
1590
+ if (!cliPath) {
1591
+ // The exits named here must be exits the gate does NOT block: "reinstall
1592
+ // totem" and \`totem eject\` are Bash commands a Bash|PowerShell gate blocks
1593
+ // with this very message (mmnto-ai/totem#2822). They are ORDERED: the
1594
+ // editor path still needs the bootstrap before the gate can be reinstalled.
1455
1595
  process.stderr.write(
1456
1596
  '[totem gate] ' +
1457
1597
  event +
1458
- ' applies but the totem CLI is not resolvable; failing closed. ' +
1459
- 'Reinstall totem or run \`totem eject\` to remove the gate.\\n',
1598
+ ' applies but no totem CLI is resolvable ' +
1599
+ '(repo-local node_modules/@mmnto/cli/dist/index.js absent; no totem on PATH); ' +
1600
+ 'failing closed. Exits: bootstrap from a terminal OUTSIDE the harness ' +
1601
+ '(pnpm install and pnpm build, or npm i -g @mmnto/cli); or remove this ' +
1602
+ "gate's entry from .claude/settings.json with the editor, bootstrap, " +
1603
+ 'then re-run totem gate install ' +
1604
+ event +
1605
+ '.\\n',
1460
1606
  );
1461
1607
  process.exit(2);
1462
1608
  }
1463
1609
 
1610
+ // The payload rides on the child's STDIN (\`--payload -\`), never argv: a Bash
1611
+ // command can run to tens of kilobytes and win32 caps a command line at
1612
+ // 32,767 characters — an argv payload past it fails the spawn with
1613
+ // ENAMETOOLONG and would land in the fail-closed arm below with nothing
1614
+ // broken (mmnto-ai/totem#2799, pass 3).
1464
1615
  const result = spawnSync(
1465
1616
  process.execPath,
1466
- [cliPath, 'gate', 'check', '--event', event, '--payload', payload],
1467
- { encoding: 'utf-8', timeout: 30000 },
1617
+ [cliPath, 'gate', 'check', '--event', event, '--payload', '-'],
1618
+ { encoding: 'utf-8', timeout: 30000, input: payload },
1468
1619
  );
1469
1620
 
1621
+ // Provenance for the PATH fallback arm (mmnto-ai/totem#2822): a CLI older
1622
+ // than 2.2.0 has no \`gate check --payload -\` and lands in the fail-closed
1623
+ // arms below (unknown option → non-zero exit, or nothing on stdout). The
1624
+ // BEHAVIOUR is unchanged — exit 2 either way — the line only names WHICH CLI
1625
+ // evaluated and how to update it. Empty on the repo-local arm. It prints the
1626
+ // basename rendering, never the absolute entry: this is transcript-bound text.
1627
+ const armNote =
1628
+ arm === 'PATH'
1629
+ ? 'evaluated by the PATH CLI at ' +
1630
+ cliDisplay +
1631
+ "; a CLI older than 2.2.0 lacks 'gate check --payload -' — " +
1632
+ 'update it: npm i -g @mmnto/cli@latest\\n'
1633
+ : '';
1634
+
1470
1635
  // ─── FAIL-CLOSED ──────────────────────────────────────────────────────
1471
- // A gate genuinely applies (a declared subsystem was present) and the
1472
- // evaluation itself failed (non-zero exit: corrupt freeze.json, spawn
1473
- // error, etc.). Never silently allow when an applicable gate's source is
1474
- // broken exit 2. (No-declared-subsystem already returned exit 0 above,
1475
- // so this only blocks when a subsystem was actually declared.)
1636
+ // A gate genuinely applies (the per-event projection above found its input:
1637
+ // a declared subsystem, or a Bash/PowerShell command) and the evaluation
1638
+ // itself failed (non-zero exit: corrupt freeze.json, an invalid payload,
1639
+ // spawn error, etc.). Never silently allow when an applicable gate's source
1640
+ // is broken exit 2. (Not-applicable envelopes already returned exit 0
1641
+ // above, so this only blocks when the gate's input was actually present.)
1476
1642
  if (result.error || typeof result.status !== 'number' || result.status !== 0) {
1477
1643
  process.stderr.write(
1478
1644
  '[totem gate-wrapper] gate "' +
1479
1645
  event +
1480
1646
  '" evaluation failed (source broken or unavailable) — blocking (fail-closed).\\n' +
1481
1647
  (result.stderr || (result.error ? String(result.error.message || result.error) : '')) +
1482
- '\\n',
1648
+ '\\n' +
1649
+ armNote,
1483
1650
  );
1484
1651
  process.exit(2);
1485
1652
  }
@@ -1491,7 +1658,7 @@ process.stdin.on('end', () => {
1491
1658
  // The command emitted unparseable stdout despite a 0 exit — an applicable
1492
1659
  // gate whose verdict we cannot read is a broken source → fail-closed.
1493
1660
  process.stderr.write(
1494
- '[totem gate-wrapper] gate "' + event + '" emitted unparseable verdict — blocking (fail-closed).\\n',
1661
+ '[totem gate-wrapper] gate "' + event + '" emitted unparseable verdict — blocking (fail-closed).\\n' + armNote,
1495
1662
  );
1496
1663
  process.exit(2);
1497
1664
  }
@@ -1504,6 +1671,10 @@ process.stdin.on('end', () => {
1504
1671
  (verdict && verdict.provenance ? ' [' + JSON.stringify(verdict.provenance) + ']' : '');
1505
1672
 
1506
1673
  if (disposition === 'allow') {
1674
+ // Deliberately SILENT on the PATH arm too: a provenance line on every
1675
+ // allowed Bash command would be transcript noise on the common path, and
1676
+ // the operator already learned the property at install time (the
1677
+ // \`gate install\` disclosure) — stderr here is reserved for what blocks.
1507
1678
  process.exit(0);
1508
1679
  }
1509
1680
  if (disposition === 'warn') {
@@ -1515,29 +1686,38 @@ process.stdin.on('end', () => {
1515
1686
  process.exit(tier === 'pilot' ? 0 : 2);
1516
1687
  }
1517
1688
 
1518
- // Unknown disposition from an applicable gate — fail-closed.
1689
+ // Unknown disposition from an applicable gate — fail-closed. The provenance
1690
+ // note rides here too, so all four not-evaluable causes in the exit-code
1691
+ // contract above disclose which arm evaluated.
1519
1692
  process.stderr.write(
1520
- '[totem gate-wrapper] gate "' + event + '" returned unknown disposition "' + disposition + '" — blocking (fail-closed).\\n',
1693
+ '[totem gate-wrapper] gate "' + event + '" returned unknown disposition "' + disposition + '" — blocking (fail-closed).\\n' + armNote,
1521
1694
  );
1522
1695
  process.exit(2);
1523
1696
  });
1524
1697
  ${TOTEM_FILE_END}
1525
1698
  `;
1526
- // The PreToolUse entry constant for the freeze-check gate. The \`--event\`
1527
- // is baked into the command string per-entry (one wrapper, N gates = N
1528
- // entries pointing at the same script with different --event args).
1529
- // Matches the \`Write|Edit\` matcher so the wrapper sees every write the
1530
- // empty-subsystem guardrail (in the wrapper) is what keeps ordinary edits
1531
- // passing through. Installed into committed \`.claude/settings.json\`
1532
- // (team-level governance gate opt-in is repo policy, Tenet 12).
1699
+ // The PreToolUse entry constant for the freeze-check gate the EXEMPLAR of the
1700
+ // installed shape, not a template every gate is stamped from. The \`--event\` is
1701
+ // baked into the command string per-entry (one wrapper, N gates = N entries
1702
+ // pointing at the same script with different --event args).
1703
+ //
1704
+ // SOURCE OF TRUTH for the MATCHER is the core gate registry
1705
+ // (mmnto-ai/totem#2799): \`knownGates()\` carries each gate's own matcher, the
1706
+ // caller resolves it, and \`gateEntry()\` writes THAT — freeze-check under
1707
+ // \`Write|Edit\` (so the wrapper sees every write; the empty-subsystem guardrail
1708
+ // is what keeps ordinary edits passing through), transport-shield under
1709
+ // \`Bash|PowerShell\`. This constant stays the \`Write|Edit\` freeze-check
1710
+ // exemplar and is never consulted for another gate's matcher.
1533
1711
  //
1534
1712
  // SOURCE OF TRUTH for the ACTUAL installed command is
1535
1713
  // gate-install.ts \`gateCommand(event, tier)\` — it builds the per-gate,
1536
1714
  // per-tier string at install time. This constant supplies ONLY the canonical
1537
- // \`matcher\` and hook \`type\` (the fields \`gateEntry()\` reads); its \`command\`
1538
- // here mirrors the DEFAULT install (freeze-check at the default \`--strict\`
1539
- // tier) so a reader sees exactly what a default \`totem gate install\` bakes,
1540
- // not a tier-less never-installed string.
1715
+ // hook \`type\` (the one field \`gateEntry()\` still reads); its \`matcher\` and
1716
+ // \`command\` here mirror the DEFAULT freeze-check install (at the default
1717
+ // \`--strict\` tier) so a reader sees exactly what a default
1718
+ // \`totem gate install freeze-check\` bakes, not a tier-less never-installed
1719
+ // string. Installed into committed \`.claude/settings.json\` (team-level
1720
+ // governance — gate opt-in is repo policy, Tenet 12).
1541
1721
  export const CLAUDE_GATE_WRAPPER_ENTRY = {
1542
1722
  matcher: 'Write|Edit',
1543
1723
  hooks: [
@@ -1 +1 @@
1
- {"version":3,"file":"init-templates.js","sourceRoot":"","sources":["../../src/commands/init-templates.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"init-templates.js","sourceRoot":"","sources":["../../src/commands/init-templates.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAOA,OAAO,EAKL,KAAK,eAAe,EACrB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAGL,KAAK,SAAS,EAEd,KAAK,mBAAmB,EACzB,MAAM,kBAAkB,CAAC;AA+B1B,YAAY,EAAE,UAAU,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACxE,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACxE,OAAO,EACL,eAAe,EACf,cAAc,EACd,uBAAuB,EACvB,cAAc,GACf,MAAM,qBAAqB,CAAC;AAQ7B,eAAO,MAAM,6BAA6B,2BAA2B,CAAC;AAItE,wBAAsB,gBAAgB,IAAI,OAAO,CAAC;IAChD,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC,CAsBD;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,YAAY,CAC1B,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EACf,MAAM,GAAE,MAA0B,EAClC,SAAS,CAAC,EAAE,MAAM,GACjB;IAAE,MAAM,EAAE,SAAS,GAAG,QAAQ,GAAG,SAAS,GAAG,WAAW,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,CAmD1E;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,MAAM,GAAG;IACvD,MAAM,EAAE,OAAO,GAAG,QAAQ,GAAG,UAAU,GAAG,SAAS,GAAG,aAAa,GAAG,cAAc,CAAC;IACrF,mGAAmG;IACnG,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd,CA2EA;AAID;;;;;;;;;;;;;GAaG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAa1E;AAED,wBAAsB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,EAAE,CAAC,CAwHpF;AA2CD;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,eAAe,CAIrE;AAED;;;;;;;;GAQG;AACH,wBAAgB,yBAAyB,CAAC,QAAQ,EAAE,MAAM,GAAG,eAAe,CAI3E;AAED;;;;;;;GAOG;AACH,wBAAgB,0BAA0B,CAAC,QAAQ,EAAE,MAAM,GAAG,eAAe,CAI5E;AAoHD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,MAAM,EAChB,gBAAgB,EAAE,MAAM,EACxB,OAAO,CAAC,EAAE;IAAE,KAAK,CAAC,EAAE,OAAO,CAAA;CAAE,GAC5B;IACD,MAAM,EAAE,SAAS,GAAG,WAAW,GAAG,WAAW,GAAG,WAAW,CAAC;IAC5D;;+CAE2C;IAC3C,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,GAAG,CAAC,EAAE,MAAM,CAAC;CACd,CAwDA;AA2JD,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACpC,IAAI,CAAC,EAAE;IACL;6EACyE;IACzE,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,GACA;IACD,MAAM,EAAE,SAAS,GAAG,QAAQ,GAAG,SAAS,CAAC;IACzC;oFACgF;IAChF,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd,CA4DA;AAED;;;;;;GAMG;AACH,wBAAsB,sBAAsB,CAC1C,YAAY,EAAE,MAAM,EACpB,EAAE,EAAE,OAAO,wBAAwB,EAAE,SAAS,EAC9C,UAAU,CAAC,EAAE,SAAS,EAAE,EACxB,WAAW,GAAE,OAAsC,GAClD,OAAO,CAAC,WAAW,GAAG,QAAQ,GAAG,SAAS,CAAC,CAqE7C;AAID,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,UAAU,GAAG,SAAS,CAAC;AAE9D,kFAAkF;AAClF,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,YAAY,CAchE;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAE,CAmDpF;AAgCD;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,KAAK,GAAG,MAAM,GAAG,QAAQ,CAK9E;AAED,wBAAsB,WAAW,CAAC,OAAO,CAAC,EAAE;IAC1C,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB;;;8EAG0E;IAC1E,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B;;;wEAGoE;IACpE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;oEAEgE;IAChE,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;mEAG+D;IAC/D,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,2CAA2C;IAC3C,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,GAAG,OAAO,CAAC,IAAI,CAAC,CAs2BhB"}
1
+ {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
@@ -1604,18 +1604,22 @@ export default {
1604
1604
  // --- Always run: action-gate install (--gates=, PR-C mmnto-ai/totem#2048) ---
1605
1605
  // Thin sugar that is INTENTIONALLY outside the bare-mode branch: gate
1606
1606
  // opt-in is an independent, explicit flag (it works in bare repos too).
1607
- // Parses the comma-list (or `all`), validates each member against
1608
- // knownGateEvents() (fail loud on unknown), and routes through the SAME
1609
- // installGates() path the `gate install` verb uses no second copy of
1610
- // the merge logic.
1607
+ // Parses the comma-list (or `all`), resolves each member against the core
1608
+ // registry via resolveGates() (fail loud on unknown; the gate's PreToolUse
1609
+ // matcher comes back with it), and routes through the SAME installGates()
1610
+ // path the `gate install` verb uses — no second copy of the merge logic.
1611
1611
  if (options?.gates) {
1612
- const { resolveGateEvents } = await import('./gate.js');
1613
- const { installGates } = await import('./gate-install.js');
1612
+ const { resolveGates } = await import('./gate.js');
1613
+ const { bashMatchedGateDisclosure, installGates } = await import('./gate-install.js');
1614
1614
  const { TotemError, knownGateEvents } = await import('@mmnto/totem');
1615
1615
  const requested = options.gates.trim();
1616
- let gateEvents;
1616
+ // `{ event, matcher }` pairs, resolved through the core registry by
1617
+ // `resolveGates` — the same source `gate install` reads, so init can never
1618
+ // install a gate under a matcher the registry does not declare
1619
+ // (mmnto-ai/totem#2799).
1620
+ let gates;
1617
1621
  if (requested.toLowerCase() === 'all') {
1618
- gateEvents = await resolveGateEvents({ all: true });
1622
+ gates = [...(await resolveGates({ all: true }))];
1619
1623
  }
1620
1624
  else {
1621
1625
  const names = requested
@@ -1624,30 +1628,30 @@ export default {
1624
1628
  .filter((n) => n.length > 0);
1625
1629
  // Empty after parse/trim/filter (e.g. `--gates=,` or whitespace-only):
1626
1630
  // fail loud rather than scaffolding an orphan wrapper with no entry.
1627
- // Restores parity with the verb's resolveGateEvents no-selection
1628
- // fail-loud (no default-install).
1631
+ // Restores parity with the verb's resolveGates no-selection fail-loud
1632
+ // (no default-install).
1629
1633
  if (names.length === 0) {
1630
1634
  throw new TotemError('GATE_INVALID', 'No gate selected in --gates=.', `Pass --gates=all or one of: ${knownGateEvents().join(', ')}.`);
1631
1635
  }
1632
- gateEvents = [];
1636
+ gates = [];
1633
1637
  for (const name of names) {
1634
- // resolveGateEvents validates a single name against the registry
1635
- // and throws (fail-loud) on unknown — no default-install.
1636
- const [validated] = await resolveGateEvents({ name });
1637
- // resolveGateEvents returns a non-empty array or throws, so this
1638
+ // resolveGates validates a single name against the registry and
1639
+ // throws (fail-loud) on unknown — no default-install.
1640
+ const [validated] = await resolveGates({ name });
1641
+ // resolveGates returns a non-empty array or throws, so this
1638
1642
  // never fires today — but guard explicitly (no fragile `!`): fail
1639
1643
  // loud rather than push `undefined` if it ever returns empty.
1640
1644
  if (!validated) {
1641
1645
  throw new TotemError('GATE_INVALID', `Gate "${name}" did not resolve.`, 'This is an internal error — the gate registry returned no event for a validated name.');
1642
1646
  }
1643
- gateEvents.push(validated);
1647
+ gates.push(validated);
1644
1648
  }
1645
1649
  }
1646
1650
  // Tier is derived from the existing init options (pilot vs strict) and
1647
1651
  // BAKED into the installed command at install time (the wrapper reads it
1648
1652
  // ONLY from argv — no env override). Default install bakes --strict.
1649
1653
  const gateTier = options?.pilot ? 'pilot' : 'strict';
1650
- const gateResults = installGates(cwd, gateEvents, gateTier);
1654
+ const gateResults = installGates(cwd, gates, gateTier);
1651
1655
  for (const result of gateResults) {
1652
1656
  if (result.err) {
1653
1657
  log.error('Totem Error', `Gate install failed for ${result.file}: ${result.err}`);
@@ -1673,6 +1677,20 @@ export default {
1673
1677
  });
1674
1678
  }
1675
1679
  }
1680
+ // ─── Shell-matcher disclosure (mmnto-ai/totem#2822) ───────────────
1681
+ // The `gate install` verb prints this for a Bash-matched gate; init
1682
+ // installs through the SAME installer but prints its own rows, so
1683
+ // without this the property is silently dropped on the `--gates=` path.
1684
+ // Driven off the resolved specs (one line per gate, not per result row)
1685
+ // and suppressed for a gate whose install actually errored.
1686
+ const failedGates = new Set(gateResults.filter((result) => result.err && result.event).map((result) => result.event));
1687
+ for (const gate of gates) {
1688
+ if (failedGates.has(gate.event))
1689
+ continue;
1690
+ const disclosure = bashMatchedGateDisclosure(gate);
1691
+ if (disclosure)
1692
+ log.dim('Totem', disclosure);
1693
+ }
1676
1694
  }
1677
1695
  // --- Print summary ---
1678
1696
  if (summary.length > 0) {