@flighthq/tool-capture 0.2.1-next.451.d9a4a4e → 0.2.1-next.530.a223ca9

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.
Files changed (82) hide show
  1. package/README.md +97 -13
  2. package/dist/bin.js +53 -18
  3. package/dist/bin.js.map +1 -1
  4. package/dist/browser.d.ts +4 -0
  5. package/dist/browser.d.ts.map +1 -0
  6. package/dist/browser.js +6 -0
  7. package/dist/browser.js.map +1 -0
  8. package/dist/captureBatchManifest.d.ts +1 -1
  9. package/dist/captureBatchManifest.d.ts.map +1 -1
  10. package/dist/captureBatchManifest.js +1 -1
  11. package/dist/captureBatchManifest.js.map +1 -1
  12. package/dist/captureBenchmark.d.ts +79 -0
  13. package/dist/captureBenchmark.d.ts.map +1 -0
  14. package/dist/captureBenchmark.js +465 -0
  15. package/dist/captureBenchmark.js.map +1 -0
  16. package/dist/captureBrowser.d.ts +5 -4
  17. package/dist/captureBrowser.d.ts.map +1 -1
  18. package/dist/captureBrowser.js +97 -3
  19. package/dist/captureBrowser.js.map +1 -1
  20. package/dist/captureEntries.d.ts +2 -0
  21. package/dist/captureEntries.d.ts.map +1 -1
  22. package/dist/captureEntries.js +11 -0
  23. package/dist/captureEntries.js.map +1 -1
  24. package/dist/captureEntry.d.ts +41 -1
  25. package/dist/captureEntry.d.ts.map +1 -1
  26. package/dist/captureEntry.js +285 -81
  27. package/dist/captureEntry.js.map +1 -1
  28. package/dist/captureFlightPreset.d.ts +9 -0
  29. package/dist/captureFlightPreset.d.ts.map +1 -0
  30. package/dist/captureFlightPreset.js +26 -0
  31. package/dist/captureFlightPreset.js.map +1 -0
  32. package/dist/captureManifest.d.ts +17 -0
  33. package/dist/captureManifest.d.ts.map +1 -1
  34. package/dist/captureManifest.js +48 -1
  35. package/dist/captureManifest.js.map +1 -1
  36. package/dist/capturePage.d.ts +43 -0
  37. package/dist/capturePage.d.ts.map +1 -0
  38. package/dist/capturePage.js +93 -0
  39. package/dist/capturePage.js.map +1 -0
  40. package/dist/captureProtocol.d.ts +24 -0
  41. package/dist/captureProtocol.d.ts.map +1 -0
  42. package/dist/captureProtocol.js +6 -0
  43. package/dist/captureProtocol.js.map +1 -0
  44. package/dist/captureReport.d.ts +13 -0
  45. package/dist/captureReport.d.ts.map +1 -0
  46. package/dist/captureReport.js +21 -0
  47. package/dist/captureReport.js.map +1 -0
  48. package/dist/captureSuite.d.ts +13 -0
  49. package/dist/captureSuite.d.ts.map +1 -1
  50. package/dist/captureSuite.js +58 -61
  51. package/dist/captureSuite.js.map +1 -1
  52. package/dist/captureValidation.d.ts +23 -0
  53. package/dist/captureValidation.d.ts.map +1 -1
  54. package/dist/captureValidation.js +304 -36
  55. package/dist/captureValidation.js.map +1 -1
  56. package/dist/captureWorkflow.d.ts +14 -3
  57. package/dist/captureWorkflow.d.ts.map +1 -1
  58. package/dist/captureWorkflow.js +100 -17
  59. package/dist/captureWorkflow.js.map +1 -1
  60. package/dist/functionalVerify.d.ts +7 -5
  61. package/dist/functionalVerify.d.ts.map +1 -1
  62. package/dist/functionalVerify.js +71 -19
  63. package/dist/functionalVerify.js.map +1 -1
  64. package/dist/index.d.ts +4 -0
  65. package/dist/index.d.ts.map +1 -1
  66. package/dist/index.js +4 -0
  67. package/dist/index.js.map +1 -1
  68. package/package.json +7 -6
  69. package/src/captureBatchManifest.test.ts +2 -2
  70. package/src/captureBenchmark.e2e.test.ts +95 -0
  71. package/src/captureBenchmark.test.ts +71 -0
  72. package/src/captureEntries.test.ts +27 -1
  73. package/src/captureEntry.test.ts +15 -0
  74. package/src/captureEyes.e2e.test.ts +95 -0
  75. package/src/captureFlightPreset.test.ts +17 -0
  76. package/src/captureManifest.test.ts +26 -0
  77. package/src/capturePage.test.ts +98 -0
  78. package/src/captureProtocol.test.ts +12 -0
  79. package/src/captureReport.test.ts +26 -0
  80. package/src/captureValidation.test.ts +26 -1
  81. package/src/captureWorkflow.test.ts +9 -1
  82. package/src/functionalVerify.test.ts +23 -1
