cbrowser 18.71.0 → 18.72.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.
@@ -1 +1 @@
1
- {"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../src/recording/engine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../src/recording/engine.ts"],"names":[],"mappings":"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"}
@@ -32,9 +32,9 @@ import { existsSync, mkdirSync, writeFileSync } from "node:fs";
32
32
  import { join, relative } from "node:path";
33
33
  import { buildContactSheet } from "./contact-sheet.js";
34
34
  import { encodeGif, encodeMp4, encodeWebm, encodeWebp, MissingEncoderError } from "./encoders.js";
35
- import { detectChangePoints, frameSignature, ssim } from "./ssim.js";
35
+ import { changeScore, detectChangePoints, frameSignature } from "./ssim.js";
36
36
  import { clampRect, expandForPlayback, findFrameGaps } from "./timing.js";
37
- import { MANIFEST_VERSION, parseManifest, } from "./types.js";
37
+ import { CHANGE_SATURATION_RATIO, MANIFEST_VERSION, SSIM_THRESHOLDS, parseManifest, } from "./types.js";
38
38
  /** Default ceiling on how long any trigger may wait. */
39
39
  export const DEFAULT_TRIGGER_TIMEOUT_MS = 30_000;
40
40
  /** Human-readable trigger label for the manifest. */
@@ -54,35 +54,28 @@ function describeStopTrigger(trigger) {
54
54
  const DEFAULT_FPS = 10;
55
55
  const DEFAULT_QUALITY = 80;
56
56
  const DEFAULT_MAX_FRAMES = 3000;
57
- /**
58
- * SSIM below this against the previous frame marks a change point. Screencast
59
- * JPEG noise on an unchanged region sits well above 0.99, so 0.9 separates real
60
- * motion from compression jitter without firing on every frame of a video.
61
- */
62
- const CHANGE_THRESHOLD = 0.9;
63
- /**
64
- * SSIM below this marks a frame as a change point.
57
+ /*
58
+ * The change thresholds and the saturation ratio live in types.ts, next to the
59
+ * schema that documents them, and are imported rather than restated here.
60
+ * Two copies of a number that must agree is how they stop agreeing.
65
61
  *
66
- * Deliberately far stricter than CHANGE_THRESHOLD, which stays the bar for
67
- * `anomaly` (a big visual jump). change_points answers the question the
68
- * manifest exists to answer - "when did the page change" - and at 0.9 the
69
- * answer was NOTHING for a form fill: text typed into an input on a 1280x800
70
- * page scores ~0.998, and a whole daemon-recorded flow of two fills produced
71
- * zero change points. Measured on this box: a genuinely still page scores
72
- * exactly 1.00000, so 0.999 catches real changes without firing on JPEG noise.
73
- */
74
- const CHANGE_POINT_THRESHOLD = 0.999;
75
- /**
76
- * SSIM above this means "nothing moved" for the idle stop trigger.
62
+ * Two tiers, because one threshold cannot answer both questions a reader asks:
63
+ * SSIM_THRESHOLDS.key (0.9) -> key_frames: "something notable happened"
64
+ * SSIM_THRESHOLDS.change (0.999) -> change_points: "anything changed at all"
77
65
  *
78
- * Same comparator as CHANGE_THRESHOLD, deliberately different sensitivity:
79
- * change_points answers "did something SIGNIFICANT happen", idle answers "did
80
- * anything happen at all". Measured on this box, consecutive frames of a
81
- * continuously animating page score 0.81-0.97 while a genuinely still page
82
- * scores exactly 1.00000, so 0.999 separates them with room to spare. Reusing
83
- * 0.9 here reports a visibly animating page as idle.
66
+ * 0.9 alone was blind to the events this feature exists to record (a form fill
67
+ * on a 1280x800 page scores ~0.998); 0.999 alone saturates on an animating page
68
+ * (measured 31 of 32 frames), and a filter that matches everything looks
69
+ * identical to one that works.
70
+ */
71
+ /*
72
+ * There is no separate idle threshold. --until-idle uses changeScore against
73
+ * SSIM_THRESHOLDS.change, the same comparator and bar the manifest's
74
+ * change_points use (D-7: one definition of "the page changed"). Consequence,
75
+ * and it is correct: a page with a ticking clock or ticker never goes idle,
76
+ * because it IS changing every frame - which is exactly what --timeout is the
77
+ * backstop for (ISC-45). The capture help says so.
84
78
  */
85
- const IDLE_THRESHOLD = 0.999;
86
79
  /**
87
80
  * Slack allowed when matching a paint event to its slot on the frame grid.
88
81
  * Paint events land a few milliseconds either side of the nominal boundary;
@@ -537,7 +530,10 @@ export class VideoCaptureSession {
537
530
  .then(() => this.writeQueue)
538
531
  .then(() => frameSignature(frame.path))
539
532
  .then((signature) => {
540
- if (this.idleSignature && ssim(this.idleSignature, signature) < IDLE_THRESHOLD) {
533
+ // D-7: ONE definition of "the page changed". Idle reuses the same
534
+ // changeScore comparator and the same change threshold the manifest
535
+ // reports, so "changed" means the same thing live and on disk.
536
+ if (this.idleSignature && changeScore(this.idleSignature, signature) < SSIM_THRESHOLDS.change) {
541
537
  this.lastChangeMs = Date.now();
542
538
  }
543
539
  this.idleSignature = signature;
@@ -746,10 +742,11 @@ export class VideoCaptureSession {
746
742
  }
747
743
  async buildManifest(durationMs) {
748
744
  const scores = await this.scoreFrames();
749
- const changePoints = detectChangePoints(scores, CHANGE_POINT_THRESHOLD);
750
- // `anomaly` keeps the stricter "something jumped" meaning, so the two
751
- // fields answer different questions instead of duplicating one.
752
- const anomalies = new Set(detectChangePoints(scores, CHANGE_THRESHOLD));
745
+ const changePoints = detectChangePoints(scores, SSIM_THRESHOLDS.change);
746
+ // The sparse tier. Derived from the same comparator and the same scores, so
747
+ // key_frames and the per-frame `anomaly` flags cannot disagree.
748
+ const keyFrames = detectChangePoints(scores, SSIM_THRESHOLDS.key);
749
+ const anomalies = new Set(keyFrames);
753
750
  const tMs = this.frames.map((f) => f.tMs);
754
751
  const frames = this.frames.map((f, i) => ({
755
752
  index: f.index,
@@ -779,6 +776,10 @@ export class VideoCaptureSession {
779
776
  output_dims: this.outputDims,
780
777
  frames,
781
778
  change_points: changePoints,
779
+ key_frames: keyFrames,
780
+ change_points_saturated: frames.length > 0 && changePoints.length > frames.length * CHANGE_SATURATION_RATIO,
781
+ ssim_thresholds: { ...SSIM_THRESHOLDS },
782
+ method: "changeScore-window-min",
782
783
  frame_gaps: tMs.length > 0 ? findFrameGaps(tMs, this.opts.fps) : [],
783
784
  region_clamped: this.regionClamped,
784
785
  artifacts: {},
@@ -797,7 +798,12 @@ export class VideoCaptureSession {
797
798
  catch {
798
799
  // An unreadable frame scores null rather than poisoning its neighbours.
799
800
  }
800
- scores.push(previous && signature ? ssim(previous, signature) : null);
801
+ // changeScore (window-min SSIM), not global ssim: a change score is the
802
+ // number the tiers and ssim_thresholds are computed from, so scores and
803
+ // thresholds are on ONE scale. Global ssim diluted a localized change
804
+ // into a whole-frame average, which is why a form fill on a large
805
+ // viewport scored ~0.998 and registered as nothing.
806
+ scores.push(previous && signature ? changeScore(previous, signature) : null);
801
807
  if (signature)
802
808
  previous = signature;
803
809
  }
@@ -1 +1 @@
1
- {"version":3,"file":"engine.js","sourceRoot":"","sources":["../../src/recording/engine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"engine.js","sourceRoot":"","sources":["../../src/recording/engine.ts"],"names":[],"mappings":"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"}
@@ -25,6 +25,49 @@ export declare function frameSignature(input: Buffer | string, size?: number): P
25
25
  * @throws if the signatures differ in length or are empty.
26
26
  */
27
27
  export declare function ssim(a: Float32Array, b: Float32Array): number;
28
+ /** Edge length of the window grid used by {@link changeScore}. */
29
+ export declare const CHANGE_WINDOW = 8;
30
+ /**
31
+ * Change score: the MINIMUM SSIM across a grid of windows.
32
+ *
33
+ * {@link ssim} is global — one statistic over the whole frame — which makes it
34
+ * a quality-assessment metric. Asked a detection question it fails badly: a
35
+ * small localized change is diluted by the unchanged remainder of the frame.
36
+ * Measured on a 1280x800 page differing only by a 12px counter, global SSIM
37
+ * reads 0.999989 at a 128px signature and still 0.999254 at 1024px, so NO
38
+ * threshold below 1.0 can see it. Raising resolution does not help, and neither
39
+ * does averaging the windows (mean-over-windows scored 0.999956 — dilution
40
+ * again). Taking the minimum does: the same pair reads 0.901 at 512px.
41
+ *
42
+ * So: mean-over-windows for "how similar are these images", minimum-over-windows
43
+ * for "did any part of this image change". This is the latter.
44
+ *
45
+ * Identical inputs return exactly 1 and the score is symmetric, for the same
46
+ * reasons as {@link ssim} — every window is computed by the same loop shape.
47
+ *
48
+ * RESOLUTION LIMIT (measured, not incidental). The score is far more stable
49
+ * across viewport size than global SSIM, but only for changes large enough to
50
+ * survive the fixed `size`x`size` downsample. A change occupying less than
51
+ * roughly one window (`window/size` of a frame edge, ~6% at the defaults) can be
52
+ * averaged away before the windows see it — and how much of the frame it
53
+ * occupies is itself viewport-relative, so the downsample reintroduces exactly
54
+ * the viewport-dependence min-over-windows removes at the SSIM step, just moved
55
+ * to the resampling step. Measured on a 7-character status-word flip: at a 128px
56
+ * signature its tier membership varied across 600px-2560px viewports (key /
57
+ * change / none); at 512px it was stable (always key). A form fill, being a
58
+ * larger region, is stable at 128px. Pick `size` for the smallest change that
59
+ * must be reliably classified, against the per-frame CPU cost (512px is ~5x
60
+ * 128px). The default 128 is right for real interactions; sub-resolution changes
61
+ * on very large viewports need a larger signature.
62
+ *
63
+ * @param size Edge length of the square signature. Inferred from `a.length`
64
+ * when omitted.
65
+ * @throws on length mismatch, empty input, or a non-square signature.
66
+ */
67
+ export declare function changeScore(a: Float32Array, b: Float32Array, options?: {
68
+ size?: number;
69
+ window?: number;
70
+ }): number;
28
71
  /**
29
72
  * Indices whose SSIM against the previous frame fell below `threshold`.
30
73
  *
@@ -1 +1 @@
1
- {"version":3,"file":"ssim.d.ts","sourceRoot":"","sources":["../../src/recording/ssim.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAkBH;;;;;;;;;GASG;AACH,wBAAsB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,IAAI,SAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAyB9F;AAED;;;;;;;;;GASG;AACH,wBAAgB,IAAI,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,YAAY,GAAG,MAAM,CAyC7D;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE,CAQzF"}
1
+ {"version":3,"file":"ssim.d.ts","sourceRoot":"","sources":["../../src/recording/ssim.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAkBH;;;;;;;;;GASG;AACH,wBAAsB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,IAAI,SAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAyB9F;AAED;;;;;;;;;GASG;AACH,wBAAgB,IAAI,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,YAAY,GAAG,MAAM,CAyC7D;AAGD,kEAAkE;AAClE,eAAO,MAAM,aAAa,IAAI,CAAC;AAE/B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,wBAAgB,WAAW,CACzB,CAAC,EAAE,YAAY,EACf,CAAC,EAAE,YAAY,EACf,OAAO,GAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAO,GAC/C,MAAM,CAgER;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE,CAQzF"}
@@ -93,6 +93,102 @@ export function ssim(a, b) {
93
93
  const score = numerator / denominator;
94
94
  return Math.min(1, Math.max(-1, score));
95
95
  }
96
+ /** Edge length of the window grid used by {@link changeScore}. */
97
+ export const CHANGE_WINDOW = 8;
98
+ /**
99
+ * Change score: the MINIMUM SSIM across a grid of windows.
100
+ *
101
+ * {@link ssim} is global — one statistic over the whole frame — which makes it
102
+ * a quality-assessment metric. Asked a detection question it fails badly: a
103
+ * small localized change is diluted by the unchanged remainder of the frame.
104
+ * Measured on a 1280x800 page differing only by a 12px counter, global SSIM
105
+ * reads 0.999989 at a 128px signature and still 0.999254 at 1024px, so NO
106
+ * threshold below 1.0 can see it. Raising resolution does not help, and neither
107
+ * does averaging the windows (mean-over-windows scored 0.999956 — dilution
108
+ * again). Taking the minimum does: the same pair reads 0.901 at 512px.
109
+ *
110
+ * So: mean-over-windows for "how similar are these images", minimum-over-windows
111
+ * for "did any part of this image change". This is the latter.
112
+ *
113
+ * Identical inputs return exactly 1 and the score is symmetric, for the same
114
+ * reasons as {@link ssim} — every window is computed by the same loop shape.
115
+ *
116
+ * RESOLUTION LIMIT (measured, not incidental). The score is far more stable
117
+ * across viewport size than global SSIM, but only for changes large enough to
118
+ * survive the fixed `size`x`size` downsample. A change occupying less than
119
+ * roughly one window (`window/size` of a frame edge, ~6% at the defaults) can be
120
+ * averaged away before the windows see it — and how much of the frame it
121
+ * occupies is itself viewport-relative, so the downsample reintroduces exactly
122
+ * the viewport-dependence min-over-windows removes at the SSIM step, just moved
123
+ * to the resampling step. Measured on a 7-character status-word flip: at a 128px
124
+ * signature its tier membership varied across 600px-2560px viewports (key /
125
+ * change / none); at 512px it was stable (always key). A form fill, being a
126
+ * larger region, is stable at 128px. Pick `size` for the smallest change that
127
+ * must be reliably classified, against the per-frame CPU cost (512px is ~5x
128
+ * 128px). The default 128 is right for real interactions; sub-resolution changes
129
+ * on very large viewports need a larger signature.
130
+ *
131
+ * @param size Edge length of the square signature. Inferred from `a.length`
132
+ * when omitted.
133
+ * @throws on length mismatch, empty input, or a non-square signature.
134
+ */
135
+ export function changeScore(a, b, options = {}) {
136
+ if (a.length !== b.length) {
137
+ throw new Error(`changeScore: signature length mismatch (${a.length} vs ${b.length})`);
138
+ }
139
+ if (a.length === 0) {
140
+ throw new Error("changeScore: signatures must not be empty");
141
+ }
142
+ const size = options.size ?? Math.round(Math.sqrt(a.length));
143
+ if (size * size !== a.length) {
144
+ throw new Error(`changeScore: signature of ${a.length} values is not square (${size}x${size}); ` +
145
+ "pass an explicit size");
146
+ }
147
+ const win = options.window ?? CHANGE_WINDOW;
148
+ // A signature smaller than one window has nothing to localise; the global
149
+ // score is the honest answer rather than a fabricated window.
150
+ if (win <= 1 || size < win)
151
+ return ssim(a, b);
152
+ let worst = Number.POSITIVE_INFINITY;
153
+ const n = win * win;
154
+ for (let originY = 0; originY + win <= size; originY += win) {
155
+ for (let originX = 0; originX + win <= size; originX += win) {
156
+ let sumA = 0;
157
+ let sumB = 0;
158
+ for (let y = 0; y < win; y++) {
159
+ const row = (originY + y) * size + originX;
160
+ for (let x = 0; x < win; x++) {
161
+ sumA += a[row + x];
162
+ sumB += b[row + x];
163
+ }
164
+ }
165
+ const muA = sumA / n;
166
+ const muB = sumB / n;
167
+ let sqA = 0;
168
+ let sqB = 0;
169
+ let sqAB = 0;
170
+ for (let y = 0; y < win; y++) {
171
+ const row = (originY + y) * size + originX;
172
+ for (let x = 0; x < win; x++) {
173
+ const da = a[row + x] - muA;
174
+ const db = b[row + x] - muB;
175
+ sqA += da * da;
176
+ sqB += db * db;
177
+ sqAB += da * db;
178
+ }
179
+ }
180
+ const denom = n - 1;
181
+ const varA = sqA / denom;
182
+ const varB = sqB / denom;
183
+ const cov = sqAB / denom;
184
+ const score = ((2 * muA * muB + C1) * (2 * cov + C2)) /
185
+ ((muA * muA + muB * muB + C1) * (varA + varB + C2));
186
+ if (score < worst)
187
+ worst = score;
188
+ }
189
+ }
190
+ return Math.min(1, Math.max(-1, worst));
191
+ }
96
192
  /**
97
193
  * Indices whose SSIM against the previous frame fell below `threshold`.
98
194
  *
@@ -1 +1 @@
1
- {"version":3,"file":"ssim.js","sourceRoot":"","sources":["../../src/recording/ssim.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ssim.js","sourceRoot":"","sources":["../../src/recording/ssim.ts"],"names":[],"mappings":"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"}
@@ -15,8 +15,60 @@
15
15
  * runtime contract and the compile-time contract cannot drift.
16
16
  */
17
17
  import { z } from "zod";
18
- /** Manifest format version emitted by this build. */
19
- export declare const MANIFEST_VERSION = 1;
18
+ /**
19
+ * Manifest format version emitted by this build.
20
+ *
21
+ * v2 (2026-07-19) added the two-tier change signal: `key_frames`,
22
+ * `change_points_saturated` and `ssim_thresholds`, all OPTIONAL in the schema
23
+ * (expand-contract, so older files keep parsing) but always emitted, so
24
+ * `version >= 2` reliably signals their presence.
25
+ *
26
+ * v3 (2026-07-19) changed the DETECTOR behind those fields from global SSIM to
27
+ * {@link SSIM_THRESHOLDS} window-min ({@link changeScore}), and re-tuned the
28
+ * thresholds to the new scale (0.999/0.9 -> 0.95/0.6). The field shapes are
29
+ * unchanged, but a v3 `change_points` is not numerically comparable to a v2
30
+ * one — the version is the signal for that, since the values in
31
+ * `ssim_thresholds` alone cannot convey that the underlying metric changed.
32
+ * Readers wanting a uniform view across versions should use {@link changeSignal}.
33
+ */
34
+ export declare const MANIFEST_VERSION = 3;
35
+ /**
36
+ * Change-detection thresholds for the two-tier signal.
37
+ *
38
+ * These are measured against the {@link changeScore} scale (minimum SSIM over an
39
+ * 8x8 window grid on a 128px signature), NOT global SSIM. The scale is entirely
40
+ * different from a whole-frame metric and the two are not interchangeable — a
41
+ * localized text change reads ~0.87 under changeScore versus ~0.9998 under
42
+ * global SSIM. The producer MUST feed these thresholds changeScore values;
43
+ * `ssim_thresholds` records them in every manifest so a reader never guesses.
44
+ *
45
+ * `CHANGE` (0.95) — "did anything change". Below the practical noise floor
46
+ * (an unchanging page scores exactly 1.0; window-min does not fire on codec
47
+ * noise) and above a 12px counter tick (~0.87), which is the localized change
48
+ * global SSIM could not see at any resolution.
49
+ *
50
+ * `KEY` (0.6) — "did something notable happen". The sparse tier, and the same
51
+ * signal that sets each frame's `anomaly` flag. It sits in the wide gap between
52
+ * a minor tick (~0.87, excluded) and a real interaction like a form fill
53
+ * (~0.21, included), so background chrome does not flood it. Because KEY <
54
+ * CHANGE, `key_frames` is necessarily a subset of `change_points`;
55
+ * {@link changeSignalIssues} checks a manifest honours it.
56
+ *
57
+ * Derived from measurement on five fixtures (static / ticking counter / two
58
+ * form fills / banner toggle / full-viewport animation), 2026-07-19. The
59
+ * counter fixture is why the two tiers matter: change_points fires on every
60
+ * tick and saturates, while key_frames stays empty — so key_frames is the
61
+ * usable signal precisely when change_points is not.
62
+ */
63
+ export declare const SSIM_THRESHOLDS: {
64
+ readonly change: 0.95;
65
+ readonly key: 0.6;
66
+ };
67
+ /**
68
+ * Fraction of frames above which `change_points` is considered saturated —
69
+ * carrying no discriminating information for that capture.
70
+ */
71
+ export declare const CHANGE_SATURATION_RATIO = 0.7;
20
72
  export declare const EngineSchema: z.ZodEnum<{
21
73
  chromium: "chromium";
22
74
  firefox: "firefox";
@@ -184,6 +236,13 @@ export declare const RecordingManifestSchema: z.ZodObject<{
184
236
  }, z.core.$loose>>;
185
237
  }, z.core.$strip>>;
186
238
  change_points: z.ZodArray<z.ZodNumber>;
239
+ key_frames: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
240
+ change_points_saturated: z.ZodOptional<z.ZodBoolean>;
241
+ ssim_thresholds: z.ZodOptional<z.ZodObject<{
242
+ change: z.ZodNumber;
243
+ key: z.ZodNumber;
244
+ }, z.core.$strip>>;
245
+ method: z.ZodOptional<z.ZodString>;
187
246
  frame_gaps: z.ZodArray<z.ZodObject<{
188
247
  after_index: z.ZodNumber;
189
248
  gap_ms: z.ZodNumber;
@@ -209,5 +268,49 @@ export type RecordingManifest = z.infer<typeof RecordingManifestSchema>;
209
268
  * whose message lists every failing path, so a malformed manifest reports all
210
269
  * of its problems at once instead of one per run.
211
270
  */
271
+ /**
272
+ * Uniform view of the change signal across manifest versions.
273
+ *
274
+ * A pre-v2 manifest has only `change_points`, computed with a whole-frame
275
+ * (global) SSIM detector — a DIFFERENT metric from the current window-min
276
+ * {@link SSIM_THRESHOLDS} scale, so the two are not numerically comparable. For
277
+ * such a file this returns the single list it has as both tiers rather than
278
+ * inventing a key/change split it never carried, and marks `legacy: true` so a
279
+ * reader knows the tiers are not really separated and the thresholds are not on
280
+ * the current scale. `saturated` is false because the old global detector could
281
+ * not saturate the way window-min can.
282
+ *
283
+ * This is NOT the exact identity an earlier version of this comment claimed:
284
+ * once the detector changed from global SSIM to window-min, an old file's
285
+ * change points stopped mapping onto today's `key_frames`. Reporting the one
286
+ * list for both tiers is the honest fallback, not a translation.
287
+ *
288
+ * Use this in readers instead of touching the optional fields directly, so a
289
+ * pre-v2 file does not read as "no key frames" when its change_points are the
290
+ * only signal it has.
291
+ */
292
+ export declare function changeSignal(manifest: RecordingManifest): {
293
+ changePoints: number[];
294
+ keyFrames: number[];
295
+ saturated: boolean;
296
+ thresholds: {
297
+ change: number;
298
+ key: number;
299
+ };
300
+ legacy: boolean;
301
+ manifestVersion: number;
302
+ };
303
+ /**
304
+ * Consistency problems in a manifest's change signal, as human-readable
305
+ * strings. Empty means consistent.
306
+ *
307
+ * These are invariants the two-tier design guarantees by construction, so a
308
+ * violation means the producer is miscomputing rather than that the file is
309
+ * merely old. Deliberately NOT enforced inside {@link parseManifest}: readers
310
+ * such as `capture status` open whatever manifest is most recent, and failing
311
+ * the read outright would turn a reporting bug into an unreadable capture. Call
312
+ * this where you want the check — tests, or a diagnostic path.
313
+ */
314
+ export declare function changeSignalIssues(manifest: RecordingManifest): string[];
212
315
  export declare function parseManifest(input: unknown): RecordingManifest;
213
316
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/recording/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,qDAAqD;AACrD,eAAO,MAAM,gBAAgB,IAAI,CAAC;AAMlC,eAAO,MAAM,YAAY;;;;EAA4C,CAAC;AAEtE,eAAO,MAAM,mBAAmB;;;EAAgD,CAAC;AAEjF,eAAO,MAAM,cAAc;;;;iBAIzB,CAAC;AAEH,eAAO,MAAM,UAAU;;;;;iBAKrB,CAAC;AAEH,eAAO,MAAM,UAAU;;;iBAGrB,CAAC;AAMH;;;GAGG;AACH,eAAO,MAAM,YAAY;;;;;;;;;;;;;;2BAQvB,CAAC;AAMH;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB;;;;iBAMrB,CAAC;AAEX,eAAO,MAAM,kBAAkB;;;;;;iBAQrB,CAAC;AAMX,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAiBtB,CAAC;AAEH,eAAO,MAAM,cAAc;;;iBAIzB,CAAC;AAMH,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBA6BlC,CAAC;AAMH,MAAM,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;AAClD,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAChE,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AACtD,MAAM,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,UAAU,CAAC,CAAC;AAC9C,MAAM,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,UAAU,CAAC,CAAC;AAC9C,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;AAC3D,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAC9D,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAC9D,MAAM,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,CAAC;AAChD,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AACtD,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAMxE;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,iBAAiB,CAsB/D"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/recording/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,gBAAgB,IAAI,CAAC;AAElC;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,eAAO,MAAM,eAAe;;;CAAsC,CAAC;AAEnE;;;GAGG;AACH,eAAO,MAAM,uBAAuB,MAAM,CAAC;AAM3C,eAAO,MAAM,YAAY;;;;EAA4C,CAAC;AAEtE,eAAO,MAAM,mBAAmB;;;EAAgD,CAAC;AAEjF,eAAO,MAAM,cAAc;;;;iBAIzB,CAAC;AAEH,eAAO,MAAM,UAAU;;;;;iBAKrB,CAAC;AAEH,eAAO,MAAM,UAAU;;;iBAGrB,CAAC;AAMH;;;GAGG;AACH,eAAO,MAAM,YAAY;;;;;;;;;;;;;;2BAQvB,CAAC;AAMH;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB;;;;iBAMrB,CAAC;AAEX,eAAO,MAAM,kBAAkB;;;;;;iBAQrB,CAAC;AAMX,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAiBtB,CAAC;AAEH,eAAO,MAAM,cAAc;;;iBAIzB,CAAC;AAMH,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAgElC,CAAC;AAMH,MAAM,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;AAClD,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAChE,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AACtD,MAAM,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,UAAU,CAAC,CAAC;AAC9C,MAAM,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,UAAU,CAAC,CAAC;AAC9C,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;AAC3D,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAC9D,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAC9D,MAAM,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,CAAC;AAChD,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AACtD,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAMxE;;;;;;GAMG;AACH;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,iBAAiB,GAAG;IACzD,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,SAAS,EAAE,OAAO,CAAC;IACnB,UAAU,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;IAC5C,MAAM,EAAE,OAAO,CAAC;IAChB,eAAe,EAAE,MAAM,CAAC;CACzB,CAaA;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,iBAAiB,GAAG,MAAM,EAAE,CA2CxE;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,iBAAiB,CAsB/D"}