@mmnto/cli 1.32.0 → 1.33.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.
@@ -2,7 +2,7 @@ import * as fs from 'node:fs';
2
2
  import * as path from 'node:path';
3
3
  import { z } from 'zod';
4
4
  import { AI_TOOLS, } from './init-detect.js';
5
- import { AI_PROMPT_BLOCK, CLAUDE_PRETOOLUSE_ENTRY, CLAUDE_PREWRITESHIELD, CLAUDE_PREWRITESHIELD_ENTRY, GEMINI_BEFORE_TOOL, GEMINI_SESSION_START, GEMINI_SKILL, LEGACY_SENTINEL, REFLEX_END, REFLEX_START, REFLEX_VERSION, REFLEX_VERSION_RE, TOTEM_FILE_MARKER, } from './init-templates.js';
5
+ import { AI_PROMPT_BLOCK, CLAUDE_PRETOOLUSE_ENTRY, CLAUDE_PREWRITESHIELD, CLAUDE_PREWRITESHIELD_ENTRY, CLAUDE_SESSION_START, CLAUDE_SESSION_START_ENTRY, GEMINI_BEFORE_TOOL, GEMINI_SESSION_START, GEMINI_SKILL, LEGACY_SENTINEL, REFLEX_END, REFLEX_START, REFLEX_VERSION, REFLEX_VERSION_RE, TOTEM_FILE_MARKER, } from './init-templates.js';
6
6
  export { buildNpxCommand, detectEmbeddingTier } from './init-detect.js';
7
7
  export { AI_PROMPT_BLOCK, generateConfig, generateConfigForFormat, REFLEX_VERSION, } from './init-templates.js';
8
8
  /**
@@ -60,18 +60,27 @@ const HookCommandSchema = z.union([
60
60
  z.string(),
61
61
  z.object({ type: z.string(), command: z.string() }).passthrough(),
62
62
  ]);
63
+ const PreToolUseEntrySchema = z
64
+ .object({
65
+ matcher: z.string().optional(),
66
+ hooks: z.array(HookCommandSchema).optional(),
67
+ })
68
+ .passthrough();
69
+ const SessionStartEntrySchema = z
70
+ .object({
71
+ // SessionStart entries do NOT carry a `matcher` field (unlike
72
+ // PreToolUse entries). Adding it here would silently drop unknown
73
+ // shapes; passthrough preserves any future fields without breaking
74
+ // round-trip read/write.
75
+ hooks: z.array(HookCommandSchema).optional(),
76
+ })
77
+ .passthrough();
63
78
  const ClaudeSettingsSchema = z
64
79
  .object({
65
80
  hooks: z
66
81
  .object({
67
- PreToolUse: z
68
- .array(z
69
- .object({
70
- matcher: z.string().optional(),
71
- hooks: z.array(HookCommandSchema).optional(),
72
- })
73
- .passthrough())
74
- .optional(),
82
+ PreToolUse: z.array(PreToolUseEntrySchema).optional(),
83
+ SessionStart: z.array(SessionStartEntrySchema).optional(),
75
84
  })
76
85
  .passthrough()
77
86
  .optional(),
@@ -91,20 +100,29 @@ function hasPreWriteShield(entry) {
91
100
  return entry.includes('PreWriteShield');
92
101
  return entry.command.includes('PreWriteShield');
93
102
  }
103
+ /** Check whether a hook entry already contains a SessionStart.cjs reference. */
104
+ function hasTotemSessionStart(entry) {
105
+ if (typeof entry === 'string')
106
+ return entry.includes('SessionStart.cjs');
107
+ return entry.command.includes('SessionStart.cjs');
108
+ }
94
109
  /**
95
- * Shared merge logic for installing a single PreToolUse entry into a
96
- * Claude settings JSON file (settings.local.json or settings.json).
110
+ * Shared merge logic for installing a single hook entry into a Claude
111
+ * settings JSON file (`settings.local.json` or `settings.json`) under
112
+ * `hooks.<key>`. Both `PreToolUse` and `SessionStart` lifecycles share
113
+ * the same read → safeparse → idempotency probe → append → write shape;
114
+ * this is the single source of truth.
97
115
  *
98
- * Idempotent: returns 'skipped' if `alreadyInstalled(parsed)` returns true.
116
+ * Idempotent: returns `'skipped'` if `alreadyInstalled(parsed)` is true.
99
117
  */
