@mmnto/cli 1.113.1 → 1.115.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.
Files changed (90) hide show
  1. package/dist/commands/doctor-seat-identity.d.ts +71 -0
  2. package/dist/commands/doctor-seat-identity.d.ts.map +1 -0
  3. package/dist/commands/doctor-seat-identity.js +352 -0
  4. package/dist/commands/doctor-seat-identity.js.map +1 -0
  5. package/dist/commands/doctor-seat-identity.test.d.ts +13 -0
  6. package/dist/commands/doctor-seat-identity.test.d.ts.map +1 -0
  7. package/dist/commands/doctor-seat-identity.test.js +230 -0
  8. package/dist/commands/doctor-seat-identity.test.js.map +1 -0
  9. package/dist/commands/doctor.d.ts.map +1 -1
  10. package/dist/commands/doctor.js +3 -0
  11. package/dist/commands/doctor.js.map +1 -1
  12. package/dist/commands/doctor.test.js +1 -0
  13. package/dist/commands/doctor.test.js.map +1 -1
  14. package/dist/commands/ecl-gc.d.ts.map +1 -1
  15. package/dist/commands/ecl-gc.js +18 -7
  16. package/dist/commands/ecl-gc.js.map +1 -1
  17. package/dist/commands/ecl-gc.test.js +63 -1
  18. package/dist/commands/ecl-gc.test.js.map +1 -1
  19. package/dist/commands/eject.d.ts +62 -3
  20. package/dist/commands/eject.d.ts.map +1 -1
  21. package/dist/commands/eject.js +382 -47
  22. package/dist/commands/eject.js.map +1 -1
  23. package/dist/commands/eject.test.js +557 -7
  24. package/dist/commands/eject.test.js.map +1 -1
  25. package/dist/commands/gemini-beforetool-contract.test.d.ts +2 -0
  26. package/dist/commands/gemini-beforetool-contract.test.d.ts.map +1 -0
  27. package/dist/commands/gemini-beforetool-contract.test.js +106 -0
  28. package/dist/commands/gemini-beforetool-contract.test.js.map +1 -0
  29. package/dist/commands/gemini-sessionstart-contract.test.d.ts +2 -0
  30. package/dist/commands/gemini-sessionstart-contract.test.d.ts.map +1 -0
  31. package/dist/commands/gemini-sessionstart-contract.test.js +184 -0
  32. package/dist/commands/gemini-sessionstart-contract.test.js.map +1 -0
  33. package/dist/commands/init-templates.d.ts +6 -6
  34. package/dist/commands/init-templates.d.ts.map +1 -1
  35. package/dist/commands/init-templates.js +271 -19
  36. package/dist/commands/init-templates.js.map +1 -1
  37. package/dist/commands/init.d.ts +40 -4
  38. package/dist/commands/init.d.ts.map +1 -1
  39. package/dist/commands/init.js +357 -32
  40. package/dist/commands/init.js.map +1 -1
  41. package/dist/commands/init.test.js +546 -10
  42. package/dist/commands/init.test.js.map +1 -1
  43. package/dist/commands/install-hooks-exit-contract.test.js +5 -0
  44. package/dist/commands/install-hooks-exit-contract.test.js.map +1 -1
  45. package/dist/commands/install-hooks.d.ts +26 -8
  46. package/dist/commands/install-hooks.d.ts.map +1 -1
  47. package/dist/commands/install-hooks.js +51 -6
  48. package/dist/commands/install-hooks.js.map +1 -1
  49. package/dist/commands/mail-degraded-e4.test.js +126 -0
  50. package/dist/commands/mail-degraded-e4.test.js.map +1 -1
  51. package/dist/commands/mail.d.ts +19 -1
  52. package/dist/commands/mail.d.ts.map +1 -1
  53. package/dist/commands/mail.js +195 -30
  54. package/dist/commands/mail.js.map +1 -1
  55. package/dist/commands/mail.test.js +291 -3
  56. package/dist/commands/mail.test.js.map +1 -1
  57. package/dist/commands/orient.d.ts.map +1 -1
  58. package/dist/commands/orient.js +82 -0
  59. package/dist/commands/orient.js.map +1 -1
  60. package/dist/commands/orient.test.js +144 -1
  61. package/dist/commands/orient.test.js.map +1 -1
  62. package/dist/commands/seat-cli-wiring.test.d.ts +20 -0
  63. package/dist/commands/seat-cli-wiring.test.d.ts.map +1 -0
  64. package/dist/commands/seat-cli-wiring.test.js +147 -0
  65. package/dist/commands/seat-cli-wiring.test.js.map +1 -0
  66. package/dist/commands/seat-poll-chain.test.d.ts +13 -0
  67. package/dist/commands/seat-poll-chain.test.d.ts.map +1 -0
  68. package/dist/commands/seat-poll-chain.test.js +103 -0
  69. package/dist/commands/seat-poll-chain.test.js.map +1 -0
  70. package/dist/commands/seat.d.ts +92 -0
  71. package/dist/commands/seat.d.ts.map +1 -0
  72. package/dist/commands/seat.js +649 -0
  73. package/dist/commands/seat.js.map +1 -0
  74. package/dist/commands/seat.test.d.ts +19 -0
  75. package/dist/commands/seat.test.d.ts.map +1 -0
  76. package/dist/commands/seat.test.js +532 -0
  77. package/dist/commands/seat.test.js.map +1 -0
  78. package/dist/commands/sessionstart-manifest-contract.test.d.ts +2 -0
  79. package/dist/commands/sessionstart-manifest-contract.test.d.ts.map +1 -0
  80. package/dist/commands/sessionstart-manifest-contract.test.js +176 -0
  81. package/dist/commands/sessionstart-manifest-contract.test.js.map +1 -0
  82. package/dist/hooks/__tests__/auto-context.test.js +20 -0
  83. package/dist/hooks/__tests__/auto-context.test.js.map +1 -1
  84. package/dist/hooks/auto-context.d.ts +19 -0
  85. package/dist/hooks/auto-context.d.ts.map +1 -1
  86. package/dist/hooks/auto-context.js +22 -4
  87. package/dist/hooks/auto-context.js.map +1 -1
  88. package/dist/index.js +73 -0
  89. package/dist/index.js.map +1 -1
  90. package/package.json +2 -2
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=sessionstart-manifest-contract.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sessionstart-manifest-contract.test.d.ts","sourceRoot":"","sources":["../../src/commands/sessionstart-manifest-contract.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,176 @@
1
+ /**
2
+ * Contract of the RENDERED SessionStart templates' inline selection-manifest
3
+ * rows (mmnto-ai/totem#2468 M1).
4
+ *
5
+ * The published `.cjs` templates run standalone in consumer repos, so they
6
+ * hand-build their manifest rows instead of importing core's writer. That is
7
+ * a drift hazard by construction; this suite is the coupling that makes it
8
+ * safe: every row a rendered template emits MUST parse under the REAL
9
+ * `SelectionManifestRowSchema` (strict at both levels). Change the schema or
10
+ * a template and this suite forces the other to move in the same PR.
11
+ *
12
+ * Executed the way the host runtimes execute the hooks: `node <hook>` in a
13
+ * temp cwd (the gemini-sessionstart-contract pattern).
14
+ */
15
+ import { spawnSync } from 'node:child_process';
16
+ import * as fs from 'node:fs';
17
+ import * as os from 'node:os';
18
+ import * as path from 'node:path';
19
+ import { afterEach, beforeEach, describe, expect, it } from 'vitest';
20
+ import { SelectionManifestRowSchema } from '@mmnto/totem';
21
+ import { cleanTmpDir } from '../test-utils.js';
22
+ import { CLAUDE_SESSION_START, GEMINI_SESSION_START } from './init-templates.js';
23
+ const SPAWN_TIMEOUT_MS = 60_000;
24
+ const TEST_TIMEOUT_MS = 90_000;
25
+ let tmpDir;
26
+ beforeEach(() => {
27
+ tmpDir = fs.mkdtempSync(path.join(os.tmpdir(), 'totem-2468-ss-'));
28
+ });
29
+ afterEach(() => {
30
+ cleanTmpDir(tmpDir);
31
+ });
32
+ function writeHook(rel, content) {
33
+ const hookPath = path.join(tmpDir, ...rel.split('/'));
34
+ fs.mkdirSync(path.dirname(hookPath), { recursive: true });
35
+ fs.writeFileSync(hookPath, content, 'utf-8');
36
+ return hookPath;
37
+ }
38
+ function runHook(hookPath, opts = {}) {
39
+ const env = { ...process.env };
40
+ // Deterministic attribution baseline: absent unless the test stamps a seat.
41
+ // ADR-078 / leg round 1 MB-2 — agent_source comes ONLY from this env var.
42
+ delete env.TOTEM_SELF_AGENT;
43
+ if (opts.seat !== undefined)
44
+ env.TOTEM_SELF_AGENT = opts.seat;
45
+ if (opts.pathEnv !== undefined) {
46
+ env.PATH = opts.pathEnv;
47
+ env.Path = opts.pathEnv;
48
+ }
49
+ const run = spawnSync(process.execPath, [hookPath], {
50
+ cwd: tmpDir,
51
+ encoding: 'utf-8',
52
+ timeout: SPAWN_TIMEOUT_MS,
53
+ input: '',
54
+ env,
55
+ });
56
+ if (run.error)
57
+ throw run.error;
58
+ return { status: run.status, stdout: run.stdout, stderr: run.stderr };
59
+ }
60
+ function readNdjson(rel) {
61
+ return fs
62
+ .readFileSync(path.join(tmpDir, rel), 'utf-8')
63
+ .split('\n')
64
+ .filter((l) => l.trim())
65
+ .map((l) => JSON.parse(l));
66
+ }
67
+ /** Cross-platform `totem` shim for the Gemini template's shell-resolved legs. */
68
+ function writeTotemShim(dir) {
69
+ fs.mkdirSync(dir, { recursive: true });
70
+ fs.writeFileSync(path.join(dir, 'totem.cmd'), '@echo off\r\necho shim-out %*\r\necho shim-err %* 1>&2\r\n', 'utf-8');
71
+ const sh = path.join(dir, 'totem');
72
+ fs.writeFileSync(sh, '#!/bin/sh\necho "shim-out $@"\necho "shim-err $@" 1>&2\n', 'utf-8');
73
+ fs.chmodSync(sh, 0o755);
74
+ }
75
+ /** Stub `@mmnto/cli` dist so the Claude template's node-spawned legs emit. */
76
+ function writeCliStub() {
77
+ const distDir = path.join(tmpDir, 'node_modules', '@mmnto', 'cli', 'dist');
78
+ fs.mkdirSync(distDir, { recursive: true });
79
+ fs.writeFileSync(path.join(distDir, 'index.js'), "process.stdout.write('stub-' + process.argv[2] + ' output\\n');\n", 'utf-8');
80
+ }
81
+ function expectValidRow(row) {
82
+ const parsed = SelectionManifestRowSchema.safeParse(row);
83
+ expect(parsed.success, parsed.success ? '' : JSON.stringify(parsed.error.issues, null, 2)).toBe(true);
84
+ }
85
+ describe('rendered Gemini SessionStart — manifest + A.3.a contract (mmnto-ai/totem#2468)', () => {
86
+ it('emits a schema-valid manifest row keyed to the minted session id, and the session_start denominator row', () => {
87
+ const hookPath = writeHook('.gemini/hooks/SessionStart.cjs', GEMINI_SESSION_START);
88
+ const shimDir = path.join(tmpDir, 'shim');
89
+ writeTotemShim(shimDir);
90
+ const run = runHook(hookPath, { pathEnv: shimDir + path.delimiter + process.env.PATH });
91
+ expect(run.status).toBe(0);
92
+ // Envelope untouched by the new blocks — stdout is still one JSON payload.
93
+ const envelope = JSON.parse(run.stdout);
94
+ expect(envelope.hookSpecificOutput.hookEventName).toBe('SessionStart');
95
+ const sessionId = fs
96
+ .readFileSync(path.join(tmpDir, '.totem', 'ledger', '.session-id'), 'utf-8')
97
+ .trim();
98
+ // A.3.a denominator row — new for the Gemini template with this slice.
99
+ const events = readNdjson('.totem/ledger/events.ndjson');
100
+ const sessionStart = events.filter((e) => e.type === 'session_start');
101
+ expect(sessionStart).toHaveLength(1);
102
+ expect(sessionStart[0].session_id).toBe(sessionId);
103
+ const rows = readNdjson('.totem/ledger/selection-manifests.ndjson');
104
+ expect(rows).toHaveLength(1);
105
+ const row = rows[0];
106
+ expectValidRow(row);
107
+ expect(row.emitter).toBe('session-start');
108
+ expect(row.session_id).toBe(sessionId);
109
+ expect(row.context).toEqual({ template: 'gemini-managed' });
110
+ const candidates = row.candidates;
111
+ expect(candidates.map((c) => c.id)).toEqual(['describe', 'orient:session-block']);
112
+ expect(candidates.every((c) => c.disposition === 'selected')).toBe(true);
113
+ expect(candidates.every((c) => c.bytes > 0)).toBe(true);
114
+ expect(candidates.every((c) => /^[0-9a-f]{16}$/.test(String(c.fingerprint)))).toBe(true);
115
+ // Attribution is stamped absence (ADR-078; leg round 1 MB-2): with
116
+ // TOTEM_SELF_AGENT unset, NEITHER row guesses a seat.
117
+ expect(sessionStart[0].agent_source).toBeUndefined();
118
+ expect(row.agent_source).toBeUndefined();
119
+ }, TEST_TIMEOUT_MS);
120
+ it('stamps the seat on both rows when TOTEM_SELF_AGENT is set', () => {
121
+ const hookPath = writeHook('.gemini/hooks/SessionStart.cjs', GEMINI_SESSION_START);
122
+ const shimDir = path.join(tmpDir, 'shim');
123
+ writeTotemShim(shimDir);
124
+ const run = runHook(hookPath, {
125
+ pathEnv: shimDir + path.delimiter + process.env.PATH,
126
+ seat: 'seat-x, seat-y',
127
+ });
128
+ expect(run.status).toBe(0);
129
+ const events = readNdjson('.totem/ledger/events.ndjson');
130
+ expect(events.find((e) => e.type === 'session_start').agent_source).toBe('seat-x');
131
+ const rows = readNdjson('.totem/ledger/selection-manifests.ndjson');
132
+ expect(rows[0].agent_source).toBe('seat-x');
133
+ }, TEST_TIMEOUT_MS);
134
+ });
135
+ describe('rendered Claude SessionStart — manifest contract (mmnto-ai/totem#2468)', () => {
136
+ it('emits a schema-valid two-candidate row when the CLI is installed', () => {
137
+ const hookPath = writeHook('.claude/hooks/SessionStart.cjs', CLAUDE_SESSION_START);
138
+ writeCliStub();
139
+ const run = runHook(hookPath, { seat: 'seat-x' });
140
+ expect(run.status).toBe(0);
141
+ // The briefing itself still reaches stdout ahead of any telemetry.
142
+ expect(run.stdout).toContain('stub-describe output');
143
+ const sessionId = fs
144
+ .readFileSync(path.join(tmpDir, '.totem', 'ledger', '.session-id'), 'utf-8')
145
+ .trim();
146
+ const rows = readNdjson('.totem/ledger/selection-manifests.ndjson');
147
+ expect(rows).toHaveLength(1);
148
+ const row = rows[0];
149
+ expectValidRow(row);
150
+ expect(row.session_id).toBe(sessionId);
151
+ expect(row.agent_source).toBe('seat-x');
152
+ // The A.3.a denominator row stamps the same seat (leg round 2,
153
+ // finding 6 — symmetry with the Gemini pinning).
154
+ const events = readNdjson('.totem/ledger/events.ndjson');
155
+ expect(events.find((e) => e.type === 'session_start').agent_source).toBe('seat-x');
156
+ expect(row.context).toEqual({ template: 'claude-managed' });
157
+ const candidates = row.candidates;
158
+ expect(candidates.map((c) => c.id)).toEqual(['describe', 'orient:session-block']);
159
+ expect(candidates.every((c) => c.bytes > 0)).toBe(true);
160
+ }, TEST_TIMEOUT_MS);
161
+ it('emits an honest zero-candidate row when the CLI is not installed (nothing was injected), with no guessed seat', () => {
162
+ const hookPath = writeHook('.claude/hooks/SessionStart.cjs', CLAUDE_SESSION_START);
163
+ const run = runHook(hookPath);
164
+ expect(run.status).toBe(0);
165
+ const rows = readNdjson('.totem/ledger/selection-manifests.ndjson');
166
+ expect(rows).toHaveLength(1);
167
+ expectValidRow(rows[0]);
168
+ expect(rows[0].candidates).toEqual([]);
169
+ // Attribution is stamped absence (ADR-078; leg round 1 MB-2) — on the
170
+ // denominator row too (leg round 2, finding 6).
171
+ expect(rows[0].agent_source).toBeUndefined();
172
+ const events = readNdjson('.totem/ledger/events.ndjson');
173
+ expect(events.find((e) => e.type === 'session_start').agent_source).toBeUndefined();
174
+ }, TEST_TIMEOUT_MS);
175
+ });
176
+ //# sourceMappingURL=sessionstart-manifest-contract.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sessionstart-manifest-contract.test.js","sourceRoot":"","sources":["../../src/commands/sessionstart-manifest-contract.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,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,0BAA0B,EAAE,MAAM,cAAc,CAAC;AAE1D,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAEjF,MAAM,gBAAgB,GAAG,MAAM,CAAC;AAChC,MAAM,eAAe,GAAG,MAAM,CAAC;AAE/B,IAAI,MAAc,CAAC;AAEnB,UAAU,CAAC,GAAG,EAAE;IACd,MAAM,GAAG,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,gBAAgB,CAAC,CAAC,CAAC;AACpE,CAAC,CAAC,CAAC;AAEH,SAAS,CAAC,GAAG,EAAE;IACb,WAAW,CAAC,MAAM,CAAC,CAAC;AACtB,CAAC,CAAC,CAAC;AAEH,SAAS,SAAS,CAAC,GAAW,EAAE,OAAe;IAC7C,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;IACtD,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC1D,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IAC7C,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAS,OAAO,CACd,QAAgB,EAChB,OAA4C,EAAE;IAM9C,MAAM,GAAG,GAAG,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAC/B,4EAA4E;IAC5E,0EAA0E;IAC1E,OAAO,GAAG,CAAC,gBAAgB,CAAC;IAC5B,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS;QAAE,GAAG,CAAC,gBAAgB,GAAG,IAAI,CAAC,IAAI,CAAC;IAC9D,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;QAC/B,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC;QACxB,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC;IAC1B,CAAC;IACD,MAAM,GAAG,GAAG,SAAS,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,EAAE;QAClD,GAAG,EAAE,MAAM;QACX,QAAQ,EAAE,OAAO;QACjB,OAAO,EAAE,gBAAgB;QACzB,KAAK,EAAE,EAAE;QACT,GAAG;KACJ,CAAC,CAAC;IACH,IAAI,GAAG,CAAC,KAAK;QAAE,MAAM,GAAG,CAAC,KAAK,CAAC;IAC/B,OAAO,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC;AACxE,CAAC;AAED,SAAS,UAAU,CAAC,GAAW;IAC7B,OAAO,EAAE;SACN,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,OAAO,CAAC;SAC7C,KAAK,CAAC,IAAI,CAAC;SACX,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;SACvB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAA4B,CAAC,CAAC;AAC1D,CAAC;AAED,iFAAiF;AACjF,SAAS,cAAc,CAAC,GAAW;IACjC,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACvC,EAAE,CAAC,aAAa,CACd,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,WAAW,CAAC,EAC3B,4DAA4D,EAC5D,OAAO,CACR,CAAC;IACF,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IACnC,EAAE,CAAC,aAAa,CAAC,EAAE,EAAE,0DAA0D,EAAE,OAAO,CAAC,CAAC;IAC1F,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;AAC1B,CAAC;AAED,8EAA8E;AAC9E,SAAS,YAAY;IACnB,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,cAAc,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;IAC3E,EAAE,CAAC,SAAS,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC3C,EAAE,CAAC,aAAa,CACd,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,EAC9B,mEAAmE,EACnE,OAAO,CACR,CAAC;AACJ,CAAC;AAED,SAAS,cAAc,CAAC,GAA4B;IAClD,MAAM,MAAM,GAAG,0BAA0B,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IACzD,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAC7F,IAAI,CACL,CAAC;AACJ,CAAC;AAED,QAAQ,CAAC,gFAAgF,EAAE,GAAG,EAAE;IAC9F,EAAE,CACA,yGAAyG,EACzG,GAAG,EAAE;QACH,MAAM,QAAQ,GAAG,SAAS,CAAC,gCAAgC,EAAE,oBAAoB,CAAC,CAAC;QACnF,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC1C,cAAc,CAAC,OAAO,CAAC,CAAC;QACxB,MAAM,GAAG,GAAG,OAAO,CAAC,QAAQ,EAAE,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;QACxF,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAE3B,2EAA2E;QAC3E,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAErC,CAAC;QACF,MAAM,CAAC,QAAQ,CAAC,kBAAkB,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAEvE,MAAM,SAAS,GAAG,EAAE;aACjB,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,aAAa,CAAC,EAAE,OAAO,CAAC;aAC3E,IAAI,EAAE,CAAC;QAEV,uEAAuE;QACvE,MAAM,MAAM,GAAG,UAAU,CAAC,6BAA6B,CAAC,CAAC;QACzD,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,eAAe,CAAC,CAAC;QACtE,MAAM,CAAC,YAAY,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QACrC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAE,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAEpD,MAAM,IAAI,GAAG,UAAU,CAAC,0CAA0C,CAAC,CAAC;QACpE,MAAM,CAAC,IAAI,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QAC7B,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAE,CAAC;QACrB,cAAc,CAAC,GAAG,CAAC,CAAC;QACpB,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QAC1C,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACvC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,EAAE,QAAQ,EAAE,gBAAgB,EAAE,CAAC,CAAC;QAC5D,MAAM,UAAU,GAAG,GAAG,CAAC,UAA4C,CAAC;QACpE,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,sBAAsB,CAAC,CAAC,CAAC;QAClF,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,KAAK,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACzE,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAE,CAAC,CAAC,KAAgB,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACpE,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEzF,mEAAmE;QACnE,sDAAsD;QACtD,MAAM,CAAC,YAAY,CAAC,CAAC,CAAE,CAAC,YAAY,CAAC,CAAC,aAAa,EAAE,CAAC;QACtD,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,aAAa,EAAE,CAAC;IAC3C,CAAC,EACD,eAAe,CAChB,CAAC;IAEF,EAAE,CACA,2DAA2D,EAC3D,GAAG,EAAE;QACH,MAAM,QAAQ,GAAG,SAAS,CAAC,gCAAgC,EAAE,oBAAoB,CAAC,CAAC;QACnF,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC1C,cAAc,CAAC,OAAO,CAAC,CAAC;QACxB,MAAM,GAAG,GAAG,OAAO,CAAC,QAAQ,EAAE;YAC5B,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI;YACpD,IAAI,EAAE,gBAAgB;SACvB,CAAC,CAAC;QACH,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC3B,MAAM,MAAM,GAAG,UAAU,CAAC,6BAA6B,CAAC,CAAC;QACzD,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,eAAe,CAAE,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACpF,MAAM,IAAI,GAAG,UAAU,CAAC,0CAA0C,CAAC,CAAC;QACpE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAE,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC/C,CAAC,EACD,eAAe,CAChB,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,wEAAwE,EAAE,GAAG,EAAE;IACtF,EAAE,CACA,kEAAkE,EAClE,GAAG,EAAE;QACH,MAAM,QAAQ,GAAG,SAAS,CAAC,gCAAgC,EAAE,oBAAoB,CAAC,CAAC;QACnF,YAAY,EAAE,CAAC;QACf,MAAM,GAAG,GAAG,OAAO,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;QAClD,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC3B,mEAAmE;QACnE,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,sBAAsB,CAAC,CAAC;QAErD,MAAM,SAAS,GAAG,EAAE;aACjB,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,aAAa,CAAC,EAAE,OAAO,CAAC;aAC3E,IAAI,EAAE,CAAC;QACV,MAAM,IAAI,GAAG,UAAU,CAAC,0CAA0C,CAAC,CAAC;QACpE,MAAM,CAAC,IAAI,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QAC7B,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAE,CAAC;QACrB,cAAc,CAAC,GAAG,CAAC,CAAC;QACpB,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACvC,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACxC,+DAA+D;QAC/D,iDAAiD;QACjD,MAAM,MAAM,GAAG,UAAU,CAAC,6BAA6B,CAAC,CAAC;QACzD,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,eAAe,CAAE,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACpF,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,EAAE,QAAQ,EAAE,gBAAgB,EAAE,CAAC,CAAC;QAC5D,MAAM,UAAU,GAAG,GAAG,CAAC,UAA4C,CAAC;QACpE,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,sBAAsB,CAAC,CAAC,CAAC;QAClF,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAE,CAAC,CAAC,KAAgB,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACtE,CAAC,EACD,eAAe,CAChB,CAAC;IAEF,EAAE,CACA,+GAA+G,EAC/G,GAAG,EAAE;QACH,MAAM,QAAQ,GAAG,SAAS,CAAC,gCAAgC,EAAE,oBAAoB,CAAC,CAAC;QACnF,MAAM,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;QAC9B,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC3B,MAAM,IAAI,GAAG,UAAU,CAAC,0CAA0C,CAAC,CAAC;QACpE,MAAM,CAAC,IAAI,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QAC7B,cAAc,CAAC,IAAI,CAAC,CAAC,CAAE,CAAC,CAAC;QACzB,MAAM,CAAC,IAAI,CAAC,CAAC,CAAE,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QACxC,sEAAsE;QACtE,gDAAgD;QAChD,MAAM,CAAC,IAAI,CAAC,CAAC,CAAE,CAAC,YAAY,CAAC,CAAC,aAAa,EAAE,CAAC;QAC9C,MAAM,MAAM,GAAG,UAAU,CAAC,6BAA6B,CAAC,CAAC;QACzD,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,eAAe,CAAE,CAAC,YAAY,CAAC,CAAC,aAAa,EAAE,CAAC;IACvF,CAAC,EACD,eAAe,CAChB,CAAC;AACJ,CAAC,CAAC,CAAC"}
@@ -98,6 +98,26 @@ describe('truncateResults', () => {
98
98
  const { content } = truncateResults(results, 10_000);
99
99
  expect(content).toContain('additional results omitted');
100
100
  });
