@farmslot/protocol 0.9.0 → 0.11.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 (102) hide show
  1. package/CHANGELOG.md +27 -2
  2. package/README.md +12 -4
  3. package/dist/agents/roles.js +2 -2
  4. package/dist/agents/roles.js.map +1 -1
  5. package/dist/contracts/agents.d.ts +7 -0
  6. package/dist/contracts/agents.d.ts.map +1 -1
  7. package/dist/contracts/backlog.d.ts +11 -0
  8. package/dist/contracts/backlog.d.ts.map +1 -1
  9. package/dist/contracts/backlog.js.map +1 -1
  10. package/dist/contracts/bug-input.d.ts +8 -0
  11. package/dist/contracts/bug-input.d.ts.map +1 -1
  12. package/dist/contracts/bug-input.js +14 -2
  13. package/dist/contracts/bug-input.js.map +1 -1
  14. package/dist/contracts/bug-score.d.ts +73 -0
  15. package/dist/contracts/bug-score.d.ts.map +1 -0
  16. package/dist/contracts/bug-score.js +208 -0
  17. package/dist/contracts/bug-score.js.map +1 -0
  18. package/dist/contracts/dispatch.d.ts +5 -1
  19. package/dist/contracts/dispatch.d.ts.map +1 -1
  20. package/dist/contracts/index.d.ts +1 -0
  21. package/dist/contracts/index.d.ts.map +1 -1
  22. package/dist/contracts/index.js +1 -0
  23. package/dist/contracts/index.js.map +1 -1
  24. package/dist/contracts/recipes.js +1 -1
  25. package/dist/contracts/recipes.js.map +1 -1
  26. package/dist/contracts/reviews.d.ts +2 -1
  27. package/dist/contracts/reviews.d.ts.map +1 -1
  28. package/dist/contracts/reviews.js.map +1 -1
  29. package/dist/contracts/runs.d.ts +51 -3
  30. package/dist/contracts/runs.d.ts.map +1 -1
  31. package/dist/contracts/runs.js +42 -2
  32. package/dist/contracts/runs.js.map +1 -1
  33. package/dist/contracts/slots.d.ts +11 -0
  34. package/dist/contracts/slots.d.ts.map +1 -1
  35. package/dist/contracts/slots.js +11 -0
  36. package/dist/contracts/slots.js.map +1 -1
  37. package/dist/contracts/work-graph.d.ts +1 -1
  38. package/dist/contracts/work-graph.d.ts.map +1 -1
  39. package/dist/integrations/github-ref.js +1 -1
  40. package/dist/integrations/github-ref.js.map +1 -1
  41. package/dist/recipe/artifact.d.ts.map +1 -1
  42. package/dist/recipe/artifact.js +153 -20
  43. package/dist/recipe/artifact.js.map +1 -1
  44. package/dist/recipe/common.d.ts +30 -36
  45. package/dist/recipe/common.d.ts.map +1 -1
  46. package/dist/recipe/common.js +0 -3
  47. package/dist/recipe/common.js.map +1 -1
  48. package/dist/recipe/digest.d.ts +5 -0
  49. package/dist/recipe/digest.d.ts.map +1 -0
  50. package/dist/recipe/digest.js +25 -0
  51. package/dist/recipe/digest.js.map +1 -0
  52. package/dist/recipe/document.d.ts +4 -20
  53. package/dist/recipe/document.d.ts.map +1 -1
  54. package/dist/recipe/document.js +160 -123
  55. package/dist/recipe/document.js.map +1 -1
  56. package/dist/recipe/index.d.ts +6 -3
  57. package/dist/recipe/index.d.ts.map +1 -1
  58. package/dist/recipe/index.js +6 -3
  59. package/dist/recipe/index.js.map +1 -1
  60. package/dist/recipe/manifest.d.ts +0 -1
  61. package/dist/recipe/manifest.d.ts.map +1 -1
  62. package/dist/recipe/manifest.js +82 -45
  63. package/dist/recipe/manifest.js.map +1 -1
  64. package/dist/recipe/params.d.ts +9 -0
  65. package/dist/recipe/params.d.ts.map +1 -0
  66. package/dist/recipe/params.js +261 -0
  67. package/dist/recipe/params.js.map +1 -0
  68. package/dist/recipe/trust.d.ts +47 -0
  69. package/dist/recipe/trust.d.ts.map +1 -0
  70. package/dist/recipe/trust.js +63 -0
  71. package/dist/recipe/trust.js.map +1 -0
  72. package/dist/recipe/workflow.d.ts +13 -27
  73. package/dist/recipe/workflow.d.ts.map +1 -1
  74. package/dist/recipe/workflow.js +201 -497
  75. package/dist/recipe/workflow.js.map +1 -1
  76. package/dist/rpc/dispatch.d.ts +9 -1
  77. package/dist/rpc/dispatch.d.ts.map +1 -1
  78. package/dist/rpc/registry.d.ts +5 -0
  79. package/dist/rpc/registry.d.ts.map +1 -1
  80. package/dist/rpc/registry.js +5 -0
  81. package/dist/rpc/registry.js.map +1 -1
  82. package/dist/rpc/run.d.ts +11 -1
  83. package/dist/rpc/run.d.ts.map +1 -1
  84. package/dist/rpc/slot.d.ts +53 -1
  85. package/dist/rpc/slot.d.ts.map +1 -1
  86. package/dist/rpc/slot.js +5 -0
  87. package/dist/rpc/slot.js.map +1 -1
  88. package/dist/rpc/tmux.d.ts +1 -1
  89. package/dist/rpc/tmux.d.ts.map +1 -1
  90. package/dist/runs/family-iteration-ledger.js +2 -2
  91. package/dist/runs/family-iteration-ledger.js.map +1 -1
  92. package/dist/runs/run-mode.d.ts +1 -1
  93. package/dist/runs/run-mode.js +2 -2
  94. package/dist/runs/run-mode.js.map +1 -1
  95. package/dist/transport/events.d.ts +2 -0
  96. package/dist/transport/events.d.ts.map +1 -1
  97. package/dist/version.d.ts +1 -1
  98. package/dist/version.d.ts.map +1 -1
  99. package/dist/version.js +1 -1
  100. package/dist/version.js.map +1 -1
  101. package/package.json +1 -1
  102. package/schemas/recipe-v1.schema.json +119 -197
