chorus-codes 0.8.31 → 0.8.33

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 (98) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/app-path-routes-manifest.json +2 -2
  3. package/.next/build-manifest.json +2 -2
  4. package/.next/prerender-manifest.json +3 -3
  5. package/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  6. package/.next/server/app/_global-error.html +1 -1
  7. package/.next/server/app/_global-error.rsc +1 -1
  8. package/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  9. package/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  10. package/.next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
  11. package/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  12. package/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  13. package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  14. package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  15. package/.next/server/app/_not-found.html +1 -1
  16. package/.next/server/app/_not-found.rsc +1 -1
  17. package/.next/server/app/_not-found.segments/_full.segment.rsc +1 -1
  18. package/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  19. package/.next/server/app/_not-found.segments/_index.segment.rsc +1 -1
  20. package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  21. package/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  22. package/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
  23. package/.next/server/app/connect/page_client-reference-manifest.js +1 -1
  24. package/.next/server/app/demo/[scenario]/page_client-reference-manifest.js +1 -1
  25. package/.next/server/app/new/page_client-reference-manifest.js +1 -1
  26. package/.next/server/app/new.html +1 -1
  27. package/.next/server/app/new.rsc +1 -1
  28. package/.next/server/app/new.segments/_full.segment.rsc +1 -1
  29. package/.next/server/app/new.segments/_head.segment.rsc +1 -1
  30. package/.next/server/app/new.segments/_index.segment.rsc +1 -1
  31. package/.next/server/app/new.segments/_tree.segment.rsc +1 -1
  32. package/.next/server/app/new.segments/new/__PAGE__.segment.rsc +1 -1
  33. package/.next/server/app/new.segments/new.segment.rsc +1 -1
  34. package/.next/server/app/onboarding/page_client-reference-manifest.js +1 -1
  35. package/.next/server/app/onboarding.html +1 -1
  36. package/.next/server/app/onboarding.rsc +1 -1
  37. package/.next/server/app/onboarding.segments/_full.segment.rsc +1 -1
  38. package/.next/server/app/onboarding.segments/_head.segment.rsc +1 -1
  39. package/.next/server/app/onboarding.segments/_index.segment.rsc +1 -1
  40. package/.next/server/app/onboarding.segments/_tree.segment.rsc +1 -1
  41. package/.next/server/app/onboarding.segments/onboarding/__PAGE__.segment.rsc +1 -1
  42. package/.next/server/app/onboarding.segments/onboarding.segment.rsc +1 -1
  43. package/.next/server/app/page_client-reference-manifest.js +1 -1
  44. package/.next/server/app/personas/page_client-reference-manifest.js +1 -1
  45. package/.next/server/app/personas.html +1 -1
  46. package/.next/server/app/personas.rsc +1 -1
  47. package/.next/server/app/personas.segments/_full.segment.rsc +1 -1
  48. package/.next/server/app/personas.segments/_head.segment.rsc +1 -1
  49. package/.next/server/app/personas.segments/_index.segment.rsc +1 -1
  50. package/.next/server/app/personas.segments/_tree.segment.rsc +1 -1
  51. package/.next/server/app/personas.segments/personas/__PAGE__.segment.rsc +1 -1
  52. package/.next/server/app/personas.segments/personas.segment.rsc +1 -1
  53. package/.next/server/app/runs/[runId]/page_client-reference-manifest.js +1 -1
  54. package/.next/server/app/runs/page_client-reference-manifest.js +1 -1
  55. package/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  56. package/.next/server/app/settings/permissions/page_client-reference-manifest.js +1 -1
  57. package/.next/server/app/settings.html +1 -1
  58. package/.next/server/app/settings.rsc +1 -1
  59. package/.next/server/app/settings.segments/_full.segment.rsc +1 -1
  60. package/.next/server/app/settings.segments/_head.segment.rsc +1 -1
  61. package/.next/server/app/settings.segments/_index.segment.rsc +1 -1
  62. package/.next/server/app/settings.segments/_tree.segment.rsc +1 -1
  63. package/.next/server/app/settings.segments/settings/__PAGE__.segment.rsc +1 -1
  64. package/.next/server/app/settings.segments/settings.segment.rsc +1 -1
  65. package/.next/server/app/templates/page_client-reference-manifest.js +1 -1
  66. package/.next/server/app/templates.html +1 -1
  67. package/.next/server/app/templates.rsc +1 -1
  68. package/.next/server/app/templates.segments/_full.segment.rsc +1 -1
  69. package/.next/server/app/templates.segments/_head.segment.rsc +1 -1
  70. package/.next/server/app/templates.segments/_index.segment.rsc +1 -1
  71. package/.next/server/app/templates.segments/_tree.segment.rsc +1 -1
  72. package/.next/server/app/templates.segments/templates/__PAGE__.segment.rsc +1 -1
  73. package/.next/server/app/templates.segments/templates.segment.rsc +1 -1
  74. package/.next/server/app-paths-manifest.json +2 -2
  75. package/.next/server/middleware-build-manifest.js +1 -1
  76. package/.next/server/pages/404.html +1 -1
  77. package/.next/server/pages/500.html +1 -1
  78. package/.next/server/server-reference-manifest.json +1 -1
  79. package/.next/trace +20 -20
  80. package/.next/trace-build +1 -1
  81. package/dist/cli/commands/diagnose.js +330 -4
  82. package/dist/cli/commands/diagnose.js.map +1 -1
  83. package/dist/daemon/agents/gemini.js +8 -3
  84. package/dist/daemon/agents/gemini.js.map +1 -1
  85. package/dist/daemon/agents/preflight.js +6 -1
  86. package/dist/daemon/agents/preflight.js.map +1 -1
  87. package/dist/daemon/headless.js +48 -1
  88. package/dist/daemon/headless.js.map +1 -1
  89. package/dist/daemon/runner/reviewer-driver.js +80 -47
  90. package/dist/daemon/runner/reviewer-driver.js.map +1 -1
  91. package/dist/lib/db/connection.js +1 -0
  92. package/dist/lib/db/connection.js.map +1 -1
  93. package/dist/lib/db/schema.sql +4 -0
  94. package/package.json +1 -1
  95. package/dist/lib/voice-failure-tracker.js +0 -137
  96. package/dist/lib/voice-failure-tracker.js.map +0 -1
  97. /package/.next/static/{T0s2ZLaA6Teu6-2nDostn → nonMfuqNquRl2CHrtuEp4}/_buildManifest.js +0 -0
  98. /package/.next/static/{T0s2ZLaA6Teu6-2nDostn → nonMfuqNquRl2CHrtuEp4}/_ssgManifest.js +0 -0