101
+ // ─── Selection metadata (mmnto-ai/totem#2468) ───────────
102
+ it('records every fetched result — included AND char-budget cut — with measured blocks', () => {
103
+ const results = [fakeResult('A', 8000), fakeResult('B', 8000), fakeResult('C', 8000)];
104
+ const { included, candidates } = truncateResults(results, 10_000);
105
+ expect(included).toBe(1);
106
+ expect(candidates).toHaveLength(3);
107
+ expect(candidates.map((c) => c.included)).toEqual([true, false, false]);
108
+ // Measured over the formatted block, so bytes exceed the raw content length.
109
+ expect(candidates.every((c) => c.bytes > 8000)).toBe(true);
110
+ expect(candidates.every((c) => /^[0-9a-f]{16}$/.test(c.fingerprint))).toBe(true);
111
+ });
112
+ it('carries relevance through when present and omits it when absent', () => {
113
+ const withRel = { ...fakeResult('A', 100), relevance: 0.72 };
114
+ const { candidates } = truncateResults([withRel, fakeResult('B', 100)], 10_000);
115
+ expect(candidates[0].relevance).toBe(0.72);
116
+ expect(candidates[1].relevance).toBeUndefined();
117
+ });
118
+ it('returns empty candidates for no results', () => {
119
+ expect(truncateResults([], 10_000).candidates).toEqual([]);
120
+ });
101
121
  });