package/README.md CHANGED
@@ -2,6 +2,17 @@
2
2
 
3
3
  Deterministic browser capture and reporting for canvas, DOM, WebGL, and WebGPU pages.
4
4
 
5
+ The package deliberately combines four layers behind one public root: browser orchestration, the versioned page protocol, Flight render-state verification, and Flight's built-in functional/example presets. The files remain separated by responsibility, but they ship and version together because capture correctness depends on Flight's renderer and surface semantics. The root's `browser` condition exposes only the page protocol and adapters, so Vite never loads Node or Playwright modules into a page build.
6
+
7
+ ## Choose the contract
8
+
9
+ - **Observe:** zero page integration. Produces agent eyesight and explicit `usable`, `blank`, `timedOut`, retry, and error diagnostics.
10
+ - **Capture gate:** a manifest plus CLI flags. Produces deterministic screenshots, logs, hashes, and smoke failures.
11
+ - **Verification:** one shared page adapter. Adds asserted non-blank readback, fingerprints, parity, and regression without capture code in each example.
12
+ - **Benchmark:** repeatable page work with backend completion fences, robust statistics, calibrated scores, relative comparisons, and committed performance baselines.
13
+
14
+ Every command writes versioned `status.json` files and an aggregate `report.json` envelope intended for CI and AI agents. Capture retries transient navigation/protocol failures in a fresh page; `observe` retries blank or timed-out attempts while preserving the best full-page evidence from its final attempt.
15
+
5
16
  ## Capture a suite
6
17
 
7
18
  Add a `tool-capture.json` manifest to a package:
@@ -40,19 +51,43 @@ tool-capture capture --dir dist --renderer webgl,webgpu --parallel 4
40
51
 
41
52
  Use `runCaptureSuite` when entries or server lifecycle are generated programmatically. It owns browser setup and teardown, deterministic frame synchronization, parallel or sequential scheduling, baseline policy, interruption, summaries, and the final verdict.
42
53
 
43
- ## Validate fingerprints
54
+ ## Install verification once
55
+
56
+ Import page APIs from the same package root as the CLI/API; browser-aware bundlers select its page-only condition:
57
+
58
+ ```ts
59
+ import { installCaptureElementTarget, installCaptureTarget, verifyCaptureTarget } from '@flighthq/tool-capture';
60
+ ```
61
+
62
+ Raw consumers can register, render, and verify with one call after constructing their normal renderer state:
63
+
64
+ ```ts
65
+ await installCaptureTarget({
66
+ renderer: 'webgl',
67
+ state,
68
+ render: () => renderScene(scene),
69
+ assertRender,
70
+ });
71
+ ```
44
72
 
45
- The same manifest and server options drive the tolerant parity/regression pass when pages publish a render fingerprint:
73
+ An external renderer inside a Flight ecosystem project can register its owned element without manufacturing a Flight render state. Pass the existing WebGL context rather than requesting the canvas context again:
46
74
 
47
- ```js
48
- window.__ftVerification = {
49
- render: 'webgl',
50
- coverage: 1,
51
- fingerprint: '1:25acc0',
52
- };
75
+ ```ts
76
+ await installCaptureElementTarget({
77
+ renderer: 'webgl',
78
+ element: canvas,
79
+ gl,
80
+ render: () => referenceApp.render(),
81
+ });
53
82
  ```
54
83
 
55
- Fingerprints use the `<grid-size>:<rgb-hex>` format produced by `formatSurfaceFingerprint`. Once the page exposes a non-null fingerprint, validation is turn-key:
84
+ The adapter is inert outside a tool-capture browser. During capture it registers readable WebGL/WebGPU state before drawing and publishes the complete versioned terminal contract only after assertions pass. A project whose shared renderer factory already registers the target needs one runner-level line and zero capture-specific lines in each example:
85
+
86
+ ```ts
87
+ await verifyCaptureTarget(exampleModule, renderer);
88
+ ```
89
+
90
+ Fingerprints use the `<grid-size>:<rgb-hex>` format produced by `formatSurfaceFingerprint`. Once the page reaches a terminal verification state, validation is turn-key:
56
91
 
57
92
  ```sh
58
93
  tool-capture validate --dir dist --no-regression
@@ -76,8 +111,57 @@ Optional manifest policy keeps intentional exceptions beside the suite:
76
111
  }