package/.next/trace-build CHANGED
@@ -1 +1 @@
1
- [{"name":"run-webpack","duration":11415922,"timestamp":6938739159301,"id":14,"parentId":1,"tags":{},"startTime":1778330109585,"traceId":"645b563729cf3f86"},{"name":"run-typescript","duration":5633432,"timestamp":6938750579336,"id":2118,"parentId":1,"tags":{},"startTime":1778330121005,"traceId":"645b563729cf3f86"},{"name":"static-check","duration":452567,"timestamp":6938756261508,"id":2121,"parentId":1,"tags":{},"startTime":1778330126688,"traceId":"645b563729cf3f86"},{"name":"static-generation","duration":1360924,"timestamp":6938756884903,"id":2161,"parentId":1,"tags":{},"startTime":1778330127311,"traceId":"645b563729cf3f86"},{"name":"collect-build-traces","duration":6321431,"timestamp":6938756714486,"id":2158,"parentId":1,"tags":{},"startTime":1778330127141,"traceId":"645b563729cf3f86"},{"name":"telemetry-flush","duration":30,"timestamp":6938763037606,"id":2170,"parentId":1,"tags":{},"startTime":1778330133464,"traceId":"645b563729cf3f86"},{"name":"next-build","duration":23997383,"timestamp":6938739040263,"id":1,"tags":{"buildMode":"default","version":"16.2.4","bundler":"webpack","has-custom-webpack-config":"false","use-build-worker":"true"},"startTime":1778330109466,"traceId":"645b563729cf3f86"}]
1
+ [{"name":"run-webpack","duration":10811815,"timestamp":7023970584017,"id":14,"parentId":1,"tags":{},"startTime":1778415341010,"traceId":"7d3d7adc3a54581c"},{"name":"run-typescript","duration":5715800,"timestamp":7023981400525,"id":2118,"parentId":1,"tags":{},"startTime":1778415351827,"traceId":"7d3d7adc3a54581c"},{"name":"static-check","duration":468562,"timestamp":7023987162651,"id":2121,"parentId":1,"tags":{},"startTime":1778415357589,"traceId":"7d3d7adc3a54581c"},{"name":"static-generation","duration":1301385,"timestamp":7023987806968,"id":2161,"parentId":1,"tags":{},"startTime":1778415358233,"traceId":"7d3d7adc3a54581c"},{"name":"collect-build-traces","duration":6414290,"timestamp":7023987631674,"id":2158,"parentId":1,"tags":{},"startTime":1778415358058,"traceId":"7d3d7adc3a54581c"},{"name":"telemetry-flush","duration":31,"timestamp":7023994047636,"id":2170,"parentId":1,"tags":{},"startTime":1778415364474,"traceId":"7d3d7adc3a54581c"},{"name":"next-build","duration":23556737,"timestamp":7023970490939,"id":1,"tags":{"buildMode":"default","version":"16.2.4","bundler":"webpack","has-custom-webpack-config":"false","use-build-worker":"true"},"startTime":1778415340917,"traceId":"7d3d7adc3a54581c"}]
@@ -4,8 +4,11 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports._testing = void 0;
7
+ exports.smokeOneCli = smokeOneCli;
8
+ exports.readLatestAttempt = readLatestAttempt;
7
9
  exports.formatReport = formatReport;
8
10
  exports.registerDiagnoseCommand = registerDiagnoseCommand;
11
+ const child_process_1 = require("child_process");
9
12
  const fs_1 = __importDefault(require("fs"));
10
13
  const os_1 = __importDefault(require("os"));
11
14
  const path_1 = __importDefault(require("path"));
