@camstack/addon-pipeline 1.1.52 → 1.1.54

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 (37) hide show
  1. package/dist/audio-analyzer/index.js +1 -1
  2. package/dist/audio-analyzer/index.mjs +1 -1
  3. package/dist/detection-pipeline/index.js +191 -12
  4. package/dist/detection-pipeline/index.mjs +191 -12
  5. package/dist/{dist-B-pQhc30.js → dist-BbaoC680.js} +111 -7
  6. package/dist/{dist-DM6-eQRs.mjs → dist-CEcTeu1h.mjs} +111 -7
  7. package/dist/motion-wasm/index.js +1 -1
  8. package/dist/motion-wasm/index.mjs +1 -1
  9. package/dist/pipeline-runner/index.js +114 -5
  10. package/dist/pipeline-runner/index.mjs +114 -5
  11. package/dist/recorder/index.js +1 -1
  12. package/dist/recorder/index.mjs +1 -1
  13. package/dist/{remote-source-plane-DivMEw6Y.mjs → remote-source-plane-CNCqC_XG.mjs} +1 -1
  14. package/dist/{remote-source-plane-dSe5NlH9.js → remote-source-plane-vN45KFSm.js} +1 -1
  15. package/dist/session-decode/decode-worker-child.js +319 -35
  16. package/dist/session-decode/decode-worker-child.mjs +319 -35
  17. package/dist/stream-broker/_stub.js +2 -2
  18. package/dist/stream-broker/{_virtual_mf-localSharedImportMap___mfe_internal__addon_stream_broker_widgets-D6UvBYwr.mjs → _virtual_mf-localSharedImportMap___mfe_internal__addon_stream_broker_widgets-HS0tc6Sa.mjs} +3 -3
  19. package/dist/stream-broker/_virtual_mf___mfe_internal__addon_stream_broker_widgets__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-B3gTdHEh.mjs +26 -0
  20. package/dist/stream-broker/{_virtual_mf___mfe_internal__addon_stream_broker_widgets__loadShare___mf_0_camstack_mf_1_ui_mf_2_library__loadShare__.js-C9fwKMfg.mjs → _virtual_mf___mfe_internal__addon_stream_broker_widgets__loadShare___mf_0_camstack_mf_1_ui_mf_2_library__loadShare__.js-B_v5r5ya.mjs} +1 -1
  21. package/dist/stream-broker/{hostInit-DpF_eilj.mjs → hostInit-DgohfEDA.mjs} +3 -3
  22. package/dist/stream-broker/index.js +2 -2
  23. package/dist/stream-broker/index.mjs +2 -2
  24. package/dist/stream-broker/remoteEntry.js +1 -1
  25. package/dist/{worker-protocol-pk7qdYXt.mjs → worker-protocol-DGIt_waM.mjs} +6 -0
  26. package/dist/{worker-protocol-BCfO8gUF.js → worker-protocol-DkL6GDxe.js} +6 -0
  27. package/embed-dist/assets/{MaskShapeCanvas-DI4BY7W2-DRCvljqU.js → MaskShapeCanvas-DI4BY7W2-CA2Hd6xx.js} +1 -1
  28. package/embed-dist/assets/{MotionZonesSettings-NcxxQN8r-DmQAEfWC.js → MotionZonesSettings-NcxxQN8r-DUN1VeC7.js} +1 -1
  29. package/embed-dist/assets/{PrivacyMaskSettings-APgPLF7p-DNJ5RGGN.js → PrivacyMaskSettings-APgPLF7p-BqZIAU5s.js} +1 -1
  30. package/embed-dist/assets/index-CC06JBcl.css +2 -0
  31. package/embed-dist/assets/{index-BHKG2Pw-.js → index-CMkYypxB.js} +10 -10
  32. package/embed-dist/index.html +2 -2
  33. package/package.json +1 -1
  34. package/python/inference_pool.py +42 -1
  35. package/python/test_inference_pool_layout.py +44 -0
  36. package/dist/stream-broker/_virtual_mf___mfe_internal__addon_stream_broker_widgets__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-o4tu_xuc.mjs +0 -26
  37. package/embed-dist/assets/index-JqUY2p33.css +0 -2
@@ -1,7 +1,81 @@
1
- import { n as isWorkerRequest } from "../worker-protocol-pk7qdYXt.mjs";
1
+ import { n as isWorkerRequest } from "../worker-protocol-DGIt_waM.mjs";
2
2
  import { pathToFileURL } from "node:url";
3
3
  import * as fs from "node:fs";
4
4
  import * as path$1 from "node:path";
5
+ //#region src/session-decode/crop-geometry.ts
6
+ /** Clamp to [min,max] then floor to the nearest even number (YUV420P chroma is 2x2 subsampled). */
7
+ function clampEven(value, min, max) {
8
+ const bounded = Math.min(Math.max(value, min), max);
9
+ return bounded - bounded % 2;
10
+ }
11
+ /** Resolve `FrameImageOptions.crop` against the decoded frame's dimensions, defaulting to the full frame. */
12
+ function resolveCropRegion(frameWidth, frameHeight, crop) {
13
+ const left = clampEven(crop?.left ?? 0, 0, Math.max(0, frameWidth - 2));
14
+ const top = clampEven(crop?.top ?? 0, 0, Math.max(0, frameHeight - 2));
15
+ return {
16
+ left,
17
+ top,
18
+ width: clampEven(crop?.width ?? frameWidth - left, 2, frameWidth - left),
19
+ height: clampEven(crop?.height ?? frameHeight - top, 2, frameHeight - top)
20
+ };
21
+ }
22
+ /** Resolve `FrameImageOptions.resize`, defaulting to the (already cropped) source dimensions. */
23
+ function resolveResizeTarget(cropWidth, cropHeight, resize) {
24
+ if (!resize) return {
25
+ width: cropWidth,
26
+ height: cropHeight
27
+ };
28
+ return {
29
+ width: Math.max(1, Math.round(resize.width)),
30
+ height: Math.max(1, Math.round(resize.height))
31
+ };
32
+ }
33
+ /** Whether `region` covers the entire `srcW x srcH` frame (i.e. no real crop). */
34
+ function isFullFrameRegion(region, srcW, srcH) {
35
+ return region.left === 0 && region.top === 0 && region.width === srcW && region.height === srcH;
36
+ }
37
+ /**
38
+ * Resolve a NORMALIZED [0,1] bbox against a native frame's real pixel dims into
39
+ * an even-aligned pixel crop region. Clamps the box inside the frame so a
40
+ * padded / slightly-out-of-frame bbox never reads past the plane; a degenerate
41
+ * (zero-area) box is widened to the 2px chroma minimum by
42
+ * {@link resolveCropRegion}'s own clamps.
43
+ */
44
+ function normalizedBboxToCrop(frameWidth, frameHeight, bbox) {
45
+ return {
46
+ left: Math.round(bbox.x * frameWidth),
47
+ top: Math.round(bbox.y * frameHeight),
48
+ width: Math.max(2, Math.round(bbox.w * frameWidth)),
49
+ height: Math.max(2, Math.round(bbox.h * frameHeight))
50
+ };
51
+ }
52
+ /**
53
+ * Aspect-preserving cap of a native crop region to `maxWidth`. Returns
54
+ * `undefined` (no resize → true native crop) when `maxWidth` is absent or the
55
+ * region is already within it.
56
+ */
57
+ function resolveNativeCropTarget(region, maxWidth) {
58
+ if (maxWidth === void 0 || maxWidth <= 0 || region.width <= maxWidth) return void 0;
59
+ const width = Math.round(maxWidth);
60
+ return {
61
+ width,
62
+ height: Math.max(1, Math.round(width * region.height / region.width))
63
+ };
64
+ }
65
+ /**
66
+ * Full native-crop geometry: normalized bbox → even-aligned source region +
67
+ * (optionally width-capped) output target. The single mapping the decode worker
68
+ * uses to turn a detection-res bbox into a native-res crop request.
69
+ */
70
+ function resolveNativeCropGeometry(frameWidth, frameHeight, bbox, maxWidth) {
71
+ const region = resolveCropRegion(frameWidth, frameHeight, normalizedBboxToCrop(frameWidth, frameHeight, bbox));
72
+ const resize = resolveNativeCropTarget(region, maxWidth);
73
+ return {
74
+ region,
75
+ target: resolveResizeTarget(region.width, region.height, resize)
76
+ };
77
+ }
78
+ //#endregion
5
79
  //#region src/session-decode/frame-slot.ts
