@farmslot/recipe-cli 0.12.0 → 0.14.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.
Files changed (121) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/dist/harness/acceptance-ledger.d.ts +8 -13
  3. package/dist/harness/acceptance-ledger.d.ts.map +1 -1
  4. package/dist/harness/acceptance-ledger.js +39 -112
  5. package/dist/harness/acceptance-ledger.js.map +1 -1
  6. package/dist/harness/catalog.d.ts +3 -34
  7. package/dist/harness/catalog.d.ts.map +1 -1
  8. package/dist/harness/catalog.js +53 -0
  9. package/dist/harness/catalog.js.map +1 -1
  10. package/dist/harness/command-journal.d.ts +7 -1
  11. package/dist/harness/command-journal.d.ts.map +1 -1
  12. package/dist/harness/command-journal.js +27 -5
  13. package/dist/harness/command-journal.js.map +1 -1
  14. package/dist/harness/commands/call.d.ts +7 -0
  15. package/dist/harness/commands/call.d.ts.map +1 -1
  16. package/dist/harness/commands/call.js +19 -12
  17. package/dist/harness/commands/call.js.map +1 -1
  18. package/dist/harness/commands/discover.d.ts +4 -0
  19. package/dist/harness/commands/discover.d.ts.map +1 -1
  20. package/dist/harness/commands/discover.js +7 -7
  21. package/dist/harness/commands/discover.js.map +1 -1
  22. package/dist/harness/commands/doctor.d.ts +11 -5
  23. package/dist/harness/commands/doctor.d.ts.map +1 -1
  24. package/dist/harness/commands/doctor.js +58 -20
  25. package/dist/harness/commands/doctor.js.map +1 -1
  26. package/dist/harness/commands/launch.d.ts +7 -1
  27. package/dist/harness/commands/launch.d.ts.map +1 -1
  28. package/dist/harness/commands/launch.js +7 -7
  29. package/dist/harness/commands/launch.js.map +1 -1
  30. package/dist/harness/commands/logs.d.ts +25 -0
  31. package/dist/harness/commands/logs.d.ts.map +1 -0
  32. package/dist/harness/commands/logs.js +105 -0
  33. package/dist/harness/commands/logs.js.map +1 -0
  34. package/dist/harness/commands/reload.d.ts +2 -1
  35. package/dist/harness/commands/reload.d.ts.map +1 -1
  36. package/dist/harness/commands/reload.js +3 -3
  37. package/dist/harness/commands/reload.js.map +1 -1
  38. package/dist/harness/commands/run.d.ts +20 -9
  39. package/dist/harness/commands/run.d.ts.map +1 -1
  40. package/dist/harness/commands/run.js +61 -45
  41. package/dist/harness/commands/run.js.map +1 -1
  42. package/dist/harness/commands/status.d.ts.map +1 -1
  43. package/dist/harness/commands/status.js +15 -0
  44. package/dist/harness/commands/status.js.map +1 -1
  45. package/dist/harness/commands/stop.d.ts +2 -0
  46. package/dist/harness/commands/stop.d.ts.map +1 -1
  47. package/dist/harness/commands/stop.js +2 -2
  48. package/dist/harness/commands/stop.js.map +1 -1
  49. package/dist/harness/conformance.d.ts +5 -3
  50. package/dist/harness/conformance.d.ts.map +1 -1
  51. package/dist/harness/conformance.js +22 -18
  52. package/dist/harness/conformance.js.map +1 -1
  53. package/dist/harness/context-state.d.ts +2 -1
  54. package/dist/harness/context-state.d.ts.map +1 -1
  55. package/dist/harness/context-state.js.map +1 -1
  56. package/dist/harness/context.d.ts +14 -1
  57. package/dist/harness/context.d.ts.map +1 -1
  58. package/dist/harness/context.js +24 -5
  59. package/dist/harness/context.js.map +1 -1
  60. package/dist/harness/execution-provenance.js +1 -1
  61. package/dist/harness/execution-provenance.js.map +1 -1
  62. package/dist/harness/host.d.ts +12 -0
  63. package/dist/harness/host.d.ts.map +1 -1
  64. package/dist/harness/host.js +26 -0
  65. package/dist/harness/host.js.map +1 -1
  66. package/dist/harness/index.d.ts +9 -8
  67. package/dist/harness/index.d.ts.map +1 -1
  68. package/dist/harness/index.js +8 -7
  69. package/dist/harness/index.js.map +1 -1
  70. package/dist/harness/json-stream.d.ts +7 -2
  71. package/dist/harness/json-stream.d.ts.map +1 -1
  72. package/dist/harness/json-stream.js +76 -10
  73. package/dist/harness/json-stream.js.map +1 -1
  74. package/dist/harness/live-adapter-contract.d.ts +1 -1
  75. package/dist/harness/live-adapter-contract.d.ts.map +1 -1
  76. package/dist/harness/live-adapter-contract.js +38 -96
  77. package/dist/harness/live-adapter-contract.js.map +1 -1
  78. package/dist/harness/parse-args.d.ts +2 -0
  79. package/dist/harness/parse-args.d.ts.map +1 -1
  80. package/dist/harness/parse-args.js +4 -1
  81. package/dist/harness/parse-args.js.map +1 -1
  82. package/dist/harness/project-command.d.ts +11 -0
  83. package/dist/harness/project-command.d.ts.map +1 -0
  84. package/dist/harness/project-command.js +32 -0
  85. package/dist/harness/project-command.js.map +1 -0
  86. package/dist/harness/project-host.d.ts +8 -2
  87. package/dist/harness/project-host.d.ts.map +1 -1
  88. package/dist/harness/project-host.js +172 -59
  89. package/dist/harness/project-host.js.map +1 -1
  90. package/dist/harness/recipe-library.d.ts +11 -4
  91. package/dist/harness/recipe-library.d.ts.map +1 -1
  92. package/dist/harness/recipe-library.js +14 -5
  93. package/dist/harness/recipe-library.js.map +1 -1
  94. package/dist/harness/recipe-validation.d.ts +3 -2
  95. package/dist/harness/recipe-validation.d.ts.map +1 -1
  96. package/dist/harness/recipe-validation.js +10 -15
  97. package/dist/harness/recipe-validation.js.map +1 -1
  98. package/dist/harness/run-diagnostics.d.ts +2 -49
  99. package/dist/harness/run-diagnostics.d.ts.map +1 -1
  100. package/dist/harness/run-diagnostics.js +1 -41
  101. package/dist/harness/run-diagnostics.js.map +1 -1
  102. package/dist/harness/run-engine.d.ts +7 -60
  103. package/dist/harness/run-engine.d.ts.map +1 -1
  104. package/dist/harness/run-engine.js +15 -236
  105. package/dist/harness/run-engine.js.map +1 -1
  106. package/dist/harness/run-options.d.ts.map +1 -1
  107. package/dist/harness/run-options.js +2 -1
  108. package/dist/harness/run-options.js.map +1 -1
  109. package/dist/harness/runtime-proof.d.ts +7 -19
  110. package/dist/harness/runtime-proof.d.ts.map +1 -1
  111. package/dist/harness/runtime-proof.js +54 -89
  112. package/dist/harness/runtime-proof.js.map +1 -1
  113. package/dist/harness/shared.d.ts +1 -0
  114. package/dist/harness/shared.d.ts.map +1 -1
  115. package/dist/harness/shared.js +62 -189
  116. package/dist/harness/shared.js.map +1 -1
  117. package/package.json +5 -5
  118. package/dist/harness/run-recording.d.ts +0 -48
  119. package/dist/harness/run-recording.d.ts.map +0 -1
  120. package/dist/harness/run-recording.js +0 -566
  121. package/dist/harness/run-recording.js.map +0 -1