@@ -16,6 +19,20 @@ function abbreviateHome(p) {
16
19
  const home = os_1.default.homedir();
17
20
  return p.startsWith(home) ? '~' + p.slice(home.length) : p;
18
21
  }
22
+ /**
23
+ * Redact every occurrence of $HOME embedded inside a free-form string —
24
+ * used for spawn() error messages and process stderr where `abbreviateHome`
25
+ * can't help because the path doesn't start at offset 0 (e.g.
26
+ * `spawn /home/alice/foo ENOENT`).
27
+ */
28
+ function redactHomePaths(s) {
29
+ const home = os_1.default.homedir();
30
+ if (!home)
31
+ return s;
32
+ // Escape for regex use — Node's homedir is a literal path, but be safe.
33
+ const escaped = home.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
34
+ return s.replace(new RegExp(escaped, 'g'), '~');
35
+ }
19
36
  /**
20
37
  * Resolve the bin path through any symlinks before classifying. A
21
38
  * `sudo npm install -g chorus-codes` plants a symlink at
@@ -164,6 +181,197 @@ function tailFile(p, lines) {
164
181
  return `(read failed: ${err instanceof Error ? err.message : String(err)})`;
165
182
  }
166
183
  }
184
+ /**
185
+ * Run `<bin> --version` with a 2s wall clock and capture exit code +
186
+ * a single line of useful output. Detects the case where the CLI is
187
+ * present at the expected path but explodes on invocation (auth
188
+ * missing, missing native dep, broken symlink target). That class of
189
+ * failure is invisible in pure path-detection — it's the most common
190
+ * reason a CLI shows up as ✓ in the bundle but a chat against it
191
+ * silently fails.
192
+ *
193
+ * Async (`spawn` + Promise) so a 5-CLI fleet smokes concurrently
194
+ * instead of sequentially blocking for 5×2s on the worst case.
195
+ *
196
+ * Privacy: any string that lands in the bundle runs through
197
+ * `abbreviateHome()` so $HOME paths from spawn errors / process stderr
198
+ * don't leak the reporter's username or workspace layout.
199
+ *
200
+ * Timeout: hard SIGKILL after 2s — a hung wrapper that traps SIGTERM
201
+ * can't extend the deadline. The timeout case is surfaced with an
202
+ * explicit `timedOut: true` flag so the report says "timed out"
203
+ * instead of being indistinguishable from a non-zero exit.
204
+ */
205
+ function smokeOneCli(bin) {
206
+ return new Promise((resolve) => {
207
+ let stdout = '';
208
+ let stderr = '';
209
+ let settled = false;
210
+ const settle = (r) => {
211
+ if (settled)
212
+ return;
213
+ settled = true;
214
+ resolve(r);
215
+ };
216
+ let child;
217
+ try {
218
+ child = (0, child_process_1.spawn)(bin, ['--version'], { windowsHide: true });
219
+ }
220
+ catch (err) {
221
+ settle({
222
+ ok: false,
223
+ exitCode: -1,
224
+ stderrFirstLine: redactHomePaths((err instanceof Error ? err.message : String(err)).slice(0, 200)),
225
+ });
226
+ return;
227
+ }
228
+ const timer = setTimeout(() => {
229
+ // Hard kill — SIGTERM can be trapped by wrapper scripts.
230
+ try {
231
+ child.kill('SIGKILL');
232
+ }
233
+ catch {
234
+ /* already dead */
235
+ }
236
+ settle({
237
+ ok: false,
238
+ exitCode: -1,
239
+ timedOut: true,
240
+ stderrFirstLine: 'timed out after 2s',
241
+ });
242
+ }, 2_000);
243
+ child.stdout?.on('data', (d) => {
244
+ // Cap at 4 KiB — a `--version` printing megabytes is misbehaving
245
+ // and we don't want the bundle to bloat from it.
246
+ if (stdout.length < 4096)
247
+ stdout += d.toString('utf-8');
248
+ });
249
+ child.stderr?.on('data', (d) => {
250
+ if (stderr.length < 4096)
251
+ stderr += d.toString('utf-8');
252
+ });
253
+ child.on('error', (err) => {
254
+ clearTimeout(timer);
255
+ settle({
256
+ ok: false,
257
+ exitCode: -1,
258
+ stderrFirstLine: redactHomePaths(err.message.split('\n')[0]?.slice(0, 200) ?? ''),
259
+ });
260
+ });
261
+ child.on('close', (code, signal) => {
262
+ clearTimeout(timer);
263
+ if (code === 0) {
264
+ // Some CLIs print version on stdout, some on stderr.
265
+ const first = stdout.split('\n').find((l) => l.trim()) ||
266
+ stderr.split('\n').find((l) => l.trim()) ||
267
+ '';
268
+ settle({ ok: true, exitCode: 0, version: first.trim().replace(/^v/, '') });
269
+ return;
270
+ }
271
+ if (signal) {
272
+ // External signal (OOM-killer, unrelated kill) — distinguish
273
+ // from non-zero exit.
274
+ settle({
275
+ ok: false,
276
+ exitCode: -1,
277
+ timedOut: signal === 'SIGKILL' || signal === 'SIGTERM' || undefined,
278
+ stderrFirstLine: `signalled: ${signal}`,
279
+ });
280
+ return;
281
+ }
282
+ const firstLine = (stderr + stdout)
283
+ .split('\n')
284
+ .find((l) => l.trim())
285
+ ?.trim()
286
+ .slice(0, 200);
287
+ settle({
288
+ ok: false,
289
+ exitCode: code ?? -1,
290
+ stderrFirstLine: firstLine ? redactHomePaths(firstLine) : undefined,
291
+ });
292
+ });
293
+ });
294
+ }
295
+ /**
296
+ * Read the LAST line of a participant's `_attempts.jsonl` and parse it.
297
+ * The reviewer writes one row per failed attempt in the run's `finally`
298
+ * block; the last row is the most recent failure for that slot —
299
+ * exactly the field a bug reporter needs to see (errorKind + length of
300
+ * errorMessage). Tolerant of malformed lines because the file is
301
+ * append-only and a partial write can leave a torn tail.
302
+ *
303
+ * **Privacy**: `errorMessage` is exposed as `errorMessageBytes` only —
304
+ * raw error strings from LLM APIs frequently echo the user's prompt,
305
+ * template content, file paths, or provider response excerpts back to
306
+ * the caller, and `chorus diagnose` output is meant to be pasted into
307
+ * public bug reports. The on-disk JSONL still has the full message;
308
+ * users can attach that file manually if a maintainer needs more.
309
+ */
310
+ function readLatestAttempt(file) {
311
+ try {
312
+ if (!fs_1.default.existsSync(file))
313
+ return null;
314
+ const raw = fs_1.default.readFileSync(file, 'utf-8');
315
+ const lines = raw.split('\n').filter((l) => l.trim());
316
+ for (let i = lines.length - 1; i >= 0; i--) {
317
+ try {
318
+ const obj = JSON.parse(lines[i]);
319
+ if (typeof obj.errorKind === 'string' && typeof obj.errorMessage === 'string') {
320
+ return {
321
+ errorKind: obj.errorKind,
322
+ errorMessageBytes: obj.errorMessage.length,
323
+ lineage: typeof obj.lineage === 'string' ? obj.lineage : 'unknown',
324
+ model: typeof obj.model === 'string' ? obj.model : null,
325
+ };
326
+ }
327
+ }
328
+ catch {
329
+ /* try the previous line */
330
+ }
331
+ }
332
+ return null;
333
+ }
334
+ catch {
335
+ return null;
336
+ }
337
+ }
338
+ /**
339
+ * Walk a chat's per-round directories and surface every participant
340
+ * whose `_attempts.jsonl` shows a failure. A reviewer that succeeded
341
+ * writes no JSONL — the file's mere presence is the signal.
342
+ */
343
+ function gatherErroredParticipants(chatId) {
344
+ const chatDir = path_1.default.join(os_1.default.homedir(), '.chorus', 'chats', chatId);
345
+ if (!fs_1.default.existsSync(chatDir))
346
+ return [];
347
+ const out = [];
348
+ try {
349
+ const rounds = fs_1.default.readdirSync(chatDir).filter((n) => n.startsWith('round-'));
350
+ for (const r of rounds) {
351
+ const rDir = path_1.default.join(chatDir, r);
352
+ if (!fs_1.default.statSync(rDir).isDirectory())
353
+ continue;
354
+ for (const part of fs_1.default.readdirSync(rDir)) {
355
+ const partDir = path_1.default.join(rDir, part);
356
+ const attempts = path_1.default.join(partDir, '_attempts.jsonl');
357
+ const latest = readLatestAttempt(attempts);
358
+ if (latest) {
359
+ out.push({
360
+ dir: `${r}/${part}`,
361
+ lineage: latest.lineage,
362
+ model: latest.model,
363
+ errorKind: latest.errorKind,
364
+ errorMessageBytes: latest.errorMessageBytes,
365
+ });
366
+ }
367
+ }
368
+ }
369
+ }
370
+ catch {
371
+ /* missing dir, permission error — best-effort */
372
+ }
373
+ return out;
374
+ }
167
375
  async function gather() {
168
376
  const chorusDir = path_1.default.join(os_1.default.homedir(), '.chorus');
169
377
  const cliVersion = shared_js_1.pkg.version;
@@ -266,20 +474,80 @@ async function gather() {
266
474
  }
267
475
  // CLI detection — reuse the same module doctor uses, but emit a
268
476
  // compact summary (no PATH visibility section; that's doctor's job).
477
+ // Also smoke each detected bin (`<bin> --version`) so the bundle
478
+ // captures CLIs that resolve on PATH but explode on invocation —
479
+ // the most common "✓ detected but chats fail silently" case.
480
+ // Smokes run in parallel via Promise.all-around-Promise.resolve so a
481
+ // 5-CLI fleet doesn't block diagnose for 5×2s = 10s on the worst case.
269
482
  let clis = [];
270
483
  try {
271
484
  const { detectAllClis } = await import('../../lib/cli-detect.js');
272
485
  const found = detectAllClis(true);
273
- clis = found.map((d) => ({
486
+ const smokes = await Promise.all(found.map((d) => (d.found && d.path ? smokeOneCli(d.path) : Promise.resolve(undefined))));
487
+ clis = found.map((d, i) => ({
274
488
  id: d.id,
275
489
  found: d.found,
276
490
  path: d.path ? abbreviateHome(d.path) : undefined,
277
491
  reason: d.reason,
492
+ smoke: smokes[i],
278
493
  }));
279
494
  }
280
495
  catch {
281
496
  /* detection module load failed — leave empty */
282
497
  }
498
+ // Voice health — count voices by disabled_reason. Surfaces the
499
+ // auto-disable signal from the voice-failure-tracker (chorus-106)
500
+ // so reporters know when chorus has silently sidelined a model.
501
+ // Best-effort: same DB connection as the chats/voices counts above.
502
+ let voiceHealth = { total: 0, autoQuota: [], autoMissing: [], userDisabled: 0 };
503
+ try {
504
+ const { getDb } = await import('../../lib/db/connection.js');
505
+ const db = await getDb();
506
+ const total = await db.execute('SELECT COUNT(*) AS n FROM voices');
507
+ const disabled = await db.execute("SELECT id, disabled_reason FROM voices WHERE enabled = 0");
508
+ const autoQuota = [];
509
+ const autoMissing = [];
510
+ let userDisabled = 0;
511
+ for (const row of disabled.rows) {
512
+ if (row.disabled_reason === 'auto_quota')
513
+ autoQuota.push(row.id);
514
+ else if (row.disabled_reason === 'auto_missing')
515
+ autoMissing.push(row.id);
516
+ else
517
+ userDisabled++;
518
+ }
519
+ voiceHealth = {
520
+ total: Number(total.rows[0].n),
521
+ autoQuota,
522
+ autoMissing,
523
+ userDisabled,
524
+ };
525
+ }
526
+ catch {
527
+ /* DB unreachable / schema older — leave defaults */
528
+ }
529
+ // Recent failed chats — last 5 chats whose status is non-terminal-OK.
530
+ // Joined to per-participant `_attempts.jsonl` so the bundle shows the
531
+ // ACTUAL failure reason (errorKind + first line of errorMessage)
532
+ // instead of just "this chat failed". Cuts the most common triage
533
+ // roundtrip ("what specifically happens when you run it?").
534
+ let recentFailedChats = [];
535
+ try {
536
+ const { getDb } = await import('../../lib/db/connection.js');
537
+ const db = await getDb();
538
+ const rows = await db.execute(`SELECT id, status, created_at FROM chats
539
+ WHERE status IN ('failed', 'blocked', 'cancelled')
540
+ ORDER BY created_at DESC LIMIT 5`);
541
+ recentFailedChats = rows.rows.map((r) => ({
542
+ chatId: r.id,
543
+ status: r.status,
544
+ createdAt: r.created_at,
545
+ erroredParticipants: gatherErroredParticipants(r.id),
546
+ }));
547
+ }
548
+ catch {
549
+ /* DB unreachable or chats schema mismatch — leave empty */
550
+ }
283
551
  return {
284
552
  chorus: { cliVersion, runningDaemonVersion, mismatch },
285
553
  runtime: {
@@ -315,6 +583,8 @@ async function gather() {
315
583
  },
316
584
  crashes: { count: crashCount, latest: latestCrash },
317
585
  clis,
586
+ voiceHealth,
587
+ recentFailedChats,
318
588
  };
319
589
  }
320
590
  function formatReport(s) {
@@ -347,9 +617,63 @@ function formatReport(s) {
347
617
  }
348
618
  else {
349
619
  for (const c of s.clis) {
350
- lines.push(c.found
351
- ? ` ${c.id.padEnd(14)} ${c.path ?? ''}`
352
- : ` ✗ ${c.id.padEnd(14)} not found${c.reason ? ` — ${c.reason}` : ''}`);
620
+ if (!c.found) {
621
+ lines.push(` ${c.id.padEnd(14)} not found${c.reason ? ` — ${c.reason}` : ''}`);
622
+ continue;
623
+ }
624
+ lines.push(` ✓ ${c.id.padEnd(14)} ${c.path ?? ''}`);
625
+ if (c.smoke) {
626
+ if (c.smoke.ok) {
627
+ lines.push(` smoke: ok${c.smoke.version ? ` (v${c.smoke.version})` : ''}`);
628
+ }
629
+ else if (c.smoke.timedOut) {
630
+ const detail = c.smoke.stderrFirstLine ? ` — ${c.smoke.stderrFirstLine}` : '';
631
+ lines.push(` ✗ smoke timed out (>2s)${detail}`);
632
+ }
633
+ else {
634
+ const detail = c.smoke.stderrFirstLine
635
+ ? ` — ${c.smoke.stderrFirstLine}`
636
+ : '';
637
+ lines.push(` ✗ smoke failed (exit ${c.smoke.exitCode ?? '?'})${detail}`);
638
+ }
639
+ }
640
+ }
641
+ }
642
+ lines.push('');
643
+ lines.push('## Voice health');
644
+ lines.push(`total: ${s.voiceHealth.total}`);
645
+ lines.push(`auto-disabled (quota): ${s.voiceHealth.autoQuota.length}` +
646
+ (s.voiceHealth.autoQuota.length > 0
647
+ ? ` → ${s.voiceHealth.autoQuota.join(', ')}`
648
+ : ''));
649
+ lines.push(`auto-disabled (missing): ${s.voiceHealth.autoMissing.length}` +
650
+ (s.voiceHealth.autoMissing.length > 0
651
+ ? ` → ${s.voiceHealth.autoMissing.join(', ')}`
652
+ : ''));
653
+ lines.push(`user-disabled: ${s.voiceHealth.userDisabled}`);
654
+ lines.push('');
655
+ lines.push('## Recent failed chats');
656
+ if (s.recentFailedChats.length === 0) {
657
+ lines.push('(none)');
658
+ }
659
+ else {
660
+ for (const c of s.recentFailedChats) {
661
+ lines.push(` ${c.chatId} status=${c.status}`);
662
+ if (c.erroredParticipants.length === 0) {
663
+ lines.push(' (no errored participants — see daemon.log)');
664
+ }
665
+ else {
666
+ for (const p of c.erroredParticipants) {
667
+ const modelPart = p.model ? ` model=${p.model}` : '';
668
+ lines.push(` ${p.dir} lineage=${p.lineage}${modelPart}`);
669
+ // errorKind is a controlled vocabulary (auth_error,
670
+ // quota_exhausted, network, parse, timeout, ...). The full
671
+ // errorMessage stays on disk in `_attempts.jsonl` — we only
672
+ // surface the byte length so the reporter can attach the
673
+ // file if a maintainer needs more.
674
+ lines.push(` ${p.errorKind} (errorMessage: ${p.errorMessageBytes} bytes on disk)`);
675
+ }
676
+ }
353
677
  }
354
678
  }
355
679
  lines.push('');
@@ -400,5 +724,7 @@ exports._testing = {
400
724
  abbreviateHome,
401
725
  resolveBinPath,
402
726
  filterBenignNoise,
727
+ smokeOneCli,
728
+ readLatestAttempt,
403
729
  };
404
730
  //# sourceMappingURL=diagnose.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"diagnose.js","sourceRoot":"","sources":["../../../src/cli/commands/diagnose.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"diagnose.js","sourceRoot":"","sources":["../../../src/cli/commands/diagnose.ts"],"names":[],"mappings":"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"}
@@ -60,11 +60,16 @@ exports.geminiShim = {
60
60
  */
61
61
  runHeadless(opts) {
62
62
  // -p needs a non-empty value to flip gemini into non-interactive mode.
63
- // The single-space placeholder is harmless once stdin carries the real
64
- // prompt (gemini concatenates them with the stdin content first).
63
+ // Windows note: when daemon spawns with shell:true (required for .cmd
64
+ // shims, see headless.ts), Node concatenates argv with spaces and the
65
+ // shell collapses runs of whitespace — the original placeholder ' '
66
+ // got eaten and gemini parsed --output-format as the -p value, then
67
+ // exited with help. Use a non-whitespace placeholder. The trailing
68
+ // character on the prompt is harmless: gemini appends it after the
69
+ // stdin payload, which our reviewers ignore as content noise.
65
70
  const args = [
66
71
  '-p',
67
- ' ',
72
+ '_',
68
73
  '--output-format',
69
74
  'stream-json',
70
75
  '--skip-trust',
@@ -1 +1 @@
1
- {"version":3,"file":"gemini.js","sourceRoot":"","sources":["../../../src/daemon/agents/gemini.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"gemini.js","sourceRoot":"","sources":["../../../src/daemon/agents/gemini.ts"],"names":[],"mappings":"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"}
@@ -74,7 +74,12 @@ function preTrustCodexWorkspace(codexHome, cwd) {
74
74
  else {
75
75
  node_fs_1.default.mkdirSync(codexHome, { recursive: true });
76
76
  }
77
- const marker = `[projects."${cwd}"]`;
77
+ // TOML basic strings (double-quoted) interpret \U/\u as unicode escapes.
78
+ // Windows paths like "C:\Users\..." trip "too few unicode value digits"
79
+ // when codex parses its config. Both Codex and Node accept forward slashes
80
+ // on Windows, so we normalize at write time.
81
+ const normalizedCwd = cwd.replace(/\\/g, '/');
82
+ const marker = `[projects."${normalizedCwd}"]`;
78
83
  if (body.includes(marker))
79
84
  return; // already present
80
85
  const block = `\n${marker}\ntrust_level = "trusted"\n`;
@@ -1 +1 @@
1
- {"version":3,"file":"preflight.js","sourceRoot":"","sources":["../../../src/daemon/agents/preflight.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;GAUG;;;;;AAiBH,0DAyCC;AAMD,wDAeC;AA7ED,sDAAyB;AACzB,0DAA6B;AAC7B,sDAAyB;AAEzB;;;;;;;;;;GAUG;AACH,SAAgB,uBAAuB,CAAC,GAAW;IACjD,MAAM,UAAU,GAAG,mBAAI,CAAC,IAAI,CAAC,iBAAE,CAAC,OAAO,EAAE,EAAE,cAAc,CAAC,CAAC;IAC3D,IAAI,MAAM,GAA4B,EAAE,CAAC;IAEzC,IAAI,iBAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC9B,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,iBAAE,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;YACjD,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC3B,CAAC;QAAC,MAAM,CAAC;YACP,0DAA0D;YAC1D,OAAO;QACT,CAAC;IACH,CAAC;IAED,MAAM,QAAQ,GAAG,CAAC,MAAM,CAAC,QAAQ,IAAI,OAAO,MAAM,CAAC,QAAQ,KAAK,QAAQ;QACtE,CAAC,CAAE,MAAM,CAAC,QAAoD;QAC9D,CAAC,CAAC,EAAE,CAAC,CAAC;IAER,MAAM,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;IACrC,MAAM,OAAO,GAAG,QAAQ,CAAC,sBAAsB,KAAK,IAAI,CAAC;IACzD,MAAM,QAAQ,GAAG,MAAM,CAAC,oCAAoC,KAAK,IAAI,CAAC;IACtE,IAAI,OAAO,IAAI,QAAQ;QAAE,OAAO,CAAC,mBAAmB;IAEpD,QAAQ,CAAC,GAAG,CAAC,GAAG;QACd,GAAG,QAAQ;QACX,sBAAsB,EAAE,IAAI;KAC7B,CAAC;IAEF,iBAAE,CAAC,aAAa,CACd,UAAU,EACV,IAAI,CAAC,SAAS,CACZ;QACE,GAAG,MAAM;QACT,QAAQ;QACR,oCAAoC,EAAE,IAAI;KAC3C,EACD,IAAI,EACJ,CAAC,CACF,EACD,OAAO,CACR,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,SAAgB,sBAAsB,CAAC,SAAiB,EAAE,GAAW;IACnE,MAAM,UAAU,GAAG,mBAAI,CAAC,IAAI,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;IACvD,IAAI,IAAI,GAAG,EAAE,CAAC;IAEd,IAAI,iBAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC9B,IAAI,GAAG,iBAAE,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IAC9C,CAAC;SAAM,CAAC;QACN,iBAAE,CAAC,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC/C,CAAC;IAED,MAAM,MAAM,GAAG,cAAc,GAAG,IAAI,CAAC;IACrC,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;QAAE,OAAO,CAAC,kBAAkB;IAErD,MAAM,KAAK,GAAG,KAAK,MAAM,6BAA6B,CAAC;IACvD,iBAAE,CAAC,aAAa,CAAC,UAAU,EAAE,IAAI,GAAG,KAAK,EAAE,OAAO,CAAC,CAAC;AACtD,CAAC"}
1
+ {"version":3,"file":"preflight.js","sourceRoot":"","sources":["../../../src/daemon/agents/preflight.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;GAUG;;;;;AAiBH,0DAyCC;AAMD,wDAoBC;AAlFD,sDAAyB;AACzB,0DAA6B;AAC7B,sDAAyB;AAEzB;;;;;;;;;;GAUG;AACH,SAAgB,uBAAuB,CAAC,GAAW;IACjD,MAAM,UAAU,GAAG,mBAAI,CAAC,IAAI,CAAC,iBAAE,CAAC,OAAO,EAAE,EAAE,cAAc,CAAC,CAAC;IAC3D,IAAI,MAAM,GAA4B,EAAE,CAAC;IAEzC,IAAI,iBAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC9B,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,iBAAE,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;YACjD,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC3B,CAAC;QAAC,MAAM,CAAC;YACP,0DAA0D;YAC1D,OAAO;QACT,CAAC;IACH,CAAC;IAED,MAAM,QAAQ,GAAG,CAAC,MAAM,CAAC,QAAQ,IAAI,OAAO,MAAM,CAAC,QAAQ,KAAK,QAAQ;QACtE,CAAC,CAAE,MAAM,CAAC,QAAoD;QAC9D,CAAC,CAAC,EAAE,CAAC,CAAC;IAER,MAAM,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;IACrC,MAAM,OAAO,GAAG,QAAQ,CAAC,sBAAsB,KAAK,IAAI,CAAC;IACzD,MAAM,QAAQ,GAAG,MAAM,CAAC,oCAAoC,KAAK,IAAI,CAAC;IACtE,IAAI,OAAO,IAAI,QAAQ;QAAE,OAAO,CAAC,mBAAmB;IAEpD,QAAQ,CAAC,GAAG,CAAC,GAAG;QACd,GAAG,QAAQ;QACX,sBAAsB,EAAE,IAAI;KAC7B,CAAC;IAEF,iBAAE,CAAC,aAAa,CACd,UAAU,EACV,IAAI,CAAC,SAAS,CACZ;QACE,GAAG,MAAM;QACT,QAAQ;QACR,oCAAoC,EAAE,IAAI;KAC3C,EACD,IAAI,EACJ,CAAC,CACF,EACD,OAAO,CACR,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,SAAgB,sBAAsB,CAAC,SAAiB,EAAE,GAAW;IACnE,MAAM,UAAU,GAAG,mBAAI,CAAC,IAAI,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;IACvD,IAAI,IAAI,GAAG,EAAE,CAAC;IAEd,IAAI,iBAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC9B,IAAI,GAAG,iBAAE,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IAC9C,CAAC;SAAM,CAAC;QACN,iBAAE,CAAC,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC/C,CAAC;IAED,yEAAyE;IACzE,wEAAwE;IACxE,2EAA2E;IAC3E,6CAA6C;IAC7C,MAAM,aAAa,GAAG,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IAC9C,MAAM,MAAM,GAAG,cAAc,aAAa,IAAI,CAAC;IAC/C,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;QAAE,OAAO,CAAC,kBAAkB;IAErD,MAAM,KAAK,GAAG,KAAK,MAAM,6BAA6B,CAAC;IACvD,iBAAE,CAAC,aAAa,CAAC,UAAU,EAAE,IAAI,GAAG,KAAK,EAAE,OAAO,CAAC,CAAC;AACtD,CAAC"}
@@ -61,6 +61,41 @@ const fs = __importStar(require("fs"));
61
61
  const os = __importStar(require("os"));
62
62
  const path = __importStar(require("path"));
63
63
  const cli_paths_js_1 = require("../lib/cli-paths.js");
64
+ // Cache binary→path resolutions. `where` shells out — don't repeat per spawn.
65
+ const binaryPathCache = new Map();
66
+ /**
67
+ * Resolve a binary name to a full path with extension. Critical on Windows
68
+ * where Node's spawn won't resolve `.cmd` shims (npm globals like
69
+ * claude.cmd, codex.cmd, gemini.cmd) without shell:true (DEP0190 in
70
+ * Node 22+). On Unix returns the name unchanged — spawn handles PATH
71
+ * resolution natively for ELF/script files with shebangs.
72
+ */
73
+ function resolveBinaryPath(command) {
74
+ if (process.platform !== 'win32')
75
+ return command;
76
+ // Use the Windows-specific isAbsolute (`path.win32`) so absolute
77
+ // detection works the same on a real Windows host AND on a Linux CI
78
+ // run where the test stubs `process.platform = 'win32'` but the
79
+ // top-level `path` module is still POSIX.
80
+ if (path.win32.isAbsolute(command))
81
+ return command;
82
+ const cached = binaryPathCache.get(command);
83
+ if (cached)
84
+ return cached;
85
+ const r = (0, child_process_1.spawnSync)('where', [command], { encoding: 'utf-8', timeout: 3000 });
86
+ if (r.status !== 0 || !r.stdout) {
87
+ binaryPathCache.set(command, command);
88
+ return command; // fallback — daemon will surface ENOENT cleanly.
89
+ }
90
+ // npm globals on Windows ship two siblings: `claude` (Bash shim, not
91
+ // executable by Node spawn) and `claude.cmd` (Windows shim). `where`
92
+ // returns both; we must pick the .cmd/.bat/.exe variant for Node.
93
+ const lines = r.stdout.split(/\r?\n/).map((s) => s.trim()).filter(Boolean);
94
+ const preferred = lines.find((l) => /\.(cmd|bat|exe)$/i.test(l));
95
+ const resolved = preferred ?? lines[0] ?? command;
96
+ binaryPathCache.set(command, resolved);
97
+ return resolved;
98
+ }
64
99
  /**
65
100
  * Cached merged PATH for subprocess spawns. Populated by the daemon
66
101
  * boot path via `primeRuntimePath()`. Synchronous reads only — spawn
@@ -230,10 +265,22 @@ function reapOrphanProcesses() {
230
265
  function spawnHeadless(opts) {
231
266
  const timeoutMs = opts.timeoutMs ?? DEFAULT_TIMEOUT_MS;
232
267
  const startedAt = Date.now();
233
- const child = (0, child_process_1.spawn)(opts.command, [...opts.args], {
268
+ // Windows CLIs ship as .cmd shims (npm globals: claude.cmd, codex.cmd,
269
+ // gemini.cmd). Node 18.20+/20.x/22+ added CVE-2024-27980 mitigations that
270
+ // *block* spawn of .cmd/.bat without shell:true (EINVAL). We:
271
+ // 1. Resolve to the full .cmd path via `where` (cached) so PATH lookups
272
+ // always pick the .cmd shim, never the Bash sibling.
273
+ // 2. Set shell:true ONLY on Windows. DEP0190 fires informationally; our
274
+ // args are fixed CLI flags (not user-controlled) so the shell-escaping
275
+ // class of risks doesn't apply here.
276
+ // On Unix this is a no-op: spawn handles ELF/shebang scripts natively.
277
+ const isWindows = process.platform === 'win32';
278
+ const resolvedCommand = resolveBinaryPath(opts.command);
279
+ const child = (0, child_process_1.spawn)(resolvedCommand, [...opts.args], {
234
280
  cwd: opts.cwd,
235
281
  env: spawnEnv(opts.env),
236
282
  stdio: ['pipe', 'pipe', 'pipe'],
283
+ shell: isWindows,
237
284
  });
238
285
  if (child.pid !== undefined) {
239
286
  registerPid({