@farmslot/protocol 0.10.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 (42) hide show
  1. package/CHANGELOG.md +8 -1
  2. package/README.md +12 -4
  3. package/dist/contracts/runs.d.ts +1 -1
  4. package/dist/contracts/runs.d.ts.map +1 -1
  5. package/dist/recipe/artifact.d.ts.map +1 -1
  6. package/dist/recipe/artifact.js +153 -20
  7. package/dist/recipe/artifact.js.map +1 -1
  8. package/dist/recipe/common.d.ts +27 -36
  9. package/dist/recipe/common.d.ts.map +1 -1
  10. package/dist/recipe/common.js +0 -3
  11. package/dist/recipe/common.js.map +1 -1
  12. package/dist/recipe/digest.d.ts +5 -0
  13. package/dist/recipe/digest.d.ts.map +1 -0
  14. package/dist/recipe/digest.js +25 -0
  15. package/dist/recipe/digest.js.map +1 -0
  16. package/dist/recipe/document.d.ts +4 -20
  17. package/dist/recipe/document.d.ts.map +1 -1
  18. package/dist/recipe/document.js +160 -123
  19. package/dist/recipe/document.js.map +1 -1
  20. package/dist/recipe/index.d.ts +5 -3
  21. package/dist/recipe/index.d.ts.map +1 -1
  22. package/dist/recipe/index.js +5 -3
  23. package/dist/recipe/index.js.map +1 -1
  24. package/dist/recipe/manifest.d.ts +0 -1
  25. package/dist/recipe/manifest.d.ts.map +1 -1
  26. package/dist/recipe/manifest.js +68 -45
  27. package/dist/recipe/manifest.js.map +1 -1
  28. package/dist/recipe/params.d.ts +9 -0
  29. package/dist/recipe/params.d.ts.map +1 -0
  30. package/dist/recipe/params.js +261 -0
  31. package/dist/recipe/params.js.map +1 -0
  32. package/dist/recipe/trust.d.ts +5 -3
  33. package/dist/recipe/trust.d.ts.map +1 -1
  34. package/dist/recipe/trust.js.map +1 -1
  35. package/dist/recipe/workflow.d.ts +13 -30
  36. package/dist/recipe/workflow.d.ts.map +1 -1
  37. package/dist/recipe/workflow.js +200 -526
  38. package/dist/recipe/workflow.js.map +1 -1
  39. package/dist/rpc/dispatch.d.ts +8 -0
  40. package/dist/rpc/dispatch.d.ts.map +1 -1
  41. package/package.json +1 -1
  42. package/schemas/recipe-v1.schema.json +119 -197
