@farmslot/recipe-harness 0.7.0 → 0.9.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 +17 -0
- package/README.md +83 -182
- 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 +25 -46
- package/dist/adapters/core.js.map +1 -1
- package/dist/adapters/ui.d.ts +0 -2
- package/dist/adapters/ui.d.ts.map +1 -1
- package/dist/adapters/ui.js +5 -2
- package/dist/adapters/ui.js.map +1 -1
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +0 -2
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/run-command.d.ts.map +1 -1
- package/dist/cli/run-command.js +197 -32
- package/dist/cli/run-command.js.map +1 -1
- package/dist/cli/support.d.ts +5 -2
- package/dist/cli/support.d.ts.map +1 -1
- package/dist/cli/support.js +131 -25
- package/dist/cli/support.js.map +1 -1
- package/dist/cli/validate-command.d.ts.map +1 -1
- package/dist/cli/validate-command.js +4 -1
- package/dist/cli/validate-command.js.map +1 -1
- package/dist/core/compose.d.ts +21 -31
- package/dist/core/compose.d.ts.map +1 -1
- package/dist/core/compose.js +93 -125
- package/dist/core/compose.js.map +1 -1
- package/dist/core/execution.d.ts +40 -0
- package/dist/core/execution.d.ts.map +1 -0
- package/dist/core/execution.js +263 -0
- package/dist/core/execution.js.map +1 -0
- package/dist/core/graph.d.ts +4 -5
- package/dist/core/graph.d.ts.map +1 -1
- package/dist/core/graph.js +51 -103
- package/dist/core/graph.js.map +1 -1
- package/dist/core/hud.d.ts.map +1 -1
- package/dist/core/hud.js +2 -6
- package/dist/core/hud.js.map +1 -1
- package/dist/core/library.d.ts +17 -51
- package/dist/core/library.d.ts.map +1 -1
- package/dist/core/library.js +144 -155
- package/dist/core/library.js.map +1 -1
- package/dist/core/parameters.d.ts +5 -0
- package/dist/core/parameters.d.ts.map +1 -0
- package/dist/core/parameters.js +57 -0
- package/dist/core/parameters.js.map +1 -0
- package/dist/core/passive-observations.d.ts +2 -5
- package/dist/core/passive-observations.d.ts.map +1 -1
- package/dist/core/passive-observations.js +6 -40
- 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/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/resolution-error.d.ts +7 -0
- package/dist/core/resolution-error.d.ts.map +1 -0
- package/dist/core/resolution-error.js +9 -0
- package/dist/core/resolution-error.js.map +1 -0
- package/dist/core/runner.d.ts.map +1 -1
- package/dist/core/runner.js +178 -373
- package/dist/core/runner.js.map +1 -1
- package/dist/core/trace.d.ts +3 -4
- package/dist/core/trace.d.ts.map +1 -1
- package/dist/core/trace.js +3 -4
- package/dist/core/trace.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 +68 -0
- package/dist/core/trust-input.js.map +1 -0
- package/dist/core/trust.d.ts +20 -0
- package/dist/core/trust.d.ts.map +1 -0
- package/dist/core/trust.js +231 -0
- package/dist/core/trust.js.map +1 -0
- package/dist/core/types.d.ts +41 -47
- package/dist/core/types.d.ts.map +1 -1
- package/dist/index.d.ts +8 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -3
- package/dist/index.js.map +1 -1
- package/dist/node/writers.d.ts +3 -8
- package/dist/node/writers.d.ts.map +1 -1
- package/dist/node/writers.js +27 -26
- 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 +3 -7
- package/dist/runtime/cdp.js.map +1 -1
- package/package.json +2 -2
- package/dist/cli/flows-command.d.ts +0 -3
- package/dist/cli/flows-command.d.ts.map +0 -1
- package/dist/cli/flows-command.js +0 -313
- package/dist/cli/flows-command.js.map +0 -1
- package/dist/core/flows.d.ts +0 -45
- package/dist/core/flows.d.ts.map +0 -1
- package/dist/core/flows.js +0 -359
- package/dist/core/flows.js.map +0 -1
- package/dist/core/predicates.d.ts +0 -7
- package/dist/core/predicates.d.ts.map +0 -1
- package/dist/core/predicates.js +0 -102
- package/dist/core/predicates.js.map +0 -1
- package/dist/core/promote.d.ts +0 -41
- package/dist/core/promote.d.ts.map +0 -1
- package/dist/core/promote.js +0 -249
- package/dist/core/promote.js.map +0 -1
package/dist/core/types.d.ts
CHANGED
|
@@ -1,43 +1,41 @@
|
|
|
1
|
-
import type { RecipeActionManifestDocument, RecipeArtifactManifestEntry, UiObserverRef } from '@farmslot/protocol';
|
|
1
|
+
import type { RecipeActionManifestDocument, RecipeArtifactManifestEntry, RecipeExecutionApproval, RecipeExecutionCapability, RecipeExecutionPlan, RecipeResolutionDocument, RecipeSourceProvenance, UiObserverRef } from '@farmslot/protocol';
|
|
2
2
|
export type RecipeRunStatus = 'pass' | 'fail' | 'unknown';
|
|
3
3
|
export type RecipeVideoRecordingMode = 'off' | 'full-run';
|
|
4
|
-
export type RecipeRecordPolicy = 'none' | 'trace_only' | 'proof_window' | 'failure_only';
|
|
5
4
|
export interface RecipeRunRequest {
|
|
6
5
|
recipePath?: string;
|
|
7
6
|
recipeDocument?: unknown;
|
|
8
7
|
artifactsDir: string;
|
|
9
8
|
projectRoot?: string;
|
|
10
9
|
env?: Record<string, string | undefined>;
|
|
10
|
+
/** Disable ambient process inheritance when the caller supplies the complete execution environment. */
|
|
11
|
+
inheritProcessEnv?: boolean;
|
|
11
12
|
recordVideo?: boolean | RecipeVideoRecordingMode | RecipeVideoRecordingOptions;
|
|
12
|
-
/**
|
|
13
|
+
/** Provenance assigned by the caller; omitted sources receive unknown trust. */
|
|
14
|
+
source?: RecipeSourceProvenance;
|
|
15
|
+
/** Out-of-band approval bound to the fully resolved execution-plan digest. */
|
|
16
|
+
approval?: RecipeExecutionApproval;
|
|
17
|
+
/** Root recipe parameters. Defaults from paramsSchema are applied first. */
|
|
18
|
+
params?: Record<string, unknown>;
|
|
19
|
+
/** Active adapter used to select adapter-specific recipe files. */
|
|
20
|
+
adapter?: string;
|
|
21
|
+
/** Ordered recipe library sources; the first source declaring a recipe ref wins. */
|
|
13
22
|
librarySources?: RecipeLibrarySource[];
|
|
14
23
|
}
|
|
15
24
|
export interface RecipeLibrarySource {
|
|
16
25
|
/** Source name used in resolution output. Defaults to library.json name, then the directory basename. */
|
|
17
26
|
name?: string;
|
|
18
|
-
/** Library root directory containing library.json and
|
|
27
|
+
/** Library root directory containing library.json and recipes/. */
|
|
19
28
|
root: string;
|
|
29
|
+
/** Trust comes from caller configuration, never from library.json. */
|
|
30
|
+
provenance?: RecipeSourceProvenance;
|
|
20
31
|
}
|
|
21
32
|
export interface LoadedRecipeLibrarySource {
|
|
22
33
|
name: string;
|
|
23
34
|
root: string;
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
export interface RecipeFlowResolutionEntry {
|
|
27
|
-
ref: string;
|
|
28
|
-
source: string;
|
|
29
|
-
/** Catalog file path relative to the library root. */
|
|
30
|
-
file: string;
|
|
31
|
-
/** Source names that also declare this ref at lower precedence. */
|
|
32
|
-
shadows?: string[];
|
|
33
|
-
lastVerified?: string;
|
|
35
|
+
recipeCount: number;
|
|
36
|
+
provenance: RecipeSourceProvenance;
|
|
34
37
|
}
|
|
35
|
-
export interface
|
|
36
|
-
ref: string;
|
|
37
|
-
/** Library source whose declaration the recipe-local flow overrode. */
|
|
38
|
-
source: string;
|
|
39
|
-
}
|
|
40
|
-
export interface RecipeFlowShadowEntry {
|
|
38
|
+
export interface RecipeShadowEntry {
|
|
41
39
|
ref: string;
|
|
42
40
|
/** Winning source. */
|
|
43
41
|
source: string;
|
|
@@ -46,13 +44,10 @@ export interface RecipeFlowShadowEntry {
|
|
|
46
44
|
/** Source names shadowed at lower precedence. */
|
|
47
45
|
shadows: string[];
|
|
48
46
|
}
|
|
49
|
-
export interface
|
|
47
|
+
export interface RecipeLibrarySummary {
|
|
50
48
|
sources: LoadedRecipeLibrarySource[];
|
|
51
|
-
used: RecipeFlowResolutionEntry[];
|
|
52
|
-
/** Recipe-local declarations that overrode a library-provided ref. */
|
|
53
|
-
overrides: RecipeFlowOverrideEntry[];
|
|
54
49
|
/** Every cross-source shadowing in the resolution, used or not. */
|
|
55
|
-
shadowed:
|
|
50
|
+
shadowed: RecipeShadowEntry[];
|
|
56
51
|
}
|
|
57
52
|
export interface RecipeRunResult {
|
|
58
53
|
status: RecipeRunStatus;
|
|
@@ -62,6 +57,8 @@ export interface RecipeRunResult {
|
|
|
62
57
|
recipePath: string;
|
|
63
58
|
}
|
|
64
59
|
export interface RecipeRunner {
|
|
60
|
+
/** Resolve and authorize the exact execution plan without running actions or writing artifacts. */
|
|
61
|
+
preflight(request: RecipeRunRequest): Promise<RecipeExecutionPlan>;
|
|
65
62
|
run(request: RecipeRunRequest): Promise<RecipeRunResult>;
|
|
66
63
|
}
|
|
67
64
|
export interface RecipeLogger {
|
|
@@ -78,11 +75,14 @@ export interface RecipeRunnerProvenance {
|
|
|
78
75
|
export interface CreateRecipeRunnerOptions {
|
|
79
76
|
actionManifest: RecipeActionManifestDocument;
|
|
80
77
|
adapters: ActionAdapter[];
|
|
81
|
-
|
|
78
|
+
/** Caller-owned default provenance. Omit to fail closed with unknown trust. */
|
|
79
|
+
defaultSource?: RecipeSourceProvenance;
|
|
82
80
|
logger?: RecipeLogger;
|
|
83
81
|
hud?: RecipeHudOptions | false;
|
|
84
82
|
runner?: RecipeRunnerProvenance;
|
|
85
83
|
recording?: RecipeRecordingOptions;
|
|
84
|
+
/** Capabilities denied when recipe or implementation provenance is not trusted. */
|
|
85
|
+
blockedCapabilities?: RecipeExecutionCapability[];
|
|
86
86
|
}
|
|
87
87
|
export interface RecipeVideoRecordingOptions {
|
|
88
88
|
mode?: RecipeVideoRecordingMode;
|
|
@@ -126,7 +126,7 @@ export interface VideoRecorderStartRequest {
|
|
|
126
126
|
maxFps?: number;
|
|
127
127
|
maxSize?: number;
|
|
128
128
|
nodeId: string;
|
|
129
|
-
record:
|
|
129
|
+
record: 'full_run';
|
|
130
130
|
}
|
|
131
131
|
export interface ActiveVideoRecording {
|
|
132
132
|
stop(): Promise<VideoRecordingResult>;
|
|
@@ -164,8 +164,6 @@ export interface RecipeHudDisplayOptions {
|
|
|
164
164
|
width?: string;
|
|
165
165
|
}
|
|
166
166
|
export interface ActionResult {
|
|
167
|
-
status?: RecipeRunStatus;
|
|
168
|
-
next?: string;
|
|
169
167
|
case?: string;
|
|
170
168
|
output?: unknown;
|
|
171
169
|
artifacts?: RecipeArtifactManifestEntry[];
|
|
@@ -189,6 +187,9 @@ export interface ActionExecutionContext {
|
|
|
189
187
|
export interface ActionAdapter {
|
|
190
188
|
action: string;
|
|
191
189
|
testOnly?: boolean;
|
|
190
|
+
capabilities?: RecipeExecutionCapability[];
|
|
191
|
+
source?: RecipeSourceProvenance;
|
|
192
|
+
resolveSourceDigest?: () => Promise<string>;
|
|
192
193
|
execute(node: Record<string, unknown>, context: ActionExecutionContext): Promise<ActionResult>;
|
|
193
194
|
observe?(refs: readonly UiObserverRef[], node: Record<string, unknown>, context: ActionExecutionContext): Promise<RecipeObservationResult>;
|
|
194
195
|
}
|
|
@@ -201,24 +202,17 @@ export interface RecipeObservationResult {
|
|
|
201
202
|
observations?: RecipeObservations;
|
|
202
203
|
warnings?: RecipeObservationWarning[];
|
|
203
204
|
}
|
|
204
|
-
export interface
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
export interface PreconditionResult {
|
|
211
|
-
ok?: boolean;
|
|
212
|
-
output?: unknown;
|
|
213
|
-
failureKind?: string;
|
|
214
|
-
error?: string;
|
|
215
|
-
}
|
|
216
|
-
export interface PreconditionChecker {
|
|
217
|
-
id: string;
|
|
218
|
-
execute(gate: RecipePreconditionGate, context: ActionExecutionContext): Promise<PreconditionResult | boolean | undefined>;
|
|
205
|
+
export interface RecipeCallTrace {
|
|
206
|
+
ref: string;
|
|
207
|
+
digest: string;
|
|
208
|
+
source: string;
|
|
209
|
+
file: string;
|
|
210
|
+
adapter?: string;
|
|
219
211
|
}
|
|
220
212
|
export interface ArtifactWriter {
|
|
221
213
|
copyRecipe(recipe: unknown): Promise<string>;
|
|
214
|
+
copyResolvedRecipe(digest: string, recipe: unknown): Promise<string>;
|
|
215
|
+
writeRecipeResolution(resolution: RecipeResolutionDocument): Promise<string>;
|
|
222
216
|
register(entry: RecipeArtifactManifestEntry): void;
|
|
223
217
|
list(): RecipeArtifactManifestEntry[];
|
|
224
218
|
write(status: RecipeRunStatus, runner?: RecipeRunnerProvenance): Promise<string>;
|
|
@@ -226,9 +220,9 @@ export interface ArtifactWriter {
|
|
|
226
220
|
export interface TraceEntry {
|
|
227
221
|
nodeId: string;
|
|
228
222
|
action: string;
|
|
223
|
+
recipe?: RecipeCallTrace;
|
|
229
224
|
intent?: string;
|
|
230
|
-
|
|
231
|
-
record?: unknown;
|
|
225
|
+
proves?: string[];
|
|
232
226
|
startedAt: string;
|
|
233
227
|
endedAt: string;
|
|
234
228
|
durationMs: number;
|
|
@@ -263,7 +257,7 @@ export interface SummaryDocument {
|
|
|
263
257
|
};
|
|
264
258
|
runner?: RecipeRunnerProvenance;
|
|
265
259
|
/** Present when recipe library sources were configured for the run. */
|
|
266
|
-
|
|
260
|
+
recipeLibraries?: RecipeLibrarySummary;
|
|
267
261
|
}
|
|
268
262
|
export interface SummaryWriter {
|
|
269
263
|
write(summary: SummaryDocument): Promise<string>;
|
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;
|
|
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
|
@@ -3,15 +3,18 @@ export { createAppLifecycleAdapter, createAppLifecycleAdapters } from './adapter
|
|
|
3
3
|
export { createStandardCoreAdapters } from './adapters/core.js';
|
|
4
4
|
export type { StandardUiAction, UiActionTransport, UiTransportControl, UiTransportResult, } from './adapters/ui.js';
|
|
5
5
|
export { createStandardUiAdapters, normalizeUiTransportResult, STANDARD_UI_ACTIONS, } from './adapters/ui.js';
|
|
6
|
-
export {
|
|
7
|
-
export type { RecipeLibraryResolution,
|
|
8
|
-
export { defaultRecipeLibrarySources, loadRecipeLibraries, parseRecipeLibraryPath, personalRecipeLibraryRoot, resolveRecipeLibrarySources, } from './core/library.js';
|
|
9
|
-
export
|
|
10
|
-
export { promoteRecipeFlow } from './core/promote.js';
|
|
6
|
+
export { type ResolvedRecipeDependencies, resolveRecipeDependencies, rootResolutionRef, validateRecipeDependencyParams, } from './core/compose.js';
|
|
7
|
+
export type { RecipeLibraryResolution, ResolvedLibraryRecipe } from './core/library.js';
|
|
8
|
+
export { applyTaskLocalInvocationTrust, defaultRecipeLibrarySources, loadRecipeLibraries, parseRecipeLibraryPath, personalRecipeLibraryRoot, resolveRecipeLibrarySources, } from './core/library.js';
|
|
9
|
+
export { RecipeResolutionError } from './core/resolution-error.js';
|
|
11
10
|
export { createRecipeRunner, defineActionAdapter } from './core/runner.js';
|
|
11
|
+
export { buildRecipeExecutionPlan, enforceRecipeExecutionPlan, recipeSourceForRequest, } from './core/trust.js';
|
|
12
|
+
export { RecipeTrustError } from './core/trust-error.js';
|
|
13
|
+
export { RECIPE_TRUST_ENV, resolveRecipeTrustInput } from './core/trust-input.js';
|
|
12
14
|
export type * from './core/types.js';
|
|
13
15
|
export type { CaptureHelperVideoRecorderOptions } from './recording/capture-helper.js';
|
|
14
16
|
export { createCaptureHelperVideoRecorder, errorMessage, manifestTarget, } from './recording/capture-helper.js';
|
|
15
17
|
export type { CdpVideoRecorderOptions } from './recording/cdp-video-recorder.js';
|
|
16
18
|
export { createCdpVideoRecorder } from './recording/cdp-video-recorder.js';
|
|
19
|
+
export type { RecipeResolutionDependency, RecipeResolutionDocument, RecipeResolutionEdge, } from '@farmslot/protocol';
|
|
17
20
|
//# sourceMappingURL=index.d.ts.map
|
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,
|
|
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,KAAK,0BAA0B,EAC/B,yBAAyB,EACzB,iBAAiB,EACjB,8BAA8B,GAC/B,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EAAE,uBAAuB,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AACxF,OAAO,EACL,6BAA6B,EAC7B,2BAA2B,EAC3B,mBAAmB,EACnB,sBAAsB,EACtB,yBAAyB,EACzB,2BAA2B,GAC5B,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,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;AAC3E,YAAY,EACV,0BAA0B,EAC1B,wBAAwB,EACxB,oBAAoB,GACrB,MAAM,oBAAoB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,10 +1,13 @@
|
|
|
1
1
|
export { createAppLifecycleAdapter, createAppLifecycleAdapters } from './adapters/app-lifecycle.js';
|
|
2
2
|
export { createStandardCoreAdapters } from './adapters/core.js';
|
|
3
3
|
export { createStandardUiAdapters, normalizeUiTransportResult, STANDARD_UI_ACTIONS, } from './adapters/ui.js';
|
|
4
|
-
export {
|
|
5
|
-
export { defaultRecipeLibrarySources, loadRecipeLibraries, parseRecipeLibraryPath, personalRecipeLibraryRoot, resolveRecipeLibrarySources, } from './core/library.js';
|
|
6
|
-
export {
|
|
4
|
+
export { resolveRecipeDependencies, rootResolutionRef, validateRecipeDependencyParams, } from './core/compose.js';
|
|
5
|
+
export { applyTaskLocalInvocationTrust, defaultRecipeLibrarySources, loadRecipeLibraries, parseRecipeLibraryPath, personalRecipeLibraryRoot, resolveRecipeLibrarySources, } from './core/library.js';
|
|
6
|
+
export { RecipeResolutionError } from './core/resolution-error.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,
|
|
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,EAEL,yBAAyB,EACzB,iBAAiB,EACjB,8BAA8B,GAC/B,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACL,6BAA6B,EAC7B,2BAA2B,EAC3B,mBAAmB,EACnB,sBAAsB,EACtB,yBAAyB,EACzB,2BAA2B,GAC5B,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,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"}
|
package/dist/node/writers.d.ts
CHANGED
|
@@ -1,16 +1,11 @@
|
|
|
1
|
-
import type
|
|
1
|
+
import { type RecipeArtifactManifestEntry, type RecipeResolutionDocument } from '@farmslot/protocol';
|
|
2
2
|
import type { ArtifactWriter, RecipeRunnerProvenance, RecipeRunStatus, SummaryDocument, SummaryWriter, TraceEntry, TraceWriter } from '../core/types.js';
|
|
3
3
|
export declare class JsonArtifactWriter implements ArtifactWriter {
|
|
4
4
|
#private;
|
|
5
5
|
constructor(artifactsDir: string);
|
|
6
6
|
copyRecipe(recipe: unknown): Promise<string>;
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
* flow (inline + `uses` catalogs + resolved library flows, transitively)
|
|
10
|
-
* inlined under `flows`. This artifact is self-contained, so its `call.ref`s
|
|
11
|
-
* resolve without the recipe library and it validates as a complete recipe.
|
|
12
|
-
*/
|
|
13
|
-
writeResolvedRecipe(recipe: unknown): Promise<string>;
|
|
7
|
+
copyResolvedRecipe(digest: string, recipe: unknown): Promise<string>;
|
|
8
|
+
writeRecipeResolution(resolution: RecipeResolutionDocument): Promise<string>;
|
|
14
9
|
register(entry: RecipeArtifactManifestEntry): void;
|
|
15
10
|
list(): RecipeArtifactManifestEntry[];
|
|
16
11
|
write(status: RecipeRunStatus, runner?: RecipeRunnerProvenance): Promise<string>;
|
|
@@ -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,EACL,KAAK,2BAA2B,EAChC,KAAK,wBAAwB,EAE9B,MAAM,oBAAoB,CAAC;AAG5B,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;IAW5C,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC;IAapE,qBAAqB,CAAC,UAAU,EAAE,wBAAwB,GAAG,OAAO,CAAC,MAAM,CAAC;IAYlF,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,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import
|
|
3
|
-
import { writeJsonFile } from '../core/json.js';
|
|
1
|
+
import { resolvedRecipeArtifactPath, } from '@farmslot/protocol';
|
|
2
|
+
import { writeFileWithinRoot } from '../core/path.js';
|
|
4
3
|
export class JsonArtifactWriter {
|
|
5
4
|
#artifactsDir;
|
|
6
5
|
#entries = [];
|
|
@@ -8,8 +7,7 @@ export class JsonArtifactWriter {
|
|
|
8
7
|
this.#artifactsDir = artifactsDir;
|
|
9
8
|
}
|
|
10
9
|
async copyRecipe(recipe) {
|
|
11
|
-
const recipePath =
|
|
12
|
-
await writeJsonFile(recipePath, recipe);
|
|
10
|
+
const recipePath = await writeJsonWithinRoot(this.#artifactsDir, 'recipe.json', recipe);
|
|
13
11
|
this.register({
|
|
14
12
|
path: 'recipe.json',
|
|
15
13
|
type: 'recipe',
|
|
@@ -18,23 +16,30 @@ export class JsonArtifactWriter {
|
|
|
18
16
|
});
|
|
19
17
|
return recipePath;
|
|
20
18
|
}
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
*/
|
|
27
|
-
async writeResolvedRecipe(recipe) {
|
|
28
|
-
const resolvedPath = path.join(this.#artifactsDir, 'resolved-recipe.json');
|
|
29
|
-
await writeJsonFile(resolvedPath, recipe);
|
|
19
|
+
async copyResolvedRecipe(digest, recipe) {
|
|
20
|
+
const relativePath = resolvedRecipeArtifactPath(digest);
|
|
21
|
+
if (!relativePath)
|
|
22
|
+
throw new Error(`Invalid resolved recipe digest ${digest}.`);
|
|
23
|
+
const resolvedPath = await writeJsonWithinRoot(this.#artifactsDir, relativePath, recipe);
|
|
30
24
|
this.register({
|
|
31
|
-
path:
|
|
25
|
+
path: relativePath,
|
|
32
26
|
type: 'recipe',
|
|
33
|
-
label: 'Resolved recipe
|
|
27
|
+
label: 'Resolved recipe dependency',
|
|
34
28
|
category: 'system',
|
|
35
29
|
});
|
|
36
30
|
return resolvedPath;
|
|
37
31
|
}
|
|
32
|
+
async writeRecipeResolution(resolution) {
|
|
33
|
+
const relativePath = 'recipe-resolution.json';
|
|
34
|
+
const resolutionPath = await writeJsonWithinRoot(this.#artifactsDir, relativePath, resolution);
|
|
35
|
+
this.register({
|
|
36
|
+
path: relativePath,
|
|
37
|
+
type: 'json',
|
|
38
|
+
label: 'Resolved recipe dependency graph',
|
|
39
|
+
category: 'system',
|
|
40
|
+
});
|
|
41
|
+
return resolutionPath;
|
|
42
|
+
}
|
|
38
43
|
register(entry) {
|
|
39
44
|
if (!this.#entries.some((existing) => existing.path === entry.path)) {
|
|
40
45
|
this.#entries.push(entry);
|
|
@@ -44,15 +49,12 @@ export class JsonArtifactWriter {
|
|
|
44
49
|
return [...this.#entries];
|
|
45
50
|
}
|
|
46
51
|
async write(status, runner) {
|
|
47
|
-
|
|
48
|
-
const manifestPath = path.join(this.#artifactsDir, 'artifact-manifest.json');
|
|
49
|
-
await writeJsonFile(manifestPath, {
|
|
52
|
+
return writeJsonWithinRoot(this.#artifactsDir, 'artifact-manifest.json', {
|
|
50
53
|
version: 1,
|
|
51
54
|
runStatus: status,
|
|
52
55
|
...(runner ? { provenance: { runner } } : {}),
|
|
53
56
|
artifacts: this.list(),
|
|
54
57
|
});
|
|
55
|
-
return manifestPath;
|
|
56
58
|
}
|
|
57
59
|
}
|
|
58
60
|
export class JsonTraceWriter {
|
|
@@ -70,9 +72,7 @@ export class JsonTraceWriter {
|
|
|
70
72
|
return [...this.#entries];
|
|
71
73
|
}
|
|
72
74
|
async write() {
|
|
73
|
-
|
|
74
|
-
await writeJsonFile(tracePath, this.#runner ? { metadata: { runner: this.#runner }, entries: this.list() } : this.list());
|
|
75
|
-
return tracePath;
|
|
75
|
+
return writeJsonWithinRoot(this.#artifactsDir, 'trace.json', this.#runner ? { metadata: { runner: this.#runner }, entries: this.list() } : this.list());
|
|
76
76
|
}
|
|
77
77
|
}
|
|
78
78
|
export class JsonSummaryWriter {
|
|
@@ -81,9 +81,10 @@ export class JsonSummaryWriter {
|
|
|
81
81
|
this.#artifactsDir = artifactsDir;
|
|
82
82
|
}
|
|
83
83
|
async write(summary) {
|
|
84
|
-
|
|
85
|
-
await writeJsonFile(summaryPath, summary);
|
|
86
|
-
return summaryPath;
|
|
84
|
+
return writeJsonWithinRoot(this.#artifactsDir, 'summary.json', summary);
|
|
87
85
|
}
|
|
88
86
|
}
|
|
87
|
+
function writeJsonWithinRoot(root, relativePath, value) {
|
|
88
|
+
return writeFileWithinRoot(root, relativePath, `${JSON.stringify(value, null, 2)}\n`);
|
|
89
|
+
}
|
|
89
90
|
//# 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":"AAAA,OAAO,
|
|
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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"}
|
package/dist/runtime/cdp.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { mkdir, writeFile } from 'node:fs/promises';
|
|
2
1
|
import path from 'node:path';
|
|
3
2
|
import WebSocket from 'ws';
|
|
4
3
|
import { asNumber, asOptionalString, asString, isRecord } from '../core/json.js';
|
|
4
|
+
import { writeFileWithinRoot } from '../core/path.js';
|
|
5
5
|
export function sleep(ms) {
|
|
6
6
|
return new Promise((resolve) => setTimeout(resolve, ms));
|
|
7
7
|
}
|
|
@@ -290,9 +290,7 @@ export class CdpWebPage {
|
|
|
290
290
|
if (!context)
|
|
291
291
|
return result.data;
|
|
292
292
|
const relativePath = relPath ?? `screenshots/${context.nodeId}.png`;
|
|
293
|
-
|
|
294
|
-
await mkdir(path.dirname(outputPath), { recursive: true });
|
|
295
|
-
await writeFile(outputPath, Buffer.from(result.data, 'base64'));
|
|
293
|
+
await writeFileWithinRoot(context.artifactsDir, relativePath, Buffer.from(result.data, 'base64'));
|
|
296
294
|
return {
|
|
297
295
|
path: relativePath,
|
|
298
296
|
type: 'screenshot',
|
|
@@ -594,8 +592,6 @@ async function renderCdpHud(page, node, context) {
|
|
|
594
592
|
const phase = asOptionalString(node.phase, 'app.hud.phase') ?? '';
|
|
595
593
|
const flow = asOptionalString(node.flow, 'app.hud.flow') ?? '';
|
|
596
594
|
const action = asOptionalString(node.action_name ?? node.recipe_action, 'app.hud.action_name') ?? '';
|
|
597
|
-
const proofTarget = asOptionalString(node.proofTarget ?? node.proof_target, 'app.hud.proofTarget') ?? '';
|
|
598
|
-
const record = asOptionalString(node.record, 'app.hud.record') ?? '';
|
|
599
595
|
const text = asOptionalString(node.intent ?? node.text, 'app.hud.text') ?? context.nodeId;
|
|
600
596
|
const rawDetail = asOptionalString(node.detail, 'app.hud.detail') ?? '';
|
|
601
597
|
const detail = rawDetail && rawDetail !== text && rawDetail !== flow ? rawDetail : '';
|
|
@@ -612,7 +608,7 @@ async function renderCdpHud(page, node, context) {
|
|
|
612
608
|
const current = typeof progress.current === 'number' ? progress.current : undefined;
|
|
613
609
|
const total = typeof progress.total === 'number' ? progress.total : undefined;
|
|
614
610
|
return page.evaluate(`(() => {
|
|
615
|
-
const payload = ${JSON.stringify({ title, status, nodeId, phase, flow, action,
|
|
611
|
+
const payload = ${JSON.stringify({ title, status, nodeId, phase, flow, action, text, detail, error, current, total, layout, position, showTitle, showDebug, showDetail, width, maxDetailLines })};
|
|
616
612
|
const id = 'farmslot-recipe-hud';
|
|
617
613
|
let el = document.getElementById(id);
|
|
618
614
|
if (!el) {
|