@camstack/addon-matter-broker 0.2.87 → 0.2.88

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/addon.js CHANGED
@@ -20792,6 +20792,22 @@ var occupancyRecheckFramesField = {
20792
20792
  step: 1
20793
20793
  };
20794
20794
  /**
20795
+ * Frames one PRE-ROLL catch-up burst may send to inference at session open.
20796
+ *
20797
+ * The default of 12 over a ~4 s retained window is one frame per ~333 ms of
20798
+ * footage, and costs ~480 ms of ONE inference permit at the 40 ms/frame this
20799
+ * fleet measures — one-shot, and only ever taken while a permit would still be
20800
+ * spare for live. `0` turns the burst off entirely (the history is still
20801
+ * decoded, because that is how the dial reaches a decodable GOP, and is then
20802
+ * discarded — the pre-D411 behaviour).
20803
+ */
20804
+ var preRollInferenceFramesField = {
20805
+ min: 0,
20806
+ max: 30,
20807
+ default: 12,
20808
+ step: 1
20809
+ };
20810
+ /**
20795
20811
  * Source enum for motion signals fed to the runner. Extensible — add
20796
20812
  * new variants here when new motion-trigger paths are wired in
20797
20813
  * (`wasm-cross-camera`, `event-bus-relay`, etc.). The runner uses
@@ -21032,6 +21048,31 @@ var RunnerCameraConfigSchema = object({
21032
21048
  * to every occupancy rule until something moved in front of it. The churn is
21033
21049
  * now paid on the interval instead — see `occupancyRecheckSecField`.
21034
21050
  */
21051
+ /**
21052
+ * Infer the session's PRE-ROLL — the retained history the restreamer replays
21053
+ * at session open — instead of decoding it and throwing it away.
21054
+ *
21055
+ * DEFAULT `true`, and the default is the argument. This is not a new
21056
+ * capability being offered cautiously: the pre-roll is ALREADY requested,
21057
+ * already served, already decoded and already paid for on every on-motion
21058
+ * detection session that asks for history. What shipped was a last-moment
21059
+ * discard — `FrameSlot`'s throttle compares wall clocks, and ~4 s of media
21060
+ * arriving inside a few hundred ms of wall clock looks to it like one frame's
21061
+ * worth. Device 617, 2026-09-08: a re-run of the SAME model over the stored
21062
+ * recording scored the subject `vehicle 0.5669` — above the 0.50 floor —
21063
+ * 1.68 s BEFORE the live track was born, on a frame that was in the pre-roll,
21064
+ * was decoded, and was freed.
21065
+ *
21066
+ * Shipping that as opt-in would ship the bug: an operator cannot discover a
21067
+ * setting whose absence looks exactly like a camera that noticed the cyclist
21068
+ * late. What makes ON safe is not a switch but the BOUND —
21069
+ * `preRollInferenceFrames`, a wall-clock ceiling, and a lane that never takes
21070
+ * the last inference permit — so the switch exists for the camera where the
21071
+ * history is worthless (a doorbell whose subject is always already at the
21072
+ * door), not as a hedge against the feature.
21073
+ */
21074
+ preRollInferenceEnabled: boolean().default(true),
21075
+ preRollInferenceFrames: number().min(preRollInferenceFramesField.min).max(preRollInferenceFramesField.max).default(preRollInferenceFramesField.default),
21035
21076
  occupancyRecheckEnabled: boolean().default(true),
21036
21077
  occupancyRecheckSec: number().min(occupancyRecheckSecField.min).max(occupancyRecheckSecField.max).default(occupancyRecheckSecField.default),
21037
21078
  occupancyRecheckFrames: number().min(occupancyRecheckFramesField.min).max(occupancyRecheckFramesField.max).default(occupancyRecheckFramesField.default),
@@ -21060,7 +21101,7 @@ var RunnerCameraConfigSchema = object({
21060
21101
  */
21061
21102
  inferenceDevices: array(RunnerInferenceDeviceSchema).readonly().optional()
21062
21103
  });
