@mmnto/cli 1.6.3 → 1.7.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 (70) hide show
  1. package/dist/commands/describe.d.ts +4 -0
  2. package/dist/commands/describe.d.ts.map +1 -0
  3. package/dist/commands/describe.js +37 -0
  4. package/dist/commands/describe.js.map +1 -0
  5. package/dist/commands/describe.test.d.ts +2 -0
  6. package/dist/commands/describe.test.d.ts.map +1 -0
  7. package/dist/commands/describe.test.js +146 -0
  8. package/dist/commands/describe.test.js.map +1 -0
  9. package/dist/commands/handoff.d.ts +37 -0
  10. package/dist/commands/handoff.d.ts.map +1 -1
  11. package/dist/commands/handoff.js +177 -0
  12. package/dist/commands/handoff.js.map +1 -1
  13. package/dist/commands/handoff.test.js +262 -2
  14. package/dist/commands/handoff.test.js.map +1 -1
  15. package/dist/commands/install-hooks.d.ts +9 -8
  16. package/dist/commands/install-hooks.d.ts.map +1 -1
  17. package/dist/commands/install-hooks.js +21 -7
  18. package/dist/commands/install-hooks.js.map +1 -1
  19. package/dist/commands/install-hooks.test.js +31 -0
  20. package/dist/commands/install-hooks.test.js.map +1 -1
  21. package/dist/commands/rule.d.ts.map +1 -1
  22. package/dist/commands/rule.js +28 -0
  23. package/dist/commands/rule.js.map +1 -1
  24. package/dist/commands/status.d.ts.map +1 -1
  25. package/dist/commands/status.js +17 -0
  26. package/dist/commands/status.js.map +1 -1
  27. package/dist/help.d.ts +13 -0
  28. package/dist/help.d.ts.map +1 -0
  29. package/dist/help.js +93 -0
  30. package/dist/help.js.map +1 -0
  31. package/dist/help.test.d.ts +2 -0
  32. package/dist/help.test.d.ts.map +1 -0
  33. package/dist/help.test.js +95 -0
  34. package/dist/help.test.js.map +1 -0
  35. package/dist/hooks/__tests__/auto-context.test.d.ts +2 -0
  36. package/dist/hooks/__tests__/auto-context.test.d.ts.map +1 -0
  37. package/dist/hooks/__tests__/auto-context.test.js +155 -0
  38. package/dist/hooks/__tests__/auto-context.test.js.map +1 -0
  39. package/dist/hooks/auto-context.d.ts +26 -0
  40. package/dist/hooks/auto-context.d.ts.map +1 -0
  41. package/dist/hooks/auto-context.js +164 -0
  42. package/dist/hooks/auto-context.js.map +1 -0
  43. package/dist/index.js +44 -9
  44. package/dist/index.js.map +1 -1
  45. package/dist/json-output.d.ts +21 -0
  46. package/dist/json-output.d.ts.map +1 -0
  47. package/dist/json-output.js +9 -0
  48. package/dist/json-output.js.map +1 -0
  49. package/dist/json-output.test.d.ts +2 -0
  50. package/dist/json-output.test.d.ts.map +1 -0
  51. package/dist/json-output.test.js +46 -0
  52. package/dist/json-output.test.js.map +1 -0
  53. package/dist/parse-nits.d.ts.map +1 -1
  54. package/dist/parse-nits.js +14 -2
  55. package/dist/parse-nits.js.map +1 -1
  56. package/dist/parse-nits.test.js +25 -0
  57. package/dist/parse-nits.test.js.map +1 -1
  58. package/dist/schemas/handoff-checkpoint.d.ts +34 -0
  59. package/dist/schemas/handoff-checkpoint.d.ts.map +1 -0
  60. package/dist/schemas/handoff-checkpoint.js +13 -0
  61. package/dist/schemas/handoff-checkpoint.js.map +1 -0
  62. package/dist/schemas/handoff-checkpoint.test.d.ts +2 -0
  63. package/dist/schemas/handoff-checkpoint.test.d.ts.map +1 -0
  64. package/dist/schemas/handoff-checkpoint.test.js +65 -0
  65. package/dist/schemas/handoff-checkpoint.test.js.map +1 -0
  66. package/dist/utils.d.ts +2 -5
  67. package/dist/utils.d.ts.map +1 -1
  68. package/dist/utils.js +3 -6
  69. package/dist/utils.js.map +1 -1
  70. package/package.json +2 -2
@@ -1,9 +1,10 @@
1
1
  import * as fs from 'node:fs';
2
2
  import * as os from 'node:os';
3
3
  import * as path from 'node:path';
4
- import { afterEach, beforeEach, describe, expect, it } from 'vitest';
4
+ import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest';
5
+ import { HandoffCheckpointSchema } from '../schemas/handoff-checkpoint.js';
5
6
  import { cleanTmpDir } from '../test-utils.js';