77
112
  ```
78
113
 
114
+ Explicit groups compare any target IDs, including DOM and WASM-backed variants. DOM targets are rasterized to the same normalized 16×16 RGB fingerprint as canvas/GPU targets. A reference produces clear reference-to-target failures instead of an increasingly noisy all-pairs matrix:
115
+
116
+ ```json
117
+ {
118
+ "validation": {
119
+ "parityGroups": {
120
+ "visual": {
121
+ "targets": ["dom", "canvas", "webgl", "webgpu", "wasm:webgl"],
122
+ "reference": "canvas",
123
+ "tolerance": 15
124
+ }
125
+ }
126
+ }
127
+ }
128
+ ```
129
+
130
+ Legacy manifests retain raster-only all-pairs behavior. Explicit groups are same-run comparisons and do not require committed regression fingerprints, though each target still reports its independent regression-baseline status.
131
+
79
132
  `runCaptureValidation` exposes the same validation lifecycle programmatically. Comparison tolerances and baseline formats come from `@flighthq/capture`; `tool-capture` owns browser execution and reporting.
80
133
 
134
+ ## Benchmark repeatable render work
135
+
136
+ `installCaptureTarget({ render })` and Flight's normal functional-target registration automatically expose the last rendered scene as benchmark work. Custom/WASM pages can call `registerCaptureBenchmarkTarget({ kind, run, synchronize })`; `synchronize` must fence submitted work. Screenshots, fingerprinting, page startup, and calibration are outside timed intervals.
137
+
138
+ ```json
139
+ {
140
+ "benchmark": {
141
+ "reference": "canvas",
142
+ "warmupIterations": 3,
143
+ "iterations": 10,
144
+ "samples": 7,
145
+ "sampleDurationMs": 20,
146
+ "maxRetries": 1,
147
+ "regressionTolerance": 0.2,
148
+ "stabilityTolerance": 0.1
149
+ }
150
+ }
151
+ ```
152
+
153
+ ```sh
154
+ tool-capture benchmark --dir dist --update-benchmarks
155
+ tool-capture benchmark --dir dist
156
+ tool-capture benchmark --url http://localhost:5173 --renderer canvas,webgl --samples 11
157
+ ```
158
+
159
+ The update command writes stable baselines to `<subject>/benchmarks/<entry>.json`; a target whose median absolute deviation exceeds the configured stability tolerance is not baselined. Transient navigation, browser, and protocol failures retry in a fresh page (`maxRetries`, default 1), while deterministic verification failures do not. Every run writes `.artifacts/<subject>/benchmark-report.json` with raw samples, median, p95, MAD, retry count, browser/host metadata, CPU/GPU calibration throughput, normalized work, reference ratios, baseline choice, and percentage change.
160
+
161
+ `iterations` is a minimum: the runner adaptively increases it until each timed sample reaches `sampleDurationMs`, avoiding zero-duration and timer-quantization noise for very fast targets.
162
+
163
+ No calibration makes performance completely host-independent: renderer workloads stress different parts of CPUs, drivers, and GPUs. The gate therefore prefers a same-run ratio when `reference` is available, because shared host conditions cancel best. Choose a reference with a comparable resource path; a CPU-DOM versus discrete-GPU ratio still reflects that machine's CPU/GPU balance. Otherwise the gate compares `median × calibration throughput`, an estimate of host-normalized work. Keep raw medians for same-machine trends, use ratios for heterogeneous CI, and treat calibrated scores as a useful secondary signal rather than a physical unit. Benchmarks run serially by design so ordinary capture worker concurrency cannot contaminate them.
164
+
81
165
  ## Batch many resources and subjects
82
166
 
83
167
  Treat each resource as an entry. Routes may point at one reusable preview page with resource and renderer query parameters, so large catalogs need no generated HTML:
@@ -123,7 +207,7 @@ The existing `capture` and `validate` baseline commands remain independent. To r
123
207
  {
124
208
  "name": "shaders",
125
209
  "args": ["--manifest=packages/shaders/tool-capture.json", "--dir=packages/shaders/dist"],
126
- "operations": ["validate"]
210
+ "operations": ["validate", "benchmark"]
127
211
  }
128
212
  ]
129
213
  }
@@ -136,12 +220,12 @@ tool-capture batch --filter terrain --renderer webgl,webgpu
136
220
  tool-capture batch --subjects-parallel 2
137
221
  ```
138
222
 
