@hyperframes/engine 0.7.68 → 0.7.70
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/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -1
- package/dist/index.js.map +1 -1
- package/dist/services/parallelCoordinator.d.ts +40 -0
- package/dist/services/parallelCoordinator.d.ts.map +1 -1
- package/dist/services/parallelCoordinator.js +173 -23
- package/dist/services/parallelCoordinator.js.map +1 -1
- package/dist/utils/psnr.d.ts +13 -0
- package/dist/utils/psnr.d.ts.map +1 -0
- package/dist/utils/psnr.js +42 -0
- package/dist/utils/psnr.js.map +1 -0
- package/package.json +3 -3
package/dist/index.d.ts
CHANGED
|
@@ -46,7 +46,7 @@ export { parseVideoElements, parseImageElements, extractVideoFramesRange, extrac
|
|
|
46
46
|
export { createVideoFrameInjector } from "./services/videoFrameInjector.js";
|
|
47
47
|
export { parseAudioElements, processCompositionAudio } from "./services/audioMixer.js";
|
|
48
48
|
export type { AudioElement, AudioTrack, AudioVolumeKeyframe, MixResult, } from "./services/audioMixer.types.js";
|
|
49
|
-
export { calculateOptimalWorkers, distributeFrames, distributeFramesInterleaved, executeParallelCapture, mergeWorkerFrames, getSystemResources, type WorkerTask, type WorkerResult, type ParallelProgress, } from "./services/parallelCoordinator.js";
|
|
49
|
+
export { calculateOptimalWorkers, computeWorkerSizing, selectVerifySampleIndicesForTask, verifyDiskDrawElementSamples, distributeFrames, distributeFramesInterleaved, executeParallelCapture, mergeWorkerFrames, getSystemResources, type WorkerTask, type WorkerResult, type WorkerSizing, type WorkerSizingBound, type ParallelProgress, } from "./services/parallelCoordinator.js";
|
|
50
50
|
export { createFileServer, type FileServerOptions, type FileServerHandle, } from "./services/fileServer.js";
|
|
51
51
|
export { quantizeTimeToFrame, MEDIA_VISUAL_STYLE_PROPERTIES } from "@hyperframes/core";
|
|
52
52
|
export { assertSwiftShader, readWebGlVendorInfo, SwiftShaderAssertionError, BROWSER_GPU_NOT_SOFTWARE, } from "./utils/assertSwiftShader.js";
|
|
@@ -57,6 +57,7 @@ export { runFfmpeg, formatFfmpegError, type RunFfmpegOptions, type RunFfmpegResu
|
|
|
57
57
|
export { ManagedChildProcess, type ManagedChildProcessOptions, type ManagedChildProcessOutcome, type ManagedProcessTerminationReason, } from "./utils/managedChildProcess.js";
|
|
58
58
|
export { assertConfiguredFfmpegBinariesExist, getFfmpegBinary, getFfprobeBinary, FFMPEG_PATH_ENV, FFPROBE_PATH_ENV, } from "./utils/ffmpegBinaries.js";
|
|
59
59
|
export { trackChildProcess, killTrackedProcesses } from "./utils/processTracker.js";
|
|
60
|
+
export { psnrDb, resolveDeVerifyMinDb } from "./utils/psnr.js";
|
|
60
61
|
export { decodePng, decodePngToRgb48le, blitRgba8OverRgb48le, blitRgb48leRegion, blitRgb48leAffine, parseTransformMatrix, roundedRectAlpha, resampleRgb48leObjectFit, normalizeObjectFit, type ObjectFit, } from "./utils/alphaBlit.js";
|
|
61
62
|
export { groupIntoLayers, type CompositeLayer } from "./utils/layerCompositor.js";
|
|
62
63
|
export { diffGpuParityFrames, diffGpuParityPngs, verifyGpuParity, type RgbaFrame, type GpuParityDiffOptions, type GpuParityDiffResult, type BlackOnlyInARegion, type VerifyGpuParityResult, } from "./utils/gpuParityDiff.js";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -50,7 +50,7 @@ export { parseVideoElements, parseImageElements, extractVideoFramesRange, extrac
|
|
|
50
50
|
export { createVideoFrameInjector } from "./services/videoFrameInjector.js";
|
|
51
51
|
export { parseAudioElements, processCompositionAudio } from "./services/audioMixer.js";
|
|
52
52
|
// ── Parallel rendering ─────────────────────────────────────────────────────────
|
|
53
|
-
export { calculateOptimalWorkers, distributeFrames, distributeFramesInterleaved, executeParallelCapture, mergeWorkerFrames, getSystemResources, } from "./services/parallelCoordinator.js";
|
|
53
|
+
export { calculateOptimalWorkers, computeWorkerSizing, selectVerifySampleIndicesForTask, verifyDiskDrawElementSamples, distributeFrames, distributeFramesInterleaved, executeParallelCapture, mergeWorkerFrames, getSystemResources, } from "./services/parallelCoordinator.js";
|
|
54
54
|
// ── File server ────────────────────────────────────────────────────────────────
|
|
55
55
|
export { createFileServer, } from "./services/fileServer.js";
|
|
56
56
|
// ── Utilities ──────────────────────────────────────────────────────────────────
|
|
@@ -63,6 +63,9 @@ export { runFfmpeg, formatFfmpegError, } from "./utils/runFfmpeg.js";
|
|
|
63
63
|
export { ManagedChildProcess, } from "./utils/managedChildProcess.js";
|
|
64
64
|
export { assertConfiguredFfmpegBinariesExist, getFfmpegBinary, getFfprobeBinary, FFMPEG_PATH_ENV, FFPROBE_PATH_ENV, } from "./utils/ffmpegBinaries.js";
|
|
65
65
|
export { trackChildProcess, killTrackedProcesses } from "./utils/processTracker.js";
|
|
66
|
+
// drawElement self-verify comparison — shared by the streaming drain
|
|
67
|
+
// (producer) and the parallel disk-path verify (parallelCoordinator).
|
|
68
|
+
export { psnrDb, resolveDeVerifyMinDb } from "./utils/psnr.js";
|
|
66
69
|
export { decodePng, decodePngToRgb48le, blitRgba8OverRgb48le, blitRgb48leRegion, blitRgb48leAffine, parseTransformMatrix, roundedRectAlpha, resampleRgb48leObjectFit, normalizeObjectFit, } from "./utils/alphaBlit.js";
|
|
67
70
|
export { groupIntoLayers } from "./utils/layerCompositor.js";
|
|
68
71
|
export { diffGpuParityFrames, diffGpuParityPngs, verifyGpuParity, } from "./utils/gpuParityDiff.js";
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAiBH,kFAAkF;AAClF,OAAO,EACL,aAAa,EACb,4BAA4B,EAC5B,cAAc,EACd,kCAAkC,EAClC,qCAAqC,EACrC,+BAA+B,EAC/B,sBAAsB,EACtB,sBAAsB,EACtB,kCAAkC,GAGnC,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,oBAAoB,EACpB,gBAAgB,EAChB,gBAAgB,EAChB,mBAAmB,GACpB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,gBAAgB,EAChB,iBAAiB,EACjB,6BAA6B,GAC9B,MAAM,4BAA4B,CAAC;AAEpC,kFAAkF;AAClF,OAAO,EACL,cAAc,EACd,cAAc,EACd,gBAAgB,EAChB,wBAAwB,EACxB,qBAAqB,EACrB,eAAe,EACf,mBAAmB,EACnB,gBAAgB,GAOjB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EACL,2BAA2B,EAC3B,sBAAsB,GACvB,MAAM,wCAAwC,CAAC;AAChD,OAAO,EACL,iCAAiC,EACjC,4BAA4B,GAE7B,MAAM,8CAA8C,CAAC;AAEtD,mFAAmF;AACnF,OAAO,EACL,oBAAoB,EACpB,iBAAiB,EACjB,mBAAmB,EACnB,YAAY,EACZ,oBAAoB,EACpB,6BAA6B,EAC7B,2BAA2B,EAC3B,4BAA4B,EAC5B,8BAA8B,EAC9B,iCAAiC,EAEjC,kCAAkC,EAClC,+BAA+B,EAC/B,kBAAkB,EAClB,oBAAoB,EACpB,sBAAsB,EACtB,qBAAqB,EACrB,YAAY,EACZ,6BAA6B,EAE7B,uBAAuB,EACvB,uBAAuB,GAGxB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACL,cAAc,EACd,sBAAsB,EACtB,qBAAqB,GAGtB,MAAM,8BAA8B,CAAC;AAEtC,mFAAmF;AACnF,OAAO,EACL,iBAAiB,EACjB,qBAAqB,EACrB,aAAa,EACb,sBAAsB,EACtB,wBAAwB,EACxB,eAAe,EACf,uBAAuB,EACvB,yBAAyB,EACzB,eAAe,EACf,iBAAiB,EACjB,kBAAkB,EAClB,uBAAuB,GAExB,MAAM,iCAAiC,CAAC;AAEzC,kFAAkF;AAClF,OAAO,EACL,gBAAgB,EAChB,mBAAmB,EACnB,yBAAyB,EACzB,iBAAiB,EACjB,cAAc,EACd,gBAAgB,EAChB,eAAe,EACf,gBAAgB,GAEjB,MAAM,4BAA4B,CAAC;AAGpC,OAAO,EACL,qBAAqB,EACrB,wBAAwB,GAKzB,MAAM,gCAAgC,CAAC;AAExC,kFAAkF;AAClF,OAAO,EACL,kBAAkB,EAClB,kBAAkB,EAClB,uBAAuB,EACvB,qBAAqB,EACrB,yBAAyB,EACzB,cAAc,EACd,sBAAsB,EACtB,gBAAgB,EAChB,mBAAmB,EAQnB,mBAAmB,EACnB,kBAAkB,GACnB,MAAM,mCAAmC,CAAC;AAE3C,OAAO,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAE5E,OAAO,EAAE,kBAAkB,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AAQvF,kFAAkF;AAClF,OAAO,EACL,uBAAuB,EACvB,gBAAgB,EAChB,2BAA2B,EAC3B,sBAAsB,EACtB,iBAAiB,EACjB,kBAAkB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAiBH,kFAAkF;AAClF,OAAO,EACL,aAAa,EACb,4BAA4B,EAC5B,cAAc,EACd,kCAAkC,EAClC,qCAAqC,EACrC,+BAA+B,EAC/B,sBAAsB,EACtB,sBAAsB,EACtB,kCAAkC,GAGnC,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,oBAAoB,EACpB,gBAAgB,EAChB,gBAAgB,EAChB,mBAAmB,GACpB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,gBAAgB,EAChB,iBAAiB,EACjB,6BAA6B,GAC9B,MAAM,4BAA4B,CAAC;AAEpC,kFAAkF;AAClF,OAAO,EACL,cAAc,EACd,cAAc,EACd,gBAAgB,EAChB,wBAAwB,EACxB,qBAAqB,EACrB,eAAe,EACf,mBAAmB,EACnB,gBAAgB,GAOjB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EACL,2BAA2B,EAC3B,sBAAsB,GACvB,MAAM,wCAAwC,CAAC;AAChD,OAAO,EACL,iCAAiC,EACjC,4BAA4B,GAE7B,MAAM,8CAA8C,CAAC;AAEtD,mFAAmF;AACnF,OAAO,EACL,oBAAoB,EACpB,iBAAiB,EACjB,mBAAmB,EACnB,YAAY,EACZ,oBAAoB,EACpB,6BAA6B,EAC7B,2BAA2B,EAC3B,4BAA4B,EAC5B,8BAA8B,EAC9B,iCAAiC,EAEjC,kCAAkC,EAClC,+BAA+B,EAC/B,kBAAkB,EAClB,oBAAoB,EACpB,sBAAsB,EACtB,qBAAqB,EACrB,YAAY,EACZ,6BAA6B,EAE7B,uBAAuB,EACvB,uBAAuB,GAGxB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACL,cAAc,EACd,sBAAsB,EACtB,qBAAqB,GAGtB,MAAM,8BAA8B,CAAC;AAEtC,mFAAmF;AACnF,OAAO,EACL,iBAAiB,EACjB,qBAAqB,EACrB,aAAa,EACb,sBAAsB,EACtB,wBAAwB,EACxB,eAAe,EACf,uBAAuB,EACvB,yBAAyB,EACzB,eAAe,EACf,iBAAiB,EACjB,kBAAkB,EAClB,uBAAuB,GAExB,MAAM,iCAAiC,CAAC;AAEzC,kFAAkF;AAClF,OAAO,EACL,gBAAgB,EAChB,mBAAmB,EACnB,yBAAyB,EACzB,iBAAiB,EACjB,cAAc,EACd,gBAAgB,EAChB,eAAe,EACf,gBAAgB,GAEjB,MAAM,4BAA4B,CAAC;AAGpC,OAAO,EACL,qBAAqB,EACrB,wBAAwB,GAKzB,MAAM,gCAAgC,CAAC;AAExC,kFAAkF;AAClF,OAAO,EACL,kBAAkB,EAClB,kBAAkB,EAClB,uBAAuB,EACvB,qBAAqB,EACrB,yBAAyB,EACzB,cAAc,EACd,sBAAsB,EACtB,gBAAgB,EAChB,mBAAmB,EAQnB,mBAAmB,EACnB,kBAAkB,GACnB,MAAM,mCAAmC,CAAC;AAE3C,OAAO,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAE5E,OAAO,EAAE,kBAAkB,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AAQvF,kFAAkF;AAClF,OAAO,EACL,uBAAuB,EACvB,mBAAmB,EACnB,gCAAgC,EAChC,4BAA4B,EAC5B,gBAAgB,EAChB,2BAA2B,EAC3B,sBAAsB,EACtB,iBAAiB,EACjB,kBAAkB,GAMnB,MAAM,mCAAmC,CAAC;AAE3C,kFAAkF;AAClF,OAAO,EACL,gBAAgB,GAGjB,MAAM,0BAA0B,CAAC;AAElC,kFAAkF;AAClF,OAAO,EAAE,mBAAmB,EAAE,6BAA6B,EAAE,MAAM,mBAAmB,CAAC;AAEvF,OAAO,EACL,iBAAiB,EACjB,mBAAmB,EACnB,yBAAyB,EACzB,wBAAwB,GACzB,MAAM,8BAA8B,CAAC;AAEtC,OAAO,EAAE,6BAA6B,EAAE,MAAM,0CAA0C,CAAC;AAEzF,OAAO,EACL,oBAAoB,EACpB,oBAAoB,EACpB,oBAAoB,EACpB,wBAAwB,GAIzB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,oBAAoB,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAC3F,OAAO,EACL,SAAS,EACT,iBAAiB,GAGlB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,mBAAmB,GAIpB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EACL,mCAAmC,EACnC,eAAe,EACf,gBAAgB,EAChB,eAAe,EACf,gBAAgB,GACjB,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAEpF,qEAAqE;AACrE,sEAAsE;AACtE,OAAO,EAAE,MAAM,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAE/D,OAAO,EACL,SAAS,EACT,kBAAkB,EAClB,oBAAoB,EACpB,iBAAiB,EACjB,iBAAiB,EACjB,oBAAoB,EACpB,gBAAgB,EAChB,wBAAwB,EACxB,kBAAkB,GAEnB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAE,eAAe,EAAuB,MAAM,4BAA4B,CAAC;AAElF,OAAO,EACL,mBAAmB,EACnB,iBAAiB,EACjB,eAAe,GAMhB,MAAM,0BAA0B,CAAC;AAElC,iFAAiF;AACjF,OAAO,EAEL,WAAW,EACX,SAAS,EACT,aAAa,EACb,WAAW,EACX,WAAW,EACX,eAAe,GAChB,MAAM,8BAA8B,CAAC;AAEtC,OAAO,EACL,eAAe,EACf,yBAAyB,EACzB,cAAc,EACd,kBAAkB,EAClB,gBAAgB,GACjB,MAAM,0BAA0B,CAAC;AAElC,OAAO,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAC;AAE7E,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EACjB,uBAAuB,EACvB,oBAAoB,GAGrB,MAAM,kCAAkC,CAAC;AAE1C,OAAO,EACL,eAAe,EACf,cAAc,EACd,wBAAwB,EACxB,qBAAqB,EACrB,uBAAuB,GAKxB,MAAM,gBAAgB,CAAC"}
|
|
@@ -104,6 +104,39 @@ export declare function synthesizeSilentWorkerExitError(result: Pick<WorkerResul
|
|
|
104
104
|
*/
|
|
105
105
|
export declare function flagSilentWorkerExits(results: WorkerResult[]): void;
|
|
106
106
|
export declare function formatWorkerFailure(result: WorkerResult): string;
|
|
107
|
+
/** Which constraint produced the final auto-sized worker count. */
|
|
108
|
+
export type WorkerSizingBound = "explicit" | "too_few_frames" | "cpu" | "memory" | "frames" | "max_workers" | "min_parallel_floor" | "contention";
|
|
109
|
+
/**
|
|
110
|
+
* Full provenance of a worker-sizing decision. Threaded into render
|
|
111
|
+
* observability/telemetry so fleet data can answer "why N workers?" and
|
|
112
|
+
* "would the heap budget have prevented this OOM?" without a repro.
|
|
113
|
+
*/
|
|
114
|
+
export interface WorkerSizing {
|
|
115
|
+
workers: number;
|
|
116
|
+
boundBy: WorkerSizingBound;
|
|
117
|
+
cpuBasedWorkers: number;
|
|
118
|
+
memoryBasedWorkers: number;
|
|
119
|
+
frameBasedWorkers: number;
|
|
120
|
+
effectiveMaxWorkers: number;
|
|
121
|
+
/**
|
|
122
|
+
* ADVISORY, not enforced (see HEAP_PER_WORKER_MB): how many workers the
|
|
123
|
+
* parent process's V8 heap could feed. Compare against `workers` in
|
|
124
|
+
* telemetry to validate the budget before enforcement.
|
|
125
|
+
*/
|
|
126
|
+
heapBasedWorkers: number;
|
|
127
|
+
/** V8 `heap_size_limit` for the parent process, MB. */
|
|
128
|
+
heapLimitMb: number;
|
|
129
|
+
totalMemoryMb: number;
|
|
130
|
+
cpuCount: number;
|
|
131
|
+
captureCostMultiplier: number;
|
|
132
|
+
/** true when the chosen count exceeds the advisory heap budget. */
|
|
133
|
+
exceedsHeapAdvisory: boolean;
|
|
134
|
+
}
|
|
135
|
+
/**
|
|
136
|
+
* Compute the auto worker count together with the full sizing provenance.
|
|
137
|
+
* `calculateOptimalWorkers` is the thin legacy wrapper returning `.workers`.
|
|
138
|
+
*/
|
|
139
|
+
export declare function computeWorkerSizing(totalFrames: number, requested?: number, config?: WorkerSizingConfig): WorkerSizing;
|
|
107
140
|
export declare function calculateOptimalWorkers(totalFrames: number, requested?: number, config?: WorkerSizingConfig): number;
|
|
108
141
|
export declare function distributeFrames(totalFrames: number, workerCount: number, workDir: string, rangeStart?: number): WorkerTask[];
|
|
109
142
|
/**
|
|
@@ -122,6 +155,13 @@ export declare function distributeFramesInterleaved(totalFrames: number, workerC
|
|
|
122
155
|
* is sufficient. See `heygen-com/hyperframes#955`.
|
|
123
156
|
*/
|
|
124
157
|
export declare function shouldVerifyWorkerGpu(workerId: number, config?: Partial<EngineConfig>): boolean;
|
|
158
|
+
/**
|
|
159
|
+
* The armed self-verify sample indices this task actually captured: inside
|
|
160
|
+
* `[startFrame, endFrame)` and on the task's stride lattice. Mirrors the
|
|
161
|
+
* capture loop in `captureFrameRange` (`i += stride` from `startFrame`).
|
|
162
|
+
*/
|
|
163
|
+
export declare function selectVerifySampleIndicesForTask(sampleIndices: Iterable<number>, task: Pick<WorkerTask, "startFrame" | "endFrame" | "frameStride">): number[];
|
|
164
|
+
export declare function verifyDiskDrawElementSamples(session: CaptureSession, task: WorkerTask, streaming: boolean): Promise<void>;
|
|
125
165
|
/**
|
|
126
166
|
* drawElement self-verify sample count for multi-worker capture. Each worker
|
|
127
167
|
* arms the same shared sample grid but drains only ~1/N of it, and N
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parallelCoordinator.d.ts","sourceRoot":"","sources":["../../src/services/parallelCoordinator.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"parallelCoordinator.d.ts","sourceRoot":"","sources":["../../src/services/parallelCoordinator.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,16 +6,33 @@
|
|
|
6
6
|
*/
|
|
7
7
|
import { cpus, freemem } from "os";
|
|
8
8
|
import { existsSync, mkdirSync, readdirSync } from "fs";
|
|
9
|
-
import { copyFile, rename } from "fs/promises";
|
|
9
|
+
import { copyFile, readFile, rename } from "fs/promises";
|
|
10
10
|
import { join } from "path";
|
|
11
|
-
import {
|
|
11
|
+
import { getHeapStatistics } from "v8";
|
|
12
|
+
import { createCaptureSession, initializeSession, closeCaptureSession, captureFrame, captureFrameToBufferPipelined, captureFrameToBuffer, getCapturePerfSummary, DrawElementVerificationError, } from "./frameCapture.js";
|
|
13
|
+
import { psnrDb, resolveDeVerifyMinDb } from "../utils/psnr.js";
|
|
12
14
|
import { DEFAULT_CONFIG } from "../config.js";
|
|
13
15
|
import { assertSwiftShader } from "../utils/assertSwiftShader.js";
|
|
14
16
|
import { readWebGlVendorInfoFromCanvas } from "../utils/readWebGlVendorInfoFromCanvas.js";
|
|
15
17
|
import { resolveHeadlessShellPath } from "./browserManager.js";
|
|
16
18
|
import { getSystemTotalMb } from "./systemMemory.js";
|
|
17
19
|
import { CaptureFailure, classifyCaptureFailure, isFatalCaptureFailure, } from "./captureFailure.js";
|
|
18
|
-
|
|
20
|
+
// System-memory budget per parallel worker. Each worker is a full Chrome
|
|
21
|
+
// process (SwiftShader compositor + raster threads) plus its share of parent-
|
|
22
|
+
// process frame buffering — the old 256MB figure was ~6× under a measured
|
|
23
|
+
// Chrome-under-capture RSS and let memory-constrained hosts overcommit (wild
|
|
24
|
+
// 16GB black-slab report; 0.7.66 heap-OOM report on 24GB with 6 auto workers).
|
|
25
|
+
const MEMORY_PER_WORKER_MB = 1536;
|
|
26
|
+
// Parent-process V8 heap the coordinator itself needs regardless of worker
|
|
27
|
+
// count (compile artifacts, puppeteer sessions, encoder state).
|
|
28
|
+
const HEAP_RESERVED_MB = 1024;
|
|
29
|
+
// Parent-process V8 heap consumed per worker (protocol buffers + in-flight
|
|
30
|
+
// frame buffers). Derived from the field OOM: 6 workers exhausted a ~4GB
|
|
31
|
+
// default heap ⇒ >~500MB/worker + base. ponytail: advisory-only until the
|
|
32
|
+
// workers_heap_* telemetry added alongside this constant validates the figure
|
|
33
|
+
// — enforcing a guessed budget could silently cut worker counts fleet-wide.
|
|
34
|
+
// TODO(PRINFRA-341): decide enforcement after ~2 weeks of fleet soak.
|
|
35
|
+
const HEAP_PER_WORKER_MB = 640;
|
|
19
36
|
const MIN_WORKERS = 1;
|
|
20
37
|
const MAX_WORKER_DIAGNOSTIC_LINES = 8;
|
|
21
38
|
// Hard ceiling on explicit `--workers N` requests. Above this, the cost of
|
|
@@ -104,9 +121,44 @@ export function formatWorkerFailure(result) {
|
|
|
104
121
|
const diagnostics = result.diagnostics.map(compactDiagnosticLine).join(" | ");
|
|
105
122
|
return `${base}; diagnostics: ${diagnostics}`;
|
|
106
123
|
}
|
|
107
|
-
|
|
124
|
+
/**
|
|
125
|
+
* Compute the auto worker count together with the full sizing provenance.
|
|
126
|
+
* `calculateOptimalWorkers` is the thin legacy wrapper returning `.workers`.
|
|
127
|
+
*/
|
|
128
|
+
// The branch count is the decision provenance itself — each if records WHICH
|
|
129
|
+
// constraint bound, which is the entire point of the function.
|
|
130
|
+
// fallow-ignore-next-line complexity
|
|
131
|
+
export function computeWorkerSizing(totalFrames, requested, config) {
|
|
132
|
+
const cpuCount = cpus().length;
|
|
133
|
+
// Use total memory instead of free memory — macOS reports misleadingly low
|
|
134
|
+
// freemem() because it aggressively caches files in "inactive" memory that
|
|
135
|
+
// is immediately reclaimable.
|
|
136
|
+
const totalMemoryMb = getSystemTotalMb();
|
|
137
|
+
const heapLimitMb = Math.round(getHeapStatistics().heap_size_limit / (1024 * 1024));
|
|
138
|
+
const heapBasedWorkers = Math.max(1, Math.floor((heapLimitMb - HEAP_RESERVED_MB) / HEAP_PER_WORKER_MB));
|
|
139
|
+
const cpuBasedWorkers = Math.max(1, cpuCount - 2);
|
|
140
|
+
const memoryBasedWorkers = Math.max(1, Math.floor((totalMemoryMb * 0.5) / MEMORY_PER_WORKER_MB));
|
|
141
|
+
const frameBasedWorkers = Math.floor(totalFrames / MIN_FRAMES_PER_WORKER);
|
|
142
|
+
const captureCostMultiplier = Math.max(1, config?.captureCostMultiplier ?? 1);
|
|
143
|
+
const base = {
|
|
144
|
+
cpuBasedWorkers,
|
|
145
|
+
memoryBasedWorkers,
|
|
146
|
+
frameBasedWorkers,
|
|
147
|
+
heapBasedWorkers,
|
|
148
|
+
heapLimitMb,
|
|
149
|
+
totalMemoryMb,
|
|
150
|
+
cpuCount,
|
|
151
|
+
captureCostMultiplier,
|
|
152
|
+
};
|
|
153
|
+
const finish = (workers, boundBy, effectiveMaxWorkers) => ({
|
|
154
|
+
workers,
|
|
155
|
+
boundBy,
|
|
156
|
+
effectiveMaxWorkers,
|
|
157
|
+
...base,
|
|
158
|
+
exceedsHeapAdvisory: workers > heapBasedWorkers,
|
|
159
|
+
});
|
|
108
160
|
if (requested !== undefined) {
|
|
109
|
-
return Math.max(MIN_WORKERS, Math.min(ABSOLUTE_MAX_WORKERS, requested));
|
|
161
|
+
return finish(Math.max(MIN_WORKERS, Math.min(ABSOLUTE_MAX_WORKERS, requested)), "explicit", ABSOLUTE_MAX_WORKERS);
|
|
110
162
|
}
|
|
111
163
|
// Resolve effective values: config overrides → DEFAULT_CONFIG fallback.
|
|
112
164
|
const effectiveMaxWorkers = (() => {
|
|
@@ -119,20 +171,18 @@ export function calculateOptimalWorkers(totalFrames, requested, config) {
|
|
|
119
171
|
const effectiveCoresPerWorker = config?.coresPerWorker ?? DEFAULT_CONFIG.coresPerWorker;
|
|
120
172
|
const effectiveMinParallelFrames = config?.minParallelFrames ?? DEFAULT_CONFIG.minParallelFrames;
|
|
121
173
|
const effectiveLargeRenderThreshold = config?.largeRenderThreshold ?? DEFAULT_CONFIG.largeRenderThreshold;
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
const cpuCount = cpus().length;
|
|
126
|
-
const cpuBasedWorkers = Math.max(1, cpuCount - 2);
|
|
127
|
-
// Use total memory instead of free memory — macOS reports misleadingly low
|
|
128
|
-
// freemem() because it aggressively caches files in "inactive" memory that
|
|
129
|
-
// is immediately reclaimable.
|
|
130
|
-
const totalMemoryMB = getSystemTotalMb();
|
|
131
|
-
const memoryBasedWorkers = Math.max(1, Math.floor((totalMemoryMB * 0.5) / MEMORY_PER_WORKER_MB));
|
|
132
|
-
const frameBasedWorkers = Math.floor(totalFrames / MIN_FRAMES_PER_WORKER);
|
|
174
|
+
if (totalFrames < MIN_FRAMES_PER_WORKER * 2) {
|
|
175
|
+
return finish(1, "too_few_frames", effectiveMaxWorkers);
|
|
176
|
+
}
|
|
133
177
|
const optimal = Math.min(cpuBasedWorkers, memoryBasedWorkers, frameBasedWorkers);
|
|
178
|
+
const optimalBound = optimal === cpuBasedWorkers ? "cpu" : optimal === memoryBasedWorkers ? "memory" : "frames";
|
|
134
179
|
const minWorkersForJob = totalFrames >= effectiveMinParallelFrames ? 2 : MIN_WORKERS;
|
|
135
180
|
let finalWorkers = Math.max(minWorkersForJob, Math.min(effectiveMaxWorkers, optimal));
|
|
181
|
+
let boundBy = finalWorkers === optimal
|
|
182
|
+
? optimalBound
|
|
183
|
+
: finalWorkers === effectiveMaxWorkers && effectiveMaxWorkers < optimal
|
|
184
|
+
? "max_workers"
|
|
185
|
+
: "min_parallel_floor";
|
|
136
186
|
// Adaptive scaling: cap workers for large or expensive renders to prevent
|
|
137
187
|
// CPU contention. Each Chrome process (with SwiftShader) is CPU-heavy; too
|
|
138
188
|
// many concurrent captures can starve the compositor and surface as CDP
|
|
@@ -145,9 +195,13 @@ export function calculateOptimalWorkers(totalFrames, requested, config) {
|
|
|
145
195
|
const cpuScaledMax = Math.max(MIN_WORKERS, Math.floor(cpuCount / weightedCoresPerWorker));
|
|
146
196
|
if (finalWorkers > cpuScaledMax) {
|
|
147
197
|
finalWorkers = cpuScaledMax;
|
|
198
|
+
boundBy = "contention";
|
|
148
199
|
}
|
|
149
200
|
}
|
|
150
|
-
return finalWorkers;
|
|
201
|
+
return finish(finalWorkers, boundBy, effectiveMaxWorkers);
|
|
202
|
+
}
|
|
203
|
+
export function calculateOptimalWorkers(totalFrames, requested, config) {
|
|
204
|
+
return computeWorkerSizing(totalFrames, requested, config).workers;
|
|
151
205
|
}
|
|
152
206
|
export function distributeFrames(totalFrames, workerCount, workDir, rangeStart = 0) {
|
|
153
207
|
const tasks = [];
|
|
@@ -281,6 +335,105 @@ async function captureFrameRange(session, task, captureOptions, signal, onFrameC
|
|
|
281
335
|
}
|
|
282
336
|
return framesCaptured;
|
|
283
337
|
}
|
|
338
|
+
/**
|
|
339
|
+
* The armed self-verify sample indices this task actually captured: inside
|
|
340
|
+
* `[startFrame, endFrame)` and on the task's stride lattice. Mirrors the
|
|
341
|
+
* capture loop in `captureFrameRange` (`i += stride` from `startFrame`).
|
|
342
|
+
*/
|
|
343
|
+
export function selectVerifySampleIndicesForTask(sampleIndices, task) {
|
|
344
|
+
const stride = task.frameStride ?? 1;
|
|
345
|
+
const selected = [];
|
|
346
|
+
for (const idx of sampleIndices) {
|
|
347
|
+
if (idx < task.startFrame || idx >= task.endFrame)
|
|
348
|
+
continue;
|
|
349
|
+
if ((idx - task.startFrame) % stride !== 0)
|
|
350
|
+
continue;
|
|
351
|
+
selected.push(idx);
|
|
352
|
+
}
|
|
353
|
+
return selected.sort((a, b) => a - b);
|
|
354
|
+
}
|
|
355
|
+
/**
|
|
356
|
+
* Disk-path drawElement self-verification (PRINFRA-352). Parallel DISK
|
|
357
|
+
* workers arm the same pre-injection ground-truth samples as the streaming
|
|
358
|
+
* path (`resolveParallelDeVerifySamples` even raises the density for
|
|
359
|
+
* multi-worker capture) — but only the streaming drain ever CHECKED them,
|
|
360
|
+
* so an explicit `--experimental-fast-capture --workers N` render shipped
|
|
361
|
+
* unverified drawElement frames. On a 16GB host, two concurrent
|
|
362
|
+
* hardware-GPU Chrome instances hit the documented compositor-tile-eviction
|
|
363
|
+
* damage class (frames displaced into vertical strips for one worker's
|
|
364
|
+
* whole range — reads as "corruption from the exact worker boundary").
|
|
365
|
+
*
|
|
366
|
+
* After a worker's range completes, re-read its captured files for the
|
|
367
|
+
* sampled indices and PSNR-compare against the session's ground truth.
|
|
368
|
+
* A breach throws `DrawElementVerificationError`, which the orchestrator's
|
|
369
|
+
* existing pinned-fallback retry converts into a screenshot re-render —
|
|
370
|
+
* the same recovery the streaming drain gets.
|
|
371
|
+
*/
|
|
372
|
+
/** HF_DE_PAR_DEBUG=1 gated per-worker trace line (message built lazily). */
|
|
373
|
+
function logParDebug(message) {
|
|
374
|
+
if (process.env.HF_DE_PAR_DEBUG === "1")
|
|
375
|
+
console.log(message());
|
|
376
|
+
}
|
|
377
|
+
/**
|
|
378
|
+
* Throw the verification error for a sample below the PSNR floor; log the
|
|
379
|
+
* pass otherwise. Split from the sampling loop for the complexity gate.
|
|
380
|
+
*/
|
|
381
|
+
function assertDiskSampleAboveFloor(db, verifyMinDb, idx, workerId) {
|
|
382
|
+
if (db < verifyMinDb) {
|
|
383
|
+
// Message keeps the contiguous "drawElement self-verify" phrase —
|
|
384
|
+
// captureFailure's VERIFICATION_ERROR_PATTERNS classifies on it.
|
|
385
|
+
throw new DrawElementVerificationError(`drawElement self-verify failed at frame ${idx} (disk path, worker ${workerId}): ` +
|
|
386
|
+
`${db.toFixed(1)}dB < ${verifyMinDb}dB vs pre-injection screenshot`, { kind: "psnr", frameIndex: idx, failedDb: db, verifyThresholdDb: verifyMinDb });
|
|
387
|
+
}
|
|
388
|
+
console.log(`[Parallel] drawElement disk self-verify passed (worker ${workerId}, frame ${idx}, ` +
|
|
389
|
+
`${db === Infinity ? "inf" : db.toFixed(1)}dB)`);
|
|
390
|
+
}
|
|
391
|
+
/**
|
|
392
|
+
* Compare one captured frame file against its ground truth. Returns the
|
|
393
|
+
* PSNR, or null on infrastructure failure (missing file already surfaces
|
|
394
|
+
* via the frame completeness check; ffmpeg spawn/tmpdir here) — a skipped
|
|
395
|
+
* sample is not damage evidence and must not fail the capture.
|
|
396
|
+
*/
|
|
397
|
+
async function psnrForDiskSample(framePath, truth, workerId, idx) {
|
|
398
|
+
try {
|
|
399
|
+
return await psnrDb(await readFile(framePath), truth);
|
|
400
|
+
}
|
|
401
|
+
catch (err) {
|
|
402
|
+
console.warn(`[Parallel] drawElement disk self-verify sample skipped (worker ${workerId}, ` +
|
|
403
|
+
`frame ${idx}): ${err instanceof Error ? err.message : String(err)}`);
|
|
404
|
+
return null;
|
|
405
|
+
}
|
|
406
|
+
}
|
|
407
|
+
// Branches are the gate conditions themselves (mode/armed/streaming guards +
|
|
408
|
+
// per-sample skip/breach) — already decomposed into psnrForDiskSample +
|
|
409
|
+
// assertDiskSampleAboveFloor; further splitting obscures the check.
|
|
410
|
+
// fallow-ignore-next-line complexity
|
|
411
|
+
export async function verifyDiskDrawElementSamples(session, task, streaming) {
|
|
412
|
+
// Streaming capture verifies every sampled frame in the drain guard already.
|
|
413
|
+
if (streaming || session.captureMode !== "drawelement")
|
|
414
|
+
return;
|
|
415
|
+
const truths = session.deVerifyFrames;
|
|
416
|
+
if (!truths || truths.size === 0)
|
|
417
|
+
return;
|
|
418
|
+
const verifyMinDb = resolveDeVerifyMinDb();
|
|
419
|
+
const ext = session.options.format === "png" ? "png" : "jpg";
|
|
420
|
+
const offset = task.outputFrameOffset ?? 0;
|
|
421
|
+
for (const idx of selectVerifySampleIndicesForTask(truths.keys(), task)) {
|
|
422
|
+
const truth = truths.get(idx);
|
|
423
|
+
if (!truth)
|
|
424
|
+
continue;
|
|
425
|
+
const framePath = join(task.outputDir, `frame_${String(idx - offset).padStart(6, "0")}.${ext}`);
|
|
426
|
+
const db = await psnrForDiskSample(framePath, truth, task.workerId, idx);
|
|
427
|
+
if (db === null)
|
|
428
|
+
continue;
|
|
429
|
+
assertDiskSampleAboveFloor(db, verifyMinDb, idx, task.workerId);
|
|
430
|
+
}
|
|
431
|
+
}
|
|
432
|
+
// Inherited worker-lifecycle shape (session create → verify GPU → init →
|
|
433
|
+
// capture → self-verify → perf, with a classifying catch + closing finally);
|
|
434
|
+
// flagged only because the disk self-verify call shifted its line range into
|
|
435
|
+
// the changed-code audit. Not restructured by this PR.
|
|
436
|
+
// fallow-ignore-next-line complexity
|
|
284
437
|
async function executeWorkerTask(task, serverUrl, captureOptions, createBeforeCaptureHook, signal, onFrameCaptured, onFrameBuffer, config, parallel, onFailure) {
|
|
285
438
|
const startTime = Date.now();
|
|
286
439
|
let framesCaptured = 0;
|
|
@@ -300,18 +453,15 @@ async function executeWorkerTask(task, serverUrl, captureOptions, createBeforeCa
|
|
|
300
453
|
: config;
|
|
301
454
|
try {
|
|
302
455
|
session = await createCaptureSession(serverUrl, task.outputDir, captureOptions, createBeforeCaptureHook(), workerConfig);
|
|
303
|
-
|
|
304
|
-
console.log(`[par:w${task.workerId}] session created`);
|
|
305
|
-
}
|
|
456
|
+
logParDebug(() => `[par:w${task.workerId}] session created`);
|
|
306
457
|
// Worker-0-only SwiftShader assertion — see `shouldVerifyWorkerGpu` and #955.
|
|
307
458
|
if (shouldVerifyWorkerGpu(task.workerId, workerConfig)) {
|
|
308
459
|
await assertSwiftShader(session.page, readWebGlVendorInfoFromCanvas);
|
|
309
460
|
}
|
|
310
461
|
await initializeSession(session);
|
|
311
|
-
|
|
312
|
-
console.log(`[par:w${task.workerId}] init done (mode=${session.captureMode} workerEncode=${session.workerEncodeEnabled === true})`);
|
|
313
|
-
}
|
|
462
|
+
logParDebug(() => `[par:w${task.workerId}] init done (mode=${session?.captureMode} workerEncode=${session?.workerEncodeEnabled === true})`);
|
|
314
463
|
framesCaptured = await captureFrameRange(session, task, captureOptions, signal, onFrameCaptured, onFrameBuffer);
|
|
464
|
+
await verifyDiskDrawElementSamples(session, task, Boolean(onFrameBuffer));
|
|
315
465
|
perf = getCapturePerfSummary(session);
|
|
316
466
|
return {
|
|
317
467
|
workerId: task.workerId,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parallelCoordinator.js","sourceRoot":"","sources":["../../src/services/parallelCoordinator.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;AACnC,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,IAAI,CAAC;AACxD,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAE5B,OAAO,EACL,oBAAoB,EACpB,iBAAiB,EACjB,mBAAmB,EACnB,YAAY,EACZ,6BAA6B,EAC7B,oBAAoB,EACpB,qBAAqB,GAKtB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,cAAc,EAAqB,MAAM,cAAc,CAAC;AACjE,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,EAAE,6BAA6B,EAAE,MAAM,2CAA2C,CAAC;AAC1F,OAAO,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EACL,cAAc,EACd,sBAAsB,EACtB,qBAAqB,GAEtB,MAAM,qBAAqB,CAAC;AA2E7B,MAAM,oBAAoB,GAAG,GAAG,CAAC;AACjC,MAAM,WAAW,GAAG,CAAC,CAAC;AACtB,MAAM,2BAA2B,GAAG,CAAC,CAAC;AACtC,2EAA2E;AAC3E,yEAAyE;AACzE,0EAA0E;AAC1E,uEAAuE;AACvE,yDAAyD;AACzD,MAAM,oBAAoB,GAAG,EAAE,CAAC;AAChC,wEAAwE;AACxE,wEAAwE;AACxE,0EAA0E;AAC1E,sEAAsE;AACtE,yEAAyE;AACzE,qEAAqE;AACrE,0EAA0E;AAC1E,kCAAkC;AAClC,SAAS,qBAAqB;IAC5B,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAClE,CAAC;AACD,MAAM,qBAAqB,GAAG,EAAE,CAAC;AAEjC,8EAA8E;AAC9E,oEAAoE;AACpE,4EAA4E;AAC5E,oDAAoD;AACpD,MAAM,UAAU,yCAAyC,CAAC,EACxD,QAAQ,EACR,QAAQ,EACR,iBAAiB,EACjB,iBAAiB,GACS;IAC1B,OAAO,OAAO,CACZ,QAAQ,IAAI,QAAQ,KAAK,OAAO,IAAI,iBAAiB,IAAI,CAAC,iBAAiB,IAAI,CAAC,CAAC,IAAI,CAAC,CACvF,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,uBAAuB,CACrC,KAAwB,EACxB,WAAmB,2BAA2B;IAE9C,OAAO,KAAK;SACT,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CACf,kGAAkG,CAAC,IAAI,CACrG,IAAI,CACL,CACF;SACA,KAAK,CAAC,CAAC,QAAQ,CAAC,CAAC;AACtB,CAAC;AAED,SAAS,qBAAqB,CAAC,IAAY;IACzC,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;AAC1C,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,qBAAqB,CAAC,IAIrC;IACC,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,IAAI,CAAC,CAAC;IACrC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;AAC5E,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,+BAA+B,CAC7C,MAAqF,EACrF,cAAsB;IAEtB,OAAO,CACL,UAAU,MAAM,CAAC,QAAQ,wCAAwC;QACjE,mBAAmB,MAAM,CAAC,cAAc,cAAc,cAAc,IAAI;QACxE,UAAU,MAAM,CAAC,UAAU,KAAK,MAAM,CAAC,QAAQ,MAAM;QACrD,wEAAwE;QACxE,8CAA8C,CAC/C,CAAC;AACJ,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,qBAAqB,CAAC,OAAuB;IAC3D,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;QACxB,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,cAAc,GAAG,qBAAqB,CAAC,CAAC,CAAC,EAAE,CAAC;YAC5D,CAAC,CAAC,KAAK,GAAG,+BAA+B,CAAC,CAAC,EAAE,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC;QACzE,CAAC;IACH,CAAC;AACH,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,MAAoB;IACtD,MAAM,SAAS,GACb,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC;QACrC,CAAC,CAAC,MAAM,CAAC,KAAK;QACd,CAAC,CAAC,+BAA+B,CAAC,MAAM,EAAE,qBAAqB,CAAC,MAAM,CAAC,CAAC,CAAC;IAC7E,MAAM,IAAI,GAAG,UAAU,MAAM,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;IACvD,IAAI,CAAC,MAAM,CAAC,WAAW,IAAI,MAAM,CAAC,WAAW,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAExE,MAAM,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC9E,OAAO,GAAG,IAAI,kBAAkB,WAAW,EAAE,CAAC;AAChD,CAAC;AAED,MAAM,UAAU,uBAAuB,CACrC,WAAmB,EACnB,SAAkB,EAClB,MAA2B;IAE3B,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;QAC5B,OAAO,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,IAAI,CAAC,GAAG,CAAC,oBAAoB,EAAE,SAAS,CAAC,CAAC,CAAC;IAC1E,CAAC;IAED,wEAAwE;IACxE,MAAM,mBAAmB,GAAG,CAAC,GAAG,EAAE;QAChC,MAAM,WAAW,GAAG,MAAM,EAAE,WAAW,IAAI,cAAc,CAAC,WAAW,CAAC;QACtE,IAAI,WAAW,KAAK,MAAM,EAAE,CAAC;YAC3B,OAAO,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,IAAI,CAAC,GAAG,CAAC,oBAAoB,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;QACxF,CAAC;QACD,OAAO,qBAAqB,EAAE,CAAC;IACjC,CAAC,CAAC,EAAE,CAAC;IACL,MAAM,uBAAuB,GAAG,MAAM,EAAE,cAAc,IAAI,cAAc,CAAC,cAAc,CAAC;IACxF,MAAM,0BAA0B,GAAG,MAAM,EAAE,iBAAiB,IAAI,cAAc,CAAC,iBAAiB,CAAC;IACjG,MAAM,6BAA6B,GACjC,MAAM,EAAE,oBAAoB,IAAI,cAAc,CAAC,oBAAoB,CAAC;IACtE,MAAM,qBAAqB,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,qBAAqB,IAAI,CAAC,CAAC,CAAC;IAE9E,IAAI,WAAW,GAAG,qBAAqB,GAAG,CAAC;QAAE,OAAO,CAAC,CAAC;IAEtD,MAAM,QAAQ,GAAG,IAAI,EAAE,CAAC,MAAM,CAAC;IAC/B,MAAM,eAAe,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,GAAG,CAAC,CAAC,CAAC;IAElD,2EAA2E;IAC3E,2EAA2E;IAC3E,8BAA8B;IAC9B,MAAM,aAAa,GAAG,gBAAgB,EAAE,CAAC;IACzC,MAAM,kBAAkB,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,aAAa,GAAG,GAAG,CAAC,GAAG,oBAAoB,CAAC,CAAC,CAAC;IAEjG,MAAM,iBAAiB,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,qBAAqB,CAAC,CAAC;IAE1E,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,eAAe,EAAE,kBAAkB,EAAE,iBAAiB,CAAC,CAAC;IACjF,MAAM,gBAAgB,GAAG,WAAW,IAAI,0BAA0B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;IACrF,IAAI,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,gBAAgB,EAAE,IAAI,CAAC,GAAG,CAAC,mBAAmB,EAAE,OAAO,CAAC,CAAC,CAAC;IAEtF,0EAA0E;IAC1E,2EAA2E;IAC3E,wEAAwE;IACxE,6EAA6E;IAC7E,oEAAoE;IACpE,MAAM,cAAc,GAAG,WAAW,GAAG,qBAAqB,CAAC;IAC3D,MAAM,mBAAmB,GAAG,IAAI,CAAC,GAAG,CAClC,0BAA0B,EAC1B,IAAI,CAAC,KAAK,CAAC,6BAA6B,GAAG,CAAC,CAAC,CAC9C,CAAC;IACF,IAAI,WAAW,IAAI,6BAA6B,IAAI,cAAc,IAAI,mBAAmB,EAAE,CAAC;QAC1F,MAAM,sBAAsB,GAAG,uBAAuB,GAAG,qBAAqB,CAAC;QAC/E,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,sBAAsB,CAAC,CAAC,CAAC;QAC1F,IAAI,YAAY,GAAG,YAAY,EAAE,CAAC;YAChC,YAAY,GAAG,YAAY,CAAC;QAC9B,CAAC;IACH,CAAC;IAED,OAAO,YAAY,CAAC;AACtB,CAAC;AAED,MAAM,UAAU,gBAAgB,CAC9B,WAAmB,EACnB,WAAmB,EACnB,OAAe,EACf,aAAqB,CAAC;IAEtB,MAAM,KAAK,GAAiB,EAAE,CAAC;IAC/B,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC,CAAC;IAE7D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,MAAM,UAAU,GAAG,UAAU,GAAG,CAAC,GAAG,eAAe,CAAC;QACpD,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,eAAe,EAAE,UAAU,GAAG,WAAW,CAAC,CAAC;QAC5F,IAAI,UAAU,IAAI,UAAU,GAAG,WAAW;YAAE,MAAM;QAElD,KAAK,CAAC,IAAI,CAAC;YACT,QAAQ,EAAE,CAAC;YACX,UAAU;YACV,QAAQ;YACR,SAAS,EAAE,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,EAAE,CAAC;YACvC,iBAAiB,EAAE,UAAU;SAC9B,CAAC,CAAC;IACL,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,2BAA2B,CACzC,WAAmB,EACnB,WAAmB,EACnB,OAAe,EACf,aAAqB,CAAC;IAEtB,MAAM,KAAK,GAAiB,EAAE,CAAC;IAC/B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,IAAI,CAAC,GAAG,WAAW,EAAE,CAAC,EAAE,EAAE,CAAC;QACxD,KAAK,CAAC,IAAI,CAAC;YACT,QAAQ,EAAE,CAAC;YACX,UAAU,EAAE,UAAU,GAAG,CAAC;YAC1B,QAAQ,EAAE,UAAU,GAAG,WAAW;YAClC,WAAW,EAAE,WAAW;YACxB,SAAS,EAAE,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,EAAE,CAAC;YACvC,iBAAiB,EAAE,UAAU;SAC9B,CAAC,CAAC;IACL,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,qBAAqB,CAAC,QAAgB,EAAE,MAA8B;IACpF,OAAO,MAAM,EAAE,cAAc,KAAK,UAAU,IAAI,QAAQ,KAAK,CAAC,CAAC;AACjE,CAAC;AAED,qCAAqC;AACrC,KAAK,UAAU,iBAAiB,CAC9B,OAAuB,EACvB,IAAgB,EAChB,cAA8B,EAC9B,MAA+B,EAC/B,eAA6E,EAC7E,aAEa;IAEb,IAAI,cAAc,GAAG,CAAC,CAAC;IACvB,MAAM,YAAY,GAAG,IAAI,CAAC,iBAAiB,IAAI,CAAC,CAAC;IACjD,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,IAAI,CAAC,CAAC;IACrC,6EAA6E;IAC7E,0EAA0E;IAC1E,yEAAyE;IACzE,2EAA2E;IAC3E,yEAAyE;IACzE,8EAA8E;IAC9E,2EAA2E;IAC3E,2EAA2E;IAC3E,yEAAyE;IACzE,mEAAmE;IACnE,qEAAqE;IACrE,sEAAsE;IACtE,IAAI,aAAa,IAAI,OAAO,CAAC,mBAAmB,EAAE,CAAC;QACjD,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,KAAK,GAAG,CAAC;QAChD,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACzB,MAAM,MAAM,GAAG,EAAE,GAAG,MAAM,CAAC;QAC3B,IAAI,IAAI,GAA0D,IAAI,CAAC;QACvE,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,IAAI,MAAM,EAAE,CAAC;YAC7D,IAAI,MAAM,EAAE,OAAO;gBAAE,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;YAClE,MAAM,IAAI,GAAG,CAAC,CAAC,GAAG,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC;YACnE,IAAI,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,UAAU,GAAG,MAAM,EAAE,CAAC;gBACxC,OAAO,CAAC,GAAG,CAAC,SAAS,IAAI,CAAC,QAAQ,MAAM,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,cAAc,CAAC,QAAQ,CAAC,CAAC;YACrF,CAAC;YACD,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,6BAA6B,CAAC,OAAO,EAAE,CAAC,GAAG,YAAY,EAAE,IAAI,CAAC,CAAC;YAC9F,sEAAsE;YACtE,oEAAoE;YACpE,uEAAuE;YACvE,sEAAsE;YACtE,yEAAyE;YACzE,YAAY,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;YAC7B,IAAI,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,UAAU,GAAG,MAAM,EAAE,CAAC;gBACxC,OAAO,CAAC,GAAG,CAAC,SAAS,IAAI,CAAC,QAAQ,MAAM,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,cAAc,CAAC,SAAS,CAAC,CAAC;YACtF,CAAC;YACD,IAAI,IAAI,EAAE,CAAC;gBACT,IAAI,GAAG,IAAI,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,UAAU,GAAG,MAAM,EAAE,CAAC;oBAC/C,OAAO,CAAC,GAAG,CACT,SAAS,IAAI,CAAC,QAAQ,MAAM,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,YAAY,IAAI,CAAC,GAAG,eAAe,CAClF,CAAC;gBACJ,CAAC;gBACD,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC;gBACpC,IAAI,GAAG,IAAI,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,UAAU,GAAG,MAAM,EAAE,CAAC;oBAC/C,OAAO,CAAC,GAAG,CACT,SAAS,IAAI,CAAC,QAAQ,MAAM,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,YAAY,IAAI,CAAC,GAAG,YAAY,GAAG,CAAC,MAAM,GAAG,CAC5F,CAAC;gBACJ,CAAC;gBACD,MAAM,aAAa,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;gBAC5C,IAAI,GAAG,IAAI,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,UAAU,GAAG,MAAM,EAAE,CAAC;oBAC/C,OAAO,CAAC,GAAG,CAAC,SAAS,IAAI,CAAC,QAAQ,MAAM,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,YAAY,IAAI,CAAC,GAAG,UAAU,CAAC,CAAC;gBAC5F,CAAC;gBACD,cAAc,EAAE,CAAC;gBACjB,IAAI,eAAe;oBAAE,eAAe,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;YAChE,CAAC;YACD,IAAI,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC;QAClC,CAAC;QACD,IAAI,IAAI,EAAE,CAAC;YACT,MAAM,aAAa,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,IAAI,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;YAChE,cAAc,EAAE,CAAC;YACjB,IAAI,eAAe;gBAAE,eAAe,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;QAChE,CAAC;QACD,OAAO,cAAc,CAAC;IACxB,CAAC;IACD,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,IAAI,MAAM,EAAE,CAAC;QAC7D,IAAI,MAAM,EAAE,OAAO;YAAE,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;QAClE,MAAM,IAAI,GAAG,CAAC,CAAC,GAAG,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC;QACnE,MAAM,YAAY,GAAG,CAAC,GAAG,YAAY,CAAC;QAEtC,IAAI,aAAa,EAAE,CAAC;YAClB,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,oBAAoB,CAAC,OAAO,EAAE,YAAY,EAAE,IAAI,CAAC,CAAC;YAC3E,MAAM,aAAa,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;QAC1C,CAAC;aAAM,CAAC;YACN,MAAM,YAAY,CAAC,OAAO,EAAE,YAAY,EAAE,IAAI,CAAC,CAAC;QAClD,CAAC;QACD,cAAc,EAAE,CAAC;QACjB,IAAI,eAAe;YAAE,eAAe,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;IACzD,CAAC;IACD,OAAO,cAAc,CAAC;AACxB,CAAC;AAED,KAAK,UAAU,iBAAiB,CAC9B,IAAgB,EAChB,SAAiB,EACjB,cAA8B,EAC9B,uBAAuD,EACvD,MAAoB,EACpB,eAAgE,EAChE,aAA8F,EAC9F,MAA8B,EAC9B,QAAkB,EAClB,SAA6C;IAE7C,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC7B,IAAI,cAAc,GAAG,CAAC,CAAC;IAEvB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC;QAAE,SAAS,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAEhF,IAAI,OAAO,GAA0B,IAAI,CAAC;IAC1C,IAAI,IAAoC,CAAC;IAEzC,MAAM,qBAAqB,GAAG,yCAAyC,CAAC;QACtE,QAAQ;QACR,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,eAAe,EAAE,MAAM,EAAE,eAAe;QACxC,iBAAiB,EAAE,cAAc,CAAC,iBAAiB;QACnD,iBAAiB,EAAE,wBAAwB,CAAC,MAAM,CAAC;KACpD,CAAC,CAAC;IACH,MAAM,YAAY,GAAsC,qBAAqB;QAC3E,CAAC,CAAC,EAAE,GAAG,MAAM,EAAE,iBAAiB,EAAE,KAAK,EAAE;QACzC,CAAC,CAAC,MAAM,CAAC;IAEX,IAAI,CAAC;QACH,OAAO,GAAG,MAAM,oBAAoB,CAClC,SAAS,EACT,IAAI,CAAC,SAAS,EACd,cAAc,EACd,uBAAuB,EAAE,EACzB,YAAY,CACb,CAAC;QACF,IAAI,OAAO,CAAC,GAAG,CAAC,eAAe,KAAK,GAAG,EAAE,CAAC;YACxC,OAAO,CAAC,GAAG,CAAC,SAAS,IAAI,CAAC,QAAQ,mBAAmB,CAAC,CAAC;QACzD,CAAC;QACD,8EAA8E;QAC9E,IAAI,qBAAqB,CAAC,IAAI,CAAC,QAAQ,EAAE,YAAY,CAAC,EAAE,CAAC;YACvD,MAAM,iBAAiB,CAAC,OAAO,CAAC,IAAI,EAAE,6BAA6B,CAAC,CAAC;QACvE,CAAC;QACD,MAAM,iBAAiB,CAAC,OAAO,CAAC,CAAC;QACjC,IAAI,OAAO,CAAC,GAAG,CAAC,eAAe,KAAK,GAAG,EAAE,CAAC;YACxC,OAAO,CAAC,GAAG,CACT,SAAS,IAAI,CAAC,QAAQ,qBAAqB,OAAO,CAAC,WAAW,iBAAiB,OAAO,CAAC,mBAAmB,KAAK,IAAI,GAAG,CACvH,CAAC;QACJ,CAAC;QACD,cAAc,GAAG,MAAM,iBAAiB,CACtC,OAAO,EACP,IAAI,EACJ,cAAc,EACd,MAAM,EACN,eAAe,EACf,aAAa,CACd,CAAC;QAEF,IAAI,GAAG,qBAAqB,CAAC,OAAO,CAAC,CAAC;QACtC,OAAO;YACL,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,cAAc;YACd,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;YAClC,IAAI;SACL,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,WAAW,GAAG,OAAO,CAAC,CAAC,CAAC,uBAAuB,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACzF,MAAM,gBAAgB,GAA4B;YAChD,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,cAAc;YACd,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,KAAK,EAAE,WAAW;SACnB,CAAC;QACF,MAAM,OAAO,GAAG,sBAAsB,CAAC,KAAK,EAAE;YAC5C,MAAM;YACN,iBAAiB,EAAE,CAAC,gBAAgB,CAAC;SACtC,CAAC,CAAC;QACH,SAAS,EAAE,CAAC,OAAO,CAAC,CAAC;QACrB,OAAO;YACL,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,cAAc;YACd,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;YAClC,IAAI;YACJ,KAAK,EAAE,OAAO,CAAC,OAAO;YACtB,WAAW,EAAE,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS;YAC7D,OAAO;SACR,CAAC;IACJ,CAAC;YAAS,CAAC;QACT,IAAI,OAAO;YAAE,MAAM,mBAAmB,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;IAClE,CAAC;AACH,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,8BAA8B,CAC5C,WAA+B,EAC/B,WAAmB;IAEnB,IAAI,WAAW,KAAK,SAAS;QAAE,OAAO,WAAW,CAAC;IAClD,IAAI,WAAW,IAAI,CAAC;QAAE,OAAO,SAAS,CAAC;IACvC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC,CAAC;AAChD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,SAAiB,EACjB,OAAe,EACf,KAAmB,EACnB,cAA8B,EAC9B,uBAAuD,EACvD,MAAoB,EACpB,UAAiD,EACjD,aAA8F,EAC9F,MAA8B;IAE9B,6EAA6E;IAC7E,0EAA0E;IAC1E,0EAA0E;IAC1E,0EAA0E;IAC1E,iEAAiE;IACjE,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,CAC9B,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,IAAI,CAAC,CAAC,CAAC,EAC/E,CAAC,CACF,CAAC;IACF,MAAM,cAAc,GAAG,IAAI,GAAG,EAAkB,CAAC;IAEjD,KAAK,MAAM,IAAI,IAAI,KAAK;QAAE,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;IAE/D,MAAM,eAAe,GAAG,CAAC,QAAgB,EAAE,WAAmB,EAAE,EAAE;QAChE,MAAM,OAAO,GAAG,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAClD,cAAc,CAAC,GAAG,CAAC,QAAQ,EAAE,OAAO,GAAG,CAAC,CAAC,CAAC;QAE1C,IAAI,UAAU,EAAE,CAAC;YACf,MAAM,cAAc,GAAG,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;YACtF,UAAU,CAAC;gBACT,WAAW;gBACX,cAAc;gBACd,aAAa,EAAE,KAAK,CAAC,MAAM;gBAC3B,cAAc,EAAE,IAAI,GAAG,CAAC,cAAc,CAAC;aACxC,CAAC,CAAC;QACL,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;IAClC,MAAM,eAAe,GAAG,8BAA8B,CACpD,cAAc,CAAC,eAAe,EAC9B,KAAK,CAAC,MAAM,CACb,CAAC;IACF,MAAM,oBAAoB,GACxB,eAAe,KAAK,cAAc,CAAC,eAAe;QAChD,CAAC,CAAC,cAAc;QAChB,CAAC,CAAC,EAAE,GAAG,cAAc,EAAE,eAAe,EAAE,CAAC;IAC7C,MAAM,cAAc,GAAG,IAAI,eAAe,EAAE,CAAC;IAC7C,MAAM,YAAY,GAAG,MAAM;QACzB,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC;QAClD,CAAC,CAAC,cAAc,CAAC,MAAM,CAAC;IAC1B,IAAI,iBAA6C,CAAC;IAClD,MAAM,SAAS,GAAG,CAAC,OAAuB,EAAQ,EAAE;QAClD,IAAI,iBAAiB,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC;YAAE,OAAO;QACjE,iBAAiB,GAAG,OAAO,CAAC;QAC5B,cAAc,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAChC,CAAC,CAAC;IACF,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAC/B,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CACjB,iBAAiB,CACf,IAAI,EACJ,SAAS,EACT,oBAAoB,EACpB,uBAAuB,EACvB,YAAY,EACZ,eAAe,EACf,aAAa,EACb,MAAM,EACN,QAAQ,EACR,SAAS,CACV,CACF,CACF,CAAC;IAEF,qBAAqB,CAAC,OAAO,CAAC,CAAC;IAE/B,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC;IAC3D,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtB,MAAM,aAAa,GAAG,MAAM,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjE,MAAM,cAAc,GAAG,iBAAiB,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;QAC7F,MAAM,iBAAiB,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,EAAE,iBAAiB,IAAI,EAAE,CAAC,CAAC;QAC9F,MAAM,IAAI,cAAc,CAAC;YACvB,IAAI,EAAE,cAAc,EAAE,IAAI,IAAI,IAAI;YAClC,OAAO,EAAE,8BAA8B,aAAa,EAAE;YACtD,KAAK,EAAE,cAAc;YACrB,iBAAiB;SAClB,CAAC,CAAC;IACL,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,OAAe,EACf,KAAmB,EACnB,SAAiB;IAEjB,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC;QAAE,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAEtE,IAAI,WAAW,GAAG,CAAC,CAAC;IACpB,MAAM,WAAW,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC;IAE3E,KAAK,MAAM,IAAI,IAAI,WAAW,EAAE,CAAC;QAC/B,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;YAChC,SAAS;QACX,CAAC;QAED,MAAM,KAAK,GAAG,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC;aACtC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;aACnF,IAAI,EAAE,CAAC;QACV,MAAM,SAAS,GAAG,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;YACzC,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;YAC9C,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;YACzC,IAAI,CAAC;gBACH,MAAM,MAAM,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;YACvC,CAAC;YAAC,MAAM,CAAC;gBACP,MAAM,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;YACzC,CAAC;QACH,CAAC,CAAC,CAAC;QACH,MAAM,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC7B,WAAW,IAAI,KAAK,CAAC,MAAM,CAAC;IAC9B,CAAC;IAED,OAAO,WAAW,CAAC;AACrB,CAAC;AAED,MAAM,UAAU,kBAAkB;IAMhC,OAAO;QACL,QAAQ,EAAE,IAAI,EAAE,CAAC,MAAM;QACvB,aAAa,EAAE,gBAAgB,EAAE;QACjC,YAAY,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC;QACnD,kBAAkB,EAAE,uBAAuB,CAAC,IAAI,CAAC;KAClD,CAAC;AACJ,CAAC"}
|
|
1
|
+
{"version":3,"file":"parallelCoordinator.js","sourceRoot":"","sources":["../../src/services/parallelCoordinator.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* PSNR (average, dB) between two same-dimension encoded images via ffmpeg.
|
|
3
|
+
* Infinity means bit-identical pixels. Single source of truth for every
|
|
4
|
+
* drawElement self-verify comparison (streaming drain + parallel disk path).
|
|
5
|
+
*/
|
|
6
|
+
export declare function psnrDb(a: Buffer, b: Buffer): Promise<number>;
|
|
7
|
+
/**
|
|
8
|
+
* The drawElement self-verify PSNR floor (dB). HF_DE_VERIFY_MIN_DB overrides,
|
|
9
|
+
* clamped to [10, 60]; out-of-range or unset falls back to 32 — the threshold
|
|
10
|
+
* every prior eval used to separate real compositor damage from encoder noise.
|
|
11
|
+
*/
|
|
12
|
+
export declare function resolveDeVerifyMinDb(): number;
|
|
13
|
+
//# sourceMappingURL=psnr.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"psnr.d.ts","sourceRoot":"","sources":["../../src/utils/psnr.ts"],"names":[],"mappings":"AAOA;;;;GAIG;AACH,wBAAsB,MAAM,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAsBlE;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,IAAI,MAAM,CAG7C"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { execFile } from "node:child_process";
|
|
2
|
+
import { mkdtemp, rm, writeFile } from "node:fs/promises";
|
|
3
|
+
import { tmpdir } from "node:os";
|
|
4
|
+
import { join } from "node:path";
|
|
5
|
+
import { promisify } from "node:util";
|
|
6
|
+
import { getFfmpegBinary } from "./ffmpegBinaries.js";
|
|
7
|
+
/**
|
|
8
|
+
* PSNR (average, dB) between two same-dimension encoded images via ffmpeg.
|
|
9
|
+
* Infinity means bit-identical pixels. Single source of truth for every
|
|
10
|
+
* drawElement self-verify comparison (streaming drain + parallel disk path).
|
|
11
|
+
*/
|
|
12
|
+
export async function psnrDb(a, b) {
|
|
13
|
+
// promisify(execFile) lazily, not at module load: this module is in the
|
|
14
|
+
// engine's parallel-capture import chain, and a top-level call to a builtin
|
|
15
|
+
// crashes any downstream test that partially mocks node:child_process
|
|
16
|
+
// without an execFile export (vitest surfaces it as a load-time error).
|
|
17
|
+
const execFileP = promisify(execFile);
|
|
18
|
+
const dir = await mkdtemp(join(tmpdir(), "hf-de-verify-"));
|
|
19
|
+
try {
|
|
20
|
+
const pa = join(dir, "a.jpg");
|
|
21
|
+
const pb = join(dir, "b.jpg");
|
|
22
|
+
await Promise.all([writeFile(pa, a), writeFile(pb, b)]);
|
|
23
|
+
const { stderr } = await execFileP(getFfmpegBinary(), ["-hide_banner", "-i", pa, "-i", pb, "-lavfi", "psnr", "-f", "null", "-"], { maxBuffer: 4 * 1024 * 1024 });
|
|
24
|
+
const m = /average:(inf|[\d.]+)/.exec(stderr);
|
|
25
|
+
if (!m)
|
|
26
|
+
throw new Error(`psnr parse failed: ${stderr.slice(-300)}`);
|
|
27
|
+
return m[1] === "inf" ? Infinity : Number(m[1]);
|
|
28
|
+
}
|
|
29
|
+
finally {
|
|
30
|
+
await rm(dir, { recursive: true, force: true }).catch(() => { });
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* The drawElement self-verify PSNR floor (dB). HF_DE_VERIFY_MIN_DB overrides,
|
|
35
|
+
* clamped to [10, 60]; out-of-range or unset falls back to 32 — the threshold
|
|
36
|
+
* every prior eval used to separate real compositor damage from encoder noise.
|
|
37
|
+
*/
|
|
38
|
+
export function resolveDeVerifyMinDb() {
|
|
39
|
+
const raw = Number(process.env.HF_DE_VERIFY_MIN_DB ?? "32");
|
|
40
|
+
return Number.isFinite(raw) && raw >= 10 && raw <= 60 ? raw : 32;
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=psnr.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"psnr.js","sourceRoot":"","sources":["../../src/utils/psnr.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAEtD;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,MAAM,CAAC,CAAS,EAAE,CAAS;IAC/C,wEAAwE;IACxE,4EAA4E;IAC5E,sEAAsE;IACtE,wEAAwE;IACxE,MAAM,SAAS,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;IACtC,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,eAAe,CAAC,CAAC,CAAC;IAC3D,IAAI,CAAC;QACH,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QAC9B,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QAC9B,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QACxD,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,SAAS,CAChC,eAAe,EAAE,EACjB,CAAC,cAAc,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,EACzE,EAAE,SAAS,EAAE,CAAC,GAAG,IAAI,GAAG,IAAI,EAAE,CAC/B,CAAC;QACF,MAAM,CAAC,GAAG,sBAAsB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC9C,IAAI,CAAC,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,sBAAsB,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACpE,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAClD,CAAC;YAAS,CAAC;QACT,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;IAClE,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,oBAAoB;IAClC,MAAM,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,IAAI,CAAC,CAAC;IAC5D,OAAO,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI,EAAE,IAAI,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;AACnE,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@hyperframes/engine",
|
|
3
|
-
"version": "0.7.
|
|
3
|
+
"version": "0.7.70",
|
|
4
4
|
"description": "Seekable web page to video rendering engine (Puppeteer + FFmpeg)",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -38,8 +38,8 @@
|
|
|
38
38
|
"linkedom": "^0.18.12",
|
|
39
39
|
"puppeteer": "^25.2.1",
|
|
40
40
|
"puppeteer-core": "^25.2.1",
|
|
41
|
-
"@hyperframes/
|
|
42
|
-
"@hyperframes/
|
|
41
|
+
"@hyperframes/core": "^0.7.70",
|
|
42
|
+
"@hyperframes/parsers": "^0.7.70"
|
|
43
43
|
},
|
|
44
44
|
"devDependencies": {
|
|
45
45
|
"@types/node": "^25.0.10",
|