6
- import { buildLiteHandoff, readRecentLessons } from './handoff.js';
7
+ import { buildLiteHandoff, gatherDeterministicState, parseSemanticFields, readRecentLessons, resolveCheckpointPath, writeCheckpoint, } from './handoff.js';
7
8
  describe('readRecentLessons', () => {
8
9
  let tmpDir;
9
10
  const totemDir = '.totem';
@@ -79,4 +80,263 @@ describe('buildLiteHandoff', () => {
79
80
  expect(output).toContain('abc1234 initial commit');
80
81
  });
81
82
  });
83
+ // ─── gatherDeterministicState ───────────────────────
84
+ vi.mock('../git.js', async (importOriginal) => {
85
+ const actual = (await importOriginal());
86
+ return {
87
+ ...actual,
88
+ getGitBranch: vi.fn().mockReturnValue('main'),
89
+ getGitStatus: vi.fn().mockReturnValue(''),
90
+ };
91
+ });
92
+ describe('gatherDeterministicState', () => {
93
+ let mockGetGitBranch;
94
+ let mockGetGitStatus;
95
+ beforeEach(async () => {
96
+ const git = await import('../git.js');
97
+ mockGetGitBranch = git.getGitBranch;
98
+ mockGetGitStatus = git.getGitStatus;
99
+ });
100
+ afterEach(() => {
101
+ vi.restoreAllMocks();
102
+ });
103
+ it('extracts active files from git status safely handling detached HEAD', async () => {
104
+ mockGetGitBranch.mockImplementation(() => {
105
+ throw new Error('not a git repository');
106
+ });
107
+ mockGetGitStatus.mockReturnValue(' M src/foo.ts\n?? src/bar.ts\nA src/baz.ts');
108
+ const result = await gatherDeterministicState('/tmp/test');
109
+ expect(result.branch).toBe('HEAD');
110
+ expect(result.active_files).toContain('src/foo.ts');
111
+ expect(result.active_files).toContain('src/bar.ts');
112
+ expect(result.active_files).toContain('src/baz.ts');
113
+ expect(result.active_files).toHaveLength(3);
114
+ });
115
+ it('extracts active files from normal branch', async () => {
116
+ mockGetGitBranch.mockReturnValue('feat/checkpoint');
117
+ mockGetGitStatus.mockReturnValue(' M src/app.ts\n?? README.md');
118
+ const result = await gatherDeterministicState('/tmp/test');
119
+ expect(result.branch).toBe('feat/checkpoint');
120
+ expect(result.active_files).toEqual(['README.md', 'src/app.ts']);
121
+ });
122
+ it('returns empty active_files when working tree is clean', async () => {
123
+ mockGetGitBranch.mockReturnValue('main');
124
+ mockGetGitStatus.mockReturnValue('');
125
+ const result = await gatherDeterministicState('/tmp/test');
126
+ expect(result.active_files).toEqual([]);
127
+ });
128
+ it('sets checkpoint_version to 1 and timestamp is valid ISO', async () => {
129
+ mockGetGitBranch.mockReturnValue('main');
130
+ mockGetGitStatus.mockReturnValue('');
131
+ const result = await gatherDeterministicState('/tmp/test');
132
+ expect(result.checkpoint_version).toBe(1);
133
+ const parsed = new Date(result.timestamp);
134
+ expect(parsed.toISOString()).toBe(result.timestamp);
135
+ expect(result.open_prs).toEqual([]);
136
+ });
137
+ it('strips C-style quotes from paths with spaces', async () => {
138
+ mockGetGitBranch.mockReturnValue('main');
139
+ mockGetGitStatus.mockReturnValue(' M "src/my file.ts"\n?? "docs/read me.md"');
140
+ const result = await gatherDeterministicState('/tmp/test');
141
+ expect(result.active_files).toEqual(['docs/read me.md', 'src/my file.ts']);
142
+ });
143
+ it('falls back to HEAD when getGitBranch returns empty string', async () => {
144
+ mockGetGitBranch.mockReturnValue('');
145
+ mockGetGitStatus.mockReturnValue('');
146
+ const result = await gatherDeterministicState('/tmp/test');
147
+ expect(result.branch).toBe('HEAD');
148
+ });
149
+ it('falls back to HEAD when getGitBranch returns (unknown)', async () => {
150
+ mockGetGitBranch.mockReturnValue('(unknown)');
151
+ mockGetGitStatus.mockReturnValue('');
152
+ const result = await gatherDeterministicState('/tmp/test');
153
+ expect(result.branch).toBe('HEAD');
154
+ });
155
+ });
156
+ // ─── parseSemanticFields (Task 3) ───────────────────
157
+ describe('parseSemanticFields', () => {
158
+ it('extracts sections from markdown', () => {
159
+ const markdown = [
160
+ '### Branch & State',
161
+ 'feat/test; dirty working tree.',
162
+ '',
163
+ '### What Was Done',
164
+ '- Implemented the schema validation',
165
+ '- Added unit tests for the parser',
166
+ '',
167
+ '### Uncommitted Changes',
168
+ '- Modified handoff.ts with new logic',
169
+ '',
170
+ '### Lessons & Traps',
171
+ '- Always validate with Zod before writing',
172
+ '- Watch out for Windows path separators',
173
+ '',
174
+ '### Next Steps',
175
+ '1. Wire up the atomic file writer',
176
+ '2. Add integration tests',
177
+ '3. Run the full test suite',
178
+ ].join('\n');
179
+ const result = parseSemanticFields(markdown);
180
+ expect(result.completed).toEqual([
181
+ 'Implemented the schema validation',
182
+ 'Added unit tests for the parser',
183
+ ]);
184
+ expect(result.remaining).toEqual([
185
+ 'Wire up the atomic file writer',
186
+ 'Add integration tests',
187
+ 'Run the full test suite',
188
+ ]);
189
+ expect(result.context_hints).toEqual([
190
+ 'Always validate with Zod before writing',
191
+ 'Watch out for Windows path separators',
192
+ ]);
193
+ expect(result.pending_decisions).toEqual(['Modified handoff.ts with new logic']);
194
+ });
195
+ it('returns empty arrays for malformed input', () => {
196
+ const empty = parseSemanticFields('');
197
+ expect(empty.completed).toEqual([]);
198
+ expect(empty.remaining).toEqual([]);
199
+ expect(empty.pending_decisions).toEqual([]);
200
+ expect(empty.context_hints).toEqual([]);
201
+ const garbage = parseSemanticFields('foo bar baz\nno headings here\n!!!');
202
+ expect(garbage.completed).toEqual([]);
203
+ expect(garbage.remaining).toEqual([]);
204
+ expect(garbage.pending_decisions).toEqual([]);
205
+ expect(garbage.context_hints).toEqual([]);
206
+ });
207
+ it('handles ## headings as well as ###', () => {
208
+ const markdown = [
209
+ '## What Was Done',
210
+ '- Finished the feature',
211
+ '',
212
+ '## Next Steps',
213
+ '- Deploy to staging',
214
+ ].join('\n');
215
+ const result = parseSemanticFields(markdown);
216
+ expect(result.completed).toEqual(['Finished the feature']);
217
+ expect(result.remaining).toEqual(['Deploy to staging']);
218
+ });
219
+ it('handles non-bullet content lines', () => {
220
+ const markdown = ['### What Was Done', 'Implemented the schema.', 'Added tests.'].join('\n');
221
+ const result = parseSemanticFields(markdown);
222
+ expect(result.completed).toEqual(['Implemented the schema.', 'Added tests.']);
223
+ });
224
+ });
225
+ // ─── Lite mode checkpoint (Task 3) ──────────────────
226
+ describe('lite mode checkpoint', () => {
227
+ it('bypasses LLM execution when lite flag is provided and returns empty semantic arrays', async () => {
228
+ const git = await import('../git.js');
229
+ const mockBranch = git.getGitBranch;
230
+ const mockStatus = git.getGitStatus;
231
+ mockBranch.mockReturnValue('feat/lite-test');
232
+ mockStatus.mockReturnValue(' M src/foo.ts');
233
+ const state = await gatherDeterministicState('/tmp/test');
234
+ const checkpoint = HandoffCheckpointSchema.parse(state);
235
+ expect(checkpoint.checkpoint_version).toBe(1);
236
+ expect(checkpoint.branch).toBe('feat/lite-test');
237
+ expect(checkpoint.active_files).toEqual(['src/foo.ts']);
238
+ expect(checkpoint.completed).toEqual([]);
239
+ expect(checkpoint.remaining).toEqual([]);
240
+ expect(checkpoint.pending_decisions).toEqual([]);
241
+ expect(checkpoint.context_hints).toEqual([]);
242
+ });
243
+ });
244
+ // ─── writeCheckpoint & resolveCheckpointPath (Task 4) ───
245
+ describe('writeCheckpoint', () => {
246
+ let tmpDir;
247
+ beforeEach(() => {
248
+ tmpDir = fs.mkdtempSync(path.join(os.tmpdir(), 'totem-checkpoint-'));
249
+ });
250
+ afterEach(() => {
251
+ cleanTmpDir(tmpDir);
252
+ });
253
+ it('writes checkpoint json atomically alongside markdown', () => {
254
+ const mdPath = path.join(tmpDir, 'handoff.md');
255
+ const jsonPath = path.join(tmpDir, 'handoff.json');
256
+ fs.writeFileSync(mdPath, '### Branch & State\nmain; clean.', 'utf-8');
257
+ const checkpoint = HandoffCheckpointSchema.parse({
258
+ checkpoint_version: 1,
259
+ timestamp: new Date().toISOString(),
260
+ branch: 'main',
261
+ active_files: ['src/app.ts'],
262
+ completed: ['Implemented feature X'],
263
+ remaining: ['Add tests'],
264
+ });
265
+ writeCheckpoint(jsonPath, checkpoint);
266
+ expect(fs.existsSync(mdPath)).toBe(true);
267
+ expect(fs.existsSync(jsonPath)).toBe(true);
268
+ const raw = JSON.parse(fs.readFileSync(jsonPath, 'utf-8'));
269
+ const parsed = HandoffCheckpointSchema.parse(raw);
270
+ expect(parsed.branch).toBe('main');
271
+ expect(parsed.active_files).toEqual(['src/app.ts']);
272
+ expect(parsed.completed).toEqual(['Implemented feature X']);
273
+ expect(parsed.remaining).toEqual(['Add tests']);
274
+ expect(fs.existsSync(jsonPath + '.tmp')).toBe(false);
275
+ });
276
+ it('creates parent directories if they do not exist', () => {
277
+ const nested = path.join(tmpDir, 'deep', 'nested');
278
+ const jsonPath = path.join(nested, 'checkpoint.json');
279
+ const checkpoint = HandoffCheckpointSchema.parse({
280
+ checkpoint_version: 1,
281
+ timestamp: new Date().toISOString(),
282
+ branch: 'main',
283
+ active_files: [],
284
+ });
285
+ writeCheckpoint(jsonPath, checkpoint);
286
+ expect(fs.existsSync(jsonPath)).toBe(true);
287
+ });
288
+ it('writes checkpoint to .totem/handoff.json when no --out specified', () => {
289
+ const totemDir = path.join(tmpDir, '.totem');
290
+ fs.mkdirSync(totemDir, { recursive: true });
291
+ const jsonPath = resolveCheckpointPath(tmpDir, '.totem');
292
+ expect(jsonPath).toBe(path.join(tmpDir, '.totem', 'handoff.json'));
293
+ const checkpoint = HandoffCheckpointSchema.parse({
294
+ checkpoint_version: 1,
295
+ timestamp: new Date().toISOString(),
296
+ branch: 'feat/no-out',
297
+ active_files: ['src/index.ts'],
298
+ completed: ['Setup project'],
299
+ });
300
+ writeCheckpoint(jsonPath, checkpoint);
301
+ expect(fs.existsSync(jsonPath)).toBe(true);
302
+ const raw = JSON.parse(fs.readFileSync(jsonPath, 'utf-8'));
303
+ const parsed = HandoffCheckpointSchema.parse(raw);
304
+ expect(parsed.branch).toBe('feat/no-out');
305
+ expect(parsed.active_files).toEqual(['src/index.ts']);
306
+ });
307
+ });
308
+ // ─── resolveCheckpointPath ──────────────────────────
309
+ describe('resolveCheckpointPath', () => {
310
+ let tmpDir;
311
+ beforeEach(() => {
312
+ tmpDir = fs.mkdtempSync(path.join(os.tmpdir(), 'totem-resolve-'));
313
+ });
314
+ afterEach(() => {
315
+ cleanTmpDir(tmpDir);
316
+ });
317
+ it('returns .json companion when --out has .md extension', () => {
318
+ const result = resolveCheckpointPath(tmpDir, '.totem', '/some/path/handoff.md');
319
+ expect(result).toBe('/some/path/handoff.json');
320
+ });
321
+ it('returns .json companion when --out has no extension', () => {
322
+ const result = resolveCheckpointPath(tmpDir, '.totem', '/some/path/handoff');
323
+ expect(result).toBe('/some/path/handoff.json');
324
+ });
325
+ it('returns totemDir/handoff.json when no --out', () => {
326
+ const result = resolveCheckpointPath(tmpDir, '.totem');
327
+ expect(result).toBe(path.join(tmpDir, '.totem', 'handoff.json'));
328
+ });
329
+ it('uses custom totemDir when configured', () => {
330
+ const result = resolveCheckpointPath(tmpDir, '.governance');
331
+ expect(result).toBe(path.join(tmpDir, '.governance', 'handoff.json'));
332
+ });
333
+ it('replaces .txt extension with .json', () => {
334
+ const result = resolveCheckpointPath(tmpDir, '.totem', '/output/report.txt');
335
+ expect(result).toBe('/output/report.json');
336
+ });
337
+ it('avoids collision when --out already ends in .json', () => {
338
+ const result = resolveCheckpointPath(tmpDir, '.totem', '/output/handoff.json');
339
+ expect(result).toBe('/output/handoff.checkpoint.json');
340
+ });
341
+ });
82
342
  //# sourceMappingURL=handoff.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"handoff.test.js","sourceRoot":"","sources":["../../src/commands/handoff.test.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAElC,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAErE,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAEnE,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;IACjC,IAAI,MAAc,CAAC;IACnB,MAAM,QAAQ,GAAG,QAAQ,CAAC;IAE1B,UAAU,CAAC,GAAG,EAAE;QACd,MAAM,GAAG,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,gBAAgB,CAAC,CAAC,CAAC;IACpE,CAAC,CAAC,CAAC;IAEH,SAAS,CAAC,GAAG,EAAE;QACb,WAAW,CAAC,MAAM,CAAC,CAAC;IACtB,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4CAA4C,EAAE,GAAG,EAAE;QACpD,MAAM,CAAC,iBAAiB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACvD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6CAA6C,EAAE,GAAG,EAAE;QACrD,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QAC9C,EAAE,CAAC,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC7C,EAAE,CAAC,aAAa,CACd,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,YAAY,CAAC,EAClC,sDAAsD,EACtD,OAAO,CACR,CAAC;QACF,MAAM,MAAM,GAAG,iBAAiB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QACnD,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC;QAC7C,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;IAC3C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wCAAwC,EAAE,GAAG,EAAE;QAChD,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;QAC1D,EAAE,CAAC,SAAS,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC9C,EAAE,CAAC,aAAa,CACd,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,eAAe,CAAC,EACtC,2EAA2E,EAC3E,OAAO,CACR,CAAC;QACF,MAAM,MAAM,GAAG,iBAAiB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QACnD,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;QAC3C,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,0BAA0B,CAAC,CAAC;IACvD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8CAA8C,EAAE,GAAG,EAAE;QACtD,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;QAC1D,EAAE,CAAC,SAAS,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC9C,sFAAsF;QACtF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;YAC5B,MAAM,OAAO,GAAG,sBAAsB,CAAC,4CAA4C,CAAC,KAAK,CAAC;YAC1F,EAAE,CAAC,aAAa,CACd,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,UAAU,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,EAChE,OAAO,EACP,OAAO,CACR,CAAC;QACJ,CAAC;QACD,MAAM,MAAM,GAAG,iBAAiB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QACnD,gEAAgE;QAChE,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;QACtC,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;QACtC,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;IAC7C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,uDAAuD;AAEvD,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;IAChC,EAAE,CAAC,uCAAuC,EAAE,GAAG,EAAE;QAC/C,MAAM,MAAM,GAAG,gBAAgB,CAC7B,MAAM,EACN,EAAE,EACF,EAAE,EACF,wBAAwB,EACxB,sBAAsB,CACvB,CAAC;QACF,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,0BAA0B,CAAC,CAAC;QACrD,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,wBAAwB,CAAC,CAAC;QACnD,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,wBAAwB,CAAC,CAAC;QACnD,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,uBAAuB,CAAC,CAAC,CAAC,eAAe;IACpE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uCAAuC,EAAE,GAAG,EAAE;QAC/C,MAAM,MAAM,GAAG,gBAAgB,CAC7B,WAAW,EACX,+BAA+B,EAC/B,uBAAuB,EACvB,6CAA6C,EAC7C,EAAE,CACH,CAAC;QACF,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,+BAA+B,CAAC,CAAC;QAC1D,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;QACzC,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;QACxC,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QACpC,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,uBAAuB,CAAC,CAAC;QAClD,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,wBAAwB,CAAC,CAAC;IACrD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mCAAmC,EAAE,GAAG,EAAE;QAC3C,MAAM,MAAM,GAAG,gBAAgB,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;QACxD,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,oBAAoB,CAAC,CAAC;QAC/C,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,mBAAmB,CAAC,CAAC;QAC9C,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,wBAAwB,CAAC,CAAC;IACrD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8CAA8C,EAAE,GAAG,EAAE;QACtD,MAAM,MAAM,GAAG,gBAAgB,CAC7B,qBAAqB,EACrB,8BAA8B,EAC9B,8CAA8C,EAC9C,uCAAuC,EACvC,EAAE,CACH,CAAC;QACF,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QACtC,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,0BAA0B,CAAC,CAAC;QACrD,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;QACzC,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,wBAAwB,CAAC,CAAC;IACrD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"handoff.test.js","sourceRoot":"","sources":["../../src/commands/handoff.test.ts"],"names":[],"mappings":"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"}
