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.
- package/.next/BUILD_ID +1 -1
- package/.next/app-path-routes-manifest.json +2 -2
- package/.next/build-manifest.json +2 -2
- package/.next/prerender-manifest.json +3 -3
- package/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
- package/.next/server/app/_global-error.html +1 -1
- package/.next/server/app/_global-error.rsc +1 -1
- package/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/.next/server/app/_not-found.html +1 -1
- package/.next/server/app/_not-found.rsc +1 -1
- package/.next/server/app/_not-found.segments/_full.segment.rsc +1 -1
- package/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
- package/.next/server/app/_not-found.segments/_index.segment.rsc +1 -1
- package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
- package/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/connect/page_client-reference-manifest.js +1 -1
- package/.next/server/app/demo/[scenario]/page_client-reference-manifest.js +1 -1
- package/.next/server/app/new/page_client-reference-manifest.js +1 -1
- package/.next/server/app/new.html +1 -1
- package/.next/server/app/new.rsc +1 -1
- package/.next/server/app/new.segments/_full.segment.rsc +1 -1
- package/.next/server/app/new.segments/_head.segment.rsc +1 -1
- package/.next/server/app/new.segments/_index.segment.rsc +1 -1
- package/.next/server/app/new.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/new.segments/new/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/new.segments/new.segment.rsc +1 -1
- package/.next/server/app/onboarding/page_client-reference-manifest.js +1 -1
- package/.next/server/app/onboarding.html +1 -1
- package/.next/server/app/onboarding.rsc +1 -1
- package/.next/server/app/onboarding.segments/_full.segment.rsc +1 -1
- package/.next/server/app/onboarding.segments/_head.segment.rsc +1 -1
- package/.next/server/app/onboarding.segments/_index.segment.rsc +1 -1
- package/.next/server/app/onboarding.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/onboarding.segments/onboarding/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/onboarding.segments/onboarding.segment.rsc +1 -1
- package/.next/server/app/page_client-reference-manifest.js +1 -1
- package/.next/server/app/personas/page_client-reference-manifest.js +1 -1
- package/.next/server/app/personas.html +1 -1
- package/.next/server/app/personas.rsc +1 -1
- package/.next/server/app/personas.segments/_full.segment.rsc +1 -1
- package/.next/server/app/personas.segments/_head.segment.rsc +1 -1
- package/.next/server/app/personas.segments/_index.segment.rsc +1 -1
- package/.next/server/app/personas.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/personas.segments/personas/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/personas.segments/personas.segment.rsc +1 -1
- package/.next/server/app/runs/[runId]/page_client-reference-manifest.js +1 -1
- package/.next/server/app/runs/page_client-reference-manifest.js +1 -1
- package/.next/server/app/settings/page_client-reference-manifest.js +1 -1
- package/.next/server/app/settings/permissions/page_client-reference-manifest.js +1 -1
- package/.next/server/app/settings.html +1 -1
- package/.next/server/app/settings.rsc +1 -1
- package/.next/server/app/settings.segments/_full.segment.rsc +1 -1
- package/.next/server/app/settings.segments/_head.segment.rsc +1 -1
- package/.next/server/app/settings.segments/_index.segment.rsc +1 -1
- package/.next/server/app/settings.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/settings.segments/settings/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/settings.segments/settings.segment.rsc +1 -1
- package/.next/server/app/templates/page_client-reference-manifest.js +1 -1
- package/.next/server/app/templates.html +1 -1
- package/.next/server/app/templates.rsc +1 -1
- package/.next/server/app/templates.segments/_full.segment.rsc +1 -1
- package/.next/server/app/templates.segments/_head.segment.rsc +1 -1
- package/.next/server/app/templates.segments/_index.segment.rsc +1 -1
- package/.next/server/app/templates.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/templates.segments/templates/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/templates.segments/templates.segment.rsc +1 -1
- package/.next/server/app-paths-manifest.json +2 -2
- package/.next/server/middleware-build-manifest.js +1 -1
- package/.next/server/pages/404.html +1 -1
- package/.next/server/pages/500.html +1 -1
- package/.next/server/server-reference-manifest.json +1 -1
- package/.next/trace +20 -20
- package/.next/trace-build +1 -1
- package/dist/cli/commands/diagnose.js +330 -4
- package/dist/cli/commands/diagnose.js.map +1 -1
- package/dist/daemon/agents/gemini.js +8 -3
- package/dist/daemon/agents/gemini.js.map +1 -1
- package/dist/daemon/agents/preflight.js +6 -1
- package/dist/daemon/agents/preflight.js.map +1 -1
- package/dist/daemon/headless.js +48 -1
- package/dist/daemon/headless.js.map +1 -1
- package/dist/daemon/runner/reviewer-driver.js +80 -47
- package/dist/daemon/runner/reviewer-driver.js.map +1 -1
- package/dist/lib/db/connection.js +1 -0
- package/dist/lib/db/connection.js.map +1 -1
- package/dist/lib/db/schema.sql +4 -0
- package/package.json +1 -1
- package/dist/lib/voice-failure-tracker.js +0 -137
- package/dist/lib/voice-failure-tracker.js.map +0 -1
- /package/.next/static/{T0s2ZLaA6Teu6-2nDostn → nonMfuqNquRl2CHrtuEp4}/_buildManifest.js +0 -0
- /package/.next/static/{T0s2ZLaA6Teu6-2nDostn → nonMfuqNquRl2CHrtuEp4}/_ssgManifest.js +0 -0
package/.next/trace-build
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
[{"name":"run-webpack","duration":
|
|
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
|
-
|
|
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
|
-
|
|
351
|
-
|
|
352
|
-
|
|
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
|
-
//
|
|
64
|
-
//
|
|
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":";AAAA;;;;;GAKG;;;AASH,yCAAkE;AAClE,gDAA+C;AAC/C,iDAAkE;AAErD,QAAA,UAAU,GAAc;IACnC,OAAO,EAAE,QAAQ;IACjB,IAAI,EAAE,YAAY;IAElB,kBAAkB,CAAC,IAAuB;QACxC,IAAA,wBAAa,EAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QAEnC,MAAM,GAAG,GAAG,IAAA,oBAAS,EAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAEhC,kEAAkE;QAClE,wEAAwE;QACxE,IAAI,YAAY,GAAG,WAAW,CAAC;QAC/B,IAAI,IAAI,CAAC,OAAO,KAAK,QAAQ;YAAE,YAAY,GAAG,SAAS,CAAC;QACxD,oEAAoE;QACpE,uEAAuE;QACvE,oEAAoE;QAEpE,IAAI,GAAG,GAAG,MAAM,GAAG,8BAA8B,YAAY,EAAE,CAAC;QAEhE,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACf,GAAG,IAAI,OAAO,IAAA,qBAAU,EAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QACzC,CAAC;aAAM,CAAC;YACN,sEAAsE;YACtE,sEAAsE;YACtE,kEAAkE;YAClE,GAAG,IAAI,oBAAoB,CAAC;QAC9B,CAAC;QAED,OAAO,GAAG,CAAC;IACb,CAAC;IAED,YAAY,CAAC,IAAuB;QAClC,0EAA0E;QAC1E,qEAAqE;QACrE,MAAM,QAAQ,GAAG,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,kCAAkC,CAAC,CAAC,CAAC,EAAE,CAAC;QAEnF,OAAO,CACL,IAAI,IAAI,CAAC,UAAU,kDAAkD;YACrE,6BAA6B,IAAI,CAAC,UAAU,IAAI,QAAQ,EAAE,CAC3D,CAAC;IACJ,CAAC;IAED;;;;;;;;;;;;;;OAcG;IACH,WAAW,CAAC,IAA0B;QACpC,uEAAuE;QACvE,
|
|
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
|
-
|
|
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,
|
|
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"}
|
package/dist/daemon/headless.js
CHANGED
|
@@ -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
|
-
|
|
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({
|