@@ -1,9 +1,10 @@
1
1
  // Behavioral proof checks on a recipe: the plan before it runs, and the
2
2
  // executed artifact package after, independently of any task host.
3
3
  import assert from 'node:assert/strict';
4
- import { normalizeRecipeRef, validateRecipeArtifactPackage, } from '@farmslot/protocol';
4
+ import { isRecord, normalizeRecipeRef, validateRecipeArtifactPackage, } from '@farmslot/protocol';
5
+ import { collectProofNodes, executedProofIndex, extractWorkflowGraph, potentiallyEligibleProof, } from '@farmslot/recipe-runner';
5
6
  /** Validate executed behavioral proof, independently of any task host or control plane. */
6
- export function validateRuntimeProof(bundle, smokeTarget) {
7
+ export function validateRuntimeProof(bundle, smokeTarget, teardownTarget, visualProof = {}) {
7
8
  const checked = validateRecipeArtifactPackage(bundle);
8
9
  assert.equal(checked.status, 'valid', JSON.stringify(checked.findings));
9
10
  const { recipe, summary, trace, manifest, recipeResolution, resolvedRecipes } = bundle;
@@ -20,30 +21,8 @@ export function validateRuntimeProof(bundle, smokeTarget) {
20
21
  const nodes = collectProofNodes(recipe, documents);
21
22
  const executed = new Map(entries.map((entry, index) => [entry.nodeId ?? entry.id, { entry, index }]));
22
23
  function proves(id) {
23
- const node = nodes.get(id);
24
- const current = executed.get(id);
25
- if (!current || current.entry.action !== node.action)
26
- return false;
27
- if (node.action === 'call')
28
- return [...nodes.keys()].some((child) => child.startsWith(`${id}/`) && proves(child));
29
- if (!assertions.has(node.action) ||
30
- !current.entry.output ||
31
- typeof current.entry.output !== 'object')
32
- return false;
33
- if (node.action === 'assert_output') {
34
- const source = assertionSource(id, node);
35
- const prior = executed.get(source);
36
- const action = nodes.get(source)?.action;
37
- return Boolean(prior &&
38
- prior.index < current.index &&
39
- action &&
40
- action === prior.entry.action &&
41
- isObservation(action));
42
- }
43
- if (node.action === 'ui.wait_for')
44
- return entries.slice(0, current.index).some((entry) => inputs.has(entry.action));
45
- return (typeof node.path === 'string' &&
46
- manifest.artifacts.some((artifact) => artifact.path === node.path && artifact.category === 'proof'));
24
+ const index = executedProofIndex(id, nodes, entries, manifest.artifacts);
25
+ return index !== null && entries[index]?.ok === true;
47
26
  }
48
27
  assert(recipe.proofTargets?.length, 'Runtime recipe has no behavioral proof targets');
49
28
  for (const target of recipe.proofTargets) {
@@ -52,60 +31,53 @@ export function validateRuntimeProof(bundle, smokeTarget) {
52
31
  }
53
32
  if (smokeTarget)
54
33
  assert(recipe.proofTargets.some((target) => target.id === smokeTarget), 'Smoke target is absent from recipe');
55
- }
56
- const assertions = new Set(['assert_output', 'assert_json', 'ui.wait_for']);
57
- const controls = new Set([
58
- 'end',
59
- 'wait',
60
- 'manual',
61
- 'switch',
62
- 'call',
63
- 'index_artifacts',
64
- 'assert_exit_code',
65
- 'assert_file',
66
- 'branch',
67
- 'repeat',
68
- 'set',
69
- 'log',
70
- ]);
71
- const inputs = new Set([
72
- 'ui.press',
73
- 'ui.key_press',
74
- 'ui.set_input',
75
- 'ui.swipe',
76
- 'ui.drag',
77
- 'ui.long_press',
78
- ]);
79
- function isObservation(action) {
80
- return !controls.has(action) && !assertions.has(action);
81
- }
82
- function assertionSource(id, node) {
83
- const prefix = id.includes('/') ? id.slice(0, id.lastIndexOf('/') + 1) : '';
84
- return prefix + String(node.source ?? node.node ?? '');
85
- }
86
- function collectProofNodes(recipe, documents) {
87
- const nodes = new Map();
88
- function collect(document, prefix = '', stack = new Set()) {
89
- for (const [id, node] of Object.entries(document.workflow.nodes)) {
90
- nodes.set(prefix + id, node);
91
- if (node.action === 'call' && typeof node.ref === 'string') {
92
- const ref = normalizeRecipeRef(node.ref);
93
- assert(!stack.has(ref), 'Recursive recipe proof');
94
- const nested = documents.get(ref);
95
- assert(nested, `Missing resolved recipe ${ref}`);
96
- collect(nested, `${prefix}${id}/`, new Set(stack).add(ref));
97
- }
98
- }
34
+ if (teardownTarget) {
35
+ assert(recipe.proofTargets.some((target) => target.id === teardownTarget) &&
36
+ teardownProofNodes(recipe, nodes, teardownTarget).some(proves), `Teardown target ${teardownTarget} has no executed cleanup assertion`);
99
37
  }
100
- collect(recipe);
101
- return nodes;
38
+ if (!visualProof.captureRequired && !visualProof.hudRequired)
39
+ return [];
40
+ const proofNodes = [...nodes].filter(([, node]) => node.proves?.includes(smokeTarget ?? ''));
41
+ const captures = manifest.artifacts.filter((artifact) => {
42
+ if (artifact.type !== 'screenshot' && artifact.type !== 'video')
43
+ return false;
44
+ const nodeId = artifact.nodeId;
45
+ if (!nodeId || !proofNodes.some(([id]) => nodeId === id || nodeId.startsWith(`${id}/`)))
46
+ return false;
47
+ const entry = executed.get(nodeId)?.entry;
48
+ if (!entry || entry.action !== nodes.get(nodeId)?.action)
49
+ return false;
50
+ if (!visualProof.hudRequired)
51
+ return true;
52
+ const hud = artifact.metadata?.hud;
53
+ if (!isRecord(hud) || typeof entry.intent !== 'string')
54
+ return false;
55
+ const expected = entry.intent.replace(/\s+/gu, ' ').trim();
56
+ const matches = (value) => {
57
+ if (!isRecord(value) || value.visible !== true || typeof value.intent !== 'string')
58
+ return false;
59
+ const observed = value.intent.replace(/\s+/gu, ' ').trim();
60
+ return Boolean(expected && observed === expected);
61
+ };
62
+ return matches(hud.before) && matches(hud.after);
63
+ });
64
+ assert(captures.length, visualProof.hudRequired
65
+ ? 'Live smoke has no capture tied to its proof with the rendered intent HUD observed before and after capture.'
66
+ : 'Live smoke has no capture tied to its named proof.');
67
+ return captures.map((artifact) => artifact.path);
68
+ }
69
+ function teardownProofNodes(recipe, nodes, target) {
70
+ const graph = extractWorkflowGraph(recipe);
71
+ if (!graph.teardownEntry)
72
+ return [];
73
+ return [...nodes].flatMap(([id, node]) => node.proves?.includes(target) && !graph.mainNodeIds.has(id.split('/')[0]) ? [id] : []);
102
74
  }
103
75
  /**
104
76
  * Check possible proof bindings after protocol/dependency validation, without executing a graph.
105
77
  * A clean result is conditional: order, branches, successful observations and indexed artifacts
106
78
  * still require validateRuntimeProof on the executed package.
107
79
  */
108
- export function validateRuntimeProofPlan(recipe, documents = new Map()) {
80
+ export function validateRuntimeProofPlan(recipe, documents = new Map(), teardownTarget, smokeTarget) {
109
81
  const finding = (code, path, message) => ({
110
82
  severity: 'error',
111
83
  code,
@@ -117,22 +89,8 @@ export function validateRuntimeProofPlan(recipe, documents = new Map()) {
117
89
  finding('proof.targets_missing', 'proofTargets', 'Behavioral proof requires at least one proof target.'),
118
90
  ];
119
91
  const nodes = collectProofNodes(recipe, documents);
120
- const hasInput = [...nodes.values()].some((node) => inputs.has(node.action));
121
- function eligible(id) {
122
- const node = nodes.get(id);
123
- if (node.action === 'call')
124
- return [...nodes.keys()].some((child) => child.startsWith(`${id}/`) && eligible(child));
125
- if (node.action === 'assert_output') {
126
- const source = nodes.get(assertionSource(id, node));
127
- return Boolean(source && isObservation(source.action));
128
- }
129
- // Inputs may live in a caller or a sibling call. Do not infer execution order here.
130
- if (node.action === 'ui.wait_for')
131
- return hasInput;
132
- // The manifest is created at execution; a path alone cannot prove it will be indexed.
133
- return node.action === 'assert_json' && typeof node.path === 'string';
134
- }
135
- return recipe.proofTargets.flatMap((target, index) => {
92
+ const eligible = (id) => potentiallyEligibleProof(id, nodes);
93
+ const findings = recipe.proofTargets.flatMap((target, index) => {
136
94
  const linked = [...nodes].filter(([, node]) => node.proves?.includes(target.id));
137
95
  return linked.some(([id]) => eligible(id))
138
96
  ? []
@@ -140,5 +98,12 @@ export function validateRuntimeProofPlan(recipe, documents = new Map()) {
140
98
  finding('proof.no_runtime_assertion', `proofTargets[${index}]`, `Proof target ${target.id} has no potentially eligible runtime assertion. Bind proves to assert_output over an observation, ui.wait_for with an input action, assert_json over a proof artifact, or a call containing one. Runtime order, outcomes and artifact indexing remain unverified.`),
141
99
  ];
142
100
  });
101
+ if (smokeTarget && !recipe.proofTargets.some((target) => target.id === smokeTarget)) {
102
+ findings.push(finding('proof.smoke_target_missing', 'proofTargets', `Smoke target ${smokeTarget} is absent from the recipe.`));
103
+ }
104
+ if (teardownTarget && !teardownProofNodes(recipe, nodes, teardownTarget).some(eligible)) {
105
+ findings.push(finding('proof.teardown_assertion_missing', 'workflow.teardown', `Teardown target ${teardownTarget} needs a runtime assertion in the authored teardown.`));
106
+ }
107
+ return findings;
143
108
  }
144
109
  //# sourceMappingURL=runtime-proof.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"runtime-proof.js","sourceRoot":"","sources":["../../src/harness/runtime-proof.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runtime-proof.js","sourceRoot":"","sources":["../../src/harness/runtime-proof.ts"],"names":[],"mappings":"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"}
@@ -27,6 +27,7 @@ export interface ScriptResult {
27
27
  timeoutMs?: number;
28
28
  }
29
29
  export interface StreamingSpawnOptions {
30
+ signal?: AbortSignal;
30
31
  stage?: string;
31
32
  capture?: boolean;
32
33
  stdin?: 'ignore' | 'inherit';
@@ -1 +1 @@
1
- {"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../src/harness/shared.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../src/harness/shared.ts"],"names":[],"mappings":"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"}
@@ -5,16 +5,17 @@
5
5
  // <envPrefix>_SCRIPT_BIN_<STEM> — override a specific script by its basename.
6
6
  // For node invocations (bin === process.execPath) the stem is derived from the
7
7
  // script path in args[0], e.g. <envPrefix>_SCRIPT_BIN_OPEN_DEBUG_MJS.
8
- import { spawn, spawnSync } from 'node:child_process';
8
+ import { spawnSync } from 'node:child_process';
9
9
  import path from 'node:path';
10
10
  import { StringDecoder } from 'node:string_decoder';
11
+ import { runOwnedRecipeProcess } from '@farmslot/recipe-runner/adapters/core';
11
12
  import { OperationOutputTail } from '@farmslot/recipe-runner/runtime/operation';
12
13
  import { adapterForPlatform, harnessAdapters } from './adapters.js';
13
14
  import { trackCheckoutChild } from './checkout-lock.js';
14
15
  import { colorHumanMessage } from './cli-color.js';
15
16
  import { recordCommandOutput, recordCommandStage } from './command-journal.js';
16
17
  import { contextAdapter, harnessContextField } from './context-state.js';
17
- import { harnessHost, hostEnvName } from './host.js';
18
+ import { harnessHost, hostEnvName, recipeExecutionSignal, withRecipeSignals } from './host.js';
18
19
  import { leafStartFailureMessage, resolveLeafInvoke, shellLeafMissing } from './leaf-invoke.js';
19
20
  // Stable public exit-code taxonomy.
20
21
  export const EXIT = { ok: 0, runtime: 1, usage: 2, infra: 3, bounded: 4, validation: 5 };
@@ -188,7 +189,8 @@ export function spawnScriptStreaming(script, args, cwd, options) {
188
189
  'forward' in options ||
189
190
  'capture' in options ||
190
191
  'stdin' in options ||
191
- 'stage' in options)
192
+ 'stage' in options ||
193
+ 'signal' in options)
192
194
  ? options
193
195
  : { env: options };
194
196
  const isNodeScript = script === process.execPath && args.length > 0;
@@ -212,198 +214,69 @@ export function spawnScriptStreaming(script, args, cwd, options) {
212
214
  }
213
215
  const { bin: invokeBin, args: spawnArgs } = resolveLeafInvoke(bin, directArgs);
214
216
  recordCommandStage(spawnOptions.stage ?? path.basename(isNodeScript ? args[0] : script));
215
- return new Promise((resolve, reject) => {
216
- const ownsProcessGroup = process.platform !== 'win32';
217
- // Listen for parent signals before the spawn. Node runs a listener only after
218
- // this synchronous section, when child is set; a signal that arrived with no
219
- // listener yet would end this process and leave the detached tree running.
220
- let child;
221
- let forwardedParentSignal;
222
- let parentSignalFallback;
223
- const parentSignals = ['SIGINT', 'SIGTERM', 'SIGHUP', 'SIGQUIT'];
224
- const removeParentSignalHandlers = () => {
225
- for (const signal of parentSignals)
226
- process.removeListener(signal, parentSignalHandlers[signal]);
227
- };
228
- let groupKilled = false;
229
- let leafExited = false;
230
- const signalChildTree = (signal) => {
231
- try {
232
- if (ownsProcessGroup && child.pid) {
233
- process.kill(-child.pid, signal);
234
- if (signal === 'SIGKILL')
235
- groupKilled = true;
236
- }
237
- else
238
- child.kill(signal);
239
- }
240
- catch (error) {
241
- const { code } = error;
242
- // ESRCH: the owned child tree already exited. EPERM once this group was
243
- // SIGKILLed, or once the leaf has exited: macOS refuses to signal a
244
- // group whose only members are zombies not yet reaped, so the group is
245
- // gone. After the leaf exits it can also mean a descendant left in the
246
- // group runs as another user; this process could not signal it either,
247
- // and a throw here would crash from an exit handler. Any other EPERM
248
- // still throws.
249
- if (code !== 'ESRCH' && !(code === 'EPERM' && (groupKilled || leafExited)))
250
- throw error;
251
- }
252
- };
253
- const exitFromForwardedSignal = () => {
254
- if (!forwardedParentSignal)
255
- return;
256
- const signal = forwardedParentSignal;
257
- forwardedParentSignal = undefined;
258
- if (parentSignalFallback)
259
- clearTimeout(parentSignalFallback);
260
- process.kill(process.pid, signal);
261
- };
262
- const parentSignalHandlers = Object.fromEntries(parentSignals.map((signal) => [
263
- signal,
264
- () => {
265
- if (forwardedParentSignal)
266
- return;
267
- forwardedParentSignal = signal;
268
- signalChildTree(signal);
269
- removeParentSignalHandlers();
270
- // Let a cooperative leaf finish its signal trap before this process exits.
271
- // The bound prevents an uncooperative child tree from holding Ctrl+C open.
272
- if (Number(spawnOptions.timeoutMs) > 0)
273
- parentSignalFallback = setTimeout(() => {
274
- signalChildTree('SIGKILL');
275
- exitFromForwardedSignal();
276
- }, 1000);
277
- },
278
- ]));
279
- if (ownsProcessGroup) {
280
- for (const signal of parentSignals)
281
- process.once(signal, parentSignalHandlers[signal]);
282
- }
283
- try {
284
- child = spawn(invokeBin, spawnArgs, {
285
- cwd,
286
- env: spawnOptions.env ? { ...process.env, ...spawnOptions.env } : process.env,
287
- stdio: [spawnOptions.stdin ?? 'ignore', 'pipe', 'pipe'],
288
- detached: ownsProcessGroup,
289
- });
290
- }
291
- catch (error) {
292
- // spawn threw before any child existed (an invalid argument): stop
293
- // listening, so a later signal takes its default action again.
294
- removeParentSignalHandlers();
295
- reject(error);
296
- return;
297
- }
298
- let untrack;
299
- try {
300
- untrack = child.pid ? trackCheckoutChild(cwd, child.pid, ownsProcessGroup) : undefined;
301
- }
302
- catch (error) {
303
- removeParentSignalHandlers();
304
- child.once('error', reject);
305
- child.once('close', () => reject(error));
306
- try {
307
- if (ownsProcessGroup && child.pid)
308
- process.kill(-child.pid, 'SIGKILL');
309
- else
310
- child.kill('SIGKILL');
311
- }
312
- catch (killError) {
313
- if (killError.code !== 'ESRCH')
314
- reject(killError);
315
- }
316
- return;
317
- }
318
- const captured = new OperationOutputTail();
319
- let settled = false;
320
- let didTimeout = false;
321
- let escalation;
322
- const finish = (result) => {
323
- if (settled)
324
- return;
325
- settled = true;
326
- if (timer)
327
- clearTimeout(timer);
328
- if (escalation)
329
- clearTimeout(escalation);
330
- if (parentSignalFallback)
331
- clearTimeout(parentSignalFallback);
332
- removeParentSignalHandlers();
333
- resolve(result);
334
- };
335
- const timeoutMs = spawnOptions.timeoutMs;
336
- const timer = Number.isFinite(timeoutMs) && Number(timeoutMs) > 0
337
- ? setTimeout(() => {
338
- didTimeout = true;
339
- const message = `leaf timed out after ${String(timeoutMs)}ms: ${path.basename(script)}`;
340
- captured.append(`\n${message}\n`);
341
- if (spawnOptions.forward !== 'none')
342
- process.stderr.write(`${message}\n`);
343
- signalChildTree('SIGTERM');
344
- escalation = setTimeout(() => {
345
- signalChildTree('SIGKILL');
346
- finish({
347
- status: 1,
348
- output: captured.toString(),
349
- timedOut: true,
350
- timeoutMs: Number(timeoutMs),
351
- });
352
- }, 1000);
353
- }, Number(timeoutMs))
354
- : undefined;
355
- // Route BOTH child streams to the parent's stderr, live: stdout is reserved
356
- // for the harness --json envelope, so all human/leaf progress goes to stderr.
357
- const decoders = [new StringDecoder('utf8'), new StringDecoder('utf8')];
358
- const tee = (chunk, stdout = false) => {
217
+ const signal = spawnOptions.signal ?? recipeExecutionSignal();
218
+ let forwardedParentSignal;
219
+ const captured = new OperationOutputTail();
220
+ let spawnError;
221
+ const decoders = { stdout: new StringDecoder('utf8'), stderr: new StringDecoder('utf8') };
222
+ return withRecipeSignals((scoped) => runOwnedRecipeProcess(invokeBin, spawnArgs, {
223
+ cwd,
224
+ env: spawnOptions.env ? { ...process.env, ...spawnOptions.env } : process.env,
225
+ signal: scoped,
226
+ timeoutMs: spawnOptions.timeoutMs,
227
+ stdin: spawnOptions.stdin,
228
+ capture: false,
229
+ onSpawn: (pid, ownsGroup) => trackCheckoutChild(cwd, pid, ownsGroup),
230
+ onSpawnError: (error) => {
231
+ spawnError = error;
232
+ },
233
+ onOutput: (chunk, stream) => {
359
234
  if (spawnOptions.capture !== false)
360
- captured.append(decoders[stdout ? 0 : 1].write(chunk));
235
+ captured.append(decoders[stream].write(chunk));
361
236
  recordCommandOutput(chunk);
362
237
  if (spawnOptions.forward !== 'none') {
363
- (stdout && spawnOptions.forward === 'original' ? process.stdout : process.stderr).write(chunk);
238
+ (stream === 'stdout' && spawnOptions.forward === 'original'
239
+ ? process.stdout
240
+ : process.stderr).write(chunk);
364
241
  }
365
- };
366
- child.stdout?.on('data', (chunk) => tee(chunk, true));
367
- child.stderr?.on('data', tee);
368
- child.on('error', (error) => {
369
- const leaf = isNodeScript ? path.basename(args[0]) : path.basename(script);
370
- const code = error.code ?? 'ESPAWN';
371
- const message = leafStartFailureMessage(leaf, code);
242
+ },
243
+ })
244
+ .then((result) => {
245
+ if (spawnOptions.capture !== false) {
246
+ captured.append(decoders.stdout.end());
247
+ captured.append(decoders.stderr.end());
248
+ }
249
+ if (result.timedOut) {
250
+ const message = `leaf timed out after ${String(spawnOptions.timeoutMs)}ms: ${path.basename(script)}`;
251
+ captured.append(`\n${message}\n`);
372
252
  if (spawnOptions.forward !== 'none')
373
253
  process.stderr.write(`${message}\n`);
374
- finish({ status: 1, output: message, error });
375
- });
376
- child.on('exit', () => {
377
- leafExited = true;
378
- if (forwardedParentSignal) {
379
- exitFromForwardedSignal();
380
- return;
381
- }
382
- if (!didTimeout)
383
- return;
384
- signalChildTree('SIGKILL');
385
- finish({
386
- status: 1,
387
- output: captured.toString(),
388
- timedOut: true,
389
- timeoutMs: Number(timeoutMs),
390
- });
391
- });
392
- child.on('close', (status) => {
393
- // A normal leaf exit may intentionally leave a dev server running.
394
- // A signal/crash keeps group ownership until every member exits.
395
- if (status !== null)
396
- untrack?.();
397
- if (spawnOptions.capture !== false)
398
- captured.append(decoders.map((decoder) => decoder.end()).join(''));
399
- if (didTimeout)
400
- signalChildTree('SIGKILL');
401
- finish({
402
- status: didTimeout ? 1 : (status ?? 1),
403
- output: captured.toString(),
404
- ...(didTimeout ? { timedOut: true, timeoutMs: Number(timeoutMs) } : {}),
405
- });
406
- });
254
+ }
255
+ return {
256
+ status: result.timedOut ? 1 : result.exitCode,
257
+ output: captured.toString(),
258
+ ...(result.timedOut
259
+ ? { timedOut: true, timeoutMs: Number(spawnOptions.timeoutMs) }
260
+ : {}),
261
+ };
262
+ })
263
+ .catch((error) => {
264
+ if (signal?.aborted)
265
+ throw error;
266
+ if (scoped.aborted) {
267
+ forwardedParentSignal = scoped.reason;
268
+ return { status: 1, output: captured.toString() };
269
+ }
270
+ if (error !== spawnError)
271
+ throw error;
272
+ const leaf = isNodeScript ? path.basename(args[0]) : path.basename(script);
273
+ const message = leafStartFailureMessage(leaf, error.code ?? 'ESPAWN');
274
+ if (spawnOptions.forward !== 'none')
275
+ process.stderr.write(`${message}\n`);
276
+ return { status: 1, output: message, error };
277
+ }), signal ?? (process.platform === 'win32' ? new AbortController().signal : undefined)).finally(() => {
278
+ if (forwardedParentSignal)
279
+ process.kill(process.pid, forwardedParentSignal);
407
280
  });
408
281
  }
409
282
  // Teaching-error emitter (exit 2, machine-readable in --json). `userAction` is
@@ -1 +1 @@
1
- {"version":3,"file":"shared.js","sourceRoot":"","sources":["../../src/harness/shared.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"shared.js","sourceRoot":"","sources":["../../src/harness/shared.ts"],"names":[],"mappings":"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"}