@farmslot/recipe-harness 0.7.0 → 0.8.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 +11 -0
- package/README.md +7 -1
- package/dist/adapters/app-lifecycle.d.ts.map +1 -1
- package/dist/adapters/app-lifecycle.js +5 -0
- package/dist/adapters/app-lifecycle.js.map +1 -1
- package/dist/adapters/core.d.ts.map +1 -1
- package/dist/adapters/core.js +17 -14
- package/dist/adapters/core.js.map +1 -1
- package/dist/adapters/ui.d.ts.map +1 -1
- package/dist/adapters/ui.js +5 -0
- package/dist/adapters/ui.js.map +1 -1
- package/dist/cli/run-command.d.ts.map +1 -1
- package/dist/cli/run-command.js +69 -25
- package/dist/cli/run-command.js.map +1 -1
- package/dist/core/compose.d.ts +2 -0
- package/dist/core/compose.d.ts.map +1 -1
- package/dist/core/compose.js +5 -3
- package/dist/core/compose.js.map +1 -1
- package/dist/core/flows.d.ts +3 -1
- package/dist/core/flows.d.ts.map +1 -1
- package/dist/core/flows.js +49 -19
- package/dist/core/flows.js.map +1 -1
- package/dist/core/library.d.ts.map +1 -1
- package/dist/core/library.js +24 -8
- package/dist/core/library.js.map +1 -1
- package/dist/core/passive-observations.d.ts.map +1 -1
- package/dist/core/passive-observations.js +2 -0
- package/dist/core/passive-observations.js.map +1 -1
- package/dist/core/path.d.ts +6 -0
- package/dist/core/path.d.ts.map +1 -0
- package/dist/core/path.js +126 -0
- package/dist/core/path.js.map +1 -0
- package/dist/core/promote.d.ts.map +1 -1
- package/dist/core/promote.js +6 -1
- package/dist/core/promote.js.map +1 -1
- package/dist/core/recording-cleanup.d.ts +1 -0
- package/dist/core/recording-cleanup.d.ts.map +1 -1
- package/dist/core/recording-cleanup.js +8 -0
- package/dist/core/recording-cleanup.js.map +1 -1
- package/dist/core/runner.d.ts.map +1 -1
- package/dist/core/runner.js +97 -21
- package/dist/core/runner.js.map +1 -1
- package/dist/core/trust-error.d.ts +9 -0
- package/dist/core/trust-error.d.ts.map +1 -0
- package/dist/core/trust-error.js +18 -0
- package/dist/core/trust-error.js.map +1 -0
- package/dist/core/trust-input.d.ts +20 -0
- package/dist/core/trust-input.d.ts.map +1 -0
- package/dist/core/trust-input.js +69 -0
- package/dist/core/trust-input.js.map +1 -0
- package/dist/core/trust.d.ts +23 -0
- package/dist/core/trust.d.ts.map +1 -0
- package/dist/core/trust.js +232 -0
- package/dist/core/trust.js.map +1 -0
- package/dist/core/types.d.ts +22 -1
- package/dist/core/types.d.ts.map +1 -1
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -1
- package/dist/node/writers.d.ts.map +1 -1
- package/dist/node/writers.js +9 -17
- package/dist/node/writers.js.map +1 -1
- package/dist/recording/cdp-video-recorder.js +2 -3
- package/dist/recording/cdp-video-recorder.js.map +1 -1
- package/dist/runtime/cdp.d.ts.map +1 -1
- package/dist/runtime/cdp.js +2 -4
- package/dist/runtime/cdp.js.map +1 -1
- package/package.json +2 -2
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { type RecipeActionManifestDocument, type RecipeExecutionCapability, type RecipeExecutionPlan, type RecipeSourceProvenance } from '@farmslot/protocol';
|
|
2
|
+
import type { InlineFlow } from './flows.js';
|
|
3
|
+
import type { WorkflowGraph } from './graph.js';
|
|
4
|
+
import type { ActionAdapter, PreconditionChecker, RecipeHudOptions, RecipeRunRequest } from './types.js';
|
|
5
|
+
export declare function recipeSourceForRequest(request: RecipeRunRequest, recipe: unknown, sourceRecipePath?: string, defaultSource?: RecipeSourceProvenance): RecipeSourceProvenance;
|
|
6
|
+
export declare function buildRecipeExecutionPlan({ recipe, source, graph, flows, adapters, preconditions, actionManifest, projectRoot, artifactsDir, env, hud, recordVideo, }: {
|
|
7
|
+
recipe: unknown;
|
|
8
|
+
source: RecipeSourceProvenance;
|
|
9
|
+
graph: WorkflowGraph;
|
|
10
|
+
flows: ReadonlyMap<string, InlineFlow>;
|
|
11
|
+
adapters: ReadonlyMap<string, ActionAdapter>;
|
|
12
|
+
preconditions: ReadonlyMap<string, PreconditionChecker>;
|
|
13
|
+
actionManifest: RecipeActionManifestDocument;
|
|
14
|
+
projectRoot: string;
|
|
15
|
+
artifactsDir: string;
|
|
16
|
+
env: Record<string, string | undefined>;
|
|
17
|
+
hud?: RecipeHudOptions | false;
|
|
18
|
+
recordVideo?: RecipeRunRequest['recordVideo'];
|
|
19
|
+
}): RecipeExecutionPlan;
|
|
20
|
+
export declare function enforceRecipeExecutionPlan(plan: RecipeExecutionPlan, request: Pick<RecipeRunRequest, 'approval'>, blockedCapabilities?: readonly RecipeExecutionCapability[]): void;
|
|
21
|
+
export declare function verifyExecutableSource(executable: Pick<ActionAdapter | PreconditionChecker, 'source' | 'resolveSourceDigest'>, label: string): Promise<void>;
|
|
22
|
+
export declare function canonicalRecipeJson(value: unknown): string;
|
|
23
|
+
//# sourceMappingURL=trust.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"trust.d.ts","sourceRoot":"","sources":["../../src/core/trust.ts"],"names":[],"mappings":"AAEA,OAAO,EAML,KAAK,4BAA4B,EACjC,KAAK,yBAAyB,EAC9B,KAAK,mBAAmB,EAExB,KAAK,sBAAsB,EAC5B,MAAM,oBAAoB,CAAC;AAE5B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhD,OAAO,KAAK,EACV,aAAa,EACb,mBAAmB,EACnB,gBAAgB,EAChB,gBAAgB,EACjB,MAAM,YAAY,CAAC;AASpB,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,gBAAgB,EACzB,MAAM,EAAE,OAAO,EACf,gBAAgB,CAAC,EAAE,MAAM,EACzB,aAAa,CAAC,EAAE,sBAAsB,GACrC,sBAAsB,CAoBxB;AAED,wBAAgB,wBAAwB,CAAC,EACvC,MAAM,EACN,MAAM,EACN,KAAK,EACL,KAAK,EACL,QAAQ,EACR,aAAa,EACb,cAAc,EACd,WAAW,EACX,YAAY,EACZ,GAAG,EACH,GAAG,EACH,WAAW,GACZ,EAAE;IACD,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,sBAAsB,CAAC;IAC/B,KAAK,EAAE,aAAa,CAAC;IACrB,KAAK,EAAE,WAAW,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IACvC,QAAQ,EAAE,WAAW,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IAC7C,aAAa,EAAE,WAAW,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;IACxD,cAAc,EAAE,4BAA4B,CAAC;IAC7C,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;IACxC,GAAG,CAAC,EAAE,gBAAgB,GAAG,KAAK,CAAC;IAC/B,WAAW,CAAC,EAAE,gBAAgB,CAAC,aAAa,CAAC,CAAC;CAC/C,GAAG,mBAAmB,CA8FtB;AAED,wBAAgB,0BAA0B,CACxC,IAAI,EAAE,mBAAmB,EACzB,OAAO,EAAE,IAAI,CAAC,gBAAgB,EAAE,UAAU,CAAC,EAC3C,mBAAmB,GAAE,SAAS,yBAAyB,EAAkD,GACxG,IAAI,CA+CN;AAED,wBAAsB,sBAAsB,CAC1C,UAAU,EAAE,IAAI,CAAC,aAAa,GAAG,mBAAmB,EAAE,QAAQ,GAAG,qBAAqB,CAAC,EACvF,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,IAAI,CAAC,CAef;AAsFD,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAS1D"}
|
|
@@ -0,0 +1,232 @@
|
|
|
1
|
+
import { createHash } from 'node:crypto';
|
|
2
|
+
import { DEFAULT_UNTRUSTED_RECIPE_BLOCKED_CAPABILITIES, normalizeRecipeFlowRef, OFFICIAL_RECIPE_ACTIONS, officialRecipeActionCapabilities, } from '@farmslot/protocol';
|
|
3
|
+
import { invalidRecipeSource, RecipeTrustError } from './trust-error.js';
|
|
4
|
+
const officialActions = new Set(OFFICIAL_RECIPE_ACTIONS);
|
|
5
|
+
const bundledSource = {
|
|
6
|
+
kind: 'bundled',
|
|
7
|
+
trust: 'trusted',
|
|
8
|
+
name: '@farmslot/recipe-harness',
|
|
9
|
+
};
|
|
10
|
+
export function recipeSourceForRequest(request, recipe, sourceRecipePath, defaultSource) {
|
|
11
|
+
const digest = digestValue(recipe);
|
|
12
|
+
const claimedDigest = request.source?.digest ?? defaultSource?.digest;
|
|
13
|
+
if (claimedDigest && claimedDigest !== digest) {
|
|
14
|
+
throw invalidRecipeSource(`Recipe source digest ${claimedDigest} does not match the loaded document.`, `use the loaded recipe digest ${digest} or omit the caller digest`);
|
|
15
|
+
}
|
|
16
|
+
const fallback = {
|
|
17
|
+
kind: request.recipeDocument == null ? 'recipe-file' : 'operator',
|
|
18
|
+
trust: 'unknown',
|
|
19
|
+
};
|
|
20
|
+
return {
|
|
21
|
+
...fallback,
|
|
22
|
+
...defaultSource,
|
|
23
|
+
...request.source,
|
|
24
|
+
...(sourceRecipePath ? { path: sourceRecipePath } : {}),
|
|
25
|
+
digest,
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
export function buildRecipeExecutionPlan({ recipe, source, graph, flows, adapters, preconditions, actionManifest, projectRoot, artifactsDir, env, hud, recordVideo, }) {
|
|
29
|
+
const nodes = [];
|
|
30
|
+
const digestNodes = [];
|
|
31
|
+
const visitedFlows = new Set();
|
|
32
|
+
const addNode = (nodeId, node, origin, invocationOrigin) => {
|
|
33
|
+
if (typeof node.action !== 'string' || !node.action.trim())
|
|
34
|
+
return;
|
|
35
|
+
const adapter = adapters.get(node.action);
|
|
36
|
+
const adapterOrigin = adapterSource(node.action, adapter);
|
|
37
|
+
const capabilities = actionCapabilities(node.action, adapter, adapterOrigin, declaredActionCapabilities(actionManifest, node.action));
|
|
38
|
+
const planNode = {
|
|
39
|
+
nodeId,
|
|
40
|
+
action: node.action,
|
|
41
|
+
capabilities,
|
|
42
|
+
origin,
|
|
43
|
+
...(invocationOrigin ? { invocationOrigin } : {}),
|
|
44
|
+
...(adapterOrigin ? { adapterOrigin } : {}),
|
|
45
|
+
};
|
|
46
|
+
nodes.push(planNode);
|
|
47
|
+
digestNodes.push({ plan: planNode, node });
|
|
48
|
+
if (node.action === 'call' && typeof node.ref === 'string') {
|
|
49
|
+
visitFlow(normalizeRecipeFlowRef(node.ref), effectiveInvocationOrigin(origin, invocationOrigin));
|
|
50
|
+
}
|
|
51
|
+
};
|
|
52
|
+
const visitFlow = (ref, invocationOrigin) => {
|
|
53
|
+
const visitKey = `${ref}:${digestValue(invocationOrigin)}`;
|
|
54
|
+
if (visitedFlows.has(visitKey))
|
|
55
|
+
return;
|
|
56
|
+
visitedFlows.add(visitKey);
|
|
57
|
+
const flow = flows.get(ref);
|
|
58
|
+
if (!flow)
|
|
59
|
+
return;
|
|
60
|
+
const origin = flow.origin ?? source;
|
|
61
|
+
for (const [nodeId, node] of Object.entries(flow.nodes)) {
|
|
62
|
+
addNode(`${ref}/${nodeId}`, node, origin, invocationOrigin);
|
|
63
|
+
}
|
|
64
|
+
};
|
|
65
|
+
for (const [nodeId, node] of Object.entries(graph.nodes))
|
|
66
|
+
addNode(nodeId, node, source);
|
|
67
|
+
for (const gate of graph.preconditions) {
|
|
68
|
+
const checker = preconditions.get(gate.id);
|
|
69
|
+
const origin = checker
|
|
70
|
+
? (checker.source ?? {
|
|
71
|
+
kind: 'custom-adapter',
|
|
72
|
+
trust: 'unknown',
|
|
73
|
+
name: `precondition:${gate.id}`,
|
|
74
|
+
})
|
|
75
|
+
: bundledSource;
|
|
76
|
+
const capabilities = checker ? (checker.capabilities ?? ['arbitrary-code']) : [];
|
|
77
|
+
const planNode = {
|
|
78
|
+
nodeId: `pre_conditions:${gate.id}`,
|
|
79
|
+
action: `precondition:${gate.id}`,
|
|
80
|
+
capabilities,
|
|
81
|
+
origin: source,
|
|
82
|
+
adapterOrigin: origin,
|
|
83
|
+
};
|
|
84
|
+
nodes.push(planNode);
|
|
85
|
+
digestNodes.push({ plan: planNode, node: { ...gate } });
|
|
86
|
+
}
|
|
87
|
+
if (hud !== false && hud?.enabled !== false && adapters.has('app.hud')) {
|
|
88
|
+
addNode('run:hud', { action: 'app.hud', automatic: true, options: hud ?? {} }, source);
|
|
89
|
+
}
|
|
90
|
+
if (recordVideo && recordVideo !== 'off') {
|
|
91
|
+
const planNode = {
|
|
92
|
+
nodeId: 'run:recording',
|
|
93
|
+
action: 'recording',
|
|
94
|
+
capabilities: ['host-read-export'],
|
|
95
|
+
origin: source,
|
|
96
|
+
adapterOrigin: bundledSource,
|
|
97
|
+
};
|
|
98
|
+
nodes.push(planNode);
|
|
99
|
+
digestNodes.push({ plan: planNode, node: { recordVideo } });
|
|
100
|
+
}
|
|
101
|
+
const executionContextDigest = digestValue({ projectRoot, artifactsDir, env });
|
|
102
|
+
const planBody = { schemaVersion: 1, executionContextDigest, source, nodes };
|
|
103
|
+
return {
|
|
104
|
+
...planBody,
|
|
105
|
+
digest: digestValue({ recipe, source, executionContextDigest, nodes: digestNodes }),
|
|
106
|
+
};
|
|
107
|
+
}
|
|
108
|
+
export function enforceRecipeExecutionPlan(plan, request, blockedCapabilities = DEFAULT_UNTRUSTED_RECIPE_BLOCKED_CAPABILITIES) {
|
|
109
|
+
for (const node of plan.nodes) {
|
|
110
|
+
if (node.capabilities.includes('arbitrary-code') &&
|
|
111
|
+
node.adapterOrigin?.trust !== 'trusted' &&
|
|
112
|
+
!node.adapterOrigin?.digest) {
|
|
113
|
+
throw invalidRecipeSource(`Custom implementation ${node.action} has no content digest.`, 'register a trusted adapter or supply provenance with a digest before approval');
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
const blockedSet = new Set(blockedCapabilities);
|
|
117
|
+
const blocked = plan.nodes.filter((node) => {
|
|
118
|
+
const untrustedRecipe = node.origin.trust !== 'trusted';
|
|
119
|
+
const untrustedInvocation = node.invocationOrigin != null && node.invocationOrigin.trust !== 'trusted';
|
|
120
|
+
const untrustedAdapter = node.adapterOrigin?.trust !== 'trusted';
|
|
121
|
+
return node.capabilities.some((capability) => blockedSet.has(capability) && (untrustedRecipe || untrustedInvocation || untrustedAdapter));
|
|
122
|
+
});
|
|
123
|
+
if (blocked.length === 0)
|
|
124
|
+
return;
|
|
125
|
+
if (request.approval?.planDigest === plan.digest)
|
|
126
|
+
return;
|
|
127
|
+
const publicBlocked = blocked.map(redactPlanNodeProvenance);
|
|
128
|
+
if (request.approval) {
|
|
129
|
+
throw new RecipeTrustError({
|
|
130
|
+
code: 'RECIPE_APPROVAL_MISMATCH',
|
|
131
|
+
message: 'Recipe approval does not match the resolved execution plan.',
|
|
132
|
+
userAction: approvalUserAction(plan.digest),
|
|
133
|
+
reason: 'approval-mismatch',
|
|
134
|
+
recipeDigest: plan.digest,
|
|
135
|
+
trust: plan.source.trust,
|
|
136
|
+
blocked: publicBlocked,
|
|
137
|
+
});
|
|
138
|
+
}
|
|
139
|
+
throw new RecipeTrustError({
|
|
140
|
+
code: 'RECIPE_TRUST_REQUIRED',
|
|
141
|
+
message: 'Untrusted recipe sources cannot execute restricted capabilities.',
|
|
142
|
+
userAction: approvalUserAction(plan.digest),
|
|
143
|
+
reason: 'blocked-capability',
|
|
144
|
+
recipeDigest: plan.digest,
|
|
145
|
+
trust: plan.source.trust,
|
|
146
|
+
blocked: publicBlocked,
|
|
147
|
+
});
|
|
148
|
+
}
|
|
149
|
+
export async function verifyExecutableSource(executable, label) {
|
|
150
|
+
if (!executable.resolveSourceDigest)
|
|
151
|
+
return;
|
|
152
|
+
if (!executable.source?.digest) {
|
|
153
|
+
throw invalidRecipeSource(`${label} has an integrity verifier but no approved source digest.`, 'resolve the implementation again and review its content digest before execution');
|
|
154
|
+
}
|
|
155
|
+
const actualDigest = await executable.resolveSourceDigest();
|
|
156
|
+
if (actualDigest !== executable.source.digest) {
|
|
157
|
+
throw invalidRecipeSource(`${label} changed after the execution plan was resolved.`, 'resolve and review a new execution plan for the current implementation bytes');
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
function approvalUserAction(planDigest) {
|
|
161
|
+
return (`review the resolved plan, then approve ${planDigest} through the trusted caller ` +
|
|
162
|
+
`(direct CLI: --approve-plan ${planDigest}; managed run: ` +
|
|
163
|
+
`FARMSLOT_RECIPE_APPROVE_PLAN=${planDigest})`);
|
|
164
|
+
}
|
|
165
|
+
function effectiveInvocationOrigin(definitionOrigin, invocationOrigin) {
|
|
166
|
+
if (invocationOrigin && invocationOrigin.trust !== 'trusted')
|
|
167
|
+
return invocationOrigin;
|
|
168
|
+
if (definitionOrigin.trust !== 'trusted')
|
|
169
|
+
return definitionOrigin;
|
|
170
|
+
return invocationOrigin ?? definitionOrigin;
|
|
171
|
+
}
|
|
172
|
+
function redactPlanNodeProvenance(node) {
|
|
173
|
+
return {
|
|
174
|
+
...node,
|
|
175
|
+
origin: redactSourceDetails(node.origin),
|
|
176
|
+
...(node.invocationOrigin
|
|
177
|
+
? { invocationOrigin: redactSourceDetails(node.invocationOrigin) }
|
|
178
|
+
: {}),
|
|
179
|
+
...(node.adapterOrigin ? { adapterOrigin: redactSourceDetails(node.adapterOrigin) } : {}),
|
|
180
|
+
};
|
|
181
|
+
}
|
|
182
|
+
function redactSourceDetails(source) {
|
|
183
|
+
const { name: _name, path: _path, ...publicSource } = source;
|
|
184
|
+
return publicSource;
|
|
185
|
+
}
|
|
186
|
+
function actionCapabilities(action, adapter, adapterOrigin, manifestCapabilities) {
|
|
187
|
+
const declared = adapter?.capabilities;
|
|
188
|
+
const official = officialActions.has(action)
|
|
189
|
+
? officialRecipeActionCapabilities(action)
|
|
190
|
+
: [];
|
|
191
|
+
const base = officialActions.has(action)
|
|
192
|
+
? [...new Set([...official, ...manifestCapabilities, ...(declared ?? [])])]
|
|
193
|
+
: declared
|
|
194
|
+
? [...new Set([...manifestCapabilities, ...declared])]
|
|
195
|
+
: action === 'call'
|
|
196
|
+
? []
|
|
197
|
+
: [...new Set(['arbitrary-code', ...manifestCapabilities])];
|
|
198
|
+
if (adapterOrigin?.trust === 'trusted' || base.includes('arbitrary-code'))
|
|
199
|
+
return [...base];
|
|
200
|
+
return [...base, 'arbitrary-code'];
|
|
201
|
+
}
|
|
202
|
+
function declaredActionCapabilities(manifest, action) {
|
|
203
|
+
const metadata = manifest.action_metadata?.[action];
|
|
204
|
+
const custom = manifest.custom_actions?.find((entry) => entry.name === action);
|
|
205
|
+
return [...(metadata?.execution_capabilities ?? []), ...(custom?.execution_capabilities ?? [])];
|
|
206
|
+
}
|
|
207
|
+
function adapterSource(action, adapter) {
|
|
208
|
+
if (action === 'call')
|
|
209
|
+
return bundledSource;
|
|
210
|
+
if (adapter?.source)
|
|
211
|
+
return adapter.source;
|
|
212
|
+
return {
|
|
213
|
+
kind: 'custom-adapter',
|
|
214
|
+
trust: 'unknown',
|
|
215
|
+
name: action,
|
|
216
|
+
};
|
|
217
|
+
}
|
|
218
|
+
function digestValue(value) {
|
|
219
|
+
return `sha256:${createHash('sha256').update(canonicalRecipeJson(value)).digest('hex')}`;
|
|
220
|
+
}
|
|
221
|
+
export function canonicalRecipeJson(value) {
|
|
222
|
+
if (Array.isArray(value))
|
|
223
|
+
return `[${value.map(canonicalRecipeJson).join(',')}]`;
|
|
224
|
+
if (value && typeof value === 'object') {
|
|
225
|
+
const entries = Object.entries(value)
|
|
226
|
+
.filter(([, entry]) => entry !== undefined)
|
|
227
|
+
.sort(([left], [right]) => (left < right ? -1 : left > right ? 1 : 0));
|
|
228
|
+
return `{${entries.map(([key, entry]) => `${JSON.stringify(key)}:${canonicalRecipeJson(entry)}`).join(',')}}`;
|
|
229
|
+
}
|
|
230
|
+
return JSON.stringify(value) ?? 'null';
|
|
231
|
+
}
|
|
232
|
+
//# sourceMappingURL=trust.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"trust.js","sourceRoot":"","sources":["../../src/core/trust.ts"],"names":[],"mappings":"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"}
|
package/dist/core/types.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { RecipeActionManifestDocument, RecipeArtifactManifestEntry, UiObserverRef } from '@farmslot/protocol';
|
|
1
|
+
import type { RecipeActionManifestDocument, RecipeArtifactManifestEntry, RecipeExecutionApproval, RecipeExecutionCapability, RecipeExecutionPlan, RecipeSourceProvenance, UiObserverRef } from '@farmslot/protocol';
|
|
2
2
|
export type RecipeRunStatus = 'pass' | 'fail' | 'unknown';
|
|
3
3
|
export type RecipeVideoRecordingMode = 'off' | 'full-run';
|
|
4
4
|
export type RecipeRecordPolicy = 'none' | 'trace_only' | 'proof_window' | 'failure_only';
|
|
@@ -8,7 +8,13 @@ export interface RecipeRunRequest {
|
|
|
8
8
|
artifactsDir: string;
|
|
9
9
|
projectRoot?: string;
|
|
10
10
|
env?: Record<string, string | undefined>;
|
|
11
|
+
/** Disable ambient process inheritance when the caller supplies the complete execution environment. */
|
|
12
|
+
inheritProcessEnv?: boolean;
|
|
11
13
|
recordVideo?: boolean | RecipeVideoRecordingMode | RecipeVideoRecordingOptions;
|
|
14
|
+
/** Provenance assigned by the caller; omitted sources receive unknown trust. */
|
|
15
|
+
source?: RecipeSourceProvenance;
|
|
16
|
+
/** Out-of-band approval bound to the fully resolved execution-plan digest. */
|
|
17
|
+
approval?: RecipeExecutionApproval;
|
|
12
18
|
/** Ordered recipe library sources; the first source declaring a flow ref wins. */
|
|
13
19
|
librarySources?: RecipeLibrarySource[];
|
|
14
20
|
}
|
|
@@ -17,11 +23,14 @@ export interface RecipeLibrarySource {
|
|
|
17
23
|
name?: string;
|
|
18
24
|
/** Library root directory containing library.json and flows/. */
|
|
19
25
|
root: string;
|
|
26
|
+
/** Trust comes from caller configuration, never from library.json. */
|
|
27
|
+
provenance?: RecipeSourceProvenance;
|
|
20
28
|
}
|
|
21
29
|
export interface LoadedRecipeLibrarySource {
|
|
22
30
|
name: string;
|
|
23
31
|
root: string;
|
|
24
32
|
flowCount: number;
|
|
33
|
+
provenance: RecipeSourceProvenance;
|
|
25
34
|
}
|
|
26
35
|
export interface RecipeFlowResolutionEntry {
|
|
27
36
|
ref: string;
|
|
@@ -62,6 +71,8 @@ export interface RecipeRunResult {
|
|
|
62
71
|
recipePath: string;
|
|
63
72
|
}
|
|
64
73
|
export interface RecipeRunner {
|
|
74
|
+
/** Resolve and authorize the exact execution plan without running actions or writing artifacts. */
|
|
75
|
+
preflight(request: RecipeRunRequest): Promise<RecipeExecutionPlan>;
|
|
65
76
|
run(request: RecipeRunRequest): Promise<RecipeRunResult>;
|
|
66
77
|
}
|
|
67
78
|
export interface RecipeLogger {
|
|
@@ -78,11 +89,15 @@ export interface RecipeRunnerProvenance {
|
|
|
78
89
|
export interface CreateRecipeRunnerOptions {
|
|
79
90
|
actionManifest: RecipeActionManifestDocument;
|
|
80
91
|
adapters: ActionAdapter[];
|
|
92
|
+
/** Caller-owned default provenance. Omit to fail closed with unknown trust. */
|
|
93
|
+
defaultSource?: RecipeSourceProvenance;
|
|
81
94
|
preconditions?: PreconditionChecker[];
|
|
82
95
|
logger?: RecipeLogger;
|
|
83
96
|
hud?: RecipeHudOptions | false;
|
|
84
97
|
runner?: RecipeRunnerProvenance;
|
|
85
98
|
recording?: RecipeRecordingOptions;
|
|
99
|
+
/** Capabilities denied when recipe or implementation provenance is not trusted. */
|
|
100
|
+
blockedCapabilities?: RecipeExecutionCapability[];
|
|
86
101
|
}
|
|
87
102
|
export interface RecipeVideoRecordingOptions {
|
|
88
103
|
mode?: RecipeVideoRecordingMode;
|
|
@@ -189,6 +204,9 @@ export interface ActionExecutionContext {
|
|
|
189
204
|
export interface ActionAdapter {
|
|
190
205
|
action: string;
|
|
191
206
|
testOnly?: boolean;
|
|
207
|
+
capabilities?: RecipeExecutionCapability[];
|
|
208
|
+
source?: RecipeSourceProvenance;
|
|
209
|
+
resolveSourceDigest?: () => Promise<string>;
|
|
192
210
|
execute(node: Record<string, unknown>, context: ActionExecutionContext): Promise<ActionResult>;
|
|
193
211
|
observe?(refs: readonly UiObserverRef[], node: Record<string, unknown>, context: ActionExecutionContext): Promise<RecipeObservationResult>;
|
|
194
212
|
}
|
|
@@ -215,6 +233,9 @@ export interface PreconditionResult {
|
|
|
215
233
|
}
|
|
216
234
|
export interface PreconditionChecker {
|
|
217
235
|
id: string;
|
|
236
|
+
capabilities?: RecipeExecutionCapability[];
|
|
237
|
+
source?: RecipeSourceProvenance;
|
|
238
|
+
resolveSourceDigest?: () => Promise<string>;
|
|
218
239
|
execute(gate: RecipePreconditionGate, context: ActionExecutionContext): Promise<PreconditionResult | boolean | undefined>;
|
|
219
240
|
}
|
|
220
241
|
export interface ArtifactWriter {
|
package/dist/core/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,4BAA4B,EAC5B,2BAA2B,EAC3B,aAAa,EACd,MAAM,oBAAoB,CAAC;AAE5B,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;AAC1D,MAAM,MAAM,wBAAwB,GAAG,KAAK,GAAG,UAAU,CAAC;AAC1D,MAAM,MAAM,kBAAkB,GAAG,MAAM,GAAG,YAAY,GAAG,cAAc,GAAG,cAAc,CAAC;AAEzF,MAAM,WAAW,gBAAgB;IAC/B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;IACzC,WAAW,CAAC,EAAE,OAAO,GAAG,wBAAwB,GAAG,2BAA2B,CAAC;IAC/E,kFAAkF;IAClF,cAAc,CAAC,EAAE,mBAAmB,EAAE,CAAC;CACxC;AAED,MAAM,WAAW,mBAAmB;IAClC,yGAAyG;IACzG,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,iEAAiE;IACjE,IAAI,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -9,6 +9,9 @@ export { defaultRecipeLibrarySources, loadRecipeLibraries, parseRecipeLibraryPat
|
|
|
9
9
|
export type { PromoteFlowRequest, PromoteFlowResult } from './core/promote.js';
|
|
10
10
|
export { promoteRecipeFlow } from './core/promote.js';
|
|
11
11
|
export { createRecipeRunner, defineActionAdapter } from './core/runner.js';
|
|
12
|
+
export { buildRecipeExecutionPlan, enforceRecipeExecutionPlan, recipeSourceForRequest, } from './core/trust.js';
|
|
13
|
+
export { RecipeTrustError } from './core/trust-error.js';
|
|
14
|
+
export { RECIPE_TRUST_ENV, resolveRecipeTrustInput } from './core/trust-input.js';
|
|
12
15
|
export type * from './core/types.js';
|
|
13
16
|
export type { CaptureHelperVideoRecorderOptions } from './recording/capture-helper.js';
|
|
14
17
|
export { createCaptureHelperVideoRecorder, errorMessage, manifestTarget, } from './recording/capture-helper.js';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,mBAAmB,EACnB,yBAAyB,EACzB,oBAAoB,EACpB,kBAAkB,EAClB,0BAA0B,EAC1B,gCAAgC,GACjC,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,yBAAyB,EAAE,0BAA0B,EAAE,MAAM,6BAA6B,CAAC;AACpG,OAAO,EAAE,0BAA0B,EAAE,MAAM,oBAAoB,CAAC;AAChE,YAAY,EACV,gBAAgB,EAChB,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,wBAAwB,EACxB,0BAA0B,EAC1B,mBAAmB,GACpB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,mBAAmB,EACnB,aAAa,EACb,KAAK,oBAAoB,EACzB,KAAK,mBAAmB,GACzB,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EAAE,uBAAuB,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACtF,OAAO,EACL,2BAA2B,EAC3B,mBAAmB,EACnB,sBAAsB,EACtB,yBAAyB,EACzB,2BAA2B,GAC5B,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAC/E,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAC3E,mBAAmB,iBAAiB,CAAC;AACrC,YAAY,EAAE,iCAAiC,EAAE,MAAM,+BAA+B,CAAC;AACvF,OAAO,EACL,gCAAgC,EAChC,YAAY,EACZ,cAAc,GACf,MAAM,+BAA+B,CAAC;AACvC,YAAY,EAAE,uBAAuB,EAAE,MAAM,mCAAmC,CAAC;AACjF,OAAO,EAAE,sBAAsB,EAAE,MAAM,mCAAmC,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,mBAAmB,EACnB,yBAAyB,EACzB,oBAAoB,EACpB,kBAAkB,EAClB,0BAA0B,EAC1B,gCAAgC,GACjC,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,yBAAyB,EAAE,0BAA0B,EAAE,MAAM,6BAA6B,CAAC;AACpG,OAAO,EAAE,0BAA0B,EAAE,MAAM,oBAAoB,CAAC;AAChE,YAAY,EACV,gBAAgB,EAChB,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,wBAAwB,EACxB,0BAA0B,EAC1B,mBAAmB,GACpB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,mBAAmB,EACnB,aAAa,EACb,KAAK,oBAAoB,EACzB,KAAK,mBAAmB,GACzB,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EAAE,uBAAuB,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACtF,OAAO,EACL,2BAA2B,EAC3B,mBAAmB,EACnB,sBAAsB,EACtB,yBAAyB,EACzB,2BAA2B,GAC5B,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAC/E,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAC3E,OAAO,EACL,wBAAwB,EACxB,0BAA0B,EAC1B,sBAAsB,GACvB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAClF,mBAAmB,iBAAiB,CAAC;AACrC,YAAY,EAAE,iCAAiC,EAAE,MAAM,+BAA+B,CAAC;AACvF,OAAO,EACL,gCAAgC,EAChC,YAAY,EACZ,cAAc,GACf,MAAM,+BAA+B,CAAC;AACvC,YAAY,EAAE,uBAAuB,EAAE,MAAM,mCAAmC,CAAC;AACjF,OAAO,EAAE,sBAAsB,EAAE,MAAM,mCAAmC,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -5,6 +5,9 @@ export { buildResolvedRecipe, composeRecipe, } from './core/compose.js';
|
|
|
5
5
|
export { defaultRecipeLibrarySources, loadRecipeLibraries, parseRecipeLibraryPath, personalRecipeLibraryRoot, resolveRecipeLibrarySources, } from './core/library.js';
|
|
6
6
|
export { promoteRecipeFlow } from './core/promote.js';
|
|
7
7
|
export { createRecipeRunner, defineActionAdapter } from './core/runner.js';
|
|
8
|
+
export { buildRecipeExecutionPlan, enforceRecipeExecutionPlan, recipeSourceForRequest, } from './core/trust.js';
|
|
9
|
+
export { RecipeTrustError } from './core/trust-error.js';
|
|
10
|
+
export { RECIPE_TRUST_ENV, resolveRecipeTrustInput } from './core/trust-input.js';
|
|
8
11
|
export { createCaptureHelperVideoRecorder, errorMessage, manifestTarget, } from './recording/capture-helper.js';
|
|
9
12
|
export { createCdpVideoRecorder } from './recording/cdp-video-recorder.js';
|
|
10
13
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,yBAAyB,EAAE,0BAA0B,EAAE,MAAM,6BAA6B,CAAC;AACpG,OAAO,EAAE,0BAA0B,EAAE,MAAM,oBAAoB,CAAC;AAOhE,OAAO,EACL,wBAAwB,EACxB,0BAA0B,EAC1B,mBAAmB,GACpB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,mBAAmB,EACnB,aAAa,GAGd,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACL,2BAA2B,EAC3B,mBAAmB,EACnB,sBAAsB,EACtB,yBAAyB,EACzB,2BAA2B,GAC5B,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,yBAAyB,EAAE,0BAA0B,EAAE,MAAM,6BAA6B,CAAC;AACpG,OAAO,EAAE,0BAA0B,EAAE,MAAM,oBAAoB,CAAC;AAOhE,OAAO,EACL,wBAAwB,EACxB,0BAA0B,EAC1B,mBAAmB,GACpB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,mBAAmB,EACnB,aAAa,GAGd,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACL,2BAA2B,EAC3B,mBAAmB,EACnB,sBAAsB,EACtB,yBAAyB,EACzB,2BAA2B,GAC5B,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAC3E,OAAO,EACL,wBAAwB,EACxB,0BAA0B,EAC1B,sBAAsB,GACvB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAGlF,OAAO,EACL,gCAAgC,EAChC,YAAY,EACZ,cAAc,GACf,MAAM,+BAA+B,CAAC;AAEvC,OAAO,EAAE,sBAAsB,EAAE,MAAM,mCAAmC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"writers.d.ts","sourceRoot":"","sources":["../../src/node/writers.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"writers.d.ts","sourceRoot":"","sources":["../../src/node/writers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,oBAAoB,CAAC;AAGtE,OAAO,KAAK,EACV,cAAc,EACd,sBAAsB,EACtB,eAAe,EACf,eAAe,EACf,aAAa,EACb,UAAU,EACV,WAAW,EACZ,MAAM,kBAAkB,CAAC;AAE1B,qBAAa,kBAAmB,YAAW,cAAc;;gBAI3C,YAAY,EAAE,MAAM;IAI1B,UAAU,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC;IAWlD;;;;;OAKG;IACG,mBAAmB,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC;IAe3D,QAAQ,CAAC,KAAK,EAAE,2BAA2B,GAAG,IAAI;IAMlD,IAAI,IAAI,2BAA2B,EAAE;IAI/B,KAAK,CAAC,MAAM,EAAE,eAAe,EAAE,MAAM,CAAC,EAAE,sBAAsB,GAAG,OAAO,CAAC,MAAM,CAAC;CAQvF;AAED,qBAAa,eAAgB,YAAW,WAAW;;gBAKrC,YAAY,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,sBAAsB;IAKjE,MAAM,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;IAI/B,IAAI,IAAI,UAAU,EAAE;IAId,KAAK,IAAI,OAAO,CAAC,MAAM,CAAC;CAO/B;AAED,qBAAa,iBAAkB,YAAW,aAAa;;gBAGzC,YAAY,EAAE,MAAM;IAI1B,KAAK,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC;CAGvD"}
|
package/dist/node/writers.js
CHANGED
|
@@ -1,6 +1,4 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import path from 'node:path';
|
|
3
|
-
import { writeJsonFile } from '../core/json.js';
|
|
1
|
+
import { writeFileWithinRoot } from '../core/path.js';
|
|
4
2
|
export class JsonArtifactWriter {
|
|
5
3
|
#artifactsDir;
|
|
6
4
|
#entries = [];
|
|
@@ -8,8 +6,7 @@ export class JsonArtifactWriter {
|
|
|
8
6
|
this.#artifactsDir = artifactsDir;
|
|
9
7
|
}
|
|
10
8
|
async copyRecipe(recipe) {
|
|
11
|
-
const recipePath =
|
|
12
|
-
await writeJsonFile(recipePath, recipe);
|
|
9
|
+
const recipePath = await writeJsonWithinRoot(this.#artifactsDir, 'recipe.json', recipe);
|
|
13
10
|
this.register({
|
|
14
11
|
path: 'recipe.json',
|
|
15
12
|
type: 'recipe',
|
|
@@ -25,8 +22,7 @@ export class JsonArtifactWriter {
|
|
|
25
22
|
* resolve without the recipe library and it validates as a complete recipe.
|
|
26
23
|
*/
|
|
27
24
|
async writeResolvedRecipe(recipe) {
|
|
28
|
-
const resolvedPath =
|
|
29
|
-
await writeJsonFile(resolvedPath, recipe);
|
|
25
|
+
const resolvedPath = await writeJsonWithinRoot(this.#artifactsDir, 'resolved-recipe.json', recipe);
|
|
30
26
|
this.register({
|
|
31
27
|
path: 'resolved-recipe.json',
|
|
32
28
|
type: 'recipe',
|
|
@@ -44,15 +40,12 @@ export class JsonArtifactWriter {
|
|
|
44
40
|
return [...this.#entries];
|
|
45
41
|
}
|
|
46
42
|
async write(status, runner) {
|
|
47
|
-
|
|
48
|
-
const manifestPath = path.join(this.#artifactsDir, 'artifact-manifest.json');
|
|
49
|
-
await writeJsonFile(manifestPath, {
|
|
43
|
+
return writeJsonWithinRoot(this.#artifactsDir, 'artifact-manifest.json', {
|
|
50
44
|
version: 1,
|
|
51
45
|
runStatus: status,
|
|
52
46
|
...(runner ? { provenance: { runner } } : {}),
|
|
53
47
|
artifacts: this.list(),
|
|
54
48
|
});
|
|
55
|
-
return manifestPath;
|
|
56
49
|
}
|
|
57
50
|
}
|
|
58
51
|
export class JsonTraceWriter {
|
|
@@ -70,9 +63,7 @@ export class JsonTraceWriter {
|
|
|
70
63
|
return [...this.#entries];
|
|
71
64
|
}
|
|
72
65
|
async write() {
|
|
73
|
-
|
|
74
|
-
await writeJsonFile(tracePath, this.#runner ? { metadata: { runner: this.#runner }, entries: this.list() } : this.list());
|
|
75
|
-
return tracePath;
|
|
66
|
+
return writeJsonWithinRoot(this.#artifactsDir, 'trace.json', this.#runner ? { metadata: { runner: this.#runner }, entries: this.list() } : this.list());
|
|
76
67
|
}
|
|
77
68
|
}
|
|
78
69
|
export class JsonSummaryWriter {
|
|
@@ -81,9 +72,10 @@ export class JsonSummaryWriter {
|
|
|
81
72
|
this.#artifactsDir = artifactsDir;
|
|
82
73
|
}
|
|
83
74
|
async write(summary) {
|
|
84
|
-
|
|
85
|
-
await writeJsonFile(summaryPath, summary);
|
|
86
|
-
return summaryPath;
|
|
75
|
+
return writeJsonWithinRoot(this.#artifactsDir, 'summary.json', summary);
|
|
87
76
|
}
|
|
88
77
|
}
|
|
78
|
+
function writeJsonWithinRoot(root, relativePath, value) {
|
|
79
|
+
return writeFileWithinRoot(root, relativePath, `${JSON.stringify(value, null, 2)}\n`);
|
|
80
|
+
}
|
|
89
81
|
//# sourceMappingURL=writers.js.map
|
package/dist/node/writers.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"writers.js","sourceRoot":"","sources":["../../src/node/writers.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"writers.js","sourceRoot":"","sources":["../../src/node/writers.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { spawn } from 'node:child_process';
|
|
2
|
-
import { mkdir, readdir, rm, stat, writeFile } from 'node:fs/promises';
|
|
2
|
+
import { mkdir, mkdtemp, readdir, rm, stat, writeFile } from 'node:fs/promises';
|
|
3
3
|
import path from 'node:path';
|
|
4
4
|
import { CdpSession, selectCdpTarget, sleep } from '../runtime/cdp.js';
|
|
5
5
|
import { errorMessage } from './capture-helper.js';
|
|
@@ -46,8 +46,7 @@ class CdpVideoRecorder {
|
|
|
46
46
|
}
|
|
47
47
|
}
|
|
48
48
|
async start(request) {
|
|
49
|
-
const framesDir = path.join(path.dirname(request.outputPath),
|
|
50
|
-
await mkdir(framesDir, { recursive: true });
|
|
49
|
+
const framesDir = await mkdtemp(path.join(path.dirname(request.outputPath), '.cdp-frames-'));
|
|
51
50
|
let frameIndex = 0;
|
|
52
51
|
let capturing = true;
|
|
53
52
|
const recordingStartedAt = Date.now();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cdp-video-recorder.js","sourceRoot":"","sources":["../../src/recording/cdp-video-recorder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"cdp-video-recorder.js","sourceRoot":"","sources":["../../src/recording/cdp-video-recorder.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cdp.d.ts","sourceRoot":"","sources":["../../src/runtime/cdp.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"cdp.d.ts","sourceRoot":"","sources":["../../src/runtime/cdp.ts"],"names":[],"mappings":"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"}
|