@@ -31,10 +31,10 @@ export declare function buildPrePushHook(fallbackCmd: string): string;
31
31
  * Install a single git hook with idempotency and chain preservation.
32
32
  * Returns the action taken.
33
33
  */
34
- export declare function installGitHook(hooksDir: string, hookName: string, hookContent: string, marker: string): 'installed' | 'exists' | 'appended' | 'skipped-non-shell';
34
+ export declare function installGitHook(hooksDir: string, hookName: string, hookContent: string, marker: string, force?: boolean): 'installed' | 'exists' | 'appended' | 'skipped-non-shell' | 'overwritten';
35
35
  export interface EnforcementHookResult {
36
- preCommit: 'installed' | 'exists' | 'appended' | 'skipped' | 'skipped-non-shell';
37
- prePush: 'installed' | 'exists' | 'appended' | 'skipped' | 'skipped-non-shell';
36
+ preCommit: 'installed' | 'exists' | 'appended' | 'skipped' | 'skipped-non-shell' | 'overwritten';
37
+ prePush: 'installed' | 'exists' | 'appended' | 'skipped' | 'skipped-non-shell' | 'overwritten';
38
38
  }
39
39
  /**
40
40
  * Install pre-commit (block main) and pre-push (totem lint) hooks.
@@ -44,16 +44,16 @@ export interface EnforcementHookResult {
44
44
  export declare function installEnforcementHooks(cwd: string, rl: readline.Interface): Promise<EnforcementHookResult>;
45
45
  export declare function installHooksCommand(): Promise<void>;
46
46
  export interface HooksCommandResult {
47
- preCommit: 'installed' | 'exists' | 'appended' | 'skipped-non-shell';
48
- prePush: 'installed' | 'exists' | 'appended' | 'skipped-non-shell';
49
- postMerge: 'installed' | 'exists' | 'appended' | 'skipped-non-shell';
50
- postCheckout: 'installed' | 'exists' | 'appended' | 'skipped-non-shell';
47
+ preCommit: 'installed' | 'exists' | 'appended' | 'skipped-non-shell' | 'overwritten';
48
+ prePush: 'installed' | 'exists' | 'appended' | 'skipped-non-shell' | 'overwritten';
49
+ postMerge: 'installed' | 'exists' | 'appended' | 'skipped-non-shell' | 'overwritten';
50
+ postCheckout: 'installed' | 'exists' | 'appended' | 'skipped-non-shell' | 'overwritten';
51
51
  }
52
52
  /**
53
53
  * Non-interactive hook installer for `totem hooks` and `prepare` scripts.
54
54
  * Installs pre-commit, pre-push, and post-merge hooks without prompting.
55
55
  */
