@camstack/addon-pipeline 1.2.43 → 1.2.45

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 (40) 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 +158 -81
  4. package/dist/detection-pipeline/index.mjs +158 -81
  5. package/dist/{dist-B-VVBzrL.mjs → dist-BDkEhx4Z.mjs} +1315 -127
  6. package/dist/{dist-UHbKZiSa.js → dist-QyZ7QSRP.js} +1386 -126
  7. package/dist/{event-loop-stall-monitor-C7_L6vHO.js → event-loop-stall-monitor-COEKVBQK.js} +53 -8
  8. package/dist/{event-loop-stall-monitor-DfKdC7G4.mjs → event-loop-stall-monitor-IAuNEdmG.mjs} +53 -8
  9. package/dist/motion-wasm/index.js +1 -1
  10. package/dist/motion-wasm/index.mjs +1 -1
  11. package/dist/pipeline-runner/index.js +342 -69
  12. package/dist/pipeline-runner/index.mjs +342 -69
  13. package/dist/recorder/index.js +189 -6
  14. package/dist/recorder/index.mjs +189 -6
  15. package/dist/session-decode/decode-worker-child.js +197 -24
  16. package/dist/session-decode/decode-worker-child.mjs +197 -24
  17. package/dist/stream-broker/_stub.js +2 -2
  18. package/dist/stream-broker/{_virtual_mf-localSharedImportMap___mfe_internal__addon_stream_broker_widgets-D7iQbuKY.mjs → _virtual_mf-localSharedImportMap___mfe_internal__addon_stream_broker_widgets-C68YfSUH.mjs} +2 -2
  19. package/dist/stream-broker/_virtual_mf___mfe_internal__addon_stream_broker_widgets__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-CT2bGWqM.mjs +26 -0
  20. package/dist/stream-broker/{_virtual_mf___mfe_internal__addon_stream_broker_widgets__loadShare___mf_0_camstack_mf_1_ui_mf_2_library__loadShare__.js-54IklEep.mjs → _virtual_mf___mfe_internal__addon_stream_broker_widgets__loadShare___mf_0_camstack_mf_1_ui_mf_2_library__loadShare__.js-B3GxBnXM.mjs} +1 -1
  21. package/dist/stream-broker/{hostInit-CKYS9yZO.mjs → hostInit-BMCrULpc.mjs} +2 -2
  22. package/dist/stream-broker/index.js +4602 -1442
  23. package/dist/stream-broker/index.mjs +4601 -1442
  24. package/dist/stream-broker/remoteEntry.js +1 -1
  25. package/dist/worker-protocol-DFH_z2-q.mjs +244 -0
  26. package/dist/worker-protocol-le27Mw_8.js +279 -0
  27. package/embed-dist/assets/{MaskShapeCanvas-DI4BY7W2-DxZ75vB8.js → MaskShapeCanvas-DI4BY7W2-C7bsz4cP.js} +1 -1
  28. package/embed-dist/assets/{MotionZonesSettings-NcxxQN8r-BBY2Ztz5.js → MotionZonesSettings-NcxxQN8r-BmhLinUd.js} +1 -1
  29. package/embed-dist/assets/{PrivacyMaskSettings-APgPLF7p-BC-3QmHa.js → PrivacyMaskSettings-APgPLF7p-BJjyGWFy.js} +1 -1
  30. package/embed-dist/assets/index-DC63og2c.css +2 -0
  31. package/embed-dist/assets/{index-on1wyOnd.js → index-a4CMt-Uc.js} +12 -12
  32. package/embed-dist/index.html +2 -2
  33. package/package.json +1 -1
  34. package/python/postprocessors/__init__.py +2 -0
  35. package/python/postprocessors/rfdetr.py +161 -0
  36. package/python/postprocessors/test_rfdetr.py +193 -0
  37. package/dist/stream-broker/_virtual_mf___mfe_internal__addon_stream_broker_widgets__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-CCC9fqHH.mjs +0 -26
  38. package/dist/worker-protocol-D7RzZIla.mjs +0 -77
  39. package/dist/worker-protocol-DextwlTX.js +0 -94
  40. package/embed-dist/assets/index-CGdwTcwE.css +0 -2
@@ -1,4 +1,4 @@
1
- const require_dist = require("./dist-UHbKZiSa.js");
1
+ const require_dist = require("./dist-QyZ7QSRP.js");
2
2
  let node_perf_hooks = require("node:perf_hooks");
