@farmslot/recipe-harness 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.
Files changed (96) hide show
  1. package/CHANGELOG.md +7 -1
  2. package/README.md +83 -188
  3. package/dist/adapters/core.d.ts.map +1 -1
  4. package/dist/adapters/core.js +8 -32
  5. package/dist/adapters/core.js.map +1 -1
  6. package/dist/adapters/ui.d.ts +0 -2
  7. package/dist/adapters/ui.d.ts.map +1 -1
  8. package/dist/adapters/ui.js +0 -2
  9. package/dist/adapters/ui.js.map +1 -1
  10. package/dist/cli/index.d.ts.map +1 -1
  11. package/dist/cli/index.js +0 -2
  12. package/dist/cli/index.js.map +1 -1
  13. package/dist/cli/run-command.d.ts.map +1 -1
  14. package/dist/cli/run-command.js +143 -22
  15. package/dist/cli/run-command.js.map +1 -1
  16. package/dist/cli/support.d.ts +5 -2
  17. package/dist/cli/support.d.ts.map +1 -1
  18. package/dist/cli/support.js +131 -25
  19. package/dist/cli/support.js.map +1 -1
  20. package/dist/cli/validate-command.d.ts.map +1 -1
  21. package/dist/cli/validate-command.js +4 -1
  22. package/dist/cli/validate-command.js.map +1 -1
  23. package/dist/core/compose.d.ts +21 -33
  24. package/dist/core/compose.d.ts.map +1 -1
  25. package/dist/core/compose.js +93 -127
  26. package/dist/core/compose.js.map +1 -1
  27. package/dist/core/execution.d.ts +40 -0
  28. package/dist/core/execution.d.ts.map +1 -0
  29. package/dist/core/execution.js +263 -0
  30. package/dist/core/execution.js.map +1 -0
  31. package/dist/core/graph.d.ts +4 -5
  32. package/dist/core/graph.d.ts.map +1 -1
  33. package/dist/core/graph.js +51 -103
  34. package/dist/core/graph.js.map +1 -1
  35. package/dist/core/hud.d.ts.map +1 -1
  36. package/dist/core/hud.js +2 -6
  37. package/dist/core/hud.js.map +1 -1
  38. package/dist/core/library.d.ts +17 -51
  39. package/dist/core/library.d.ts.map +1 -1
  40. package/dist/core/library.js +129 -156
  41. package/dist/core/library.js.map +1 -1
  42. package/dist/core/parameters.d.ts +5 -0
  43. package/dist/core/parameters.d.ts.map +1 -0
  44. package/dist/core/parameters.js +57 -0
  45. package/dist/core/parameters.js.map +1 -0
  46. package/dist/core/passive-observations.d.ts +2 -5
  47. package/dist/core/passive-observations.d.ts.map +1 -1
  48. package/dist/core/passive-observations.js +4 -40
  49. package/dist/core/passive-observations.js.map +1 -1
  50. package/dist/core/resolution-error.d.ts +7 -0
  51. package/dist/core/resolution-error.d.ts.map +1 -0
  52. package/dist/core/resolution-error.js +9 -0
  53. package/dist/core/resolution-error.js.map +1 -0
  54. package/dist/core/runner.d.ts.map +1 -1
  55. package/dist/core/runner.js +108 -379
  56. package/dist/core/runner.js.map +1 -1
  57. package/dist/core/trace.d.ts +3 -4
  58. package/dist/core/trace.d.ts.map +1 -1
  59. package/dist/core/trace.js +3 -4
  60. package/dist/core/trace.js.map +1 -1
  61. package/dist/core/trust-input.d.ts.map +1 -1
  62. package/dist/core/trust-input.js +0 -1
  63. package/dist/core/trust-input.js.map +1 -1
  64. package/dist/core/trust.d.ts +7 -10
  65. package/dist/core/trust.d.ts.map +1 -1
  66. package/dist/core/trust.js +51 -52
  67. package/dist/core/trust.js.map +1 -1
  68. package/dist/core/types.d.ts +23 -50
  69. package/dist/core/types.d.ts.map +1 -1
  70. package/dist/index.d.ts +5 -5
  71. package/dist/index.d.ts.map +1 -1
  72. package/dist/index.js +3 -3
  73. package/dist/index.js.map +1 -1
  74. package/dist/node/writers.d.ts +3 -8
  75. package/dist/node/writers.d.ts.map +1 -1
  76. package/dist/node/writers.js +19 -10
  77. package/dist/node/writers.js.map +1 -1
  78. package/dist/runtime/cdp.js +1 -3
  79. package/dist/runtime/cdp.js.map +1 -1
  80. package/package.json +2 -2
  81. package/dist/cli/flows-command.d.ts +0 -3
  82. package/dist/cli/flows-command.d.ts.map +0 -1
  83. package/dist/cli/flows-command.js +0 -313
  84. package/dist/cli/flows-command.js.map +0 -1
  85. package/dist/core/flows.d.ts +0 -47
  86. package/dist/core/flows.d.ts.map +0 -1
  87. package/dist/core/flows.js +0 -389
  88. package/dist/core/flows.js.map +0 -1
  89. package/dist/core/predicates.d.ts +0 -7
  90. package/dist/core/predicates.d.ts.map +0 -1
  91. package/dist/core/predicates.js +0 -102
  92. package/dist/core/predicates.js.map +0 -1
  93. package/dist/core/promote.d.ts +0 -41
  94. package/dist/core/promote.d.ts.map +0 -1
  95. package/dist/core/promote.js +0 -254
  96. package/dist/core/promote.js.map +0 -1