56
- export declare function installHooksNonInteractive(cwd: string): HooksCommandResult | null;
56
+ export declare function installHooksNonInteractive(cwd: string, force?: boolean): HooksCommandResult | null;
57
57
  /**
58
58
  * Check that all Totem hooks are installed. Returns true if all present.
59
59
  */
@@ -63,6 +63,7 @@ export declare function checkHooksInstalled(cwd: string): boolean;
63
63
  */
64
64
  export declare function hooksCommand(opts: {
65
65
  check?: boolean;
66
+ force?: boolean;
66
67
  }): void;
67
68
  /**
68
69
  * Silently upgrade the pre-push hook if it was installed by Totem but uses
@@ -1 +1 @@
1
- {"version":3,"file":"install-hooks.d.ts","sourceRoot":"","sources":["../../src/commands/install-hooks.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,QAAQ,MAAM,wBAAwB,CAAC;AAQnD,eAAO,MAAM,sBAAsB,4BAA4B,CAAC;AAChE,eAAO,MAAM,oBAAoB,0BAA0B,CAAC;AAI5D;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAOtD;AAED,4FAA4F;AAC5F,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAMrD;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAY7D;AAgBD,wBAAgB,4BAA4B,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CA0BxE;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI,CAa9E;AA4ED,wBAAsB,oBAAoB,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,QAAQ,CAAC,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CA0D7F;AAID,wBAAgB,kBAAkB,IAAI,MAAM,CAa3C;AAED,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAuB5D;AAID;;;GAGG;AACH,wBAAgB,cAAc,CAC5B,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,MAAM,GACb,WAAW,GAAG,QAAQ,GAAG,UAAU,GAAG,mBAAmB,CAoC3D;AAED,MAAM,WAAW,qBAAqB;IACpC,SAAS,EAAE,WAAW,GAAG,QAAQ,GAAG,UAAU,GAAG,SAAS,GAAG,mBAAmB,CAAC;IACjF,OAAO,EAAE,WAAW,GAAG,QAAQ,GAAG,UAAU,GAAG,SAAS,GAAG,mBAAmB,CAAC;CAChF;AAED;;;;GAIG;AACH,wBAAsB,uBAAuB,CAC3C,GAAG,EAAE,MAAM,EACX,EAAE,EAAE,QAAQ,CAAC,SAAS,GACrB,OAAO,CAAC,qBAAqB,CAAC,CAuDhC;AAED,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC,CA4BzD;AAID,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,WAAW,GAAG,QAAQ,GAAG,UAAU,GAAG,mBAAmB,CAAC;IACrE,OAAO,EAAE,WAAW,GAAG,QAAQ,GAAG,UAAU,GAAG,mBAAmB,CAAC;IACnE,SAAS,EAAE,WAAW,GAAG,QAAQ,GAAG,UAAU,GAAG,mBAAmB,CAAC;IACrE,YAAY,EAAE,WAAW,GAAG,QAAQ,GAAG,UAAU,GAAG,mBAAmB,CAAC;CACzE;AAED;;;GAGG;AACH,wBAAgB,0BAA0B,CAAC,GAAG,EAAE,MAAM,GAAG,kBAAkB,GAAG,IAAI,CA6CjF;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CA8BxD;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE;IAAE,KAAK,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,IAAI,CAqD5D;AAID;;;;;;GAMG;AACH,wBAAgB,0BAA0B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CA0E/D"}
1
+ {"version":3,"file":"install-hooks.d.ts","sourceRoot":"","sources":["../../src/commands/install-hooks.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,QAAQ,MAAM,wBAAwB,CAAC;AAQnD,eAAO,MAAM,sBAAsB,4BAA4B,CAAC;AAChE,eAAO,MAAM,oBAAoB,0BAA0B,CAAC;AAI5D;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAOtD;AAED,4FAA4F;AAC5F,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAMrD;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAY7D;AAgBD,wBAAgB,4BAA4B,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CA0BxE;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI,CAa9E;AA4ED,wBAAsB,oBAAoB,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,QAAQ,CAAC,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CA0D7F;AAID,wBAAgB,kBAAkB,IAAI,MAAM,CAa3C;AAED,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAuB5D;AAID;;;GAGG;AACH,wBAAgB,cAAc,CAC5B,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,MAAM,EACd,KAAK,CAAC,EAAE,OAAO,GACd,WAAW,GAAG,QAAQ,GAAG,UAAU,GAAG,mBAAmB,GAAG,aAAa,CA8C3E;AAED,MAAM,WAAW,qBAAqB;IACpC,SAAS,EAAE,WAAW,GAAG,QAAQ,GAAG,UAAU,GAAG,SAAS,GAAG,mBAAmB,GAAG,aAAa,CAAC;IACjG,OAAO,EAAE,WAAW,GAAG,QAAQ,GAAG,UAAU,GAAG,SAAS,GAAG,mBAAmB,GAAG,aAAa,CAAC;CAChG;AAED;;;;GAIG;AACH,wBAAsB,uBAAuB,CAC3C,GAAG,EAAE,MAAM,EACX,EAAE,EAAE,QAAQ,CAAC,SAAS,GACrB,OAAO,CAAC,qBAAqB,CAAC,CAuDhC;AAED,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC,CA4BzD;AAID,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,WAAW,GAAG,QAAQ,GAAG,UAAU,GAAG,mBAAmB,GAAG,aAAa,CAAC;IACrF,OAAO,EAAE,WAAW,GAAG,QAAQ,GAAG,UAAU,GAAG,mBAAmB,GAAG,aAAa,CAAC;IACnF,SAAS,EAAE,WAAW,GAAG,QAAQ,GAAG,UAAU,GAAG,mBAAmB,GAAG,aAAa,CAAC;IACrF,YAAY,EAAE,WAAW,GAAG,QAAQ,GAAG,UAAU,GAAG,mBAAmB,GAAG,aAAa,CAAC;CACzF;AAED;;;GAGG;AACH,wBAAgB,0BAA0B,CACxC,GAAG,EAAE,MAAM,EACX,KAAK,CAAC,EAAE,OAAO,GACd,kBAAkB,GAAG,IAAI,CAsD3B;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CA8BxD;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE;IAAE,KAAK,CAAC,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,IAAI,CAwD7E;AAID;;;;;;GAMG;AACH,wBAAgB,0BAA0B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CA0E/D"}
@@ -273,11 +273,22 @@ const SHELL_SHEBANG_RE = /^#!\/bin\/(ba)?sh|^#!\/usr\/bin\/env\s+(ba)?sh/;
273
273
  * Install a single git hook with idempotency and chain preservation.
274
274
  * Returns the action taken.
275
275
  */
