@farmslot/recipe-cli 0.1.2 → 0.3.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/CHANGELOG.md +11 -0
- package/README.md +14 -10
- package/dist/cli.js +3 -3
- package/dist/cli.js.map +1 -1
- package/dist/commands.js +2 -2
- package/dist/commands.js.map +1 -1
- package/dist/composition.d.ts +1 -1
- package/dist/composition.d.ts.map +1 -1
- package/dist/composition.js +1 -1
- package/dist/composition.js.map +1 -1
- package/dist/discovery-index.d.ts +1 -1
- package/dist/discovery-index.d.ts.map +1 -1
- package/dist/discovery-index.js +1 -1
- package/dist/discovery-index.js.map +1 -1
- package/dist/harness/adapters.d.ts +25 -0
- package/dist/harness/adapters.d.ts.map +1 -0
- package/dist/harness/adapters.js +87 -0
- package/dist/harness/adapters.js.map +1 -0
- package/dist/harness/artifact-files.d.ts +11 -0
- package/dist/harness/artifact-files.d.ts.map +1 -0
- package/dist/harness/artifact-files.js +75 -0
- package/dist/harness/artifact-files.js.map +1 -0
- package/dist/harness/checkout-lock.d.ts +13 -0
- package/dist/harness/checkout-lock.d.ts.map +1 -0
- package/dist/harness/checkout-lock.js +211 -0
- package/dist/harness/checkout-lock.js.map +1 -0
- package/dist/harness/cli-color.d.ts +25 -0
- package/dist/harness/cli-color.d.ts.map +1 -0
- package/dist/harness/cli-color.js +101 -0
- package/dist/harness/cli-color.js.map +1 -0
- package/dist/harness/command-journal.d.ts +25 -0
- package/dist/harness/command-journal.d.ts.map +1 -0
- package/dist/harness/command-journal.js +322 -0
- package/dist/harness/command-journal.js.map +1 -0
- package/dist/harness/commands/last.d.ts +3 -0
- package/dist/harness/commands/last.d.ts.map +1 -0
- package/dist/harness/commands/last.js +59 -0
- package/dist/harness/commands/last.js.map +1 -0
- package/dist/harness/commands/launch.d.ts +2 -0
- package/dist/harness/commands/launch.d.ts.map +1 -0
- package/dist/harness/commands/launch.js +105 -0
- package/dist/harness/commands/launch.js.map +1 -0
- package/dist/harness/commands/reload.d.ts +2 -0
- package/dist/harness/commands/reload.d.ts.map +1 -0
- package/dist/harness/commands/reload.js +24 -0
- package/dist/harness/commands/reload.js.map +1 -0
- package/dist/harness/commands/stop.d.ts +9 -0
- package/dist/harness/commands/stop.d.ts.map +1 -0
- package/dist/harness/commands/stop.js +60 -0
- package/dist/harness/commands/stop.js.map +1 -0
- package/dist/harness/heal-bounds.d.ts +15 -0
- package/dist/harness/heal-bounds.d.ts.map +1 -0
- package/dist/harness/heal-bounds.js +194 -0
- package/dist/harness/heal-bounds.js.map +1 -0
- package/dist/harness/host.d.ts +37 -0
- package/dist/harness/host.d.ts.map +1 -0
- package/dist/harness/host.js +48 -0
- package/dist/harness/host.js.map +1 -0
- package/dist/harness/index.d.ts +19 -0
- package/dist/harness/index.d.ts.map +1 -0
- package/dist/harness/index.js +22 -0
- package/dist/harness/index.js.map +1 -0
- package/dist/harness/json-stream.d.ts +19 -0
- package/dist/harness/json-stream.d.ts.map +1 -0
- package/dist/harness/json-stream.js +59 -0
- package/dist/harness/json-stream.js.map +1 -0
- package/dist/harness/leaf-invoke.d.ts +8 -0
- package/dist/harness/leaf-invoke.d.ts.map +1 -0
- package/dist/harness/leaf-invoke.js +31 -0
- package/dist/harness/leaf-invoke.js.map +1 -0
- package/dist/harness/library-provenance.d.ts +3 -0
- package/dist/harness/library-provenance.d.ts.map +1 -0
- package/dist/harness/library-provenance.js +31 -0
- package/dist/harness/library-provenance.js.map +1 -0
- package/dist/harness/overlay.d.ts +17 -0
- package/dist/harness/overlay.d.ts.map +1 -0
- package/dist/harness/overlay.js +415 -0
- package/dist/harness/overlay.js.map +1 -0
- package/dist/harness/parse-args.d.ts +35 -0
- package/dist/harness/parse-args.d.ts.map +1 -0
- package/dist/harness/parse-args.js +249 -0
- package/dist/harness/parse-args.js.map +1 -0
- package/dist/harness/paths.d.ts +15 -0
- package/dist/harness/paths.d.ts.map +1 -0
- package/dist/harness/paths.js +29 -0
- package/dist/harness/paths.js.map +1 -0
- package/dist/harness/shared.d.ts +43 -0
- package/dist/harness/shared.d.ts.map +1 -0
- package/dist/harness/shared.js +414 -0
- package/dist/harness/shared.js.map +1 -0
- package/dist/libraries.d.ts +1 -1
- package/dist/libraries.d.ts.map +1 -1
- package/dist/libraries.js +1 -1
- package/dist/libraries.js.map +1 -1
- package/dist/search.d.ts +1 -1
- package/dist/search.d.ts.map +1 -1
- package/dist/types.d.ts +1 -1
- package/dist/types.d.ts.map +1 -1
- package/package.json +10 -3
|
@@ -0,0 +1,414 @@
|
|
|
1
|
+
// Shared helpers for the harness command modules: flag parsing, adapter
|
|
2
|
+
// resolution, leaf composition, and the teaching-error emitter.
|
|
3
|
+
//
|
|
4
|
+
// Composition seam (overridable for contract tests):
|
|
5
|
+
// <envPrefix>_SCRIPT_BIN_<STEM> — override a specific script by its basename.
|
|
6
|
+
// For node invocations (bin === process.execPath) the stem is derived from the
|
|
7
|
+
// script path in args[0], e.g. <envPrefix>_SCRIPT_BIN_OPEN_DEBUG_MJS.
|
|
8
|
+
import { spawn, spawnSync } from 'node:child_process';
|
|
9
|
+
import path from 'node:path';
|
|
10
|
+
import { StringDecoder } from 'node:string_decoder';
|
|
11
|
+
import { OperationOutputTail } from '@farmslot/recipe-runner/runtime/operation';
|
|
12
|
+
import { adapterForPlatform, detectAdapter, harnessAdapters } from './adapters.js';
|
|
13
|
+
import { trackCheckoutChild } from './checkout-lock.js';
|
|
14
|
+
import { colorHumanMessage } from './cli-color.js';
|
|
15
|
+
import { recordCommandOutput, recordCommandStage } from './command-journal.js';
|
|
16
|
+
import { harnessHost, hostEnvName } from './host.js';
|
|
17
|
+
import { leafStartFailureMessage, resolveLeafInvoke, shellLeafMissing } from './leaf-invoke.js';
|
|
18
|
+
// Stable public exit-code taxonomy.
|
|
19
|
+
export const EXIT = { ok: 0, runtime: 1, usage: 2, infra: 3, bounded: 4, validation: 5 };
|
|
20
|
+
export function writeInteractiveProgress(json, message, { stdoutIsTTY = Boolean(process.stdout.isTTY), stream = process.stderr, } = {}) {
|
|
21
|
+
if (json || !stdoutIsTTY)
|
|
22
|
+
return false;
|
|
23
|
+
stream.write(`${colorHumanMessage(message, { stream: stream })}\n`);
|
|
24
|
+
return true;
|
|
25
|
+
}
|
|
26
|
+
// Positionals + boolean/valued flags; camelCases --foo-bar to fooBar.
|
|
27
|
+
export function parseFlags(argv, booleans) {
|
|
28
|
+
const positional = [];
|
|
29
|
+
const options = {};
|
|
30
|
+
for (let i = 0; i < argv.length; i += 1) {
|
|
31
|
+
const arg = argv[i];
|
|
32
|
+
if (!arg.startsWith('--')) {
|
|
33
|
+
positional.push(arg);
|
|
34
|
+
continue;
|
|
35
|
+
}
|
|
36
|
+
const body = arg.slice(2);
|
|
37
|
+
const eq = body.indexOf('=');
|
|
38
|
+
const rawKey = eq === -1 ? body : body.slice(0, eq);
|
|
39
|
+
const inline = eq === -1 ? undefined : body.slice(eq + 1);
|
|
40
|
+
const key = rawKey.replace(/-([a-z])/gu, (_, c) => c.toUpperCase());
|
|
41
|
+
if (booleans.has(key)) {
|
|
42
|
+
options[key] = inline === undefined ? true : inline !== 'false';
|
|
43
|
+
continue;
|
|
44
|
+
}
|
|
45
|
+
if (inline !== undefined) {
|
|
46
|
+
options[key] = inline;
|
|
47
|
+
continue;
|
|
48
|
+
}
|
|
49
|
+
// Valued flag with a following token, unless the next token is itself a flag.
|
|
50
|
+
const next = argv[i + 1];
|
|
51
|
+
if (next === undefined || next.startsWith('--')) {
|
|
52
|
+
options[key] = true;
|
|
53
|
+
continue;
|
|
54
|
+
}
|
|
55
|
+
options[key] = next;
|
|
56
|
+
i += 1;
|
|
57
|
+
}
|
|
58
|
+
return { positional, options };
|
|
59
|
+
}
|
|
60
|
+
export function str(options, key) {
|
|
61
|
+
const value = options[key];
|
|
62
|
+
return typeof value === 'string' ? value : undefined;
|
|
63
|
+
}
|
|
64
|
+
export function flag(options, key) {
|
|
65
|
+
return options[key] === true;
|
|
66
|
+
}
|
|
67
|
+
export function targetOf(options) {
|
|
68
|
+
return path.resolve(str(options, 'target') ?? process.cwd());
|
|
69
|
+
}
|
|
70
|
+
// Explicit --adapter/--platform (a platform target selects its adapter), else
|
|
71
|
+
// an optional hint, else auto-detect from the target.
|
|
72
|
+
export function resolveFlagsAdapter(options, target, hint) {
|
|
73
|
+
const explicit = str(options, 'adapter') ?? adapterForPlatform(str(options, 'platform'));
|
|
74
|
+
if (explicit && harnessAdapters().has(explicit))
|
|
75
|
+
return explicit;
|
|
76
|
+
if (hint)
|
|
77
|
+
return hint;
|
|
78
|
+
return detectAdapter(target);
|
|
79
|
+
}
|
|
80
|
+
// The composition-seam override path for a script, if set — same stem derivation
|
|
81
|
+
// spawnScript uses. Lets a caller pre-check the SAME bin that will actually run
|
|
82
|
+
// (and lets contract tests simulate a missing leaf by pointing the seam at a
|
|
83
|
+
// nonexistent path). Returns undefined when no override is set (production).
|
|
84
|
+
export function scriptOverride(scriptPath) {
|
|
85
|
+
const stem = path
|
|
86
|
+
.basename(scriptPath)
|
|
87
|
+
.replace(/[^A-Za-z0-9]/gu, '_')
|
|
88
|
+
.toUpperCase();
|
|
89
|
+
return process.env[hostEnvName(`SCRIPT_BIN_${stem}`)];
|
|
90
|
+
}
|
|
91
|
+
// Compose an adapters/ script directly. Output is always captured (needed for
|
|
92
|
+
// heal classification) and, in human mode, forwarded to stderr. --json keeps
|
|
93
|
+
// stdout clean for the machine summary. `env` overlays extra vars onto the
|
|
94
|
+
// inherited environment for spawns that need a scoped variable (e.g. color mode).
|
|
95
|
+
export function spawnScript(script, args, cwd, json, env) {
|
|
96
|
+
// For node invocations (script === process.execPath) the seam stem is derived
|
|
97
|
+
// from args[0] so each spawned script has its own override key.
|
|
98
|
+
const isNodeScript = script === process.execPath && args.length > 0;
|
|
99
|
+
// Seam stem: for node invocations derive from args[0] so each script has its
|
|
100
|
+
// own override key; for shell and other leaves derive from the script basename.
|
|
101
|
+
const stem = isNodeScript
|
|
102
|
+
? path
|
|
103
|
+
.basename(args[0])
|
|
104
|
+
.replace(/[^A-Za-z0-9]/gu, '_')
|
|
105
|
+
.toUpperCase()
|
|
106
|
+
: path
|
|
107
|
+
.basename(script)
|
|
108
|
+
.replace(/[^A-Za-z0-9]/gu, '_')
|
|
109
|
+
.toUpperCase();
|
|
110
|
+
const override = process.env[hostEnvName(`SCRIPT_BIN_${stem}`)];
|
|
111
|
+
const bin = override ?? script;
|
|
112
|
+
const directArgs = override !== undefined && isNodeScript ? args.slice(1) : args;
|
|
113
|
+
// Shell leaves (.sh) run through bash so file mode need not be executable.
|
|
114
|
+
// Bash exits 127 (not a Node spawn error) for a missing file, so pre-check.
|
|
115
|
+
if (shellLeafMissing(bin)) {
|
|
116
|
+
const message = leafStartFailureMessage(path.basename(bin), 'ENOENT');
|
|
117
|
+
process.stderr.write(`${message}\n`);
|
|
118
|
+
return { status: 1, output: message };
|
|
119
|
+
}
|
|
120
|
+
const { bin: invokeBin, args: spawnArgs } = resolveLeafInvoke(bin, directArgs);
|
|
121
|
+
recordCommandStage(path.basename(isNodeScript ? args[0] : script));
|
|
122
|
+
const result = spawnSync(invokeBin, spawnArgs, {
|
|
123
|
+
cwd,
|
|
124
|
+
encoding: 'utf8',
|
|
125
|
+
env: env ? { ...process.env, ...env } : process.env,
|
|
126
|
+
maxBuffer: 64 * 1024 * 1024,
|
|
127
|
+
});
|
|
128
|
+
if (result.error) {
|
|
129
|
+
// Spawn failure for non-shell leaves (ENOENT/EACCES) or when bash itself
|
|
130
|
+
// cannot start. Always emit so a leaf that cannot start is never silent.
|
|
131
|
+
// For node invocations the leaf name comes from args[0], not process.execPath.
|
|
132
|
+
const leaf = isNodeScript ? path.basename(args[0]) : path.basename(script);
|
|
133
|
+
const code = result.error.code ?? 'ESPAWN';
|
|
134
|
+
const message = leafStartFailureMessage(leaf, code);
|
|
135
|
+
process.stderr.write(`${message}\n`);
|
|
136
|
+
return { status: 1, output: message };
|
|
137
|
+
}
|
|
138
|
+
const output = `${result.stdout ?? ''}${result.stderr ?? ''}`;
|
|
139
|
+
recordCommandOutput(output);
|
|
140
|
+
if (!json && output)
|
|
141
|
+
process.stderr.write(output);
|
|
142
|
+
return { status: result.status ?? 1, output };
|
|
143
|
+
}
|
|
144
|
+
// Inherit-stdio variant for interactive/streaming leaves (e.g. `logs` tailing a
|
|
145
|
+
// live file with tail -F / a follow viewer). spawnScript CAPTURES output, so a
|
|
146
|
+
// never-exiting follow shows the user nothing; this hands the terminal to the
|
|
147
|
+
// child so its output streams live. No capture, no envelope — the command owns
|
|
148
|
+
// its own --json handling.
|
|
149
|
+
export function spawnInherit(script, args, cwd) {
|
|
150
|
+
// Honor the same <envPrefix>_SCRIPT_BIN_<STEM> override seam as spawnScript so
|
|
151
|
+
// contract tests can stub tail/log-tui with a recorder (a real `tail -F`
|
|
152
|
+
// follows forever and hangs the test). Stem/override logic mirrors spawnScript.
|
|
153
|
+
const isNodeScript = script === process.execPath && args.length > 0;
|
|
154
|
+
const stem = (isNodeScript ? path.basename(args[0]) : path.basename(script))
|
|
155
|
+
.replace(/[^A-Za-z0-9]/gu, '_')
|
|
156
|
+
.toUpperCase();
|
|
157
|
+
const override = process.env[hostEnvName(`SCRIPT_BIN_${stem}`)];
|
|
158
|
+
const bin = override ?? script;
|
|
159
|
+
const directArgs = override !== undefined && isNodeScript ? args.slice(1) : args;
|
|
160
|
+
const { bin: invokeBin, args: spawnArgs } = resolveLeafInvoke(bin, directArgs);
|
|
161
|
+
const result = spawnSync(invokeBin, spawnArgs, { cwd, stdio: 'inherit', env: process.env });
|
|
162
|
+
if (result.error) {
|
|
163
|
+
// Teach on spawn failure like spawnScript/spawnScriptStreaming do (errors
|
|
164
|
+
// always teach escape) — the override-seam path can point at a missing bin.
|
|
165
|
+
const leaf = isNodeScript ? path.basename(args[0]) : path.basename(script);
|
|
166
|
+
const code = result.error.code ?? 'ESPAWN';
|
|
167
|
+
process.stderr.write(`${leafStartFailureMessage(leaf, code, 'leaf')}\n`);
|
|
168
|
+
return 1;
|
|
169
|
+
}
|
|
170
|
+
// Interactive follow: Ctrl-C (SIGINT) / SIGTERM is a normal user stop → success;
|
|
171
|
+
// any other signal (crash) is a failure.
|
|
172
|
+
if (result.status !== null)
|
|
173
|
+
return result.status;
|
|
174
|
+
return result.signal === 'SIGINT' || result.signal === 'SIGTERM' ? 0 : 1;
|
|
175
|
+
}
|
|
176
|
+
// Streaming variant of spawnScript for long-running leaves (mobile prepare:
|
|
177
|
+
// native build + Metro + health-bridge poll, minutes long). spawnScript buffers
|
|
178
|
+
// via spawnSync and, in --json mode, suppresses output entirely — so those leaves
|
|
179
|
+
// run with zero feedback until exit. This tees the child's stdout+stderr to the
|
|
180
|
+
// parent's STDERR live (so the --json envelope on stdout stays clean) while still
|
|
181
|
+
// capturing the combined output for heal classification. Same seam, leaf-invoke
|
|
182
|
+
// resolution, missing-leaf pre-check, and spawn-error contract as spawnScript.
|
|
183
|
+
export function spawnScriptStreaming(script, args, cwd, options) {
|
|
184
|
+
const spawnOptions = options &&
|
|
185
|
+
('env' in options ||
|
|
186
|
+
'timeoutMs' in options ||
|
|
187
|
+
'forward' in options ||
|
|
188
|
+
'capture' in options ||
|
|
189
|
+
'stdin' in options ||
|
|
190
|
+
'stage' in options)
|
|
191
|
+
? options
|
|
192
|
+
: { env: options };
|
|
193
|
+
const isNodeScript = script === process.execPath && args.length > 0;
|
|
194
|
+
const stem = isNodeScript
|
|
195
|
+
? path
|
|
196
|
+
.basename(args[0])
|
|
197
|
+
.replace(/[^A-Za-z0-9]/gu, '_')
|
|
198
|
+
.toUpperCase()
|
|
199
|
+
: path
|
|
200
|
+
.basename(script)
|
|
201
|
+
.replace(/[^A-Za-z0-9]/gu, '_')
|
|
202
|
+
.toUpperCase();
|
|
203
|
+
const override = process.env[hostEnvName(`SCRIPT_BIN_${stem}`)];
|
|
204
|
+
const bin = override ?? script;
|
|
205
|
+
const directArgs = override !== undefined && isNodeScript ? args.slice(1) : args;
|
|
206
|
+
if (shellLeafMissing(bin)) {
|
|
207
|
+
const message = leafStartFailureMessage(path.basename(bin), 'ENOENT');
|
|
208
|
+
if (spawnOptions.forward !== 'none')
|
|
209
|
+
process.stderr.write(`${message}\n`);
|
|
210
|
+
return Promise.resolve({ status: 1, output: message });
|
|
211
|
+
}
|
|
212
|
+
const { bin: invokeBin, args: spawnArgs } = resolveLeafInvoke(bin, directArgs);
|
|
213
|
+
recordCommandStage(spawnOptions.stage ?? path.basename(isNodeScript ? args[0] : script));
|
|
214
|
+
return new Promise((resolve, reject) => {
|
|
215
|
+
const ownsProcessGroup = process.platform !== 'win32';
|
|
216
|
+
const child = spawn(invokeBin, spawnArgs, {
|
|
217
|
+
cwd,
|
|
218
|
+
env: spawnOptions.env ? { ...process.env, ...spawnOptions.env } : process.env,
|
|
219
|
+
stdio: [spawnOptions.stdin ?? 'ignore', 'pipe', 'pipe'],
|
|
220
|
+
detached: ownsProcessGroup,
|
|
221
|
+
});
|
|
222
|
+
let untrack;
|
|
223
|
+
try {
|
|
224
|
+
untrack = child.pid ? trackCheckoutChild(cwd, child.pid, ownsProcessGroup) : undefined;
|
|
225
|
+
}
|
|
226
|
+
catch (error) {
|
|
227
|
+
child.once('error', reject);
|
|
228
|
+
child.once('close', () => reject(error));
|
|
229
|
+
try {
|
|
230
|
+
if (ownsProcessGroup && child.pid)
|
|
231
|
+
process.kill(-child.pid, 'SIGKILL');
|
|
232
|
+
else
|
|
233
|
+
child.kill('SIGKILL');
|
|
234
|
+
}
|
|
235
|
+
catch (killError) {
|
|
236
|
+
if (killError.code !== 'ESRCH')
|
|
237
|
+
reject(killError);
|
|
238
|
+
}
|
|
239
|
+
return;
|
|
240
|
+
}
|
|
241
|
+
const captured = new OperationOutputTail();
|
|
242
|
+
let settled = false;
|
|
243
|
+
let didTimeout = false;
|
|
244
|
+
let escalation;
|
|
245
|
+
let forwardedParentSignal;
|
|
246
|
+
let parentSignalFallback;
|
|
247
|
+
const parentSignals = ['SIGINT', 'SIGTERM', 'SIGHUP', 'SIGQUIT'];
|
|
248
|
+
const removeParentSignalHandlers = () => {
|
|
249
|
+
for (const signal of parentSignals)
|
|
250
|
+
process.removeListener(signal, parentSignalHandlers[signal]);
|
|
251
|
+
};
|
|
252
|
+
const finish = (result) => {
|
|
253
|
+
if (settled)
|
|
254
|
+
return;
|
|
255
|
+
settled = true;
|
|
256
|
+
if (timer)
|
|
257
|
+
clearTimeout(timer);
|
|
258
|
+
if (escalation)
|
|
259
|
+
clearTimeout(escalation);
|
|
260
|
+
if (parentSignalFallback)
|
|
261
|
+
clearTimeout(parentSignalFallback);
|
|
262
|
+
removeParentSignalHandlers();
|
|
263
|
+
resolve(result);
|
|
264
|
+
};
|
|
265
|
+
const signalChildTree = (signal) => {
|
|
266
|
+
try {
|
|
267
|
+
if (ownsProcessGroup && child.pid)
|
|
268
|
+
process.kill(-child.pid, signal);
|
|
269
|
+
else
|
|
270
|
+
child.kill(signal);
|
|
271
|
+
}
|
|
272
|
+
catch {
|
|
273
|
+
// The owned child tree already exited.
|
|
274
|
+
}
|
|
275
|
+
};
|
|
276
|
+
const exitFromForwardedSignal = () => {
|
|
277
|
+
if (!forwardedParentSignal)
|
|
278
|
+
return;
|
|
279
|
+
const signal = forwardedParentSignal;
|
|
280
|
+
forwardedParentSignal = undefined;
|
|
281
|
+
if (parentSignalFallback)
|
|
282
|
+
clearTimeout(parentSignalFallback);
|
|
283
|
+
process.kill(process.pid, signal);
|
|
284
|
+
};
|
|
285
|
+
const parentSignalHandlers = Object.fromEntries(parentSignals.map((signal) => [
|
|
286
|
+
signal,
|
|
287
|
+
() => {
|
|
288
|
+
if (forwardedParentSignal)
|
|
289
|
+
return;
|
|
290
|
+
forwardedParentSignal = signal;
|
|
291
|
+
signalChildTree(signal);
|
|
292
|
+
removeParentSignalHandlers();
|
|
293
|
+
// Let a cooperative leaf finish its signal trap before this process exits.
|
|
294
|
+
// The bound prevents an uncooperative child tree from holding Ctrl+C open.
|
|
295
|
+
if (Number(spawnOptions.timeoutMs) > 0)
|
|
296
|
+
parentSignalFallback = setTimeout(() => {
|
|
297
|
+
signalChildTree('SIGKILL');
|
|
298
|
+
exitFromForwardedSignal();
|
|
299
|
+
}, 1000);
|
|
300
|
+
},
|
|
301
|
+
]));
|
|
302
|
+
if (ownsProcessGroup) {
|
|
303
|
+
for (const signal of parentSignals)
|
|
304
|
+
process.once(signal, parentSignalHandlers[signal]);
|
|
305
|
+
}
|
|
306
|
+
const timeoutMs = spawnOptions.timeoutMs;
|
|
307
|
+
const timer = Number.isFinite(timeoutMs) && Number(timeoutMs) > 0
|
|
308
|
+
? setTimeout(() => {
|
|
309
|
+
didTimeout = true;
|
|
310
|
+
const message = `leaf timed out after ${String(timeoutMs)}ms: ${path.basename(script)}`;
|
|
311
|
+
captured.append(`\n${message}\n`);
|
|
312
|
+
if (spawnOptions.forward !== 'none')
|
|
313
|
+
process.stderr.write(`${message}\n`);
|
|
314
|
+
signalChildTree('SIGTERM');
|
|
315
|
+
escalation = setTimeout(() => {
|
|
316
|
+
signalChildTree('SIGKILL');
|
|
317
|
+
finish({
|
|
318
|
+
status: 1,
|
|
319
|
+
output: captured.toString(),
|
|
320
|
+
timedOut: true,
|
|
321
|
+
timeoutMs: Number(timeoutMs),
|
|
322
|
+
});
|
|
323
|
+
}, 1000);
|
|
324
|
+
}, Number(timeoutMs))
|
|
325
|
+
: undefined;
|
|
326
|
+
// Route BOTH child streams to the parent's stderr, live: stdout is reserved
|
|
327
|
+
// for the harness --json envelope, so all human/leaf progress goes to stderr.
|
|
328
|
+
const decoders = [new StringDecoder('utf8'), new StringDecoder('utf8')];
|
|
329
|
+
const tee = (chunk, stdout = false) => {
|
|
330
|
+
if (spawnOptions.capture !== false)
|
|
331
|
+
captured.append(decoders[stdout ? 0 : 1].write(chunk));
|
|
332
|
+
recordCommandOutput(chunk);
|
|
333
|
+
if (spawnOptions.forward !== 'none') {
|
|
334
|
+
(stdout && spawnOptions.forward === 'original' ? process.stdout : process.stderr).write(chunk);
|
|
335
|
+
}
|
|
336
|
+
};
|
|
337
|
+
child.stdout?.on('data', (chunk) => tee(chunk, true));
|
|
338
|
+
child.stderr?.on('data', tee);
|
|
339
|
+
child.on('error', (error) => {
|
|
340
|
+
const leaf = isNodeScript ? path.basename(args[0]) : path.basename(script);
|
|
341
|
+
const code = error.code ?? 'ESPAWN';
|
|
342
|
+
const message = leafStartFailureMessage(leaf, code);
|
|
343
|
+
if (spawnOptions.forward !== 'none')
|
|
344
|
+
process.stderr.write(`${message}\n`);
|
|
345
|
+
finish({ status: 1, output: message, error });
|
|
346
|
+
});
|
|
347
|
+
child.on('exit', () => {
|
|
348
|
+
if (forwardedParentSignal) {
|
|
349
|
+
exitFromForwardedSignal();
|
|
350
|
+
return;
|
|
351
|
+
}
|
|
352
|
+
if (!didTimeout)
|
|
353
|
+
return;
|
|
354
|
+
signalChildTree('SIGKILL');
|
|
355
|
+
finish({
|
|
356
|
+
status: 1,
|
|
357
|
+
output: captured.toString(),
|
|
358
|
+
timedOut: true,
|
|
359
|
+
timeoutMs: Number(timeoutMs),
|
|
360
|
+
});
|
|
361
|
+
});
|
|
362
|
+
child.on('close', (status) => {
|
|
363
|
+
// A normal leaf exit may intentionally leave a dev server running.
|
|
364
|
+
// A signal/crash keeps group ownership until every member exits.
|
|
365
|
+
if (status !== null)
|
|
366
|
+
untrack?.();
|
|
367
|
+
if (spawnOptions.capture !== false)
|
|
368
|
+
captured.append(decoders.map((decoder) => decoder.end()).join(''));
|
|
369
|
+
if (didTimeout)
|
|
370
|
+
signalChildTree('SIGKILL');
|
|
371
|
+
finish({
|
|
372
|
+
status: didTimeout ? 1 : (status ?? 1),
|
|
373
|
+
output: captured.toString(),
|
|
374
|
+
...(didTimeout ? { timedOut: true, timeoutMs: Number(timeoutMs) } : {}),
|
|
375
|
+
});
|
|
376
|
+
});
|
|
377
|
+
});
|
|
378
|
+
}
|
|
379
|
+
// Teaching-error emitter (exit 2, machine-readable in --json). `userAction` is
|
|
380
|
+
// REQUIRED: a teaching error without a reachable escape must not compile, so the
|
|
381
|
+
// escape is a typed parameter rather than free-form prose spliced into `message`.
|
|
382
|
+
export function usageOut(json, command, message, userAction) {
|
|
383
|
+
if (json) {
|
|
384
|
+
console.log(JSON.stringify({
|
|
385
|
+
schemaVersion: 1,
|
|
386
|
+
command,
|
|
387
|
+
status: 'fail',
|
|
388
|
+
exitCode: EXIT.usage,
|
|
389
|
+
error: { code: 'USAGE', message, userAction },
|
|
390
|
+
}, null, 2));
|
|
391
|
+
}
|
|
392
|
+
else {
|
|
393
|
+
console.error(`✗ ${harnessHost().name} ${command}: ${message}\n Next: ${userAction}`);
|
|
394
|
+
}
|
|
395
|
+
return EXIT.usage;
|
|
396
|
+
}
|
|
397
|
+
export function checkoutBusyOut(json, command, message, lockPath) {
|
|
398
|
+
const userAction = `wait for the current owner, or inspect ${lockPath} if its process has exited`;
|
|
399
|
+
if (json) {
|
|
400
|
+
console.log(JSON.stringify({
|
|
401
|
+
schemaVersion: 1,
|
|
402
|
+
command,
|
|
403
|
+
status: 'fail',
|
|
404
|
+
exitCode: EXIT.bounded,
|
|
405
|
+
recoverable: false,
|
|
406
|
+
error: { code: 'SANDBOX_BUSY', message, userAction },
|
|
407
|
+
}, null, 2));
|
|
408
|
+
}
|
|
409
|
+
else {
|
|
410
|
+
console.error(`✗ ${harnessHost().name} ${command}: ${message}\n Next: ${userAction}`);
|
|
411
|
+
}
|
|
412
|
+
return EXIT.bounded;
|
|
413
|
+
}
|
|
414
|
+
//# sourceMappingURL=shared.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shared.js","sourceRoot":"","sources":["../../src/harness/shared.ts"],"names":[],"mappings":"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"}
|
package/dist/libraries.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type RecipeLibraryEnv, type RecipeLibraryManifest, type RecipeLibrarySource, type RecipePackageVersions } from '@farmslot/recipe-
|
|
1
|
+
import { type RecipeLibraryEnv, type RecipeLibraryManifest, type RecipeLibrarySource, type RecipePackageVersions } from '@farmslot/recipe-runner';
|
|
2
2
|
import type { DiscoveryLibrary } from './types.js';
|
|
3
3
|
export declare const PRECEDENCE_RULES: string[];
|
|
4
4
|
export interface ResolvedDiscoveryLibrary {
|
package/dist/libraries.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"libraries.d.ts","sourceRoot":"","sources":["../src/libraries.ts"],"names":[],"mappings":"AAGA,OAAO,EAML,KAAK,gBAAgB,EACrB,KAAK,qBAAqB,EAC1B,KAAK,mBAAmB,EACxB,KAAK,qBAAqB,EAE3B,MAAM,
|
|
1
|
+
{"version":3,"file":"libraries.d.ts","sourceRoot":"","sources":["../src/libraries.ts"],"names":[],"mappings":"AAGA,OAAO,EAML,KAAK,gBAAgB,EACrB,KAAK,qBAAqB,EAC1B,KAAK,mBAAmB,EACxB,KAAK,qBAAqB,EAE3B,MAAM,yBAAyB,CAAC;AAEjC,OAAO,KAAK,EAA+B,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAIhF,eAAO,MAAM,gBAAgB,UAM5B,CAAC;AAEF,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,gBAAgB,CAAC;IACvB,MAAM,EAAE,mBAAmB,CAAC;IAC5B,QAAQ,EAAE,qBAAqB,GAAG,SAAS,CAAC;CAC7C;AAED,MAAM,WAAW,uBAAuB;IACtC,kDAAkD;IAClD,SAAS,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC9B,GAAG,CAAC,EAAE,gBAAgB,CAAC;IACvB,iFAAiF;IACjF,eAAe,CAAC,EAAE,qBAAqB,CAAC;CACzC;AAED,kFAAkF;AAClF,wBAAsB,yBAAyB,CAC7C,OAAO,GAAE,uBAA4B,GACpC,OAAO,CAAC,wBAAwB,EAAE,CAAC,CA2CrC"}
|
package/dist/libraries.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { lstat } from 'node:fs/promises';
|
|
2
2
|
import path from 'node:path';
|
|
3
|
-
import { BUILT_IN_RECIPE_PLATFORMS, checkRecipeLibraryRequirements, digestRecipeLibrary, listLibraryFiles, readRecipeLibraryManifest, resolveRecipeLibrarySources, } from '@farmslot/recipe-
|
|
3
|
+
import { BUILT_IN_RECIPE_PLATFORMS, checkRecipeLibraryRequirements, digestRecipeLibrary, listLibraryFiles, readRecipeLibraryManifest, resolveRecipeLibrarySources, } from '@farmslot/recipe-runner';
|
|
4
4
|
const ACTION_MANIFEST_FILE = /^manifests\/([^/]+)\.action-manifest\.json$/u;
|
|
5
5
|
export const PRECEDENCE_RULES = [
|
|
6
6
|
'Libraries are searched in rank order: --library entries, then RECIPE_LIBRARY_PATH, else the personal library.',
|
package/dist/libraries.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"libraries.js","sourceRoot":"","sources":["../src/libraries.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACzC,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EACL,yBAAyB,EACzB,8BAA8B,EAC9B,mBAAmB,EACnB,gBAAgB,EAChB,yBAAyB,EAKzB,2BAA2B,GAC5B,MAAM,
|
|
1
|
+
{"version":3,"file":"libraries.js","sourceRoot":"","sources":["../src/libraries.ts"],"names":[],"mappings":"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"}
|
package/dist/search.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { ResolvedLibraryRecipe } from '@farmslot/recipe-
|
|
1
|
+
import type { ResolvedLibraryRecipe } from '@farmslot/recipe-runner';
|
|
2
2
|
import { type RecipeDiscoveryIndex } from './discovery-index.js';
|
|
3
3
|
import type { SearchResult } from './types.js';
|
|
4
4
|
/** Rank actions and recipes by id, parameter names and description; every term must match. */
|
package/dist/search.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"search.d.ts","sourceRoot":"","sources":["../src/search.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"search.d.ts","sourceRoot":"","sources":["../src/search.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAGrE,OAAO,EAAE,KAAK,oBAAoB,EAAiB,MAAM,sBAAsB,CAAC;AAChF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAY/C,8FAA8F;AAC9F,wBAAgB,WAAW,CACzB,KAAK,EAAE,oBAAoB,EAC3B,KAAK,EAAE,MAAM;AACb,0EAA0E;AAC1E,QAAQ,GAAE,SAAS,qBAAqB,EAAO,GAC9C,YAAY,EAAE,CAwDhB"}
|
package/dist/types.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { RecipeExecutionCapability, RecipeResolutionDocument } from '@farmslot/protocol';
|
|
2
|
-
import type { RecipeLibraryAdapterDeclaration, RecipeLibraryOrigin, RecipeLibraryRequirement } from '@farmslot/recipe-
|
|
2
|
+
import type { RecipeLibraryAdapterDeclaration, RecipeLibraryOrigin, RecipeLibraryRequirement } from '@farmslot/recipe-runner';
|
|
3
3
|
/** Version of every `--json` envelope printed by the discovery commands. */
|
|
4
4
|
export declare const DISCOVERY_SCHEMA_VERSION: 1;
|
|
5
5
|
export type DiscoveryCommand = 'actions' | 'describe' | 'list' | 'explain' | 'search' | 'template' | 'completions';
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AAC9F,OAAO,KAAK,EACV,+BAA+B,EAC/B,mBAAmB,EACnB,wBAAwB,EACzB,MAAM,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@farmslot/recipe-cli",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.3.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -12,6 +12,11 @@
|
|
|
12
12
|
"types": "./dist/index.d.ts",
|
|
13
13
|
"import": "./dist/index.js",
|
|
14
14
|
"default": "./dist/index.js"
|
|
15
|
+
},
|
|
16
|
+
"./harness": {
|
|
17
|
+
"types": "./dist/harness/index.d.ts",
|
|
18
|
+
"import": "./dist/harness/index.js",
|
|
19
|
+
"default": "./dist/harness/index.js"
|
|
15
20
|
}
|
|
16
21
|
},
|
|
17
22
|
"scripts": {
|
|
@@ -22,13 +27,15 @@
|
|
|
22
27
|
"lint": "eslint \"src/**/*.ts\" \"test/**/*.ts\"",
|
|
23
28
|
"lint:fix": "eslint \"src/**/*.ts\" \"test/**/*.ts\" --fix",
|
|
24
29
|
"quality": "prettier --check --ignore-path ../../.prettierignore . && eslint \"src/**/*.ts\" \"test/**/*.ts\" && tsc --noEmit --project tsconfig.json && yarn build && yarn test",
|
|
25
|
-
"build": "yarn workspace @farmslot/recipe-
|
|
30
|
+
"build": "yarn workspace @farmslot/recipe-runner build && yarn workspace @farmslot/agent-runtime build && yarn workspace @farmslot/adapter-sdk build && rm -rf dist && tsc --project tsconfig.build.json",
|
|
26
31
|
"prepack": "cd ../.. && node scripts/quality/check-farmslot-package-readiness.mjs --require-changelog --packages @farmslot/recipe-cli && yarn workspace @farmslot/recipe-cli build",
|
|
27
32
|
"prepublishOnly": "node ../../scripts/quality/check-farmslot-package-readiness.mjs --publish --packages @farmslot/recipe-cli"
|
|
28
33
|
},
|
|
29
34
|
"dependencies": {
|
|
35
|
+
"@farmslot/adapter-sdk": "0.2.0",
|
|
36
|
+
"@farmslot/agent-runtime": "0.17.0",
|
|
30
37
|
"@farmslot/protocol": "0.34.0",
|
|
31
|
-
"@farmslot/recipe-
|
|
38
|
+
"@farmslot/recipe-runner": "0.23.0",
|
|
32
39
|
"commander": "^12.0.0",
|
|
33
40
|
"semver": "^7.7.3"
|
|
34
41
|
},
|