@@ -78,7 +78,7 @@ export type UnlockAction = {
78
78
  kind: 'mark-ready';
79
79
  } | {
80
80
  kind: 'rebase-onto';
81
- flow: 'merge-main' | 'pr-complete';
81
+ flow: 'update-branch' | 'pr-complete';
82
82
  };
83
83
  export interface GraphGateResolution {
84
84
  graphId?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"work-graph.d.ts","sourceRoot":"","sources":["../../src/contracts/work-graph.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"work-graph.d.ts","sourceRoot":"","sources":["../../src/contracts/work-graph.ts"],"names":[],"mappings":"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"}
@@ -18,7 +18,7 @@ export function githubPullUrl(ref) {
18
18
  export const PR_BOUND_FLOW_TYPES = new Set([
19
19
  'review-pr',
20
20
  'pr-complete',
21
- 'merge-main',
21
+ 'update-branch',
22
22
  ]);
23
23
  export function prNumberFromRunInput(input) {
24
24
  if (input.prNumber != null)
@@ -1 +1 @@
1
- {"version":3,"file":"github-ref.js","sourceRoot":"","sources":["../../src/integrations/github-ref.ts"],"names":[],"mappings":"AAQA,MAAM,kBAAkB,GAAG,4CAA4C,CAAC;AAExE,MAAM,UAAU,cAAc,CAAC,GAA8B;IAC3D,MAAM,KAAK,GAAG,GAAG,EAAE,IAAI,EAAE,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;IACpD,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IACxB,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC1C,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,IAAI,KAAK,KAAK,GAAG,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,IAAI;QACrF,OAAO,IAAI,CAAC;IACd,OAAO;QACL,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;QACd,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACxB,GAAG,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE;KAC/B,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,GAAuC;IACnE,OAAO,sBAAsB,GAAG,CAAC,IAAI,SAAS,GAAG,CAAC,MAAM,EAAE,CAAC;AAC7D,CAAC;AAED,MAAM,CAAC,MAAM,mBAAmB,GAA0B,IAAI,GAAG,CAAC;IAChE,WAAW;IACX,aAAa;IACb,YAAY;CACb,CAAC,CAAC;AAEH,MAAM,UAAU,oBAAoB,CAClC,KAGC;IAED,IAAI,KAAK,CAAC,QAAQ,IAAI,IAAI;QAAE,OAAO,KAAK,CAAC,QAAQ,CAAC;IAClD,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC;QAAE,OAAO,IAAI,CAAC;IAC1D,OAAO,cAAc,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,MAAM,IAAI,IAAI,CAAC;AAC1D,CAAC"}
1
+ {"version":3,"file":"github-ref.js","sourceRoot":"","sources":["../../src/integrations/github-ref.ts"],"names":[],"mappings":"AAQA,MAAM,kBAAkB,GAAG,4CAA4C,CAAC;AAExE,MAAM,UAAU,cAAc,CAAC,GAA8B;IAC3D,MAAM,KAAK,GAAG,GAAG,EAAE,IAAI,EAAE,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;IACpD,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IACxB,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC1C,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,IAAI,KAAK,KAAK,GAAG,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,IAAI;QACrF,OAAO,IAAI,CAAC;IACd,OAAO;QACL,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;QACd,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACxB,GAAG,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE;KAC/B,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,GAAuC;IACnE,OAAO,sBAAsB,GAAG,CAAC,IAAI,SAAS,GAAG,CAAC,MAAM,EAAE,CAAC;AAC7D,CAAC;AAED,MAAM,CAAC,MAAM,mBAAmB,GAA0B,IAAI,GAAG,CAAC;IAChE,WAAW;IACX,aAAa;IACb,eAAe;CAChB,CAAC,CAAC;AAEH,MAAM,UAAU,oBAAoB,CAClC,KAGC;IAED,IAAI,KAAK,CAAC,QAAQ,IAAI,IAAI;QAAE,OAAO,KAAK,CAAC,QAAQ,CAAC;IAClD,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC;QAAE,OAAO,IAAI,CAAC;IAC1D,OAAO,cAAc,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,MAAM,IAAI,IAAI,CAAC;AAC1D,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"artifact.d.ts","sourceRoot":"","sources":["../../src/recipe/artifact.ts"],"names":[],"mappings":"AAAA,OAAO,EAQL,KAAK,0BAA0B,EAC/B,KAAK,sBAAsB,EAE5B,MAAM,aAAa,CAAC;AAIrB,wBAAgB,gCAAgC,CAC9C,QAAQ,EAAE,OAAO,EACjB,OAAO,GAAE;IAAE,MAAM,CAAC,EAAE,OAAO,CAAC;IAAC,aAAa,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;CAAO,GACpE,sBAAsB,CAyRxB;AAED,wBAAgB,6BAA6B,CAC3C,KAAK,EAAE,0BAA0B,GAChC,sBAAsB,CAkExB;AAED,wBAAgB,4BAA4B,CAC1C,OAAO,EAAE,SAAS,sBAAsB,EAAE,GACzC,sBAAsB,CAMxB"}
1
+ {"version":3,"file":"artifact.d.ts","sourceRoot":"","sources":["../../src/recipe/artifact.ts"],"names":[],"mappings":"AAAA,OAAO,EAQL,KAAK,0BAA0B,EAE/B,KAAK,sBAAsB,EAE5B,MAAM,aAAa,CAAC;AAKrB,wBAAgB,gCAAgC,CAC9C,QAAQ,EAAE,OAAO,EACjB,OAAO,GAAE;IAAE,MAAM,CAAC,EAAE,OAAO,CAAC;IAAC,aAAa,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;CAAO,GACpE,sBAAsB,CAyRxB;AAED,wBAAgB,6BAA6B,CAC3C,KAAK,EAAE,0BAA0B,GAChC,sBAAsB,CAmHxB;AAsND,wBAAgB,4BAA4B,CAC1C,OAAO,EAAE,SAAS,sBAAsB,EAAE,GACzC,sBAAsB,CAMxB"}
@@ -1,6 +1,7 @@
1
1
  import { addFinding, ARTIFACT_TYPES, createContext, finishResult, isNonEmptyString, isRecord, isRelativeArtifactPath, TERMINAL_STATUSES, } from './common.js';
2
+ import { digestRecipeDocument, resolvedRecipeArtifactPath } from './digest.js';
2
3
  import { validateRecipeDocument } from './document.js';
3
- import { getRecipeWorkflowNodeIds } from './workflow.js';
4
+ import { getRecipeCallRefs, getRecipeWorkflowNodeIds } from './workflow.js';
4
5
  export function validateArtifactManifestDocument(manifest, options = {}) {
5
6
  const ctx = createContext();
6
7
  if (!isRecord(manifest)) {
@@ -133,7 +134,7 @@ export function validateRecipeArtifactPackage(input) {
133
134
  if (input.manifest != null)
134
135
  requiredPaths.push('artifact-manifest.json');
135
136
  if (input.recipe != null)
136
- requiredPaths.push('recipe.json');
137
+ requiredPaths.push('recipe.json', 'recipe-resolution.json');
137
138
  for (const requiredPath of requiredPaths) {
138
139
  if (!artifactPaths.has(requiredPath)) {
139
140
  addFinding(ctx, 'error', 'artifact_package.missing_required_file', requiredPath, `Recipe artifact package must include ${requiredPath}.`);
@@ -150,33 +151,165 @@ export function validateRecipeArtifactPackage(input) {
150
151
  });
151
152
  ctx.findings.push(...manifestResult.findings);
152
153
  }
153
- // A passing run must prove its composition resolves. Either recipe.json is
154
- // self-contained (validated in full below), or resolved-recipe.json the
155
- // composed, `uses`-inlined recipe — proves it (validated in full instead, with
156
- // recipe.json checked envelope-only since its `call.ref`s are proven there).
157
- // A failed run (`runPassed === false`) is not held to this: it already surfaced
158
- // its cause (e.g. a flow cycle) in the trace, so recipe.json stays envelope-only
159
- // and the composition is not re-validated.
160
- const enforceComposition = input.runPassed !== false;
161
- const compositionProvenByResolved = enforceComposition && input.resolvedRecipe != null;
154
+ const resolution = input.recipe != null ? parseRecipeResolution(ctx, input.recipeResolution) : undefined;
155
+ const resolvedRecipes = input.resolvedRecipes ?? {};
156
+ const externalRecipeIds = new Set(resolution?.dependencies.map((entry) => entry.ref) ?? []);
162
157
  if (input.recipe != null) {
163
158
  const recipeResult = validateRecipeDocument(input.recipe, {
164
159
  requireSchemaRef: input.requireSchemaRef === true,
165
- skipFlowCallResolution: !enforceComposition || compositionProvenByResolved,
166
- // The `uses` catalogs are not part of the artifact package, so they do not
167
- // prove resolution here — only inline `flows` (or resolved-recipe.json) do.
168
- externalCatalogsResolvable: false,
160
+ externalRecipeIds,
169
161
  });
170
162
  ctx.findings.push(...recipeResult.findings);
171
163
  }
172
- if (compositionProvenByResolved) {
173
- const resolvedResult = validateRecipeDocument(input.resolvedRecipe, {
174
- requireSchemaRef: input.requireSchemaRef === true,
175
- });
176
- ctx.findings.push(...resolvedResult.findings);
164
+ if (resolution && input.recipe != null) {
165
+ const rootDigest = digestRecipeDocument(input.recipe);
166
+ if (resolution.root.digest !== rootDigest) {
167
+ addFinding(ctx, 'error', 'artifact_package.root_digest_mismatch', 'recipe-resolution.json.root.digest', 'Root recipe digest does not match recipe.json.');
168
+ }
169
+ const documents = new Map();
170
+ const expectedDigests = new Set(resolution.dependencies.map((entry) => entry.digest));
171
+ for (const digest of Object.keys(resolvedRecipes)) {
172
+ if (!expectedDigests.has(digest)) {
173
+ addFinding(ctx, 'error', 'artifact_package.unexpected_resolved_recipe', `resolvedRecipes.${digest}`, 'Resolved recipe documents must exactly match recipe-resolution.json dependencies.');
174
+ }
175
+ }
176
+ for (const dependency of resolution.dependencies) {
177
+ const document = resolvedRecipes[dependency.digest];
178
+ if (document == null) {
179
+ addFinding(ctx, 'error', 'artifact_package.missing_resolved_recipe', dependency.artifact, `Missing resolved recipe document for ${dependency.ref}.`);
180
+ continue;
181
+ }
182
+ documents.set(dependency.ref, document);
183
+ if (digestRecipeDocument(document) !== dependency.digest) {
184
+ addFinding(ctx, 'error', 'artifact_package.resolved_recipe_digest_mismatch', dependency.artifact, `Resolved recipe ${dependency.ref} does not match its recorded digest.`);
185
+ }
186
+ if (input.artifactPaths != null && !artifactPaths.has(dependency.artifact)) {
187
+ addFinding(ctx, 'error', 'artifact_package.missing_resolved_recipe_file', dependency.artifact, `Recipe artifact package must include ${dependency.artifact}.`);
188
+ }
189
+ const result = validateRecipeDocument(document, {
190
+ requireSchemaRef: input.requireSchemaRef === true,
191
+ externalRecipeIds,
192
+ });
193
+ ctx.findings.push(...result.findings);
194
+ }
195
+ validateResolutionEdges(ctx, input.recipe, resolution, documents);
177
196
  }
178
197
  return finishResult(ctx);
179
198
  }
199
+ function parseRecipeResolution(ctx, value) {
200
+ if (!isRecord(value)) {
201
+ addFinding(ctx, 'error', 'artifact_package.missing_recipe_resolution', 'recipe-resolution.json', 'Recipe artifact package must include recipe-resolution.json.');
202
+ return undefined;
203
+ }
204
+ if (value.schema_version !== 1 || !isRecord(value.root)) {
205
+ addFinding(ctx, 'error', 'artifact_package.invalid_recipe_resolution', 'recipe-resolution.json', 'recipe-resolution.json must declare schema_version 1 and a root object.');
206
+ return undefined;
207
+ }
208
+ if (!isNonEmptyString(value.root.ref) || !isDigest(value.root.digest)) {
209
+ addFinding(ctx, 'error', 'artifact_package.invalid_recipe_resolution_root', 'recipe-resolution.json.root', 'Recipe resolution root requires a non-empty ref and sha256 digest.');
210
+ return undefined;
211
+ }
212
+ if (!Array.isArray(value.dependencies) || !Array.isArray(value.edges)) {
213
+ addFinding(ctx, 'error', 'artifact_package.invalid_recipe_resolution_graph', 'recipe-resolution.json', 'Recipe resolution requires dependencies and edges arrays.');
214
+ return undefined;
215
+ }
216
+ const dependencies = [];
217
+ const seenRefs = new Set();
218
+ for (const [index, entry] of value.dependencies.entries()) {
219
+ if (!isRecord(entry) ||
220
+ !isNonEmptyString(entry.ref) ||
221
+ !isNonEmptyString(entry.source) ||
222
+ !isNonEmptyString(entry.file) ||
223
+ !isRelativeArtifactPath(entry.file) ||
224
+ !isDigest(entry.digest) ||
225
+ !isRelativeArtifactPath(String(entry.artifact ?? '')) ||
226
+ (entry.adapter != null && !isNonEmptyString(entry.adapter))) {
227
+ addFinding(ctx, 'error', 'artifact_package.invalid_recipe_resolution_dependency', `recipe-resolution.json.dependencies[${index}]`, 'Each dependency requires a unique ref, source, relative file, sha256 digest, digest-keyed artifact, and optional adapter.');
228
+ continue;
229
+ }
230
+ if (seenRefs.has(entry.ref)) {
231
+ addFinding(ctx, 'error', 'artifact_package.duplicate_recipe_resolution_ref', `recipe-resolution.json.dependencies[${index}].ref`, `Recipe ${entry.ref} appears more than once in the resolution.`);
232
+ continue;
233
+ }
234
+ seenRefs.add(entry.ref);
235
+ const expectedArtifact = resolvedRecipeArtifactPath(entry.digest);
236
+ if (entry.artifact !== expectedArtifact) {
237
+ addFinding(ctx, 'error', 'artifact_package.invalid_recipe_resolution_artifact', `recipe-resolution.json.dependencies[${index}].artifact`, `Resolved recipe artifact must be ${expectedArtifact}.`);
238
+ }
239
+ dependencies.push({
240
+ ref: entry.ref,
241
+ source: entry.source,
242
+ file: entry.file,
243
+ digest: entry.digest,
244
+ artifact: String(entry.artifact),
245
+ ...(typeof entry.adapter === 'string' ? { adapter: entry.adapter } : {}),
246
+ });
247
+ }
248
+ const edges = [];
249
+ for (const [index, entry] of value.edges.entries()) {
250
+ if (!isRecord(entry) || !isNonEmptyString(entry.from) || !isNonEmptyString(entry.to)) {
251
+ addFinding(ctx, 'error', 'artifact_package.invalid_recipe_resolution_edge', `recipe-resolution.json.edges[${index}]`, 'Each recipe resolution edge requires non-empty from and to refs.');
252
+ continue;
253
+ }
254
+ edges.push({ from: entry.from, to: entry.to });
255
+ }
256
+ return {
257
+ schema_version: 1,
258
+ root: { ref: value.root.ref, digest: value.root.digest },
259
+ dependencies,
260
+ edges,
261
+ };
262
+ }
263
+ function validateResolutionEdges(ctx, root, resolution, documents) {
264
+ const actual = [
265
+ ...getRecipeCallRefs(root).map((to) => ({ from: resolution.root.ref, to })),
266
+ ...[...documents.entries()].flatMap(([from, document]) => getRecipeCallRefs(document).map((to) => ({ from, to }))),
267
+ ];
268
+ const expectedKeys = resolution.edges.map(edgeKey).sort();
269
+ const actualKeys = actual.map(edgeKey).sort();
270
+ if (JSON.stringify(expectedKeys) !== JSON.stringify(actualKeys)) {
271
+ addFinding(ctx, 'error', 'artifact_package.recipe_resolution_edge_mismatch', 'recipe-resolution.json.edges', 'Recipe resolution edges do not match the call refs in the retained recipe documents.');
272
+ }
273
+ const dependencyRefs = new Set(resolution.dependencies.map((entry) => entry.ref));
274
+ if (dependencyRefs.has(resolution.root.ref)) {
275
+ addFinding(ctx, 'error', 'artifact_package.recipe_resolution_root_collision', 'recipe-resolution.json.root.ref', 'Root recipe ref must not also appear as a dependency.');
276
+ }
277
+ for (const edge of resolution.edges) {
278
+ if (edge.from !== resolution.root.ref && !dependencyRefs.has(edge.from)) {
279
+ addFinding(ctx, 'error', 'artifact_package.invalid_recipe_resolution_source', 'recipe-resolution.json.edges', `Recipe resolution edge starts from missing recipe ${edge.from}.`);
280
+ }
281
+ if (!dependencyRefs.has(edge.to)) {
282
+ addFinding(ctx, 'error', 'artifact_package.unresolved_recipe_resolution_edge', 'recipe-resolution.json.edges', `Recipe resolution edge targets missing dependency ${edge.to}.`);
283
+ }
284
+ }
285
+ const reachable = new Set();
286
+ const visit = (ref, stack) => {
287
+ if (stack.has(ref)) {
288
+ addFinding(ctx, 'error', 'artifact_package.recipe_resolution_cycle', 'recipe-resolution.json.edges', `Recipe resolution contains a cycle through ${ref}.`);
289
+ return;
290
+ }
291
+ if (reachable.has(ref))
292
+ return;
293
+ reachable.add(ref);
294
+ const nextStack = new Set(stack).add(ref);
295
+ for (const edge of resolution.edges) {
296
+ if (edge.from === ref)
297
+ visit(edge.to, nextStack);
298
+ }
299
+ };
300
+ visit(resolution.root.ref, new Set());
301
+ for (const ref of dependencyRefs) {
302
+ if (!reachable.has(ref)) {
303
+ addFinding(ctx, 'error', 'artifact_package.unreachable_recipe_resolution_dependency', 'recipe-resolution.json.dependencies', `Resolved recipe ${ref} is not reachable from the root recipe.`);
304
+ }
305
+ }
306
+ }
307
+ function edgeKey(edge) {
308
+ return `${edge.from}\0${edge.to}`;
309
+ }
310
+ function isDigest(value) {
311
+ return typeof value === 'string' && /^sha256:[a-f0-9]{64}$/.test(value);
312
+ }
180
313
  export function mergeRecipeValidationResults(results) {
181
314
  const ctx = createContext();
182
315
  for (const result of results) {
@@ -1 +1 @@
1
- {"version":3,"file":"artifact.js","sourceRoot":"","sources":["../../src/recipe/artifact.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"artifact.js","sourceRoot":"","sources":["../../src/recipe/artifact.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,9 @@
1
+ import type { RecipeExecutionCapability } from './trust.js';
1
2
  export declare const RECIPE_PROTOCOL_SCHEMA_VERSION = 1;
2
3
  export declare const RECIPE_PROTOCOL_SCHEMA_URL = "https://farmslot.io/schemas/recipe-v1.schema.json";
3
4
  export declare const RECIPE_PROTOCOL_SCHEMA_URLS: {
4
5
  readonly 1: "https://farmslot.io/schemas/recipe-v1.schema.json";
5
6
  };
6
- export declare const RECIPE_PLAYBACK_SLOW_MS_MIN = 100;
7
- export declare const RECIPE_PLAYBACK_SLOW_MS_MAX = 60000;
8
7
  export declare const OFFICIAL_RECIPE_ACTIONS: readonly ["command", "wait", "assert_file", "assert_json", "assert_exit_code", "assert_output", "state_read", "watch_logs", "index_artifacts", "call", "switch", "manual", "end", "ui.navigate", "ui.press", "ui.key_press", "ui.set_input", "ui.scroll", "ui.gesture", "ui.wait_for", "ui.screenshot", "app.status", "app.lifecycle", "app.hud", "app.trace", "cdp.target", "cdp.storage", "cdp.network", "cdp.emulation", "cdp.metrics", "cdp.trace"];
9
8
  export type OfficialActionName = (typeof OFFICIAL_RECIPE_ACTIONS)[number];
10
9
  export type RecipeActionName = OfficialActionName | (string & {});
@@ -18,7 +17,11 @@ export interface RecipeActionCatalogExample {
18
17
  export interface RecipeActionCatalogEntry {
19
18
  description?: string;
20
19
  schema?: Record<string, unknown>;
20
+ /** Finite control cases this action may return. The recipe owns their destinations. */
21
+ result_cases?: string[];
21
22
  examples?: RecipeActionCatalogExample[];
23
+ /** Security-relevant effects. Discovery metadata only; runtime adapters may add but never remove capabilities. */
24
+ execution_capabilities?: RecipeExecutionCapability[];
22
25
  when_to_use?: string;
23
26
  avoid_when?: string;
24
27
  proof_effect?: string;
@@ -28,21 +31,6 @@ export interface RecipeCustomActionDeclaration extends RecipeActionCatalogEntry
28
31
  name: string;
29
32
  owner?: string;
30
33
  }
31
- export interface RecipeNamedDeclaration {
32
- name: string;
33
- description?: string;
34
- schema?: Record<string, unknown>;
35
- }
36
- export interface RecipeStateRefDeclaration {
37
- name: string;
38
- description?: string;
39
- schema?: Record<string, unknown>;
40
- }
41
- export interface RecipePreconditionDeclaration {
42
- id: string;
43
- description: string;
44
- failure_kind?: string;
45
- }
46
34
  export interface RecipeNativeBindingDeclaration {
47
35
  action: RecipeActionName;
48
36
  implementation: string;
@@ -69,14 +57,10 @@ export interface RecipeActionManifestDocument {
69
57
  supported_official_actions: OfficialActionName[];
70
58
  action_metadata?: Partial<Record<OfficialActionName, RecipeActionCatalogEntry>>;
71
59
  custom_actions?: RecipeCustomActionDeclaration[];
72
- custom_assertion_operators?: RecipeNamedDeclaration[];
73
- state_refs?: RecipeStateRefDeclaration[];
74
- pre_conditions?: RecipePreconditionDeclaration[];
75
60
  native_bindings?: RecipeNativeBindingDeclaration[];
76
61
  capabilities?: RecipeRuntimeCapabilityDeclaration[];
77
62
  observers?: RecipeObserverDeclaration[];
78
63
  }
79
- export declare const PLAYBACK_MODES: Set<string>;
80
64
  export declare const TERMINAL_STATUSES: Set<string>;
81
65
  export declare const ARTIFACT_TYPES: Set<string>;
82
66
  export declare const OFFICIAL_ACTION_SET: Set<string>;
@@ -101,23 +85,33 @@ export interface RecipeArtifactPackageInput {
101
85
  manifest?: unknown;
102
86
  artifactPaths?: readonly string[];
103
87
  recipe?: unknown;
104
- /**
105
- * The fully-composed recipe (`resolved-recipe.json`): the authored recipe with
106
- * every referenced flow inlined under `flows`. For a passing run it is validated
107
- * in full — including `call.ref` resolution — proving the composition is complete
108
- * and self-contained, and `recipe` is then checked envelope-only.
109
- */
110
- resolvedRecipe?: unknown;
111
- /**
112
- * Whether the run passed. Defaults to `true` (enforce composition). When `true`,
113
- * the composition must be proven: either `recipe` is self-contained (validated in
114
- * full) or `resolvedRecipe` proves it. When `false`, the run already failed and
115
- * surfaced its cause, so `recipe` is envelope-only and `resolvedRecipe` is not
116
- * re-validated — a graceful failure is not turned into a rejection.
117
- */
118
- runPassed?: boolean;
88
+ /** Exact reachable dependency documents keyed by their sha256 digest. */
89
+ resolvedRecipes?: Record<string, unknown>;
90
+ /** Static dependency graph and provenance emitted as recipe-resolution.json. */
91
+ recipeResolution?: unknown;
119
92
  requireSchemaRef?: boolean;
120
93
  }
94
+ export interface RecipeResolutionDependency {
95
+ ref: string;
96
+ source: string;
97
+ file: string;
98
+ digest: string;
99
+ artifact: string;
100
+ adapter?: string;
101
+ }
102
+ export interface RecipeResolutionEdge {
103
+ from: string;
104
+ to: string;
105
+ }
106
+ export interface RecipeResolutionDocument {
107
+ schema_version: 1;
108
+ root: {
109
+ ref: string;
110
+ digest: string;
111
+ };
112
+ dependencies: RecipeResolutionDependency[];
113
+ edges: RecipeResolutionEdge[];
114
+ }
121
115
  export interface MutableValidationContext {
122
116
  findings: RecipeValidationFinding[];
123
117
  }
@@ -1 +1 @@
1
- {"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../src/recipe/common.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../src/recipe/common.ts"],"names":[],"mappings":"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"}
@@ -4,8 +4,6 @@ export const RECIPE_PROTOCOL_SCHEMA_URL = 'https://farmslot.io/schemas/recipe-v1
4
4
  export const RECIPE_PROTOCOL_SCHEMA_URLS = {
5
5
  [RECIPE_PROTOCOL_SCHEMA_VERSION]: RECIPE_PROTOCOL_SCHEMA_URL,
6
6
  };
7
- export const RECIPE_PLAYBACK_SLOW_MS_MIN = 100;
8
- export const RECIPE_PLAYBACK_SLOW_MS_MAX = 60_000;
9
7
  export const OFFICIAL_RECIPE_ACTIONS = [
10
8
  'command',
11
9
  'wait',
@@ -40,7 +38,6 @@ export const OFFICIAL_RECIPE_ACTIONS = [
40
38
  'cdp.trace',
41
39
  ];
42
40
  export const BUILT_IN_UI_OBSERVERS = ['ui.screen', 'ui.visible'];
43
- export const PLAYBACK_MODES = new Set(['off', 'auto', 'step']);
44
41
  export const TERMINAL_STATUSES = new Set(['pass', 'fail', 'unknown']);
45
42
  export const ARTIFACT_TYPES = new Set(RECIPE_ARTIFACT_TYPES);
46
43
  export const OFFICIAL_ACTION_SET = new Set(OFFICIAL_RECIPE_ACTIONS);
@@ -1 +1 @@
1
- {"version":3,"file":"common.js","sourceRoot":"","sources":["../../src/recipe/common.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"common.js","sourceRoot":"","sources":["../../src/recipe/common.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ export declare function canonicalRecipeJson(value: unknown): string;
2
+ export declare function digestRecipeDocument(value: unknown): string;
3
+ /** Return the only valid artifact path for an exact resolved Recipe v1 digest. */
4
+ export declare function resolvedRecipeArtifactPath(digest: unknown): string | undefined;
5
+ //# sourceMappingURL=digest.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"digest.d.ts","sourceRoot":"","sources":["../../src/recipe/digest.ts"],"names":[],"mappings":"AAMA,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAU1D;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAE3D;AAED,kFAAkF;AAClF,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAG9E"}
@@ -0,0 +1,25 @@
1
+ import { createHash } from 'node:crypto';
2
+ import { isRecord } from './common.js';
3
+ const RECIPE_DIGEST_RE = /^sha256:[a-f0-9]{64}$/u;
4
+ export function canonicalRecipeJson(value) {
5
+ if (Array.isArray(value))
6
+ return `[${value.map(canonicalRecipeJson).join(',')}]`;
7
+ if (isRecord(value)) {
8
+ return `{${Object.entries(value)
9
+ .filter(([, entry]) => entry !== undefined)
10
+ .sort(([left], [right]) => (left < right ? -1 : left > right ? 1 : 0))
11
+ .map(([key, entry]) => `${JSON.stringify(key)}:${canonicalRecipeJson(entry)}`)
12
+ .join(',')}}`;
13
+ }
14
+ return JSON.stringify(value) ?? 'null';
15
+ }
16
+ export function digestRecipeDocument(value) {
17
+ return `sha256:${createHash('sha256').update(canonicalRecipeJson(value)).digest('hex')}`;
18
+ }
19
+ /** Return the only valid artifact path for an exact resolved Recipe v1 digest. */
20
+ export function resolvedRecipeArtifactPath(digest) {
21
+ if (typeof digest !== 'string' || !RECIPE_DIGEST_RE.test(digest))
22
+ return undefined;
23
+ return `resolved-recipes/${digest.slice('sha256:'.length)}.recipe.json`;
24
+ }
25
+ //# sourceMappingURL=digest.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"digest.js","sourceRoot":"","sources":["../../src/recipe/digest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEvC,MAAM,gBAAgB,GAAG,wBAAwB,CAAC;AAElD,MAAM,UAAU,mBAAmB,CAAC,KAAc;IAChD,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,KAAK,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;IACjF,IAAI,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QACpB,OAAO,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC;aAC7B,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,KAAK,KAAK,SAAS,CAAC;aAC1C,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;aACrE,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,mBAAmB,CAAC,KAAK,CAAC,EAAE,CAAC;aAC7E,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;IAClB,CAAC;IACD,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC;AACzC,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,KAAc;IACjD,OAAO,UAAU,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;AAC3F,CAAC;AAED,kFAAkF;AAClF,MAAM,UAAU,0BAA0B,CAAC,MAAe;IACxD,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC;QAAE,OAAO,SAAS,CAAC;IACnF,OAAO,oBAAoB,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,cAAc,CAAC;AAC1E,CAAC"}
@@ -1,27 +1,11 @@
1
1
  import { type RecipeValidationResult } from './common.js';
2
2
  export interface RecipeDocumentValidationOptions {
3
- /**
4
- * Flow ids resolvable outside the recipe document (e.g. from configured
5
- * recipe library sources). `call.ref` values found here are not reported as
6
- * unresolved even when the recipe has no `uses` catalogs or inline flows.
7
- */
8
- externalFlowIds?: ReadonlySet<string>;
9
- /** Require the canonical published JSON Schema URL at recipe.$schema. */
3
+ externalRecipeIds?: ReadonlySet<string>;
4
+ /** Retained for callers; Recipe v1 always requires the canonical schema ref. */
10
5
  requireSchemaRef?: boolean;
11
- /**
12
- * Skip `call.ref` resolution (unresolved_call_ref) against inline flows / uses
13
- * catalogs / external library flows. Call-shape checks (invalid ref/params) still
14
- * run. Set when a produced resolved-recipe.json already proves resolution.
15
- */
16
- skipFlowCallResolution?: boolean;
17
- /**
18
- * Whether a declared `uses` catalog counts as resolving `call.ref`s. Defaults to
19
- * true (authoring/run time, where catalogs are loaded). Set false at
20
- * artifact-package validation, where the catalogs are not in the package, so a
21
- * `uses`-only recipe is not self-contained.
22
- */
23
- externalCatalogsResolvable?: boolean;
6
+ skipRecipeCallResolution?: boolean;
24
7
  }
8
+ export declare function validateResolvedRecipeActionNode(node: unknown, manifest: unknown): RecipeValidationResult;
25
9
  export declare function validateRecipeWithManifest(recipe: unknown, manifest: unknown, options?: RecipeDocumentValidationOptions): RecipeValidationResult;
26
10
  export declare function validateRecipeDocument(recipe: unknown, options?: RecipeDocumentValidationOptions): RecipeValidationResult;
27
11
  //# sourceMappingURL=document.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"document.d.ts","sourceRoot":"","sources":["../../src/recipe/document.ts"],"names":[],"mappings":"AAAA,OAAO,EASL,KAAK,sBAAsB,EAE5B,MAAM,aAAa,CAAC;AAgBrB,MAAM,WAAW,+BAA+B;IAC9C;;;;OAIG;IACH,eAAe,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACtC,yEAAyE;IACzE,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B;;;;OAIG;IACH,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC;;;;;OAKG;IACH,0BAA0B,CAAC,EAAE,OAAO,CAAC;CACtC;AAED,wBAAgB,0BAA0B,CACxC,MAAM,EAAE,OAAO,EACf,QAAQ,EAAE,OAAO,EACjB,OAAO,CAAC,EAAE,+BAA+B,GACxC,sBAAsB,CA2DxB;AA0DD,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,OAAO,EACf,OAAO,CAAC,EAAE,+BAA+B,GACxC,sBAAsB,CA4GxB"}
1
+ {"version":3,"file":"document.d.ts","sourceRoot":"","sources":["../../src/recipe/document.ts"],"names":[],"mappings":"AAAA,OAAO,EASL,KAAK,sBAAsB,EAG5B,MAAM,aAAa,CAAC;AAuBrB,MAAM,WAAW,+BAA+B;IAC9C,iBAAiB,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACxC,gFAAgF;IAChF,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,wBAAwB,CAAC,EAAE,OAAO,CAAC;CACpC;AAED,wBAAgB,gCAAgC,CAC9C,IAAI,EAAE,OAAO,EACb,QAAQ,EAAE,OAAO,GAChB,sBAAsB,CA0BxB;AAOD,wBAAgB,0BAA0B,CACxC,MAAM,EAAE,OAAO,EACf,QAAQ,EAAE,OAAO,EACjB,OAAO,CAAC,EAAE,+BAA+B,GACxC,sBAAsB,CA+DxB;AAED,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,OAAO,EACf,OAAO,CAAC,EAAE,+BAA+B,GACxC,sBAAsB,CA6DxB"}