@farmslot/recipe-runner 0.28.5 → 0.30.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 +13 -0
- package/dist/adapters/core.d.ts +32 -1
- package/dist/adapters/core.d.ts.map +1 -1
- package/dist/adapters/core.js +152 -38
- package/dist/adapters/core.js.map +1 -1
- package/dist/adapters/ui.d.ts +2 -0
- package/dist/adapters/ui.d.ts.map +1 -1
- package/dist/adapters/ui.js +79 -37
- package/dist/adapters/ui.js.map +1 -1
- package/dist/cli/support.d.ts.map +1 -1
- package/dist/cli/support.js +5 -1
- package/dist/cli/support.js.map +1 -1
- package/dist/core/execution-signal.d.ts +4 -0
- package/dist/core/execution-signal.d.ts.map +1 -0
- package/dist/core/execution-signal.js +13 -0
- package/dist/core/execution-signal.js.map +1 -0
- package/dist/core/execution.d.ts +4 -0
- package/dist/core/execution.d.ts.map +1 -1
- package/dist/core/execution.js +86 -12
- package/dist/core/execution.js.map +1 -1
- package/dist/core/failure.d.ts +2 -0
- package/dist/core/failure.d.ts.map +1 -1
- package/dist/core/failure.js +10 -0
- package/dist/core/failure.js.map +1 -1
- package/dist/core/graph.d.ts +1 -0
- package/dist/core/graph.d.ts.map +1 -1
- package/dist/core/graph.js +2 -2
- package/dist/core/graph.js.map +1 -1
- package/dist/core/hud.d.ts.map +1 -1
- package/dist/core/hud.js +3 -3
- package/dist/core/hud.js.map +1 -1
- package/dist/core/invocation.d.ts +4 -1
- package/dist/core/invocation.d.ts.map +1 -1
- package/dist/core/invocation.js +3 -1
- package/dist/core/invocation.js.map +1 -1
- package/dist/core/recording-limits.d.ts +4 -0
- package/dist/core/recording-limits.d.ts.map +1 -0
- package/dist/core/recording-limits.js +74 -0
- package/dist/core/recording-limits.js.map +1 -0
- package/dist/core/recording-segments.d.ts +4 -0
- package/dist/core/recording-segments.d.ts.map +1 -0
- package/dist/core/recording-segments.js +101 -0
- package/dist/core/recording-segments.js.map +1 -0
- package/dist/core/runner.d.ts.map +1 -1
- package/dist/core/runner.js +336 -108
- package/dist/core/runner.js.map +1 -1
- package/dist/core/trace.d.ts.map +1 -1
- package/dist/core/trace.js +2 -0
- package/dist/core/trace.js.map +1 -1
- package/dist/core/types.d.ts +40 -22
- package/dist/core/types.d.ts.map +1 -1
- package/dist/evidence/assertions.d.ts +50 -0
- package/dist/evidence/assertions.d.ts.map +1 -0
- package/dist/evidence/assertions.js +156 -0
- package/dist/evidence/assertions.js.map +1 -0
- package/dist/evidence/claims.d.ts +15 -0
- package/dist/evidence/claims.d.ts.map +1 -0
- package/dist/evidence/claims.js +201 -0
- package/dist/evidence/claims.js.map +1 -0
- package/dist/evidence/index.d.ts +4 -0
- package/dist/evidence/index.d.ts.map +1 -0
- package/dist/evidence/index.js +3 -0
- package/dist/evidence/index.js.map +1 -0
- package/dist/evidence/moments.d.ts +8 -0
- package/dist/evidence/moments.d.ts.map +1 -0
- package/dist/evidence/moments.js +26 -0
- package/dist/evidence/moments.js.map +1 -0
- package/dist/evidence/package.d.ts +4 -0
- package/dist/evidence/package.d.ts.map +1 -0
- package/dist/evidence/package.js +140 -0
- package/dist/evidence/package.js.map +1 -0
- package/dist/evidence/plan.d.ts +9 -0
- package/dist/evidence/plan.d.ts.map +1 -0
- package/dist/evidence/plan.js +87 -0
- package/dist/evidence/plan.js.map +1 -0
- package/dist/evidence/read-package.d.ts +14 -0
- package/dist/evidence/read-package.d.ts.map +1 -0
- package/dist/evidence/read-package.js +153 -0
- package/dist/evidence/read-package.js.map +1 -0
- package/dist/evidence/stills.d.ts +5 -0
- package/dist/evidence/stills.d.ts.map +1 -0
- package/dist/evidence/stills.js +58 -0
- package/dist/evidence/stills.js.map +1 -0
- package/dist/file-digest.d.ts +3 -0
- package/dist/file-digest.d.ts.map +1 -0
- package/dist/file-digest.js +4 -0
- package/dist/file-digest.js.map +1 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -0
- package/dist/index.js.map +1 -1
- package/dist/recording/android-mirror.d.ts.map +1 -1
- package/dist/recording/android-mirror.js +17 -8
- package/dist/recording/android-mirror.js.map +1 -1
- package/dist/recording/capture-helper-timing.d.ts +2 -2
- package/dist/recording/capture-helper-timing.d.ts.map +1 -1
- package/dist/recording/capture-helper.d.ts.map +1 -1
- package/dist/recording/capture-helper.js +24 -12
- package/dist/recording/capture-helper.js.map +1 -1
- package/dist/recording/cdp-video-recorder.d.ts +2 -0
- package/dist/recording/cdp-video-recorder.d.ts.map +1 -1
- package/dist/recording/cdp-video-recorder.js +160 -50
- package/dist/recording/cdp-video-recorder.js.map +1 -1
- package/dist/recording/timeline.d.ts +2 -2
- package/dist/recording/timeline.d.ts.map +1 -1
- package/dist/runtime/cdp.d.ts +1 -0
- package/dist/runtime/cdp.d.ts.map +1 -1
- package/dist/runtime/cdp.js +71 -16
- package/dist/runtime/cdp.js.map +1 -1
- package/package.json +8 -3
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { readdir, stat } from 'node:fs/promises';
|
|
2
|
+
import path from 'node:path';
|
|
3
|
+
import { DEFAULT_RECORDED_EVIDENCE_POLICY } from '@farmslot/protocol';
|
|
4
|
+
/** Own exactly one backend stop, retaining usable media when a configured limit ends capture early. */
|
|
5
|
+
export function boundRecording(active, outputPath, policy) {
|
|
6
|
+
const duration = policy.maxDurationMs ?? DEFAULT_RECORDED_EVIDENCE_POLICY.maxDurationMs;
|
|
7
|
+
const bytes = policy.maxBytes ?? DEFAULT_RECORDED_EVIDENCE_POLICY.maxBytes;
|
|
8
|
+
let stopped;
|
|
9
|
+
let limitation;
|
|
10
|
+
let checking = false;
|
|
11
|
+
const stop = () => {
|
|
12
|
+
if (stopped)
|
|
13
|
+
return stopped;
|
|
14
|
+
clearTimeout(deadline);
|
|
15
|
+
clearInterval(poll);
|
|
16
|
+
stopped = active.stop().then((result) => {
|
|
17
|
+
if (!limitation || result.interruption)
|
|
18
|
+
return result;
|
|
19
|
+
return {
|
|
20
|
+
...result,
|
|
21
|
+
interruption: {
|
|
22
|
+
frames: result.segments.reduce((count, segment) => count + (segment.timing?.framesMs.length ?? 0), 0),
|
|
23
|
+
mediaTimeMs: result.segments.at(-1)?.timing?.framesMs.at(-1) ?? 0,
|
|
24
|
+
cause: limitation,
|
|
25
|
+
},
|
|
26
|
+
};
|
|
27
|
+
});
|
|
28
|
+
// Early stop completion is awaited by the engine's final stop; retain rejection until then.
|
|
29
|
+
void stopped.catch((error) => {
|
|
30
|
+
limitation ??= `Capture finalization failed: ${error instanceof Error ? error.message : String(error)}`;
|
|
31
|
+
});
|
|
32
|
+
return stopped;
|
|
33
|
+
};
|
|
34
|
+
const deadline = setTimeout(() => {
|
|
35
|
+
limitation = `Recording duration limit reached (${duration} ms).`;
|
|
36
|
+
void stop();
|
|
37
|
+
}, duration);
|
|
38
|
+
deadline.unref();
|
|
39
|
+
const poll = setInterval(async () => {
|
|
40
|
+
if (checking || stopped)
|
|
41
|
+
return;
|
|
42
|
+
checking = true;
|
|
43
|
+
try {
|
|
44
|
+
const directory = path.dirname(outputPath);
|
|
45
|
+
const files = (await readdir(directory)).filter((file) => file.endsWith('.mp4'));
|
|
46
|
+
const sizes = await Promise.all(files.map(async (file) => (await stat(path.join(directory, file))).size));
|
|
47
|
+
if (sizes.reduce((total, size) => total + size, 0) >= bytes) {
|
|
48
|
+
limitation = `Recording byte limit reached (${bytes} bytes).`;
|
|
49
|
+
void stop();
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
catch (error) {
|
|
53
|
+
limitation = `Recording budget could not be measured: ${error instanceof Error ? error.message : String(error)}`;
|
|
54
|
+
void stop();
|
|
55
|
+
}
|
|
56
|
+
finally {
|
|
57
|
+
checking = false;
|
|
58
|
+
}
|
|
59
|
+
}, 250);
|
|
60
|
+
poll.unref();
|
|
61
|
+
return {
|
|
62
|
+
stop,
|
|
63
|
+
...(active.snapshot
|
|
64
|
+
? {
|
|
65
|
+
snapshot: async (file) => {
|
|
66
|
+
if (stopped)
|
|
67
|
+
throw new Error(limitation ?? 'Recording is finalizing.');
|
|
68
|
+
return active.snapshot(file);
|
|
69
|
+
},
|
|
70
|
+
}
|
|
71
|
+
: {}),
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
//# sourceMappingURL=recording-limits.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"recording-limits.js","sourceRoot":"","sources":["../../src/core/recording-limits.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { ActiveVideoRecording, VideoRecorder, VideoRecorderStartRequest } from './types.js';
|
|
2
|
+
/** Backends with continuous segments handle their own boundaries; native restarts retain the gap. */
|
|
3
|
+
export declare function startSegmentedRecording(recorder: VideoRecorder, request: VideoRecorderStartRequest): Promise<ActiveVideoRecording>;
|
|
4
|
+
//# sourceMappingURL=recording-segments.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"recording-segments.d.ts","sourceRoot":"","sources":["../../src/core/recording-segments.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,oBAAoB,EACpB,aAAa,EACb,yBAAyB,EAG1B,MAAM,YAAY,CAAC;AAEpB,qGAAqG;AACrG,wBAAsB,uBAAuB,CAC3C,QAAQ,EAAE,aAAa,EACvB,OAAO,EAAE,yBAAyB,GACjC,OAAO,CAAC,oBAAoB,CAAC,CAyF/B"}
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
import { stat } from 'node:fs/promises';
|
|
2
|
+
/** Backends with continuous segments handle their own boundaries; native restarts retain the gap. */
|
|
3
|
+
export async function startSegmentedRecording(recorder, request) {
|
|
4
|
+
if (recorder.continuousSegments)
|
|
5
|
+
return recorder.start(request);
|
|
6
|
+
let active = await recorder.start(request);
|
|
7
|
+
let output = request.outputPath;
|
|
8
|
+
let startedAt = Date.now();
|
|
9
|
+
let ended = false;
|
|
10
|
+
let failure;
|
|
11
|
+
let interruption;
|
|
12
|
+
const segments = [];
|
|
13
|
+
let boundary;
|
|
14
|
+
let stopped;
|
|
15
|
+
const collect = (result) => {
|
|
16
|
+
for (const [index, segment] of result.segments.entries())
|
|
17
|
+
segments.push({ ...segment, ...(segments.length && index === 0 ? { gapBefore: true } : {}) });
|
|
18
|
+
interruption ??= result.interruption;
|
|
19
|
+
};
|
|
20
|
+
const rotate = async () => {
|
|
21
|
+
collect(await active.stop());
|
|
22
|
+
if (interruption) {
|
|
23
|
+
ended = true;
|
|
24
|
+
return;
|
|
25
|
+
}
|
|
26
|
+
output = request.outputPath.replace(/\.mp4$/u, `-segment-${segments.length}.mp4`);
|
|
27
|
+
active = await recorder.start({ ...request, outputPath: output });
|
|
28
|
+
startedAt = Date.now();
|
|
29
|
+
};
|
|
30
|
+
const poll = setInterval(() => {
|
|
31
|
+
if (ended || boundary || failure)
|
|
32
|
+
return;
|
|
33
|
+
boundary = (async () => {
|
|
34
|
+
let size = 0;
|
|
35
|
+
try {
|
|
36
|
+
size = (await stat(output)).size;
|
|
37
|
+
}
|
|
38
|
+
catch (error) {
|
|
39
|
+
if (error.code !== 'ENOENT')
|
|
40
|
+
throw error;
|
|
41
|
+
}
|
|
42
|
+
if (size >= 100 * 1024 * 1024 || Date.now() - startedAt >= 10 * 60 * 1000)
|
|
43
|
+
await rotate();
|
|
44
|
+
})()
|
|
45
|
+
.catch((error) => {
|
|
46
|
+
failure = error;
|
|
47
|
+
ended = true;
|
|
48
|
+
})
|
|
49
|
+
.finally(() => {
|
|
50
|
+
boundary = undefined;
|
|
51
|
+
});
|
|
52
|
+
}, 250);
|
|
53
|
+
poll.unref();
|
|
54
|
+
return {
|
|
55
|
+
...(active.snapshot
|
|
56
|
+
? {
|
|
57
|
+
snapshot: async (file) => {
|
|
58
|
+
if (ended || failure)
|
|
59
|
+
throw failure ?? new Error('Recording has stopped.');
|
|
60
|
+
if (boundary)
|
|
61
|
+
await boundary;
|
|
62
|
+
if (ended || failure)
|
|
63
|
+
throw failure ?? new Error('Recording has stopped.');
|
|
64
|
+
const result = await active.snapshot(file);
|
|
65
|
+
return { ...result, segmentIndex: segments.length };
|
|
66
|
+
},
|
|
67
|
+
}
|
|
68
|
+
: {}),
|
|
69
|
+
stop() {
|
|
70
|
+
if (stopped)
|
|
71
|
+
return stopped;
|
|
72
|
+
clearInterval(poll);
|
|
73
|
+
stopped = (async () => {
|
|
74
|
+
if (boundary)
|
|
75
|
+
await boundary;
|
|
76
|
+
if (!ended) {
|
|
77
|
+
ended = true;
|
|
78
|
+
collect(await active.stop());
|
|
79
|
+
}
|
|
80
|
+
if (failure && !segments.length)
|
|
81
|
+
throw failure;
|
|
82
|
+
return {
|
|
83
|
+
segments,
|
|
84
|
+
...(interruption
|
|
85
|
+
? { interruption }
|
|
86
|
+
: failure
|
|
87
|
+
? {
|
|
88
|
+
interruption: {
|
|
89
|
+
frames: segments.reduce((count, segment) => count + (segment.timing?.framesMs.length ?? 0), 0),
|
|
90
|
+
mediaTimeMs: segments.at(-1)?.timing?.framesMs.at(-1) ?? 0,
|
|
91
|
+
cause: failure instanceof Error ? failure.message : String(failure),
|
|
92
|
+
},
|
|
93
|
+
}
|
|
94
|
+
: {}),
|
|
95
|
+
};
|
|
96
|
+
})();
|
|
97
|
+
return stopped;
|
|
98
|
+
},
|
|
99
|
+
};
|
|
100
|
+
}
|
|
101
|
+
//# sourceMappingURL=recording-segments.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"recording-segments.js","sourceRoot":"","sources":["../../src/core/recording-segments.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../src/core/runner.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../src/core/runner.ts"],"names":[],"mappings":"AA0FA,OAAO,KAAK,EACV,aAAa,EAEb,yBAAyB,EAMzB,YAAY,EASb,MAAM,YAAY,CAAC;AA6BpB,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,aAAa,GAAG,aAAa,CAGzE;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,yBAAyB,GAAG,YAAY,CAiCnF"}
|