100
- function mergeClaudePreToolUseEntry(filePath, entry, alreadyInstalled) {
118
+ function mergeClaudeHooksKey(filePath, hookKind, entry, alreadyInstalled) {
101
119
  try {
102
120
  const dir = path.dirname(filePath);
103
121
  if (!fs.existsSync(dir)) {
104
122
  fs.mkdirSync(dir, { recursive: true });
105
123
  }
106
124
  const fileName = path.basename(filePath);
107
- const fullConfig = { hooks: { PreToolUse: [entry] } };
125
+ const fullConfig = { hooks: { [hookKind]: [entry] } };
108
126
  if (!fs.existsSync(filePath)) {
109
127
  fs.writeFileSync(filePath, JSON.stringify(fullConfig, null, 2) + '\n', 'utf-8');
110
128
  return { action: 'created' };
@@ -133,9 +151,9 @@ function mergeClaudePreToolUseEntry(filePath, entry, alreadyInstalled) {
133
151
  if (alreadyInstalled(parsed)) {
134
152
  return { action: 'skipped' };
135
153
  }
136
- const preToolUse = parsed.hooks?.PreToolUse ?? [];
154
+ const existing = parsed.hooks?.[hookKind] ?? [];
137
155
  const hooks = parsed.hooks ?? {};
138
- hooks.PreToolUse = [...preToolUse, entry];
156
+ hooks[hookKind] = [...existing, entry];
139
157
  parsed.hooks = hooks;
140
158
  fs.writeFileSync(filePath, JSON.stringify(parsed, null, 2) + '\n', 'utf-8');
141
159
  return { action: 'merged' };
@@ -149,12 +167,16 @@ function preToolUseHasMatcher(parsed, matcher, probe) {
149
167
  const preToolUse = parsed.hooks?.PreToolUse ?? [];
150
168
  return preToolUse.some((h) => h.matcher === matcher && Array.isArray(h.hooks) && h.hooks.some(probe));
151
169
  }
170
+ function sessionStartHas(parsed, probe) {
171
+ const sessionStart = parsed.hooks?.SessionStart ?? [];
172
+ return sessionStart.some((h) => Array.isArray(h.hooks) && h.hooks.some(probe));
173
+ }
152
174
  /**
153
175
  * Merge Totem hooks into .claude/settings.local.json without overwriting
154
176
  * existing user-defined hooks. Installs the Bash matcher for shield-gate.
155
177
  */
156
178
  export function scaffoldClaudeHooks(filePath) {
157
- return mergeClaudePreToolUseEntry(filePath, CLAUDE_PRETOOLUSE_ENTRY, (parsed) => preToolUseHasMatcher(parsed, 'Bash', hasTotemShield));
179
+ return mergeClaudeHooksKey(filePath, 'PreToolUse', CLAUDE_PRETOOLUSE_ENTRY, (parsed) => preToolUseHasMatcher(parsed, 'Bash', hasTotemShield));
158
180
  }
159
181
  /**
160
182
  * Merge the PreWriteShield hook into .claude/settings.json (committed,
@@ -166,30 +188,57 @@ export function scaffoldClaudeHooks(filePath) {
166
188
  * (team-level governance, sealed at mmnto-ai/totem-strategy#145).
167
189
  */
168
190
  export function scaffoldClaudeWriteShield(filePath) {
169
- return mergeClaudePreToolUseEntry(filePath, CLAUDE_PREWRITESHIELD_ENTRY, (parsed) => preToolUseHasMatcher(parsed, 'Write|Edit', hasPreWriteShield));
191
+ return mergeClaudeHooksKey(filePath, 'PreToolUse', CLAUDE_PREWRITESHIELD_ENTRY, (parsed) => preToolUseHasMatcher(parsed, 'Write|Edit', hasPreWriteShield));
192
+ }
193
+ /**
194
+ * Merge the Claude SessionStart hook entry into .claude/settings.json
195
+ * (committed, team-level) without overwriting existing user-defined
196
+ * hooks. Symmetric with the Gemini-side .gemini/hooks/SessionStart.js
197
+ * install (mmnto-ai/totem#1845 slice 1) — orientation IS a team-level
198
+ * guarantee, so it shares the committed settings.json placement with
199
+ * Phase B's PreWriteShield.
200
+ */
201
+ export function scaffoldClaudeSessionStart(filePath) {
202
+ return mergeClaudeHooksKey(filePath, 'SessionStart', CLAUDE_SESSION_START_ENTRY, (parsed) => sessionStartHas(parsed, hasTotemSessionStart));
170
203
  }
171
204
  async function installClaudeHooks(cwd) {
172
205
  // Bash gate architecture removed (Proposal 207). Write-time enforcement
173
206
  // re-introduced via PreWriteShield hook (mmnto-ai/totem#1846): blocks
174
207
  // bare cross-repo refs in substrate-participating paths before disk write.
175
- // Sealed at mmnto-ai/totem-strategy#145.
208
+ // Sealed at mmnto-ai/totem-strategy#145. SessionStart hook added in
209
+ // mmnto-ai/totem#1845 slice 1 for parity with Gemini-side install.
176
210
  const results = [];
177
- // 1. Scaffold the hook script — committed to .claude/hooks/ for team-level
178
- // propagation per OQ 2 of the design (mmnto-ai/totem-strategy:.totem/specs).
179
- const hookPath = path.join(cwd, '.claude', 'hooks', 'PreWriteShield.cjs');
180
- const hookResult = scaffoldFile(hookPath, CLAUDE_PREWRITESHIELD, TOTEM_FILE_MARKER);
211
+ const settingsPath = path.join(cwd, '.claude', 'settings.json');
212
+ // 1. Scaffold the PreWriteShield hook script (committed to .claude/hooks/).
213
+ const preWritePath = path.join(cwd, '.claude', 'hooks', 'PreWriteShield.cjs');
214
+ const preWriteResult = scaffoldFile(preWritePath, CLAUDE_PREWRITESHIELD, TOTEM_FILE_MARKER);
181
215
  results.push({
182
216
  file: '.claude/hooks/PreWriteShield.cjs',
183
- ...hookResult,
217
+ ...preWriteResult,
184
218
  });
185
- // 2. Merge the PreToolUse entry into committed .claude/settings.json
186
- // (distinct from settings.local.json which holds the per-developer
187
- // shield-gate from before Proposal 207).
188
- const settingsPath = path.join(cwd, '.claude', 'settings.json');
189
- const settingsResult = scaffoldClaudeWriteShield(settingsPath);
219
+ // 2. Scaffold the SessionStart hook script (committed to .claude/hooks/).
220
+ // Symmetric with .gemini/hooks/SessionStart.js Tenet 16 parity.
221
+ const sessionStartPath = path.join(cwd, '.claude', 'hooks', 'SessionStart.cjs');
222
+ const sessionStartResult = scaffoldFile(sessionStartPath, CLAUDE_SESSION_START, TOTEM_FILE_MARKER);
223
+ results.push({
224
+ file: '.claude/hooks/SessionStart.cjs',
225
+ ...sessionStartResult,
226
+ });
227
+ // 3. Merge the PreWriteShield PreToolUse entry into committed
228
+ // .claude/settings.json (distinct from settings.local.json which
229
+ // holds the per-developer shield-gate from before Proposal 207).
230
+ const writeShieldEntryResult = scaffoldClaudeWriteShield(settingsPath);
190
231
  results.push({
191
232
  file: '.claude/settings.json',
192
- ...settingsResult,
233
+ ...writeShieldEntryResult,
234
+ });
235
+ // 4. Merge the SessionStart entry into committed .claude/settings.json.
236
+ // Same file as step 3; the merge helper appends idempotently under
237
+ // `hooks.SessionStart` without disturbing `hooks.PreToolUse`.
238
+ const sessionStartEntryResult = scaffoldClaudeSessionStart(settingsPath);
239
+ results.push({
240
+ file: '.claude/settings.json (SessionStart)',
241
+ ...sessionStartEntryResult,
193
242
  });
194
243
  return results;
195
244
  }
@@ -1 +1 @@
1
- {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
@@ -5,9 +5,9 @@ import * as path from 'node:path';
5
5
  import { afterEach, beforeEach, describe, expect, it } from 'vitest';
6
6
  import { UNIVERSAL_BASELINE_LESSONS, UNIVERSAL_BASELINE_MARKDOWN, UNIVERSAL_BASELINE_MARKER, } from '../assets/universal-baseline.js';
7
7
  import { cleanTmpDir } from '../test-utils.js';
8
- import { buildNpxCommand, detectEmbeddingTier, detectReflexStatus, generateConfig, initCommand, installBaselineLessons, REFLEX_VERSION, scaffoldClaudeHooks, scaffoldClaudeWriteShield, scaffoldFile, scaffoldMcpConfig, upgradeReflexes, } from './init.js';
8
+ import { buildNpxCommand, detectEmbeddingTier, detectReflexStatus, generateConfig, initCommand, installBaselineLessons, REFLEX_VERSION, scaffoldClaudeHooks, scaffoldClaudeSessionStart, scaffoldClaudeWriteShield, scaffoldFile, scaffoldMcpConfig, upgradeReflexes, } from './init.js';
9
9
  import { detectProject } from './init-detect.js';
10
- import { BARE_REF_REGEX_SOURCE, CLAUDE_PREWRITESHIELD, CLAUDE_PREWRITESHIELD_ENTRY, GEMINI_BEFORE_TOOL, generateConfigForFormat, } from './init-templates.js';
10
+ import { BARE_REF_REGEX_SOURCE, CLAUDE_PREWRITESHIELD, CLAUDE_PREWRITESHIELD_ENTRY, CLAUDE_SESSION_START, CLAUDE_SESSION_START_ENTRY, GEMINI_BEFORE_TOOL, generateConfigForFormat, } from './init-templates.js';
11
11
  const SERVER_ENTRY = { type: 'stdio', command: 'npx', args: ['-y', '@mmnto/mcp'] };
12
12
  describe('buildNpxCommand', () => {
13
13
  it('returns cmd /c npx on Windows', () => {
@@ -901,6 +901,128 @@ describe('scaffoldClaudeWriteShield', () => {
901
901
  expect(result.err).toContain('invalid JSON');
902
902
  });
903
903
  });
904
+ // Phase C slice 1 — symmetric Claude SessionStart hook (mmnto-ai/totem#1845).
905
+ // Locks the install-side parity with .gemini/hooks/SessionStart.js: scaffold
906
+ // the .cjs script, merge a SessionStart entry into committed
907
+ // .claude/settings.json, idempotency on re-run, preserve user hooks +
908
+ // coexist with Phase B's PreWriteShield entry under the same hooks object.
909
+ describe('scaffoldClaudeSessionStart', () => {
910
+ let tmpDir;
911
+ beforeEach(() => {
912
+ tmpDir = fs.mkdtempSync(path.join(os.tmpdir(), 'totem-claude-sessionstart-'));
913
+ });
914
+ afterEach(() => {
915
+ cleanTmpDir(tmpDir);
916
+ });
917
+ it('creates settings.json with SessionStart entry when none exists', () => {
918
+ const filePath = path.join(tmpDir, '.claude', 'settings.json');
919
+ const result = scaffoldClaudeSessionStart(filePath);
920
+ expect(result).toEqual({ action: 'created' });
921
+ const content = JSON.parse(fs.readFileSync(filePath, 'utf-8'));
922
+ expect(content.hooks).toBeDefined();
923
+ expect(content.hooks.SessionStart).toHaveLength(1);
924
+ expect(content.hooks.SessionStart[0].hooks[0]).toEqual({
925
+ type: 'command',
926
+ command: 'node .claude/hooks/SessionStart.cjs',
927
+ timeout: 30000,
928
+ });
929
+ // SessionStart entries do NOT carry a `matcher` field.
930
+ expect(content.hooks.SessionStart[0].matcher).toBeUndefined();
931
+ });
932
+ it('is idempotent — double invoke does not duplicate', () => {
933
+ const filePath = path.join(tmpDir, '.claude', 'settings.json');
934
+ const first = scaffoldClaudeSessionStart(filePath);
935
+ expect(first).toEqual({ action: 'created' });
936
+ const second = scaffoldClaudeSessionStart(filePath);
937
+ expect(second).toEqual({ action: 'skipped' });
938
+ const content = JSON.parse(fs.readFileSync(filePath, 'utf-8'));
939
+ expect(content.hooks.SessionStart).toHaveLength(1);
940
+ });
941
+ it('preserves a user-defined SessionStart entry alongside the Totem entry', () => {
942
+ const dir = path.join(tmpDir, '.claude');
943
+ fs.mkdirSync(dir, { recursive: true });
944
+ const filePath = path.join(dir, 'settings.json');
945
+ const existing = {
946
+ hooks: {
947
+ SessionStart: [{ hooks: [{ type: 'command', command: 'echo "user-defined"' }] }],
948
+ },
949
+ };
950
+ fs.writeFileSync(filePath, JSON.stringify(existing, null, 2) + '\n', 'utf-8');
951
+ const result = scaffoldClaudeSessionStart(filePath);
952
+ expect(result).toEqual({ action: 'merged' });
953
+ const content = JSON.parse(fs.readFileSync(filePath, 'utf-8'));
954
+ expect(content.hooks.SessionStart).toHaveLength(2);
955
+ expect(content.hooks.SessionStart[0].hooks[0].command).toBe('echo "user-defined"');
956
+ expect(content.hooks.SessionStart[1].hooks[0].command).toContain('SessionStart.cjs');
957
+ });
958
+ it('coexists with Phase B PreWriteShield entry under the same hooks object', () => {
959
+ const dir = path.join(tmpDir, '.claude');
960
+ fs.mkdirSync(dir, { recursive: true });
961
+ const filePath = path.join(dir, 'settings.json');
962
+ const existing = {
963
+ hooks: { PreToolUse: [CLAUDE_PREWRITESHIELD_ENTRY] },
964
+ };
965
+ fs.writeFileSync(filePath, JSON.stringify(existing, null, 2) + '\n', 'utf-8');
966
+ const result = scaffoldClaudeSessionStart(filePath);
967
+ expect(result).toEqual({ action: 'merged' });
968
+ const content = JSON.parse(fs.readFileSync(filePath, 'utf-8'));
969
+ expect(content.hooks.PreToolUse).toHaveLength(1);
970
+ expect(content.hooks.PreToolUse[0].matcher).toBe('Write|Edit');
971
+ expect(content.hooks.SessionStart).toHaveLength(1);
972
+ expect(content.hooks.SessionStart[0].hooks[0].command).toContain('SessionStart.cjs');
973
+ });
974
+ it('skips when a Totem SessionStart entry is already present', () => {
975
+ const dir = path.join(tmpDir, '.claude');
976
+ fs.mkdirSync(dir, { recursive: true });
977
+ const filePath = path.join(dir, 'settings.json');
978
+ fs.writeFileSync(filePath, JSON.stringify({ hooks: { SessionStart: [CLAUDE_SESSION_START_ENTRY] } }, null, 2) + '\n', 'utf-8');
979
+ const result = scaffoldClaudeSessionStart(filePath);
980
+ expect(result).toEqual({ action: 'skipped' });
981
+ });
982
+ it('returns error on malformed JSON', () => {
983
+ const dir = path.join(tmpDir, '.claude');
984
+ fs.mkdirSync(dir, { recursive: true });
985
+ const filePath = path.join(dir, 'settings.json');
986
+ fs.writeFileSync(filePath, '{ broken!!!', 'utf-8');
987
+ const result = scaffoldClaudeSessionStart(filePath);
988
+ expect(result.action).toBe('skipped');
989
+ expect(result.err).toContain('invalid JSON');
990
+ });
991
+ });
992
+ describe('CLAUDE_SESSION_START template', () => {
993
+ it('contains the totem auto-generated marker', () => {
994
+ expect(CLAUDE_SESSION_START).toContain('// [totem] auto-generated');
995
+ });
996
+ it('routes stderr to stdout (substring contract)', () => {
997
+ // The hook MUST surface CLI stderr alongside stdout because the Totem
998
+ // CLI writes diagnostic output (the actual `describe` text) to stderr;
999
+ // routing it to stdout is the only way Claude sees the orientation
1000
+ // banner in its prompt context. Substring-match keeps copy edits cheap
1001
+ // while still locking the breadcrumb chain.
1002
+ expect(CLAUDE_SESSION_START).toContain('result.stdout');
1003
+ expect(CLAUDE_SESSION_START).toContain('result.stderr');
1004
+ expect(CLAUDE_SESSION_START).toContain('process.stdout.write');
1005
+ });
1006
+ it('includes the @mmnto/cli not-installed fallback message', () => {
1007
+ expect(CLAUDE_SESSION_START).toContain('@mmnto/cli not installed');
1008
+ });
1009
+ it('includes the process-error fallback path', () => {
1010
+ expect(CLAUDE_SESSION_START).toContain('Briefing unavailable');
1011
+ });
1012
+ it('uses the canonical node_modules/@mmnto/cli/dist/index.js path probe', () => {
1013
+ expect(CLAUDE_SESSION_START).toContain('@mmnto');
1014
+ expect(CLAUDE_SESSION_START).toContain("'cli'");
1015
+ expect(CLAUDE_SESSION_START).toContain("'dist'");
1016
+ expect(CLAUDE_SESSION_START).toContain("'index.js'");
1017
+ });
1018
+ it('does NOT propagate strategy-repo-specific orientation pointers', () => {
1019
+ // OQ 2 disposition: keep the fallback generic. The strategy reference
1020
+ // mentions README.md, design-tenets.md, .journal/strategy/ — none of
1021
+ // those should leak into the consumer-facing baseline.
1022
+ expect(CLAUDE_SESSION_START).not.toContain('design-tenets');
1023
+ expect(CLAUDE_SESSION_START).not.toContain('.journal/strategy');
1024
+ });
1025
+ });
904
1026
  describe('CLAUDE_PREWRITESHIELD template', () => {
905
1027
  it('contains the totem auto-generated marker', () => {
906
1028
  expect(CLAUDE_PREWRITESHIELD).toContain('// [totem] auto-generated');