agentspeak-cli 0.8.0 → 0.9.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.
- package/dist/adapters/claude.d.ts +13 -0
- package/dist/adapters/claude.d.ts.map +1 -0
- package/dist/adapters/claude.js +32 -0
- package/dist/adapters/claude.js.map +1 -0
- package/dist/adapters/cursor-agent.d.ts +10 -0
- package/dist/adapters/cursor-agent.d.ts.map +1 -0
- package/dist/adapters/cursor-agent.js +29 -0
- package/dist/adapters/cursor-agent.js.map +1 -0
- package/dist/adapters/echo.d.ts +17 -0
- package/dist/adapters/echo.d.ts.map +1 -0
- package/dist/adapters/echo.js +39 -0
- package/dist/adapters/echo.js.map +1 -0
- package/dist/adapters/hermes.d.ts +10 -0
- package/dist/adapters/hermes.d.ts.map +1 -0
- package/dist/adapters/hermes.js +33 -0
- package/dist/adapters/hermes.js.map +1 -0
- package/dist/adapters/index.d.ts +69 -0
- package/dist/adapters/index.d.ts.map +1 -0
- package/dist/adapters/index.js +106 -0
- package/dist/adapters/index.js.map +1 -0
- package/dist/adapters/openclaw.d.ts +10 -0
- package/dist/adapters/openclaw.d.ts.map +1 -0
- package/dist/adapters/openclaw.js +32 -0
- package/dist/adapters/openclaw.js.map +1 -0
- package/dist/adapters/shell-helper.d.ts +32 -0
- package/dist/adapters/shell-helper.d.ts.map +1 -0
- package/dist/adapters/shell-helper.js +99 -0
- package/dist/adapters/shell-helper.js.map +1 -0
- package/dist/adapters/stdin.d.ts +13 -0
- package/dist/adapters/stdin.d.ts.map +1 -0
- package/dist/adapters/stdin.js +72 -0
- package/dist/adapters/stdin.js.map +1 -0
- package/dist/api.d.ts +1 -0
- package/dist/api.d.ts.map +1 -1
- package/dist/api.js.map +1 -1
- package/dist/auto-shim.d.ts +38 -0
- package/dist/auto-shim.d.ts.map +1 -0
- package/dist/auto-shim.js +136 -0
- package/dist/auto-shim.js.map +1 -0
- package/dist/commands/handle-turn.d.ts +23 -8
- package/dist/commands/handle-turn.d.ts.map +1 -1
- package/dist/commands/handle-turn.js +119 -24
- package/dist/commands/handle-turn.js.map +1 -1
- package/dist/commands/identity.d.ts +28 -0
- package/dist/commands/identity.d.ts.map +1 -0
- package/dist/commands/identity.js +104 -0
- package/dist/commands/identity.js.map +1 -0
- package/dist/commands/inbox.d.ts +20 -0
- package/dist/commands/inbox.d.ts.map +1 -0
- package/dist/commands/inbox.js +41 -0
- package/dist/commands/inbox.js.map +1 -0
- package/dist/commands/init.d.ts +7 -0
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +35 -1
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/mcp.d.ts +30 -0
- package/dist/commands/mcp.d.ts.map +1 -0
- package/dist/commands/mcp.js +195 -0
- package/dist/commands/mcp.js.map +1 -0
- package/dist/commands/register.d.ts.map +1 -1
- package/dist/commands/register.js +14 -1
- package/dist/commands/register.js.map +1 -1
- package/dist/commands/run.d.ts +29 -0
- package/dist/commands/run.d.ts.map +1 -1
- package/dist/commands/run.js +193 -12
- package/dist/commands/run.js.map +1 -1
- package/dist/exec.d.ts +44 -4
- package/dist/exec.d.ts.map +1 -1
- package/dist/exec.js +69 -5
- package/dist/exec.js.map +1 -1
- package/dist/index.js +103 -61
- package/dist/index.js.map +1 -1
- package/dist/state.d.ts +36 -0
- package/dist/state.d.ts.map +1 -1
- package/dist/state.js +64 -0
- package/dist/state.js.map +1 -1
- package/package.json +5 -2
package/dist/commands/run.js
CHANGED
|
@@ -2,6 +2,9 @@ import { api, ApiError, getMeetingStatus, pollMyTurn } from '../api.js';
|
|
|
2
2
|
import { runShim } from '../exec.js';
|
|
3
3
|
import { startHeartbeat } from '../heartbeat.js';
|
|
4
4
|
import { loadCurrentMeetingId, loadMeeting } from '../state.js';
|
|
5
|
+
import { resolveAdapter, } from '../adapters/index.js';
|
|
6
|
+
import { autoShimPaths } from '../auto-shim.js';
|
|
7
|
+
import { existsSync } from 'node:fs';
|
|
5
8
|
const TERMINAL_STATUSES = new Set(['completed', 'expired', 'cancelled', 'closed']);
|
|
6
9
|
const SIGNAL_DONE_MARKER = /<!--\s*agentspeak:signal=done\s*-->/i;
|
|
7
10
|
function ts() {
|
|
@@ -31,6 +34,94 @@ function marker(stream, name, attrs) {
|
|
|
31
34
|
.join(' ');
|
|
32
35
|
stream.write(`[${name} ${parts}]\n`);
|
|
33
36
|
}
|
|
37
|
+
/**
|
|
38
|
+
* Build a synthetic TurnEnvelope for the pre-attach smoke test.
|
|
39
|
+
*
|
|
40
|
+
* Real-shape fields (taskId, turnNumber, meetingId, agentId,
|
|
41
|
+
* instructions, previousTurns) so a shim that does naive JSON.parse
|
|
42
|
+
* survives, plus a top-level `agentspeak.smokeTest: true` flag so a
|
|
43
|
+
* shim CAN short-circuit and emit a literal "[ok]" instead of paying
|
|
44
|
+
* for a real LLM call. Shims that ignore the flag still exercise the
|
|
45
|
+
* full reply path, which is also fine.
|
|
46
|
+
*/
|
|
47
|
+
function buildSmokeEnvelope(meetingId, agentId) {
|
|
48
|
+
return {
|
|
49
|
+
taskId: 'smoke',
|
|
50
|
+
turnNumber: 0,
|
|
51
|
+
meetingId,
|
|
52
|
+
agentId,
|
|
53
|
+
role: 'proposer',
|
|
54
|
+
instructions: 'AgentSpeak shim smoke test. Reply with the literal text [ok] (or any non-empty markdown). ' +
|
|
55
|
+
'Do not call out to an LLM if you can short-circuit on agentspeak.smokeTest === true.',
|
|
56
|
+
previousTurns: [],
|
|
57
|
+
agentspeak: { smokeTest: true, version: '0.9.0' },
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
function resolveBridge(opts) {
|
|
61
|
+
if (opts.via && opts.exec) {
|
|
62
|
+
throw new Error('--via and --exec are mutually exclusive; pick a built-in adapter (--via) ' +
|
|
63
|
+
'or your own shim (--exec ./reply.sh), not both.');
|
|
64
|
+
}
|
|
65
|
+
if (opts.via) {
|
|
66
|
+
const descriptor = resolveAdapter(opts.via);
|
|
67
|
+
return { kind: 'via', label: `--via ${descriptor.name}`, descriptor };
|
|
68
|
+
}
|
|
69
|
+
if (opts.exec) {
|
|
70
|
+
return { kind: 'exec', label: `--exec ${opts.exec}`, exec: opts.exec };
|
|
71
|
+
}
|
|
72
|
+
// Zero-config path: fall back to the hardened auto-shim that
|
|
73
|
+
// `agentspeak-cli init` writes into ~/.agentspeak/reply.sh. This is
|
|
74
|
+
// what makes `npx agentspeak-cli join <invite>` work for an agent
|
|
75
|
+
// that did `init` and then never authored anything else.
|
|
76
|
+
if (!opts.defaultReply) {
|
|
77
|
+
const { posixPath } = autoShimPaths();
|
|
78
|
+
if (existsSync(posixPath)) {
|
|
79
|
+
return { kind: 'exec', label: `--exec ${posixPath} (auto-shim)`, exec: posixPath };
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
return null;
|
|
83
|
+
}
|
|
84
|
+
async function runBridge(bridge, envelope, opts) {
|
|
85
|
+
if (bridge.kind === 'via') {
|
|
86
|
+
return bridge.descriptor.adapter({
|
|
87
|
+
envelope,
|
|
88
|
+
smokeTest: opts.smokeTest,
|
|
89
|
+
timeoutMs: opts.timeoutMs,
|
|
90
|
+
});
|
|
91
|
+
}
|
|
92
|
+
const r = await runShim(bridge.exec, envelope, {
|
|
93
|
+
timeoutMs: opts.timeoutMs,
|
|
94
|
+
teeStderr: !opts.smokeTest,
|
|
95
|
+
env: opts.smokeTest ? { AGENTSPEAK_SMOKE_TEST: '1' } : undefined,
|
|
96
|
+
});
|
|
97
|
+
return r;
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Pre-attach bridge smoke test. Run the resolved bridge ONCE with a
|
|
101
|
+
* synthetic envelope before entering the polling loop. If it exits
|
|
102
|
+
* non-zero or produces empty output, we refuse to attach so we don't
|
|
103
|
+
* pollute the real meeting with "shim exited N" turns.
|
|
104
|
+
*
|
|
105
|
+
* This catches the entire failure mode that stalled
|
|
106
|
+
* meet_xmT7T3CapHPTCSUCaropuw: both Hermes' and OpenClaw's reply.sh
|
|
107
|
+
* were broken (exit 1 / exit 127) but the loop happily attached, took
|
|
108
|
+
* three turns, and submitted three useless artifacts before the
|
|
109
|
+
* coordinator triggered a similarity-loop recap.
|
|
110
|
+
*/
|
|
111
|
+
async function runBridgeSmokeTest(bridge, meetingId, agentId, timeoutMs) {
|
|
112
|
+
const envelope = buildSmokeEnvelope(meetingId, agentId);
|
|
113
|
+
const result = await runBridge(bridge, envelope, { timeoutMs, smokeTest: true });
|
|
114
|
+
const stdoutBytes = result.stdout.trim().length;
|
|
115
|
+
const ok = result.exitCode === 0 && stdoutBytes > 0 && !result.timedOut;
|
|
116
|
+
return {
|
|
117
|
+
ok,
|
|
118
|
+
durationMs: result.durationMs,
|
|
119
|
+
bytes: stdoutBytes,
|
|
120
|
+
exitCode: result.exitCode,
|
|
121
|
+
stderr: result.stderr,
|
|
122
|
+
timedOut: result.timedOut,
|
|
123
|
+
};
|
|
124
|
+
}
|
|
34
125
|
/**
|
|
35
126
|
* One-shot presence handshake. POSTs the join-time nonce so the
|
|
36
127
|
* coordinator can stamp `presenceConfirmedAt` on the participant row.
|
|
@@ -105,9 +196,17 @@ export async function cmdRun(opts) {
|
|
|
105
196
|
process.off('SIGTERM', onSig);
|
|
106
197
|
};
|
|
107
198
|
logLine(process.stdout, `run: attached to ${meetingId} as ${state.agentId}; will reply automatically until the meeting closes`);
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
199
|
+
let bridge;
|
|
200
|
+
try {
|
|
201
|
+
bridge = resolveBridge(opts);
|
|
202
|
+
}
|
|
203
|
+
catch (err) {
|
|
204
|
+
logLine(process.stderr, err instanceof Error ? err.message : String(err));
|
|
205
|
+
return 2;
|
|
206
|
+
}
|
|
207
|
+
if (!bridge && !opts.defaultReply) {
|
|
208
|
+
logLine(process.stderr, 'WARNING: no --via preset, no --exec shim, and no --default-reply; using a safe-default acknowledgement reply. ' +
|
|
209
|
+
'Production bots should pass --via <preset> or --exec ./reply.sh that authors the turn body.');
|
|
111
210
|
}
|
|
112
211
|
// Presence handshake: prove the loop is real, not a ghost-join.
|
|
113
212
|
// This must happen before we enter the polling loop so the dashboard
|
|
@@ -124,8 +223,66 @@ export async function cmdRun(opts) {
|
|
|
124
223
|
'the loop will still attempt to handle turns, but the dashboard may flag this agent as "ghost-joined". ' +
|
|
125
224
|
'If turns never come through, re-run `agentspeak-cli join <invite>` from THIS shell.');
|
|
126
225
|
}
|
|
226
|
+
// Pre-attach bridge smoke test. Refuse to enter the polling loop if
|
|
227
|
+
// the resolved bridge (--via adapter or --exec shim) is broken — see
|
|
228
|
+
// runBridgeSmokeTest doc for why. Skipped if --skip-shim-smoke is
|
|
229
|
+
// passed or the loop is running with a static --default-reply.
|
|
230
|
+
if (bridge && !opts.skipShimSmoke) {
|
|
231
|
+
const smokeTimeoutMs = opts.smokeTimeoutMs ?? 30_000;
|
|
232
|
+
process.stdout.write(`[agentspeak ${ts()}] running pre-attach smoke test (${bridge.label}, timeout ${Math.round(smokeTimeoutMs / 1000)}s)\n`);
|
|
233
|
+
const smoke = await runBridgeSmokeTest(bridge, meetingId, state.agentId, smokeTimeoutMs);
|
|
234
|
+
if (smoke.ok) {
|
|
235
|
+
marker(process.stdout, 'SHIM-OK', {
|
|
236
|
+
bridge: bridge.label,
|
|
237
|
+
ms: smoke.durationMs,
|
|
238
|
+
bytes: smoke.bytes,
|
|
239
|
+
});
|
|
240
|
+
}
|
|
241
|
+
else {
|
|
242
|
+
marker(process.stdout, 'SHIM-FAIL', {
|
|
243
|
+
bridge: bridge.label,
|
|
244
|
+
exitCode: smoke.exitCode,
|
|
245
|
+
ms: smoke.durationMs,
|
|
246
|
+
bytes: smoke.bytes,
|
|
247
|
+
timedOut: smoke.timedOut,
|
|
248
|
+
});
|
|
249
|
+
const stderrTail = smoke.stderr.trim().slice(-1500);
|
|
250
|
+
logLine(process.stderr, `pre-attach smoke test FAILED. The CLI is refusing to attach to ${meetingId} ` +
|
|
251
|
+
`because your reply bridge (${bridge.label}) is broken — attaching anyway would submit ` +
|
|
252
|
+
`"shim exited N" garbage every turn and stall the meeting. Fix it and re-run.`);
|
|
253
|
+
if (stderrTail) {
|
|
254
|
+
process.stderr.write(`[bridge stderr tail]\n${stderrTail}\n`);
|
|
255
|
+
}
|
|
256
|
+
else if (bridge.kind === 'exec') {
|
|
257
|
+
const winHint = process.platform === 'win32'
|
|
258
|
+
? ' On Windows: confirm `bash` is on PATH (git-bash or WSL). The CLI prefers bash for `.sh` scripts but falls back to cmd.exe, which cannot interpret `#!/bin/bash` shebangs.'
|
|
259
|
+
: '';
|
|
260
|
+
logLine(process.stderr, 'bridge wrote nothing to stderr; common causes: command not found (exit 127), ' +
|
|
261
|
+
'wrong shebang, missing CLI dependency, sandbox blocking the spawn, or the shim ' +
|
|
262
|
+
'silenced its own stderr (`2>/dev/null`).' +
|
|
263
|
+
winHint +
|
|
264
|
+
' Try: `echo \'{"taskId":"x","turnNumber":0}\' | ' +
|
|
265
|
+
bridge.exec +
|
|
266
|
+
'` in your terminal first; or switch to a built-in adapter with `--via echo` (always works).');
|
|
267
|
+
}
|
|
268
|
+
else {
|
|
269
|
+
logLine(process.stderr, `--via ${bridge.descriptor.name} adapter failed; if its required binary (${bridge.descriptor.requiresBinary ?? 'n/a'}) ` +
|
|
270
|
+
'is not installed, fall back to `--via echo` (always works) or `--via stdin` (interactive).');
|
|
271
|
+
}
|
|
272
|
+
marker(process.stdout, 'DONE', {
|
|
273
|
+
meeting: meetingId,
|
|
274
|
+
turns: 0,
|
|
275
|
+
polls: 0,
|
|
276
|
+
reason: 'shim_broken',
|
|
277
|
+
});
|
|
278
|
+
cleanupSignals();
|
|
279
|
+
return 2;
|
|
280
|
+
}
|
|
281
|
+
}
|
|
127
282
|
let turnsHandled = 0;
|
|
128
283
|
let pollIter = 0;
|
|
284
|
+
let consecutiveShimFailures = 0;
|
|
285
|
+
const maxShimFailures = opts.maxShimFailures ?? 2;
|
|
129
286
|
let lastActivityAt = Date.now();
|
|
130
287
|
let exitReason = 'unknown';
|
|
131
288
|
try {
|
|
@@ -192,23 +349,36 @@ export async function cmdRun(opts) {
|
|
|
192
349
|
let isDone = false;
|
|
193
350
|
let durationMs = 0;
|
|
194
351
|
let failed = false;
|
|
195
|
-
if (
|
|
196
|
-
// Only start the heartbeat when a real
|
|
197
|
-
//
|
|
198
|
-
//
|
|
352
|
+
if (bridge) {
|
|
353
|
+
// Only start the heartbeat when a real bridge is going to run —
|
|
354
|
+
// an LLM-backed reply can take minutes and the lease would
|
|
355
|
+
// otherwise expire mid-call. The default-reply path is
|
|
199
356
|
// synchronous and never needs a lease extension.
|
|
200
357
|
const hb = startHeartbeat(ctx, meetingId, state.agentId, turnNumber);
|
|
201
358
|
try {
|
|
202
|
-
const
|
|
359
|
+
const result = await runBridge(bridge, envelope, {
|
|
203
360
|
timeoutMs: opts.shimTimeoutMs ?? 600_000,
|
|
361
|
+
smokeTest: false,
|
|
204
362
|
});
|
|
205
|
-
durationMs =
|
|
206
|
-
if (
|
|
363
|
+
durationMs = result.durationMs;
|
|
364
|
+
if (result.exitCode !== 0 || result.stdout.trim().length === 0) {
|
|
207
365
|
failed = true;
|
|
208
|
-
|
|
366
|
+
consecutiveShimFailures++;
|
|
367
|
+
// Embed enough context for the OTHER agents (and the human
|
|
368
|
+
// dashboard) to understand WHY this turn failed. Plain "shim
|
|
369
|
+
// exited 1" with no stderr is exactly what stalled
|
|
370
|
+
// meet_xmT7T3CapHPTCSUCaropuw.
|
|
371
|
+
const stderrTail = result.stderr.trim().slice(-2_000);
|
|
372
|
+
const emptyNote = result.exitCode === 0 ? ' (exit 0 but empty stdout)' : '';
|
|
373
|
+
content =
|
|
374
|
+
`bridge ${bridge.label} exited ${result.exitCode}${result.timedOut ? ' (timed out)' : ''}${emptyNote}\n\n` +
|
|
375
|
+
(stderrTail
|
|
376
|
+
? `stderr (last 2 KiB):\n\`\`\`\n${stderrTail}\n\`\`\``
|
|
377
|
+
: '(no stderr captured; bridge may have silenced stderr or been killed before writing)');
|
|
209
378
|
}
|
|
210
379
|
else {
|
|
211
|
-
|
|
380
|
+
consecutiveShimFailures = 0;
|
|
381
|
+
const raw = result.stdout.trim() || '(empty response)';
|
|
212
382
|
isDone = SIGNAL_DONE_MARKER.test(raw);
|
|
213
383
|
content = raw.replace(SIGNAL_DONE_MARKER, '').trim() || raw;
|
|
214
384
|
}
|
|
@@ -261,6 +431,17 @@ export async function cmdRun(opts) {
|
|
|
261
431
|
exitReason = 'shim_done';
|
|
262
432
|
return 0;
|
|
263
433
|
}
|
|
434
|
+
if (failed && consecutiveShimFailures >= maxShimFailures) {
|
|
435
|
+
// Don't keep cycling identical garbage. The other participants
|
|
436
|
+
// (and the coordinator's similarity-loop guard) would otherwise
|
|
437
|
+
// see N copies of "shim exited 1" before a recap fires.
|
|
438
|
+
logLine(process.stderr, `bridge has failed ${consecutiveShimFailures} consecutive times (--max-shim-failures=${maxShimFailures}); ` +
|
|
439
|
+
'exiting so the meeting can stop being polluted with broken-bridge turns. ' +
|
|
440
|
+
'Fix your reply bridge and re-run `agentspeak-cli join <invite>`. ' +
|
|
441
|
+
'Falling back to `--via echo` will always succeed if you just need to keep the meeting moving.');
|
|
442
|
+
exitReason = 'shim_broken';
|
|
443
|
+
return 2;
|
|
444
|
+
}
|
|
264
445
|
}
|
|
265
446
|
logLine(process.stdout, `stopped on signal after handling ${turnsHandled} turn(s)`);
|
|
266
447
|
exitReason = 'signal';
|
package/dist/commands/run.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run.js","sourceRoot":"","sources":["../../src/commands/run.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"run.js","sourceRoot":"","sources":["../../src/commands/run.ts"],"names":[],"mappings":"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"}
|
package/dist/exec.d.ts
CHANGED
|
@@ -8,17 +8,57 @@
|
|
|
8
8
|
* the meeting protocol, not the inference. The shim is one short bash
|
|
9
9
|
* file the operator already maintains.
|
|
10
10
|
*
|
|
11
|
-
* Stderr
|
|
12
|
-
* own logs in real time
|
|
11
|
+
* Stderr is BOTH tee'd to the parent process (so a watching human still
|
|
12
|
+
* sees the LLM client's own logs in real time) AND captured into a
|
|
13
|
+
* bounded in-memory buffer that the caller embeds in the failure
|
|
14
|
+
* artifact when the shim exits non-zero. Without this capture, failed
|
|
15
|
+
* turns get submitted as just "shim exited 1" with no actionable
|
|
16
|
+
* context, which is exactly what stalled meet_xmT7T3CapHPTCSUCaropuw.
|
|
13
17
|
*/
|
|
14
18
|
export interface ExecResult {
|
|
15
19
|
stdout: string;
|
|
16
20
|
stderr: string;
|
|
17
21
|
exitCode: number;
|
|
18
22
|
durationMs: number;
|
|
23
|
+
timedOut: boolean;
|
|
19
24
|
}
|
|
20
|
-
export
|
|
25
|
+
export interface RunShimOpts {
|
|
21
26
|
timeoutMs?: number;
|
|
22
27
|
env?: Record<string, string>;
|
|
23
|
-
|
|
28
|
+
/** Cap on captured stderr bytes. Defaults to 16 KiB. */
|
|
29
|
+
stderrCaptureBytes?: number;
|
|
30
|
+
/**
|
|
31
|
+
* If false, do not tee stderr to the parent process (useful for the
|
|
32
|
+
* pre-attach smoke test where we want to render a single structured
|
|
33
|
+
* marker instead of leaking the shim's internal chatter).
|
|
34
|
+
*/
|
|
35
|
+
teeStderr?: boolean;
|
|
36
|
+
}
|
|
37
|
+
export declare function runShim(command: string, envelope: unknown, opts?: RunShimOpts): Promise<ExecResult>;
|
|
38
|
+
interface SpawnPlan {
|
|
39
|
+
cmd: string;
|
|
40
|
+
args: readonly string[];
|
|
41
|
+
useShell: boolean | string;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Pick the right spawn arguments for a user-supplied shim command,
|
|
45
|
+
* branching on platform.
|
|
46
|
+
*
|
|
47
|
+
* Why this matters: on POSIX, `spawn(cmd, { shell: true })` invokes
|
|
48
|
+
* /bin/sh which knows how to run `./reply.sh` and respect a
|
|
49
|
+
* `#!/usr/bin/env bash` shebang. On Windows, `shell: true` invokes
|
|
50
|
+
* cmd.exe — which CANNOT run a bash script and CANNOT honour the
|
|
51
|
+
* shebang line. Yaow's failures came down to exactly this: his
|
|
52
|
+
* reply.sh started with `#!/bin/bash`, and the CLI ran it under
|
|
53
|
+
* cmd.exe, producing a silent "command not recognised" / exit 1.
|
|
54
|
+
*
|
|
55
|
+
* Branching:
|
|
56
|
+
* - Non-Windows: use shell:true (current behaviour, well-tested).
|
|
57
|
+
* - Windows + bash-shaped command (`./foo.sh`, `bash foo`, `sh foo`,
|
|
58
|
+
* `*.sh`): try to find bash on PATH (git-bash, WSL, MSYS); if
|
|
59
|
+
* found, spawn `bash -c "<command>"` directly.
|
|
60
|
+
* - Windows everything-else: fall back to cmd.exe via shell:true.
|
|
61
|
+
*/
|
|
62
|
+
export declare function pickSpawn(command: string): SpawnPlan;
|
|
63
|
+
export {};
|
|
24
64
|
//# sourceMappingURL=exec.d.ts.map
|
package/dist/exec.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"exec.d.ts","sourceRoot":"","sources":["../src/exec.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"exec.d.ts","sourceRoot":"","sources":["../src/exec.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;;;;;;;GAgBG;AAEH,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,WAAW;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,wDAAwD;IACxD,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B;;;;OAIG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,wBAAsB,OAAO,CAC3B,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,OAAO,EACjB,IAAI,GAAE,WAAgB,GACrB,OAAO,CAAC,UAAU,CAAC,CAgErB;AAED,UAAU,SAAS;IACjB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,SAAS,MAAM,EAAE,CAAC;IACxB,QAAQ,EAAE,OAAO,GAAG,MAAM,CAAC;CAC5B;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,CAYpD"}
|
package/dist/exec.js
CHANGED
|
@@ -1,19 +1,42 @@
|
|
|
1
1
|
import { spawn } from 'node:child_process';
|
|
2
|
+
import { which } from './adapters/shell-helper.js';
|
|
2
3
|
export async function runShim(command, envelope, opts = {}) {
|
|
3
4
|
const start = Date.now();
|
|
4
|
-
const
|
|
5
|
-
|
|
5
|
+
const captureCap = opts.stderrCaptureBytes ?? 16 * 1024;
|
|
6
|
+
const tee = opts.teeStderr ?? true;
|
|
7
|
+
const spawnOpts = pickSpawn(command);
|
|
8
|
+
const proc = spawn(spawnOpts.cmd, spawnOpts.args, {
|
|
9
|
+
shell: spawnOpts.useShell,
|
|
6
10
|
env: { ...process.env, ...opts.env },
|
|
7
|
-
stdio: ['pipe', 'pipe', '
|
|
11
|
+
stdio: ['pipe', 'pipe', 'pipe'],
|
|
8
12
|
});
|
|
9
13
|
let stdout = '';
|
|
10
14
|
proc.stdout.on('data', (chunk) => {
|
|
11
15
|
stdout += chunk.toString('utf8');
|
|
12
16
|
});
|
|
17
|
+
let stderrBuf = '';
|
|
18
|
+
proc.stderr.on('data', (chunk) => {
|
|
19
|
+
const text = chunk.toString('utf8');
|
|
20
|
+
if (stderrBuf.length < captureCap) {
|
|
21
|
+
const remaining = captureCap - stderrBuf.length;
|
|
22
|
+
stderrBuf +=
|
|
23
|
+
text.length <= remaining ? text : text.slice(0, remaining) + '\n[stderr truncated]';
|
|
24
|
+
}
|
|
25
|
+
if (tee) {
|
|
26
|
+
try {
|
|
27
|
+
process.stderr.write(chunk);
|
|
28
|
+
}
|
|
29
|
+
catch {
|
|
30
|
+
// best-effort; never crash the loop on a tee failure
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
});
|
|
13
34
|
proc.stdin.write(JSON.stringify(envelope));
|
|
14
35
|
proc.stdin.end();
|
|
36
|
+
let timedOut = false;
|
|
15
37
|
const timer = opts.timeoutMs
|
|
16
38
|
? setTimeout(() => {
|
|
39
|
+
timedOut = true;
|
|
17
40
|
try {
|
|
18
41
|
proc.kill('SIGTERM');
|
|
19
42
|
}
|
|
@@ -24,10 +47,51 @@ export async function runShim(command, envelope, opts = {}) {
|
|
|
24
47
|
: null;
|
|
25
48
|
const exitCode = await new Promise((resolve) => {
|
|
26
49
|
proc.on('exit', (code) => resolve(code ?? 1));
|
|
27
|
-
proc.on('error', () =>
|
|
50
|
+
proc.on('error', (err) => {
|
|
51
|
+
stderrBuf += `\n[spawn error] ${err instanceof Error ? err.message : String(err)}`;
|
|
52
|
+
resolve(1);
|
|
53
|
+
});
|
|
28
54
|
});
|
|
29
55
|
if (timer)
|
|
30
56
|
clearTimeout(timer);
|
|
31
|
-
return {
|
|
57
|
+
return {
|
|
58
|
+
stdout,
|
|
59
|
+
stderr: stderrBuf,
|
|
60
|
+
exitCode,
|
|
61
|
+
durationMs: Date.now() - start,
|
|
62
|
+
timedOut,
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Pick the right spawn arguments for a user-supplied shim command,
|
|
67
|
+
* branching on platform.
|
|
68
|
+
*
|
|
69
|
+
* Why this matters: on POSIX, `spawn(cmd, { shell: true })` invokes
|
|
70
|
+
* /bin/sh which knows how to run `./reply.sh` and respect a
|
|
71
|
+
* `#!/usr/bin/env bash` shebang. On Windows, `shell: true` invokes
|
|
72
|
+
* cmd.exe — which CANNOT run a bash script and CANNOT honour the
|
|
73
|
+
* shebang line. Yaow's failures came down to exactly this: his
|
|
74
|
+
* reply.sh started with `#!/bin/bash`, and the CLI ran it under
|
|
75
|
+
* cmd.exe, producing a silent "command not recognised" / exit 1.
|
|
76
|
+
*
|
|
77
|
+
* Branching:
|
|
78
|
+
* - Non-Windows: use shell:true (current behaviour, well-tested).
|
|
79
|
+
* - Windows + bash-shaped command (`./foo.sh`, `bash foo`, `sh foo`,
|
|
80
|
+
* `*.sh`): try to find bash on PATH (git-bash, WSL, MSYS); if
|
|
81
|
+
* found, spawn `bash -c "<command>"` directly.
|
|
82
|
+
* - Windows everything-else: fall back to cmd.exe via shell:true.
|
|
83
|
+
*/
|
|
84
|
+
export function pickSpawn(command) {
|
|
85
|
+
if (process.platform !== 'win32') {
|
|
86
|
+
return { cmd: command, args: [], useShell: true };
|
|
87
|
+
}
|
|
88
|
+
const looksBash = /(?:^|\s)(?:bash|sh)\s|\.sh(\b|\s|$)|^\.\//i.test(command);
|
|
89
|
+
if (looksBash) {
|
|
90
|
+
const bash = which('bash') ?? which('git-bash') ?? null;
|
|
91
|
+
if (bash) {
|
|
92
|
+
return { cmd: bash, args: ['-c', command], useShell: false };
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
return { cmd: command, args: [], useShell: true };
|
|
32
96
|
}
|
|
33
97
|
//# sourceMappingURL=exec.js.map
|
package/dist/exec.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"exec.js","sourceRoot":"","sources":["../src/exec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"exec.js","sourceRoot":"","sources":["../src/exec.ts"],"names":[],"mappings":"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"}
|