@farmslot/recipe-runner 0.28.2 → 0.28.4

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 (42) hide show
  1. package/CHANGELOG.md +11 -1
  2. package/dist/core/compose.js +2 -2
  3. package/dist/core/compose.js.map +1 -1
  4. package/dist/core/execution.js +1 -1
  5. package/dist/core/execution.js.map +1 -1
  6. package/dist/core/failure.d.ts +1 -0
  7. package/dist/core/failure.d.ts.map +1 -1
  8. package/dist/core/failure.js +1 -0
  9. package/dist/core/failure.js.map +1 -1
  10. package/dist/core/parameters.d.ts +3 -1
  11. package/dist/core/parameters.d.ts.map +1 -1
  12. package/dist/core/parameters.js +48 -27
  13. package/dist/core/parameters.js.map +1 -1
  14. package/dist/core/runner.d.ts.map +1 -1
  15. package/dist/core/runner.js +90 -49
  16. package/dist/core/runner.js.map +1 -1
  17. package/dist/core/suite.d.ts.map +1 -1
  18. package/dist/core/suite.js +13 -1
  19. package/dist/core/suite.js.map +1 -1
  20. package/dist/core/trust.d.ts.map +1 -1
  21. package/dist/core/trust.js +3 -1
  22. package/dist/core/trust.js.map +1 -1
  23. package/dist/core/types.d.ts +2 -0
  24. package/dist/core/types.d.ts.map +1 -1
  25. package/dist/index.d.ts +1 -1
  26. package/dist/index.d.ts.map +1 -1
  27. package/dist/index.js +1 -1
  28. package/dist/index.js.map +1 -1
  29. package/dist/recording/android-mirror.d.ts.map +1 -1
  30. package/dist/recording/android-mirror.js +21 -4
  31. package/dist/recording/android-mirror.js.map +1 -1
  32. package/dist/recording/capture-helper-interruption.d.ts +17 -0
  33. package/dist/recording/capture-helper-interruption.d.ts.map +1 -1
  34. package/dist/recording/capture-helper-interruption.js +47 -1
  35. package/dist/recording/capture-helper-interruption.js.map +1 -1
  36. package/dist/recording/capture-helper.d.ts.map +1 -1
  37. package/dist/recording/capture-helper.js +24 -4
  38. package/dist/recording/capture-helper.js.map +1 -1
  39. package/dist/runtime/cdp.d.ts.map +1 -1
  40. package/dist/runtime/cdp.js +17 -2
  41. package/dist/runtime/cdp.js.map +1 -1
  42. package/package.json +2 -2