21063
- motionFpsField.min, motionFpsField.max, motionFpsField.step, motionFpsField.default, detectionFpsField.min, detectionFpsField.max, detectionFpsField.step, detectionFpsField.default, motionCooldownMsField.min, motionCooldownMsField.max, motionCooldownMsField.step, motionCooldownMsField.default, maxSessionHoldMsField.min, maxSessionHoldMsField.max, maxSessionHoldMsField.step, maxSessionHoldMsField.default, audioMotionWindowMsField.min, audioMotionWindowMsField.max, audioMotionWindowMsField.step, audioMotionWindowMsField.default, occupancyRecheckSecField.min, occupancyRecheckSecField.max, occupancyRecheckSecField.step, occupancyRecheckSecField.default, occupancyRecheckFramesField.min, occupancyRecheckFramesField.max, occupancyRecheckFramesField.step, occupancyRecheckFramesField.default;
21104
+ motionFpsField.min, motionFpsField.max, motionFpsField.step, motionFpsField.default, detectionFpsField.min, detectionFpsField.max, detectionFpsField.step, detectionFpsField.default, motionCooldownMsField.min, motionCooldownMsField.max, motionCooldownMsField.step, motionCooldownMsField.default, maxSessionHoldMsField.min, maxSessionHoldMsField.max, maxSessionHoldMsField.step, maxSessionHoldMsField.default, audioMotionWindowMsField.min, audioMotionWindowMsField.max, audioMotionWindowMsField.step, audioMotionWindowMsField.default, preRollInferenceFramesField.min, preRollInferenceFramesField.max, preRollInferenceFramesField.step, preRollInferenceFramesField.default, occupancyRecheckSecField.min, occupancyRecheckSecField.max, occupancyRecheckSecField.step, occupancyRecheckSecField.default, occupancyRecheckFramesField.min, occupancyRecheckFramesField.max, occupancyRecheckFramesField.step, occupancyRecheckFramesField.default;
21064
21105
  /**
21065
21106
  * Runtime load summary returned by `getLocalLoad`. Used by the orchestrator's
21066
21107
  * load-balancing levels (L2 capacity-based, L3 hardware-aware) to decide
package/dist/addon.mjs CHANGED
@@ -20790,6 +20790,22 @@ var occupancyRecheckFramesField = {
20790
20790
  step: 1
20791
20791
  };
20792
20792
  /**
20793
+ * Frames one PRE-ROLL catch-up burst may send to inference at session open.
20794
+ *
20795
+ * The default of 12 over a ~4 s retained window is one frame per ~333 ms of
20796
+ * footage, and costs ~480 ms of ONE inference permit at the 40 ms/frame this
20797
+ * fleet measures — one-shot, and only ever taken while a permit would still be
20798
+ * spare for live. `0` turns the burst off entirely (the history is still
20799
+ * decoded, because that is how the dial reaches a decodable GOP, and is then
20800
+ * discarded — the pre-D411 behaviour).
20801
+ */
20802
+ var preRollInferenceFramesField = {
20803
+ min: 0,
20804
+ max: 30,
20805
+ default: 12,
20806
+ step: 1
20807
+ };
20808
+ /**
20793
20809
  * Source enum for motion signals fed to the runner. Extensible — add
20794
20810
  * new variants here when new motion-trigger paths are wired in
20795
20811
  * (`wasm-cross-camera`, `event-bus-relay`, etc.). The runner uses
@@ -21030,6 +21046,31 @@ var RunnerCameraConfigSchema = object({
21030
21046
  * to every occupancy rule until something moved in front of it. The churn is
21031
21047
  * now paid on the interval instead — see `occupancyRecheckSecField`.
21032
21048
  */
