agent-dag 1.33.22 → 1.33.23
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/dist/web/index.html
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
6
6
|
<title>agents-deck</title>
|
|
7
7
|
<link rel="icon" href="data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'%3E%3Ctext y='84' font-size='84'%3E%E2%97%89%3C/text%3E%3C/svg%3E" />
|
|
8
|
-
<script type="module" crossorigin src="/assets/index-
|
|
8
|
+
<script type="module" crossorigin src="/assets/index-DTNEy5xO.js"></script>
|
|
9
9
|
<link rel="stylesheet" crossorigin href="/assets/index-Cpi89XJ8.css">
|
|
10
10
|
</head>
|
|
11
11
|
<body>
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "agent-dag",
|
|
3
|
-
"version": "1.33.
|
|
3
|
+
"version": "1.33.23",
|
|
4
4
|
"description": "Live deck of Claude Code and Codex agents — watch parallel subagents fork, call tools, and return on one calm canvas. Also available as npx ccdeck and npx agent-dag.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
package/src/server/exec.mjs
CHANGED
|
@@ -224,7 +224,16 @@ export function runInteractive(cmd, args, { timeout = 300_000, maxOutput = 256 <
|
|
|
224
224
|
if (tryNext(err) && !stdout && !stderr) { child = null; return attempt(i + 1); }
|
|
225
225
|
finish(-1, err);
|
|
226
226
|
});
|
|
227
|
-
|
|
227
|
+
// Spawning proves a spelling exists — except a .cmd/.bat one, which is
|
|
228
|
+
// launched THROUGH cmd.exe. cmd.exe is always there, so it spawns just as
|
|
229
|
+
// happily for a batch file that is not, and only says so later by exiting
|
|
230
|
+
// non-zero with "is not recognized". Caching at spawn time therefore
|
|
231
|
+
// remembered a spelling that never existed, and since `candidates` then
|
|
232
|
+
// offers only the remembered one, the tool stayed unrunnable — with the
|
|
233
|
+
// false message "not on PATH" — even after it was installed. A batch
|
|
234
|
+
// spelling is confirmed by the clean exit below instead, which is the rule
|
|
235
|
+
// `run` already applies with `if (!err)`.
|
|
236
|
+
if (!isBatch(raw)) proc.on("spawn", () => resolved.set(cmd, raw));
|
|
228
237
|
// Capped so a runaway child cannot grow the heap without bound; the tail is
|
|
229
238
|
// what carries the error, so the head is what gets dropped.
|
|
230
239
|
const keep = (buf, text) => (buf + text).slice(-maxOutput);
|
|
@@ -242,6 +251,9 @@ export function runInteractive(cmd, args, { timeout = 300_000, maxOutput = 256 <
|
|
|
242
251
|
}
|
|
243
252
|
return finish(-1, { code: "ENOENT" });
|
|
244
253
|
}
|
|
254
|
+
// Ran to a clean exit, so this spelling is real — the only confirmation a
|
|
255
|
+
// batch one ever gets.
|
|
256
|
+
if (code === 0 && !killed && !timedOut) resolved.set(cmd, raw);
|
|
245
257
|
finish(code ?? -1, null);
|
|
246
258
|
});
|
|
247
259
|
};
|
|
@@ -281,7 +293,11 @@ export function runDetached(cmd, args) {
|
|
|
281
293
|
try {
|
|
282
294
|
const child = spawn(file, argv, { stdio: "ignore", shell: false, windowsHide: true, ...opts });
|
|
283
295
|
child.on("error", (err) => { if (tryNext(err)) attempt(i + 1); });
|
|
284
|
-
|
|
296
|
+
// Same trap as above: a batch spelling is spawned through cmd.exe, which
|
|
297
|
+
// succeeds whether or not the batch file is there, so only a clean exit
|
|
298
|
+
// proves this one is worth remembering.
|
|
299
|
+
if (isBatch(raw)) child.on("exit", (code) => { if (code === 0) resolved.set(cmd, raw); });
|
|
300
|
+
else child.on("spawn", () => resolved.set(cmd, raw));
|
|
285
301
|
child.unref?.();
|
|
286
302
|
} catch {
|
|
287
303
|
attempt(i + 1);
|