139
- Arguments after `batch` override each subject's defaults. Subjects run sequentially unless `--subjects-parallel` is set; entries use each subject's `--parallel` worker pool. Capture and validation reuse the subject's server, avoiding a second build/startup. `runCaptureWorkflow` and `runCaptureBatch` provide the same composition for generated resource catalogs.
223
+ Arguments after `batch` override each subject's defaults. Subjects run sequentially unless `--subjects-parallel` is set; targets use each subject's `--parallel` worker pool. All operations reuse the subject's server, and capture/validation share a browser so capture-supplied fingerprints avoid validation reloads. Before benchmarking, that parallel visual browser is closed and a clean serial browser is launched so GPU/process contention cannot contaminate timing. Standalone validation flattens entries × renderers into the same balanced page queue. `runCaptureWorkflow` and `runCaptureBatch` provide the same composition for generated resource catalogs.
140
224
 
141
225
  ## Observe one page
142
226
 
143
- `observe` is the zero-integration eyes primitive. It always emits the best available screenshot and diagnostics rather than enforcing a suite gate:
227
+ `observe` is the zero-integration eyes primitive. It actively polls presented pixels, ignores dev-server WebSocket shutdown noise, and retries twice by default. If a canvas remains blank, it captures the full page so an error overlay or loading UI is visible instead of cropping the only useful evidence away. A clean blank result exits nonzero, but `screenshot.png`, `status.json`, and `report.json` remain available:
144
228
 
145
229
  ```sh
146
- tool-capture observe http://localhost:5173/example --out capture
230
+ tool-capture observe http://localhost:5173/example --out capture --retries 2
147
231
  ```
package/dist/bin.js CHANGED
@@ -3,12 +3,14 @@
3
3
  // - observe <url>: one arbitrary page, zero integration, always emit eyes + diagnostics.
4
4
  // - capture: a full entry × renderer report from a JSON manifest or Flight's built-in suites.
5
5
  // - validate: tolerant regression/parity fingerprints over the same suite.
6
- // - batch: capture + validate workflow over many independently-configured subjects.
6
+ // - batch: capture + validate + benchmark workflow over many independently-configured subjects.
7
7
  import { existsSync } from 'node:fs';
8
8
  import { resolve } from 'node:path';
9
9
  import { readCaptureBatchManifest } from './captureBatchManifest.js';
10
+ import { runCaptureBenchmark } from './captureBenchmark.js';
10
11
  import { discoverEntries } from './captureEntries.js';
11
12
  import { captureUrl } from './captureEntry.js';
13
+ import { getFlightCaptureValidationPreset } from './captureFlightPreset.js';
12
14
  import { isBrowserClosedError } from './captureInterrupt.js';
13
15
  import { readCaptureManifest } from './captureManifest.js';
14
16
  import { resolveCaptureDirectoryServer, resolveServer, resolveStaticServer } from './captureServer.js';
@@ -16,22 +18,30 @@ import { runCaptureSuite } from './captureSuite.js';
16
18
  import { runCaptureValidation } from './captureValidation.js';
17
19
  import { runCaptureBatch } from './captureWorkflow.js';