21049
+ /**
21050
+ * Infer the session's PRE-ROLL — the retained history the restreamer replays
21051
+ * at session open — instead of decoding it and throwing it away.
21052
+ *
21053
+ * DEFAULT `true`, and the default is the argument. This is not a new
21054
+ * capability being offered cautiously: the pre-roll is ALREADY requested,
21055
+ * already served, already decoded and already paid for on every on-motion
21056
+ * detection session that asks for history. What shipped was a last-moment
21057
+ * discard — `FrameSlot`'s throttle compares wall clocks, and ~4 s of media
21058
+ * arriving inside a few hundred ms of wall clock looks to it like one frame's
21059
+ * worth. Device 617, 2026-09-08: a re-run of the SAME model over the stored
21060
+ * recording scored the subject `vehicle 0.5669` — above the 0.50 floor —
21061
+ * 1.68 s BEFORE the live track was born, on a frame that was in the pre-roll,
21062
+ * was decoded, and was freed.
21063
+ *
21064
+ * Shipping that as opt-in would ship the bug: an operator cannot discover a
21065
+ * setting whose absence looks exactly like a camera that noticed the cyclist
21066
+ * late. What makes ON safe is not a switch but the BOUND —
21067
+ * `preRollInferenceFrames`, a wall-clock ceiling, and a lane that never takes
21068
+ * the last inference permit — so the switch exists for the camera where the
21069
+ * history is worthless (a doorbell whose subject is always already at the
21070
+ * door), not as a hedge against the feature.
21071
+ */
21072
+ preRollInferenceEnabled: boolean().default(true),
21073
+ preRollInferenceFrames: number().min(preRollInferenceFramesField.min).max(preRollInferenceFramesField.max).default(preRollInferenceFramesField.default),
21033
21074
  occupancyRecheckEnabled: boolean().default(true),
21034
21075
  occupancyRecheckSec: number().min(occupancyRecheckSecField.min).max(occupancyRecheckSecField.max).default(occupancyRecheckSecField.default),
21035
21076
  occupancyRecheckFrames: number().min(occupancyRecheckFramesField.min).max(occupancyRecheckFramesField.max).default(occupancyRecheckFramesField.default),
@@ -21058,7 +21099,7 @@ var RunnerCameraConfigSchema = object({
21058
21099
  */
21059
21100
  inferenceDevices: array(RunnerInferenceDeviceSchema).readonly().optional()
21060
21101
  });
21061
- motionFpsField.min, motionFpsField.max, motionFpsField.step, motionFpsField.default, detectionFpsField.min, detectionFpsField.max, detectionFpsField.step, detectionFpsField.default, motionCooldownMsField.min, motionCooldownMsField.max, motionCooldownMsField.step, motionCooldownMsField.default, maxSessionHoldMsField.min, maxSessionHoldMsField.max, maxSessionHoldMsField.step, maxSessionHoldMsField.default, audioMotionWindowMsField.min, audioMotionWindowMsField.max, audioMotionWindowMsField.step, audioMotionWindowMsField.default, occupancyRecheckSecField.min, occupancyRecheckSecField.max, occupancyRecheckSecField.step, occupancyRecheckSecField.default, occupancyRecheckFramesField.min, occupancyRecheckFramesField.max, occupancyRecheckFramesField.step, occupancyRecheckFramesField.default;
21102
+ motionFpsField.min, motionFpsField.max, motionFpsField.step, motionFpsField.default, detectionFpsField.min, detectionFpsField.max, detectionFpsField.step, detectionFpsField.default, motionCooldownMsField.min, motionCooldownMsField.max, motionCooldownMsField.step, motionCooldownMsField.default, maxSessionHoldMsField.min, maxSessionHoldMsField.max, maxSessionHoldMsField.step, maxSessionHoldMsField.default, audioMotionWindowMsField.min, audioMotionWindowMsField.max, audioMotionWindowMsField.step, audioMotionWindowMsField.default, preRollInferenceFramesField.min, preRollInferenceFramesField.max, preRollInferenceFramesField.step, preRollInferenceFramesField.default, occupancyRecheckSecField.min, occupancyRecheckSecField.max, occupancyRecheckSecField.step, occupancyRecheckSecField.default, occupancyRecheckFramesField.min, occupancyRecheckFramesField.max, occupancyRecheckFramesField.step, occupancyRecheckFramesField.default;
21062
21103
  /**
21063
21104
  * Runtime load summary returned by `getLocalLoad`. Used by the orchestrator's
21064
21105
  * load-balancing levels (L2 capacity-based, L3 hardware-aware) to decide
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@camstack/addon-matter-broker",
3
- "version": "0.2.87",
3
+ "version": "0.2.88",
4
4
  "description": "Matter broker addon for CamStack — owns a Matter fabric (commissioning + the long-lived controller) via the matter.js controller and brokers commissioned Matter nodes into CamStack",
5
5
  "keywords": [
6
6
  "camstack",