102
122
  // ─── getAutoContext (graceful degradation) ─────────────────
103
123
  describe('getAutoContext', () => {
@@ -1 +1 @@
1
- {"version":3,"file":"auto-context.test.js","sourceRoot":"","sources":["../../../src/hooks/__tests__/auto-context.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"auto-context.test.js","sourceRoot":"","sources":["../../../src/hooks/__tests__/auto-context.test.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,22 @@ export interface AutoContextOptions {
5
5
  limit?: number;
6
6
  projectRoot?: string;
7
7
  }
8
+ /**
9
+ * Per-result selection metadata (mmnto-ai/totem#2468) so the SessionStart
10
+ * hook can record its vector candidates in a selection manifest without
11
+ * re-deriving the search. Measured over each result's FORMATTED block — the
12
+ * exact bytes that ship (or would have shipped) in the injection. Purely
13
+ * observational: computing a cut candidate's block is a pure function over
14
+ * content the policy already fetched, so recording it alters nothing.
15
+ */
16
+ export interface AutoContextCandidateMeta {
17
+ filePath: string;
18
+ relevance?: number;
19
+ bytes: number;
20
+ approxTokens: number;
21
+ fingerprint: string;
22
+ included: boolean;
23
+ }
8
24
  export interface AutoContextResult {
9
25
  query: string;
10
26
  resultsIncluded: number;
@@ -12,6 +28,8 @@ export interface AutoContextResult {
12
28
  content: string;
13
29
  searchMethod: 'hybrid' | 'fts' | 'none';
14
30
  durationMs: number;
31
+ /** Additive (mmnto-ai/totem#2468); empty on every no-search path. */
32
+ candidates: AutoContextCandidateMeta[];
15
33
  }
16
34
  export interface ParsedBranch {
17
35
  ticket: string | null;
@@ -21,6 +39,7 @@ export declare function parseBranch(branchRef: string): ParsedBranch;
21
39
  export declare function truncateResults(results: SearchResult[], maxCharacters: number): {
22
40
  content: string;
23
41
  included: number;
42
+ candidates: AutoContextCandidateMeta[];
24
43
  };
25
44
  export declare function getAutoContext(options?: AutoContextOptions): Promise<AutoContextResult>;
26
45
  //# sourceMappingURL=auto-context.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"auto-context.d.ts","sourceRoot":"","sources":["../../src/hooks/auto-context.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAY,YAAY,EAAe,MAAM,cAAc,CAAC;AAOxE,MAAM,WAAW,kBAAkB;IACjC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,QAAQ,GAAG,KAAK,GAAG,MAAM,CAAC;IACxC,UAAU,EAAE,MAAM,CAAC;CACpB;AAOD,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,wBAAgB,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,YAAY,CAkB3D;AAcD,wBAAgB,eAAe,CAC7B,OAAO,EAAE,YAAY,EAAE,EACvB,aAAa,EAAE,MAAM,GACpB;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAsBvC;AAcD,wBAAsB,cAAc,CAAC,OAAO,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAgG7F"}
1
+ {"version":3,"file":"auto-context.d.ts","sourceRoot":"","sources":["../../src/hooks/auto-context.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAY,YAAY,EAAe,MAAM,cAAc,CAAC;AAcxE,MAAM,WAAW,kBAAkB;IACjC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,wBAAwB;IACvC,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,QAAQ,GAAG,KAAK,GAAG,MAAM,CAAC;IACxC,UAAU,EAAE,MAAM,CAAC;IACnB,qEAAqE;IACrE,UAAU,EAAE,wBAAwB,EAAE,CAAC;CACxC;AAOD,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,wBAAgB,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,YAAY,CAkB3D;AAcD,wBAAgB,eAAe,CAC7B,OAAO,EAAE,YAAY,EAAE,EACvB,aAAa,EAAE,MAAM,GACpB;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,wBAAwB,EAAE,CAAA;CAAE,CAuC/E;AAcD,wBAAsB,cAAc,CAAC,OAAO,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAkG7F"}
@@ -1,6 +1,6 @@
1
1
  import * as fs from 'node:fs';
2
2
  import * as path from 'node:path';
3
- import { createEmbedder, LanceStore, requireEmbedding, TotemConfigSchema } from '@mmnto/totem';
3
+ import { createEmbedder, fingerprintContent, LanceStore, measureCandidateCost, requireEmbedding, TotemConfigSchema, } from '@mmnto/totem';
4
4
  import { loadEnv } from '../utils.js';
5
5
  // ─── Branch Parsing ───────────────────────────────────────
6
6
  const TICKET_RE = /(\d+)/;
@@ -31,7 +31,7 @@ function formatResult(result, index) {
31
31
  }
32
32
  export function truncateResults(results, maxCharacters) {
33
33
  if (results.length === 0)
34
- return { content: '', included: 0 };
34
+ return { content: '', included: 0, candidates: [] };
35
35
  const blocks = [];
36
36
  let totalChars = 0;
37
37
  let included = 0;
@@ -43,12 +43,28 @@ export function truncateResults(results, maxCharacters) {
43
43
  totalChars += block.length;
44
44
  included++;
45
45
  }
46
+ // Selection metadata over EVERY fetched result — including the char-budget
47
+ // cut, whose exclusion is exactly the half the manifest exists to record
48
+ // (mmnto-ai/totem#2468). formatResult is pure, so measuring a cut block
49
+ // observes without altering.
50
+ const candidates = results.map((r, i) => {
51
+ const block = formatResult(r, i);
52
+ const { bytes, approxTokens } = measureCandidateCost(block);
53
+ return {
54
+ filePath: r.filePath,
55
+ ...(typeof r.relevance === 'number' && { relevance: r.relevance }),
56
+ bytes,
57
+ approxTokens,
58
+ fingerprint: fingerprintContent(block),
59
+ included: i < included,
60
+ };
61
+ });
46
62
  const omitted = results.length - included;
47
63
  let content = blocks.join('\n\n---\n\n');
48
64
  if (omitted > 0) {
49
65
  content += `\n\n(${omitted} additional result${omitted > 1 ? 's' : ''} omitted for token budget)`;
50
66
  }
51
- return { content, included };
67
+ return { content, included, candidates };
52
68
  }
53
69
  // ─── Config Loading (lightweight) ─────────────────────────
54
70
  async function loadConfig(configPath) {
@@ -73,6 +89,7 @@ export async function getAutoContext(options) {
73
89
  content: '',
74
90
  searchMethod: 'none',
75
91
  durationMs: Date.now() - start,
92
+ candidates: [],
76
93
  };
77
94
  // ── Locate config & LanceDB ──
78
95
  const configPath = path.join(projectRoot, 'totem.config.ts');
@@ -134,7 +151,7 @@ export async function getAutoContext(options) {
134
151
  return { ...empty, durationMs: Date.now() - start };
135
152
  }
136
153
  }
137
- const { content, included } = truncateResults(results, maxCharacters);
154
+ const { content, included, candidates } = truncateResults(results, maxCharacters);
138
155
  return {
139
156
  query,
140
157
  resultsIncluded: included,
@@ -142,6 +159,7 @@ export async function getAutoContext(options) {
142
159
  content,
143
160
  searchMethod,
144
161
  durationMs: Date.now() - start,
162
+ candidates,
145
163
  };
146
164
  }
147
165
  //# sourceMappingURL=auto-context.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"auto-context.js","sourceRoot":"","sources":["../../src/hooks/auto-context.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"auto-context.js","sourceRoot":"","sources":["../../src/hooks/auto-context.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -104,6 +104,7 @@ program
104
104
  .option('--force-skill-refresh', 'Force-overwrite skill files lacking canonical markers (may destroy user content; review the diff after)')
105
105
  .option('--gates <list>', 'Install action-gate PreToolUse hooks: a comma-list of gate names (e.g. freeze-check) or "all"')
106
106
  .option('--doctrine', 'Wire orient.parityManifest to the installed @mmnto/strategy-doctrine pin (no-op until the pin is added)')
107
+ .option('-y, --yes', 'Answer every prompt with its default and read nothing from stdin (also implied when stdin is not a TTY)')
107
108
  .action(async (options) => {
108
109
  try {
109
110
  await initCommand({
@@ -114,6 +115,7 @@ program
114
115
  forceSkillRefresh: options.forceSkillRefresh,
115
116
  gates: options.gates,
116
117
  doctrine: options.doctrine,
118
+ yes: options.yes,
117
119
  });
118
120
  }
119
121
  catch (err) {
@@ -740,6 +742,77 @@ wtCmd
740
742
  handleError(err);
741
743
  }
742
744
  });
745
+ // ─── Seat noun-verb subcommands (mmnto-ai/totem#2511) ──────────────────────
746
+ // Declared seat lifecycle: `add` registers a seat (dirs + an `active` marker +
747
+ // the `host_agents` append where a config.json already exists) and EMITS the
748
+ // birth checklist for every surface the binary cannot reach honestly;
749
+ // `suspend`/`remove` write the declared state that drops a seat from broadcast
750
+ // denominators without discharging one obligation or deleting one byte.
751
+ // Nothing here auto-edits a vendor hook file or a foreign surface.
752
+ const seatCmd = program
753
+ .command('seat')
754
+ .description('Declared seat lifecycle: register, suspend, retire, and list cohort seats (mmnto-ai/totem#2511)');
755
+ seatCmd
756
+ .command('add <seat-id>')
757
+ .description('Register a seat: outbox/processed/journal dirs + an `active` marker, then emit the birth checklist (never auto-applied)')
758
+ .option('--reactivate', 'Transition an existing SUSPENDED seat back to active (never resurrects a retired seat)')
759
+ .action(async (seatId, opts) => {
760
+ try {
761
+ const { seatAddCommand } = await import('./commands/seat.js');
762
+ await seatAddCommand(seatId, opts);
763
+ // totem-context: handleError is the CLI error boundary (returns `never` — prints + process.exit), identical to every sibling command action; nothing is swallowed.
764
+ }
765
+ catch (err) {
766
+ handleError(err);
767
+ }
768
+ });
769
+ seatCmd
770
+ .command('suspend <seat-id>')
771
+ .description('Declare a seat suspended — it leaves broadcast required-sets and round denominators; its directed mail still surfaces and its obligations are NOT discharged')
772
+ .option('--reason <text>', 'Recorded ruling for the suspension (the §6.6 audit trail)')
773
+ .action(async (seatId, opts) => {
774
+ try {
775
+ const { seatSuspendCommand } = await import('./commands/seat.js');
776
+ await seatSuspendCommand(seatId, opts);
777
+ // totem-context: handleError is the CLI error boundary (returns `never` — prints + process.exit), identical to every sibling command action; nothing is swallowed.
778
+ }
779
+ catch (err) {
780
+ handleError(err);
781
+ }
782
+ });
783
+ seatCmd
784
+ .command('remove <seat-id>')
785
+ .description('Declare a seat retired — a durable tombstone; nothing is deleted (retention is mmnto-ai/totem#2518) and the deregistration checklist is emitted, not applied')
786
+ .option('--reason <text>', 'Recorded ruling for the retirement (the §6.6 audit trail)')
787
+ .action(async (seatId, opts) => {
788
+ try {
789
+ const { seatRemoveCommand } = await import('./commands/seat.js');
790
+ await seatRemoveCommand(seatId, opts);
791
+ // totem-context: handleError is the CLI error boundary (returns `never` — prints + process.exit), identical to every sibling command action; nothing is swallowed.
792
+ }
793
+ catch (err) {
794
+ handleError(err);
795
+ }
796
+ });
797
+ seatCmd
798
+ .command('list')
799
+ .description('List every registered seat with its declared lifecycle (derived at read time — the dirs ARE the roster)')
800
+ .option('--json', 'Emit the full seat-status array as JSON on stdout')
801
+ .action(async (_opts, cmd) => {
802
+ try {
803
+ const { seatListCommand } = await import('./commands/seat.js');
804
+ // The program-level `--json` swallows the flag when it appears after the
805
+ // subcommand (commander parent/child option collision,
806
+ // mmnto-ai/totem#2097): optsWithGlobals() merges both scopes so
807
+ // `totem seat list --json` and `totem --json seat list` agree.
808
+ const { json } = cmd.optsWithGlobals();
809
+ await seatListCommand({ json });
810
+ // totem-context: handleError is the CLI error boundary (returns `never` — prints + process.exit), identical to every sibling command action; nothing is swallowed.
811
+ }
812
+ catch (err) {
813
+ handleError(err);
814
+ }
815
+ });
743
816
  // ECL outbox retention prune (mmnto-ai/totem#2279; parent mmnto-ai/totem-strategy#700;
744
817
  // doctrine/ecl-discipline.md § 4.4). The binary-guaranteed cohort-wide replacement
745
818
  // for `scripts/prune-outbox.mjs` — self-resolves the caller's agent so a seat can