@mmnto/cli 1.101.2 → 1.103.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 (45) hide show
  1. package/dist/commands/init-detect.js +1 -1
  2. package/dist/commands/init-detect.js.map +1 -1
  3. package/dist/commands/init-detect.test.js +2 -1
  4. package/dist/commands/init-detect.test.js.map +1 -1
  5. package/dist/commands/init-templates.d.ts.map +1 -1
  6. package/dist/commands/init-templates.js +118 -9
  7. package/dist/commands/init-templates.js.map +1 -1
  8. package/dist/commands/init.test.js +186 -5
  9. package/dist/commands/init.test.js.map +1 -1
  10. package/dist/commands/review-fan.d.ts +9 -3
  11. package/dist/commands/review-fan.d.ts.map +1 -1
  12. package/dist/commands/review-fan.js +131 -16
  13. package/dist/commands/review-fan.js.map +1 -1
  14. package/dist/commands/review-fan.test.js +246 -7
  15. package/dist/commands/review-fan.test.js.map +1 -1
  16. package/dist/commands/shield-nonreview.test.d.ts +24 -0
  17. package/dist/commands/shield-nonreview.test.d.ts.map +1 -0
  18. package/dist/commands/shield-nonreview.test.js +175 -0
  19. package/dist/commands/shield-nonreview.test.js.map +1 -0
  20. package/dist/commands/shield.d.ts +33 -7
  21. package/dist/commands/shield.d.ts.map +1 -1
  22. package/dist/commands/shield.js +96 -50
  23. package/dist/commands/shield.js.map +1 -1
  24. package/dist/commands/shield.test.js +69 -2
  25. package/dist/commands/shield.test.js.map +1 -1
  26. package/dist/hook/schema.d.ts +2 -2
  27. package/dist/orchestrators/orchestrator.d.ts +86 -1
  28. package/dist/orchestrators/orchestrator.d.ts.map +1 -1
  29. package/dist/orchestrators/orchestrator.js +277 -9
  30. package/dist/orchestrators/orchestrator.js.map +1 -1
  31. package/dist/orchestrators/orchestrator.test.js +240 -4
  32. package/dist/orchestrators/orchestrator.test.js.map +1 -1
  33. package/dist/orchestrators/shell-orchestrator.d.ts +12 -1
  34. package/dist/orchestrators/shell-orchestrator.d.ts.map +1 -1
  35. package/dist/orchestrators/shell-orchestrator.js +256 -49
  36. package/dist/orchestrators/shell-orchestrator.js.map +1 -1
  37. package/dist/orchestrators/shell-orchestrator.test.js +252 -4
  38. package/dist/orchestrators/shell-orchestrator.test.js.map +1 -1
  39. package/dist/utils.d.ts +18 -1
  40. package/dist/utils.d.ts.map +1 -1
  41. package/dist/utils.js +389 -108
  42. package/dist/utils.js.map +1 -1
  43. package/dist/utils.test.js +406 -14
  44. package/dist/utils.test.js.map +1 -1
  45. package/package.json +2 -2
@@ -4,10 +4,12 @@ import * as fs from 'node:fs';
4
4
  import * as path from 'node:path';
5
5
  import { z } from 'zod';
6
6
  import { log } from '../ui.js';
7
- import { assertValidModelName, isQuotaError } from './orchestrator.js';
7
+ import { assertValidModelName, classifyInvokeFailure, OrchestratorInvokeError, } from './orchestrator.js';
8
8
  // ─── Constants ───────────────────────────────────────
9
9
  const LLM_TIMEOUT_MS = 180_000;
10
10
  const LLM_MAX_OUTPUT = 50 * 1024 * 1024; // 50 MB — safety cap on streamed output
11
+ const RUNTIME_EVIDENCE_LIMIT_BYTES = 64 * 1024;
12
+ const RUNTIME_EVIDENCE_SEGMENT_BYTES = RUNTIME_EVIDENCE_LIMIT_BYTES / 2;
11
13
  const TEMP_ID_BYTES = 4;
12
14
  /** execFileSync on Windows can't resolve executables without `shell: true`. */
13
15
  const IS_WIN = process.platform === 'win32';
