@camstack/addon-pipeline 1.1.68 → 1.1.69

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (26) hide show
  1. package/dist/audio-analyzer/index.js +1 -1
  2. package/dist/audio-analyzer/index.mjs +1 -1
  3. package/dist/detection-pipeline/index.js +137 -27
  4. package/dist/detection-pipeline/index.mjs +137 -27
  5. package/dist/{dist-DkGHtAaK.mjs → dist-BT4Ug2Bf.mjs} +22 -2
  6. package/dist/{dist-BxxVKcnw.js → dist-DUcDVlg7.js} +22 -2
  7. package/dist/motion-wasm/index.js +1 -1
  8. package/dist/motion-wasm/index.mjs +1 -1
  9. package/dist/pipeline-runner/index.js +7 -3
  10. package/dist/pipeline-runner/index.mjs +7 -3
  11. package/dist/recorder/index.js +1 -1
  12. package/dist/recorder/index.mjs +1 -1
  13. package/dist/{step-definitions-CAs0RD2N.js → step-definitions-4tt-nRM4.js} +114 -187
  14. package/dist/{step-definitions-Delhq28w.mjs → step-definitions-DO0hIDMx.mjs} +114 -187
  15. package/dist/stream-broker/{_virtual_mf-localSharedImportMap___mfe_internal__addon_stream_broker_widgets-BUXIIogo.mjs → _virtual_mf-localSharedImportMap___mfe_internal__addon_stream_broker_widgets-CP4DpABx.mjs} +1 -1
  16. package/dist/stream-broker/{hostInit-D7_95hNV.mjs → hostInit-Do2ymS0O.mjs} +1 -1
  17. package/dist/stream-broker/index.js +1 -1
  18. package/dist/stream-broker/index.mjs +1 -1
  19. package/dist/stream-broker/remoteEntry.js +1 -1
  20. package/embed-dist/assets/{MaskShapeCanvas-DI4BY7W2-CRvzj7Of.js → MaskShapeCanvas-DI4BY7W2-DlI3udxg.js} +1 -1
  21. package/embed-dist/assets/{MotionZonesSettings-NcxxQN8r-CBgvPUB-.js → MotionZonesSettings-NcxxQN8r-Du8J0kED.js} +1 -1
  22. package/embed-dist/assets/{PrivacyMaskSettings-APgPLF7p-DH07fe1k.js → PrivacyMaskSettings-APgPLF7p-DSST47WI.js} +1 -1
  23. package/embed-dist/assets/{index-BkoPcGtQ.js → index-B2ux2xJ7.js} +4 -4
  24. package/embed-dist/index.html +1 -1
  25. package/package.json +1 -1
  26. package/python/inference_pool.py +13 -3
@@ -4,7 +4,7 @@
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-BkoPcGtQ.js"></script>
7
+ <script type="module" crossorigin src="./assets/index-B2ux2xJ7.js"></script>
8
8
  <link rel="stylesheet" crossorigin href="./assets/index-D2pF9Z3W.css">
9
9
  </head>
10
10
  <body>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@camstack/addon-pipeline",
3
- "version": "1.1.68",
3
+ "version": "1.1.69",
4
4
  "description": "CamStack Pipeline bundle — runner, detection, motion, audio + stream broker. Multi-entry npm package shipping pipeline addons under a single bundle.",
5
5
  "keywords": [
6
6
  "camstack",
@@ -447,7 +447,7 @@ def _acquire_coreml_model(ct: Any, path: str, compute_units: Any) -> tuple[Any,
447
447
  return model, spec
448
448
 
449
449
 
450
- def _init_runtime(runtime: str) -> None:
450
+ def _init_runtime(runtime: str, device: str = "") -> None:
451
451
  global _runtime, _runtime_lib
452
452
  _runtime = runtime
453
453
  if runtime == "coreml":
@@ -472,7 +472,16 @@ def _init_runtime(runtime: str) -> None:
472
472
  lib_path = os.environ.get(
473
473
  "CAMSTACK_EDGETPU_LIB", "/data/deps/edgetpu/lib/libedgetpu.so.1",
474
474
  )
475
- delegate = load_delegate(lib_path)
475
+ # Multiple Corals coexist and run concurrently, one pool each. libedgetpu
476
+ # addresses a specific unit by an ordinal device string ("usb", "usb:1",
477
+ # "pci:0", …); the orchestrator passes it as the pool `device`. Omitted /
478
+ # bare "usb" ⇒ the first available Coral (single-Coral default).
479
+ dev = (device or "").strip()
480
+ if dev and dev not in ("usb", "all", "default"):
481
+ delegate = load_delegate(lib_path, {"device": dev})
482
+ sys.stderr.write(f"EdgeTPU: delegate bound to device '{dev}'\n")
483
+ else:
484
+ delegate = load_delegate(lib_path)
476
485
  _runtime_lib = {
477
486
  "Interpreter": Interpreter,
478
487
  "delegate": delegate,
@@ -1765,6 +1774,7 @@ async def _run() -> None:
1765
1774
  sys.exit(1)
1766
1775
  config = json.loads(payload)
1767
1776
  runtime = config.get("runtime", "coreml")
1777
+ pool_device = str(config.get("device", "") or "")
1768
1778
  concurrency = int(config.get("concurrency", 1) or 1)
1769
1779
  batch_mode = str(config.get("batch_mode", "none"))
1770
1780
  if batch_mode not in ("none", "list", "window"):
@@ -1777,7 +1787,7 @@ async def _run() -> None:
1777
1787
  f"batch_mode={batch_mode}, window_ms={window_ms}, max_batch={max_batch_size})\n"
1778
1788
  )
1779
1789
  sys.stderr.flush()
1780
- _init_runtime(runtime)
1790
+ _init_runtime(runtime, pool_device)
1781
1791
 
1782
1792
  models: list[ModelSlot] = []
1783
1793
  for i, mc in enumerate(config.get("models", [])):