@farmslot/protocol 0.9.0 → 0.11.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +27 -2
- package/README.md +12 -4
- package/dist/agents/roles.js +2 -2
- package/dist/agents/roles.js.map +1 -1
- package/dist/contracts/agents.d.ts +7 -0
- package/dist/contracts/agents.d.ts.map +1 -1
- package/dist/contracts/backlog.d.ts +11 -0
- package/dist/contracts/backlog.d.ts.map +1 -1
- package/dist/contracts/backlog.js.map +1 -1
- package/dist/contracts/bug-input.d.ts +8 -0
- package/dist/contracts/bug-input.d.ts.map +1 -1
- package/dist/contracts/bug-input.js +14 -2
- package/dist/contracts/bug-input.js.map +1 -1
- package/dist/contracts/bug-score.d.ts +73 -0
- package/dist/contracts/bug-score.d.ts.map +1 -0
- package/dist/contracts/bug-score.js +208 -0
- package/dist/contracts/bug-score.js.map +1 -0
- package/dist/contracts/dispatch.d.ts +5 -1
- package/dist/contracts/dispatch.d.ts.map +1 -1
- package/dist/contracts/index.d.ts +1 -0
- package/dist/contracts/index.d.ts.map +1 -1
- package/dist/contracts/index.js +1 -0
- package/dist/contracts/index.js.map +1 -1
- package/dist/contracts/recipes.js +1 -1
- package/dist/contracts/recipes.js.map +1 -1
- package/dist/contracts/reviews.d.ts +2 -1
- package/dist/contracts/reviews.d.ts.map +1 -1
- package/dist/contracts/reviews.js.map +1 -1
- package/dist/contracts/runs.d.ts +51 -3
- package/dist/contracts/runs.d.ts.map +1 -1
- package/dist/contracts/runs.js +42 -2
- package/dist/contracts/runs.js.map +1 -1
- package/dist/contracts/slots.d.ts +11 -0
- package/dist/contracts/slots.d.ts.map +1 -1
- package/dist/contracts/slots.js +11 -0
- package/dist/contracts/slots.js.map +1 -1
- package/dist/contracts/work-graph.d.ts +1 -1
- package/dist/contracts/work-graph.d.ts.map +1 -1
- package/dist/integrations/github-ref.js +1 -1
- package/dist/integrations/github-ref.js.map +1 -1
- package/dist/recipe/artifact.d.ts.map +1 -1
- package/dist/recipe/artifact.js +153 -20
- package/dist/recipe/artifact.js.map +1 -1
- package/dist/recipe/common.d.ts +30 -36
- package/dist/recipe/common.d.ts.map +1 -1
- package/dist/recipe/common.js +0 -3
- package/dist/recipe/common.js.map +1 -1
- package/dist/recipe/digest.d.ts +5 -0
- package/dist/recipe/digest.d.ts.map +1 -0
- package/dist/recipe/digest.js +25 -0
- package/dist/recipe/digest.js.map +1 -0
- package/dist/recipe/document.d.ts +4 -20
- package/dist/recipe/document.d.ts.map +1 -1
- package/dist/recipe/document.js +160 -123
- package/dist/recipe/document.js.map +1 -1
- package/dist/recipe/index.d.ts +6 -3
- package/dist/recipe/index.d.ts.map +1 -1
- package/dist/recipe/index.js +6 -3
- package/dist/recipe/index.js.map +1 -1
- package/dist/recipe/manifest.d.ts +0 -1
- package/dist/recipe/manifest.d.ts.map +1 -1
- package/dist/recipe/manifest.js +82 -45
- package/dist/recipe/manifest.js.map +1 -1
- package/dist/recipe/params.d.ts +9 -0
- package/dist/recipe/params.d.ts.map +1 -0
- package/dist/recipe/params.js +261 -0
- package/dist/recipe/params.js.map +1 -0
- package/dist/recipe/trust.d.ts +47 -0
- package/dist/recipe/trust.d.ts.map +1 -0
- package/dist/recipe/trust.js +63 -0
- package/dist/recipe/trust.js.map +1 -0
- package/dist/recipe/workflow.d.ts +13 -27
- package/dist/recipe/workflow.d.ts.map +1 -1
- package/dist/recipe/workflow.js +201 -497
- package/dist/recipe/workflow.js.map +1 -1
- package/dist/rpc/dispatch.d.ts +9 -1
- package/dist/rpc/dispatch.d.ts.map +1 -1
- package/dist/rpc/registry.d.ts +5 -0
- package/dist/rpc/registry.d.ts.map +1 -1
- package/dist/rpc/registry.js +5 -0
- package/dist/rpc/registry.js.map +1 -1
- package/dist/rpc/run.d.ts +11 -1
- package/dist/rpc/run.d.ts.map +1 -1
- package/dist/rpc/slot.d.ts +53 -1
- package/dist/rpc/slot.d.ts.map +1 -1
- package/dist/rpc/slot.js +5 -0
- package/dist/rpc/slot.js.map +1 -1
- package/dist/rpc/tmux.d.ts +1 -1
- package/dist/rpc/tmux.d.ts.map +1 -1
- package/dist/runs/family-iteration-ledger.js +2 -2
- package/dist/runs/family-iteration-ledger.js.map +1 -1
- package/dist/runs/run-mode.d.ts +1 -1
- package/dist/runs/run-mode.js +2 -2
- package/dist/runs/run-mode.js.map +1 -1
- package/dist/transport/events.d.ts +2 -0
- package/dist/transport/events.d.ts.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.d.ts.map +1 -1
- package/dist/version.js +1 -1
- package/dist/version.js.map +1 -1
- package/package.json +1 -1
- package/schemas/recipe-v1.schema.json +119 -197
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
export const RECIPE_EXECUTION_CAPABILITIES = [
|
|
2
|
+
'host-exec',
|
|
3
|
+
'host-read-export',
|
|
4
|
+
'app-mutation',
|
|
5
|
+
'external-mutation',
|
|
6
|
+
'arbitrary-code',
|
|
7
|
+
];
|
|
8
|
+
export const DEFAULT_UNTRUSTED_RECIPE_BLOCKED_CAPABILITIES = [
|
|
9
|
+
'host-exec',
|
|
10
|
+
'host-read-export',
|
|
11
|
+
'app-mutation',
|
|
12
|
+
'external-mutation',
|
|
13
|
+
'arbitrary-code',
|
|
14
|
+
];
|
|
15
|
+
const HOST_READ_EXPORT_ACTIONS = new Set([
|
|
16
|
+
'assert_file',
|
|
17
|
+
'assert_json',
|
|
18
|
+
'state_read',
|
|
19
|
+
'watch_logs',
|
|
20
|
+
'ui.screenshot',
|
|
21
|
+
'ui.wait_for',
|
|
22
|
+
'app.status',
|
|
23
|
+
'app.trace',
|
|
24
|
+
'cdp.target',
|
|
25
|
+
'cdp.storage',
|
|
26
|
+
'cdp.network',
|
|
27
|
+
'cdp.metrics',
|
|
28
|
+
'cdp.trace',
|
|
29
|
+
]);
|
|
30
|
+
const APP_MUTATION_ACTIONS = new Set([
|
|
31
|
+
'ui.navigate',
|
|
32
|
+
'ui.press',
|
|
33
|
+
'ui.key_press',
|
|
34
|
+
'ui.set_input',
|
|
35
|
+
'ui.scroll',
|
|
36
|
+
'ui.gesture',
|
|
37
|
+
'app.lifecycle',
|
|
38
|
+
'app.hud',
|
|
39
|
+
'cdp.storage',
|
|
40
|
+
'cdp.network',
|
|
41
|
+
'cdp.emulation',
|
|
42
|
+
]);
|
|
43
|
+
const EXTERNAL_MUTATION_ACTIONS = new Set([
|
|
44
|
+
'ui.press',
|
|
45
|
+
'ui.key_press',
|
|
46
|
+
'ui.gesture',
|
|
47
|
+
'cdp.network',
|
|
48
|
+
]);
|
|
49
|
+
export function officialRecipeActionCapabilities(action) {
|
|
50
|
+
if (action === 'command')
|
|
51
|
+
return ['host-exec'];
|
|
52
|
+
if (action === 'index_artifacts')
|
|
53
|
+
return ['host-read-export'];
|
|
54
|
+
const capabilities = [];
|
|
55
|
+
if (HOST_READ_EXPORT_ACTIONS.has(action))
|
|
56
|
+
capabilities.push('host-read-export');
|
|
57
|
+
if (APP_MUTATION_ACTIONS.has(action))
|
|
58
|
+
capabilities.push('app-mutation');
|
|
59
|
+
if (EXTERNAL_MUTATION_ACTIONS.has(action))
|
|
60
|
+
capabilities.push('external-mutation');
|
|
61
|
+
return capabilities;
|
|
62
|
+
}
|
|
63
|
+
//# sourceMappingURL=trust.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"trust.js","sourceRoot":"","sources":["../../src/recipe/trust.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,6BAA6B,GAAG;IAC3C,WAAW;IACX,kBAAkB;IAClB,cAAc;IACd,mBAAmB;IACnB,gBAAgB;CACR,CAAC;AAwDX,MAAM,CAAC,MAAM,6CAA6C,GAAG;IAC3D,WAAW;IACX,kBAAkB;IAClB,cAAc;IACd,mBAAmB;IACnB,gBAAgB;CACuC,CAAC;AAE1D,MAAM,wBAAwB,GAAG,IAAI,GAAG,CAAqB;IAC3D,aAAa;IACb,aAAa;IACb,YAAY;IACZ,YAAY;IACZ,eAAe;IACf,aAAa;IACb,YAAY;IACZ,WAAW;IACX,YAAY;IACZ,aAAa;IACb,aAAa;IACb,aAAa;IACb,WAAW;CACZ,CAAC,CAAC;AAEH,MAAM,oBAAoB,GAAG,IAAI,GAAG,CAAqB;IACvD,aAAa;IACb,UAAU;IACV,cAAc;IACd,cAAc;IACd,WAAW;IACX,YAAY;IACZ,eAAe;IACf,SAAS;IACT,aAAa;IACb,aAAa;IACb,eAAe;CAChB,CAAC,CAAC;AAEH,MAAM,yBAAyB,GAAG,IAAI,GAAG,CAAqB;IAC5D,UAAU;IACV,cAAc;IACd,YAAY;IACZ,aAAa;CACd,CAAC,CAAC;AAEH,MAAM,UAAU,gCAAgC,CAC9C,MAA0B;IAE1B,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,CAAC,WAAW,CAAC,CAAC;IAC/C,IAAI,MAAM,KAAK,iBAAiB;QAAE,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAC9D,MAAM,YAAY,GAAgC,EAAE,CAAC;IACrD,IAAI,wBAAwB,CAAC,GAAG,CAAC,MAAM,CAAC;QAAE,YAAY,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;IAChF,IAAI,oBAAoB,CAAC,GAAG,CAAC,MAAM,CAAC;QAAE,YAAY,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IACxE,IAAI,yBAAyB,CAAC,GAAG,CAAC,MAAM,CAAC;QAAE,YAAY,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;IAClF,OAAO,YAAY,CAAC;AACtB,CAAC"}
|
|
@@ -1,40 +1,26 @@
|
|
|
1
1
|
import { type MutableValidationContext } from './common.js';
|
|
2
|
-
interface WorkflowGraph {
|
|
2
|
+
export interface WorkflowGraph {
|
|
3
3
|
entry: string;
|
|
4
4
|
nodes: Record<string, Record<string, unknown>>;
|
|
5
|
-
|
|
5
|
+
teardown?: string;
|
|
6
6
|
}
|
|
7
|
-
interface
|
|
7
|
+
export interface WorkflowActionEntry {
|
|
8
|
+
nodeId: string;
|
|
9
|
+
action: string;
|
|
8
10
|
node: Record<string, unknown>;
|
|
9
11
|
path: string;
|
|
10
12
|
}
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
}
|
|
13
|
+
export declare function normalizeRecipeRef(value: string): string;
|
|
14
|
+
export declare function isDynamicRecipeRef(value: string): boolean;
|
|
15
|
+
export declare function getRecipeActionParams(node: Record<string, unknown>): Record<string, unknown>;
|
|
15
16
|
export declare function extractWorkflow(ctx: MutableValidationContext, recipe: Record<string, unknown>): WorkflowGraph | null;
|
|
16
|
-
export declare function validateWorkflowGraph(ctx: MutableValidationContext, workflow: WorkflowGraph
|
|
17
|
+
export declare function validateWorkflowGraph(ctx: MutableValidationContext, workflow: WorkflowGraph): void;
|
|
17
18
|
export declare function getRecipeWorkflowNodeIds(recipe: unknown): string[];
|
|
19
|
+
export declare function getRecipeCallRefs(recipe: unknown): string[];
|
|
18
20
|
export declare function getRecipeWorkflowActions(recipe: unknown): string[];
|
|
19
|
-
export declare function getRecipeWorkflowActionEntries(recipe: unknown):
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
path: string;
|
|
23
|
-
}>;
|
|
24
|
-
export declare function validateInlineFlows(ctx: MutableValidationContext, recipe: Record<string, unknown>): void;
|
|
25
|
-
export declare function validateWorkflowPreconditions(ctx: MutableValidationContext, workflow: Record<string, unknown>): void;
|
|
26
|
-
export declare function getRecipeWorkflowPreconditionEntries(recipe: unknown): RecipePreconditionGate[];
|
|
27
|
-
export declare function validateFlowCalls(ctx: MutableValidationContext, recipe: Record<string, unknown>, workflow: WorkflowGraph, options?: {
|
|
28
|
-
externalFlowIds?: ReadonlySet<string>;
|
|
29
|
-
/** Skip `call.ref` resolution (unresolved_call_ref) only; shape checks still run. */
|
|
21
|
+
export declare function getRecipeWorkflowActionEntries(recipe: unknown): WorkflowActionEntry[];
|
|
22
|
+
export declare function validateRecipeCalls(ctx: MutableValidationContext, workflow: WorkflowGraph, options?: {
|
|
23
|
+
externalRecipeIds?: ReadonlySet<string>;
|
|
30
24
|
skipResolution?: boolean;
|
|
31
|
-
/**
|
|
32
|
-
* Whether a declared `uses` catalog counts as resolving `call.ref`s. True at
|
|
33
|
-
* authoring/run time (catalogs are loaded). False at artifact-package validation,
|
|
34
|
-
* where the catalogs are not in the package, so only inline `flows` (or a proven
|
|
35
|
-
* resolved-recipe.json) count.
|
|
36
|
-
*/
|
|
37
|
-
externalCatalogsResolvable?: boolean;
|
|
38
25
|
}): void;
|
|
39
|
-
export {};
|
|
40
26
|
//# sourceMappingURL=workflow.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workflow.d.ts","sourceRoot":"","sources":["../../src/recipe/workflow.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,KAAK,wBAAwB,
|
|
1
|
+
{"version":3,"file":"workflow.d.ts","sourceRoot":"","sources":["../../src/recipe/workflow.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,KAAK,wBAAwB,EAG9B,MAAM,aAAa,CAAC;AAIrB,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAC/C,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9B,IAAI,EAAE,MAAM,CAAC;CACd;AAkDD,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAExD;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAEzD;AAED,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAS5F;AAED,wBAAgB,eAAe,CAC7B,GAAG,EAAE,wBAAwB,EAC7B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC9B,aAAa,GAAG,IAAI,CAgFtB;AAgRD,wBAAgB,qBAAqB,CACnC,GAAG,EAAE,wBAAwB,EAC7B,QAAQ,EAAE,aAAa,GACtB,IAAI,CAiEN;AAED,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,EAAE,CAIlE;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,EAAE,CAI3D;AAED,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,EAAE,CAElE;AAED,wBAAgB,8BAA8B,CAAC,MAAM,EAAE,OAAO,GAAG,mBAAmB,EAAE,CAOrF;AAED,wBAAgB,mBAAmB,CACjC,GAAG,EAAE,wBAAwB,EAC7B,QAAQ,EAAE,aAAa,EACvB,OAAO,CAAC,EAAE;IACR,iBAAiB,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACxC,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B,GACA,IAAI,CAyBN"}
|