@@ -25,6 +27,114 @@ function quoteShellArg(value) {
25
27
  // this helper. See GCA + Shield discussion on mmnto/totem#1429.
26
28
  return IS_WIN ? `"${value.replace(/"/g, '\\"')}"` : `'${value.replace(/'/g, "'\\''")}'`;
27
29
  }
30
+ function decodeUtf8Segment(buffer, trimFromStart) {
31
+ let decoded = buffer.toString('utf8');
32
+ while (Buffer.byteLength(decoded, 'utf8') > buffer.length && decoded.length > 0) {
33
+ decoded = trimFromStart ? decoded.slice(1) : decoded.slice(0, -1);
34
+ }
35
+ return decoded;
36
+ }
37
+ /**
38
+ * Retain the legacy 50 MiB semantic stream independently from the much
39
+ * smaller diagnostic head/tail window. Evidence remains raw in memory; DLP
40
+ * masking happens at the run-artifact boundary.
41
+ */
42
+ function createStreamCapture() {
43
+ const semanticChunks = [];
44
+ let semanticBytes = 0;
45
+ let observedBytes = 0;
46
+ let prefix = Buffer.alloc(0);
47
+ let tail = Buffer.alloc(0);
48
+ return {
49
+ append(chunk) {
50
+ const bytes = Buffer.isBuffer(chunk) ? chunk : Buffer.from(chunk);
51
+ observedBytes += bytes.length;
52
+ if (semanticBytes < LLM_MAX_OUTPUT) {
53
+ const remaining = LLM_MAX_OUTPUT - semanticBytes;
54
+ const retained = bytes.subarray(0, remaining);
55
+ if (retained.length > 0)
56
+ semanticChunks.push(retained);
57
+ semanticBytes += retained.length;
58
+ }
59
+ if (prefix.length < RUNTIME_EVIDENCE_LIMIT_BYTES) {
60
+ const remaining = RUNTIME_EVIDENCE_LIMIT_BYTES - prefix.length;
61
+ prefix = Buffer.concat([prefix, bytes.subarray(0, remaining)]);
62
+ }
63
+ if (bytes.length >= RUNTIME_EVIDENCE_SEGMENT_BYTES) {
64
+ tail = bytes.subarray(bytes.length - RUNTIME_EVIDENCE_SEGMENT_BYTES);
65
+ }
66
+ else {
67
+ const combined = Buffer.concat([tail, bytes]);
68
+ tail = combined.subarray(Math.max(0, combined.length - RUNTIME_EVIDENCE_SEGMENT_BYTES));
69
+ }
70
+ },
71
+ semanticText() {
72
+ return Buffer.concat(semanticChunks, semanticBytes).toString('utf8');
73
+ },
74
+ evidence() {
75
+ const truncated = observedBytes > RUNTIME_EVIDENCE_LIMIT_BYTES;
76
+ const headBuffer = truncated ? prefix.subarray(0, RUNTIME_EVIDENCE_SEGMENT_BYTES) : prefix;
77
+ const head = decodeUtf8Segment(headBuffer, false);
78
+ const tailText = truncated ? decodeUtf8Segment(tail, true) : undefined;
79
+ const retainedBytes = Buffer.byteLength(head, 'utf8') +
80
+ (tailText === undefined ? 0 : Buffer.byteLength(tailText, 'utf8'));
81
+ return {
82
+ encoding: 'utf-8',
83
+ head,
84
+ ...(tailText !== undefined ? { tail: tailText } : {}),
85
+ observedBytes,
86
+ retainedBytes,
87
+ limitBytes: RUNTIME_EVIDENCE_LIMIT_BYTES,
88
+ truncated,
89
+ };
90
+ },
91
+ };
92
+ }
93
+ /** Best-effort tree termination that never prevents timeout settlement. */
94
+ export function killShellProcessTree(child, platform = process.platform, spawnProcess = spawn, killGroup = process.kill) {
95
+ let directKillAttempted = false;
96
+ const killChild = () => {
97
+ if (directKillAttempted)
98
+ return;
99
+ directKillAttempted = true;
100
+ try {
101
+ child.kill();
102
+ // totem-context: timeout teardown is best-effort; a kill race must not replace or block the already-determined timeout rejection.
103
+ }
104
+ catch (_err) {
105
+ void _err;
106
+ }
107
+ };
108
+ if (platform === 'win32' && child.pid) {
109
+ try {
110
+ const taskkill = spawnProcess('taskkill', ['/pid', String(child.pid), '/T', '/F'], {
111
+ stdio: 'ignore',
112
+ });
113
+ taskkill.once('error', killChild);
114
+ taskkill.once('close', (code) => {
115
+ if (code !== 0)
116
+ killChild();
117
+ });
118
+ // totem-context: taskkill can be absent or race process exit; direct child kill is the intentional best-effort fallback.
119
+ }
120
+ catch (_err) {
121
+ killChild();
122
+ }
123
+ return;
124
+ }
125
+ if (child.pid) {
126
+ try {
127
+ killGroup(-child.pid);
128
+ // totem-context: Unix process-group exit races are expected during timeout teardown; fall back to direct child kill without changing settlement.
129
+ }
130
+ catch (_err) {
131
+ killChild();
132
+ }
133
+ return;
134
+ }
135
+ // A spawn can time out before a pid is assigned.
136
+ killChild();
137
+ }
28
138
  // ─── Gemini CLI JSON parsing ─────────────────────────