@@ -1,17 +1,19 @@
1
- import { getRecipeActionManifestActionNames, } from '@farmslot/protocol';
1
+ import { getRecipeActionManifestActionNames, isRecord, } from '@farmslot/protocol';
2
2
  import { createStandardCoreAdapters } from '../adapters/core.js';
3
- import { resolveRecipeLibrarySources } from '../core/library.js';
3
+ import { applyTaskLocalInvocationTrust, loadRecipeLibraries, resolveRecipeLibrarySources, } from '../core/library.js';
4
+ import { RecipeResolutionError } from '../core/resolution-error.js';
4
5
  import { createRecipeRunner } from '../core/runner.js';
5
6
  import { RecipeTrustError } from '../core/trust-error.js';
6
7
  import { resolveRecipeTrustInput } from '../core/trust-input.js';
7
- import { parsePositiveInteger, parseRecordingTarget, readRecipeCliJsonFile, resolveRecipeCliPath, } from './support.js';
8
+ import { parsePositiveInteger, parseRecipeParamAssignments, parseRecordingTarget, readRecipeCliJsonFile, resolveRecipeCliPath, } from './support.js';
8
9
  export function registerRunCommand(program) {
9
10
  program
10
11
  .command('run')
11
12
  .description('Run a recipe and write a v1 artifact package')
12
- .argument('<recipe>', 'Path to recipe.json')
13
- .requiredOption('--artifacts-dir <dir>', 'Directory where artifacts are written')
14
- .requiredOption('--action-manifest <manifest>', 'Runner action manifest JSON')
13
+ .argument('[recipe]', 'Recipe id from the active libraries, or a recipe.json path')
14
+ .argument('[params...]', 'Recipe parameters as key=value')
15
+ .option('--artifacts-dir <dir>', 'Directory where artifacts are written')
16
+ .option('--action-manifest <manifest>', 'Runner action manifest JSON')
15
17
  .option('--project-root <dir>', 'Project root used by command/artifact adapters')
16
18
  .option('--library <entry>', 'Recipe library source as name=path or path (repeatable; order is precedence, first wins). Defaults to RECIPE_LIBRARY_PATH, then the personal library under the farmslot home.', collectRepeatable, [])
17
19
  .option('--record-video [mode]', 'Record one whole-recipe MP4 when visual motion proof helps')
@@ -26,9 +28,54 @@ export function registerRunCommand(program) {
26
28
  .option('--source-name <name>', 'Human-readable recipe source name')
27
29
  .option('--source-digest <digest>', 'Caller-computed source digest')
28
30
  .option('--approve-plan <digest>', 'Approve exactly one resolved execution-plan digest')
31
+ .option('--adapter <name>', 'Select adapter-specific recipe variants')
32
+ .option('--list', 'List runnable recipes from the active libraries')
33
+ .option('--describe', 'Describe the selected recipe and its parameters without running it')
29
34
  .option('--json', 'Print run result as JSON')
30
- .action(async (recipePath, options) => {
35
+ .action(async (recipeInput, params, options) => {
31
36
  try {
37
+ let librarySources = await resolveRecipeLibrarySources({
38
+ cliEntries: options.library,
39
+ });
40
+ let library = await loadRecipeLibraries(librarySources, {
41
+ adapter: options.adapter,
42
+ });
43
+ if (recipeInput && !library.recipes.has(recipeInput)) {
44
+ librarySources = await resolveRecipeLibrarySources({
45
+ cliEntries: options.library,
46
+ recipePath: resolveRecipeCliPath(recipeInput),
47
+ });
48
+ library = await loadRecipeLibraries(librarySources, {
49
+ adapter: options.adapter,
50
+ });
51
+ }
52
+ librarySources = librarySources.map((source) => ({
53
+ ...source,
54
+ provenance: source.provenance ?? {
55
+ kind: 'library',
56
+ trust: 'unknown',
57
+ name: source.name,
58
+ path: source.root,
59
+ },
60
+ }));
61
+ if (options.list) {
62
+ printRecipeList(library.recipes, options.json === true);
63
+ return;
64
+ }
65
+ if (!recipeInput)
66
+ throw new Error('Missing recipe. Use --list to discover recipes.');
67
+ const selected = library.recipes.get(recipeInput);
68
+ if (options.describe) {
69
+ const document = selected
70
+ ? selected.document
71
+ : await readRecipeCliJsonFile(recipeInput);
72
+ printRecipeDescription(recipeInput, document, selected, options.json === true);
73
+ return;
74
+ }
75
+ if (!options.artifactsDir)
76
+ throw new Error('Missing --artifacts-dir.');
77
+ if (!options.actionManifest)
78
+ throw new Error('Missing --action-manifest.');
32
79
  const manifest = await readRecipeCliJsonFile(options.actionManifest);
33
80
  const runner = createRecipeRunner({
34
81
  actionManifest: manifest,
@@ -42,17 +89,6 @@ export function registerRunCommand(program) {
42
89
  },
43
90
  logger: console,
44
91
  });
45
- const librarySources = (await resolveRecipeLibrarySources({
46
- cliEntries: options.library,
47
- })).map((source) => ({
48
- ...source,
49
- provenance: source.provenance ?? {
50
- kind: 'library',
51
- trust: 'unknown',
52
- name: source.name,
53
- path: source.root,
54
- },
55
- }));
56
92
  const trust = resolveRecipeTrustInput({
57
93
  sourceTrust: options.sourceTrust,
58
94
  sourceKind: options.sourceKind,
@@ -60,15 +96,22 @@ export function registerRunCommand(program) {
60
96
  sourceDigest: options.sourceDigest,
61
97
  approvalDigest: options.approvePlan,
62
98
  });
99
+ const invocationTrust = trust.source?.trust ?? 'trusted';
100
+ const executionLibrarySources = applyTaskLocalInvocationTrust(librarySources, invocationTrust);
63
101
  const result = await runner.run({
64
- recipePath: resolveRecipeCliPath(recipePath),
102
+ recipePath: selected ? selected.path : resolveRecipeCliPath(recipeInput),
65
103
  artifactsDir: resolveRecipeCliPath(options.artifactsDir),
66
104
  projectRoot: options.projectRoot
67
105
  ? resolveRecipeCliPath(options.projectRoot)
68
106
  : resolveRecipeCliPath('.'),
69
107
  recordVideo: parseRecordVideoOptions(options),
108
+ params: parseRecipeParamAssignments(params),
109
+ ...(options.adapter ? { adapter: options.adapter } : {}),
70
110
  ...trust,
71
- ...(librarySources.length > 0 ? { librarySources } : {}),
111
+ ...(!trust.source && selected ? { source: selected.provenance } : {}),
112
+ ...(executionLibrarySources.length > 0
113
+ ? { librarySources: executionLibrarySources }
114
+ : {}),
72
115
  });
73
116
  if (options.json) {
74
117
  console.log(JSON.stringify(result, null, 2));
@@ -81,10 +124,13 @@ export function registerRunCommand(program) {
81
124
  process.exitCode = 1;
82
125
  }
83
126
  catch (error) {
84
- if (!(error instanceof RecipeTrustError))
127
+ if (!(error instanceof RecipeTrustError) && !(error instanceof RecipeResolutionError)) {
85
128
  throw error;
129
+ }
86
130
  if (options.json) {
87
- console.log(JSON.stringify(error.failure, null, 2));
131
+ console.log(JSON.stringify(error instanceof RecipeTrustError
132
+ ? error.failure
133
+ : { code: error.code, message: error.message, userAction: error.userAction }, null, 2));
88
134
  }
89
135
  else {
90
136
  console.error(`Error [${error.code}]: ${error.message}`);
@@ -94,6 +140,81 @@ export function registerRunCommand(program) {
94
140
  }
95
141
  });
96
142
  }
143
+ function recipeParameters(document) {
144
+ if (!isRecord(document) || !isRecord(document.paramsSchema))
145
+ return [];
146
+ const schema = document.paramsSchema;
147
+ const required = new Set(Array.isArray(schema.required)
148
+ ? schema.required.filter((entry) => typeof entry === 'string')
149
+ : []);
150
+ if (!isRecord(schema.properties))
151
+ return [];
152
+ return Object.entries(schema.properties).map(([name, value]) => {
153
+ const property = isRecord(value) ? value : {};
154
+ return {
155
+ name,
156
+ ...(typeof property.type === 'string' ? { type: property.type } : {}),
157
+ required: required.has(name),
158
+ ...(Object.hasOwn(property, 'default') ? { default: property.default } : {}),
159
+ ...(typeof property.description === 'string' ? { description: property.description } : {}),
160
+ };
161
+ });
162
+ }
163
+ function recipeSummary(ref, document, selected) {
164
+ const record = isRecord(document) ? document : {};
165
+ return {
166
+ ref,
167
+ ...(typeof record.title === 'string' ? { title: record.title } : {}),
168
+ ...(typeof record.description === 'string' ? { description: record.description } : {}),
169
+ parameters: recipeParameters(document),
170
+ ...(selected
171
+ ? {
172
+ source: selected.source,
173
+ file: selected.file,
174
+ adapter: selected.adapter ?? null,
175
+ shadows: selected.shadows,
176
+ }
177
+ : {}),
178
+ };
179
+ }
180
+ function printRecipeList(recipes, json) {
181
+ const entries = [...recipes.values()]
182
+ .sort((left, right) => left.ref.localeCompare(right.ref))
183
+ .map((entry) => recipeSummary(entry.ref, entry.document, entry));
184
+ if (json) {
185
+ console.log(JSON.stringify(entries, null, 2));
186
+ return;
187
+ }
188
+ console.log(`Runnable recipes (${entries.length})`);
189
+ for (const entry of entries) {
190
+ const shadows = entry.shadows?.length ? ` (shadows: ${entry.shadows.join(', ')})` : '';
191
+ console.log(` ${entry.ref}${entry.description ? ` — ${entry.description}` : ''}${shadows}`);
192
+ }
193
+ }
194
+ function printRecipeDescription(ref, document, selected, json) {
195
+ const entry = recipeSummary(ref, document, selected);
196
+ if (json) {
197
+ console.log(JSON.stringify(entry, null, 2));
198
+ return;
199
+ }
200
+ console.log(entry.title ? `${entry.ref} — ${entry.title}` : entry.ref);
201
+ if (entry.description)
202
+ console.log(entry.description);
203
+ if (entry.shadows?.length)
204
+ console.log(`Shadows: ${entry.shadows.join(', ')}`);
205
+ if (entry.parameters.length === 0) {
206
+ console.log('Parameters: none');
207
+ return;
208
+ }
209
+ console.log('Parameters:');
210
+ for (const parameter of entry.parameters) {
211
+ const defaultValue = Object.hasOwn(parameter, 'default')
212
+ ? ` default=${JSON.stringify(parameter.default)}`
213
+ : '';
214
+ const requirement = parameter.required ? ' required' : '';
215
+ console.log(` ${parameter.name}${parameter.type ? ` (${parameter.type})` : ''}${requirement}${defaultValue}${parameter.description ? ` — ${parameter.description}` : ''}`);
216
+ }
217
+ }
97
218
  function collectRepeatable(value, previous) {
98
219
  return [...previous, value];
99
220
  }
@@ -1 +1 @@
1
- {"version":3,"file":"run-command.js","sourceRoot":"","sources":["../../src/cli/run-command.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"run-command.js","sourceRoot":"","sources":["../../src/cli/run-command.ts"],"names":[],"mappings":"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"}
@@ -6,8 +6,9 @@ interface RecipeValidationInputOptions {
6
6
  artifactManifestPath?: string;
7
7
  artifactDir?: string;
8
8
  baseDir?: string;
9
- /** Library sources whose flow refs count as resolvable, mirroring run resolution. */
9
+ /** Library sources whose recipe refs count as resolvable, mirroring run resolution. */
10
10
  librarySources?: RecipeLibrarySource[];
11
+ params?: Record<string, unknown>;
11
12
  }
12
13
  interface RecipeCliRecordingTargetOptions {
13
14
  recordAppName?: string;
@@ -18,8 +19,10 @@ interface RecipeCliRecordingTargetOptions {
18
19
  export declare function recipeCliBaseDir(): string;
19
20
  export declare function resolveRecipeCliPath(filePath: string, baseDir?: string): string;
20
21
  export declare function parsePositiveInteger(value: string): number;
22
+ export declare function parseRecipeParamAssignments(values: readonly string[]): Record<string, unknown>;
21
23
  export declare function parseRecordingTarget(options: RecipeCliRecordingTargetOptions): RecordingTarget | undefined;
22
24
  export declare function readRecipeCliJsonFile(filePath: string, baseDir?: string): Promise<unknown>;
23
- export declare function validateRecipeCliInput({ recipePath, actionManifestPath, artifactManifestPath, artifactDir, baseDir, librarySources, }: RecipeValidationInputOptions): Promise<RecipeValidationResult>;
25
+ export declare function readRecipeCliJsonFileWithinRoot(root: string, relativePath: string): Promise<unknown>;
26
+ export declare function validateRecipeCliInput({ recipePath, actionManifestPath, artifactManifestPath, artifactDir, baseDir, librarySources, params, }: RecipeValidationInputOptions): Promise<RecipeValidationResult>;
24
27
  export {};
25
28
  //# sourceMappingURL=support.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"support.d.ts","sourceRoot":"","sources":["../../src/cli/support.ts"],"names":[],"mappings":"AAGA,OAAO,EAGL,KAAK,sBAAsB,EAK5B,MAAM,oBAAoB,CAAC;AAG5B,OAAO,KAAK,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAE7E,UAAU,4BAA4B;IACpC,UAAU,EAAE,MAAM,CAAC;IACnB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,qFAAqF;IACrF,cAAc,CAAC,EAAE,mBAAmB,EAAE,CAAC;CACxC;AAED,UAAU,+BAA+B;IACvC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,gBAAgB,IAAI,MAAM,CAEzC;AAED,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,SAAqB,GAAG,MAAM,CAE3F;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAM1D;AAED,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,+BAA+B,GACvC,eAAe,GAAG,SAAS,CAc7B;AAED,wBAAsB,qBAAqB,CACzC,QAAQ,EAAE,MAAM,EAChB,OAAO,SAAqB,GAC3B,OAAO,CAAC,OAAO,CAAC,CAUlB;AA2BD,wBAAsB,sBAAsB,CAAC,EAC3C,UAAU,EACV,kBAAkB,EAClB,oBAAoB,EACpB,WAAW,EACX,OAA4B,EAC5B,cAAc,GACf,EAAE,4BAA4B,GAAG,OAAO,CAAC,sBAAsB,CAAC,CA4DhE"}
1
+ {"version":3,"file":"support.d.ts","sourceRoot":"","sources":["../../src/cli/support.ts"],"names":[],"mappings":"AAGA,OAAO,EAKL,KAAK,sBAAsB,EAO5B,MAAM,oBAAoB,CAAC;AAU5B,OAAO,KAAK,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAE7E,UAAU,4BAA4B;IACpC,UAAU,EAAE,MAAM,CAAC;IACnB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,uFAAuF;IACvF,cAAc,CAAC,EAAE,mBAAmB,EAAE,CAAC;IACvC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClC;AAED,UAAU,+BAA+B;IACvC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,gBAAgB,IAAI,MAAM,CAEzC;AAED,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,SAAqB,GAAG,MAAM,CAE3F;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAM1D;AAED,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CA8B9F;AAED,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,+BAA+B,GACvC,eAAe,GAAG,SAAS,CAc7B;AAED,wBAAsB,qBAAqB,CACzC,QAAQ,EAAE,MAAM,EAChB,OAAO,SAAqB,GAC3B,OAAO,CAAC,OAAO,CAAC,CAUlB;AAED,wBAAsB,+BAA+B,CACnD,IAAI,EAAE,MAAM,EACZ,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,OAAO,CAAC,CASlB;AAuBD,wBAAsB,sBAAsB,CAAC,EAC3C,UAAU,EACV,kBAAkB,EAClB,oBAAoB,EACpB,WAAW,EACX,OAA4B,EAC5B,cAAc,EACd,MAAW,GACZ,EAAE,4BAA4B,GAAG,OAAO,CAAC,sBAAsB,CAAC,CA4HhE"}
@@ -1,7 +1,10 @@
1
1
  import { readdir, readFile } from 'node:fs/promises';
2
2
  import path from 'node:path';
3
- import { isRecord, mergeRecipeValidationResults, validateArtifactManifestDocument, validateRecipeArtifactPackage, validateRecipeDocument, validateRecipeWithManifest, } from '@farmslot/protocol';
3
+ import { applyRecipeParamDefaults, digestRecipeDocument, isRecord, mergeRecipeValidationResults, resolvedRecipeArtifactPath, validateArtifactManifestDocument, validateRecipeArtifactPackage, validateRecipeDocument, validateRecipeParams, validateRecipeWithManifest, } from '@farmslot/protocol';
4
+ import { resolveRecipeDependencies, rootResolutionRef, validateRecipeDependencyParams, } from '../core/compose.js';
4
5
  import { loadRecipeLibraries } from '../core/library.js';
6
+ import { readFileWithinRoot } from '../core/path.js';
7
+ import { RecipeResolutionError } from '../core/resolution-error.js';
5
8
  export function recipeCliBaseDir() {
6
9
  return process.env.INIT_CWD ?? process.cwd();
7
10
  }
@@ -15,6 +18,36 @@ export function parsePositiveInteger(value) {
15
18
  }
16
19
  return parsed;
17
20
  }
21
+ export function parseRecipeParamAssignments(values) {
22
+ const params = {};
23
+ for (const value of values) {
24
+ const separator = value.indexOf('=');
25
+ if (separator <= 0) {
26
+ throw new Error(`Recipe parameter ${JSON.stringify(value)} must use key=value.`);
27
+ }
28
+ const key = value.slice(0, separator).trim();
29
+ if (!key || Object.hasOwn(params, key)) {
30
+ throw new Error(Object.hasOwn(params, key)
31
+ ? `Recipe parameter ${key} was provided more than once.`
32
+ : `Recipe parameter ${JSON.stringify(value)} has an empty key.`);
33
+ }
34
+ const raw = value.slice(separator + 1);
35
+ let parsed;
36
+ try {
37
+ parsed = JSON.parse(raw);
38
+ }
39
+ catch {
40
+ parsed = raw;
41
+ }
42
+ Object.defineProperty(params, key, {
43
+ value: parsed,
44
+ enumerable: true,
45
+ configurable: true,
46
+ writable: true,
47
+ });
48
+ }
49
+ return params;
50
+ }
18
51
  export function parseRecordingTarget(options) {
19
52
  if (options.recordPid)
20
53
  return { kind: 'pid', pid: parsePositiveInteger(options.recordPid) };
@@ -44,19 +77,26 @@ export async function readRecipeCliJsonFile(filePath, baseDir = recipeCliBaseDir
44
77
  }
45
78
  return parseRecipeCliJsonText(filePath, text);
46
79
  }
47
- async function readOptionalRecipeCliJsonFile(filePath, baseDir = recipeCliBaseDir()) {
48
- const resolvedPath = resolveRecipeCliPath(filePath, baseDir);
80
+ export async function readRecipeCliJsonFileWithinRoot(root, relativePath) {
49
81
  let text;
50
82
  try {
51
- text = await readFile(resolvedPath, 'utf-8');
83
+ text = (await readFileWithinRoot(root, relativePath)).toString('utf-8');
52
84
  }
53
85
  catch (error) {
54
- if (error?.code === 'ENOENT')
55
- return undefined;
56
86
  const message = error instanceof Error ? error.message : String(error);
57
- throw new Error(`Failed to read JSON from ${filePath}: ${message}`);
87
+ throw new Error(`Failed to read JSON from ${relativePath}: ${message}`, { cause: error });
88
+ }
89
+ return parseRecipeCliJsonText(relativePath, text);
90
+ }
91
+ async function readOptionalRecipeCliJsonFileWithinRoot(root, relativePath) {
92
+ try {
93
+ return await readRecipeCliJsonFileWithinRoot(root, relativePath);
94
+ }
95
+ catch (error) {
96
+ if (error?.cause?.code === 'ENOENT')
97
+ return undefined;
98
+ throw error;
58
99
  }
59
- return parseRecipeCliJsonText(filePath, text);
60
100
  }
61
101
  function parseRecipeCliJsonText(filePath, text) {
62
102
  try {
@@ -67,12 +107,44 @@ function parseRecipeCliJsonText(filePath, text) {
67
107
  throw new Error(`Failed to parse JSON from ${filePath}: ${message}`);
68
108
  }
69
109
  }
70
- export async function validateRecipeCliInput({ recipePath, actionManifestPath, artifactManifestPath, artifactDir, baseDir = recipeCliBaseDir(), librarySources, }) {
110
+ export async function validateRecipeCliInput({ recipePath, actionManifestPath, artifactManifestPath, artifactDir, baseDir = recipeCliBaseDir(), librarySources, params = {}, }) {
71
111
  const recipe = await readRecipeCliJsonFile(recipePath, baseDir);
72
112
  const results = [];
73
- const validationOptions = librarySources && librarySources.length > 0
74
- ? { externalFlowIds: new Set((await loadRecipeLibraries(librarySources)).flows.keys()) }
113
+ const effectiveParams = isRecord(recipe)
114
+ ? applyRecipeParamDefaults(params, recipe.paramsSchema)
115
+ : params;
116
+ if (isRecord(recipe))
117
+ results.push(validateRecipeParams(effectiveParams, recipe.paramsSchema));
118
+ const artifactRoot = artifactDir ? resolveRecipeCliPath(artifactDir, baseDir) : undefined;
119
+ const artifactPaths = artifactRoot ? await listRelativeRecipeCliFiles(artifactRoot) : undefined;
120
+ const recipeResolution = artifactRoot
121
+ ? await readOptionalRecipeCliJsonFileWithinRoot(artifactRoot, 'recipe-resolution.json')
75
122
  : undefined;
123
+ const resolvedRecipes = {};
124
+ if (artifactRoot && isRecord(recipeResolution) && Array.isArray(recipeResolution.dependencies)) {
125
+ for (const dependency of recipeResolution.dependencies) {
126
+ if (!isRecord(dependency))
127
+ continue;
128
+ const artifact = resolvedRecipeArtifactPath(dependency.digest);
129
+ if (!artifact)
130
+ continue;
131
+ const document = await readOptionalRecipeCliJsonFileWithinRoot(artifactRoot, artifact);
132
+ if (document !== undefined)
133
+ resolvedRecipes[String(dependency.digest)] = document;
134
+ }
135
+ }
136
+ const libraryResolution = librarySources && librarySources.length > 0
137
+ ? await loadRecipeLibraries(librarySources)
138
+ : undefined;
139
+ const externalRecipeIds = new Set(libraryResolution?.recipes.keys() ?? []);
140
+ if (isRecord(recipeResolution) && Array.isArray(recipeResolution.dependencies)) {
141
+ for (const dependency of recipeResolution.dependencies) {
142
+ if (isRecord(dependency) && typeof dependency.ref === 'string') {
143
+ externalRecipeIds.add(dependency.ref);
144
+ }
145
+ }
146
+ }
147
+ const validationOptions = externalRecipeIds.size > 0 ? { externalRecipeIds } : undefined;
76
148
  if (actionManifestPath) {
77
149
  const actionManifest = await readRecipeCliJsonFile(actionManifestPath, baseDir);
78
150
  results.push(validateRecipeWithManifest(recipe, actionManifest, validationOptions));
@@ -80,16 +152,57 @@ export async function validateRecipeCliInput({ recipePath, actionManifestPath, a
80
152
  else {
81
153
  results.push(validateRecipeDocument(recipe, validationOptions));
82
154
  }
83
- const artifactPaths = artifactDir
84
- ? await listRelativeRecipeCliFiles(resolveRecipeCliPath(artifactDir, baseDir))
85
- : undefined;
155
+ if (!artifactDir &&
156
+ libraryResolution &&
157
+ isRecord(recipe) &&
158
+ results.every((result) => result.status === 'valid')) {
159
+ try {
160
+ const rootDigest = digestRecipeDocument(recipe);
161
+ resolveRecipeDependencies({
162
+ rootRef: rootResolutionRef(rootDigest),
163
+ root: recipe,
164
+ rootSource: {
165
+ kind: 'operator',
166
+ trust: 'unknown',
167
+ path: resolveRecipeCliPath(recipePath, baseDir),
168
+ digest: rootDigest,
169
+ },
170
+ recipes: libraryResolution.recipes,
171
+ });
172
+ validateRecipeDependencyParams({
173
+ root: recipe,
174
+ params: effectiveParams,
175
+ recipes: libraryResolution.recipes,
176
+ });
177
+ }
178
+ catch (error) {
179
+ results.push({
180
+ status: 'invalid',
181
+ findings: [
182
+ {
183
+ severity: 'error',
184
+ code: error instanceof RecipeResolutionError
185
+ ? error.code.toLowerCase()
186
+ : 'recipe.unresolved_dependency_graph',
187
+ path: 'workflow',
188
+ message: error instanceof RecipeResolutionError
189
+ ? `${error.message} Next: ${error.userAction}.`
190
+ : error instanceof Error
191
+ ? error.message
192
+ : String(error),
193
+ },
194
+ ],
195
+ summary: { errors: 1, warnings: 0 },
196
+ });
197
+ }
198
+ }
86
199
  const manifestPath = artifactManifestPath ??
87
200
  (artifactDir ? path.join(artifactDir, 'artifact-manifest.json') : undefined);
88
201
  let manifest;
89
202
  if (manifestPath) {
90
203
  manifest = artifactManifestPath
91
204
  ? await readRecipeCliJsonFile(manifestPath, baseDir)
92
- : await readOptionalRecipeCliJsonFile(manifestPath, baseDir);
205
+ : await readOptionalRecipeCliJsonFileWithinRoot(artifactRoot, 'artifact-manifest.json');
93
206
  if (manifest !== undefined && !artifactDir) {
94
207
  results.push(validateArtifactManifestDocument(manifest, {
95
208
  recipe,
@@ -98,19 +211,12 @@ export async function validateRecipeCliInput({ recipePath, actionManifestPath, a
98
211
  }
99
212
  }
100
213
  if (artifactDir) {
101
- // Flow-call resolution already ran above via validateRecipeWithManifest with the
102
- // configured library. Always read resolved-recipe.json so a present-but-malformed
103
- // file throws (never silently skipped); the validator then checks the composition
104
- // in full only for a passing run (runPassed) — matching the runner/gateway.
105
- const resolvedRecipe = await readOptionalRecipeCliJsonFile(path.join(artifactDir, 'resolved-recipe.json'), baseDir);
106
214
  results.push(validateRecipeArtifactPackage({
107
215
  recipe,
108
216
  manifest,
109
217
  artifactPaths,
110
- ...(resolvedRecipe !== undefined ? { resolvedRecipe } : {}),
111
- // Only a confirmed failure relaxes composition enforcement; unknown/missing
112
- // status still requires the composition to be proven.
113
- runPassed: !(isRecord(manifest) && manifest.runStatus === 'fail'),
218
+ resolvedRecipes,
219
+ recipeResolution,
114
220
  }));
115
221
  }
116
222
  return mergeRecipeValidationResults(results);
@@ -124,7 +230,7 @@ async function listRelativeRecipeCliFiles(root) {
124
230
  if (entry.isDirectory()) {
125
231
  await visit(relativePath);
126
232
  }
127
- else if (entry.isFile()) {
233
+ else if (entry.isFile() || entry.isSymbolicLink()) {
128
234
  output.push(relativePath.split(path.sep).join('/'));
129
235
  }
130
236
  }
@@ -1 +1 @@
1
- {"version":3,"file":"support.js","sourceRoot":"","sources":["../../src/cli/support.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"support.js","sourceRoot":"","sources":["../../src/cli/support.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"validate-command.d.ts","sourceRoot":"","sources":["../../src/cli/validate-command.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,WAAW,CAAC;AAczC,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAoC9D"}
1
+ {"version":3,"file":"validate-command.d.ts","sourceRoot":"","sources":["../../src/cli/validate-command.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,WAAW,CAAC;AAczC,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAuC9D"}
@@ -11,7 +11,10 @@ export function registerValidateCommand(program) {
11
11
  .option('--library <entry>', 'Recipe library source as name=path or path (repeatable; order is precedence, first wins). Defaults to RECIPE_LIBRARY_PATH, then the personal library under the farmslot home — same resolution as run.', collectRepeatable, [])
12
12
  .option('--json', 'Print validation result as JSON')
13
13
  .action(async (recipePath, options) => {
14
- const librarySources = await resolveRecipeLibrarySources({ cliEntries: options.library });
14
+ const librarySources = await resolveRecipeLibrarySources({
15
+ cliEntries: options.library,
16
+ recipePath,
17
+ });
15
18
  const result = await validateRecipeCliInput({
16
19
  recipePath,
17
20
  actionManifestPath: options.actionManifest,
@@ -1 +1 @@
1
- {"version":3,"file":"validate-command.js","sourceRoot":"","sources":["../../src/cli/validate-command.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,2BAA2B,EAAE,MAAM,oBAAoB,CAAC;AAEjE,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAUtD,MAAM,UAAU,uBAAuB,CAAC,OAAgB;IACtD,OAAO;SACJ,OAAO,CAAC,UAAU,CAAC;SACnB,WAAW,CAAC,oDAAoD,CAAC;SACjE,QAAQ,CAAC,UAAU,EAAE,qBAAqB,CAAC;SAC3C,MAAM,CAAC,8BAA8B,EAAE,6BAA6B,CAAC;SACrE,MAAM,CAAC,gCAAgC,EAAE,wBAAwB,CAAC;SAClE,MAAM,CAAC,sBAAsB,EAAE,4BAA4B,CAAC;SAC5D,MAAM,CACL,mBAAmB,EACnB,wMAAwM,EACxM,iBAAiB,EACjB,EAAc,CACf;SACA,MAAM,CAAC,QAAQ,EAAE,iCAAiC,CAAC;SACnD,MAAM,CAAC,KAAK,EAAE,UAAkB,EAAE,OAA+B,EAAE,EAAE;QACpE,MAAM,cAAc,GAAG,MAAM,2BAA2B,CAAC,EAAE,UAAU,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;QAC1F,MAAM,MAAM,GAAG,MAAM,sBAAsB,CAAC;YAC1C,UAAU;YACV,kBAAkB,EAAE,OAAO,CAAC,cAAc;YAC1C,oBAAoB,EAAE,OAAO,CAAC,gBAAgB;YAC9C,WAAW,EAAE,OAAO,CAAC,WAAW;YAChC,GAAG,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACzD,CAAC,CAAC;QACH,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;YACjB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAC/C,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CACT,sBAAsB,MAAM,CAAC,MAAM,KAAK,MAAM,CAAC,OAAO,CAAC,MAAM,YAAY,MAAM,CAAC,OAAO,CAAC,QAAQ,YAAY,CAC7G,CAAC;YACF,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;gBACtC,OAAO,CAAC,GAAG,CAAC,KAAK,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI,KAAK,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;YAC3F,CAAC;QACH,CAAC;QACD,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS;YAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACnD,CAAC,CAAC,CAAC;AACP,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAa,EAAE,QAAkB;IAC1D,OAAO,CAAC,GAAG,QAAQ,EAAE,KAAK,CAAC,CAAC;AAC9B,CAAC"}
1
+ {"version":3,"file":"validate-command.js","sourceRoot":"","sources":["../../src/cli/validate-command.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,2BAA2B,EAAE,MAAM,oBAAoB,CAAC;AAEjE,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAUtD,MAAM,UAAU,uBAAuB,CAAC,OAAgB;IACtD,OAAO;SACJ,OAAO,CAAC,UAAU,CAAC;SACnB,WAAW,CAAC,oDAAoD,CAAC;SACjE,QAAQ,CAAC,UAAU,EAAE,qBAAqB,CAAC;SAC3C,MAAM,CAAC,8BAA8B,EAAE,6BAA6B,CAAC;SACrE,MAAM,CAAC,gCAAgC,EAAE,wBAAwB,CAAC;SAClE,MAAM,CAAC,sBAAsB,EAAE,4BAA4B,CAAC;SAC5D,MAAM,CACL,mBAAmB,EACnB,wMAAwM,EACxM,iBAAiB,EACjB,EAAc,CACf;SACA,MAAM,CAAC,QAAQ,EAAE,iCAAiC,CAAC;SACnD,MAAM,CAAC,KAAK,EAAE,UAAkB,EAAE,OAA+B,EAAE,EAAE;QACpE,MAAM,cAAc,GAAG,MAAM,2BAA2B,CAAC;YACvD,UAAU,EAAE,OAAO,CAAC,OAAO;YAC3B,UAAU;SACX,CAAC,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,sBAAsB,CAAC;YAC1C,UAAU;YACV,kBAAkB,EAAE,OAAO,CAAC,cAAc;YAC1C,oBAAoB,EAAE,OAAO,CAAC,gBAAgB;YAC9C,WAAW,EAAE,OAAO,CAAC,WAAW;YAChC,GAAG,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACzD,CAAC,CAAC;QACH,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;YACjB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAC/C,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CACT,sBAAsB,MAAM,CAAC,MAAM,KAAK,MAAM,CAAC,OAAO,CAAC,MAAM,YAAY,MAAM,CAAC,OAAO,CAAC,QAAQ,YAAY,CAC7G,CAAC;YACF,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;gBACtC,OAAO,CAAC,GAAG,CAAC,KAAK,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI,KAAK,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;YAC3F,CAAC;QACH,CAAC;QACD,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS;YAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACnD,CAAC,CAAC,CAAC;AACP,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAa,EAAE,QAAkB;IAC1D,OAAO,CAAC,GAAG,QAAQ,EAAE,KAAK,CAAC,CAAC;AAC9B,CAAC"}