@@ -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":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAI9D,MAAM,CAAC,MAAM,8BAA8B,GAAG,CAAC,CAAC;AAChD,MAAM,CAAC,MAAM,0BAA0B,GAAG,mDAAmD,CAAC;AAC9F,MAAM,CAAC,MAAM,2BAA2B,GAAG;IACzC,CAAC,8BAA8B,CAAC,EAAE,0BAA0B;CACpD,CAAC;AACX,MAAM,CAAC,MAAM,2BAA2B,GAAG,GAAG,CAAC;AAC/C,MAAM,CAAC,MAAM,2BAA2B,GAAG,MAAM,CAAC;AAElD,MAAM,CAAC,MAAM,uBAAuB,GAAG;IACrC,SAAS;IACT,MAAM;IACN,aAAa;IACb,aAAa;IACb,kBAAkB;IAClB,eAAe;IACf,YAAY;IACZ,YAAY;IACZ,iBAAiB;IACjB,MAAM;IACN,QAAQ;IACR,QAAQ;IACR,KAAK;IACL,aAAa;IACb,UAAU;IACV,cAAc;IACd,cAAc;IACd,WAAW;IACX,YAAY;IACZ,aAAa;IACb,eAAe;IACf,YAAY;IACZ,eAAe;IACf,SAAS;IACT,WAAW;IACX,YAAY;IACZ,aAAa;IACb,aAAa;IACb,eAAe;IACf,aAAa;IACb,WAAW;CACH,CAAC;AAIX,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,WAAW,EAAE,YAAY,CAAU,CAAC;AAiF1E,MAAM,CAAC,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;AAC/D,MAAM,CAAC,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC;AACtE,MAAM,CAAC,MAAM,cAAc,GAAG,IAAI,GAAG,CAAS,qBAAqB,CAAC,CAAC;AACrE,MAAM,CAAC,MAAM,mBAAmB,GAAG,IAAI,GAAG,CAAS,uBAAuB,CAAC,CAAC;AAC5E,MAAM,CAAC,MAAM,wBAAwB,GAAG,IAAI,GAAG,CAAS,qBAAqB,CAAC,CAAC;AA+C/E,MAAM,UAAU,aAAa;IAC3B,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;AAC1B,CAAC;AAED,MAAM,UAAU,UAAU,CACxB,GAA6B,EAC7B,QAAkC,EAClC,IAAY,EACZ,IAAY,EACZ,OAAe;IAEf,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;AACvD,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,KAAc;IACrC,OAAO,OAAO,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;AAC9E,CAAC;AAED,MAAM,UAAU,MAAM,CAAC,KAA8B,EAAE,GAAW;IAChE,OAAO,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;AAC1D,CAAC;AAED,MAAM,UAAU,iCAAiC,CAAC,OAAgB;IAChE,IAAI,OAAO,OAAO,KAAK,QAAQ;QAAE,OAAO,SAAS,CAAC;IAClD,OAAO,2BAA2B,CAAC,OAAmD,CAAC,CAAC;AAC1F,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,KAAc;IAC7C,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;AAC9D,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,KAAa;IAClD,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC;IAClE,IAAI,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAC3C,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,KAAK,IAAI,CAAC,CAAC;AACpE,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,GAA6B;IACxD,MAAM,MAAM,GAAG,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,MAAM,CAAC;IACrF,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC,MAAM,GAAG,MAAM,CAAC;IAC9C,MAAM,MAAM,GAA2B,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC;IACpE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,CAAC;AAC3E,CAAC;AAED,MAAM,UAAU,kBAAkB,CAChC,GAA6B,EAC7B,QAAiC,EACjC,KAAa,EACb,IAAY;IAEZ,IAAI,gBAAgB,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QAAE,OAAO;IAC9C,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC;QAC7B,UAAU,CAAC,GAAG,EAAE,OAAO,EAAE,kBAAkB,KAAK,EAAE,EAAE,IAAI,EAAE,mBAAmB,IAAI,GAAG,CAAC,CAAC;QACtF,OAAO;IACT,CAAC;IACD,UAAU,CAAC,GAAG,EAAE,OAAO,EAAE,kBAAkB,KAAK,EAAE,EAAE,IAAI,EAAE,GAAG,IAAI,8BAA8B,CAAC,CAAC;AACnG,CAAC;AAED,MAAM,UAAU,2BAA2B,CACzC,GAA6B,EAC7B,QAAiC,EACjC,KAAa,EACb,IAAY;IAEZ,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,QAAQ,CAAC,KAAK,CAAC,IAAI,IAAI;QAAE,OAAO;IAChE,IAAI,gBAAgB,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QAAE,OAAO;IAC9C,UAAU,CAAC,GAAG,EAAE,OAAO,EAAE,kBAAkB,KAAK,EAAE,EAAE,IAAI,EAAE,GAAG,IAAI,8BAA8B,CAAC,CAAC;AACnG,CAAC"}
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"}
@@ -1,87 +1,69 @@
1
- import { addFinding, createContext, finishResult, hasOwn, isRecord, RECIPE_PROTOCOL_SCHEMA_URL, RECIPE_PROTOCOL_SCHEMA_VERSION, recipeProtocolSchemaUrlForVersion, validateOptionalStringField, } from './common.js';
2
- import { getRecipeActionManifestActionNames, getRecipeActionManifestPreconditionIds, validateRecipeActionManifestDocument, } from './manifest.js';
3
- import { extractWorkflow, getRecipeWorkflowActionEntries, getRecipeWorkflowPreconditionEntries, validateFlowCalls, validateInlineFlows, validateWorkflowGraph, validateWorkflowPreconditions, } from './workflow.js';
4
- export function validateRecipeWithManifest(recipe, manifest, options) {
1
+ import { addFinding, createContext, finishResult, hasOwn, isNonEmptyString, isRecord, RECIPE_PROTOCOL_SCHEMA_URL, requireStringField, validateOptionalStringField, } from './common.js';
2
+ import { getRecipeActionManifestActionNames, validateRecipeActionManifestDocument, } from './manifest.js';
3
+ import { validateRecipeParams, validateRecipeParamsSchema } from './params.js';
4
+ import { extractWorkflow, getRecipeActionParams, getRecipeWorkflowActionEntries, validateRecipeCalls, validateWorkflowGraph, } from './workflow.js';
5
+ const RECIPE_FIELDS = new Set([
6
+ '$schema',
7
+ 'title',
8
+ 'description',
9
+ 'paramsSchema',
10
+ 'proofTargets',
11
+ 'workflow',
12
+ ]);
13
+ export function validateResolvedRecipeActionNode(node, manifest) {
5
14
  const ctx = createContext();
6
- const recipeResult = validateRecipeDocument(recipe, options);
7
- const manifestResult = validateRecipeActionManifestDocument(manifest);
8
- ctx.findings.push(...recipeResult.findings, ...manifestResult.findings);
9
- const declaredActions = new Set(getRecipeActionManifestActionNames(manifest));
10
- if (declaredActions.size > 0) {
11
- const actions = getRecipeWorkflowActionEntries(recipe);
12
- actions.forEach(({ action, path }) => {
13
- if (!declaredActions.has(action)) {
14
- addFinding(ctx, 'error', 'recipe.action_not_declared_by_manifest', path, `Recipe action ${action} is not declared by the runner action manifest.`);
15
- }
16
- });
17
- }
18
- const declaredObservers = new Set();
19
- if (isRecord(manifest) && Array.isArray(manifest.observers)) {
20
- for (const observer of manifest.observers) {
21
- if (isRecord(observer) && typeof observer.ref === 'string') {
22
- declaredObservers.add(observer.ref);
23
- }
24
- }
25
- }
26
- for (const entry of collectObservationPolicies(recipe)) {
27
- if (!Array.isArray(entry.policy))
28
- continue;
29
- entry.policy.forEach((ref, index) => {
30
- if (typeof ref === 'string' && !declaredObservers.has(ref)) {
31
- addFinding(ctx, 'error', 'recipe.observer_not_declared_by_manifest', `${entry.path}[${index}]`, `Recipe observer ${ref} is not declared by the runner action manifest.`);
32
- }
33
- });
15
+ if (!isRecord(node) || !isNonEmptyString(node.action)) {
16
+ addFinding(ctx, 'error', 'recipe.invalid_action_node', 'node', 'Resolved action node is invalid.');
17
+ return finishResult(ctx);
34
18
  }
35
- const declaredPreconditions = new Set(getRecipeActionManifestPreconditionIds(manifest));
36
- for (const gate of getRecipeWorkflowPreconditionEntries(recipe)) {
37
- if (!declaredPreconditions.has(gate.id)) {
38
- addFinding(ctx, 'error', 'recipe.precondition_not_declared_by_manifest', gate.path, `Recipe precondition ${gate.id} is not declared by the runner action manifest.`);
39
- }
19
+ if (node.action === 'call' || node.action === 'end')
20
+ return finishResult(ctx);
21
+ const contract = manifestActionContracts(manifest).get(node.action);
22
+ if (!contract?.schema) {
23
+ addFinding(ctx, 'error', 'recipe.action_schema_missing', 'node.action', `Action ${node.action} must declare a parameter schema in the runner manifest.`);
24
+ return finishResult(ctx);
40
25
  }
26
+ ctx.findings.push(...validateRecipeParams(getRecipeActionParams(node), contract.schema).findings);
41
27
  return finishResult(ctx);
42
28
  }
43
- function collectObservationPolicies(recipe) {
44
- if (!isRecord(recipe))
45
- return [];
46
- const entries = collectNodeObservationPolicies(recipe.startState, 'startState');
47
- const validate = isRecord(recipe.validate) ? recipe.validate : undefined;
48
- entries.push(...collectWorkflowObservationPolicies(validate?.workflow, 'validate.workflow'));
49
- if (isRecord(recipe.flows)) {
50
- for (const [ref, flow] of Object.entries(recipe.flows)) {
51
- if (!isRecord(flow))
52
- continue;
53
- entries.push(...collectWorkflowObservationPolicies(isRecord(flow.workflow) ? flow.workflow : flow, `flows.${ref}${isRecord(flow.workflow) ? '.workflow' : ''}`));
29
+ export function validateRecipeWithManifest(recipe, manifest, options) {
30
+ const ctx = createContext();
31
+ ctx.findings.push(...validateRecipeDocument(recipe, options).findings);
32
+ ctx.findings.push(...validateRecipeActionManifestDocument(manifest).findings);
33
+ const declaredActions = new Set(getRecipeActionManifestActionNames(manifest));
34
+ const contracts = manifestActionContracts(manifest);
35
+ for (const { action, node, path } of getRecipeWorkflowActionEntries(recipe)) {
36
+ if (action === 'end' || action === 'call')
37
+ continue;
38
+ if (!declaredActions.has(action)) {
39
+ addFinding(ctx, 'error', 'recipe.action_not_declared_by_manifest', `${path}.action`, `Recipe action ${action} is not declared by the runner action manifest.`);
40
+ continue;
54
41
  }
55
- }
56
- return entries;
57
- }
58
- function collectWorkflowObservationPolicies(value, path) {
59
- if (!isRecord(value))
60
- return [];
61
- const entries = [];
62
- if (isRecord(value.nodes)) {
63
- for (const [nodeId, node] of Object.entries(value.nodes)) {
64
- entries.push(...collectNodeObservationPolicies(node, `${path}.nodes.${nodeId}`));
42
+ const contract = contracts.get(action);
43
+ if (!contract?.schema) {
44
+ addFinding(ctx, 'error', 'recipe.action_schema_missing', `${path}.action`, `Action ${action} must declare a parameter schema in the runner manifest.`);
45
+ }
46
+ else {
47
+ const paramsResult = validateRecipeParams(getRecipeActionParams(node), contract.schema, {
48
+ allowTemplates: true,
49
+ });
50
+ ctx.findings.push(...paramsResult.findings.map((finding) => rebaseFinding(finding, path)));
51
+ }
52
+ if (isRecord(node.cases)) {
53
+ if (!contract?.resultCases?.length) {
54
+ addFinding(ctx, 'error', 'recipe.action_cases_not_declared', `${path}.cases`, `Action ${action} uses result cases but its manifest declares none.`);
55
+ }
56
+ else {
57
+ const allowed = new Set(contract.resultCases);
58
+ for (const caseName of Object.keys(node.cases)) {
59
+ if (!allowed.has(caseName)) {
60
+ addFinding(ctx, 'error', 'recipe.action_case_not_declared', `${path}.cases.${caseName}`, `Case ${caseName} is not declared by action ${action}.`);
61
+ }
62
+ }
63
+ }
65
64
  }
66
65
  }
67
- for (const lifecycle of ['setup', 'teardown']) {
68
- if (!Array.isArray(value[lifecycle]))
69
- continue;
70
- value[lifecycle].forEach((node, index) => {
71
- entries.push(...collectNodeObservationPolicies(node, `${path}.${lifecycle}[${index}]`));
72
- });
73
- }
74
- return entries;
75
- }
76
- function collectNodeObservationPolicies(value, path) {
77
- if (!isRecord(value) || typeof value.action !== 'string')
78
- return [];
79
- const entries = [];
80
- for (const field of ['observe', 'expect_observations']) {
81
- if (hasOwn(value, field))
82
- entries.push({ path: `${path}.${field}`, policy: value[field], field, node: value });
83
- }
84
- return entries;
66
+ return finishResult(ctx);
85
67
  }
86
68
  export function validateRecipeDocument(recipe, options) {
87
69
  const ctx = createContext();
@@ -89,63 +71,118 @@ export function validateRecipeDocument(recipe, options) {
89
71
  addFinding(ctx, 'error', 'recipe.invalid_document', '$', 'Recipe document must be a JSON object.');
90
72
  return finishResult(ctx);
91
73
  }
92
- const schemaVersion = recipe.schema_version;
93
- const schemaVersionIsV1 = schemaVersion === RECIPE_PROTOCOL_SCHEMA_VERSION;
94
- const expectedSchemaRef = recipeProtocolSchemaUrlForVersion(schemaVersion) ?? RECIPE_PROTOCOL_SCHEMA_URL;
95
- const schemaRef = recipe.$schema;
96
- if (options?.requireSchemaRef === true && schemaRef == null) {
97
- addFinding(ctx, 'error', 'recipe.missing_schema_ref', '$schema', `Recipe must set $schema to ${expectedSchemaRef}.`);
98
- }
99
- else if (schemaRef != null && schemaRef !== expectedSchemaRef) {
100
- addFinding(ctx, 'error', 'recipe.unsupported_schema_ref', '$schema', `Unsupported $schema ${JSON.stringify(schemaRef)} for schema_version ${JSON.stringify(schemaVersion)}; expected ${expectedSchemaRef}.`);
74
+ for (const field of Object.keys(recipe)) {
75
+ if (!RECIPE_FIELDS.has(field)) {
76
+ addFinding(ctx, 'error', 'recipe.unsupported_field', field, `Recipe Protocol v1 does not support top-level field ${field}.`);
77
+ }
101
78
  }
102
- if (!hasOwn(recipe, 'schema_version')) {
103
- addFinding(ctx, 'error', 'recipe.missing_schema_version', 'schema_version', `Recipe must set schema_version: ${RECIPE_PROTOCOL_SCHEMA_VERSION}.`);
79
+ if (!hasOwn(recipe, '$schema')) {
80
+ addFinding(ctx, 'error', 'recipe.missing_schema_ref', '$schema', `Recipe must set $schema to ${RECIPE_PROTOCOL_SCHEMA_URL}.`);
104
81
  }
105
- else if (!schemaVersionIsV1) {
106
- addFinding(ctx, 'error', 'recipe.unsupported_schema_version', 'schema_version', `Unsupported schema_version ${JSON.stringify(schemaVersion)}; supported value is ${RECIPE_PROTOCOL_SCHEMA_VERSION}.`);
82
+ else if (recipe.$schema !== RECIPE_PROTOCOL_SCHEMA_URL) {
83
+ addFinding(ctx, 'error', 'recipe.unsupported_schema_ref', '$schema', `Recipe $schema must equal ${RECIPE_PROTOCOL_SCHEMA_URL}.`);
107
84
  }
85
+ requireStringField(ctx, recipe, 'description', 'description');
108
86
  validateOptionalStringField(ctx, recipe, 'title', 'title');
109
- validateOptionalStringField(ctx, recipe, 'description', 'description');
110
- const validate = recipe.validate;
111
- const rawWorkflow = isRecord(validate) && isRecord(validate.workflow) ? validate.workflow : null;
87
+ if (hasOwn(recipe, 'paramsSchema')) {
88
+ ctx.findings.push(...validateRecipeParamsSchema(recipe.paramsSchema).findings);
89
+ }
90
+ const proofTargetIds = validateProofTargets(ctx, recipe.proofTargets);
112
91
  const workflow = extractWorkflow(ctx, recipe);
113
- if (workflow && rawWorkflow) {
114
- validateWorkflowPreconditions(ctx, rawWorkflow);
115
- validateWorkflowGraph(ctx, workflow, rawWorkflow);
116
- // Always run flow-call validation for call-shape checks; skipResolution gates
117
- // only unresolved_call_ref (proven elsewhere), and externalCatalogsResolvable
118
- // controls whether a declared `uses` catalog counts as resolving refs.
119
- validateFlowCalls(ctx, recipe, workflow, {
120
- ...(options?.externalFlowIds ? { externalFlowIds: options.externalFlowIds } : {}),
121
- skipResolution: options?.skipFlowCallResolution === true,
122
- externalCatalogsResolvable: options?.externalCatalogsResolvable !== false,
92
+ if (workflow) {
93
+ validateWorkflowGraph(ctx, workflow);
94
+ validateRecipeCalls(ctx, workflow, {
95
+ ...(options?.externalRecipeIds ? { externalRecipeIds: options.externalRecipeIds } : {}),
96
+ skipResolution: options?.skipRecipeCallResolution === true,
123
97
  });
98
+ validateProofLinks(ctx, workflow.nodes, proofTargetIds);
124
99
  }
125
- validateInlineFlows(ctx, recipe);
126
- for (const entry of collectObservationPolicies(recipe)) {
127
- const valid = entry.field === 'observe'
128
- ? typeof entry.policy === 'boolean' || validObserverRefArray(entry.policy)
129
- : validObserverRefArray(entry.policy);
130
- if (!valid) {
131
- addFinding(ctx, 'error', entry.field === 'observe'
132
- ? 'recipe.invalid_observe_policy'
133
- : 'recipe.invalid_observation_expectation', entry.path, entry.field === 'observe'
134
- ? 'observe must be a boolean or an array of unique non-empty observer refs.'
135
- : 'expect_observations must be an array of unique non-empty observer refs.');
100
+ return finishResult(ctx);
101
+ }
102
+ function validateProofTargets(ctx, value) {
103
+ const ids = new Set();
104
+ if (value == null)
105
+ return ids;
106
+ if (!Array.isArray(value)) {
107
+ addFinding(ctx, 'error', 'recipe.invalid_proof_targets', 'proofTargets', 'proofTargets must be an array.');
108
+ return ids;
109
+ }
110
+ value.forEach((target, index) => {
111
+ const path = `proofTargets[${index}]`;
112
+ if (!isRecord(target)) {
113
+ addFinding(ctx, 'error', 'recipe.invalid_proof_target', path, `${path} must be an object.`);
114
+ return;
115
+ }
116
+ for (const field of Object.keys(target)) {
117
+ if (field !== 'id' && field !== 'claim') {
118
+ addFinding(ctx, 'error', 'recipe.unsupported_proof_target_field', `${path}.${field}`, `Proof targets do not support ${field}.`);
119
+ }
120
+ }
121
+ if (!isNonEmptyString(target.id)) {
122
+ addFinding(ctx, 'error', 'recipe.invalid_proof_target_id', `${path}.id`, 'Proof target id must be a non-empty string.');
136
123
  }
137
- if (entry.field === 'expect_observations' &&
138
- Array.isArray(entry.policy) &&
139
- entry.policy.length > 0 &&
140
- entry.node.observe === false) {
141
- addFinding(ctx, 'error', 'recipe.contradictory_observation_expectation', entry.path, 'expect_observations must be empty when observe is false; the node can never record observations.');
124
+ else if (ids.has(target.id)) {
125
+ addFinding(ctx, 'error', 'recipe.duplicate_proof_target', `${path}.id`, `Proof target ${target.id} is duplicated.`);
142
126
  }
127
+ else {
128
+ ids.add(target.id);
129
+ }
130
+ if (!isNonEmptyString(target.claim)) {
131
+ addFinding(ctx, 'error', 'recipe.invalid_proof_target_claim', `${path}.claim`, 'Proof target claim must be a non-empty string.');
132
+ }
133
+ });
134
+ return ids;
135
+ }
136
+ function validateProofLinks(ctx, nodes, declared) {
137
+ const covered = new Set();
138
+ for (const [nodeId, node] of Object.entries(nodes)) {
139
+ if (!Array.isArray(node.proves))
140
+ continue;
141
+ node.proves.forEach((target, index) => {
142
+ if (!isNonEmptyString(target))
143
+ return;
144
+ if (!declared.has(target)) {
145
+ addFinding(ctx, 'error', 'recipe.undeclared_proof_target', `workflow.nodes.${nodeId}.proves[${index}]`, `Proof target ${target} is not declared by recipe.proofTargets.`);
146
+ }
147
+ covered.add(target);
148
+ });
143
149
  }
144
- return finishResult(ctx);
150
+ for (const target of declared) {
151
+ if (!covered.has(target)) {
152
+ addFinding(ctx, 'error', 'recipe.uncovered_proof_target', 'proofTargets', `Proof target ${target} is not covered by any workflow node.`);
153
+ }
154
+ }
155
+ }
156
+ function manifestActionContracts(manifest) {
157
+ const contracts = new Map();
158
+ if (!isRecord(manifest))
159
+ return contracts;
160
+ if (isRecord(manifest.action_metadata)) {
161
+ for (const [name, entry] of Object.entries(manifest.action_metadata)) {
162
+ if (!isRecord(entry))
163
+ continue;
164
+ contracts.set(name, actionContract(entry));
165
+ }
166
+ }
167
+ if (Array.isArray(manifest.custom_actions)) {
168
+ for (const entry of manifest.custom_actions) {
169
+ if (isRecord(entry) && isNonEmptyString(entry.name)) {
170
+ contracts.set(entry.name, actionContract(entry));
171
+ }
172
+ }
173
+ }
174
+ return contracts;
175
+ }
176
+ function actionContract(entry) {
177
+ return {
178
+ ...(isRecord(entry.schema) ? { schema: entry.schema } : {}),
179
+ ...(Array.isArray(entry.result_cases)
180
+ ? { resultCases: entry.result_cases.filter(isNonEmptyString) }
181
+ : {}),
182
+ };
145
183
  }
146
- function validObserverRefArray(value) {
147
- return (Array.isArray(value) &&
148
- value.every((ref) => typeof ref === 'string' && ref.trim() !== '') &&
149
- new Set(value).size === value.length);
184
+ function rebaseFinding(finding, nodePath) {
185
+ const suffix = finding.path === 'params' ? '' : finding.path.replace(/^params\.?/u, '.');
186
+ return { ...finding, path: `${nodePath}${suffix}` };
150
187
  }
151
188
  //# sourceMappingURL=document.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"document.js","sourceRoot":"","sources":["../../src/recipe/document.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"document.js","sourceRoot":"","sources":["../../src/recipe/document.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,10 @@
1
1
  export { mergeRecipeValidationResults, validateArtifactManifestDocument, validateRecipeArtifactPackage, } from './artifact.js';
2
- export { BUILT_IN_UI_OBSERVERS, type BuiltInUiObserverRef, isRecord, OFFICIAL_RECIPE_ACTIONS, type OfficialActionName, RECIPE_PLAYBACK_SLOW_MS_MAX, RECIPE_PLAYBACK_SLOW_MS_MIN, RECIPE_PROTOCOL_SCHEMA_URL, RECIPE_PROTOCOL_SCHEMA_URLS, RECIPE_PROTOCOL_SCHEMA_VERSION, type RecipeActionCatalogEntry, type RecipeActionCatalogExample, type RecipeActionManifestDocument, type RecipeActionName, type RecipeArtifactPackageInput, type RecipeCustomActionDeclaration, type RecipeNamedDeclaration, type RecipeNativeBindingDeclaration, type RecipeObserverDeclaration, type RecipePreconditionDeclaration, type RecipeRuntimeCapabilityDeclaration, type RecipeStateRefDeclaration, type RecipeValidationFinding, type RecipeValidationResult, type RecipeValidationSeverity, type RecipeValidationStatus, type UiObserverRef, } from './common.js';
2
+ export { BUILT_IN_UI_OBSERVERS, type BuiltInUiObserverRef, isRecord, OFFICIAL_RECIPE_ACTIONS, type OfficialActionName, RECIPE_PROTOCOL_SCHEMA_URL, RECIPE_PROTOCOL_SCHEMA_URLS, RECIPE_PROTOCOL_SCHEMA_VERSION, type RecipeActionCatalogEntry, type RecipeActionCatalogExample, type RecipeActionManifestDocument, type RecipeActionName, type RecipeArtifactPackageInput, type RecipeCustomActionDeclaration, type RecipeNativeBindingDeclaration, type RecipeObserverDeclaration, type RecipeResolutionDependency, type RecipeResolutionDocument, type RecipeResolutionEdge, type RecipeRuntimeCapabilityDeclaration, type RecipeValidationFinding, type RecipeValidationResult, type RecipeValidationSeverity, type RecipeValidationStatus, type UiObserverRef, } from './common.js';
3
3
  export { recipeProtocolSchemaUrlForVersion } from './common.js';
4
- export { type RecipeDocumentValidationOptions, validateRecipeDocument, validateRecipeWithManifest, } from './document.js';
4
+ export { canonicalRecipeJson, digestRecipeDocument, resolvedRecipeArtifactPath } from './digest.js';
5
+ export { type RecipeDocumentValidationOptions, validateRecipeDocument, validateRecipeWithManifest, validateResolvedRecipeActionNode, } from './document.js';
5
6
  export { getRecipeActionManifestActionNames, validateRecipeActionManifestDocument, } from './manifest.js';
7
+ export { applyRecipeParamDefaults, validateRecipeParams, validateRecipeParamsSchema, } from './params.js';
6
8
  export { DEFAULT_UNTRUSTED_RECIPE_BLOCKED_CAPABILITIES, officialRecipeActionCapabilities, RECIPE_EXECUTION_CAPABILITIES, type RecipeExecutionApproval, type RecipeExecutionCapability, type RecipeExecutionPlan, type RecipePlanNode, type RecipeSourceKind, type RecipeSourceProvenance, type RecipeSourceTrust, type RecipeTrustFailure, } from './trust.js';
7
- export { getRecipeWorkflowActions, getRecipeWorkflowNodeIds, isDynamicRecipeFlowRef, normalizeRecipeFlowRef, } from './workflow.js';
9
+ export { getRecipeCallRefs, getRecipeWorkflowActions, getRecipeWorkflowNodeIds, isDynamicRecipeRef, normalizeRecipeRef, } from './workflow.js';
8
10
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/recipe/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,4BAA4B,EAC5B,gCAAgC,EAChC,6BAA6B,GAC9B,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,qBAAqB,EACrB,KAAK,oBAAoB,EACzB,QAAQ,EACR,uBAAuB,EACvB,KAAK,kBAAkB,EACvB,2BAA2B,EAC3B,2BAA2B,EAC3B,0BAA0B,EAC1B,2BAA2B,EAC3B,8BAA8B,EAC9B,KAAK,wBAAwB,EAC7B,KAAK,0BAA0B,EAC/B,KAAK,4BAA4B,EACjC,KAAK,gBAAgB,EACrB,KAAK,0BAA0B,EAC/B,KAAK,6BAA6B,EAClC,KAAK,sBAAsB,EAC3B,KAAK,8BAA8B,EACnC,KAAK,yBAAyB,EAC9B,KAAK,6BAA6B,EAClC,KAAK,kCAAkC,EACvC,KAAK,yBAAyB,EAC9B,KAAK,uBAAuB,EAC5B,KAAK,sBAAsB,EAC3B,KAAK,wBAAwB,EAC7B,KAAK,sBAAsB,EAC3B,KAAK,aAAa,GACnB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,iCAAiC,EAAE,MAAM,aAAa,CAAC;AAChE,OAAO,EACL,KAAK,+BAA+B,EACpC,sBAAsB,EACtB,0BAA0B,GAC3B,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,kCAAkC,EAClC,oCAAoC,GACrC,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,6CAA6C,EAC7C,gCAAgC,EAChC,6BAA6B,EAC7B,KAAK,uBAAuB,EAC5B,KAAK,yBAAyB,EAC9B,KAAK,mBAAmB,EACxB,KAAK,cAAc,EACnB,KAAK,gBAAgB,EACrB,KAAK,sBAAsB,EAC3B,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,GACxB,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,wBAAwB,EACxB,wBAAwB,EACxB,sBAAsB,EACtB,sBAAsB,GACvB,MAAM,eAAe,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/recipe/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,4BAA4B,EAC5B,gCAAgC,EAChC,6BAA6B,GAC9B,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,qBAAqB,EACrB,KAAK,oBAAoB,EACzB,QAAQ,EACR,uBAAuB,EACvB,KAAK,kBAAkB,EACvB,0BAA0B,EAC1B,2BAA2B,EAC3B,8BAA8B,EAC9B,KAAK,wBAAwB,EAC7B,KAAK,0BAA0B,EAC/B,KAAK,4BAA4B,EACjC,KAAK,gBAAgB,EACrB,KAAK,0BAA0B,EAC/B,KAAK,6BAA6B,EAClC,KAAK,8BAA8B,EACnC,KAAK,yBAAyB,EAC9B,KAAK,0BAA0B,EAC/B,KAAK,wBAAwB,EAC7B,KAAK,oBAAoB,EACzB,KAAK,kCAAkC,EACvC,KAAK,uBAAuB,EAC5B,KAAK,sBAAsB,EAC3B,KAAK,wBAAwB,EAC7B,KAAK,sBAAsB,EAC3B,KAAK,aAAa,GACnB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,iCAAiC,EAAE,MAAM,aAAa,CAAC;AAChE,OAAO,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AACpG,OAAO,EACL,KAAK,+BAA+B,EACpC,sBAAsB,EACtB,0BAA0B,EAC1B,gCAAgC,GACjC,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,kCAAkC,EAClC,oCAAoC,GACrC,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,wBAAwB,EACxB,oBAAoB,EACpB,0BAA0B,GAC3B,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,6CAA6C,EAC7C,gCAAgC,EAChC,6BAA6B,EAC7B,KAAK,uBAAuB,EAC5B,KAAK,yBAAyB,EAC9B,KAAK,mBAAmB,EACxB,KAAK,cAAc,EACnB,KAAK,gBAAgB,EACrB,KAAK,sBAAsB,EAC3B,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,GACxB,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,iBAAiB,EACjB,wBAAwB,EACxB,wBAAwB,EACxB,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,eAAe,CAAC"}
@@ -1,8 +1,10 @@
1
1
  export { mergeRecipeValidationResults, validateArtifactManifestDocument, validateRecipeArtifactPackage, } from './artifact.js';
2
- export { BUILT_IN_UI_OBSERVERS, isRecord, OFFICIAL_RECIPE_ACTIONS, RECIPE_PLAYBACK_SLOW_MS_MAX, RECIPE_PLAYBACK_SLOW_MS_MIN, RECIPE_PROTOCOL_SCHEMA_URL, RECIPE_PROTOCOL_SCHEMA_URLS, RECIPE_PROTOCOL_SCHEMA_VERSION, } from './common.js';
2
+ export { BUILT_IN_UI_OBSERVERS, isRecord, OFFICIAL_RECIPE_ACTIONS, RECIPE_PROTOCOL_SCHEMA_URL, RECIPE_PROTOCOL_SCHEMA_URLS, RECIPE_PROTOCOL_SCHEMA_VERSION, } from './common.js';
3
3
  export { recipeProtocolSchemaUrlForVersion } from './common.js';
4
- export { validateRecipeDocument, validateRecipeWithManifest, } from './document.js';
4
+ export { canonicalRecipeJson, digestRecipeDocument, resolvedRecipeArtifactPath } from './digest.js';
5
+ export { validateRecipeDocument, validateRecipeWithManifest, validateResolvedRecipeActionNode, } from './document.js';
5
6
  export { getRecipeActionManifestActionNames, validateRecipeActionManifestDocument, } from './manifest.js';
7
+ export { applyRecipeParamDefaults, validateRecipeParams, validateRecipeParamsSchema, } from './params.js';
6
8
  export { DEFAULT_UNTRUSTED_RECIPE_BLOCKED_CAPABILITIES, officialRecipeActionCapabilities, RECIPE_EXECUTION_CAPABILITIES, } from './trust.js';
7
- export { getRecipeWorkflowActions, getRecipeWorkflowNodeIds, isDynamicRecipeFlowRef, normalizeRecipeFlowRef, } from './workflow.js';
9
+ export { getRecipeCallRefs, getRecipeWorkflowActions, getRecipeWorkflowNodeIds, isDynamicRecipeRef, normalizeRecipeRef, } from './workflow.js';
8
10
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/recipe/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,4BAA4B,EAC5B,gCAAgC,EAChC,6BAA6B,GAC9B,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,qBAAqB,EAErB,QAAQ,EACR,uBAAuB,EAEvB,2BAA2B,EAC3B,2BAA2B,EAC3B,0BAA0B,EAC1B,2BAA2B,EAC3B,8BAA8B,GAkB/B,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,iCAAiC,EAAE,MAAM,aAAa,CAAC;AAChE,OAAO,EAEL,sBAAsB,EACtB,0BAA0B,GAC3B,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,kCAAkC,EAClC,oCAAoC,GACrC,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,6CAA6C,EAC7C,gCAAgC,EAChC,6BAA6B,GAS9B,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,wBAAwB,EACxB,wBAAwB,EACxB,sBAAsB,EACtB,sBAAsB,GACvB,MAAM,eAAe,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/recipe/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,4BAA4B,EAC5B,gCAAgC,EAChC,6BAA6B,GAC9B,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,qBAAqB,EAErB,QAAQ,EACR,uBAAuB,EAEvB,0BAA0B,EAC1B,2BAA2B,EAC3B,8BAA8B,GAkB/B,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,iCAAiC,EAAE,MAAM,aAAa,CAAC;AAChE,OAAO,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AACpG,OAAO,EAEL,sBAAsB,EACtB,0BAA0B,EAC1B,gCAAgC,GACjC,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,kCAAkC,EAClC,oCAAoC,GACrC,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,wBAAwB,EACxB,oBAAoB,EACpB,0BAA0B,GAC3B,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,6CAA6C,EAC7C,gCAAgC,EAChC,6BAA6B,GAS9B,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,iBAAiB,EACjB,wBAAwB,EACxB,wBAAwB,EACxB,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,eAAe,CAAC"}
@@ -1,5 +1,4 @@
1
1
  import { type RecipeValidationResult } from './common.js';
2
2
  export declare function getRecipeActionManifestActionNames(manifest: unknown): string[];
3
3
  export declare function validateRecipeActionManifestDocument(manifest: unknown): RecipeValidationResult;
4
- export declare function getRecipeActionManifestPreconditionIds(manifest: unknown): string[];
5
4
  //# sourceMappingURL=manifest.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"manifest.d.ts","sourceRoot":"","sources":["../../src/recipe/manifest.ts"],"names":[],"mappings":"AAAA,OAAO,EAUL,KAAK,sBAAsB,EAC5B,MAAM,aAAa,CAAC;AAKrB,wBAAgB,kCAAkC,CAAC,QAAQ,EAAE,OAAO,GAAG,MAAM,EAAE,CAc9E;AAuID,wBAAgB,oCAAoC,CAAC,QAAQ,EAAE,OAAO,GAAG,sBAAsB,CAud9F;AAED,wBAAgB,sCAAsC,CAAC,QAAQ,EAAE,OAAO,GAAG,MAAM,EAAE,CAKlF"}
1
+ {"version":3,"file":"manifest.d.ts","sourceRoot":"","sources":["../../src/recipe/manifest.ts"],"names":[],"mappings":"AAAA,OAAO,EAUL,KAAK,sBAAsB,EAC5B,MAAM,aAAa,CAAC;AAiBrB,wBAAgB,kCAAkC,CAAC,QAAQ,EAAE,OAAO,GAAG,MAAM,EAAE,CAc9E;AAsLD,wBAAgB,oCAAoC,CAAC,QAAQ,EAAE,OAAO,GAAG,sBAAsB,CAsc9F"}