29
139
  const GeminiModelStatsSchema = z.object({
30
140
  tokens: z.object({ input: z.number(), candidates: z.number() }).optional(),
@@ -42,6 +152,7 @@ export function tryParseGeminiJson(raw) {
42
152
  let data;
43
153
  try {
44
154
  data = JSON.parse(raw);
155
+ // totem-context: non-JSON is a supported shell-provider output shape; the caller intentionally falls back to normalized raw text.
45
156
  }
46
157
  catch {
47
158
  return null;
@@ -62,6 +173,27 @@ export function tryParseGeminiJson(raw) {
62
173
  latencyMs,
63
174
  };
64
175
  }
176
+ const ClaudeOutputSchema = z.object({
177
+ type: z.literal('result'),
178
+ is_error: z.literal(false),
179
+ result: z.string(),
180
+ });
181
+ /** Unwrap only Claude CLI's typed success envelope, never arbitrary outer JSON. */
182
+ export function tryParseClaudeJson(raw) {
183
+ let data;
184
+ try {
185
+ data = JSON.parse(raw);
186
+ // totem-context: non-JSON Claude output is valid when JSON mode is not configured; the caller intentionally preserves normalized raw text.
187
+ }
188
+ catch {
189
+ return null;
190
+ }
191
+ const result = ClaudeOutputSchema.safeParse(data);
192
+ return result.success ? result.data.result : null;
193
+ }
194
+ function isClaudeCommand(command) {
195
+ return /(?:^|[\s"'])claude(?:\.exe)?(?:[\s"']|$)/i.test(command);
196
+ }
65
197
  export async function invokeShellOrchestrator(opts) {
66
198
  // mmnto/totem#1291 Phase 3: opts.systemPrompt is concatenated with prompt
67
199
  // before being written to the tempfile because shell orchestrators talk to
@@ -72,6 +204,8 @@ export async function invokeShellOrchestrator(opts) {
72
204
  // shell CLI fallback. Caught by Shield AI on the first push attempt as
73
205
  // part of the same cascade as the Gemini/OpenAI/Ollama fixes.
74
206
  const { prompt, systemPrompt, command, model, cwd, tag, totemDir } = opts;
207
+ const provider = opts.provider ?? 'shell';
208
+ const route = opts.route ?? 'configured-shell';
75
209
  // Reject poisoned model names BEFORE we ever interpolate into a shell string.
76
210
  // The {model} token used to be substituted raw, which turned a config-supplied
77
211
  // string into a shell-injection sink. A malicious totem.config.ts could set
@@ -107,70 +241,135 @@ export async function invokeShellOrchestrator(opts) {
107
241
  log.info(tag, 'Invoking orchestrator (this may take 15-60 seconds)...');
108
242
  const startMs = Date.now();
109
243
  try {
110
- const raw = await new Promise((resolve, reject) => {
111
- const child = spawn(resolvedCmd, {
112
- cwd,
113
- shell: true,
114
- stdio: ['ignore', 'pipe', 'pipe'],
115
- detached: !IS_WIN, // process group for clean tree-kill on Unix
116
- });
117
- let stdout = '';
118
- let stderr = '';
244
+ const execution = await new Promise((resolve, reject) => {
245
+ const stdout = createStreamCapture();
246
+ const stderr = createStreamCapture();
247
+ let child;
248
+ try {
249
+ child = spawn(resolvedCmd, {
250
+ cwd,
251
+ shell: true,
252
+ stdio: ['ignore', 'pipe', 'pipe'],
253
+ detached: !IS_WIN, // process group for clean tree-kill on Unix
254
+ });
255
+ // totem-context: synchronous spawn failures are converted into the structured process-spawn contract and rejected below; no failure is swallowed.
256
+ }
257
+ catch (err) {
258
+ const cause = err instanceof Error ? err : new Error(String(err));
259
+ const attempt = {
260
+ sequence: 1,
261
+ route,
262
+ provider,
263
+ model,
264
+ status: 'failed',
265
+ durationMs: Date.now() - startMs,
266
+ failureKind: 'process-spawn',
267
+ ...('code' in cause && typeof cause.code === 'string'
268
+ ? { providerCode: cause.code }
269
+ : {}),
270
+ process: {
271
+ exitCode: null,
272
+ signal: null,
273
+ timedOut: false,
274
+ stdout: stdout.evidence(),
275
+ stderr: stderr.evidence(),
276
+ },
277
+ };
278
+ reject(new OrchestratorInvokeError('Shell orchestrator command failed to start.', 'process-spawn', [attempt], { cause }));
279
+ return;
280
+ }
119
281
  let timedOut = false;
120
- child.stdout.on('data', (chunk) => {
121
- if (stdout.length < LLM_MAX_OUTPUT)
122
- stdout += chunk.toString();
123
- });
124
- child.stderr.on('data', (chunk) => {
125
- if (stderr.length < LLM_MAX_OUTPUT)
126
- stderr += chunk.toString();
282
+ let settled = false;
283
+ child.stdout.on('data', (chunk) => stdout.append(chunk));
284
+ child.stderr.on('data', (chunk) => stderr.append(chunk));
285
+ const processEvidence = (exitCode, signal) => ({
286
+ exitCode,
287
+ signal,
288
+ timedOut,
289
+ ...(timedOut ? { timeoutMs: LLM_TIMEOUT_MS } : {}),
290
+ stdout: stdout.evidence(),
291
+ stderr: stderr.evidence(),
127
292
  });
293
+ const rejectInvocation = (err, process, context, classificationSource = err) => {
294
+ if (settled)
295
+ return;
296
+ settled = true;
297
+ clearTimeout(timer);
298
+ const failureKind = classifyInvokeFailure(classificationSource, context);
299
+ const attempt = {
300
+ sequence: 1,
301
+ route,
302
+ provider,
303
+ model,
304
+ status: 'failed',
305
+ durationMs: Date.now() - startMs,
306
+ failureKind,
307
+ ...('status' in classificationSource && typeof classificationSource.status === 'number'
308
+ ? { providerStatus: classificationSource.status }
309
+ : {}),
310
+ ...('code' in classificationSource && typeof classificationSource.code === 'string'
311
+ ? { providerCode: classificationSource.code }
312
+ : {}),
313
+ process,
314
+ };
315
+ reject(new OrchestratorInvokeError(err.message, failureKind, [attempt], { cause: err }));
316
+ };
128
317
  const killTree = () => {
129
318
  // On Windows with shell: true, child.kill() only kills the shell,
130
319
  // leaving the actual process (grandchild) alive as a zombie.
131
- // Use taskkill /T to kill the entire process tree.
132
- if (IS_WIN && child.pid) {
133
- try {
134
- spawn('taskkill', ['/pid', String(child.pid), '/T', '/F'], { stdio: 'ignore' });
135
- }
136
- catch (_err) {
137
- // taskkill failed — fall back to basic kill
138
- child.kill();
139
- }
140
- }
141
- else if (child.pid) {
142
- process.kill(-child.pid); // totem-ignore — Unix process group kill
143
- }
320
+ killShellProcessTree(child);
144
321
  };
145
322
  const timer = setTimeout(() => {
146
323
  timedOut = true;
147
324
  killTree();
325
+ const err = Object.assign(new Error(`[Totem Error] Orchestrator timed out after ${LLM_TIMEOUT_MS / 1000}s.`), { code: 'ETIMEDOUT' });
326
+ rejectInvocation(err, processEvidence(null, null), { timedOut: true });
148
327
  }, LLM_TIMEOUT_MS);
149
328
  child.on('error', (err) => {
150
- clearTimeout(timer);
151
- reject(new Error(`[Totem Error] Shell orchestrator command failed: ${err.message}\n${stderr}`));
329
+ const spawnErr = Object.assign(new Error('[Totem Error] Shell orchestrator command failed to start.', {
330
+ cause: err,
331
+ }), 'code' in err ? { code: err.code } : {});
332
+ rejectInvocation(spawnErr, processEvidence(null, null), { spawnFailed: true });
152
333
  });
153
- child.on('close', (code) => {
154
- clearTimeout(timer);
155
- if (timedOut) {
156
- reject(Object.assign(new Error(`[Totem Error] Orchestrator timed out after ${LLM_TIMEOUT_MS / 1000}s.\n${stderr}`), { code: 'ETIMEDOUT' }));
334
+ child.on('close', (code, signal) => {
335
+ if (settled)
157
336
  return;
158
- }
159
- if (code !== 0) {
160
- const fullError = new Error(`Process exited with code ${code}\n${stderr}`);
161
- if (isQuotaError(fullError)) {
162
- fullError.name = 'QuotaError';
163
- reject(fullError);
164
- }
165
- else {
166
- reject(new Error(`[Totem Error] Shell orchestrator command failed: ${fullError.message}`));
167
- }
337
+ const normalizedSignal = (signal ?? null);
338
+ const process = processEvidence(code, normalizedSignal);
339
+ if (code !== 0 || normalizedSignal !== null) {
340
+ const closedWithoutStatus = code === null && normalizedSignal === null;
341
+ const processDescription = closedWithoutStatus
342
+ ? 'closed without an exit code or signal'
343
+ : normalizedSignal === null
344
+ ? `exited with code ${code}`
345
+ : `exited with code ${code} (signal ${normalizedSignal})`;
346
+ const err = new Error(`[Totem Error] Shell orchestrator command failed: Process ${processDescription}.`);
347
+ const diagnosticText = [process.stderr?.head, process.stderr?.tail]
348
+ .filter((part) => part !== undefined)
349
+ .join('\n');
350
+ const classificationSource = Object.assign(new Error(diagnosticText), code === null ? {} : { exitCode: code });
351
+ const failureContext = {
352
+ ...(code === null ? {} : { exitCode: code }),
353
+ ...(normalizedSignal === null ? {} : { signal: normalizedSignal }),
354
+ };
355
+ rejectInvocation(err, process, failureContext, classificationSource);
168
356
  return;
169
357
  }
170
- resolve(stdout);
358
+ settled = true;
359
+ clearTimeout(timer);
360
+ resolve({ raw: stdout.semanticText(), process, durationMs: Date.now() - startMs });
171
361
  });
172
362
  });
173
- const wallMs = Date.now() - startMs;
363
+ const { raw, process: executionProcess, durationMs: wallMs } = execution;
364
+ const succeededAttempt = {
365
+ sequence: 1,
366
+ route,
367
+ provider,
368
+ model,
369
+ status: 'succeeded',
370
+ durationMs: wallMs,
371
+ process: executionProcess,
372
+ };
174
373
  const gemini = tryParseGeminiJson(raw);
175
374
  if (gemini) {
176
375
  return {
@@ -178,9 +377,17 @@ export async function invokeShellOrchestrator(opts) {
178
377
  inputTokens: gemini.inputTokens,
179
378
  outputTokens: gemini.outputTokens,
180
379
  durationMs: gemini.latencyMs ?? wallMs,
380
+ attempts: [succeededAttempt],
181
381
  };
182
382
  }
183
- return { content: raw.trim(), inputTokens: null, outputTokens: null, durationMs: wallMs };
383
+ const claude = isClaudeCommand(resolvedCmd) ? tryParseClaudeJson(raw) : null;
384
+ return {
385
+ content: (claude ?? raw).trim(),
386
+ inputTokens: null,
387
+ outputTokens: null,
388
+ durationMs: wallMs,
389
+ attempts: [succeededAttempt],
390
+ };
184
391
  }
185
392
  finally {
186
393
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"shell-orchestrator.js","sourceRoot":"","sources":["../../src/orchestrators/shell-orchestrator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"shell-orchestrator.js","sourceRoot":"","sources":["../../src/orchestrators/shell-orchestrator.ts"],"names":[],"mappings":"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"}