package/CHANGELOG.md CHANGED
@@ -4,7 +4,17 @@ All notable changes to `@farmslot/recipe-runner` (published as `@farmslot/recipe
4
4
 
5
5
  ## Unreleased
6
6
 
7
- - Active-development baseline; add user-facing changes here before release or package publication.
7
+ ## 0.28.4 - 2026-10-10
8
+
9
+ - Keep measured partial footage when the owned Android mirror exits, and report `CAPTURE_INTERRUPTED`. The completion HUD waits for recorder finalization, including caller-owned recordings through `RecipeRunRequest.finalizeRecording`; interrupted or failed finalization draws FAIL. Losing the HUD endpoint with the capture keeps the incomplete-evidence classification; independent HUD and product failures remain failures. CDP calls reject immediately after connection closure. Session screenshots stop using cached frames as soon as the helper reports `stream_stopped`; fresh capture waits for encoder finalization. Interruption messages omit unmeasured frame counts and media times instead of reporting zero as a measurement.
10
+
11
+ - Publish with protocol 0.36.0 so consumers share one dependency copy.
12
+
13
+ ## 0.28.3 - 2026-10-10
14
+
15
+ - Fix: `{{outputs.node.items[0].field}}` resolved to its own text, so an `assert_output` compared the value against the template; `{{outputs.node.items.0.field}}` failed as not defined. Both now index the array. A `{{params.` or `{{outputs.` that does not parse as a template fails resolution with `RECIPE_PARAMS_INVALID`. Resolution errors quote the template as written, name the node (`resolveRecipeValue` option `nodeId`), and report an index past the end of an array as out of range. Needs the protocol release with `parseRecipeTemplate`.
16
+ - A run whose only failure is an interrupted recording is reported as incomplete evidence, not as a product failure: `finalizeRecipeSuite` marks its verdict `evidence_incomplete` with the partial video. Exports `CAPTURE_EVIDENCE_INCOMPLETE` (from protocol), `isCaptureInterruptedEntry`, `onlyCaptureInterrupted`, `loneCaptureInterruption` and `readRunTraceEntries` (a trace.json's entries in either shape), the one rule every consumer uses.
17
+ - Publish with protocol 0.35.2.
8
18
 
9
19
  ## 0.28.2 - 2026-10-09
10
20
 
@@ -10,14 +10,14 @@ export function rootResolutionRef(digest) {
10
10
  /** Validate every static call boundary after parent defaults and parameters are applied. */
11
11
  export function validateRecipeDependencyParams(options) {
12
12
  const visit = (document, params) => {
13
- for (const rawNode of Object.values(extractWorkflowGraph(document).nodes)) {
13
+ for (const [nodeId, rawNode] of Object.entries(extractWorkflowGraph(document).nodes)) {
14
14
  if (rawNode.action !== 'call' || typeof rawNode.ref !== 'string')
15
15
  continue;
16
16
  const ref = normalizeRecipeRef(rawNode.ref);
17
17
  const dependency = options.recipes.get(ref);
18
18
  if (!dependency)
19
19
  continue;
20
- const node = resolveRecipeValue(rawNode, params);
20
+ const node = resolveRecipeValue(rawNode, params, undefined, { nodeId });
21
21
  const childParams = resolveRecipeParams(ref, dependency.document, isRecord(node) && isRecord(node.params) ? node.params : {}, { allowTemplates: true });
22
22
  visit(dependency.document, childParams);
23
23
  }
@@ -1 +1 @@
1
- {"version":3,"file":"compose.js","sourceRoot":"","sources":["../../src/core/compose.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"compose.js","sourceRoot":"","sources":["../../src/core/compose.ts"],"names":[],"mappings":"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"}
@@ -50,7 +50,7 @@ export async function executeRecipe(options) {
50
50
  }
51
51
  let resolvedNode;
52
52
  try {
53
- resolvedNode = resolveRecipeValue(rawNode, params, outputs);
53
+ resolvedNode = resolveRecipeValue(rawNode, params, outputs, { nodeId: namespacedNodeId });
54
54
  }
55
55
  catch (error) {
56
56
  recordSyntheticFailure(options.traceWriter, namespacedNodeId, error instanceof Error ? error : new Error(String(error)), typeof rawNode.action === 'string' ? rawNode.action : undefined, 'harness');
@@ -1 +1 @@
1
- {"version":3,"file":"execution.js","sourceRoot":"","sources":["../../src/core/execution.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"execution.js","sourceRoot":"","sources":["../../src/core/execution.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import type { RecipeFailureCause } from '@farmslot/protocol';
2
2
  declare const RECIPE_EXECUTION_ERROR_BRAND: unique symbol;
3
+ export declare const RUNTIME_CONNECTION_CLOSED = "RUNTIME_CONNECTION_CLOSED";
3
4
  export interface RecipeExecutionErrorOptions extends ErrorOptions {
4
5
  /** Stable machine-readable failure code recorded as trace error_code. */
5
6
  code?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"failure.d.ts","sourceRoot":"","sources":["../../src/core/failure.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAE7D,QAAA,MAAM,4BAA4B,eAA6D,CAAC;AAQhG,MAAM,WAAW,2BAA4B,SAAQ,YAAY;IAC/D,yEAAyE;IACzE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,6EAA6E;IAC7E,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,qBAAa,oBAAqB,SAAQ,KAAK;IAC7C,QAAQ,CAAC,CAAC,4BAA4B,CAAC,QAAQ;IAC/C,QAAQ,CAAC,UAAU,EAAE,kBAAkB,CAAC;IACxC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;gBAGzB,UAAU,EAAE,kBAAkB,EAC9B,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,2BAA2B;CAQxC;AAWD,4EAA4E;AAC5E,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,OAAO,GAAG;IACxD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB,CAMA;AAED,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,OAAO,EACd,QAAQ,GAAE,kBAA8B,GACvC,kBAAkB,CAKpB"}
1
+ {"version":3,"file":"failure.d.ts","sourceRoot":"","sources":["../../src/core/failure.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAE7D,QAAA,MAAM,4BAA4B,eAA6D,CAAC;AAChG,eAAO,MAAM,yBAAyB,8BAA8B,CAAC;AAQrE,MAAM,WAAW,2BAA4B,SAAQ,YAAY;IAC/D,yEAAyE;IACzE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,6EAA6E;IAC7E,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,qBAAa,oBAAqB,SAAQ,KAAK;IAC7C,QAAQ,CAAC,CAAC,4BAA4B,CAAC,QAAQ;IAC/C,QAAQ,CAAC,UAAU,EAAE,kBAAkB,CAAC;IACxC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;gBAGzB,UAAU,EAAE,kBAAkB,EAC9B,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,2BAA2B;CAQxC;AAWD,4EAA4E;AAC5E,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,OAAO,GAAG;IACxD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB,CAMA;AAED,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,OAAO,EACd,QAAQ,GAAE,kBAA8B,GACvC,kBAAkB,CAKpB"}
@@ -1,5 +1,6 @@
1
1
  var _a;
2
2
  const RECIPE_EXECUTION_ERROR_BRAND = Symbol.for('@farmslot/recipe-runner/RecipeExecutionError');
3
+ export const RUNTIME_CONNECTION_CLOSED = 'RUNTIME_CONNECTION_CLOSED';
3
4
  const FAILURE_CAUSES = new Set([
4
5
  'subject',
5
6
  'harness',
@@ -1 +1 @@
1
- {"version":3,"file":"failure.js","sourceRoot":"","sources":["../../src/core/failure.ts"],"names":[],"mappings":";AAEA,MAAM,4BAA4B,GAAG,MAAM,CAAC,GAAG,CAAC,8CAA8C,CAAC,CAAC;AAChG,MAAM,cAAc,GAAG,IAAI,GAAG,CAAqB;IACjD,SAAS;IACT,SAAS;IACT,aAAa;IACb,SAAS;CACV,CAAC,CAAC;AASH,MAAM,OAAO,oBAAqB,SAAQ,KAAK;kBACnC,4BAA4B;IAKtC,YACE,UAA8B,EAC9B,OAAe,EACf,OAAqC;QAErC,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAVjB,QAA8B,GAAG,IAAI,CAAC;QAW7C,IAAI,CAAC,IAAI,GAAG,sBAAsB,CAAC;QACnC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,OAAO,EAAE,IAAI,KAAK,SAAS;YAAE,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;QAC1D,IAAI,OAAO,EAAE,OAAO,KAAK,SAAS;YAAE,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IACrE,CAAC;CACF;AAED,SAAS,sBAAsB,CAAC,KAAc;IAC5C,OAAO,OAAO,CACZ,KAAK;QACL,OAAO,KAAK,KAAK,QAAQ;QACzB,4BAA4B,IAAI,KAAK;QACrC,KAAK,CAAC,4BAA4B,CAAC,KAAK,IAAI,CAC7C,CAAC;AACJ,CAAC;AAED,4EAA4E;AAC5E,MAAM,UAAU,wBAAwB,CAAC,KAAc;IAIrD,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAC9C,OAAO;QACL,GAAG,CAAC,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACrE,GAAG,CAAC,KAAK,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACzE,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,kBAAkB,CAChC,KAAc,EACd,WAA+B,SAAS;IAExC,IAAI,sBAAsB,CAAC,KAAK,CAAC,IAAI,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC;QAC1E,OAAO,KAAK,CAAC,UAAU,CAAC;IAC1B,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC"}
1
+ {"version":3,"file":"failure.js","sourceRoot":"","sources":["../../src/core/failure.ts"],"names":[],"mappings":";AAEA,MAAM,4BAA4B,GAAG,MAAM,CAAC,GAAG,CAAC,8CAA8C,CAAC,CAAC;AAChG,MAAM,CAAC,MAAM,yBAAyB,GAAG,2BAA2B,CAAC;AACrE,MAAM,cAAc,GAAG,IAAI,GAAG,CAAqB;IACjD,SAAS;IACT,SAAS;IACT,aAAa;IACb,SAAS;CACV,CAAC,CAAC;AASH,MAAM,OAAO,oBAAqB,SAAQ,KAAK;kBACnC,4BAA4B;IAKtC,YACE,UAA8B,EAC9B,OAAe,EACf,OAAqC;QAErC,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAVjB,QAA8B,GAAG,IAAI,CAAC;QAW7C,IAAI,CAAC,IAAI,GAAG,sBAAsB,CAAC;QACnC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,OAAO,EAAE,IAAI,KAAK,SAAS;YAAE,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;QAC1D,IAAI,OAAO,EAAE,OAAO,KAAK,SAAS;YAAE,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IACrE,CAAC;CACF;AAED,SAAS,sBAAsB,CAAC,KAAc;IAC5C,OAAO,OAAO,CACZ,KAAK;QACL,OAAO,KAAK,KAAK,QAAQ;QACzB,4BAA4B,IAAI,KAAK;QACrC,KAAK,CAAC,4BAA4B,CAAC,KAAK,IAAI,CAC7C,CAAC;AACJ,CAAC;AAED,4EAA4E;AAC5E,MAAM,UAAU,wBAAwB,CAAC,KAAc;IAIrD,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAC9C,OAAO;QACL,GAAG,CAAC,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACrE,GAAG,CAAC,KAAK,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACzE,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,kBAAkB,CAChC,KAAc,EACd,WAA+B,SAAS;IAExC,IAAI,sBAAsB,CAAC,KAAK,CAAC,IAAI,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC;QAC1E,OAAO,KAAK,CAAC,UAAU,CAAC;IAC1B,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC"}
@@ -3,11 +3,13 @@ export declare function resolveRecipeParams(ref: string, recipe: Record<string,
3
3
  }): Record<string, unknown>;
4
4
  /**
5
5
  * `value` with its `{{params.*}}`/`{{outputs.*}}` references resolved. Strict
6
- * (the default) interpolates every reference and throws on a missing one.
6
+ * (the default) interpolates every reference and throws on a missing one or on
7
+ * a template it cannot parse; `nodeId` names the node in those errors.
7
8
  * `lenient` is the static view before a run: only an exact reference to a
8
9
  * parameter that exists resolves; anything else stays as written.
9
10
  */
10
11
  export declare function resolveRecipeValue(value: unknown, params: Record<string, unknown>, outputs?: ReadonlyMap<string, unknown>, options?: {
11
12
  lenient?: boolean;
13
+ nodeId?: string;
12
14
  }): unknown;
13
15
  //# sourceMappingURL=parameters.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"parameters.d.ts","sourceRoot":"","sources":["../../src/core/parameters.ts"],"names":[],"mappings":"AAKA,wBAAgB,mBAAmB,CACjC,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9B,OAAO,CAAC,EAAE;IAAE,cAAc,CAAC,EAAE,OAAO,CAAA;CAAE,GACrC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAazB;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,OAAO,EACd,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,OAAO,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,EACtC,OAAO,GAAE;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAO,GAClC,OAAO,CA6BT"}
1
+ {"version":3,"file":"parameters.d.ts","sourceRoot":"","sources":["../../src/core/parameters.ts"],"names":[],"mappings":"AAYA,wBAAgB,mBAAmB,CACjC,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9B,OAAO,CAAC,EAAE;IAAE,cAAc,CAAC,EAAE,OAAO,CAAA;CAAE,GACrC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAazB;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,OAAO,EACd,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,OAAO,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,EACtC,OAAO,GAAE;IAAE,OAAO,CAAC,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAO,GACnD,OAAO,CAoCT"}
@@ -1,4 +1,4 @@
1
- import { applyRecipeParamDefaults, validateRecipeParams } from '@farmslot/protocol';
1
+ import { applyRecipeParamDefaults, findUnsupportedRecipeTemplates, parseRecipeTemplate, replaceRecipeTemplates, validateRecipeParams, } from '@farmslot/protocol';
2
2
  import { isRecord } from './json.js';
3
3
  import { RecipeResolutionError } from './resolution-error.js';
4
4
  export function resolveRecipeParams(ref, recipe, input, options) {
@@ -13,25 +13,31 @@ export function resolveRecipeParams(ref, recipe, input, options) {
13
13
  }
14
14
  /**
15
15
  * `value` with its `{{params.*}}`/`{{outputs.*}}` references resolved. Strict
16
- * (the default) interpolates every reference and throws on a missing one.
16
+ * (the default) interpolates every reference and throws on a missing one or on
17
+ * a template it cannot parse; `nodeId` names the node in those errors.
17
18
  * `lenient` is the static view before a run: only an exact reference to a
18
19
  * parameter that exists resolves; anything else stays as written.
19
20
  */
20
21
  export function resolveRecipeValue(value, params, outputs, options = {}) {
21
22
  if (typeof value === 'string') {
22
- const exact = /^\{\{(params|outputs)\.([A-Za-z0-9_.-]+)\}\}$/u.exec(value);
23
+ const exact = parseRecipeTemplate(value);
23
24
  if (options.lenient) {
24
- const found = exact?.[1] === 'params' ? nestedValue(params, exact[2]) : undefined;
25
- return found ? found.value : value;
25
+ const found = exact?.source === 'params' ? nestedValue(params, exact.path) : undefined;
26
+ return found && 'value' in found ? found.value : value;
27
+ }
28
+ const where = options.nodeId ? ` in node ${options.nodeId}` : '';
29
+ const [unsupported] = findUnsupportedRecipeTemplates(value);
30
+ if (unsupported !== undefined) {
31
+ throw new RecipeResolutionError('RECIPE_PARAMS_INVALID', `Recipe value ${unsupported}${where} is not a supported template.`, 'use {{params.<name>}} or {{outputs.<node>.<path>}}, with [n] for an array index');
26
32
  }
27
33
  if (exact) {
28
- if (exact[1] === 'outputs' && !outputs)
34
+ if (exact.source === 'outputs' && !outputs)
29
35
  return value;
30
- return getRecipeReference(exact[1], exact[2], params, outputs);
36
+ return getRecipeReference(exact, value, params, outputs, where);
31
37
  }
32
- return value.replace(/\{\{(params|outputs)\.([A-Za-z0-9_.-]+)\}\}/gu, (_match, source, key) => source === 'outputs' && !outputs
33
- ? _match
34
- : String(getRecipeReference(source, key, params, outputs)));
38
+ return replaceRecipeTemplates(value, (reference, template) => reference.source === 'outputs' && !outputs
39
+ ? template
40
+ : String(getRecipeReference(reference, template, params, outputs, where)));
35
41
  }
36
42
  if (Array.isArray(value)) {
37
43
  return value.map((entry) => resolveRecipeValue(entry, params, outputs, options));
@@ -43,34 +49,49 @@ export function resolveRecipeValue(value, params, outputs, options = {}) {
43
49
  resolveRecipeValue(entry, params, outputs, options),
44
50
  ]));
45
51
  }
46
- function getRecipeReference(source, path, params, outputs) {
47
- if (source === 'params')
48
- return getNestedValue(params, path, 'parameter');
49
- if (!outputs)
50
- return `{{outputs.${path}}}`;
51
- const [nodeId, ...segments] = path.split('.');
52
- if (!nodeId || !outputs.has(nodeId)) {
53
- throw new RecipeResolutionError('RECIPE_PARAMS_INVALID', `Recipe output ${path} is not defined.`, `run the producing node before referencing outputs.${path}`);
52
+ // Errors quote the template as authored (`positions[1]`), not its normalized path.
53
+ function getRecipeReference(reference, template, params, outputs, where) {
54
+ if (reference.source === 'params') {
55
+ return getNestedValue(params, reference.path, 'parameter', template, where);
56
+ }
57
+ const [nodeId, ...segments] = reference.path.split('.');
58
+ if (!nodeId || !outputs?.has(nodeId)) {
59
+ throw new RecipeResolutionError('RECIPE_PARAMS_INVALID', `Recipe output ${template}${where} is not defined.`, `run node ${nodeId} before referencing ${template}`);
54
60
  }
55
- return getNestedValue(outputs.get(nodeId), segments.join('.'), 'output');
61
+ return getNestedValue(outputs.get(nodeId), segments.join('.'), 'output', template, where);
56
62
  }
57
- function getNestedValue(value, path, kind) {
63
+ function getNestedValue(value, path, kind, template, where) {
58
64
  const found = nestedValue(value, path);
59
- if (!found) {
60
- throw new RecipeResolutionError('RECIPE_PARAMS_INVALID', `Recipe ${kind} ${path} is not defined.`, kind === 'parameter'
61
- ? `declare ${path} in paramsSchema or provide it before running the recipe`
62
- : `inspect the producing node output before referencing ${path}`);
65
+ if ('value' in found)
66
+ return found.value;
67
+ if (found.arrayLength === 0) {
68
+ throw new RecipeResolutionError('RECIPE_PARAMS_INVALID', `Recipe ${kind} ${template}${where}: index ${found.missing} is out of range for an empty array.`, `the array is empty; check the ${kind} holds an entry before referencing it`);
63
69
  }
64
- return found.value;
70
+ if (found.arrayLength !== undefined) {
71
+ throw new RecipeResolutionError('RECIPE_PARAMS_INVALID', `Recipe ${kind} ${template}${where}: index ${found.missing} is out of range for an array of ${found.arrayLength}.`, `use an index below ${found.arrayLength}, or check the ${kind} holds the entry before referencing it`);
72
+ }
73
+ throw new RecipeResolutionError('RECIPE_PARAMS_INVALID', `Recipe ${kind} ${template}${where} is not defined.`, kind === 'parameter'
74
+ ? 'declare the parameter in paramsSchema or provide it before running the recipe'
75
+ : 'inspect the producing node output before referencing it');
65
76
  }
66
- // The value at a dotted path, or undefined when a segment is missing.
77
+ // The value at a dotted path, or the segment where it stops. A numeric segment
78
+ // indexes an array; on an object it reads that key.
67
79
  function nestedValue(value, path) {
68
80
  let current = value;
69
81
  if (!path)
70
82
  return { value: current };
71
83
  for (const segment of path.split('.')) {
84
+ if (Array.isArray(current)) {
85
+ if (!/^(?:0|[1-9]\d*)$/u.test(segment))
86
+ return { missing: segment };
87
+ const index = Number(segment);
88
+ if (index >= current.length)
89
+ return { missing: segment, arrayLength: current.length };
90
+ current = current[index];
91
+ continue;
92
+ }
72
93
  if (!isRecord(current) || !Object.hasOwn(current, segment))
73
- return undefined;
94
+ return { missing: segment };
74
95
  current = current[segment];
75
96
  }
76
97
  return { value: current };
@@ -1 +1 @@
1
- {"version":3,"file":"parameters.js","sourceRoot":"","sources":["../../src/core/parameters.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"parameters.js","sourceRoot":"","sources":["../../src/core/parameters.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../src/core/runner.ts"],"names":[],"mappings":"AAiEA,OAAO,KAAK,EACV,aAAa,EAEb,yBAAyB,EAMzB,YAAY,EAOb,MAAM,YAAY,CAAC;AA0BpB,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,aAAa,GAAG,aAAa,CAGzE;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,yBAAyB,GAAG,YAAY,CAiCnF"}
1
+ {"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../src/core/runner.ts"],"names":[],"mappings":"AAwEA,OAAO,KAAK,EACV,aAAa,EAEb,yBAAyB,EAMzB,YAAY,EAOb,MAAM,YAAY,CAAC;AA0BpB,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,aAAa,GAAG,aAAa,CAGzE;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,yBAAyB,GAAG,YAAY,CAiCnF"}
@@ -4,12 +4,12 @@ import path from 'node:path';
4
4
  import { digestRecipeDocument, getRecipeActionManifestActionNames, validateRecipeArtifactPackage, } from '@farmslot/protocol';
5
5
  import { JsonArtifactWriter, JsonSummaryWriter, JsonTraceWriter, summarizeTraceCounts, } from '../node/writers.js';
6
6
  import { createCaptureHelperVideoRecorder, errorMessage, manifestTarget, } from '../recording/capture-helper.js';
7
- import { captureInterruptedTraceEntry, runCaptureInterruption, } from '../recording/capture-helper-interruption.js';
7
+ import { CAPTURE_INTERRUPTED, captureInterruptedTraceEntry, runCaptureInterruption, } from '../recording/capture-helper-interruption.js';
8
8
  import { writeRecordingTimeline } from '../recording/timeline.js';
9
9
  import { RECIPE_RUNNER_VERSION } from '../version.js';
10
10
  import { resolveRecipeDependencies, rootResolutionRef, validateRecipeDependencyParams, } from './compose.js';
11
11
  import { executeRecipe } from './execution.js';
12
- import { RecipeExecutionError, recipeFailureCause } from './failure.js';
12
+ import { RecipeExecutionError, recipeFailureCause, recipeFailureTraceFields, RUNTIME_CONNECTION_CLOSED, } from './failure.js';
13
13
  import { extractWorkflowGraph } from './graph.js';
14
14
  import { buildHudNode } from './hud.js';
15
15
  import { createRecipeInvocation } from './invocation.js';
@@ -238,6 +238,7 @@ class DefaultRecipeRunner {
238
238
  const videoRecorder = videoOptions.mode !== 'off' ? this.#videoRecorder() : undefined;
239
239
  let runRecording;
240
240
  let captureInterruption;
241
+ let videoTimeline;
241
242
  let canExecute = true;
242
243
  if (videoRecorder) {
243
244
  try {
@@ -315,46 +316,14 @@ class DefaultRecipeRunner {
315
316
  label: 'Execution trace',
316
317
  category: 'system',
317
318
  });
318
- if (status === 'pass') {
319
- const runHudStartedAt = new Date();
320
- try {
321
- await this.#publishRunHud(status, {
322
- recipe,
323
- projectRoot,
324
- artifactsDir,
325
- env,
326
- outputs,
327
- });
328
- }
329
- catch (error) {
330
- const message = error instanceof Error ? error.message : String(error);
331
- traceWriter.record({
332
- nodeId: 'recipe-complete:hud',
333
- action: 'app.hud',
334
- startedAt: runHudStartedAt.toISOString(),
335
- endedAt: new Date().toISOString(),
336
- durationMs: Date.now() - runHudStartedAt.getTime(),
337
- ok: false,
338
- cause_class: 'harness',
339
- error: message,
340
- });
341
- this.#logger.error(`app.hud complete update failed: ${message}`);
342
- status = 'fail';
343
- }
344
- }
345
319
  if (runRecording) {
346
320
  const recordingToStop = runRecording;
347
321
  runRecording = undefined;
348
322
  try {
349
- const { entry: videoArtifact, interruption } = await this.#stopRunVideoRecording(recordingToStop, traceWriter, artifactWriter, startedAt);
323
+ const { entry: videoArtifact, interruption, timing, } = await this.#stopRunVideoRecording(recordingToStop, traceWriter, artifactWriter, startedAt);
350
324
  artifactWriter.register(videoArtifact);
351
- if (videoArtifact.timelinePath)
352
- artifactWriter.register({
353
- path: videoArtifact.timelinePath,
354
- type: 'json',
355
- category: 'system',
356
- label: 'Recording frames and action markers',
357
- });
325
+ if (timing)
326
+ videoTimeline = { entry: videoArtifact, timing };
358
327
  if (interruption) {
359
328
  // The partial video stays registered as evidence; the run still fails, typed.
360
329
  captureInterruption = interruption;
@@ -380,6 +349,84 @@ class DefaultRecipeRunner {
380
349
  status = 'fail';
381
350
  }
382
351
  }
352
+ if (request.finalizeRecording) {
353
+ const recordingStartedAt = new Date();
354
+ try {
355
+ const interruption = await request.finalizeRecording();
356
+ if (interruption) {
357
+ captureInterruption = interruption;
358
+ traceWriter.record(captureInterruptedTraceEntry(interruption, startedAt));
359
+ status = 'fail';
360
+ }
361
+ }
362
+ catch (error) {
363
+ traceWriter.record({
364
+ nodeId: 'recipe-run:video',
365
+ action: 'record.video',
366
+ startedAt: recordingStartedAt.toISOString(),
367
+ endedAt: new Date().toISOString(),
368
+ durationMs: Date.now() - recordingStartedAt.getTime(),
369
+ ok: false,
370
+ cause_class: recipeFailureCause(error, 'harness'),
371
+ error: errorMessage(error),
372
+ });
373
+ status = 'fail';
374
+ }
375
+ }
376
+ if (status === 'pass' || status === 'fail') {
377
+ const runHudStartedAt = new Date();
378
+ try {
379
+ await this.#publishRunHud(status, {
380
+ recipe,
381
+ projectRoot,
382
+ artifactsDir,
383
+ env,
384
+ outputs,
385
+ });
386
+ }
387
+ catch (error) {
388
+ const message = error instanceof Error ? error.message : String(error);
389
+ const fields = recipeFailureTraceFields(error);
390
+ const captureEndpointLost = captureInterruption && fields.error_code === RUNTIME_CONNECTION_CLOSED;
391
+ traceWriter.record({
392
+ nodeId: 'recipe-complete:hud',
393
+ action: 'app.hud',
394
+ startedAt: runHudStartedAt.toISOString(),
395
+ endedAt: new Date().toISOString(),
396
+ durationMs: Date.now() - runHudStartedAt.getTime(),
397
+ ok: false,
398
+ cause_class: captureEndpointLost ? 'environment' : recipeFailureCause(error, 'harness'),
399
+ error: message,
400
+ ...fields,
401
+ ...(captureEndpointLost
402
+ ? {
403
+ error_code: CAPTURE_INTERRUPTED,
404
+ error_details: { runtime_error_code: fields.error_code },
405
+ }
406
+ : {}),
407
+ });
408
+ this.#logger.error(`app.hud complete update failed: ${message}`);
409
+ status = 'fail';
410
+ }
411
+ }
412
+ if (videoTimeline) {
413
+ const { entry, timing } = videoTimeline;
414
+ try {
415
+ entry.timelinePath = await writeRecordingTimeline(artifactsDir, entry.path, timing, traceWriter.list());
416
+ artifactWriter.register(entry);
417
+ artifactWriter.register({
418
+ path: entry.timelinePath,
419
+ type: 'json',
420
+ category: 'system',
421
+ label: 'Recording frames and action markers',
422
+ });
423
+ }
424
+ catch (error) {
425
+ // Valid footage is retained when its optional trace alignment is unavailable.
426
+ entry.timelineUnavailableReason = errorMessage(error);
427
+ artifactWriter.register(entry);
428
+ }
429
+ }
383
430
  }
384
431
  finally {
385
432
  if (runRecording) {
@@ -567,7 +614,6 @@ class DefaultRecipeRunner {
567
614
  // Record the failure before the timeline, which is bound to the final trace.
568
615
  if (interruption)
569
616
  traceWriter.record(captureInterruptedTraceEntry(interruption, runStartedAt));
570
- const trace = traceWriter.list();
571
617
  await assertVideoOutputReady(runRecording.outputPath);
572
618
  await copyFileWithinRoots(runRecording.stagingRoot, runRecording.stagingRelativePath, runRecording.artifactsDir, runRecording.entry.path);
573
619
  if (result.timingEvidencePath && result.timing) {
@@ -586,19 +632,14 @@ class DefaultRecipeRunner {
586
632
  ...(result.recorder ? { recorder: result.recorder } : {}),
587
633
  ...(result.interruption ? { interruption: result.interruption } : {}),
588
634
  };
589
- if (result.timing) {
590
- try {
591
- entry.timelinePath = await writeRecordingTimeline(runRecording.artifactsDir, entry.path, result.timing, trace);
592
- }
593
- catch (error) {
594
- // Video is retained; its optional timing capability failed explicitly.
595
- entry.timelineUnavailableReason = errorMessage(error);
596
- }
597
- }
598
- else
635
+ if (!result.timing)
599
636
  entry.timelineUnavailableReason =
600
637
  result.timingUnavailableReason ?? 'Recorder does not provide timeline alignment.';
601
- return { entry, ...(interruption ? { interruption } : {}) };
638
+ return {
639
+ entry,
640
+ ...(interruption ? { interruption } : {}),
641
+ ...(result.timing ? { timing: result.timing } : {}),
642
+ };
602
643
  }
603
644
  #hudAction() {
604
645
  if (this.#hud === false || this.#hud?.enabled === false)