6
80
  function toReply(held) {
7
81
  return {
@@ -16,6 +90,10 @@ function toReply(held) {
16
90
  * pending-pull flag. One instance per decode-worker child session.
17
91
  */
18
92
  var FrameSlot = class {
93
+ retainSuperseded;
94
+ constructor(options) {
95
+ this.retainSuperseded = options?.retainSuperseded;
96
+ }
19
97
  nextFrameId = 1;
20
98
  slot = null;
21
99
  /**
@@ -100,11 +178,61 @@ var FrameSlot = class {
100
178
  const previousReserved = this.reserved;
101
179
  this.reserved = held;
102
180
  this.slot = null;
103
- previousReserved?.frame.free();
181
+ if (previousReserved) {
182
+ if (!(this.retainSuperseded?.(previousReserved.frameId, previousReserved.frame) ?? false)) previousReserved.frame.free();
183
+ }
104
184
  return toReply(held);
105
185
  }
106
186
  };
107
187
  //#endregion
188
+ //#region src/session-decode/native-frame-ring.ts
189
+ /**
190
+ * A hard-capped, insertion-ordered map from worker frameId → retained frame.
191
+ * `capacity <= 0` disables retention entirely (every `retain` frees immediately
192
+ * and returns false) — the safe "keep the ring off" knob.
193
+ */
194
+ var NativeFrameRing = class {
195
+ capacity;
196
+ /** Insertion-ordered (Map preserves insertion order) frameId → frame. */
197
+ frames = /* @__PURE__ */ new Map();
198
+ constructor(capacity) {
199
+ this.capacity = capacity;
200
+ }
201
+ /** Number of frames currently retained (for tests / metrics). */
202
+ get size() {
203
+ return this.frames.size;
204
+ }
205
+ /**
206
+ * Take ownership of `frame` under `frameId`. Frees the oldest retained frame
207
+ * when the cap is exceeded (FIFO by frameId insertion). Returns `true` when
208
+ * the ring took ownership (caller MUST NOT free), `false` when retention is
209
+ * disabled (`capacity <= 0`) and the caller still owns/should free the frame.
210
+ */
211
+ retain(frameId, frame) {
212
+ if (this.capacity <= 0) return false;
213
+ const existing = this.frames.get(frameId);
214
+ if (existing) existing.free();
215
+ this.frames.set(frameId, frame);
216
+ while (this.frames.size > this.capacity) {
217
+ const oldestKey = this.frames.keys().next().value;
218
+ if (oldestKey === void 0) break;
219
+ const oldest = this.frames.get(oldestKey);
220
+ this.frames.delete(oldestKey);
221
+ oldest?.free();
222
+ }
223
+ return true;
224
+ }
225
+ /** The retained frame for `frameId`, or `null` if never retained / already evicted. */
226
+ get(frameId) {
227
+ return this.frames.get(frameId) ?? null;
228
+ }
229
+ /** Free and drop every retained frame. Idempotent (re-dial + teardown call it). */
230
+ clear() {
231
+ for (const frame of this.frames.values()) frame.free();
232
+ this.frames.clear();
233
+ }
234
+ };
235
+ //#endregion
108
236
  //#region src/session-decode/decode-worker-child.ts
109
237
  /**
110
238
  * Decode-worker CHILD entry point — Epic C P1, Task 2.
@@ -135,6 +263,20 @@ var REDIAL_MS = 3e3;
135
263
  /** How often the worker emits its `framesDecoded/framesSkipped/deliveredFps` line. */
136
264
  var METRICS_INTERVAL_MS = 1e4;
137
265
  /**
266
+ * Hard cap on the native-frame retention ring (native-res crop feature). Kept
267
+ * DELIBERATELY TINY — its only job is to cover the detection→crop latency
268
+ * (typically 1-4 frames), NOT the full shm ring depth. On the HW path every
269
+ * retained slot pins a GPU/VAAPI surface out of the decoder pool (the historic
270
+ * leak site), so the cap MUST stay small; a miss is free (caller falls back to
271
+ * today's detection-frame crop). Override with `CAMSTACK_SESSION_NATIVE_CROP_RING`
272
+ * (0 disables retention entirely); clamped to [0,4], default 2.
273
+ */
274
+ var NATIVE_RING_CAP = (() => {
275
+ const raw = Number(process.env["CAMSTACK_SESSION_NATIVE_CROP_RING"]);
276
+ if (!Number.isFinite(raw)) return 2;
277
+ return Math.min(4, Math.max(0, Math.floor(raw)));
278
+ })();
279
+ /**
138
280
  * The libav GPU scale filter for a hwaccel backend, or `null` when none is
139
281
  * known here — those backends fall back to the software crop+scale path.
140
282
  * Mirrors `addon-decoder-ffmpeg/src/ffmpeg-args.ts` `gpuScaleFilterForBackend`.
@@ -272,37 +414,6 @@ function backendToHwDeviceConst(backend, consts) {
272
414
  default: return null;
273
415
  }
274
416
  }
275
- /** Clamp to [min,max] then floor to the nearest even number (YUV420P chroma is 2x2 subsampled). */
276
- function clampEven(value, min, max) {
277
- const bounded = Math.min(Math.max(value, min), max);
278
- return bounded - bounded % 2;
279
- }
280
- /** Resolve `FrameImageOptions.crop` against the decoded frame's dimensions, defaulting to the full frame. */
281
- function resolveCropRegion(frameWidth, frameHeight, crop) {
282
- const left = clampEven(crop?.left ?? 0, 0, Math.max(0, frameWidth - 2));
283
- const top = clampEven(crop?.top ?? 0, 0, Math.max(0, frameHeight - 2));
284
- return {
285
- left,
286
- top,
287
- width: clampEven(crop?.width ?? frameWidth - left, 2, frameWidth - left),
288
- height: clampEven(crop?.height ?? frameHeight - top, 2, frameHeight - top)
289
- };
290
- }
291
- /** Resolve `FrameImageOptions.resize`, defaulting to the (already cropped) source dimensions. */
292
- function resolveResizeTarget(cropWidth, cropHeight, resize) {
293
- if (!resize) return {
294
- width: cropWidth,
295
- height: cropHeight
296
- };
297
- return {
298
- width: Math.max(1, Math.round(resize.width)),
299
- height: Math.max(1, Math.round(resize.height))
300
- };
301
- }
302
- /** Whether `region` covers the entire `srcW x srcH` frame (i.e. no real crop). */
303
- function isFullFrameRegion(region, srcW, srcH) {
304
- return region.left === 0 && region.top === 0 && region.width === srcW && region.height === srcH;
305
- }
306
417
  /**
307
418
  * Build the libav filtergraph description for the GPU crop+scale path.
308
419
  *
@@ -384,6 +495,30 @@ var DecodeWorkerChild = class {
384
495
  */
385
496
  hwFilter = null;
386
497
  hwFilterKey = "";
498
+ /**
499
+ * DEDICATED native-crop GPU filtergraph + software scaler, kept SEPARATE from
500
+ * the detection {@link hwFilter}/{@link scaler} so a native-crop request never
501
+ * evicts (rebuilds) the hot-path detection filter cache — the crop geometry
502
+ * differs from the stable detection geometry, so sharing one cache would
503
+ * thrash it. Same dispose discipline: both are closed on every re-dial
504
+ * ({@link closeInput}) and on teardown. Rebuilt lazily per crop geometry.
505
+ */
506
+ nativeCropHwFilter = null;
507
+ nativeCropHwFilterKey = "";
508
+ nativeCropScaler = null;
509
+ nativeCropScalerKey = "";
510
+ /**
511
+ * Bounded native-frame retention ring — the survival window for a frame's
512
+ * NATIVE surface between detection (on the shipped small frame) and the crop
513
+ * request that follows. Hard-capped at {@link NATIVE_RING_CAP}; single
514
+ * ownership via the {@link FrameSlot} `retainSuperseded` hook (a frame enters
515
+ * the ring exactly when the slot would otherwise free it). Cleared on every
516
+ * re-dial + teardown (see {@link closeInput}).
517
+ */
518
+ nativeRing = new NativeFrameRing(NATIVE_RING_CAP);
519
+ /** Throttled native-crop hit/miss counters, emitted with the throughput line. */
520
+ nativeCropHits = 0;
521
+ nativeCropMisses = 0;
387
522
  /** Scrypted-style throughput counters (plain integers, no per-frame allocation). */
388
523
  framesDecoded = 0;
389
524
  /** Child-side skips only (HW-guard drops + probe/degrade frees); slot drops add {@link FrameSlot.droppedCount}. */
@@ -416,7 +551,7 @@ var DecodeWorkerChild = class {
416
551
  * the reserve-on-pull invariant (`e3c78a9b`) is unit-tested without
417
552
  * node-av. See that file's doc comment for the full semantics.
418
553
  */
419
- frames = new FrameSlot();
554
+ frames = new FrameSlot({ retainSuperseded: (frameId, frame) => this.nativeRing.retain(frameId, frame) });
420
555
  /**
421
556
  * Mirrors whether `this.frames` currently has a pull waiting, so
422
557
  * `teardown` knows to resolve it with `{kind:'ended'}` — `FrameSlot`
@@ -442,6 +577,9 @@ var DecodeWorkerChild = class {
442
577
  case "toBuffer":
443
578
  this.handleToBuffer(message.frameId, message.opts);
444
579
  return;
580
+ case "nativeCrop":
581
+ this.handleNativeCrop(message.requestId, message.frameId, message.bbox, message.maxWidth);
582
+ return;
445
583
  case "stop":
446
584
  this.handleStop();
447
585
  return;
@@ -466,6 +604,9 @@ var DecodeWorkerChild = class {
466
604
  this.scaler?.[Symbol.dispose]?.();
467
605
  this.scaler = null;
468
606
  this.scalerKey = "";
607
+ this.nativeCropScaler?.[Symbol.dispose]?.();
608
+ this.nativeCropScaler = null;
609
+ this.nativeCropScalerKey = "";
469
610
  this.hwContext?.[Symbol.dispose]?.();
470
611
  this.hwContext = null;
471
612
  if (this.pendingPull) {
@@ -480,7 +621,7 @@ var DecodeWorkerChild = class {
480
621
  const deliveredDelta = this.framesDelivered - this.lastDeliveredSnapshot;
481
622
  const deliveredFps = Math.round(deliveredDelta / windowMs * 1e3 * 10) / 10;
482
623
  const skipped = this.framesSkipped + this.frames.droppedCount;
483
- this.emitStderr(`session-decode metrics {framesDecoded:${this.framesDecoded}, framesSkipped:${skipped}, deliveredFps:${deliveredFps}}${final ? " (final)" : ""}\n`);
624
+ this.emitStderr(`session-decode metrics {framesDecoded:${this.framesDecoded}, framesSkipped:${skipped}, deliveredFps:${deliveredFps}, nativeCropHits:${this.nativeCropHits}, nativeCropMisses:${this.nativeCropMisses}}${final ? " (final)" : ""}\n`);
484
625
  this.lastMetricsAt = now;
485
626
  this.lastDeliveredSnapshot = this.framesDelivered;
486
627
  }
@@ -530,6 +671,145 @@ var DecodeWorkerChild = class {
530
671
  this.sendError(`decode-worker-child: toBuffer failed — ${errMessage(err)}`, frameId);
531
672
  }
532
673
  }
674
+ /**
675
+ * Best-effort NATIVE-resolution crop of a still-retained frame. Resolves the
676
+ * frame from the reserved slot (the latest, most common case) or the
677
+ * retention ring (an older frame detection has since moved past). A miss
678
+ * (frame aged out) or ANY crop error replies `nativeCropMiss` so the caller
679
+ * falls back to today's detection-frame crop — it NEVER degrades the
680
+ * detection session (unlike {@link hwScaleToBuffer}, which flips the whole
681
+ * session to software on a GPU-filter error).
682
+ */
683
+ handleNativeCrop(requestId, frameId, bbox, maxWidth) {
684
+ const frame = this.nativeRing.get(frameId) ?? this.frames.toBuffer(frameId);
685
+ if (!frame) {
686
+ this.nativeCropMisses++;
687
+ this.send({
688
+ kind: "nativeCropMiss",
689
+ requestId
690
+ });
691
+ return;
692
+ }
693
+ try {
694
+ const resolved = this.resolveNativeCrop(frame, bbox, maxWidth);
695
+ const bytes = frame.isHwFrame() ? this.nativeHwCropToBuffer(frame, resolved) : this.nativeScaleCropToBuffer(frame, resolved);
696
+ this.nativeCropHits++;
697
+ this.send({
698
+ kind: "nativeCropResult",
699
+ requestId,
700
+ bytes,
701
+ width: resolved.target.width,
702
+ height: resolved.target.height
703
+ });
704
+ } catch (err) {
705
+ this.nativeCropMisses++;
706
+ this.emitStderr(`decode-worker-child: native crop failed (requestId ${requestId}) — ${errMessage(err)}\n`);
707
+ this.send({
708
+ kind: "nativeCropMiss",
709
+ requestId
710
+ });
711
+ }
712
+ }
713
+ /** Map a normalized bbox to an even-aligned pixel crop + (optionally capped) target. */
714
+ resolveNativeCrop(frame, bbox, maxWidth) {
715
+ return resolveNativeCropGeometry(frame.width, frame.height, bbox, maxWidth);
716
+ }
717
+ /**
718
+ * Software native crop — the leak-free path: offset the retained YUV420P
719
+ * frame's plane pointers to the crop origin (zero-copy) and scale ONLY the
720
+ * ROI into a tightly-packed rgb buffer via a DEDICATED scaler (never the
721
+ * detection {@link scaler}). Mirrors {@link scaleRoiToBuffer}, rgb-fixed.
722
+ */
723
+ nativeScaleCropToBuffer(frame, resolved) {
724
+ const nav = this.nav;
725
+ const C = this.consts;
726
+ if (!nav || !C) throw new Error("node-av not initialized");
727
+ const { region, target } = resolved;
728
+ const planes = frame.data;
729
+ const strides = frame.linesize;
730
+ const yPlane = planes?.[0];
731
+ const uPlane = planes?.[1];
732
+ const vPlane = planes?.[2];
733
+ if (!yPlane || !uPlane || !vPlane) throw new Error("decode-worker-child: retained frame missing planar YUV420P data");
734
+ const yStride = strides[0] ?? 0;
735
+ const cStride = strides[1] ?? 0;
736
+ const ySlice = yPlane.subarray(region.top * yStride + region.left);
737
+ const uSlice = uPlane.subarray(region.top / 2 * cStride + region.left / 2);
738
+ const vSlice = vPlane.subarray(region.top / 2 * cStride + region.left / 2);
739
+ const scaler = this.ensureNativeCropScaler(nav, C, region.width, region.height, target.width, target.height);
740
+ const dstStride = target.width * 3;
741
+ const dstBuffer = Buffer.allocUnsafe(dstStride * target.height);
742
+ const scaledHeight = scaler.scaleSync([
743
+ ySlice,
744
+ uSlice,
745
+ vSlice
746
+ ], [
747
+ yStride,
748
+ cStride,
749
+ cStride
750
+ ], 0, region.height, [dstBuffer], [dstStride]);
751
+ if (scaledHeight < 0) throw new Error(`native crop sws_scale failed: ${scaledHeight}`);
752
+ if (scaledHeight !== target.height) throw new Error(`native crop scaler produced ${scaledHeight} of ${target.height} rows`);
753
+ return dstBuffer;
754
+ }
755
+ /**
756
+ * Hardware native crop — run the retained GPU surface through a DEDICATED
757
+ * crop filtergraph (`hwdownload,format=nv12,crop=…,scale=…,format=rgb24`) and
758
+ * pack the small result. Mirrors {@link hwScaleToBuffer} but uses its OWN
759
+ * cached filter and, on error, throws WITHOUT degrading the session.
760
+ */
761
+ nativeHwCropToBuffer(frame, resolved) {
762
+ const { region, target } = resolved;
763
+ const outputs = this.ensureNativeCropHwFilter(region, target).processAllSync(frame);
764
+ const first = outputs[0];
765
+ if (!first) {
766
+ for (const out of outputs) out.free();
767
+ throw new Error("native crop GPU filtergraph produced no frame");
768
+ }
769
+ try {
770
+ const plane = first.data?.[0];
771
+ if (!plane) throw new Error("native crop GPU frame missing packed plane data");
772
+ return packSinglePlane(plane, first.linesize[0] ?? 0, target.width, target.height, 3);
773
+ } finally {
774
+ for (const out of outputs) out.free();
775
+ }
776
+ }
777
+ /** Build-once / reuse the dedicated native-crop software scaler (rgb out). */
778
+ ensureNativeCropScaler(nav, C, srcW, srcH, dstW, dstH) {
779
+ const key = `${srcW}x${srcH}->${dstW}x${dstH}`;
780
+ const cached = this.nativeCropScaler;
781
+ if (cached && key === this.nativeCropScalerKey) return cached;
782
+ this.nativeCropScaler?.[Symbol.dispose]?.();
783
+ this.nativeCropScaler = null;
784
+ this.nativeCropScalerKey = "";
785
+ const scaler = new nav.SoftwareScaleContext();
786
+ scaler.getContext(srcW, srcH, C.AV_PIX_FMT_YUV420P, dstW, dstH, C.AV_PIX_FMT_RGB24, C.SWS_FAST_BILINEAR);
787
+ const initRet = scaler.initContext();
788
+ if (initRet < 0) {
789
+ scaler[Symbol.dispose]?.();
790
+ throw new Error(`native crop sws_init_context failed: ${initRet}`);
791
+ }
792
+ this.nativeCropScaler = scaler;
793
+ this.nativeCropScalerKey = key;
794
+ return scaler;
795
+ }
796
+ /** Build-once / reuse the dedicated native-crop GPU filtergraph (rgb out). */
797
+ ensureNativeCropHwFilter(region, target) {
798
+ const nav = this.nav;
799
+ const scaleFilter = this.gpuScaleFilter;
800
+ if (!nav || !scaleFilter || !this.hwContext) throw new Error("decode-worker-child: native GPU crop requested without a HW context");
801
+ const key = `${region.left},${region.top},${region.width},${region.height}->${target.width}x${target.height}`;
802
+ const cached = this.nativeCropHwFilter;
803
+ if (cached && key === this.nativeCropHwFilterKey) return cached;
804
+ this.nativeCropHwFilter?.close();
805
+ this.nativeCropHwFilter = null;
806
+ this.nativeCropHwFilterKey = "";
807
+ const description = buildGpuFilterDescription(scaleFilter, region, target, false, "rgb24");
808
+ const filter = nav.FilterAPI.create(description, { hardware: this.hwContext });
809
+ this.nativeCropHwFilter = filter;
810
+ this.nativeCropHwFilterKey = key;
811
+ return filter;
812
+ }
533
813
  handleStop() {
534
814
  this.teardown();
535
815
  process.exit(0);
@@ -883,6 +1163,10 @@ var DecodeWorkerChild = class {
883
1163
  * the next dial's first `toBuffer`.
884
1164
  */
885
1165
  closeInput() {
1166
+ this.nativeRing.clear();
1167
+ this.nativeCropHwFilter?.close();
1168
+ this.nativeCropHwFilter = null;
1169
+ this.nativeCropHwFilterKey = "";
886
1170
  this.hwFilter?.close();
887
1171
  this.hwFilter = null;
888
1172
  this.hwFilterKey = "";
@@ -1,8 +1,8 @@
1
- import { a as e, c as t, d as n, i as r, l as i, n as a, o, r as s, s as c, t as l, u } from "./_virtual_mf___mfe_internal__addon_stream_broker_widgets__loadShare___mf_0_camstack_mf_1_ui_mf_2_library__loadShare__.js-C9fwKMfg.mjs";
1
+ import { a as e, c as t, d as n, i as r, l as i, n as a, o, r as s, s as c, t as l, u } from "./_virtual_mf___mfe_internal__addon_stream_broker_widgets__loadShare___mf_0_camstack_mf_1_ui_mf_2_library__loadShare__.js-B_v5r5ya.mjs";
2
2
  import { a as d, i as f, n as p, o as m, r as h, t as g } from "./_virtual_mf___mfe_internal__addon_stream_broker_widgets__loadShare__react__loadShare__.js-C9j-2lBe.mjs";
3
3
  import { n as _, r as v, t as y } from "./_virtual_mf___mfe_internal__addon_stream_broker_widgets__loadShare__react_mf_1_jsx_mf_2_runtime__loadShare__.js-XO0-Pyu6.mjs";
4
4
  import { n as b, t as x } from "./_virtual_mf___mfe_internal__addon_stream_broker_widgets__loadShare___mf_0_tanstack_mf_1_react_mf_2_query__loadShare__.js-BO7TIbJV.mjs";
5
- import { t as S } from "./_virtual_mf___mfe_internal__addon_stream_broker_widgets__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-o4tu_xuc.mjs";
5
+ import { t as S } from "./_virtual_mf___mfe_internal__addon_stream_broker_widgets__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-B3gTdHEh.mjs";
6
6
  //#region ../../node_modules/lucide-react/dist/esm/shared/src/utils.js
7
7
  var C = (e) => e.replace(/([a-z0-9])([A-Z])/g, "$1-$2").toLowerCase(), w = (e) => e.replace(/^([A-Z])|[\s-_]+(\w)/g, (e, t, n) => n ? n.toUpperCase() : t.toLowerCase()), T = (e) => {
8
8
  let t = w(e);
@@ -3,7 +3,7 @@ import "./dist-CYZr2fwk.mjs";
3
3
  var e = {
4
4
  "@camstack/sdk": {
5
5
  name: "@camstack/sdk",
6
- version: "1.1.22",
6
+ version: "1.1.23",
7
7
  scope: ["default"],
8
8
  loaded: !1,
9
9
  from: "addon_stream_broker_widgets",
@@ -18,7 +18,7 @@ var e = {
18
18
  },
19
19
  "@camstack/types": {
20
20
  name: "@camstack/types",
21
- version: "1.1.40",
21
+ version: "1.1.42",
22
22
  scope: ["default"],
23
23
  loaded: !1,
24
24
  from: "addon_stream_broker_widgets",
@@ -33,7 +33,7 @@ var e = {
33
33
  },
34
34
  "@camstack/ui-library": {
35
35
  name: "@camstack/ui-library",
36
- version: "1.1.32",
36
+ version: "1.1.34",
37
37
  scope: ["default"],
38
38
  loaded: !1,
39
39
  from: "addon_stream_broker_widgets",
@@ -0,0 +1,26 @@
1
+ //#region \0virtual:mf:__mfe_internal__addon_stream_broker_widgets__loadShare___mf_0_camstack_mf_1_types__loadShare__.js
2
+ var e = "__mf_init__virtual:mf:__mfe_internal__addon_stream_broker_widgets__mf_v__runtimeInit__mf_v__.js__", t = globalThis[e];
3
+ if (!t) {
4
+ let n, r, i = new Promise((e, t) => {
5
+ n = e, r = t;
6
+ });
7
+ t = globalThis[e] = {
8
+ initPromise: i,
9
+ initResolve: n,
10
+ initReject: r
11
+ };
12
+ }
13
+ var n = t.initPromise, r = "__mf_module_cache__";
14
+ globalThis[r] ||= {
15
+ share: {},
16
+ remote: {}
17
+ }, globalThis[r].share ||= {}, globalThis[r].remote ||= {};
18
+ var i = globalThis[r], a, o = (e) => {
19
+ e.ACCESSORY_LABEL, e.ALL_CAPABILITY_DEFINITIONS, e.APPLE_SA_TO_MACRO, e.AUDIO_BACKEND_CHOICES, e.AUDIO_MACRO_LABELS, e.AccessoriesStatusSchema, e.AccessoryKind, e.AddBrokerInputSchema, e.AddonAutoUpdateSchema, e.AddonListItemSchema, e.AddonPageDeclarationSchema, e.AddonPageInfoSchema, e.AdoptionAdoptInputSchema, e.AdoptionAdoptResultSchema, e.AdoptionFilterSchema, e.AdoptionGetCandidateInputSchema, e.AdoptionListCandidatesInputSchema, e.AdoptionListCandidatesOutputSchema, e.AdoptionReleaseInputSchema, e.AdoptionStatusSchema, e.AgentLoadSummarySchema, e.AirQualitySensorStatusSchema, e.AlarmArmModeSchema, e.AlarmPanelStatusSchema, e.AlarmStateSchema, e.AlertSchema, e.AlertSeveritySchema, e.AlertSourceSchema, e.AlertStatusSchema, e.AmbientLightSensorStatusSchema, e.ApiKeyRecordSchema, e.ApiKeySummarySchema, e.ArchiveEntrySchema, e.ArchiveManifestSchema, e.AttachmentMediaTypeSchema, e.AttachmentSchema, e.AudioAnalysisResultSchema, e.AudioAnalysisSettingsSchema, e.AudioChunkInputSchema, e.AudioClassSummarySchema, e.AudioClassificationLabelSchema, e.AudioClassificationResultSchema, e.AudioCodecInfoSchema, e.AudioDecodeSessionConfigSchema, e.AudioEncodeSchema, e.AudioEncodeSessionConfigSchema, e.AudioEncodedChunkSchema, e.AudioEventSchema, e.AudioLevelSchema, e.AudioMetricsHistoryPointSchema, e.AudioMetricsHistorySchema, e.AudioMetricsSnapshotSchema, e.AudioPcmChunkSchema, e.AuthResultSchema, e.AutoUpdateSettingsSchema, e.AutomationControlStatusSchema, e.AvailableIntegrationTypeSchema, e.BACKEND_TO_FORMAT, e.BATTERY_DEVICE_PROFILE, e.BacklightModeSchema, e.BackupDestinationInfoSchema, e.BackupEntrySchema, e.BaseAddon, e.BaseDevice, e.BaseDeviceProvider, e.BatteryStatusSchema, e.BinaryStatusSchema, e.BoundingBoxSchema, e.BrightnessStatusSchema, e.BrokerAddInputSchema, e.BrokerAudioClientSchema, e.BrokerClientsSchema, e.BrokerConnectionDetailsSchema, e.BrokerConsumerAttributionSchema, e.BrokerConsumerKindSchema, e.BrokerDecodedClientSchema, e.BrokerEncodedClientSchema, e.BrokerGetStateInputSchema, e.BrokerInfoSchema, e.BrokerProviderInfoSchema, e.BrokerPublishInputSchema, e.BrokerRegistryStatusSchema, e.BrokerRtspClientSchema, e.BrokerStatsSchema, e.BrokerStatusEnum, e.BrokerStatusSchema, e.BrokerSubscribeInputSchema, e.BrokerSubscribeResultSchema, e.BrokerTestConnectionResultSchema, e.BrokerUnsubscribeInputSchema, e.CAM_PROFILE_ORDER, e.CAPABILITY_NAMES, e.CAPABILITY_ROUTER_KEYS, e.CAP_NAMES_WITH_STATUS, e.CAP_NODE_PIN_CONTEXT_KEY, e.CAP_PROVIDER_KIND_MAP, e.COCO_80_LABELS, e.COCO_TO_MACRO, e.CamProfileSchema, e.CamStreamDescriptorSchema, e.CamStreamKindSchema, e.CamStreamResolutionSchema, e.CameraAssignmentStatusSchema, e.CameraAudioStatusSchema, e.CameraBrokerProfileSchema, e.CameraBrokerStatusSchema, e.CameraCredentialsSchema, e.CameraCredentialsStatusSchema, e.CameraDecoderShmSchema, e.CameraDecoderStatusSchema, e.CameraDetectionPhaseSchema, e.CameraDetectionProvisioningSchema, e.CameraDetectionProvisioningStateSchema, e.CameraDetectionStatusSchema, e.CameraMetricsSchema, e.CameraMetricsWithDeviceIdSchema, e.CameraMotionStatusSchema, e.CameraRecordingModeSchema, e.CameraRecordingStatusSchema, e.CameraSourceStatusSchema, e.CameraSourceStreamSchema, e.CameraStatusSchema, e.CameraStreamSchema, e.CandidateQueryFilterSchema, e.CapScopeSchema, e.CapabilityBindingsSchema, e.CarbonMonoxideStatusSchema, e.ChargingStatus, e.ClientNetworkStatsSchema, e.ClimateControlStatusSchema, e.ClipPlaybackSchema, e.ClipSchema, e.ClusterAddonNodeDeploymentSchema, e.ClusterAddonStatusEntrySchema, e.CollectionColumnSchema, e.CollectionIndexSchema, e.ColorStatusSchema, e.ConfigEntrySchema, e.ConfigSectionWithValuesSchema, e.ConfigTabDeclarationSchema, e.ConnectivityStatusSchema, e.ConsumableItemSchema, e.ConsumablesStatusSchema, e.ContactStatusSchema, e.ControlKindSchema, e.ControlStatusSchema, e.ConvertArtifactSchema, e.ConvertResultSchema, e.ConvertTargetSchema, e.CoverStateSchema, e.CoverStatusSchema, e.CreateApiKeyInputSchema, e.CreateApiKeyResultSchema, e.CreateIntegrationInputSchema, e.CreateScopedTokenInputSchema, e.CreateScopedTokenResultSchema, e.CreateUserInputSchema, e.CustomActionInputSchema, e.CustomModelDescriptorSchema, e.DATAPLANE_SECRET_HEADER, e.DEFAULT_ADDON_PLACEMENT, e.DEFAULT_AUDIO_ANALYZER_CONFIG, e.DEFAULT_DECODER_HWACCEL_CONFIG, e.DEFAULT_FEATURES, e.DEFAULT_RETENTION, e.DEVICE_CAP_NAMES, e.DEVICE_PROFILES, e.DEVICE_SETTINGS_CONTRIBUTION_METHODS, e.DEVICE_STATUS_METHOD, e.DEVICE_TYPE_INFO, e.DayNightModeSchema, e.DayNightOptionsSchema, e.DayNightSettingsPatchSchema, e.DayNightStatusSchema, e.DecodedAudioChunkSchema, e.DecodedFrameSchema, e.DecoderSessionConfigSchema, e.DecoderStatsSchema, e.DeleteIntegrationResultSchema, e.DetectionSourceSchema, e.DeviceCodeSeveritySchema, e.DeviceConfig, e.DeviceDiscoveryStatusSchema, e.DeviceExportExposeInputSchema, e.DeviceExportStatusSchema, e.DeviceExportUnexposeInputSchema, e.DeviceFeature, e.DeviceInfoSchema, e.DeviceNetworkStatsSchema, e.DeviceRole, e.DeviceRuntimeState, e.DeviceStatusSchema, e.DeviceType, e.DiscoveredChildDeviceSchema, e.DiscoveredChildStatusSchema, e.DiscoveredDeviceSchema, e.DiscoveredTargetSchema, e.DisposerChain, e.DoorbellPressEventSchema, e.DoorbellStatusSchema, e.EVENT_PAD_MS, e.EXPRESSION_BUILTINS, e.EXPRESSION_BUILTIN_NAMES, e.EXPRESSION_COMPILE_CACHE_CAPACITY, e.EXPRESSION_IDENTIFIER_RE, e.EXPRESSION_INJECTED_NOW, e.ElementConfigStore, e.EmbeddingInfoSchema, e.EmbeddingResultSchema, e.EncodeProfileSchema, e.EncodedPacketSchema, e.EnrichedWidgetMetadataSchema, e.EnumSensorDateTimeFormatSchema, e.EnumSensorStatusSchema, e.EventCategory, e.EventEmitterStatusSchema, e.EventFireSchema, e.EventItemSchema, e.EventKindSchema, e.EventSourceType, e.ExportSetupFieldSchema, e.ExportSetupSchema, e.ExposedDeviceSchema, e.ExposureModeSchema, e.ExpressionEvalError, e.ExpressionParseError, e.FanControlStatusSchema, e.FanDirectionSchema, e.FeatureManifestSchema, e.FeatureProbeStatusSchema, e.FloodStatusSchema, e.FrameHandleFormatSchema, e.FrameHandleSchema, e.FrameInputSchema, e.GasStatusSchema, e.GetStreamWithCodecInputSchema, e.GlobalMetricsSchema, e.HF_BASE_URL, e.HF_REPO, e.HWACCEL_OPTIONS, e.HealthStatusSchema, e.HistoryPointSchema, e.HistoryResolutionEnum, e.HumidifierStatusSchema, e.HumiditySensorStatusSchema, e.HvacModeSchema, e.ImageRotateSchema, e.ImageSettingsOptionsSchema, e.ImageSettingsPatchSchema, e.ImageSettingsStatusSchema, e.ImageStatusSchema, e.IngestOwnerSchema, e.InstalledPackageSchema, e.IntegrationLiteSchema, e.IntegrationWithStateSchema, e.IntercomAbilitySchema, e.IntercomStatusSchema, e.KNOWN_CAP_NAMES, e.KeyEventSchema, e.LabelDefinitionSchema, e.LawnMowerActivitySchema, e.LawnMowerControlStatusSchema, e.LocateSegmentResultSchema, e.LocationStatSchema, e.LockControlStatusSchema, e.LockStateSchema, e.LogEntrySchema, e.LogLevelSchema, e.LogStreamEntrySchema, e.LoginMethodContributionSchema, e.LoginStageEnum, e.MACRO_LABELS, e.MAX_EXPRESSION_AST_NODES, e.MAX_EXPRESSION_BINDINGS, e.MAX_EXPRESSION_CALL_ARGS, e.MAX_EXPRESSION_EVAL_STEPS, e.MAX_EXPRESSION_SOURCE_LENGTH, e.METHOD_ACCESS_MAP, e.MODEL_FORMATS, e.MaskGridDimsSchema, e.MaskGridShapeSchema, e.MaskLineShapeSchema, e.MaskPointSchema, e.MaskPolygonShapeSchema, e.MaskPolygonVerticesSchema, e.MaskRectShapeSchema, e.MaskShapeKindSchema, e.MaskShapeSchema, e.MediaFileSchema, e.MediaPlayerRepeatSchema, e.MediaPlayerStateSchema, e.MediaPlayerStatusSchema, e.MeshPeerSchema, e.MeshStatusSchema, e.MethodAccessSchema, e.ModelCatalogEntrySchema, e.ModelConvertInputSchema, e.ModelConvertMetadataSchema, e.ModelDistributeInputSchema, e.ModelDistributeResultSchema, e.ModelExtraFileSchema, e.ModelFormatEntrySchema, e.ModelFormatsSchema, e.ModelSubstitutionSchema, e.ModelVariantGroupSchema, e.MotionAnalysisResultSchema, e.MotionEventSchema, e.MotionOnMotionChangedDataSchema, e.MotionRegionSchema, e.MotionSourceEnum, e.MotionSourcesSchema, e.MotionStatusSchema, e.MotionTriggerRuntimeStateSchema, e.MotionTriggerStatusSchema, e.MotionZoneOptionsSchema, e.MotionZonePatchSchema, e.MotionZoneRegionSchema, e.MotionZoneStatusSchema, e.MqttBrokerStatusSchema, e.NativeDetectionSchema, e.NativeObjectClassEnum, e.NativeObjectDetectionRuntimeStateSchema, e.NativeObjectDetectionStatusSchema, e.NetworkAccessStatusSchema, e.NetworkAddressSchema, e.NetworkEndpointSchema, e.NotificationActionSchema, e.NotificationFormatSchema, e.NotificationHistoryEntrySchema, e.NotificationRuleSchema, e.NotificationSchema, e.NotifierStatusSchema, e.NumericSensorStatusSchema, e.OauthIntegrationDescriptorSchema, e.ObjectEventSchema, e.OrchestratorMetricsSchema, e.OsdOverlayKindEnum, e.OsdOverlayPatchSchema, e.OsdOverlaySchema, e.OsdPositionEnum, e.OsdStatusSchema, e.PET_FEEDER_MANUAL_FEED_MAX, e.PET_FEEDER_MANUAL_FEED_MIN, e.PIPELINE_FLOW_CAPABILITY_NAMES, e.PIPELINE_OWNER_CAPABILITY_NAMES, e.PROVIDER_KIND_CAP_NAMES, e.PYTHON_SCRIPT, e.PackageUpdateSchema, e.PackageVersionInfoSchema, e.PasskeySummarySchema, e.PcmSampleFormatSchema, e.PerScopeBreakdownSchema, e.PetFeederStatusSchema, e.PickStreamPreferencesSchema, e.PickStreamRequirementsSchema, e.PickedCamStreamSchema, e.PipelineAssignmentSchema, e.PipelineDefaultStepSchema, e.PipelineEngineChoiceSchema, e.PipelineRunResultBridge, e.PipelineStepInputSchema, e.PipelineValidationIssueSchema, e.PipelineValidationResultSchema, e.PlaceholderReasonSchema, e.PolygonPointSchema, e.PowerMeterStatusSchema, e.PresenceStatusSchema, e.PressureSensorStatusSchema, e.PrivacyMaskOptionsSchema, e.PrivacyMaskPatchSchema, e.PrivacyMaskRegionSchema, e.PrivacyMaskShapeSchema, e.PrivacyMaskStatusSchema, e.ProfileRtspEntrySchema, e.ProfileSlotSchema, e.ProfileSlotStatusSchema, e.ProviderStatusSchema, e.PtzAutotrackRuntimeStateSchema, e.PtzAutotrackSettingsSchema, e.PtzAutotrackStatusSchema, e.PtzAutotrackTargetOptionSchema, e.PtzMoveCommandSchema, e.PtzPositionSchema, e.PtzPresetSchema, e.PtzStatusSchema, e.QueryFilterSchema, e.REACHABILITY_FAILURES_TO_OFFLINE, e.REACHABILITY_POLL_INTERVAL_MS, e.REACHABILITY_PROBE_TIMEOUT_MS, e.RECOGNITION_TYPES, e.RESERVED_BINDING_NAMES, e.RUNTIME_DEFAULTS, e.RUNTIME_TO_FORMAT, e.RawStateResultSchema, e.ReadSegmentBytesResultSchema, e.ReadinessRegistry, e.ReadinessTimeoutError, e.RecordingAvailabilitySchema, e.RecordingBandModeSchema, e.RecordingBandSchema, e.RecordingBandTriggersSchema, e.RecordingConfigSchema, e.RecordingDaysSchema, e.RecordingDeviceUsageSchema, e.RecordingLocationUsageSchema, e.RecordingManifestSchema, e.RecordingModeSchema, e.RecordingRangeSchema, e.RecordingRetentionSchema, e.RecordingRuleSchema, e.RecordingScheduleSchema, e.RecordingStatusSchema, e.RecordingStorageModeSchema, e.RecordingStorageUsageSchema, e.RecordingTriggersSchema, e.RecordingWeekdaySchema, e.RedirectLoginMethodSchema, e.RenderedAsSchema, e.ReportMotionInputSchema, e.RingBuffer, e.RtpSourceSchema, e.RtspRestreamEntrySchema, e.RunnerCameraConfigSchema, e.RunnerCameraDeviceUIFields, e.RunnerFrameSourceSchema, e.RunnerLocalLoadSchema, e.RunnerLocalMetricsSchema, e.SCOPE_PRESETS, e.SOURCE_INFO_METADATA_KEY, e.STREAM_PROFILE_META, e.STREAM_QUALITY_LABELS, e.SUB_DETECTION_TYPES, e.SYSTEM_CAP_NAMES, e.ScopedTokenSchema, e.ScopedTokenSummarySchema, e.ScoredObjectEventSchema, e.ScriptRunnerStatusSchema, e.SearchResultSchema, e.SendEmailInputSchema, e.SendEmailResultSchema, e.SendResultSchema, e.ServerBootModeSchema, e.ServerPackageStatusSchema, e.ServerRollbackInfoSchema, e.ServerUpdateActionResultSchema, e.ServerUpdateCheckResultSchema, e.ServerUpdateStateSchema, e.SettingsPatchSchema, e.SettingsRecordSchema, e.SettingsSchemaWithValuesSchema, e.SettingsUpdateResultSchema, e.ShmRingStatsSchema, e.SmokeStatusSchema, e.SmtpStatusSchema, e.SnapshotImageSchema, e.SourceInfoSchema, e.SpatialDetectionSchema, e.SsoBridgeClaimsSchema, e.StartEmbeddedInputSchema, e.StorageAbortUploadInputSchema, e.StorageBeginDownloadInputSchema, e.StorageBeginDownloadResultSchema, e.StorageBeginUploadInputSchema, e.StorageBeginUploadResultSchema, e.StorageEndDownloadInputSchema, e.StorageFinalizeUploadInputSchema, e.StorageLocationDeclarationSchema, e.StorageLocationRefSchema, e.StorageLocationSchema, e.StorageLocationTypeSchema, e.StorageProviderInfoSchema, e.StorageReadChunkInputSchema, e.StorageTestLocationResultSchema, e.StorageWriteChunkInputSchema, e.StreamCodecSchema, e.StreamFormatSchema, e.StreamNetworkStatsSchema, e.StreamParamsOptionsSchema, e.StreamParamsStatusSchema, e.StreamProfileConfigSchema, e.StreamProfileOptionsSchema, e.StreamProfilePatchSchema, e.StreamProfileSchema, e.StreamSourceEntrySchema, e.StreamSourceSchema, e.SubscribeAudioChunksInputSchema, e.SubscribeAudioChunksResultSchema, e.SubscribeFramesInputSchema, e.SubscribeFramesResultSchema, e.SwitchStatusSchema, e.SystemMetricsSchema, e.SystemMirror, e.TIMEZONES, e.TamperStatusSchema, e.TankStatusSchema, e.TargetKindCapsSchema, e.TargetKindLevelSchema, e.TargetKindSchema, e.TargetSchema, e.TemperatureSensorStatusSchema, e.TestConnectionResultSchema, e.TestResultSchema, e.ToastSchema, e.TokenScopeSchema, e.TopologyNodeSchema, e.TopologyProcessSchema, e.TopologyServiceSchema, e.TrackSchema, e.TrackStateSchema, e.TrackedDetectionSchema, e.TurnServerSchema, e.UNIT_TABLE, e.UnifiedBrokerInfoSchema, e.UnitConversionError, e.UpdateIntegrationInputSchema, e.UpdateStatusSchema, e.UpdateUserInputSchema, e.UserRecordSchema, e.UserSummarySchema, e.VacuumControlStatusSchema, e.VacuumStateSchema, e.ValveStateSchema, e.ValveStatusSchema, e.VibrationStatusSchema, e.VideoEncodeSchema, e.WELL_KNOWN_TABS, e.WELL_KNOWN_TAB_MAP, e.WaterHeaterStatusSchema, e.WeatherStatusSchema, e.WebrtcStreamChoiceSchema, e.WebrtcStreamTargetSchema, e.WhiteBalanceModeSchema, e.WidgetHostEnum, e.WidgetLoginMethodSchema, e.WidgetMetadataSchema, e.WidgetRemoteSchema, e.WidgetSizeEnum, e.YAMNET_TO_MACRO, e.ZoneKindEnum, e.ZoneRuleModeEnum, e.ZoneRuleSchema, e.ZoneRuleStageEnum, e.ZoneRulesArraySchema, e.ZoneSchema, e.ZoneScopeBreakdownSchema, e.accessoriesCapability, e.accessoryStableId, e.addonPagesCapability, e.addonPagesSourceCapability, e.addonRoutesCapability, e.addonSettingsCapability, e.addonWidgetsCapability, e.addonWidgetsSourceCapability, e.addonsCapability, e.adminUiCapability, e.advancedNotifierCapability, e.airQualitySensorCapability, e.alarmPanelCapability, e.alertsCapability, e.ambientLightSensorCapability, e.applyTransform, e.asBoolean, e.asJsonArray, e.asJsonObject, e.asNumber, e.asString, e.audioAnalysisCapability, e.audioAnalyzerCapability, e.audioCodecCapability, e.audioMetricsCapability, e.authProviderCapability, e.autoAssignProfiles, e.automationControlCapability, e.backupCapability, e.batteryCapability, e.bestLocationMatch, e.binaryCapability, e.bindAddonActions, e.brightnessCapability, e.brokerCapability, e.buildAddonRouteProvider, e.buildModelVariantGroups, e.buildStreamParamsConfigSchema, e.buttonCapability, e.cameraCredentialsCapability, e.cameraPipelineConfigCapability, e.cameraStreamsCapability, e.canConvertUnit, e.carbonMonoxideCapability, e.cellsToRects, e.classifyStream, e.classifyStreams, e.climateControlCapability, e.collectHydratedFieldEntries, e.collectHydratedFieldValues, e.colorCapability, e.compileExpression, e.compileExpressionSafe, e.connectivityCapability, e.consumablesCapability, e.contactCapability, e.controlCapability, e.convertUnit, e.cosineSimilarity, e.coverCapability, e.createDeviceProxy, e.createDurableState, e.createEvent, e.createExpressionScope, e.createLazyTrpcSource, e.createMirrorSource, e.createRuntimeStateBridge, e.createSliceHandle, e.createSystemProxy, e.customAction, e.customModelRegistryCapability, e.dayNightCapability, e.decoderCapability, e.defaultDeviceFor, e.defineCustomActions, e.describeModelVariant, e.detectionPipelineCapability, e.deviceAdoptionCapability, e.deviceCustomAction, e.deviceDiscoveryCapability, e.deviceExportCapability, e.deviceManagerCapability, e.deviceMatchesProfile, e.deviceOpsCapability, e.deviceProviderCapability, e.deviceStateCapability, e.deviceStatusCapability, e.doorbellCapability, e.embeddingEncoderCapability, e.emitDownForOwnedCaps, e.emitReadiness, e.encodeProfileFromStreamShape, e.enumSensorCapability, e.enumerateItemArrayFields, e.enumerateSchemaFields, e.errMsg, e.evaluateAst, e.evaluateLinkExpression, e.evaluateZoneRules, e.event, e.eventEmitterCapability, e.eventsCapability, e.expandCapMethods, e.extractSourceInfoFromMetadata, e.faceGalleryCapability, e.fanControlCapability, e.featureProbeCapability, e.filesystemBrowseCapability, e.findTimezone, e.floodCapability, e.formatForBackend, e.formatForRuntime, e.frameworkSwapConfirmSchema, e.frameworkSwapPackageSchema, e.gasCapability, e.getAudioMacroClassIds, e.getByPath, e.getCapsByProviderKind, e.hfModelUrl, e.htmlToText, e.humidifierCapability, e.humiditySensorCapability, e.hydrateSchema, e.imageCapability, e.imageSettingsCapability, e.integrationsCapability, e.intercomCapability, e.isAgentOnlyPlacement, e.isArrayOutputSchema, e.isDeployableToAgent, e.isDeviceConfigCap, e.isEvent, e.isObjectInput, e.isVoidInput, e.jobKindSchema, e.kebabToCamel, e.lawnMowerControlCapability, e.lifecycleJobSchema, e.lifecycleJobScopeSchema, e.lifecycleJobStateSchema, e.lifecycleTaskSchema, e.localNetworkCapability, e.locationSimilarity, e.lockControlCapability, e.logDestinationCapability, e.loginMethodCapability, e.looseSchema, e.makeProfileBrokerId, a = e.makeSourceBrokerId, e.mapAudioLabelToMacro, e.markdownToHtmlLite, e.markdownToText, e.maskUrlCredentials, e.mediaPlayerCapability, e.mergeSourceInfo, e.meshNetworkCapability, e.method, e.metricsProviderCapability, e.migrateConfigToBands, e.modelConvertCapability, e.modelDistributorCapability, e.modelFormatForRuntime, e.motionCapability, e.motionDetectionCapability, e.motionTriggerCapability, e.motionZonesCapability, e.mqttBrokerCapability, e.nativeObjectDetectionCapability, e.networkAccessCapability, e.networkQualityCapability, e.nodePin, e.nodesCapability, e.normalizeAddonInitResult, e.normalizeUnit, e.notificationOutputCapability, e.notifierCapability, e.numericSensorCapability, e.oauthIntegrationCapability, e.osdCapability, e.parseCameraStreamConfig, e.parseExpression, e.parseJsonArray, e.parseJsonObject, e.parseJsonUnknown, e.parseProfileBrokerId, e.parseStreamParamsFormPatch, e.pendingFrameworkSwapSchema, e.petFeederCapability, e.pickPreferredRtspEntry, e.pipelineAnalyticsCapability, e.pipelineExecutorCapability, e.pipelineOrchestratorCapability, e.pipelineRunnerCapability, e.plateGalleryCapability, e.platformProbeCapability, e.powerMeterCapability, e.prepareNotification, e.presenceCapability, e.pressureSensorCapability, e.privacyMaskCapability, e.procedureAuthKey, e.ptzAutotrackCapability, e.ptzCapability, e.pythonScriptForBackend, e.readNodePin, e.readinessKey, e.rebootCapability, e.recordingCapability, e.rectsToCells, e.requiresPython, e.resolveAddonExecution, e.resolveAddonGroup, e.resolveAddonPlacement, e.resolveAddonRuntime, e.resolveCapMount, e.resolveDetectionRuntime, e.resolveDeviceProfile, e.resolveFormat, e.resolveHydratedFieldValue, e.resolveModelFormat, e.resolveRunnerId, e.resolveVariantModelId, e.runInferenceStep, e.runtimeDevices, e.scopeKey, e.scoreRuntimes, e.scriptRunnerCapability, e.selectAssignedProfileSlots, e.serverManagementCapability, e.setByPath, e.settingsStoreCapability, e.sleep, e.sleepCancellable, e.smokeCapability, e.smtpProviderCapability, e.snapshotCapability, e.ssoBridgeCapability, e.startReachabilityPoll, e.storageCapability, e.storageEvictableCapability, e.storageProviderCapability, e.streamBrokerCapability, e.streamCatalogCapability, e.streamParamsCapability, e.streamPixels, e.streamQualityLabel, e.supportedRuntimes, e.switchCapability, e.synthesizeSourceInfo, e.systemCapability, e.tamperCapability, e.taskLogEntrySchema, e.taskPhaseSchema, e.taskTargetSchema, e.temperatureSensorCapability, e.textToHtml, e.toDeviceSummary, e.toExpressionValue, e.toStreamSourceEntry, e.toastCapability, e.tokenize, e.transcodeBody, e.tryConvertUnit, e.turnProviderCapability, e.unitDimension, e.unitsForDimension, e.updateCapability, e.userManagementCapability, e.userPasskeysCapability, e.vacuumControlCapability, e.validateExpressionSource, e.valveCapability, e.vibrationCapability, e.videoclipsCapability, e.viewerUiCapability, e.waterHeaterCapability, e.weatherCapability, e.webrtcClientHintsSchema, e.webrtcSessionCapability, e.wiringAddonHealthSchema, e.wiringHealthSnapshotSchema, e.wiringNodeHealthSchema, e.wiringProbeKindSchema, e.wiringProbeResultSchema, e.zodEntriesToConfigUI, e.zoneAnalyticsCapability, e.zoneRulesCapability, e.zonesCapability, e.default;
20
+ }, s = i.share["default:@camstack/types"];
21
+ s === void 0 ? n.then(() => {
22
+ if (s = i.share["default:@camstack/types"], s === void 0) throw Error("[Module Federation] Shared module @camstack/types was imported before federation bootstrap finished.");
23
+ o(s);
24
+ }) : o(s);
25
+ //#endregion
26
+ export { a as t };