@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 +9 -0
- package/README.md +39 -21
- package/dist/recipe/artifact.d.ts.map +1 -1
- package/dist/recipe/artifact.js +133 -4
- package/dist/recipe/artifact.js.map +1 -1
- package/dist/recipe/common.d.ts +7 -30
- package/dist/recipe/common.d.ts.map +1 -1
- package/dist/recipe/common.js +2 -1
- package/dist/recipe/common.js.map +1 -1
- package/dist/recipe/document.d.ts +0 -2
- package/dist/recipe/document.d.ts.map +1 -1
- package/dist/recipe/document.js +12 -33
- package/dist/recipe/document.js.map +1 -1
- package/dist/recipe/index.d.ts +1 -1
- package/dist/recipe/index.d.ts.map +1 -1
- package/dist/recipe/index.js +1 -1
- package/dist/recipe/index.js.map +1 -1
- package/dist/recipe/manifest.d.ts.map +1 -1
- package/dist/recipe/manifest.js +102 -253
- package/dist/recipe/manifest.js.map +1 -1
- package/dist/recipe/params.js +15 -15
- package/dist/recipe/params.js.map +1 -1
- package/dist/recipe/trust.d.ts +3 -1
- package/dist/recipe/trust.d.ts.map +1 -1
- package/dist/recipe/trust.js.map +1 -1
- package/dist/recipe/workflow.d.ts +3 -1
- package/dist/recipe/workflow.d.ts.map +1 -1
- package/dist/recipe/workflow.js +32 -7
- package/dist/recipe/workflow.js.map +1 -1
- package/package.json +2 -1
- package/schemas/action-manifest-v1.schema.json +441 -0
- package/schemas/recipe-v1.schema.json +140 -35
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
|
|
50
|
-
|
|
|
51
|
-
| `@farmslot/protocol`
|
|
52
|
-
| `@farmslot/protocol/contracts`
|
|
53
|
-
| `@farmslot/protocol/contracts/runs`
|
|
54
|
-
| `@farmslot/protocol/contracts/slots`
|
|
55
|
-
| `@farmslot/protocol/rpc`
|
|
56
|
-
| `@farmslot/protocol/rpc/run`
|
|
57
|
-
| `@farmslot/protocol/recipe`
|
|
58
|
-
| `@farmslot/protocol/schemas/recipe-v1.schema.json`
|
|
59
|
-
| `@farmslot/protocol/
|
|
60
|
-
| `@farmslot/protocol/
|
|
61
|
-
| `@farmslot/protocol/
|
|
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
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
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: {
|
|
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;
|
|
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"}
|
package/dist/recipe/artifact.js
CHANGED
|
@@ -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":"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"}
|
|
1
|
+
{"version":3,"file":"artifact.js","sourceRoot":"","sources":["../../src/recipe/artifact.ts"],"names":[],"mappings":"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"}
|
package/dist/recipe/common.d.ts
CHANGED
|
@@ -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
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
56
|
-
|
|
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":"AAEA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,YAAY,CAAC;AAE5D,eAAO,MAAM,8BAA8B,IAAI,CAAC;AAChD,eAAO,MAAM,0BAA0B,sDAAsD,CAAC;AAC9F,eAAO,MAAM,2BAA2B;;CAE9B,CAAC;
|
|
1
|
+
{"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../src/recipe/common.ts"],"names":[],"mappings":"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"}
|
package/dist/recipe/common.js
CHANGED
|
@@ -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)
|
|
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":"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;
|
|
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,
|
|
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"}
|
package/dist/recipe/document.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { addFinding, createContext, finishResult, hasOwn, isNonEmptyString, isRecord, RECIPE_PROTOCOL_SCHEMA_URL,
|
|
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
|
-
|
|
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
|
-
|
|
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 =
|
|
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
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
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
|
}
|