@farmslot/protocol 0.11.1 → 0.12.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.
package/CHANGELOG.md CHANGED
@@ -2,6 +2,15 @@
2
2
 
3
3
  ## Unreleased
4
4
 
5
+ ## 0.12.0 - 2026-07-24
6
+
7
+ - Describe every Recipe v1 field for editor hover and completion help.
8
+ - **BREAKING:** Replace duplicated action-manifest lists with one strict keyed `actions` allowlist and direct copyable node examples.
9
+ - Publish the Action Manifest v1 JSON Schema for editor validation.
10
+ - Keep manifest examples, result cases, and transitions identical across runtime and JSON Schema validation.
11
+ - Reject retained traces whose node actions, intents, or artifact attribution no longer match the retained recipe and manifest.
12
+ - Reject explicit nulls and remove the ignored `requireSchemaRef` option.
13
+
5
14
  ## 0.11.1 - 2026-07-23
6
15
 
7
16
  - Fix browser consumers by replacing Node-only recipe digest and parameter helpers.
package/README.md CHANGED
@@ -46,19 +46,20 @@ import {
46
46
 
47
47
  ## Public API map
48
48
 
49
- | Import path | Use for |
50
- | -------------------------------------------------- | -------------------------------------------------------------------------------------------------------- |
51
- | `@farmslot/protocol` | Root import for common recipe validators, constants, shared contracts, RPC names, and transport helpers. |
52
- | `@farmslot/protocol/contracts` | Shared domain data contracts. |
53
- | `@farmslot/protocol/contracts/runs` | Run, run-family, evidence, and publication contracts. |
54
- | `@farmslot/protocol/contracts/slots` | Slot and slot-adjacent contracts. |
55
- | `@farmslot/protocol/rpc` | Gateway RPC method registry and typed method maps. |
56
- | `@farmslot/protocol/rpc/run` | Run RPC params/results and run method names. |
57
- | `@farmslot/protocol/recipe` | Recipe Protocol v1 validation, action vocabulary, schema URL mapping, and manifest helpers. |
58
- | `@farmslot/protocol/schemas/recipe-v1.schema.json` | Published JSON Schema for Recipe Protocol v1. |
59
- | `@farmslot/protocol/recipes/step-io` | Runner recipe artifact reference contracts. |
60
- | `@farmslot/protocol/surfaces/command-center` | Command Center client surface registry used to build safe chat context. |
61
- | `@farmslot/protocol/transport/events` | Gateway event contracts. |
49
+ | Import path | Use for |
50
+ | ----------------------------------------------------------- | -------------------------------------------------------------------------------------------------------- |
51
+ | `@farmslot/protocol` | Root import for common recipe validators, constants, shared contracts, RPC names, and transport helpers. |
52
+ | `@farmslot/protocol/contracts` | Shared domain data contracts. |
53
+ | `@farmslot/protocol/contracts/runs` | Run, run-family, evidence, and publication contracts. |
54
+ | `@farmslot/protocol/contracts/slots` | Slot and slot-adjacent contracts. |
55
+ | `@farmslot/protocol/rpc` | Gateway RPC method registry and typed method maps. |
56
+ | `@farmslot/protocol/rpc/run` | Run RPC params/results and run method names. |
57
+ | `@farmslot/protocol/recipe` | Recipe Protocol v1 validation, action vocabulary, schema URL mapping, and manifest helpers. |
58
+ | `@farmslot/protocol/schemas/recipe-v1.schema.json` | Published JSON Schema for Recipe Protocol v1. |
59
+ | `@farmslot/protocol/schemas/action-manifest-v1.schema.json` | Published JSON Schema for Action Manifest v1. |
60
+ | `@farmslot/protocol/recipes/step-io` | Runner recipe artifact reference contracts. |
61
+ | `@farmslot/protocol/surfaces/command-center` | Command Center client surface registry used to build safe chat context. |
62
+ | `@farmslot/protocol/transport/events` | Gateway event contracts. |
62
63
 
63
64
  Public subpaths are explicit and extensionless. There are no `types`, `methods`,
64
65
  or `recipe-compat` package aliases.
@@ -128,22 +129,38 @@ namespaced, for example `example.trade.place_order` or `checkout.ensure_cart`.
128
129
 
129
130
  ```ts
130
131
  import {
132
+ RECIPE_ACTION_MANIFEST_SCHEMA_URL,
131
133
  validateRecipeActionManifestDocument,
132
134
  validateRecipeWithManifest,
133
135
  type RecipeActionManifestDocument,
134
136
  } from '@farmslot/protocol';
135
137
 
136
138
  const manifest: RecipeActionManifestDocument = {
137
- runner_protocol_version: 1,
138
- action_registry_version: 1,
139
- supported_official_actions: ['command', 'wait', 'end'],
140
- custom_actions: [
141
- {
142
- name: 'example.echo',
139
+ $schema: RECIPE_ACTION_MANIFEST_SCHEMA_URL,
140
+ actions: {
141
+ end: {
142
+ description: 'Finish recipe execution.',
143
+ examples: [{ action: 'end', status: 'pass' }],
144
+ },
145
+ 'example.echo': {
143
146
  description: 'Echoes a message for adapter smoke tests.',
144
- schema: { type: 'object', required: ['message'] },
147
+ schema: {
148
+ type: 'object',
149
+ properties: { message: { type: 'string' } },
150
+ required: ['message'],
151
+ additionalProperties: false,
152
+ },
153
+ examples: [
154
+ {
155
+ action: 'example.echo',
156
+ intent: 'Echo the test message.',
157
+ message: 'hello',
158
+ next: 'done',
159
+ },
160
+ ],
161
+ execution_capabilities: [],
145
162
  },
146
- ],
163
+ },
147
164
  };
148
165
 
149
166
  const manifestResult = validateRecipeActionManifestDocument(manifest);
@@ -171,6 +188,7 @@ const result = validateRecipeArtifactPackage({
171
188
  'artifact-manifest.json',
172
189
  ],
173
190
  recipe: recipeJson,
191
+ trace: traceJson,
174
192
  recipeResolution: recipeResolutionJson,
175
193
  resolvedRecipes: resolvedRecipeDocumentsByDigest,
176
194
  });
@@ -1 +1 @@
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
+ {"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;AAUrB,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,CAqHxB;AA0bD,wBAAgB,4BAA4B,CAC1C,OAAO,EAAE,SAAS,sBAAsB,EAAE,GACzC,sBAAsB,CAMxB"}
@@ -1,7 +1,7 @@
1
1
  import { addFinding, ARTIFACT_TYPES, createContext, finishResult, isNonEmptyString, isRecord, isRelativeArtifactPath, TERMINAL_STATUSES, } from './common.js';
2
2
  import { digestRecipeDocument, resolvedRecipeArtifactPath } from './digest.js';
3
3
  import { validateRecipeDocument } from './document.js';
4
- import { getRecipeCallRefs, getRecipeWorkflowNodeIds } from './workflow.js';
4
+ import { getRecipeCallRefs, getRecipeWorkflowActionEntries, getRecipeWorkflowNodeIds, normalizeRecipeRef, } from './workflow.js';
5
5
  export function validateArtifactManifestDocument(manifest, options = {}) {
6
6
  const ctx = createContext();
7
7
  if (!isRecord(manifest)) {
@@ -156,17 +156,16 @@ export function validateRecipeArtifactPackage(input) {
156
156
  const externalRecipeIds = new Set(resolution?.dependencies.map((entry) => entry.ref) ?? []);
157
157
  if (input.recipe != null) {
158
158
  const recipeResult = validateRecipeDocument(input.recipe, {
159
- requireSchemaRef: input.requireSchemaRef === true,
160
159
  externalRecipeIds,
161
160
  });
162
161
  ctx.findings.push(...recipeResult.findings);
163
162
  }
163
+ const documents = new Map();
164
164
  if (resolution && input.recipe != null) {
165
165
  const rootDigest = digestRecipeDocument(input.recipe);
166
166
  if (resolution.root.digest !== rootDigest) {
167
167
  addFinding(ctx, 'error', 'artifact_package.root_digest_mismatch', 'recipe-resolution.json.root.digest', 'Root recipe digest does not match recipe.json.');
168
168
  }
169
- const documents = new Map();
170
169
  const expectedDigests = new Set(resolution.dependencies.map((entry) => entry.digest));
171
170
  for (const digest of Object.keys(resolvedRecipes)) {
172
171
  if (!expectedDigests.has(digest)) {
@@ -187,15 +186,145 @@ export function validateRecipeArtifactPackage(input) {
187
186
  addFinding(ctx, 'error', 'artifact_package.missing_resolved_recipe_file', dependency.artifact, `Recipe artifact package must include ${dependency.artifact}.`);
188
187
  }
189
188
  const result = validateRecipeDocument(document, {
190
- requireSchemaRef: input.requireSchemaRef === true,
191
189
  externalRecipeIds,
192
190
  });
193
191
  ctx.findings.push(...result.findings);
194
192
  }
195
193
  validateResolutionEdges(ctx, input.recipe, resolution, documents);
196
194
  }
195
+ if (input.recipe != null) {
196
+ validateTraceConsistency(ctx, input.trace, input.recipe, documents, input.manifest);
197
+ }
197
198
  return finishResult(ctx);
198
199
  }
200
+ function validateTraceConsistency(ctx, trace, rootRecipe, documents, manifest) {
201
+ const entries = traceEntries(trace);
202
+ if (!entries) {
203
+ addFinding(ctx, 'error', 'artifact_package.invalid_trace', 'trace.json', 'trace.json must be an array or an object with entries[].');
204
+ return;
205
+ }
206
+ const expected = new Map();
207
+ collectExpectedTraceNodes(rootRecipe, '', documents, expected, new Set());
208
+ const manifestArtifacts = isRecord(manifest) && Array.isArray(manifest.artifacts)
209
+ ? manifest.artifacts.filter(isRecord)
210
+ : [];
211
+ const manifestByPath = new Map(manifestArtifacts
212
+ .filter((artifact) => isNonEmptyString(artifact.path))
213
+ .map((artifact) => [String(artifact.path), artifact]));
214
+ const seen = new Set();
215
+ for (const [index, value] of entries.entries()) {
216
+ const path = `trace.json${Array.isArray(trace) ? '' : '.entries'}[${index}]`;
217
+ if (!isRecord(value)) {
218
+ addFinding(ctx, 'error', 'artifact_package.invalid_trace_entry', path, 'Trace entries must be objects.');
219
+ continue;
220
+ }
221
+ const nodeId = isNonEmptyString(value.nodeId)
222
+ ? value.nodeId
223
+ : isNonEmptyString(value.id)
224
+ ? value.id
225
+ : undefined;
226
+ if (!nodeId) {
227
+ addFinding(ctx, 'error', 'artifact_package.invalid_trace_node', path, 'Trace entries require nodeId (or id in retained fixture traces).');
228
+ continue;
229
+ }
230
+ const expectedNode = expected.get(nodeId) ?? expectedLifecycleTraceNode(nodeId, value.action, expected);
231
+ if (!expectedNode) {
232
+ addFinding(ctx, 'error', 'artifact_package.unknown_trace_node', `${path}.${isNonEmptyString(value.nodeId) ? 'nodeId' : 'id'}`, `Trace node ${nodeId} is not present in the retained recipe graph.`);
233
+ continue;
234
+ }
235
+ if (seen.has(nodeId)) {
236
+ addFinding(ctx, 'error', 'artifact_package.duplicate_trace_node', path, `Trace node ${nodeId} appears more than once.`);
237
+ }
238
+ seen.add(nodeId);
239
+ if (value.action !== expectedNode.action) {
240
+ addFinding(ctx, 'error', 'artifact_package.trace_action_mismatch', `${path}.action`, `Trace action must match recipe node ${nodeId} (${expectedNode.action}).`);
241
+ }
242
+ if (expectedNode.intent !== undefined &&
243
+ (value.intent !== undefined || value.ok !== false) &&
244
+ !traceIntentMatches(expectedNode.intent, value.intent)) {
245
+ addFinding(ctx, 'error', 'artifact_package.trace_intent_mismatch', `${path}.intent`, `Trace intent must match recipe node ${nodeId}.`);
246
+ }
247
+ if (!Array.isArray(value.artifacts))
248
+ continue;
249
+ for (const [artifactIndex, traceArtifact] of value.artifacts.entries()) {
250
+ const artifactPath = isNonEmptyString(traceArtifact)
251
+ ? traceArtifact
252
+ : isRecord(traceArtifact) && isNonEmptyString(traceArtifact.path)
253
+ ? traceArtifact.path
254
+ : undefined;
255
+ if (!artifactPath) {
256
+ addFinding(ctx, 'error', 'artifact_package.invalid_trace_artifact', `${path}.artifacts[${artifactIndex}]`, 'Trace artifacts must be relative paths or artifact objects with a path.');
257
+ continue;
258
+ }
259
+ const manifestArtifact = manifestByPath.get(artifactPath);
260
+ if (!manifestArtifact) {
261
+ addFinding(ctx, 'error', 'artifact_package.trace_artifact_missing_manifest', `${path}.artifacts[${artifactIndex}]`, `Trace artifact ${artifactPath} is missing from artifact-manifest.json.`);
262
+ continue;
263
+ }
264
+ if (isNonEmptyString(manifestArtifact.nodeId) && manifestArtifact.nodeId !== nodeId) {
265
+ addFinding(ctx, 'error', 'artifact_package.trace_artifact_node_mismatch', `${path}.artifacts[${artifactIndex}]`, `Trace artifact ${artifactPath} is attributed to ${manifestArtifact.nodeId} in artifact-manifest.json, not ${nodeId}.`);
266
+ }
267
+ if (isRecord(traceArtifact) &&
268
+ isNonEmptyString(traceArtifact.nodeId) &&
269
+ traceArtifact.nodeId !== nodeId) {
270
+ addFinding(ctx, 'error', 'artifact_package.trace_artifact_node_mismatch', `${path}.artifacts[${artifactIndex}].nodeId`, `Trace artifact ${artifactPath} must be attributed to trace node ${nodeId}.`);
271
+ }
272
+ }
273
+ }
274
+ }
275
+ function traceIntentMatches(authored, retained) {
276
+ if (retained === authored)
277
+ return true;
278
+ if (typeof retained !== 'string')
279
+ return false;
280
+ const segments = authored.split(/\{\{(?:params|outputs)\.[A-Za-z0-9_.-]+\}\}/gu);
281
+ if (segments.length === 1 || !retained.startsWith(segments[0]))
282
+ return false;
283
+ let cursor = segments[0].length;
284
+ for (const segment of segments.slice(1, -1)) {
285
+ if (!segment)
286
+ continue;
287
+ const index = retained.indexOf(segment, cursor);
288
+ if (index < 0)
289
+ return false;
290
+ cursor = index + segment.length;
291
+ }
292
+ const suffix = segments.at(-1);
293
+ return retained.endsWith(suffix) && retained.length - suffix.length >= cursor;
294
+ }
295
+ function traceEntries(trace) {
296
+ if (Array.isArray(trace))
297
+ return trace;
298
+ return isRecord(trace) && Array.isArray(trace.entries) ? trace.entries : undefined;
299
+ }
300
+ function expectedLifecycleTraceNode(nodeId, action, recipeNodes) {
301
+ if (nodeId === 'recipe-run:video' && action === 'record.video') {
302
+ return { action: 'record.video' };
303
+ }
304
+ if (nodeId === 'recipe-complete:hud' && action === 'app.hud') {
305
+ return { action: 'app.hud' };
306
+ }
307
+ const hudMatch = /^(.*):hud:(?:running|pass|fail)$/u.exec(nodeId);
308
+ return hudMatch && recipeNodes.has(hudMatch[1]) && action === 'app.hud'
309
+ ? { action: 'app.hud' }
310
+ : undefined;
311
+ }
312
+ function collectExpectedTraceNodes(recipe, prefix, documents, expected, stack) {
313
+ for (const { nodeId, action, node } of getRecipeWorkflowActionEntries(recipe)) {
314
+ const traceNodeId = `${prefix}${nodeId}`;
315
+ expected.set(traceNodeId, {
316
+ action,
317
+ ...(isNonEmptyString(node.intent) ? { intent: node.intent } : {}),
318
+ });
319
+ if (action !== 'call' || !isNonEmptyString(node.ref))
320
+ continue;
321
+ const ref = normalizeRecipeRef(node.ref);
322
+ const dependency = documents.get(ref);
323
+ if (!dependency || stack.has(ref))
324
+ continue;
325
+ collectExpectedTraceNodes(dependency, `${traceNodeId}/`, documents, expected, new Set(stack).add(ref));
326
+ }
327
+ }
199
328
  function parseRecipeResolution(ctx, value) {
200
329
  if (!isRecord(value)) {
201
330
  addFinding(ctx, 'error', 'artifact_package.missing_recipe_resolution', 'recipe-resolution.json', 'Recipe artifact package must include recipe-resolution.json.');
@@ -1 +1 @@
1
- {"version":3,"file":"artifact.js","sourceRoot":"","sources":["../../src/recipe/artifact.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EACV,cAAc,EACd,aAAa,EACb,YAAY,EACZ,gBAAgB,EAChB,QAAQ,EACR,sBAAsB,EAItB,iBAAiB,GAClB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,oBAAoB,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AAC/E,OAAO,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,wBAAwB,EAAE,MAAM,eAAe,CAAC;AAE5E,MAAM,UAAU,gCAAgC,CAC9C,QAAiB,EACjB,UAAmE,EAAE;IAErE,MAAM,GAAG,GAAG,aAAa,EAAE,CAAC;IAC5B,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QACxB,UAAU,CACR,GAAG,EACH,OAAO,EACP,oCAAoC,EACpC,GAAG,EACH,+CAA+C,CAChD,CAAC;QACF,OAAO,YAAY,CAAC,GAAG,CAAC,CAAC;IAC3B,CAAC;IAED,IAAI,QAAQ,CAAC,OAAO,KAAK,CAAC,EAAE,CAAC;QAC3B,UAAU,CACR,GAAG,EACH,OAAO,EACP,mCAAmC,EACnC,SAAS,EACT,8CAA8C,CAC/C,CAAC;IACJ,CAAC;IAED,IACE,QAAQ,CAAC,SAAS,IAAI,IAAI;QAC1B,CAAC,OAAO,QAAQ,CAAC,SAAS,KAAK,QAAQ,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,EACtF,CAAC;QACD,UAAU,CACR,GAAG,EACH,OAAO,EACP,sCAAsC,EACtC,WAAW,EACX,wDAAwD,CACzD,CAAC;IACJ,CAAC;IAED,IAAI,QAAQ,CAAC,UAAU,IAAI,IAAI,EAAE,CAAC;QAChC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;YACnC,UAAU,CACR,GAAG,EACH,OAAO,EACP,sCAAsC,EACtC,YAAY,EACZ,4CAA4C,CAC7C,CAAC;QACJ,CAAC;aAAM,IAAI,QAAQ,CAAC,UAAU,CAAC,MAAM,IAAI,IAAI,EAAE,CAAC;YAC9C,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC1C,UAAU,CACR,GAAG,EACH,OAAO,EACP,6CAA6C,EAC7C,mBAAmB,EACnB,mDAAmD,CACpD,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,MAAM,MAAM,GAAG,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC;gBAC1C,KAAK,MAAM,aAAa,IAAI,CAAC,QAAQ,EAAE,SAAS,CAAC,EAAE,CAAC;oBAClD,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC;wBAC7C,UAAU,CACR,GAAG,EACH,OAAO,EACP,mDAAmD,EACnD,qBAAqB,aAAa,EAAE,EACpC,qBAAqB,aAAa,8BAA8B,CACjE,CAAC;oBACJ,CAAC;gBACH,CAAC;gBACD,KAAK,MAAM,aAAa,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC;oBAChD,MAAM,KAAK,GAAG,MAAM,CAAC,aAAa,CAAC,CAAC;oBACpC,IAAI,KAAK,IAAI,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;wBAC/C,UAAU,CACR,GAAG,EACH,OAAO,EACP,mDAAmD,EACnD,qBAAqB,aAAa,EAAE,EACpC,qBAAqB,aAAa,iCAAiC,CACpE,CAAC;oBACJ,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,MAAM,SAAS,GAAG,QAAQ,CAAC,SAAS,CAAC;IACrC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;QAC9B,UAAU,CACR,GAAG,EACH,OAAO,EACP,qCAAqC,EACrC,WAAW,EACX,yDAAyD,CAC1D,CAAC;QACF,OAAO,YAAY,CAAC,GAAG,CAAC,CAAC;IAC3B,CAAC;IAED,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,wBAAwB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;IAClE,MAAM,eAAe,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAEtF,SAAS,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,KAAK,EAAE,EAAE;QACpC,MAAM,IAAI,GAAG,aAAa,KAAK,GAAG,CAAC;QACnC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;YACxB,UAAU,CACR,GAAG,EACH,OAAO,EACP,oCAAoC,EACpC,IAAI,EACJ,mCAAmC,CACpC,CAAC;YACF,OAAO;QACT,CAAC;QAED,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YACrC,UAAU,CACR,GAAG,EACH,OAAO,EACP,gCAAgC,EAChC,GAAG,IAAI,OAAO,EACd,2CAA2C,CAC5C,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,sBAAsB,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC3C,UAAU,CACR,GAAG,EACH,OAAO,EACP,+BAA+B,EAC/B,GAAG,IAAI,OAAO,EACd,kEAAkE,CACnE,CAAC;YACJ,CAAC;YACD,IAAI,eAAe,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC3D,UAAU,CACR,GAAG,EACH,OAAO,EACP,gCAAgC,EAChC,GAAG,IAAI,OAAO,EACd,iBAAiB,QAAQ,CAAC,IAAI,oDAAoD,CACnF,CAAC;YACJ,CAAC;QACH,CAAC;QAED,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YACrC,UAAU,CACR,GAAG,EACH,OAAO,EACP,gCAAgC,EAChC,GAAG,IAAI,OAAO,EACd,2CAA2C,CAC5C,CAAC;QACJ,CAAC;aAAM,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YAC9C,UAAU,CACR,GAAG,EACH,SAAS,EACT,gCAAgC,EAChC,GAAG,IAAI,OAAO,EACd,iBAAiB,QAAQ,CAAC,IAAI,yCAAyC,CACxE,CAAC;QACJ,CAAC;QAED,KAAK,MAAM,aAAa,IAAI,CAAC,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,UAAU,EAAE,aAAa,CAAC,EAAE,CAAC;YACvF,MAAM,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,CAAC;YACtC,IAAI,KAAK,IAAI,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;gBAC/C,UAAU,CACR,GAAG,EACH,OAAO,EACP,0CAA0C,EAC1C,GAAG,IAAI,IAAI,aAAa,EAAE,EAC1B,GAAG,aAAa,iCAAiC,CAClD,CAAC;YACJ,CAAC;QACH,CAAC;QAED,IAAI,QAAQ,CAAC,MAAM,IAAI,IAAI,EAAE,CAAC;YAC5B,IACE,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;gBAC/B,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,EACzD,CAAC;gBACD,UAAU,CACR,GAAG,EACH,OAAO,EACP,kCAAkC,EAClC,GAAG,IAAI,SAAS,EAChB,4DAA4D,CAC7D,CAAC;YACJ,CAAC;QACH,CAAC;QAED,IAAI,QAAQ,CAAC,MAAM,IAAI,IAAI,EAAE,CAAC;YAC5B,IAAI,OAAO,QAAQ,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;gBACxC,UAAU,CACR,GAAG,EACH,OAAO,EACP,kCAAkC,EAClC,GAAG,IAAI,SAAS,EAChB,uCAAuC,CACxC,CAAC;YACJ,CAAC;iBAAM,IAAI,QAAQ,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;gBAC1C,UAAU,CACR,GAAG,EACH,OAAO,EACP,kCAAkC,EAClC,GAAG,IAAI,SAAS,EAChB,mFAAmF,CACpF,CAAC;YACJ,CAAC;QACH,CAAC;QAED,IACE,QAAQ,CAAC,MAAM,IAAI,IAAI;YACvB,CAAC,OAAO,QAAQ,CAAC,MAAM,KAAK,QAAQ;gBAClC,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC;gBACjC,QAAQ,CAAC,MAAM,IAAI,CAAC,CAAC,EACvB,CAAC;YACD,UAAU,CACR,GAAG,EACH,OAAO,EACP,mCAAmC,EACnC,GAAG,IAAI,SAAS,EAChB,gDAAgD,CACjD,CAAC;QACJ,CAAC;QAED,IAAI,QAAQ,CAAC,QAAQ,IAAI,IAAI,EAAE,CAAC;YAC9B,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACjC,UAAU,CACR,GAAG,EACH,OAAO,EACP,oCAAoC,EACpC,GAAG,IAAI,WAAW,EAClB,0CAA0C,CAC3C,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,KAAK,MAAM,aAAa,IAAI,CAAC,MAAM,EAAE,SAAS,EAAE,UAAU,CAAC,EAAE,CAAC;oBAC5D,MAAM,KAAK,GAAG,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;oBAC/C,IAAI,KAAK,IAAI,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;wBAC/C,UAAU,CACR,GAAG,EACH,OAAO,EACP,0CAA0C,EAC1C,GAAG,IAAI,aAAa,aAAa,EAAE,EACnC,GAAG,aAAa,iCAAiC,CAClD,CAAC;oBACJ,CAAC;gBACH,CAAC;gBACD,IAAI,QAAQ,CAAC,QAAQ,CAAC,MAAM,IAAI,IAAI,EAAE,CAAC;oBACrC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;wBACxC,UAAU,CACR,GAAG,EACH,OAAO,EACP,2CAA2C,EAC3C,GAAG,IAAI,kBAAkB,EACzB,iDAAiD,CAClD,CAAC;oBACJ,CAAC;yBAAM,CAAC;wBACN,KAAK,MAAM,WAAW,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,EAAE,CAAC;4BAChD,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC;gCAC7D,UAAU,CACR,GAAG,EACH,OAAO,EACP,iDAAiD,EACjD,GAAG,IAAI,oBAAoB,WAAW,EAAE,EACxC,mBAAmB,WAAW,2CAA2C,CAC1E,CAAC;4BACJ,CAAC;wBACH,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAED,IAAI,OAAO,QAAQ,CAAC,MAAM,KAAK,QAAQ,IAAI,OAAO,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YAC7F,UAAU,CACR,GAAG,EACH,SAAS,EACT,gCAAgC,EAChC,GAAG,IAAI,SAAS,EAChB,8BAA8B,QAAQ,CAAC,MAAM,6CAA6C,CAC3F,CAAC;QACJ,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,YAAY,CAAC,GAAG,CAAC,CAAC;AAC3B,CAAC;AAED,MAAM,UAAU,6BAA6B,CAC3C,KAAiC;IAEjC,MAAM,GAAG,GAAG,aAAa,EAAE,CAAC;IAC5B,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,aAAa,IAAI,EAAE,CAAC,CAAC;IAEzD,IAAI,KAAK,CAAC,aAAa,IAAI,IAAI,EAAE,CAAC;QAChC,MAAM,aAAa,GAAG,CAAC,cAAc,EAAE,YAAY,CAAC,CAAC;QACrD,IAAI,KAAK,CAAC,QAAQ,IAAI,IAAI;YAAE,aAAa,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;QACzE,IAAI,KAAK,CAAC,MAAM,IAAI,IAAI;YAAE,aAAa,CAAC,IAAI,CAAC,aAAa,EAAE,wBAAwB,CAAC,CAAC;QACtF,KAAK,MAAM,YAAY,IAAI,aAAa,EAAE,CAAC;YACzC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC;gBACrC,UAAU,CACR,GAAG,EACH,OAAO,EACP,wCAAwC,EACxC,YAAY,EACZ,wCAAwC,YAAY,GAAG,CACxD,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;IAED,IAAI,KAAK,CAAC,QAAQ,IAAI,IAAI,EAAE,CAAC;QAC3B,UAAU,CACR,GAAG,EACH,OAAO,EACP,mCAAmC,EACnC,wBAAwB,EACxB,8DAA8D,CAC/D,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,MAAM,cAAc,GAAG,gCAAgC,CAAC,KAAK,CAAC,QAAQ,EAAE;YACtE,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,aAAa,EAAE,KAAK,CAAC,aAAa;SACnC,CAAC,CAAC;QACH,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAC;IAChD,CAAC;IAED,MAAM,UAAU,GACd,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC,qBAAqB,CAAC,GAAG,EAAE,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACxF,MAAM,eAAe,GAAG,KAAK,CAAC,eAAe,IAAI,EAAE,CAAC;IACpD,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAC,UAAU,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;IAE5F,IAAI,KAAK,CAAC,MAAM,IAAI,IAAI,EAAE,CAAC;QACzB,MAAM,YAAY,GAAG,sBAAsB,CAAC,KAAK,CAAC,MAAM,EAAE;YACxD,gBAAgB,EAAE,KAAK,CAAC,gBAAgB,KAAK,IAAI;YACjD,iBAAiB;SAClB,CAAC,CAAC;QACH,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC;IAC9C,CAAC;IAED,IAAI,UAAU,IAAI,KAAK,CAAC,MAAM,IAAI,IAAI,EAAE,CAAC;QACvC,MAAM,UAAU,GAAG,oBAAoB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACtD,IAAI,UAAU,CAAC,IAAI,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;YAC1C,UAAU,CACR,GAAG,EACH,OAAO,EACP,uCAAuC,EACvC,oCAAoC,EACpC,gDAAgD,CACjD,CAAC;QACJ,CAAC;QACD,MAAM,SAAS,GAAG,IAAI,GAAG,EAAmB,CAAC;QAC7C,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;QACtF,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC;YAClD,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;gBACjC,UAAU,CACR,GAAG,EACH,OAAO,EACP,6CAA6C,EAC7C,mBAAmB,MAAM,EAAE,EAC3B,mFAAmF,CACpF,CAAC;YACJ,CAAC;QACH,CAAC;QACD,KAAK,MAAM,UAAU,IAAI,UAAU,CAAC,YAAY,EAAE,CAAC;YACjD,MAAM,QAAQ,GAAG,eAAe,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;YACpD,IAAI,QAAQ,IAAI,IAAI,EAAE,CAAC;gBACrB,UAAU,CACR,GAAG,EACH,OAAO,EACP,0CAA0C,EAC1C,UAAU,CAAC,QAAQ,EACnB,wCAAwC,UAAU,CAAC,GAAG,GAAG,CAC1D,CAAC;gBACF,SAAS;YACX,CAAC;YACD,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;YACxC,IAAI,oBAAoB,CAAC,QAAQ,CAAC,KAAK,UAAU,CAAC,MAAM,EAAE,CAAC;gBACzD,UAAU,CACR,GAAG,EACH,OAAO,EACP,kDAAkD,EAClD,UAAU,CAAC,QAAQ,EACnB,mBAAmB,UAAU,CAAC,GAAG,sCAAsC,CACxE,CAAC;YACJ,CAAC;YACD,IAAI,KAAK,CAAC,aAAa,IAAI,IAAI,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC3E,UAAU,CACR,GAAG,EACH,OAAO,EACP,+CAA+C,EAC/C,UAAU,CAAC,QAAQ,EACnB,wCAAwC,UAAU,CAAC,QAAQ,GAAG,CAC/D,CAAC;YACJ,CAAC;YACD,MAAM,MAAM,GAAG,sBAAsB,CAAC,QAAQ,EAAE;gBAC9C,gBAAgB,EAAE,KAAK,CAAC,gBAAgB,KAAK,IAAI;gBACjD,iBAAiB;aAClB,CAAC,CAAC;YACH,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;QACxC,CAAC;QACD,uBAAuB,CAAC,GAAG,EAAE,KAAK,CAAC,MAAM,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;IACpE,CAAC;IAED,OAAO,YAAY,CAAC,GAAG,CAAC,CAAC;AAC3B,CAAC;AAED,SAAS,qBAAqB,CAC5B,GAAqC,EACrC,KAAc;IAEd,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QACrB,UAAU,CACR,GAAG,EACH,OAAO,EACP,4CAA4C,EAC5C,wBAAwB,EACxB,8DAA8D,CAC/D,CAAC;QACF,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,IAAI,KAAK,CAAC,cAAc,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QACxD,UAAU,CACR,GAAG,EACH,OAAO,EACP,4CAA4C,EAC5C,wBAAwB,EACxB,yEAAyE,CAC1E,CAAC;QACF,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QACtE,UAAU,CACR,GAAG,EACH,OAAO,EACP,iDAAiD,EACjD,6BAA6B,EAC7B,oEAAoE,CACrE,CAAC;QACF,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;QACtE,UAAU,CACR,GAAG,EACH,OAAO,EACP,kDAAkD,EAClD,wBAAwB,EACxB,2DAA2D,CAC5D,CAAC;QACF,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,YAAY,GAA6C,EAAE,CAAC;IAClE,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAU,CAAC;IACnC,KAAK,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,YAAY,CAAC,OAAO,EAAE,EAAE,CAAC;QAC1D,IACE,CAAC,QAAQ,CAAC,KAAK,CAAC;YAChB,CAAC,gBAAgB,CAAC,KAAK,CAAC,GAAG,CAAC;YAC5B,CAAC,gBAAgB,CAAC,KAAK,CAAC,MAAM,CAAC;YAC/B,CAAC,gBAAgB,CAAC,KAAK,CAAC,IAAI,CAAC;YAC7B,CAAC,sBAAsB,CAAC,KAAK,CAAC,IAAI,CAAC;YACnC,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC;YACvB,CAAC,sBAAsB,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC;YACrD,CAAC,KAAK,CAAC,OAAO,IAAI,IAAI,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,EAC3D,CAAC;YACD,UAAU,CACR,GAAG,EACH,OAAO,EACP,uDAAuD,EACvD,uCAAuC,KAAK,GAAG,EAC/C,2HAA2H,CAC5H,CAAC;YACF,SAAS;QACX,CAAC;QACD,IAAI,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;YAC5B,UAAU,CACR,GAAG,EACH,OAAO,EACP,kDAAkD,EAClD,uCAAuC,KAAK,OAAO,EACnD,UAAU,KAAK,CAAC,GAAG,4CAA4C,CAChE,CAAC;YACF,SAAS;QACX,CAAC;QACD,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACxB,MAAM,gBAAgB,GAAG,0BAA0B,CAAC,KAAK,CAAC,MAAM,CAAE,CAAC;QACnE,IAAI,KAAK,CAAC,QAAQ,KAAK,gBAAgB,EAAE,CAAC;YACxC,UAAU,CACR,GAAG,EACH,OAAO,EACP,qDAAqD,EACrD,uCAAuC,KAAK,YAAY,EACxD,oCAAoC,gBAAgB,GAAG,CACxD,CAAC;QACJ,CAAC;QACD,YAAY,CAAC,IAAI,CAAC;YAChB,GAAG,EAAE,KAAK,CAAC,GAAG;YACd,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,QAAQ,EAAE,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC;YAChC,GAAG,CAAC,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACzE,CAAC,CAAC;IACL,CAAC;IACD,MAAM,KAAK,GAAsC,EAAE,CAAC;IACpD,KAAK,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC;QACnD,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC;YACrF,UAAU,CACR,GAAG,EACH,OAAO,EACP,iDAAiD,EACjD,gCAAgC,KAAK,GAAG,EACxC,kEAAkE,CACnE,CAAC;YACF,SAAS;QACX,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;IACjD,CAAC;IACD,OAAO;QACL,cAAc,EAAE,CAAC;QACjB,IAAI,EAAE,EAAE,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE;QACxD,YAAY;QACZ,KAAK;KACN,CAAC;AACJ,CAAC;AAED,SAAS,uBAAuB,CAC9B,GAAqC,EACrC,IAAa,EACb,UAAoC,EACpC,SAAuC;IAEvC,MAAM,MAAM,GAAG;QACb,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC;QAC3E,GAAG,CAAC,GAAG,SAAS,CAAC,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE,EAAE,CACvD,iBAAiB,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,CACxD;KACF,CAAC;IACF,MAAM,YAAY,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;IAC1D,MAAM,UAAU,GAAG,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;IAC9C,IAAI,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,CAAC;QAChE,UAAU,CACR,GAAG,EACH,OAAO,EACP,kDAAkD,EAClD,8BAA8B,EAC9B,sFAAsF,CACvF,CAAC;IACJ,CAAC;IACD,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;IAClF,IAAI,cAAc,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QAC5C,UAAU,CACR,GAAG,EACH,OAAO,EACP,mDAAmD,EACnD,iCAAiC,EACjC,uDAAuD,CACxD,CAAC;IACJ,CAAC;IACD,KAAK,MAAM,IAAI,IAAI,UAAU,CAAC,KAAK,EAAE,CAAC;QACpC,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YACxE,UAAU,CACR,GAAG,EACH,OAAO,EACP,mDAAmD,EACnD,8BAA8B,EAC9B,qDAAqD,IAAI,CAAC,IAAI,GAAG,CAClE,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;YACjC,UAAU,CACR,GAAG,EACH,OAAO,EACP,oDAAoD,EACpD,8BAA8B,EAC9B,qDAAqD,IAAI,CAAC,EAAE,GAAG,CAChE,CAAC;QACJ,CAAC;IACH,CAAC;IACD,MAAM,SAAS,GAAG,IAAI,GAAG,EAAU,CAAC;IACpC,MAAM,KAAK,GAAG,CAAC,GAAW,EAAE,KAAkB,EAAQ,EAAE;QACtD,IAAI,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YACnB,UAAU,CACR,GAAG,EACH,OAAO,EACP,0CAA0C,EAC1C,8BAA8B,EAC9B,8CAA8C,GAAG,GAAG,CACrD,CAAC;YACF,OAAO;QACT,CAAC;QACD,IAAI,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,OAAO;QAC/B,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACnB,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC1C,KAAK,MAAM,IAAI,IAAI,UAAU,CAAC,KAAK,EAAE,CAAC;YACpC,IAAI,IAAI,CAAC,IAAI,KAAK,GAAG;gBAAE,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;QACnD,CAAC;IACH,CAAC,CAAC;IACF,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,GAAG,EAAE,CAAC,CAAC;IACtC,KAAK,MAAM,GAAG,IAAI,cAAc,EAAE,CAAC;QACjC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YACxB,UAAU,CACR,GAAG,EACH,OAAO,EACP,2DAA2D,EAC3D,qCAAqC,EACrC,mBAAmB,GAAG,yCAAyC,CAChE,CAAC;QACJ,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,OAAO,CAAC,IAAkC;IACjD,OAAO,GAAG,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,EAAE,EAAE,CAAC;AACpC,CAAC;AAED,SAAS,QAAQ,CAAC,KAAc;IAC9B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,uBAAuB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC1E,CAAC;AAED,MAAM,UAAU,4BAA4B,CAC1C,OAA0C;IAE1C,MAAM,GAAG,GAAG,aAAa,EAAE,CAAC;IAC5B,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;IACxC,CAAC;IACD,OAAO,YAAY,CAAC,GAAG,CAAC,CAAC;AAC3B,CAAC"}
1
+ {"version":3,"file":"artifact.js","sourceRoot":"","sources":["../../src/recipe/artifact.ts"],"names":[],"mappings":"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"}
@@ -4,36 +4,21 @@ export declare const RECIPE_PROTOCOL_SCHEMA_URL = "https://farmslot.io/schemas/r
4
4
  export declare const RECIPE_PROTOCOL_SCHEMA_URLS: {
5
5
  readonly 1: "https://farmslot.io/schemas/recipe-v1.schema.json";
6
6
  };
7
+ export declare const RECIPE_ACTION_MANIFEST_SCHEMA_URL = "https://farmslot.io/schemas/action-manifest-v1.schema.json";
7
8
  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"];
8
9
  export type OfficialActionName = (typeof OFFICIAL_RECIPE_ACTIONS)[number];
9
10
  export type RecipeActionName = OfficialActionName | (string & {});
10
11
  export declare const BUILT_IN_UI_OBSERVERS: readonly ["ui.screen", "ui.visible"];
11
12
  export type BuiltInUiObserverRef = (typeof BUILT_IN_UI_OBSERVERS)[number];
12
13
  export type UiObserverRef = BuiltInUiObserverRef | (string & {});
13
- export interface RecipeActionCatalogExample {
14
- description?: string;
15
- node: Record<string, unknown>;
16
- }
17
14
  export interface RecipeActionCatalogEntry {
18
- description?: string;
15
+ description: string;
19
16
  schema?: Record<string, unknown>;
20
17
  /** Finite control cases this action may return. The recipe owns their destinations. */
21
18
  result_cases?: string[];
22
- examples?: RecipeActionCatalogExample[];
19
+ examples: Record<string, unknown>[];
23
20
  /** Security-relevant effects. Discovery metadata only; runtime adapters may add but never remove capabilities. */
24
21
  execution_capabilities?: RecipeExecutionCapability[];
25
- when_to_use?: string;
26
- avoid_when?: string;
27
- proof_effect?: string;
28
- safety_notes?: string;
29
- }
30
- export interface RecipeCustomActionDeclaration extends RecipeActionCatalogEntry {
31
- name: string;
32
- owner?: string;
33
- }
34
- export interface RecipeNativeBindingDeclaration {
35
- action: RecipeActionName;
36
- implementation: string;
37
22
  }
38
23
  export interface RecipeRuntimeCapabilityDeclaration {
39
24
  capability: string;
@@ -46,19 +31,11 @@ export interface RecipeRuntimeCapabilityDeclaration {
46
31
  }
47
32
  export interface RecipeObserverDeclaration {
48
33
  ref: UiObserverRef;
49
- description: string;
50
- default_for?: RecipeActionName[];
51
- cost?: 'cheap' | 'moderate' | 'expensive' | string;
52
- redaction?: string;
34
+ default_for: RecipeActionName[];
53
35
  }
54
36
  export interface RecipeActionManifestDocument {
55
- runner_protocol_version: 1;
56
- action_registry_version: 1;
57
- supported_official_actions: OfficialActionName[];
58
- action_metadata?: Partial<Record<OfficialActionName, RecipeActionCatalogEntry>>;
59
- custom_actions?: RecipeCustomActionDeclaration[];
60
- native_bindings?: RecipeNativeBindingDeclaration[];
61
- capabilities?: RecipeRuntimeCapabilityDeclaration[];
37
+ $schema: typeof RECIPE_ACTION_MANIFEST_SCHEMA_URL;
38
+ actions: Record<string, RecipeActionCatalogEntry>;
62
39
  observers?: RecipeObserverDeclaration[];
63
40
  }
64
41
  export declare const TERMINAL_STATUSES: Set<string>;
@@ -83,13 +60,13 @@ export interface RecipeValidationResult {
83
60
  }
84
61
  export interface RecipeArtifactPackageInput {
85
62
  manifest?: unknown;
63
+ trace?: unknown;
86
64
  artifactPaths?: readonly string[];
87
65
  recipe?: unknown;
88
66
  /** Exact reachable dependency documents keyed by their sha256 digest. */
89
67
  resolvedRecipes?: Record<string, unknown>;
90
68
  /** Static dependency graph and provenance emitted as recipe-resolution.json. */
91
69
  recipeResolution?: unknown;
92
- requireSchemaRef?: boolean;
93
70
  }
94
71
  export interface RecipeResolutionDependency {
95
72
  ref: string;
@@ -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,6 +4,7 @@ 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_ACTION_MANIFEST_SCHEMA_URL = 'https://farmslot.io/schemas/action-manifest-v1.schema.json';
7
8
  export const OFFICIAL_RECIPE_ACTIONS = [
8
9
  'command',
9
10
  'wait',
@@ -85,7 +86,7 @@ export function requireStringField(ctx, document, field, path) {
85
86
  addFinding(ctx, 'error', `recipe.invalid_${field}`, path, `${path} must be a non-empty string.`);
86
87
  }
87
88
  export function validateOptionalStringField(ctx, document, field, path) {
88
- if (!hasOwn(document, field) || document[field] == null)
89
+ if (!hasOwn(document, field))
89
90
  return;
90
91
  if (isNonEmptyString(document[field]))
91
92
  return;
@@ -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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"}
@@ -1,8 +1,6 @@
1
1
  import { type RecipeValidationResult } from './common.js';
2
2
  export interface RecipeDocumentValidationOptions {
3
3
  externalRecipeIds?: ReadonlySet<string>;
4
- /** Retained for callers; Recipe v1 always requires the canonical schema ref. */
5
- requireSchemaRef?: boolean;
6
4
  skipRecipeCallResolution?: boolean;
7
5
  }
8
6
  export declare function validateResolvedRecipeActionNode(node: unknown, manifest: unknown): RecipeValidationResult;
@@ -1 +1 @@
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
+ {"version":3,"file":"document.d.ts","sourceRoot":"","sources":["../../src/recipe/document.ts"],"names":[],"mappings":"AAAA,OAAO,EASL,KAAK,sBAAsB,EAE5B,MAAM,aAAa,CAAC;AAwBrB,MAAM,WAAW,+BAA+B;IAC9C,iBAAiB,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACxC,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,CA0CxB;AAED,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,OAAO,EACf,OAAO,CAAC,EAAE,+BAA+B,GACxC,sBAAsB,CA+DxB"}
@@ -1,7 +1,7 @@
1
- import { addFinding, createContext, finishResult, hasOwn, isNonEmptyString, isRecord, RECIPE_PROTOCOL_SCHEMA_URL, requireStringField, validateOptionalStringField, } from './common.js';
1
+ import { addFinding, createContext, finishResult, hasOwn, isNonEmptyString, isRecord, RECIPE_PROTOCOL_SCHEMA_URL, validateOptionalStringField, } from './common.js';
2
2
  import { getRecipeActionManifestActionNames, validateRecipeActionManifestDocument, } from './manifest.js';
3
3
  import { validateRecipeParams, validateRecipeParamsSchema } from './params.js';
4
- import { extractWorkflow, getRecipeActionParams, getRecipeWorkflowActionEntries, validateRecipeCalls, validateWorkflowGraph, } from './workflow.js';
4
+ import { extractWorkflow, getRecipeActionParams, getRecipeWorkflowActionEntries, validateRecipeActionCases, validateRecipeCalls, validateWorkflowGraph, } from './workflow.js';
5
5
  const RECIPE_FIELDS = new Set([
6
6
  '$schema',
7
7
  'title',
@@ -49,19 +49,7 @@ export function validateRecipeWithManifest(recipe, manifest, options) {
49
49
  });
50
50
  ctx.findings.push(...paramsResult.findings.map((finding) => rebaseFinding(finding, path)));
51
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
- }
64
- }
52
+ ctx.findings.push(...validateRecipeActionCases(node, action, contract?.resultCases, path).findings);
65
53
  }
66
54
  return finishResult(ctx);
67
55
  }
@@ -82,12 +70,14 @@ export function validateRecipeDocument(recipe, options) {
82
70
  else if (recipe.$schema !== RECIPE_PROTOCOL_SCHEMA_URL) {
83
71
  addFinding(ctx, 'error', 'recipe.unsupported_schema_ref', '$schema', `Recipe $schema must equal ${RECIPE_PROTOCOL_SCHEMA_URL}.`);
84
72
  }
85
- requireStringField(ctx, recipe, 'description', 'description');
73
+ validateOptionalStringField(ctx, recipe, 'description', 'description');
86
74
  validateOptionalStringField(ctx, recipe, 'title', 'title');
87
75
  if (hasOwn(recipe, 'paramsSchema')) {
88
76
  ctx.findings.push(...validateRecipeParamsSchema(recipe.paramsSchema).findings);
89
77
  }
90
- const proofTargetIds = validateProofTargets(ctx, recipe.proofTargets);
78
+ const proofTargetIds = hasOwn(recipe, 'proofTargets')
79
+ ? validateProofTargets(ctx, recipe.proofTargets)
80
+ : new Set();
91
81
  const workflow = extractWorkflow(ctx, recipe);
92
82
  if (workflow) {
93
83
  validateWorkflowGraph(ctx, workflow);
@@ -101,8 +91,6 @@ export function validateRecipeDocument(recipe, options) {
101
91
  }
102
92
  function validateProofTargets(ctx, value) {
103
93
  const ids = new Set();
104
- if (value == null)
105
- return ids;
106
94
  if (!Array.isArray(value)) {
107
95
  addFinding(ctx, 'error', 'recipe.invalid_proof_targets', 'proofTargets', 'proofTargets must be an array.');
108
96
  return ids;
@@ -155,21 +143,12 @@ function validateProofLinks(ctx, nodes, declared) {
155
143
  }
156
144
  function manifestActionContracts(manifest) {
157
145
  const contracts = new Map();
158
- if (!isRecord(manifest))
146
+ if (!isRecord(manifest) || !isRecord(manifest.actions))
159
147
  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
- }
148
+ for (const [name, entry] of Object.entries(manifest.actions)) {
149
+ if (!isRecord(entry))
150
+ continue;
151
+ contracts.set(name, actionContract(entry));
173
152
  }
174
153
  return contracts;
175
154
  }