18
20
  const USAGE = `usage:
19
- tool-capture observe <url> [--out <dir>] [--wait <ms>] [--frames <n>]
21
+ tool-capture observe <url> [--out <dir>] [--wait <ms>] [--frames <n>] [--retries <n>]
20
22
  tool-capture capture [--manifest <file>] (--url <url> | --dir <built-dir>) [options]
21
23
  tool-capture capture --tool <examples|functional> [options]
22
24
  tool-capture validate [--manifest <file>] (--url <url> | --dir <built-dir>) [options]
23
25
  tool-capture validate --tool <examples|functional> [options]
26
+ tool-capture benchmark [--manifest <file>] (--url <url> | --dir <built-dir>) [options]
27
+ tool-capture benchmark --tool <examples|functional> [options]
24
28
  tool-capture batch [--config <file>] [--only <subject>] [--subjects-parallel <n>] [options]
25
29
 
26
30
  capture options:
27
31
  --filter <name> --renderer <ids> --out <dir> --wait <ms> --frames <n>
28
32
  --parallel <n> --sequential --dev --build --update-baseline --fail-on-changed
29
- --fail-on-error --verify --no-verify --observe
33
+ --fail-on-error --verify --no-verify --observe --retries <n>
34
+
35
+ Every command writes a versioned aggregate JSON report beneath its artifact directory.
30
36
 
31
37
  validation options:
32
38
  --report --update-fingerprints --no-regression --no-parity
33
39
  --stability-epsilon <n> --regression-tolerance <n> --parity-tolerance <n>
34
40
 
41
+ benchmark options:
42
+ --warmup <n> --iterations <n> --samples <n> --sample-duration <ms> --benchmark-reference <renderer>
43
+ --performance-tolerance <fraction> --stability-tolerance <fraction> --retries <n> --update-benchmarks
44
+
35
45
  batch options:
36
46
  --config <file> defaults to tool-capture.batch.json; remaining options override every subject
37
47
 
@@ -126,8 +136,20 @@ async function validate(argv) {
126
136
  return 130;
127
137
  return result.shouldFail ? 1 : 0;
128
138
  }
139
+ async function benchmark(argv) {
140
+ const { subject, entries, server, root, manifest } = await resolveCaptureCliSuite(argv);
141
+ const result = await runCaptureBenchmark({
142
+ ...benchmarkOptions(argv, manifest),
143
+ subject,
144
+ entries,
145
+ server,
146
+ root,
147
+ });
148
+ return result.shouldFail ? 1 : 0;
149
+ }
129
150
  function captureOptions(argv) {
130
151
  const frames = flag(argv, 'frames');
152
+ const observe = hasFlag(argv, 'observe');
131
153
  return {
132
154
  outBase: flag(argv, 'out') ?? '.artifacts',
133
155
  filter: flag(argv, 'filter'),
@@ -139,11 +161,13 @@ function captureOptions(argv) {
139
161
  updateBaseline: hasFlag(argv, 'update-baseline'),
140
162
  failOnChanged: hasFlag(argv, 'fail-on-changed'),
141
163
  failOnError: hasFlag(argv, 'fail-on-error'),
142
- observe: hasFlag(argv, 'observe'),
164
+ observe,
143
165
  verify: hasFlag(argv, 'verify') ? true : hasFlag(argv, 'no-verify') ? false : undefined,
166
+ maxRetries: parseNonNegativeInteger(flag(argv, 'retries'), observe ? 2 : 1),
144
167
  };
145
168
  }
146
169
  function validationOptions(argv, subject, manifest) {
170
+ const preset = getFlightCaptureValidationPreset(subject);
147
171
  return {
148
172
  filter: flag(argv, 'filter'),
149
173
  rendererFilter: (flag(argv, 'renderer') ?? '').split(',').filter(Boolean),
@@ -157,8 +181,25 @@ function validationOptions(argv, subject, manifest) {
157
181
  parityTolerance: parseNumber(flag(argv, 'parity-tolerance')),
158
182
  sequential: hasFlag(argv, 'sequential'),
159
183
  workerCount: Math.max(1, parseNonNegativeInteger(flag(argv, 'parallel'), 6)),
160
- fingerprintSkip: manifest?.validation?.fingerprintSkip ?? (manifest === null && subject === 'examples' ? ['playingsound'] : []),
161
- paritySkip: manifest?.validation?.paritySkip ?? (manifest === null ? FLIGHT_PARITY_SKIP : {}),
184
+ fingerprintSkip: manifest?.validation?.fingerprintSkip ?? (manifest === null ? preset.fingerprintSkip : []),
185
+ paritySkip: manifest?.validation?.paritySkip ?? (manifest === null ? preset.paritySkip : {}),
186
+ parityGroups: manifest?.validation?.parityGroups ?? (manifest === null ? preset.parityGroups : undefined),
187
+ };
188
+ }
189
+ function benchmarkOptions(argv, manifest) {
190
+ const configured = manifest?.benchmark;
191
+ return {
192
+ filter: flag(argv, 'filter'),
193
+ rendererFilter: (flag(argv, 'renderer') ?? '').split(',').filter(Boolean),
194
+ warmupIterations: parseNonNegativeInteger(flag(argv, 'warmup'), configured?.warmupIterations ?? 3),
195
+ iterations: Math.max(1, parseNonNegativeInteger(flag(argv, 'iterations'), configured?.iterations ?? 10)),
196
+ samples: Math.max(3, parseNonNegativeInteger(flag(argv, 'samples'), configured?.samples ?? 7)),
197
+ sampleDurationMs: parseNumber(flag(argv, 'sample-duration')) ?? configured?.sampleDurationMs,
198
+ maxRetries: parseNonNegativeInteger(flag(argv, 'retries'), configured?.maxRetries ?? 1),
199
+ reference: flag(argv, 'benchmark-reference') ?? configured?.reference,
200
+ regressionTolerance: parseNumber(flag(argv, 'performance-tolerance')) ?? configured?.regressionTolerance,
201
+ stabilityTolerance: parseNumber(flag(argv, 'stability-tolerance')) ?? configured?.stabilityTolerance,
202
+ updateBaselines: hasFlag(argv, 'update-benchmarks'),
162
203
  };
163
204
  }
164
205
  async function batch(argv) {
@@ -186,6 +227,7 @@ async function batch(argv) {
186
227
  validation: operations.has('validate')
187
228
  ? validationOptions(subjectArgv, suite.subject, suite.manifest)
188
229
  : false,
230
+ benchmark: operations.has('benchmark') ? benchmarkOptions(subjectArgv, suite.manifest) : false,
189
231
  };
190
232
  },
191
233
  }));
@@ -194,6 +236,7 @@ async function batch(argv) {
194
236
  const result = await runCaptureBatch({
195
237
  subjects,
196
238
  subjectWorkerCount: Math.max(1, parseNonNegativeInteger(flag(argv, 'subjects-parallel'), 1)),
239
+ reportPath: resolve(root, '.artifacts', 'capture-batch-report.json'),
197
240
  });
198
241
  if (result.aborted)
199
242
  return 130;
@@ -210,15 +253,18 @@ async function main() {
210
253
  outDir,
211
254
  wait: parseNonNegativeInteger(flag(argv, 'wait'), 0),
212
255
  captureFrames: parseNonNegativeInteger(flag(argv, 'frames'), 1) || 1,
256
+ maxRetries: parseNonNegativeInteger(flag(argv, 'retries'), 2),
213
257
  });
214
258
  console.log(`captured → ${resolve(outDir, 'screenshot.png')}`);
215
259
  console.log(`observe ${JSON.stringify(diagnostics)}`);
216
- process.exit(0);
260
+ process.exit(diagnostics.blank || !diagnostics.usable ? 1 : 0);
217
261
  }
218
262
  if (command === 'capture')
219
263
  process.exit(await capture(argv));
220
264
  if (command === 'validate')
221
265
  process.exit(await validate(argv));
266
+ if (command === 'benchmark')
267
+ process.exit(await benchmark(argv));
222
268
  if (command === 'batch')
223
269
  process.exit(await batch(argv));
224
270
  console.error(USAGE);
@@ -248,17 +294,6 @@ function removeBatchOptions(argv) {
248
294
  }
249
295
  return result;
250
296
  }
251
- const FLIGHT_PARITY_SKIP = {
252
- playingvideo: 'all',
253
- 'effect-hue-saturation': ['canvas'],
254
- 'effect-lens-distortion': ['canvas'],
255
- 'effect-lens-flare': ['canvas'],
256
- 'effect-posterize': ['canvas'],
257
- 'effect-vignette': ['canvas'],
258
- 'effect-displacement': 'all',
259
- 'effect-god-rays': 'all',
260
- 'effect-screen-space-fog': 'all',
261
- };
262
297
  main().catch((err) => {
263
298
  if (isBrowserClosedError(err))
264
299
  process.exit(130);
package/dist/bin.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"bin.js","sourceRoot":"","sources":["../src/bin.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bin.js","sourceRoot":"","sources":["../src/bin.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export * from './capturePage';
2
+ export * from './captureProtocol';
3
+ export * from './functionalVerify';
4
+ //# sourceMappingURL=browser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"browser.d.ts","sourceRoot":"","sources":["../src/browser.ts"],"names":[],"mappings":"AAEA,cAAc,eAAe,CAAC;AAC9B,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC"}
@@ -0,0 +1,6 @@
1
+ // Browser condition for the package's single public root. Keep this entry limited to the page-side
2
+ // protocol and adapters: importing it from Vite must never make Rollup parse Node/Playwright runners.
3
+ export * from './capturePage';
4
+ export * from './captureProtocol';
5
+ export * from './functionalVerify';
6
+ //# sourceMappingURL=browser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"browser.js","sourceRoot":"","sources":["../src/browser.ts"],"names":[],"mappings":"AAAA,mGAAmG;AACnG,sGAAsG;AACtG,cAAc,eAAe,CAAC;AAC9B,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC"}
@@ -1,4 +1,4 @@
1
- export type CaptureBatchOperation = 'capture' | 'validate';
1
+ export type CaptureBatchOperation = 'capture' | 'validate' | 'benchmark';
2
2
  export interface CaptureBatchManifestSubject {
3
3
  name: string;
4
4
  args: string[];
@@ -1 +1 @@
1
- {"version":3,"file":"captureBatchManifest.d.ts","sourceRoot":"","sources":["../src/captureBatchManifest.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,qBAAqB,GAAG,SAAS,GAAG,UAAU,CAAC;AAE3D,MAAM,WAAW,2BAA2B;IAC1C,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,UAAU,CAAC,EAAE,qBAAqB,EAAE,CAAC;CACtC;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,2BAA2B,EAAE,CAAC;CACzC;AAED,4GAA4G;AAC5G,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,MAAM,EACd,UAAU,GAAE,MAAiC,GAC5C,oBAAoB,CAoBtB;AAED,2DAA2D;AAC3D,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,MAAM,GAAG,oBAAoB,CAE3E"}
1
+ {"version":3,"file":"captureBatchManifest.d.ts","sourceRoot":"","sources":["../src/captureBatchManifest.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,qBAAqB,GAAG,SAAS,GAAG,UAAU,GAAG,WAAW,CAAC;AAEzE,MAAM,WAAW,2BAA2B;IAC1C,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,UAAU,CAAC,EAAE,qBAAqB,EAAE,CAAC;CACtC;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,2BAA2B,EAAE,CAAC;CACzC;AAED,4GAA4G;AAC5G,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,MAAM,EACd,UAAU,GAAE,MAAiC,GAC5C,oBAAoB,CAsBtB;AAED,2DAA2D;AAC3D,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,MAAM,GAAG,oBAAoB,CAE3E"}
@@ -14,7 +14,7 @@ export function parseCaptureBatchManifest(source, sourceName = 'capture batch ma
14
14
  if (subject.operations !== undefined &&
15
15
  (!Array.isArray(subject.operations) ||
16
16
  subject.operations.length === 0 ||
17
- subject.operations.some((operation) => operation !== 'capture' && operation !== 'validate'))) {
17
+ subject.operations.some((operation) => operation !== 'capture' && operation !== 'validate' && operation !== 'benchmark'))) {
18
18
  throw new Error(`${sourceName}: subject ${subject.name} has invalid operations`);
19
19
  }
20
20
  }
@@ -1 +1 @@
1
- {"version":3,"file":"captureBatchManifest.js","sourceRoot":"","sources":["../src/captureBatchManifest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAcvC,4GAA4G;AAC5G,MAAM,UAAU,yBAAyB,CACvC,MAAc,EACd,aAAqB,wBAAwB;IAE7C,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAkC,CAAC;IAClE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAClE,MAAM,IAAI,KAAK,CAAC,GAAG,UAAU,oCAAoC,CAAC,CAAC;IACrE,CAAC;IACD,KAAK,MAAM,OAAO,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;QACrC,IAAI,OAAO,OAAO,EAAE,IAAI,KAAK,QAAQ,IAAI,OAAO,CAAC,IAAI,KAAK,EAAE,EAAE,CAAC;YAC7D,MAAM,IAAI,KAAK,CAAC,GAAG,UAAU,8BAA8B,CAAC,CAAC;QAC/D,CAAC;QACD,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,GAAG,UAAU,aAAa,OAAO,CAAC,IAAI,sBAAsB,CAAC,CAAC;QAChH,IACE,OAAO,CAAC,UAAU,KAAK,SAAS;YAChC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC;gBACjC,OAAO,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC;gBAC/B,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,KAAK,SAAS,IAAI,SAAS,KAAK,UAAU,CAAC,CAAC,EAC9F,CAAC;YACD,MAAM,IAAI,KAAK,CAAC,GAAG,UAAU,aAAa,OAAO,CAAC,IAAI,yBAAyB,CAAC,CAAC;QACnF,CAAC;IACH,CAAC;IACD,OAAO,KAA6B,CAAC;AACvC,CAAC;AAED,2DAA2D;AAC3D,MAAM,UAAU,wBAAwB,CAAC,IAAY;IACnD,OAAO,yBAAyB,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,IAAI,CAAC,CAAC;AACrE,CAAC;AAED,SAAS,aAAa,CAAC,KAAc;IACnC,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC;AACjF,CAAC"}
1
+ {"version":3,"file":"captureBatchManifest.js","sourceRoot":"","sources":["../src/captureBatchManifest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAcvC,4GAA4G;AAC5G,MAAM,UAAU,yBAAyB,CACvC,MAAc,EACd,aAAqB,wBAAwB;IAE7C,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAkC,CAAC;IAClE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAClE,MAAM,IAAI,KAAK,CAAC,GAAG,UAAU,oCAAoC,CAAC,CAAC;IACrE,CAAC;IACD,KAAK,MAAM,OAAO,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;QACrC,IAAI,OAAO,OAAO,EAAE,IAAI,KAAK,QAAQ,IAAI,OAAO,CAAC,IAAI,KAAK,EAAE,EAAE,CAAC;YAC7D,MAAM,IAAI,KAAK,CAAC,GAAG,UAAU,8BAA8B,CAAC,CAAC;QAC/D,CAAC;QACD,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,GAAG,UAAU,aAAa,OAAO,CAAC,IAAI,sBAAsB,CAAC,CAAC;QAChH,IACE,OAAO,CAAC,UAAU,KAAK,SAAS;YAChC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC;gBACjC,OAAO,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC;gBAC/B,OAAO,CAAC,UAAU,CAAC,IAAI,CACrB,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,KAAK,SAAS,IAAI,SAAS,KAAK,UAAU,IAAI,SAAS,KAAK,WAAW,CAChG,CAAC,EACJ,CAAC;YACD,MAAM,IAAI,KAAK,CAAC,GAAG,UAAU,aAAa,OAAO,CAAC,IAAI,yBAAyB,CAAC,CAAC;QACnF,CAAC;IACH,CAAC;IACD,OAAO,KAA6B,CAAC;AACvC,CAAC;AAED,2DAA2D;AAC3D,MAAM,UAAU,wBAAwB,CAAC,IAAY;IACnD,OAAO,yBAAyB,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,IAAI,CAAC,CAAC;AACrE,CAAC;AAED,SAAS,aAAa,CAAC,KAAc;IACnC,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC;AACjF,CAAC"}
@@ -0,0 +1,79 @@
1
+ import type { CaptureBrowserSession } from './captureBrowser.js';
2
+ import type { Entry } from './captureEntries.js';
3
+ import type { Server } from './captureServer.js';
4
+ export declare const CAPTURE_BENCHMARK_VERSION: 1;
5
+ export interface CaptureBenchmarkOptions {
6
+ subject: string;
7
+ entries: Readonly<Entry[]>;
8
+ server: Server;
9
+ root?: string;
10
+ filter?: string;
11
+ rendererFilter?: Readonly<string[]>;
12
+ warmupIterations?: number;
13
+ iterations?: number;
14
+ samples?: number;
15
+ /** Minimum duration of each timed sample; iteration count adapts upward to reach it. */
16
+ sampleDurationMs?: number;
17
+ /** Fresh-page retries for transient navigation/protocol timeouts. Default: 1. */
18
+ maxRetries?: number;
19
+ /** Renderer used for same-entry ratios, for example canvas. */
20
+ reference?: string;
21
+ /** Maximum accepted slowdown as a fraction (0.2 = 20%). */
22
+ regressionTolerance?: number;
23
+ /** Maximum median absolute deviation / median accepted while updating a baseline. */
24
+ stabilityTolerance?: number;
25
+ updateBaselines?: boolean;
26
+ browserSession?: CaptureBrowserSession;
27
+ reportPath?: string | false;
28
+ }
29
+ export interface CaptureBenchmarkStatistics {
30
+ medianMs: number;
31
+ p95Ms: number;
32
+ madMs: number;
33
+ relativeMad: number;
34
+ minMs: number;
35
+ maxMs: number;
36
+ }
37
+ export interface CaptureBenchmarkCalibration {
38
+ cpuOperationsPerMs: number;
39
+ gpuOperationsPerMs: number | null;
40
+ userAgent: string;
41
+ hardwareConcurrency: number;
42
+ platform: string;
43
+ }
44
+ export interface CaptureBenchmarkTargetResult {
45
+ entry: string;
46
+ renderer: string;
47
+ kind: string;
48
+ samplesMs: number[];
49
+ iterations: number;
50
+ retries: number;
51
+ statistics: CaptureBenchmarkStatistics | null;
52
+ normalizedWork: number | null;
53
+ referenceRatio: number | null;
54
+ baselineMetric: 'referenceRatio' | 'normalizedWork' | null;
55
+ baselineValue: number | null;
56
+ change: number | null;
57
+ status: 'passed' | 'failed' | 'skipped' | 'updated';
58
+ error: string | null;
59
+ }
60
+ export interface CaptureBenchmarkResult {
61
+ aborted: boolean;
62
+ calibration: CaptureBenchmarkCalibration;
63
+ durationMs: number;
64
+ failed: number;
65
+ passed: number;
66
+ skipped: number;
67
+ updated: number;
68
+ shouldFail: boolean;
69
+ targets: CaptureBenchmarkTargetResult[];
70
+ reportPath: string | null;
71
+ }
72
+ export declare function calculateCaptureBenchmarkStatistics(samples: readonly number[]): CaptureBenchmarkStatistics;
73
+ export declare function evaluateCaptureBenchmarkRegression(current: number, baseline: number, tolerance: number): {
74
+ change: number;
75
+ pass: boolean;
76
+ };
77
+ export declare function getCaptureBenchmarkBaselinePath(root: string, subject: string, entry: string): string;
78
+ export declare function runCaptureBenchmark(options: Readonly<CaptureBenchmarkOptions>): Promise<CaptureBenchmarkResult>;
79
+ //# sourceMappingURL=captureBenchmark.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"captureBenchmark.d.ts","sourceRoot":"","sources":["../src/captureBenchmark.ts"],"names":[],"mappings":"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"}