276
- export function installGitHook(hooksDir, hookName, hookContent, marker) {
276
+ export function installGitHook(hooksDir, hookName, hookContent, marker, force) {
277
277
  const hookPath = path.join(hooksDir, hookName);
278
278
  if (fs.existsSync(hookPath)) {
279
279
  const existing = fs.readFileSync(hookPath, 'utf-8');
280
280
  if (existing.includes(marker)) {
281
+ if (force) {
282
+ // Force overwrite — replace the entire hook with the new content
283
+ fs.writeFileSync(hookPath, hookContent);
284
+ try {
285
+ fs.chmodSync(hookPath, 0o755);
286
+ }
287
+ catch {
288
+ // chmod may fail on Windows — hooks still work via git bash
289
+ }
290
+ return 'overwritten';
291
+ }
281
292
  return 'exists';
282
293
  }
283
294
  // Guard: do not append bash syntax to non-shell hooks (Node, Python, etc.)
@@ -367,7 +378,7 @@ export async function installHooksCommand() {
367
378
  * Non-interactive hook installer for `totem hooks` and `prepare` scripts.
368
379
  * Installs pre-commit, pre-push, and post-merge hooks without prompting.
369
380
  */
370
- export function installHooksNonInteractive(cwd) {
381
+ export function installHooksNonInteractive(cwd, force) {
371
382
  // Guard: must be a git repo — resolve root from any subdirectory
372
383
  const gitRoot = resolveGitRoot(cwd);
373
384
  if (!gitRoot) {
@@ -382,12 +393,12 @@ export function installHooksNonInteractive(cwd) {
382
393
  return null;
383
394
  }
384
395
  const hooksDir = path.join(gitRoot, '.git', 'hooks');
385
- const preCommit = installGitHook(hooksDir, 'pre-commit', buildPreCommitHook(), TOTEM_PRECOMMIT_MARKER);
386
- const prePush = installGitHook(hooksDir, 'pre-push', buildPrePushHook(fallbackCmd), TOTEM_PREPUSH_MARKER);
396
+ const preCommit = installGitHook(hooksDir, 'pre-commit', buildPreCommitHook(), TOTEM_PRECOMMIT_MARKER, force);
397
+ const prePush = installGitHook(hooksDir, 'pre-push', buildPrePushHook(fallbackCmd), TOTEM_PREPUSH_MARKER, force);
387
398
  const postMergeContent = buildHookContent(fallbackCmd);
388
- const postMerge = installGitHook(hooksDir, 'post-merge', postMergeContent, TOTEM_HOOK_MARKER);
399
+ const postMerge = installGitHook(hooksDir, 'post-merge', postMergeContent, TOTEM_HOOK_MARKER, force);
389
400
  const postCheckoutContent = buildPostCheckoutHookContent(fallbackCmd);
390
- const postCheckout = installGitHook(hooksDir, 'post-checkout', postCheckoutContent, TOTEM_CHECKOUT_MARKER);
401
+ const postCheckout = installGitHook(hooksDir, 'post-checkout', postCheckoutContent, TOTEM_CHECKOUT_MARKER, force);
391
402
  return { preCommit, prePush, postMerge, postCheckout };
392
403
  }
393
404
  /**
@@ -443,7 +454,7 @@ export function hooksCommand(opts) {
443
454
  }
444
455
  return;
445
456
  }
446
- const result = installHooksNonInteractive(cwd);
457
+ const result = installHooksNonInteractive(cwd, opts.force);
447
458
  if (!result) {
448
459
  // Hook manager detected — guidance already printed by installHooksNonInteractive
449
460
  return;
@@ -465,6 +476,9 @@ export function hooksCommand(opts) {
465
476
  case 'exists':
466
477
  console.error(`[Totem] ${name} hook already installed.`);
467
478
  break;
479
+ case 'overwritten':
480
+ console.error(`[Totem] Force-overwritten ${name} hook.`);
481
+ break;
468
482
  case 'skipped-non-shell':
469
483
  console.error(`[Totem] Warning: ${name} hook uses a non-shell interpreter. Integrate manually.`);
470
484
  break;
@@ -1 +1 @@
1
- {"version":3,"file":"install-hooks.js","sourceRoot":"","sources":["../../src/commands/install-hooks.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"install-hooks.js","sourceRoot":"","sources":["../../src/commands/install-hooks.ts"],"names":[],"mappings":"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"}
@@ -316,6 +316,24 @@ describe('installGitHook', () => {
316
316
  expect(prePush).toContain(TOTEM_PREPUSH_MARKER);
317
317
  expect(prePush).not.toContain(TOTEM_PRECOMMIT_MARKER);
318
318
  });
319
+ it('overwrites existing hook when force is true', () => {
320
+ fs.mkdirSync(hooksDir, { recursive: true });
321
+ const hookPath = path.join(hooksDir, 'pre-push');
322
+ // Write an old-format hook with the marker
323
+ fs.writeFileSync(hookPath, `#!/bin/sh\n# ${TOTEM_PREPUSH_MARKER}\n$TOTEM_CMD lint\n`);
324
+ const result = installGitHook(hooksDir, 'pre-push', buildPrePushHook('pnpm dlx @mmnto/cli'), TOTEM_PREPUSH_MARKER, true);
325
+ expect(result).toBe('overwritten');
326
+ const content = fs.readFileSync(hookPath, 'utf-8');
327
+ expect(content).toContain('verify-manifest'); // new format
328
+ expect(content).not.toContain('$TOTEM_CMD lint\n'); // old format gone (trailing newline distinguishes bare line)
329
+ });
330
+ it('returns exists when marker found and force is false', () => {
331
+ fs.mkdirSync(hooksDir, { recursive: true });
332
+ const hookPath = path.join(hooksDir, 'pre-push');
333
+ fs.writeFileSync(hookPath, `#!/bin/sh\n# ${TOTEM_PREPUSH_MARKER}\nold content\n`);
334
+ const result = installGitHook(hooksDir, 'pre-push', buildPrePushHook('pnpm dlx @mmnto/cli'), TOTEM_PREPUSH_MARKER);
335
+ expect(result).toBe('exists');
336
+ });
319
337
  });
320
338
  // ─── generateHookHelpers ────────────────────────────
321
339
  describe('generateHookHelpers', () => {
@@ -438,6 +456,19 @@ describe('installHooksNonInteractive', () => {
438
456
  expect(content).toContain('run_my_tests');
439
457
  expect(content).toContain(TOTEM_PREPUSH_MARKER);
440
458
  });
459
+ it('force-overwrites all hooks when force is true', () => {
460
+ execSync('git init', { cwd: tmpDir, stdio: 'ignore' });
461
+ fs.writeFileSync(path.join(tmpDir, 'pnpm-lock.yaml'), '');
462
+ // First install — creates hooks
463
+ installHooksNonInteractive(tmpDir);
464
+ // Second install with force — overwrites all hooks
465
+ const result = installHooksNonInteractive(tmpDir, true);
466
+ expect(result).not.toBeNull();
467
+ expect(result.preCommit).toBe('overwritten');
468
+ expect(result.prePush).toBe('overwritten');
469
+ expect(result.postMerge).toBe('overwritten');
470
+ expect(result.postCheckout).toBe('overwritten');
471
+ });
441
472
  });
442
473
  // ─── checkHooksInstalled ────────────────────────────
443
474
  describe('checkHooksInstalled', () => {