@camstack/addon-pipeline 1.1.27 → 1.1.28
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 +7 -6
- package/dist/audio-analyzer/index.mjs +7 -6
- package/dist/audio-codec-ffmpeg/index.js +1 -1
- package/dist/audio-codec-ffmpeg/index.mjs +1 -1
- package/dist/decoder-ffmpeg/index.js +43 -11
- package/dist/decoder-ffmpeg/index.mjs +43 -11
- package/dist/decoder-nodeav/index.js +13 -8
- package/dist/decoder-nodeav/index.mjs +13 -8
- package/dist/detection-pipeline/index.js +157 -219
- package/dist/detection-pipeline/index.mjs +157 -219
- package/dist/{dist-DAIlCdAx.js → dist-Biq62zt4.js} +372 -35
- package/dist/{dist-CgEP_0OL.mjs → dist-C6_wgXqF.mjs} +373 -24
- package/dist/{frame-handle-plane-Dq20KtKL.mjs → frame-handle-plane-BIoY6nRV.mjs} +13 -5
- package/dist/{frame-handle-plane-DtTRX_0n.js → frame-handle-plane-D6BzyEgy.js} +13 -5
- package/dist/{frame-ring-sink-BbzrqTWj.js → frame-ring-sink-9J0wCdLF.js} +128 -23
- package/dist/{frame-ring-sink-B_NvPTJZ.mjs → frame-ring-sink-Cs9vby6v.mjs} +117 -24
- package/dist/motion-wasm/index.js +55 -3
- package/dist/motion-wasm/index.mjs +55 -3
- package/dist/node-topology-platform-BkR_k6WT.mjs +15 -0
- package/dist/node-topology-platform-CFZ7F4xW.js +20 -0
- package/dist/pipeline-runner/index.js +50 -16
- package/dist/pipeline-runner/index.mjs +50 -16
- package/dist/recorder/index.js +36 -40
- package/dist/recorder/index.mjs +36 -40
- package/dist/stream-broker/_stub.js +2 -2
- package/dist/stream-broker/{_virtual_mf-localSharedImportMap___mfe_internal__addon_stream_broker_widgets-5tQlh9h4.mjs → _virtual_mf-localSharedImportMap___mfe_internal__addon_stream_broker_widgets-DoReAb4y.mjs} +3 -3
- package/dist/stream-broker/_virtual_mf___mfe_internal__addon_stream_broker_widgets__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-DhY3MZ2C.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-BJK0-svt.mjs → _virtual_mf___mfe_internal__addon_stream_broker_widgets__loadShare___mf_0_camstack_mf_1_ui_mf_2_library__loadShare__.js-DtoYGpTp.mjs} +1 -1
- package/dist/stream-broker/{hostInit-DyLqyJaS.mjs → hostInit-C0SuwQhL.mjs} +3 -3
- package/dist/stream-broker/index.js +61 -25
- package/dist/stream-broker/index.mjs +61 -25
- package/dist/stream-broker/remoteEntry.js +1 -1
- package/embed-dist/assets/{MaskShapeCanvas-DI4BY7W2-BDLNwJ_F.js → MaskShapeCanvas-DI4BY7W2-Br2yi8ah.js} +1 -1
- package/embed-dist/assets/{MotionZonesSettings-NcxxQN8r-CoLjNiUN.js → MotionZonesSettings-NcxxQN8r-BSCcPdPf.js} +1 -1
- package/embed-dist/assets/{PrivacyMaskSettings-APgPLF7p-DJE3OU-q.js → PrivacyMaskSettings-APgPLF7p-ztxvxSjS.js} +1 -1
- package/embed-dist/assets/index-C5UpuPr8.css +2 -0
- package/embed-dist/assets/{index-C-pL8ETk.js → index-CeZV1B-2.js} +10 -10
- package/embed-dist/index.html +2 -2
- package/package.json +1 -1
- package/python/inference_pool.py +93 -102
- package/python/test_inference_pool_device_selection.py +43 -38
- package/dist/stream-broker/_virtual_mf___mfe_internal__addon_stream_broker_widgets__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-CkOPfV8r.mjs +0 -26
- package/embed-dist/assets/index-DrJ0ee3f.css +0 -2
package/embed-dist/index.html
CHANGED
|
@@ -4,8 +4,8 @@
|
|
|
4
4
|
<meta charset="utf-8" />
|
|
5
5
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
6
6
|
<title>CamStack Embed</title>
|
|
7
|
-
<script type="module" crossorigin src="./assets/index-
|
|
8
|
-
<link rel="stylesheet" crossorigin href="./assets/index-
|
|
7
|
+
<script type="module" crossorigin src="./assets/index-CeZV1B-2.js"></script>
|
|
8
|
+
<link rel="stylesheet" crossorigin href="./assets/index-C5UpuPr8.css">
|
|
9
9
|
</head>
|
|
10
10
|
<body>
|
|
11
11
|
<div id="root"></div>
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@camstack/addon-pipeline",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.28",
|
|
4
4
|
"description": "CamStack Pipeline bundle — runner, detection, motion, decoders, audio + stream broker. Multi-entry npm package shipping 7 addons under a single bundle.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"camstack",
|
package/python/inference_pool.py
CHANGED
|
@@ -10,9 +10,10 @@ Per-runtime ML backends (coreml / openvino / onnx):
|
|
|
10
10
|
CoreML → ThreadPoolExecutor(1) — ANE is single-context; one
|
|
11
11
|
Python thread is enough, and avoids GIL thrashing.
|
|
12
12
|
OpenVINO → ThreadPoolExecutor(OPTIMAL_NUMBER_OF_INFER_REQUESTS),
|
|
13
|
-
each
|
|
14
|
-
|
|
15
|
-
|
|
13
|
+
each worker checking out an InferRequest from a fixed
|
|
14
|
+
per-model pool (created once, post-compile), with the model
|
|
15
|
+
compiled on ONE explicit device under the LATENCY hint (no
|
|
16
|
+
AUTO — its CPU->GPU handover invalidated in-flight requests).
|
|
16
17
|
ONNX → ThreadPoolExecutor(N) — N independent InferenceSessions
|
|
17
18
|
where N = concurrency setting; each session pinned to
|
|
18
19
|
its own worker thread.
|
|
@@ -48,7 +49,6 @@ import platform
|
|
|
48
49
|
import shutil
|
|
49
50
|
import struct
|
|
50
51
|
import sys
|
|
51
|
-
import threading
|
|
52
52
|
import time
|
|
53
53
|
from collections import deque
|
|
54
54
|
from dataclasses import dataclass, field
|
|
@@ -166,61 +166,47 @@ class ModelSlot:
|
|
|
166
166
|
_runtime: str = ""
|
|
167
167
|
_runtime_lib: Any = None
|
|
168
168
|
# Max OPTIMAL_NUMBER_OF_INFER_REQUESTS across loaded OpenVINO models — used
|
|
169
|
-
# to size the predict pool so the
|
|
169
|
+
# to size the predict pool so the per-model InferRequest pool is actually fed.
|
|
170
170
|
_ov_optimal_reqs: int = 0
|
|
171
171
|
# Default OpenVINO predict-pool size when models load lazily (so we can't yet
|
|
172
172
|
# query the device's optimal request count). ≈ measured optimal on Intel
|
|
173
173
|
# CPU/iGPU/NPU (4-5). Threads idle-block on infer, so over-provisioning is cheap.
|
|
174
174
|
OV_DEFAULT_CONCURRENCY: int = 4
|
|
175
|
-
# OpenVINO device
|
|
176
|
-
#
|
|
177
|
-
#
|
|
178
|
-
#
|
|
179
|
-
#
|
|
180
|
-
#
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
else -> "AUTO"
|
|
175
|
+
# OpenVINO device decision. AUTO is NEVER used: the AUTO plugin runs inference
|
|
176
|
+
# on a CPU "helper" while the GPU JIT-compiles, then hands the model over to the
|
|
177
|
+
# GPU mid-flight. InferRequests created during that window bind to the
|
|
178
|
+
# CPU-helper's Result ports; after handover the served model's ports diverge and
|
|
179
|
+
# req.infer() raises "Cannot find tensor for port opset1::Result score_8" (proven
|
|
180
|
+
# live on the N100 iGPU). Compiling ONE explicit device removes the handover
|
|
181
|
+
# entirely. We resolve an ordered candidate list (NPU > GPU > CPU) and compile the
|
|
182
|
+
# first that succeeds, with CPU as the guaranteed floor.
|
|
183
|
+
|
|
184
|
+
|
|
185
|
+
def _resolve_ov_devices(available: list[str], full_names: dict[str, str]) -> list[str]:
|
|
186
|
+
"""Ordered EXPLICIT device candidates for compile-time failover (NPU>GPU>CPU).
|
|
187
|
+
|
|
188
|
+
Never returns an AUTO/AUTO:.. mode (see the module comment above). `available`
|
|
189
|
+
is `core.available_devices`; `full_names` maps each device to its
|
|
190
|
+
FULL_DEVICE_NAME (missing entries = the probe failed, left unclassified). A
|
|
191
|
+
GPU is only accepted when its FULL_DEVICE_NAME probed successfully (this is
|
|
192
|
+
also how an Intel iGPU vs an NVIDIA dGPU is told apart downstream). Ordering:
|
|
193
|
+
NPU(s) -> GPU(s) -> CPU (always last). The compile loop tries each in order
|
|
194
|
+
and stops at the first that compiles; CPU is the guaranteed fallback.
|
|
196
195
|
"""
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
dgpus: list[str] = []
|
|
196
|
+
npus: list[str] = []
|
|
197
|
+
gpus: list[str] = []
|
|
200
198
|
for device in available:
|
|
201
199
|
full_device_name = full_names.get(device)
|
|
202
|
-
if full_device_name is None:
|
|
203
|
-
continue
|
|
204
|
-
if "NVIDIA" in full_device_name and "dGPU" in full_device_name:
|
|
205
|
-
dgpus.append(device)
|
|
206
200
|
if "NPU" in device:
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
mode = "AUTO:NPU,CPU"
|
|
217
|
-
elif len(dgpus):
|
|
218
|
-
mode = f"AUTO:{','.join(dgpus)},CPU"
|
|
219
|
-
# forcing GPU can crash on older GPUs — the GPU-mode compile failure falls
|
|
220
|
-
# back to AUTO in the compile loop below.
|
|
221
|
-
elif gpu:
|
|
222
|
-
mode = "GPU"
|
|
223
|
-
return mode
|
|
201
|
+
npus.append(device)
|
|
202
|
+
elif "GPU" in device and full_device_name is not None:
|
|
203
|
+
gpus.append(device)
|
|
204
|
+
ordered: list[str] = [*npus, *gpus]
|
|
205
|
+
if "CPU" in available and "CPU" not in ordered:
|
|
206
|
+
ordered.append("CPU")
|
|
207
|
+
if not ordered:
|
|
208
|
+
ordered = ["CPU"]
|
|
209
|
+
return ordered
|
|
224
210
|
|
|
225
211
|
|
|
226
212
|
# ONNX Runtime execution-provider names used by _resolve_onnx_providers.
|
|
@@ -523,12 +509,13 @@ def _load_model(slot: ModelSlot, config: dict) -> None:
|
|
|
523
509
|
|
|
524
510
|
elif _runtime == "openvino":
|
|
525
511
|
core = _runtime_lib
|
|
526
|
-
|
|
527
|
-
# Device switch (see
|
|
528
|
-
# classifies the enumerated devices by
|
|
529
|
-
#
|
|
530
|
-
# "device" = gpu/cpu/npu) is
|
|
531
|
-
|
|
512
|
+
ov_device_req = str(config.get("device", "AUTO")).upper()
|
|
513
|
+
# Device switch (see _resolve_ov_devices above): an AUTO/default request
|
|
514
|
+
# classifies the enumerated devices by FULL_DEVICE_NAME and yields an
|
|
515
|
+
# ORDERED EXPLICIT candidate list (NPU>GPU>CPU) for compile-time
|
|
516
|
+
# failover. An operator-pinned device (config "device" = gpu/cpu/npu) is
|
|
517
|
+
# honored unchanged — compiled directly, no failover.
|
|
518
|
+
if ov_device_req in ("AUTO", "DEFAULT", ""):
|
|
532
519
|
available = list(core.available_devices)
|
|
533
520
|
full_names: dict[str, str] = {}
|
|
534
521
|
for dev in available:
|
|
@@ -536,40 +523,38 @@ def _load_model(slot: ModelSlot, config: dict) -> None:
|
|
|
536
523
|
full_names[dev] = str(core.get_property(dev, "FULL_DEVICE_NAME"))
|
|
537
524
|
except Exception:
|
|
538
525
|
pass
|
|
539
|
-
|
|
526
|
+
candidates = _resolve_ov_devices(available, full_names)
|
|
540
527
|
sys.stderr.write(
|
|
541
|
-
f"OpenVINO:
|
|
528
|
+
f"OpenVINO: explicit device candidates {candidates} "
|
|
542
529
|
f"(available: {available}, names: {full_names})\n"
|
|
543
530
|
)
|
|
544
531
|
sys.stderr.flush()
|
|
545
532
|
else:
|
|
546
|
-
|
|
533
|
+
candidates = [ov_device_req] # operator pin — compiled directly
|
|
534
|
+
sys.stderr.write(f"OpenVINO: operator-pinned device {ov_device_req}\n")
|
|
547
535
|
sys.stderr.flush()
|
|
548
|
-
#
|
|
549
|
-
#
|
|
550
|
-
#
|
|
551
|
-
#
|
|
552
|
-
#
|
|
553
|
-
|
|
554
|
-
ov_config = {"PERFORMANCE_HINT": "THROUGHPUT"}
|
|
536
|
+
# LATENCY (not THROUGHPUT): one deterministic execution stream instead of
|
|
537
|
+
# N. THROUGHPUT spun up multiple internal streams whose lazy request
|
|
538
|
+
# creation collided with the AUTO handover AND multiplied memory (a factor
|
|
539
|
+
# in the N100 OOM-freeze). LATENCY keeps a single stream; camera-level
|
|
540
|
+
# concurrency comes from the fixed InferRequest pool built below.
|
|
541
|
+
ov_config = {"PERFORMANCE_HINT": "LATENCY"}
|
|
555
542
|
# Persist compiled GPU/NPU kernels so the multi-second JIT compile is paid
|
|
556
543
|
# once (first boot) instead of on every pool spawn. The cold compile storm
|
|
557
|
-
# (~25s for the full model set on an N100 iGPU) is
|
|
558
|
-
#
|
|
544
|
+
# (~25s for the full model set on an N100 iGPU) is where frames pile up;
|
|
545
|
+
# caching the kernels shrinks that window on subsequent boots.
|
|
559
546
|
try:
|
|
560
547
|
_cache_dir = os.path.join(os.path.dirname(os.path.abspath(path)), ".ov-cache")
|
|
561
548
|
os.makedirs(_cache_dir, exist_ok=True)
|
|
562
549
|
ov_config["CACHE_DIR"] = _cache_dir
|
|
563
550
|
except OSError:
|
|
564
551
|
pass
|
|
565
|
-
# Compile the
|
|
566
|
-
#
|
|
567
|
-
#
|
|
568
|
-
# error handler reports the failure.
|
|
569
|
-
candidates = [ov_device]
|
|
570
|
-
if "GPU" in ov_device:
|
|
571
|
-
candidates.append("AUTO")
|
|
552
|
+
# Compile-time failover over the explicit candidate list (NO AUTO): try
|
|
553
|
+
# each device in order (NPU>GPU>CPU) and stop at the first that compiles.
|
|
554
|
+
# CPU is the guaranteed floor. If every candidate fails, re-raise — the
|
|
555
|
+
# existing load/replace error handler reports the failure.
|
|
572
556
|
compiled = None
|
|
557
|
+
ov_device = None
|
|
573
558
|
last_exc: Optional[BaseException] = None
|
|
574
559
|
for candidate in candidates:
|
|
575
560
|
try:
|
|
@@ -578,9 +563,9 @@ def _load_model(slot: ModelSlot, config: dict) -> None:
|
|
|
578
563
|
break
|
|
579
564
|
except Exception as exc:
|
|
580
565
|
last_exc = exc
|
|
581
|
-
sys.stderr.write(f"OpenVINO: compile
|
|
566
|
+
sys.stderr.write(f"OpenVINO: compile on {candidate} failed: {exc}\n")
|
|
582
567
|
if candidate != candidates[-1]:
|
|
583
|
-
sys.stderr.write(
|
|
568
|
+
sys.stderr.write("OpenVINO: falling back to next device.\n")
|
|
584
569
|
sys.stderr.flush()
|
|
585
570
|
if compiled is None:
|
|
586
571
|
if last_exc is not None:
|
|
@@ -610,30 +595,36 @@ def _load_model(slot: ModelSlot, config: dict) -> None:
|
|
|
610
595
|
except Exception:
|
|
611
596
|
pass
|
|
612
597
|
|
|
613
|
-
#
|
|
614
|
-
#
|
|
615
|
-
#
|
|
616
|
-
|
|
598
|
+
# Create ALL InferRequests ONCE, now, post-compile. With AUTO gone there
|
|
599
|
+
# is no CPU->GPU handover, so no request can be born mid-handover and bind
|
|
600
|
+
# to stale ports — the score_8 race is structurally removed. Requests are
|
|
601
|
+
# handed out through a thread-safe queue: an InferRequest is never touched
|
|
602
|
+
# by two threads at once (checkout/return), so sharing a fixed pool is safe
|
|
603
|
+
# and avoids the old thread-local lazy creation. Size the pool to the
|
|
604
|
+
# device's optimal count (>= OV_DEFAULT_CONCURRENCY) so it matches the
|
|
605
|
+
# predict-pool worker count sized in _run().
|
|
606
|
+
import queue as _queue
|
|
607
|
+
|
|
608
|
+
try:
|
|
609
|
+
_n_req = int(compiled.get_property("OPTIMAL_NUMBER_OF_INFER_REQUESTS"))
|
|
610
|
+
except Exception:
|
|
611
|
+
_n_req = 0
|
|
612
|
+
_n_req = max(_n_req, OV_DEFAULT_CONCURRENCY)
|
|
613
|
+
_req_pool: "_queue.Queue" = _queue.Queue()
|
|
614
|
+
for _ in range(_n_req):
|
|
615
|
+
_req_pool.put(compiled.create_infer_request())
|
|
616
|
+
sys.stderr.write(f"OpenVINO: created {_n_req} InferRequest(s) up-front on {ov_device}\n")
|
|
617
|
+
sys.stderr.flush()
|
|
617
618
|
|
|
618
|
-
def predict(inp_dict: dict,
|
|
619
|
-
req = getattr(_tls, "req", None)
|
|
620
|
-
if req is None:
|
|
621
|
-
req = _tls.req = _c.create_infer_request()
|
|
619
|
+
def predict(inp_dict: dict, _names=output_names, _pool=_req_pool) -> dict:
|
|
622
620
|
inp = list(inp_dict.values())[0]
|
|
621
|
+
req = _pool.get()
|
|
623
622
|
try:
|
|
624
623
|
result = req.infer(inp)
|
|
625
|
-
|
|
626
|
-
|
|
627
|
-
|
|
628
|
-
|
|
629
|
-
# "Cannot find tensor for port ... score_8". (Reproduced live on
|
|
630
|
-
# the N100 iGPU under concurrent THROUGHPUT threads; the raise is
|
|
631
|
-
# in req.infer(), not the output fetch below.) Recreate the
|
|
632
|
-
# thread-local request post-handover and retry once.
|
|
633
|
-
req = _tls.req = _c.create_infer_request()
|
|
634
|
-
result = req.infer(inp)
|
|
635
|
-
# Fetch outputs by positional index (stable across the handover)
|
|
636
|
-
# rather than ConstOutput port identity — belt-and-braces.
|
|
624
|
+
finally:
|
|
625
|
+
_pool.put(req)
|
|
626
|
+
# Output fetch by positional index — stable and harmless now that the
|
|
627
|
+
# ports no longer diverge (single explicit device, no handover).
|
|
637
628
|
return {name: result[i] for i, name in enumerate(_names)}
|
|
638
629
|
|
|
639
630
|
slot.model = compiled
|
|
@@ -1267,18 +1258,18 @@ async def _run() -> None:
|
|
|
1267
1258
|
sys.stderr.flush()
|
|
1268
1259
|
models.append(slot)
|
|
1269
1260
|
|
|
1270
|
-
# OpenVINO: size the predict pool so the
|
|
1271
|
-
# actually fed by concurrent
|
|
1272
|
-
# concurrency=1 (it predates
|
|
1261
|
+
# OpenVINO: size the predict pool so the fixed InferRequest pool (built per
|
|
1262
|
+
# model in _load_model) is actually fed by concurrent predict workers. The
|
|
1263
|
+
# addon passes concurrency=1 (it predates the request pool) and models load
|
|
1273
1264
|
# lazily AFTER this point, so we can't read OPTIMAL_NUMBER_OF_INFER_REQUESTS
|
|
1274
1265
|
# here — default to OV_DEFAULT_CONCURRENCY (≈ the measured optimal of 4-5
|
|
1275
1266
|
# on Intel CPU/iGPU/NPU). If startup-loaded models report a higher optimal,
|
|
1276
|
-
# use that.
|
|
1267
|
+
# use that. The per-model InferRequest pool is sized to the same target.
|
|
1277
1268
|
if runtime == "openvino":
|
|
1278
1269
|
target = max(_ov_optimal_reqs, OV_DEFAULT_CONCURRENCY)
|
|
1279
1270
|
if target > concurrency:
|
|
1280
1271
|
sys.stderr.write(
|
|
1281
|
-
f"OpenVINO
|
|
1272
|
+
f"OpenVINO LATENCY: predict concurrency {concurrency} -> {target}\n"
|
|
1282
1273
|
)
|
|
1283
1274
|
sys.stderr.flush()
|
|
1284
1275
|
concurrency = target
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"""Unit tests for the runtime device/provider selection in inference_pool.
|
|
2
2
|
|
|
3
3
|
Covers:
|
|
4
|
-
-
|
|
4
|
+
- _resolve_ov_devices — the OpenVINO explicit device-candidate ordering.
|
|
5
5
|
- _resolve_onnx_providers — the ONNX execution-provider ordering
|
|
6
6
|
with camstack's pin + availability filter.
|
|
7
7
|
|
|
@@ -41,29 +41,35 @@ from inference_pool import (
|
|
|
41
41
|
ONNX_CPU_EP,
|
|
42
42
|
ONNX_CUDA_EP,
|
|
43
43
|
_resolve_onnx_providers,
|
|
44
|
-
|
|
44
|
+
_resolve_ov_devices,
|
|
45
45
|
)
|
|
46
46
|
|
|
47
47
|
|
|
48
|
-
class
|
|
49
|
-
"""
|
|
48
|
+
class ResolveOvDevicesTest(unittest.TestCase):
|
|
49
|
+
"""Ordered EXPLICIT device candidates (NPU>GPU>CPU) — no AUTO.
|
|
50
50
|
|
|
51
|
-
|
|
52
|
-
|
|
51
|
+
The AUTO plugin's CPU->GPU handover invalidated in-flight InferRequest ports
|
|
52
|
+
("score_8"); _resolve_ov_devices returns an ordered candidate list the
|
|
53
|
+
compile loop fails over explicitly, so AUTO is never used. CPU is always the
|
|
54
|
+
guaranteed floor/last entry.
|
|
55
|
+
"""
|
|
56
|
+
|
|
57
|
+
def test_n100_intel_igpu_and_cpu_is_gpu_then_cpu(self) -> None:
|
|
58
|
+
# Intel iGPU + CPU, no NPU — GPU first, CPU floor.
|
|
53
59
|
self.assertEqual(
|
|
54
|
-
|
|
60
|
+
_resolve_ov_devices(
|
|
55
61
|
["CPU", "GPU"],
|
|
56
62
|
{
|
|
57
63
|
"CPU": "Intel(R) N100",
|
|
58
64
|
"GPU": "Intel(R) UHD Graphics [0x46d1] (iGPU)",
|
|
59
65
|
},
|
|
60
66
|
),
|
|
61
|
-
"GPU",
|
|
67
|
+
["GPU", "CPU"],
|
|
62
68
|
)
|
|
63
69
|
|
|
64
|
-
def
|
|
70
|
+
def test_hub_npu_gpu_cpu_orders_npu_gpu_cpu(self) -> None:
|
|
65
71
|
self.assertEqual(
|
|
66
|
-
|
|
72
|
+
_resolve_ov_devices(
|
|
67
73
|
["CPU", "GPU", "NPU"],
|
|
68
74
|
{
|
|
69
75
|
"CPU": "Intel(R) Core(TM) Ultra 5 125H",
|
|
@@ -71,36 +77,36 @@ class ResolveOvModeTest(unittest.TestCase):
|
|
|
71
77
|
"NPU": "Intel(R) AI Boost",
|
|
72
78
|
},
|
|
73
79
|
),
|
|
74
|
-
"
|
|
80
|
+
["NPU", "GPU", "CPU"],
|
|
75
81
|
)
|
|
76
82
|
|
|
77
|
-
def
|
|
83
|
+
def test_npu_without_gpu_orders_npu_cpu(self) -> None:
|
|
78
84
|
self.assertEqual(
|
|
79
|
-
|
|
85
|
+
_resolve_ov_devices(
|
|
80
86
|
["CPU", "NPU"],
|
|
81
87
|
{
|
|
82
88
|
"CPU": "Intel(R) Core(TM) Ultra",
|
|
83
89
|
"NPU": "Intel(R) AI Boost",
|
|
84
90
|
},
|
|
85
91
|
),
|
|
86
|
-
"
|
|
92
|
+
["NPU", "CPU"],
|
|
87
93
|
)
|
|
88
94
|
|
|
89
|
-
def
|
|
95
|
+
def test_single_nvidia_dgpu_orders_gpu_cpu(self) -> None:
|
|
90
96
|
self.assertEqual(
|
|
91
|
-
|
|
97
|
+
_resolve_ov_devices(
|
|
92
98
|
["CPU", "GPU.0"],
|
|
93
99
|
{
|
|
94
100
|
"CPU": "Intel(R) Core(TM) i5",
|
|
95
101
|
"GPU.0": "NVIDIA GeForce RTX 3060 (dGPU)",
|
|
96
102
|
},
|
|
97
103
|
),
|
|
98
|
-
"
|
|
104
|
+
["GPU.0", "CPU"],
|
|
99
105
|
)
|
|
100
106
|
|
|
101
|
-
def
|
|
107
|
+
def test_multiple_gpus_join_in_enumeration_order(self) -> None:
|
|
102
108
|
self.assertEqual(
|
|
103
|
-
|
|
109
|
+
_resolve_ov_devices(
|
|
104
110
|
["CPU", "GPU.0", "GPU.1"],
|
|
105
111
|
{
|
|
106
112
|
"CPU": "Intel(R) Core(TM) i9",
|
|
@@ -108,13 +114,14 @@ class ResolveOvModeTest(unittest.TestCase):
|
|
|
108
114
|
"GPU.1": "NVIDIA GeForce RTX 4090 (dGPU)",
|
|
109
115
|
},
|
|
110
116
|
),
|
|
111
|
-
"
|
|
117
|
+
["GPU.0", "GPU.1", "CPU"],
|
|
112
118
|
)
|
|
113
119
|
|
|
114
|
-
def
|
|
115
|
-
# dGPU
|
|
120
|
+
def test_mixed_igpu_and_dgpu_both_candidates_in_order(self) -> None:
|
|
121
|
+
# No dGPU-vs-iGPU precedence now: every named GPU is a failover
|
|
122
|
+
# candidate, tried in enumeration order, CPU last.
|
|
116
123
|
self.assertEqual(
|
|
117
|
-
|
|
124
|
+
_resolve_ov_devices(
|
|
118
125
|
["CPU", "GPU.0", "GPU.1"],
|
|
119
126
|
{
|
|
120
127
|
"CPU": "Intel(R) Core(TM) i7",
|
|
@@ -122,13 +129,12 @@ class ResolveOvModeTest(unittest.TestCase):
|
|
|
122
129
|
"GPU.1": "NVIDIA GeForce RTX 3080 (dGPU)",
|
|
123
130
|
},
|
|
124
131
|
),
|
|
125
|
-
"
|
|
132
|
+
["GPU.0", "GPU.1", "CPU"],
|
|
126
133
|
)
|
|
127
134
|
|
|
128
|
-
def
|
|
129
|
-
# npu is checked FIRST — dGPUs only matter when no NPU exists.
|
|
135
|
+
def test_npu_precedes_gpus(self) -> None:
|
|
130
136
|
self.assertEqual(
|
|
131
|
-
|
|
137
|
+
_resolve_ov_devices(
|
|
132
138
|
["CPU", "GPU.0", "NPU"],
|
|
133
139
|
{
|
|
134
140
|
"CPU": "Intel(R) Core(TM) Ultra",
|
|
@@ -136,24 +142,23 @@ class ResolveOvModeTest(unittest.TestCase):
|
|
|
136
142
|
"NPU": "Intel(R) AI Boost",
|
|
137
143
|
},
|
|
138
144
|
),
|
|
139
|
-
"
|
|
145
|
+
["NPU", "GPU.0", "CPU"],
|
|
140
146
|
)
|
|
141
147
|
|
|
142
|
-
def
|
|
148
|
+
def test_cpu_only_is_cpu(self) -> None:
|
|
143
149
|
self.assertEqual(
|
|
144
|
-
|
|
145
|
-
"
|
|
150
|
+
_resolve_ov_devices(["CPU"], {"CPU": "Intel(R) N100"}),
|
|
151
|
+
["CPU"],
|
|
146
152
|
)
|
|
147
153
|
|
|
148
|
-
def
|
|
149
|
-
self.assertEqual(
|
|
154
|
+
def test_empty_available_falls_back_to_cpu(self) -> None:
|
|
155
|
+
self.assertEqual(_resolve_ov_devices([], {}), ["CPU"])
|
|
150
156
|
|
|
151
|
-
def
|
|
152
|
-
# A
|
|
153
|
-
# FULL_DEVICE_NAME query failed is skipped entirely.
|
|
157
|
+
def test_gpu_without_full_name_is_not_a_candidate(self) -> None:
|
|
158
|
+
# A GPU whose FULL_DEVICE_NAME query failed is skipped; CPU floor remains.
|
|
154
159
|
self.assertEqual(
|
|
155
|
-
|
|
156
|
-
"
|
|
160
|
+
_resolve_ov_devices(["CPU", "GPU"], {"CPU": "Intel(R) N100"}),
|
|
161
|
+
["CPU"],
|
|
157
162
|
)
|
|
158
163
|
|
|
159
164
|
|
|
@@ -1,26 +0,0 @@
|
|
|
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.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.DecodedAudioChunkSchema, e.DecodedFrameSchema, e.DecoderAssignmentSchema, e.DecoderSessionConfigSchema, e.DecoderStatsSchema, e.DeleteIntegrationResultSchema, e.DetectionSourceSchema, e.DetectorOutputSchema, 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.ExposedResourceSchema, 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.ImageStatusSchema, e.InstalledPackageSchema, e.IntegrationLiteSchema, e.IntegrationWithStateSchema, e.IntercomAbilitySchema, e.IntercomStatusSchema, e.KNOWN_CAP_NAMES, e.LabelDefinitionSchema, e.LawnMowerActivitySchema, e.LawnMowerControlStatusSchema, e.LocateSegmentResultSchema, e.LocationStatSchema, e.LockControlStatusSchema, e.LockStateSchema, e.LogEntrySchema, e.LogLevelSchema, e.LogStreamEntrySchema, 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.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.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.PickStreamPreferencesSchema, e.PickStreamRequirementsSchema, e.PickedCamStreamSchema, e.PipelineAssignmentSchema, e.PipelineDefaultStepSchema, e.PipelineEngineChoiceSchema, e.PipelineRunResultBridge, e.PipelineStepInputSchema, 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.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.RegisteredStreamSchema, 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.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.StreamInfoSchema, 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.WidgetHostEnum, 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.buildStreamParamsConfigSchema, e.buttonCapability, e.cameraCredentialsCapability, e.cameraPipelineConfigCapability, e.cameraStreamsCapability, e.canConvertUnit, e.carbonMonoxideCapability, e.cellsToRects, e.classifyStream, e.classifyStreams, e.climateControlCapability, 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.decoderCapability, e.defaultDeviceFor, e.defineCustomActions, 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.integrationsCapability, e.intercomCapability, e.isAgentOnlyPlacement, e.isDeployableToAgent, e.isDeviceConfigCap, e.isEvent, e.jobKindSchema, e.lawnMowerControlCapability, e.lifecycleJobSchema, e.lifecycleJobScopeSchema, e.lifecycleJobStateSchema, e.lifecycleTaskSchema, e.localNetworkCapability, e.locationSimilarity, e.lockControlCapability, e.logDestinationCapability, 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.pickPreferredRtspEntry, e.pipelineAnalyticsCapability, e.pipelineExecutorCapability, e.pipelineOrchestratorCapability, e.pipelineRunnerCapability, e.plateGalleryCapability, e.platformProbeCapability, e.powerMeterCapability, e.prepareNotification, e.presenceCapability, e.pressureSensorCapability, e.privacyMaskCapability, 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.resolveModelFormat, e.resolveRunnerId, e.restreamerCapability, e.runInferenceStep, e.runtimeDevices, e.scopeKey, e.scoreRuntimes, e.scriptRunnerCapability, e.selectAssignedProfileSlots, e.setByPath, e.settingsStoreCapability, e.sleep, e.sleepCancellable, e.smokeCapability, e.smtpProviderCapability, e.snapshotCapability, e.snapshotProviderCapability, e.ssoBridgeCapability, e.storageCapability, e.storageEvictableCapability, e.storageProviderCapability, e.streamBrokerCapability, e.streamCatalogCapability, e.streamParamsCapability, e.streamPixels, e.streamQualityLabel, e.streamingEngineCapability, 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.waterHeaterCapability, e.weatherCapability, e.webrtcCapability, 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 };
|