3
3
  //#region src/detection-pipeline/registry/model-catalogs.ts
4
4
  var HF_REPO = "camstack/camstack-models";
@@ -665,9 +665,8 @@ var PACKAGE_DETECTION_MODELS = [{
665
665
  }
666
666
  }, {
667
667
  id: "rfdetr-package",
668
- legacy: true,
669
- name: "RF-DETR — Package (experimental)",
670
- description: "RF-DETR parcel detector (onnx + openvino) — DETR-style decode; alternative to yolov8n-package. Requires an rfdetr postprocessor (not yet available)",
668
+ name: "RF-DETR — Package",
669
+ description: "RF-DETR parcel detector DETR-style decode (onnx / coreml / openvino). Separates parcel from doormat far better than yolov8n-package (+0.86 vs +0.21 margin on 615) at ~4× the size and ~6× the latency",
671
670
  inputSize: {
672
671
  width: 576,
673
672
  height: 576
@@ -678,13 +677,21 @@ var PACKAGE_DETECTION_MODELS = [{
678
677
  }],
679
678
  preprocessMode: "resize",
680
679
  inputNormalization: "imagenet",
680
+ postprocessor: "rfdetr",
681
681
  license: "Apache-2.0",
682
682
  formats: {
683
683
  onnx: {
684
684
  url: hf("packageDetection/rfdetr-package/onnx/camstack-rfdetr-package.onnx"),
685
- sizeMB: 30
685
+ sizeMB: 115
686
+ },
687
+ coreml: {
688
+ url: hf("packageDetection/rfdetr-package/coreml/camstack-rfdetr-package.mlpackage"),
689
+ sizeMB: 58,
690
+ isDirectory: true,
691
+ files: [...MLPACKAGE_FILES],
692
+ runtimes: ["python"]
686
693
  },
687
- openvino: ovFormat(hf("packageDetection/rfdetr-package/openvino/camstack-rfdetr-package.xml"), 30)
694
+ openvino: ovFormat(hf("packageDetection/rfdetr-package/openvino/camstack-rfdetr-package.xml"), 58)
688
695
  }
689
696
  }];
690
697
  var PLATE_OCR_MODELS = [{
@@ -1455,6 +1462,44 @@ var AnimalClassifierStep = class {
1455
1462
  }];
1456
1463
  }
1457
1464
  };
