@camstack/addon-pipeline 1.1.57 → 1.1.59
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/audio-analyzer/index.js +4 -4
- package/dist/audio-analyzer/index.mjs +2 -2
- package/dist/detection-pipeline/index.js +9 -9
- package/dist/detection-pipeline/index.mjs +3 -3
- package/dist/{dist-CK8Ur-OS.js → dist-B1u-QN05.js} +4822 -4650
- package/dist/{dist-CL531uVA.mjs → dist-DKeNH_5z.mjs} +4823 -4651
- package/dist/{model-download-service-C-IHWnXx-3Mmeob3l.mjs → model-download-service-Cp9f4dk6-0wh7OK3s.mjs} +2 -2
- package/dist/{model-download-service-C-IHWnXx-D326YNnt.js → model-download-service-Cp9f4dk6-Cp_GTKTw.js} +2 -2
- package/dist/motion-wasm/index.js +1 -1
- package/dist/motion-wasm/index.mjs +1 -1
- package/dist/pipeline-runner/index.js +147 -12
- package/dist/pipeline-runner/index.mjs +146 -11
- package/dist/recorder/index.js +993 -7
- package/dist/recorder/index.mjs +990 -5
- package/dist/session-decode/decode-worker-child.js +110 -2
- package/dist/session-decode/decode-worker-child.mjs +110 -2
- package/dist/{hub-hostname-cCknRYKj.mjs → sheet-geometry-BN80zpCa.js} +56 -1
- package/dist/{hub-hostname-DAJXlOgV.js → sheet-geometry-Bk3fR4s7.mjs} +39 -6
- package/dist/{step-definitions-DHAxruAQ.js → step-definitions-CPch37vh.js} +1 -1
- package/dist/{step-definitions-1d3_vQ6S.mjs → step-definitions-DUB27V8Y.mjs} +1 -1
- package/dist/stream-broker/_stub.js +2 -2
- package/dist/stream-broker/{_virtual_mf-localSharedImportMap___mfe_internal__addon_stream_broker_widgets-Cm_B-hQT.mjs → _virtual_mf-localSharedImportMap___mfe_internal__addon_stream_broker_widgets-DdkfKDgw.mjs} +3 -3
- package/dist/stream-broker/_virtual_mf___mfe_internal__addon_stream_broker_widgets__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-D3h_W9uu.mjs +26 -0
- package/dist/stream-broker/_virtual_mf___mfe_internal__addon_stream_broker_widgets__loadShare___mf_0_camstack_mf_1_ui_mf_2_library__loadShare__.js-DSXctoaw.mjs +26 -0
- package/dist/stream-broker/{hostInit-DEaqJpGA.mjs → hostInit-BLn2Pv8Q.mjs} +3 -3
- package/dist/stream-broker/index.js +626 -152
- package/dist/stream-broker/index.mjs +626 -152
- package/dist/stream-broker/remoteEntry.js +1 -1
- package/embed-dist/assets/{MaskShapeCanvas-DI4BY7W2-CZUzu3MF.js → MaskShapeCanvas-DI4BY7W2-B0_nx15B.js} +1 -1
- package/embed-dist/assets/{MotionZonesSettings-NcxxQN8r-CmZbzLQi.js → MotionZonesSettings-NcxxQN8r-B8uM-VeO.js} +1 -1
- package/embed-dist/assets/{PrivacyMaskSettings-APgPLF7p-BOKDrH0N.js → PrivacyMaskSettings-APgPLF7p-DMOs4Hj9.js} +1 -1
- package/embed-dist/assets/index-W9-H5LTj.js +81 -0
- package/embed-dist/index.html +1 -1
- package/package.json +1 -1
- package/dist/stream-broker/_virtual_mf___mfe_internal__addon_stream_broker_widgets__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-Ba7Eyd47.mjs +0 -26
- package/dist/stream-broker/_virtual_mf___mfe_internal__addon_stream_broker_widgets__loadShare___mf_0_camstack_mf_1_ui_mf_2_library__loadShare__.js-TWCUWhCm.mjs +0 -26
- package/embed-dist/assets/index-DOsK8CZb.js +0 -81
|
@@ -189,6 +189,66 @@ var FrameSlot = class {
|
|
|
189
189
|
}
|
|
190
190
|
};
|
|
191
191
|
//#endregion
|
|
192
|
+
//#region src/session-decode/lease-activity-gate.ts
|
|
193
|
+
/**
|
|
194
|
+
* Demand-driven gate for the native-frame lease capture (see
|
|
195
|
+
* `decode-worker-child.ts` `captureNativeFrame`).
|
|
196
|
+
*
|
|
197
|
+
* Eagerly downloading EVERY delivered frame from the GPU at native resolution
|
|
198
|
+
* is sustained memory-bandwidth burn a small host (N100) cannot afford when
|
|
199
|
+
* nothing consumes the leases — live 2026-07-16: dev 584 ran 24 native-4K
|
|
200
|
+
* downloads/s with `nativeCropHits:0` for hours, and two such sessions
|
|
201
|
+
* saturated the box (load ~9 on 4 cores) until delivered fps collapsed to 0.
|
|
202
|
+
*
|
|
203
|
+
* The gate keeps capture ON only while there is plausible demand:
|
|
204
|
+
* - `arm()` at dial start — the FIRST track of a fresh on-motion session gets
|
|
205
|
+
* native-quality media before any crop request has been seen;
|
|
206
|
+
* - `arm()` on every native-crop request — post-analysis snapshot crops and
|
|
207
|
+
* the detail plane re-arm it continuously while tracks are active;
|
|
208
|
+
* - after `windowMs` without demand it closes and per-frame downloads stop
|
|
209
|
+
* (a later crop request simply misses once — the caller's designed
|
|
210
|
+
* detection-frame-crop fallback — and re-arms the gate for the retry).
|
|
211
|
+
*
|
|
212
|
+
* `windowMs: 0` disables gating entirely (always active — the legacy eager
|
|
213
|
+
* behaviour).
|
|
214
|
+
*/
|
|
215
|
+
var LeaseActivityGate = class {
|
|
216
|
+
windowMs;
|
|
217
|
+
now;
|
|
218
|
+
armedUntil = 0;
|
|
219
|
+
disabled = false;
|
|
220
|
+
constructor(windowMs, now = Date.now) {
|
|
221
|
+
this.windowMs = windowMs;
|
|
222
|
+
this.now = now;
|
|
223
|
+
}
|
|
224
|
+
/** Open (or slide) the demand window from now. A no-op while disabled. */
|
|
225
|
+
arm() {
|
|
226
|
+
if (this.windowMs === 0) return;
|
|
227
|
+
this.armedUntil = this.now() + this.windowMs;
|
|
228
|
+
}
|
|
229
|
+
/**
|
|
230
|
+
* Force the gate closed regardless of demand — for a download path that has
|
|
231
|
+
* PROVEN broken this dial (an add/receive failure). Rebuilding the vaapi
|
|
232
|
+
* filtergraph per failing frame both leaks (node-av reclaims hw pools only
|
|
233
|
+
* by process exit) and burns GPU churn, so a broken path stays off until
|
|
234
|
+
* {@link reset} (the next dial). Overrides `windowMs: 0` too.
|
|
235
|
+
*/
|
|
236
|
+
disable() {
|
|
237
|
+
this.disabled = true;
|
|
238
|
+
}
|
|
239
|
+
/** New dial: clear the broken flag AND any stale demand (caller re-arms explicitly). */
|
|
240
|
+
reset() {
|
|
241
|
+
this.disabled = false;
|
|
242
|
+
this.armedUntil = 0;
|
|
243
|
+
}
|
|
244
|
+
/** Whether lease capture should run for the current frame. */
|
|
245
|
+
get active() {
|
|
246
|
+
if (this.disabled) return false;
|
|
247
|
+
if (this.windowMs === 0) return true;
|
|
248
|
+
return this.now() < this.armedUntil;
|
|
249
|
+
}
|
|
250
|
+
};
|
|
251
|
+
//#endregion
|
|
192
252
|
//#region src/session-decode/native-frame-ring.ts
|
|
193
253
|
/**
|
|
194
254
|
* A hard-capped, insertion-ordered map from worker frameId → retained frame.
|
|
@@ -408,6 +468,16 @@ var NATIVE_LEASE_TTL_MS = (() => {
|
|
|
408
468
|
return Number.isFinite(raw) && raw > 0 ? Math.floor(raw) : 500;
|
|
409
469
|
})();
|
|
410
470
|
/**
|
|
471
|
+
* Demand window (ms) for the lease-capture {@link LeaseActivityGate}: eager
|
|
472
|
+
* per-frame native downloads run only within this window of the last
|
|
473
|
+
* native-crop request (or dial start). `0` disables gating (legacy always-on
|
|
474
|
+
* eager capture). `CAMSTACK_SESSION_NATIVE_LEASE_ACTIVITY_MS` (default 15000).
|
|
475
|
+
*/
|
|
476
|
+
var NATIVE_LEASE_ACTIVITY_WINDOW_MS = (() => {
|
|
477
|
+
const raw = Number(process.env["CAMSTACK_SESSION_NATIVE_LEASE_ACTIVITY_MS"]);
|
|
478
|
+
return Number.isFinite(raw) && raw >= 0 ? Math.floor(raw) : 15e3;
|
|
479
|
+
})();
|
|
480
|
+
/**
|
|
411
481
|
* The libav GPU scale filter for a hwaccel backend, or `null` when none is
|
|
412
482
|
* known here — those backends fall back to the software crop+scale path.
|
|
413
483
|
* Mirrors `addon-decoder-ffmpeg/src/ffmpeg-args.ts` `gpuScaleFilterForBackend`.
|
|
@@ -660,6 +730,13 @@ var DecodeWorkerChild = class {
|
|
|
660
730
|
ttlMs: NATIVE_LEASE_TTL_MS
|
|
661
731
|
});
|
|
662
732
|
/**
|
|
733
|
+
* Demand gate for lease capture — armed at dial start + on every native-crop
|
|
734
|
+
* request; while cold, {@link captureNativeFrame} declines retention so the
|
|
735
|
+
* per-frame native-res GPU→RAM download (the N100 saturation source) stops
|
|
736
|
+
* on cameras nothing is cropping. See `lease-activity-gate.ts`.
|
|
737
|
+
*/
|
|
738
|
+
leaseGate = new LeaseActivityGate(NATIVE_LEASE_ACTIVITY_WINDOW_MS);
|
|
739
|
+
/**
|
|
663
740
|
* DEDICATED full-frame GPU→system download filtergraph
|
|
664
741
|
* (`scale_<be>=iw:ih,hwdownload,format=nv12,format=yuv420p`) used ONLY to
|
|
665
742
|
* materialize a HW surface into a leasable software frame at NATIVE
|
|
@@ -670,6 +747,21 @@ var DecodeWorkerChild = class {
|
|
|
670
747
|
*/
|
|
671
748
|
nativeLeaseDownloadFilter = null;
|
|
672
749
|
nativeLeaseDownloadFilterKey = "";
|
|
750
|
+
/** Root-cause instrumentation for the sporadic EIO/EINVAL add-frame failures (task: lease-filter EIO). */
|
|
751
|
+
leaseDownloadFilterUses = 0;
|
|
752
|
+
leaseDownloadFilterBuiltAt = 0;
|
|
753
|
+
dialStartedAt = 0;
|
|
754
|
+
/**
|
|
755
|
+
* Download failures within the CURRENT dial. Forensics (2026-07-16 late,
|
|
756
|
+
* dev 618): failures cluster in the FIRST seconds of a dial after 4-10
|
|
757
|
+
* successful uses — the decoder re-creates its hw_frames_ctx shortly after
|
|
758
|
+
* dial start (post-probe pool re-init), stranding the just-built filter on
|
|
759
|
+
* the old pool. One rebuild per dial recovers that case (the ctx has
|
|
760
|
+
* settled by the next capture); a SECOND failure disables the lease for
|
|
761
|
+
* the dial (bounded: max 2 filtergraphs/dial — never the per-frame rebuild
|
|
762
|
+
* that OOM'd the N100).
|
|
763
|
+
*/
|
|
764
|
+
leaseDownloadFailuresThisDial = 0;
|
|
673
765
|
/** Throttled native-crop hit/miss counters, emitted with the throughput line. */
|
|
674
766
|
nativeCropHits = 0;
|
|
675
767
|
nativeCropMisses = 0;
|
|
@@ -838,6 +930,7 @@ var DecodeWorkerChild = class {
|
|
|
838
930
|
* session to software on a GPU-filter error).
|
|
839
931
|
*/
|
|
840
932
|
handleNativeCrop(requestId, frameId, bbox, maxWidth) {
|
|
933
|
+
this.leaseGate.arm();
|
|
841
934
|
const frame = this.leaseStore.get(frameId)?.frame ?? this.resolveRetainedFrame(frameId);
|
|
842
935
|
if (!frame) {
|
|
843
936
|
this.nativeCropMisses++;
|
|
@@ -885,6 +978,7 @@ var DecodeWorkerChild = class {
|
|
|
885
978
|
*/
|
|
886
979
|
captureNativeFrame(frameId, frame) {
|
|
887
980
|
if (!this.leaseStore.enabled) return this.nativeRing.retain(frameId, frame);
|
|
981
|
+
if (!this.leaseGate.active) return false;
|
|
888
982
|
if (frame.isHwFrame()) {
|
|
889
983
|
const software = this.downloadToSoftware(frame);
|
|
890
984
|
frame.free();
|
|
@@ -911,7 +1005,12 @@ var DecodeWorkerChild = class {
|
|
|
911
1005
|
for (let i = 1; i < outputs.length; i++) outputs[i]?.free();
|
|
912
1006
|
return first;
|
|
913
1007
|
} catch (err) {
|
|
914
|
-
this.emitStderr(`decode-worker-child: native lease download failed — ${errMessage(err)}\n`);
|
|
1008
|
+
this.emitStderr(`decode-worker-child: native lease download failed — ${errMessage(err)} [forensics: frame=${frame.width}x${frame.height} fmt=${frame.format} hw=${frame.isHwFrame()} filterUses=${this.leaseDownloadFilterUses} filterAgeMs=${Date.now() - this.leaseDownloadFilterBuiltAt} dialAgeMs=${Date.now() - this.dialStartedAt} decoded=${this.framesDecoded}]\n`);
|
|
1009
|
+
this.nativeLeaseDownloadFilter?.close();
|
|
1010
|
+
this.nativeLeaseDownloadFilter = null;
|
|
1011
|
+
this.nativeLeaseDownloadFilterKey = "";
|
|
1012
|
+
this.leaseDownloadFailuresThisDial++;
|
|
1013
|
+
if (this.leaseDownloadFailuresThisDial >= 2) this.leaseGate.disable();
|
|
915
1014
|
return null;
|
|
916
1015
|
}
|
|
917
1016
|
}
|
|
@@ -919,7 +1018,10 @@ var DecodeWorkerChild = class {
|
|
|
919
1018
|
ensureLeaseDownloadFilter(nav, scaleFilter, srcW, srcH) {
|
|
920
1019
|
const key = `${srcW}x${srcH}`;
|
|
921
1020
|
const cached = this.nativeLeaseDownloadFilter;
|
|
922
|
-
if (cached && key === this.nativeLeaseDownloadFilterKey)
|
|
1021
|
+
if (cached && key === this.nativeLeaseDownloadFilterKey) {
|
|
1022
|
+
this.leaseDownloadFilterUses++;
|
|
1023
|
+
return cached;
|
|
1024
|
+
}
|
|
923
1025
|
this.nativeLeaseDownloadFilter?.close();
|
|
924
1026
|
this.nativeLeaseDownloadFilter = null;
|
|
925
1027
|
this.nativeLeaseDownloadFilterKey = "";
|
|
@@ -927,6 +1029,8 @@ var DecodeWorkerChild = class {
|
|
|
927
1029
|
const filter = nav.FilterAPI.create(description, { hardware: this.hwContext });
|
|
928
1030
|
this.nativeLeaseDownloadFilter = filter;
|
|
929
1031
|
this.nativeLeaseDownloadFilterKey = key;
|
|
1032
|
+
this.leaseDownloadFilterUses = 1;
|
|
1033
|
+
this.leaseDownloadFilterBuiltAt = Date.now();
|
|
930
1034
|
return filter;
|
|
931
1035
|
}
|
|
932
1036
|
/** Map a normalized bbox to an even-aligned pixel crop + (optionally capped) target. */
|
|
@@ -1078,6 +1182,10 @@ var DecodeWorkerChild = class {
|
|
|
1078
1182
|
* Same demuxer options + `exitOnError: false` bad-frame tolerance throughout.
|
|
1079
1183
|
*/
|
|
1080
1184
|
async dialAndDecode(nav, C, url) {
|
|
1185
|
+
this.leaseGate.reset();
|
|
1186
|
+
this.leaseGate.arm();
|
|
1187
|
+
this.dialStartedAt = Date.now();
|
|
1188
|
+
this.leaseDownloadFailuresThisDial = 0;
|
|
1081
1189
|
this.abortController = new AbortController();
|
|
1082
1190
|
const demuxer = await nav.Demuxer.open(url, {
|
|
1083
1191
|
options: buildDemuxerOptions(),
|
|
@@ -185,6 +185,66 @@ var FrameSlot = class {
|
|
|
185
185
|
}
|
|
186
186
|
};
|
|
187
187
|
//#endregion
|
|
188
|
+
//#region src/session-decode/lease-activity-gate.ts
|
|
189
|
+
/**
|
|
190
|
+
* Demand-driven gate for the native-frame lease capture (see
|
|
191
|
+
* `decode-worker-child.ts` `captureNativeFrame`).
|
|
192
|
+
*
|
|
193
|
+
* Eagerly downloading EVERY delivered frame from the GPU at native resolution
|
|
194
|
+
* is sustained memory-bandwidth burn a small host (N100) cannot afford when
|
|
195
|
+
* nothing consumes the leases — live 2026-07-16: dev 584 ran 24 native-4K
|
|
196
|
+
* downloads/s with `nativeCropHits:0` for hours, and two such sessions
|
|
197
|
+
* saturated the box (load ~9 on 4 cores) until delivered fps collapsed to 0.
|
|
198
|
+
*
|
|
199
|
+
* The gate keeps capture ON only while there is plausible demand:
|
|
200
|
+
* - `arm()` at dial start — the FIRST track of a fresh on-motion session gets
|
|
201
|
+
* native-quality media before any crop request has been seen;
|
|
202
|
+
* - `arm()` on every native-crop request — post-analysis snapshot crops and
|
|
203
|
+
* the detail plane re-arm it continuously while tracks are active;
|
|
204
|
+
* - after `windowMs` without demand it closes and per-frame downloads stop
|
|
205
|
+
* (a later crop request simply misses once — the caller's designed
|
|
206
|
+
* detection-frame-crop fallback — and re-arms the gate for the retry).
|
|
207
|
+
*
|
|
208
|
+
* `windowMs: 0` disables gating entirely (always active — the legacy eager
|
|
209
|
+
* behaviour).
|
|
210
|
+
*/
|
|
211
|
+
var LeaseActivityGate = class {
|
|
212
|
+
windowMs;
|
|
213
|
+
now;
|
|
214
|
+
armedUntil = 0;
|
|
215
|
+
disabled = false;
|
|
216
|
+
constructor(windowMs, now = Date.now) {
|
|
217
|
+
this.windowMs = windowMs;
|
|
218
|
+
this.now = now;
|
|
219
|
+
}
|
|
220
|
+
/** Open (or slide) the demand window from now. A no-op while disabled. */
|
|
221
|
+
arm() {
|
|
222
|
+
if (this.windowMs === 0) return;
|
|
223
|
+
this.armedUntil = this.now() + this.windowMs;
|
|
224
|
+
}
|
|
225
|
+
/**
|
|
226
|
+
* Force the gate closed regardless of demand — for a download path that has
|
|
227
|
+
* PROVEN broken this dial (an add/receive failure). Rebuilding the vaapi
|
|
228
|
+
* filtergraph per failing frame both leaks (node-av reclaims hw pools only
|
|
229
|
+
* by process exit) and burns GPU churn, so a broken path stays off until
|
|
230
|
+
* {@link reset} (the next dial). Overrides `windowMs: 0` too.
|
|
231
|
+
*/
|
|
232
|
+
disable() {
|
|
233
|
+
this.disabled = true;
|
|
234
|
+
}
|
|
235
|
+
/** New dial: clear the broken flag AND any stale demand (caller re-arms explicitly). */
|
|
236
|
+
reset() {
|
|
237
|
+
this.disabled = false;
|
|
238
|
+
this.armedUntil = 0;
|
|
239
|
+
}
|
|
240
|
+
/** Whether lease capture should run for the current frame. */
|
|
241
|
+
get active() {
|
|
242
|
+
if (this.disabled) return false;
|
|
243
|
+
if (this.windowMs === 0) return true;
|
|
244
|
+
return this.now() < this.armedUntil;
|
|
245
|
+
}
|
|
246
|
+
};
|
|
247
|
+
//#endregion
|
|
188
248
|
//#region src/session-decode/native-frame-ring.ts
|
|
189
249
|
/**
|
|
190
250
|
* A hard-capped, insertion-ordered map from worker frameId → retained frame.
|
|
@@ -404,6 +464,16 @@ var NATIVE_LEASE_TTL_MS = (() => {
|
|
|
404
464
|
return Number.isFinite(raw) && raw > 0 ? Math.floor(raw) : 500;
|
|
405
465
|
})();
|
|
406
466
|
/**
|
|
467
|
+
* Demand window (ms) for the lease-capture {@link LeaseActivityGate}: eager
|
|
468
|
+
* per-frame native downloads run only within this window of the last
|
|
469
|
+
* native-crop request (or dial start). `0` disables gating (legacy always-on
|
|
470
|
+
* eager capture). `CAMSTACK_SESSION_NATIVE_LEASE_ACTIVITY_MS` (default 15000).
|
|
471
|
+
*/
|
|
472
|
+
var NATIVE_LEASE_ACTIVITY_WINDOW_MS = (() => {
|
|
473
|
+
const raw = Number(process.env["CAMSTACK_SESSION_NATIVE_LEASE_ACTIVITY_MS"]);
|
|
474
|
+
return Number.isFinite(raw) && raw >= 0 ? Math.floor(raw) : 15e3;
|
|
475
|
+
})();
|
|
476
|
+
/**
|
|
407
477
|
* The libav GPU scale filter for a hwaccel backend, or `null` when none is
|
|
408
478
|
* known here — those backends fall back to the software crop+scale path.
|
|
409
479
|
* Mirrors `addon-decoder-ffmpeg/src/ffmpeg-args.ts` `gpuScaleFilterForBackend`.
|
|
@@ -656,6 +726,13 @@ var DecodeWorkerChild = class {
|
|
|
656
726
|
ttlMs: NATIVE_LEASE_TTL_MS
|
|
657
727
|
});
|
|
658
728
|
/**
|
|
729
|
+
* Demand gate for lease capture — armed at dial start + on every native-crop
|
|
730
|
+
* request; while cold, {@link captureNativeFrame} declines retention so the
|
|
731
|
+
* per-frame native-res GPU→RAM download (the N100 saturation source) stops
|
|
732
|
+
* on cameras nothing is cropping. See `lease-activity-gate.ts`.
|
|
733
|
+
*/
|
|
734
|
+
leaseGate = new LeaseActivityGate(NATIVE_LEASE_ACTIVITY_WINDOW_MS);
|
|
735
|
+
/**
|
|
659
736
|
* DEDICATED full-frame GPU→system download filtergraph
|
|
660
737
|
* (`scale_<be>=iw:ih,hwdownload,format=nv12,format=yuv420p`) used ONLY to
|
|
661
738
|
* materialize a HW surface into a leasable software frame at NATIVE
|
|
@@ -666,6 +743,21 @@ var DecodeWorkerChild = class {
|
|
|
666
743
|
*/
|
|
667
744
|
nativeLeaseDownloadFilter = null;
|
|
668
745
|
nativeLeaseDownloadFilterKey = "";
|
|
746
|
+
/** Root-cause instrumentation for the sporadic EIO/EINVAL add-frame failures (task: lease-filter EIO). */
|
|
747
|
+
leaseDownloadFilterUses = 0;
|
|
748
|
+
leaseDownloadFilterBuiltAt = 0;
|
|
749
|
+
dialStartedAt = 0;
|
|
750
|
+
/**
|
|
751
|
+
* Download failures within the CURRENT dial. Forensics (2026-07-16 late,
|
|
752
|
+
* dev 618): failures cluster in the FIRST seconds of a dial after 4-10
|
|
753
|
+
* successful uses — the decoder re-creates its hw_frames_ctx shortly after
|
|
754
|
+
* dial start (post-probe pool re-init), stranding the just-built filter on
|
|
755
|
+
* the old pool. One rebuild per dial recovers that case (the ctx has
|
|
756
|
+
* settled by the next capture); a SECOND failure disables the lease for
|
|
757
|
+
* the dial (bounded: max 2 filtergraphs/dial — never the per-frame rebuild
|
|
758
|
+
* that OOM'd the N100).
|
|
759
|
+
*/
|
|
760
|
+
leaseDownloadFailuresThisDial = 0;
|
|
669
761
|
/** Throttled native-crop hit/miss counters, emitted with the throughput line. */
|
|
670
762
|
nativeCropHits = 0;
|
|
671
763
|
nativeCropMisses = 0;
|
|
@@ -834,6 +926,7 @@ var DecodeWorkerChild = class {
|
|
|
834
926
|
* session to software on a GPU-filter error).
|
|
835
927
|
*/
|
|
836
928
|
handleNativeCrop(requestId, frameId, bbox, maxWidth) {
|
|
929
|
+
this.leaseGate.arm();
|
|
837
930
|
const frame = this.leaseStore.get(frameId)?.frame ?? this.resolveRetainedFrame(frameId);
|
|
838
931
|
if (!frame) {
|
|
839
932
|
this.nativeCropMisses++;
|
|
@@ -881,6 +974,7 @@ var DecodeWorkerChild = class {
|
|
|
881
974
|
*/
|
|
882
975
|
captureNativeFrame(frameId, frame) {
|
|
883
976
|
if (!this.leaseStore.enabled) return this.nativeRing.retain(frameId, frame);
|
|
977
|
+
if (!this.leaseGate.active) return false;
|
|
884
978
|
if (frame.isHwFrame()) {
|
|
885
979
|
const software = this.downloadToSoftware(frame);
|
|
886
980
|
frame.free();
|
|
@@ -907,7 +1001,12 @@ var DecodeWorkerChild = class {
|
|
|
907
1001
|
for (let i = 1; i < outputs.length; i++) outputs[i]?.free();
|
|
908
1002
|
return first;
|
|
909
1003
|
} catch (err) {
|
|
910
|
-
this.emitStderr(`decode-worker-child: native lease download failed — ${errMessage(err)}\n`);
|
|
1004
|
+
this.emitStderr(`decode-worker-child: native lease download failed — ${errMessage(err)} [forensics: frame=${frame.width}x${frame.height} fmt=${frame.format} hw=${frame.isHwFrame()} filterUses=${this.leaseDownloadFilterUses} filterAgeMs=${Date.now() - this.leaseDownloadFilterBuiltAt} dialAgeMs=${Date.now() - this.dialStartedAt} decoded=${this.framesDecoded}]\n`);
|
|
1005
|
+
this.nativeLeaseDownloadFilter?.close();
|
|
1006
|
+
this.nativeLeaseDownloadFilter = null;
|
|
1007
|
+
this.nativeLeaseDownloadFilterKey = "";
|
|
1008
|
+
this.leaseDownloadFailuresThisDial++;
|
|
1009
|
+
if (this.leaseDownloadFailuresThisDial >= 2) this.leaseGate.disable();
|
|
911
1010
|
return null;
|
|
912
1011
|
}
|
|
913
1012
|
}
|
|
@@ -915,7 +1014,10 @@ var DecodeWorkerChild = class {
|
|
|
915
1014
|
ensureLeaseDownloadFilter(nav, scaleFilter, srcW, srcH) {
|
|
916
1015
|
const key = `${srcW}x${srcH}`;
|
|
917
1016
|
const cached = this.nativeLeaseDownloadFilter;
|
|
918
|
-
if (cached && key === this.nativeLeaseDownloadFilterKey)
|
|
1017
|
+
if (cached && key === this.nativeLeaseDownloadFilterKey) {
|
|
1018
|
+
this.leaseDownloadFilterUses++;
|
|
1019
|
+
return cached;
|
|
1020
|
+
}
|
|
919
1021
|
this.nativeLeaseDownloadFilter?.close();
|
|
920
1022
|
this.nativeLeaseDownloadFilter = null;
|
|
921
1023
|
this.nativeLeaseDownloadFilterKey = "";
|
|
@@ -923,6 +1025,8 @@ var DecodeWorkerChild = class {
|
|
|
923
1025
|
const filter = nav.FilterAPI.create(description, { hardware: this.hwContext });
|
|
924
1026
|
this.nativeLeaseDownloadFilter = filter;
|
|
925
1027
|
this.nativeLeaseDownloadFilterKey = key;
|
|
1028
|
+
this.leaseDownloadFilterUses = 1;
|
|
1029
|
+
this.leaseDownloadFilterBuiltAt = Date.now();
|
|
926
1030
|
return filter;
|
|
927
1031
|
}
|
|
928
1032
|
/** Map a normalized bbox to an even-aligned pixel crop + (optionally capped) target. */
|
|
@@ -1074,6 +1178,10 @@ var DecodeWorkerChild = class {
|
|
|
1074
1178
|
* Same demuxer options + `exitOnError: false` bad-frame tolerance throughout.
|
|
1075
1179
|
*/
|
|
1076
1180
|
async dialAndDecode(nav, C, url) {
|
|
1181
|
+
this.leaseGate.reset();
|
|
1182
|
+
this.leaseGate.arm();
|
|
1183
|
+
this.dialStartedAt = Date.now();
|
|
1184
|
+
this.leaseDownloadFailuresThisDial = 0;
|
|
1077
1185
|
this.abortController = new AbortController();
|
|
1078
1186
|
const demuxer = await nav.Demuxer.open(url, {
|
|
1079
1187
|
options: buildDemuxerOptions(),
|
|
@@ -45,5 +45,60 @@ function extractHost(raw) {
|
|
|
45
45
|
const host = authority.split(":")[0] ?? "";
|
|
46
46
|
return host.length > 0 ? host : void 0;
|
|
47
47
|
}
|
|
48
|
+
/**
|
|
49
|
+
* Compute the grid + sheet dimensions for `tileCount` tiles. `tileCount` must
|
|
50
|
+
* be ≥ 1 (an empty window produces no sheet). Columns = min(tileCount, maxCols)
|
|
51
|
+
* so a partial window packs tightly instead of leaving a full-width row.
|
|
52
|
+
*/
|
|
53
|
+
function computeSheetGeometry(tileCount, options = {}) {
|
|
54
|
+
if (!Number.isInteger(tileCount) || tileCount < 1) throw new Error(`computeSheetGeometry: tileCount must be a positive integer, got ${tileCount}`);
|
|
55
|
+
const tileWidth = options.tileWidth ?? 320;
|
|
56
|
+
const tileHeight = options.tileHeight ?? 180;
|
|
57
|
+
const maxCols = Math.max(1, options.maxCols ?? 10);
|
|
58
|
+
const cols = Math.min(tileCount, maxCols);
|
|
59
|
+
const rows = Math.ceil(tileCount / cols);
|
|
60
|
+
return {
|
|
61
|
+
cols,
|
|
62
|
+
rows,
|
|
63
|
+
tileWidth,
|
|
64
|
+
tileHeight,
|
|
65
|
+
sheetWidth: cols * tileWidth,
|
|
66
|
+
sheetHeight: rows * tileHeight
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
/** Pixel placement of tile `index` (0-based) in row-major order. */
|
|
70
|
+
function tilePlacement(index, geometry) {
|
|
71
|
+
if (!Number.isInteger(index) || index < 0) throw new Error(`tilePlacement: index must be a non-negative integer, got ${index}`);
|
|
72
|
+
const col = index % geometry.cols;
|
|
73
|
+
const row = Math.floor(index / geometry.cols);
|
|
74
|
+
return {
|
|
75
|
+
index,
|
|
76
|
+
x: col * geometry.tileWidth,
|
|
77
|
+
y: row * geometry.tileHeight
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
/** All tile placements for a full sheet, index 0..tileCount-1. */
|
|
81
|
+
function allTilePlacements(tileCount, geometry) {
|
|
82
|
+
const out = [];
|
|
83
|
+
for (let i = 0; i < tileCount; i += 1) out.push(tilePlacement(i, geometry));
|
|
84
|
+
return out;
|
|
85
|
+
}
|
|
48
86
|
//#endregion
|
|
49
|
-
|
|
87
|
+
Object.defineProperty(exports, "allTilePlacements", {
|
|
88
|
+
enumerable: true,
|
|
89
|
+
get: function() {
|
|
90
|
+
return allTilePlacements;
|
|
91
|
+
}
|
|
92
|
+
});
|
|
93
|
+
Object.defineProperty(exports, "computeSheetGeometry", {
|
|
94
|
+
enumerable: true,
|
|
95
|
+
get: function() {
|
|
96
|
+
return computeSheetGeometry;
|
|
97
|
+
}
|
|
98
|
+
});
|
|
99
|
+
Object.defineProperty(exports, "resolveHubHostname", {
|
|
100
|
+
enumerable: true,
|
|
101
|
+
get: function() {
|
|
102
|
+
return resolveHubHostname;
|
|
103
|
+
}
|
|
104
|
+
});
|
|
@@ -45,10 +45,43 @@ function extractHost(raw) {
|
|
|
45
45
|
const host = authority.split(":")[0] ?? "";
|
|
46
46
|
return host.length > 0 ? host : void 0;
|
|
47
47
|
}
|
|
48
|
+
/**
|
|
49
|
+
* Compute the grid + sheet dimensions for `tileCount` tiles. `tileCount` must
|
|
50
|
+
* be ≥ 1 (an empty window produces no sheet). Columns = min(tileCount, maxCols)
|
|
51
|
+
* so a partial window packs tightly instead of leaving a full-width row.
|
|
52
|
+
*/
|
|
53
|
+
function computeSheetGeometry(tileCount, options = {}) {
|
|
54
|
+
if (!Number.isInteger(tileCount) || tileCount < 1) throw new Error(`computeSheetGeometry: tileCount must be a positive integer, got ${tileCount}`);
|
|
55
|
+
const tileWidth = options.tileWidth ?? 320;
|
|
56
|
+
const tileHeight = options.tileHeight ?? 180;
|
|
57
|
+
const maxCols = Math.max(1, options.maxCols ?? 10);
|
|
58
|
+
const cols = Math.min(tileCount, maxCols);
|
|
59
|
+
const rows = Math.ceil(tileCount / cols);
|
|
60
|
+
return {
|
|
61
|
+
cols,
|
|
62
|
+
rows,
|
|
63
|
+
tileWidth,
|
|
64
|
+
tileHeight,
|
|
65
|
+
sheetWidth: cols * tileWidth,
|
|
66
|
+
sheetHeight: rows * tileHeight
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
/** Pixel placement of tile `index` (0-based) in row-major order. */
|
|
70
|
+
function tilePlacement(index, geometry) {
|
|
71
|
+
if (!Number.isInteger(index) || index < 0) throw new Error(`tilePlacement: index must be a non-negative integer, got ${index}`);
|
|
72
|
+
const col = index % geometry.cols;
|
|
73
|
+
const row = Math.floor(index / geometry.cols);
|
|
74
|
+
return {
|
|
75
|
+
index,
|
|
76
|
+
x: col * geometry.tileWidth,
|
|
77
|
+
y: row * geometry.tileHeight
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
/** All tile placements for a full sheet, index 0..tileCount-1. */
|
|
81
|
+
function allTilePlacements(tileCount, geometry) {
|
|
82
|
+
const out = [];
|
|
83
|
+
for (let i = 0; i < tileCount; i += 1) out.push(tilePlacement(i, geometry));
|
|
84
|
+
return out;
|
|
85
|
+
}
|
|
48
86
|
//#endregion
|
|
49
|
-
|
|
50
|
-
enumerable: true,
|
|
51
|
-
get: function() {
|
|
52
|
-
return resolveHubHostname;
|
|
53
|
-
}
|
|
54
|
-
});
|
|
87
|
+
export { computeSheetGeometry as n, resolveHubHostname as r, allTilePlacements as t };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { S as hfModelUrl, a as COCO_TO_MACRO, i as COCO_80_LABELS, r as AUDIO_MACRO_LABELS } from "./dist-
|
|
1
|
+
import { S as hfModelUrl, a as COCO_TO_MACRO, i as COCO_80_LABELS, r as AUDIO_MACRO_LABELS } from "./dist-DKeNH_5z.mjs";
|
|
2
2
|
//#region src/detection-pipeline/registry/model-catalogs.ts
|
|
3
3
|
var HF_REPO = "camstack/camstack-models";
|
|
4
4
|
var HF_SCRYPTED = "scrypted/plugin-models";
|
|
@@ -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-
|
|
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-DSXctoaw.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-
|
|
5
|
+
import { t as S } from "./_virtual_mf___mfe_internal__addon_stream_broker_widgets__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-D3h_W9uu.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.
|
|
6
|
+
version: "1.1.26",
|
|
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.
|
|
21
|
+
version: "1.1.47",
|
|
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.
|
|
36
|
+
version: "1.1.38",
|
|
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.DeviceLinkModeSchema, 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_KIND_BY_CAP, 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.EventKindCategorySchema, e.EventKindDescriptorSchema, e.EventKindIconSchema, 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.LinkedDeviceSchema, e.LlmDefaultSchema, e.LlmDefaultSelectorSchema, e.LlmErrorCodeSchema, e.LlmGenerateBaseInputSchema, e.LlmGenerateErrSchema, e.LlmGenerateOkSchema, e.LlmGenerateResultSchema, e.LlmImageSchema, e.LlmNodeModelSchema, e.LlmProfileKindDescriptorSchema, e.LlmProfileKindSchema, e.LlmProfileSchema, e.LlmRuntimeCompleteInputSchema, e.LlmRuntimeDiskUsageSchema, e.LlmRuntimeNodeSchema, e.LlmRuntimeStatusSchema, e.LlmUsageRollupSchema, e.LlmUsageSchema, 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.ManagedModelCatalogEntrySchema, e.ManagedModelRefSchema, e.ManagedRuntimeConfigSchema, 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.PasskeyLoginMethodSchema, 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.RecentTracksPageSchema, e.RecentTracksQueryInput, 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.SceneCheckSchema, e.SceneConditionSchema, e.SceneMonitorSchema, e.SceneMonitorStateSchema, e.SceneMonitorStatusSchema, e.SceneReferenceSchema, e.ScopedTokenSchema, e.ScopedTokenSummarySchema, e.ScoredObjectEventSchema, e.ScriptRunnerStatusSchema, e.SearchResultSchema, e.SendEmailInputSchema, e.SendEmailResultSchema, e.SendResultSchema, e.SensorEventSchema, 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.StationaryObjectSchema, 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.TrackCascadeCountsSchema, e.TrackEnvelopeSchema, e.TrackProjectionSchema, e.TrackSchema, e.TrackStateSchema, e.TrackZoneFilterSchema, 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.extractNestedAddonId, 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.isCollectionArrayMethod, 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.llmCapability, e.llmRuntimeCapability, 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.objectInputDeclaresAddonId, 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.sceneMonitorCapability, 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 };
|