1465
+ /**
1466
+ * `package-detection` — a ROOT detector, so its threshold is NOT the
1467
+ * classifier's `minConfidence` key.
1468
+ *
1469
+ * The executor filters every root detection through `macroFilterVerdict`, which
1470
+ * builds its key as `minConfidence${capitalize(macroClass)}`. This detector's
1471
+ * model emits `class: 'package'` and the step declares no `classMap`, so
1472
+ * `toMutableRootDetection` copies that through verbatim and the key the gate
1473
+ * reads is `minConfidencePackage`. A schema declaring `minConfidence` here
1474
+ * would render a slider that filters nothing.
1475
+ *
1476
+ * Why it exists: the 0.5 floor lived only in `definition.defaultConfidence`,
1477
+ * which is forwarded to the Python pool and reachable from no operator surface
1478
+ * (the catalog carries `configSchema` to the admin-ui; an empty schema renders
1479
+ * no form). Camera 615 reported a DOORMAT at 0.5669 on 2026-08-07, and the
1480
+ * model's own benchmark had already noted a doormat near-FP at 0.49 — the
1481
+ * shipped floor sat 0.01 above a known false positive with no way to move it.
1482
+ *
1483
+ * There is deliberately NO enable switch. Enablement is zone-driven
1484
+ * (`applyPackageZoneActivation` — drawing a `package`-stage zone rule IS the
1485
+ * enable), and a second enablement authority beside the zone rule is the exact
1486
+ * bug `packageDropEnabled` already was.
1487
+ */
1488
+ var PackageDetectionStep = class extends PipelineStepBase {
1489
+ getConfigSchema() {
1490
+ return [{
1491
+ type: "slider",
1492
+ key: "minConfidencePackage",
1493
+ label: "Min Confidence — Package",
1494
+ description: "Drop package predictions below this score. Raise it when static porch furniture (a doormat, a plant pot) is reported as a parcel — those sit just above the default.",
1495
+ min: 0,
1496
+ max: 1,
1497
+ step: .05,
1498
+ default: this.definition.defaultConfidence,
1499
+ showValue: true
1500
+ }];
1501
+ }
1502
+ };
1458
1503
  var ClassifierWithMinConfidence = class extends PipelineStepBase {
1459
1504
  getConfigSchema() {
1460
1505
  return [{
@@ -1628,7 +1673,7 @@ var STEP_PLATE_OCR = new PlateOcrStep({
1628
1673
  maxPerTrack: 5
1629
1674
  }
1630
1675
  });
1631
- var STEP_PACKAGE_DETECTION = new PipelineStepBase({
1676
+ var STEP_PACKAGE_DETECTION = new PackageDetectionStep({
1632
1677
  id: "package-detection",
1633
1678
  name: "Package Detection",
1634
1679
  slot: "detector",
@@ -1637,7 +1682,7 @@ var STEP_PACKAGE_DETECTION = new PipelineStepBase({
1637
1682
  inputClasses: null,
1638
1683
  outputClasses: ["package"],
1639
1684
  models: [...PACKAGE_DETECTION_MODELS],
1640
- defaultModelId: "yolov8n-package",
1685
+ defaultModelId: "rfdetr-package",
1641
1686
  enabledByDefault: false,
1642
1687
  defaultConfidence: .5,
1643
1688
  labels: ["package"]
@@ -1,4 +1,4 @@
1
- import { a as COCO_80_LABELS, j as hfModelUrl, o as COCO_TO_MACRO, r as AUDIO_MACRO_LABELS } from "./dist-B-VVBzrL.mjs";
1
+ import { L as hfModelUrl, a as COCO_TO_MACRO, i as COCO_80_LABELS, r as AUDIO_MACRO_LABELS } from "./dist-BDkEhx4Z.mjs";
2
2
  import { PerformanceObserver } from "node:perf_hooks";
3
3
  //#region src/detection-pipeline/registry/model-catalogs.ts
4
4
  var HF_REPO = "camstack/camstack-models";
@@ -665,9 +665,8 @@ var PACKAGE_DETECTION_MODELS = [{
665
665
  }
666
666
  }, {
667
667
  id: "rfdetr-package",
668
- legacy: true,
669
- name: "RF-DETR — Package (experimental)",
670
- description: "RF-DETR parcel detector (onnx + openvino) — DETR-style decode; alternative to yolov8n-package. Requires an rfdetr postprocessor (not yet available)",
668
+ name: "RF-DETR — Package",
669
+ description: "RF-DETR parcel detector DETR-style decode (onnx / coreml / openvino). Separates parcel from doormat far better than yolov8n-package (+0.86 vs +0.21 margin on 615) at ~4× the size and ~6× the latency",
671
670
  inputSize: {
672
671
  width: 576,
673
672
  height: 576
@@ -678,13 +677,21 @@ var PACKAGE_DETECTION_MODELS = [{
678
677
  }],
679
678
  preprocessMode: "resize",
680
679
  inputNormalization: "imagenet",
680
+ postprocessor: "rfdetr",
681
681
  license: "Apache-2.0",
682
682
  formats: {
683
683
  onnx: {
684
684
  url: hf("packageDetection/rfdetr-package/onnx/camstack-rfdetr-package.onnx"),
685
- sizeMB: 30
685
+ sizeMB: 115
686
+ },
687
+ coreml: {
688
+ url: hf("packageDetection/rfdetr-package/coreml/camstack-rfdetr-package.mlpackage"),
689
+ sizeMB: 58,
690
+ isDirectory: true,
691
+ files: [...MLPACKAGE_FILES],
692
+ runtimes: ["python"]
686
693
  },
687
- openvino: ovFormat(hf("packageDetection/rfdetr-package/openvino/camstack-rfdetr-package.xml"), 30)
694
+ openvino: ovFormat(hf("packageDetection/rfdetr-package/openvino/camstack-rfdetr-package.xml"), 58)
688
695
  }
689
696
  }];
690
697
  var PLATE_OCR_MODELS = [{
@@ -1455,6 +1462,44 @@ var AnimalClassifierStep = class {
1455
1462
  }];
1456
1463
  }
1457
1464
  };
1465
+ /**
1466
+ * `package-detection` — a ROOT detector, so its threshold is NOT the
1467
+ * classifier's `minConfidence` key.
1468
+ *
1469
+ * The executor filters every root detection through `macroFilterVerdict`, which
1470
+ * builds its key as `minConfidence${capitalize(macroClass)}`. This detector's
1471
+ * model emits `class: 'package'` and the step declares no `classMap`, so
1472
+ * `toMutableRootDetection` copies that through verbatim and the key the gate
1473
+ * reads is `minConfidencePackage`. A schema declaring `minConfidence` here
1474
+ * would render a slider that filters nothing.
1475
+ *
1476
+ * Why it exists: the 0.5 floor lived only in `definition.defaultConfidence`,
1477
+ * which is forwarded to the Python pool and reachable from no operator surface
1478
+ * (the catalog carries `configSchema` to the admin-ui; an empty schema renders
1479
+ * no form). Camera 615 reported a DOORMAT at 0.5669 on 2026-08-07, and the
1480
+ * model's own benchmark had already noted a doormat near-FP at 0.49 — the
1481
+ * shipped floor sat 0.01 above a known false positive with no way to move it.
1482
+ *
1483
+ * There is deliberately NO enable switch. Enablement is zone-driven
1484
+ * (`applyPackageZoneActivation` — drawing a `package`-stage zone rule IS the
1485
+ * enable), and a second enablement authority beside the zone rule is the exact
1486
+ * bug `packageDropEnabled` already was.
1487
+ */
1488
+ var PackageDetectionStep = class extends PipelineStepBase {
1489
+ getConfigSchema() {
1490
+ return [{
1491
+ type: "slider",
1492
+ key: "minConfidencePackage",
1493
+ label: "Min Confidence — Package",
1494
+ description: "Drop package predictions below this score. Raise it when static porch furniture (a doormat, a plant pot) is reported as a parcel — those sit just above the default.",
1495
+ min: 0,
1496
+ max: 1,
1497
+ step: .05,
1498
+ default: this.definition.defaultConfidence,
1499
+ showValue: true
1500
+ }];
1501
+ }
1502
+ };
1458
1503
  var ClassifierWithMinConfidence = class extends PipelineStepBase {
1459
1504
  getConfigSchema() {
1460
1505
  return [{
@@ -1628,7 +1673,7 @@ var STEP_PLATE_OCR = new PlateOcrStep({
1628
1673
  maxPerTrack: 5
1629
1674
  }
1630
1675
  });
1631
- var STEP_PACKAGE_DETECTION = new PipelineStepBase({
1676
+ var STEP_PACKAGE_DETECTION = new PackageDetectionStep({
1632
1677
  id: "package-detection",
1633
1678
  name: "Package Detection",
1634
1679
  slot: "detector",
@@ -1637,7 +1682,7 @@ var STEP_PACKAGE_DETECTION = new PipelineStepBase({
1637
1682
  inputClasses: null,
1638
1683
  outputClasses: ["package"],
1639
1684
  models: [...PACKAGE_DETECTION_MODELS],
1640
- defaultModelId: "yolov8n-package",
1685
+ defaultModelId: "rfdetr-package",
1641
1686
  enabledByDefault: false,
1642
1687
  defaultConfidence: .5,
1643
1688
  labels: ["package"]
@@ -2,7 +2,7 @@ Object.defineProperties(exports, {
2
2
  __esModule: { value: true },
3
3
  [Symbol.toStringTag]: { value: "Module" }
4
4
  });
5
- const require_dist = require("../dist-UHbKZiSa.js");
5
+ const require_dist = require("../dist-QyZ7QSRP.js");
6
6
  const require_lazy_sharp = require("../lazy-sharp-CcYuXtsa.js");
7
7
  let node_fs = require("node:fs");
8
8
  let node_path = require("node:path");
@@ -1,4 +1,4 @@
1
- import { A as evaluateZoneRules, F as motionDetectionCapability, Q as hydrateSchema, X as DeviceType, q as BaseAddon } from "../dist-B-VVBzrL.mjs";
1
+ import { B as motionDetectionCapability, I as evaluateZoneRules, at as BaseAddon, ct as DeviceType, ut as hydrateSchema } from "../dist-BDkEhx4Z.mjs";
2
2
  import { t as getSharp } from "../lazy-sharp-B-mb8uWx.mjs";
3
3
  import { readFileSync } from "node:fs";
4
4
  import { join } from "node:path";