@camstack/addon-model-studio 1.1.115 → 1.1.116

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/_stub.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import "./virtualExposes-CWSi4E_g.mjs";
2
- import "./virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_model_studio_page__remoteEntry_js-YRzNpAHa.mjs";
2
+ import "./virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_model_studio_page__remoteEntry_js-vfKMEWga.mjs";
3
3
  import { _ as e, c as t, d as n, h as r, i, l as a, m as o, p as s, r as c, t as l, u, y as d } from "./_virtual_mf___mfe_internal__addon_model_studio_page__loadShare__react__loadShare__.js-DJDHChgO.mjs";
4
4
  import { a as f, i as p, o as m, r as h, s as g } from "./responsive-CbWjxAoZ.mjs";
5
5
  import { d as _, l as v, u as y } from "./use-device-snapshot-TQqx6JFy.mjs";
@@ -1,9 +1,9 @@
1
- import "./virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_model_studio_page__remoteEntry_js-YRzNpAHa.mjs";
1
+ import "./virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_model_studio_page__remoteEntry_js-vfKMEWga.mjs";
2
2
  //#region \0virtual:mf-localSharedImportMap:__mfe_internal__addon_model_studio_page
3
3
  var e = {
4
4
  "@camstack/sdk": {
5
5
  name: "@camstack/sdk",
6
- version: "1.2.91",
6
+ version: "1.2.92",
7
7
  scope: ["default"],
8
8
  loaded: !1,
9
9
  from: "addon_model_studio_page",
@@ -18,7 +18,7 @@ var e = {
18
18
  },
19
19
  "@camstack/types": {
20
20
  name: "@camstack/types",
21
- version: "1.2.171",
21
+ version: "1.2.172",
22
22
  scope: ["default"],
23
23
  loaded: !1,
24
24
  from: "addon_model_studio_page",
@@ -33,7 +33,7 @@ var e = {
33
33
  },
34
34
  "@camstack/ui-library": {
35
35
  name: "@camstack/ui-library",
36
- version: "1.2.139",
36
+ version: "1.2.140",
37
37
  scope: ["default"],
38
38
  loaded: !1,
39
39
  from: "addon_model_studio_page",
@@ -36,7 +36,7 @@ async function r() {
36
36
  }
37
37
  },
38
38
  "@camstack/types": {
39
- version: "1.2.171",
39
+ version: "1.2.172",
40
40
  scope: "default",
41
41
  shareConfig: {
42
42
  singleton: !0,
@@ -45,7 +45,7 @@ async function r() {
45
45
  }
46
46
  },
47
47
  "@camstack/sdk": {
48
- version: "1.2.91",
48
+ version: "1.2.92",
49
49
  scope: "default",
50
50
  shareConfig: {
51
51
  singleton: !0,
@@ -81,7 +81,7 @@ async function r() {
81
81
  }
82
82
  },
83
83
  "@camstack/ui-library": {
84
- version: "1.2.139",
84
+ version: "1.2.140",
85
85
  scope: "default",
86
86
  shareConfig: {
87
87
  singleton: !0,
@@ -20973,6 +20973,22 @@ var occupancyRecheckFramesField = {
20973
20973
  step: 1
20974
20974
  };
20975
20975
  /**
20976
+ * Frames one PRE-ROLL catch-up burst may send to inference at session open.
20977
+ *
20978
+ * The default of 12 over a ~4 s retained window is one frame per ~333 ms of
20979
+ * footage, and costs ~480 ms of ONE inference permit at the 40 ms/frame this
20980
+ * fleet measures — one-shot, and only ever taken while a permit would still be
20981
+ * spare for live. `0` turns the burst off entirely (the history is still
20982
+ * decoded, because that is how the dial reaches a decodable GOP, and is then
20983
+ * discarded — the pre-D411 behaviour).
20984
+ */
20985
+ var preRollInferenceFramesField = {
20986
+ min: 0,
20987
+ max: 30,
20988
+ default: 12,
20989
+ step: 1
20990
+ };
20991
+ /**
20976
20992
  * Source enum for motion signals fed to the runner. Extensible — add
20977
20993
  * new variants here when new motion-trigger paths are wired in
20978
20994
  * (`wasm-cross-camera`, `event-bus-relay`, etc.). The runner uses
@@ -21213,6 +21229,31 @@ var RunnerCameraConfigSchema = object({
21213
21229
  * to every occupancy rule until something moved in front of it. The churn is
21214
21230
  * now paid on the interval instead — see `occupancyRecheckSecField`.
21215
21231
  */
21232
+ /**
21233
+ * Infer the session's PRE-ROLL — the retained history the restreamer replays
21234
+ * at session open — instead of decoding it and throwing it away.
21235
+ *
21236
+ * DEFAULT `true`, and the default is the argument. This is not a new
21237
+ * capability being offered cautiously: the pre-roll is ALREADY requested,
21238
+ * already served, already decoded and already paid for on every on-motion
21239
+ * detection session that asks for history. What shipped was a last-moment
21240
+ * discard — `FrameSlot`'s throttle compares wall clocks, and ~4 s of media
21241
+ * arriving inside a few hundred ms of wall clock looks to it like one frame's
21242
+ * worth. Device 617, 2026-09-08: a re-run of the SAME model over the stored
21243
+ * recording scored the subject `vehicle 0.5669` — above the 0.50 floor —
21244
+ * 1.68 s BEFORE the live track was born, on a frame that was in the pre-roll,
21245
+ * was decoded, and was freed.
21246
+ *
21247
+ * Shipping that as opt-in would ship the bug: an operator cannot discover a
21248
+ * setting whose absence looks exactly like a camera that noticed the cyclist
21249
+ * late. What makes ON safe is not a switch but the BOUND —
21250
+ * `preRollInferenceFrames`, a wall-clock ceiling, and a lane that never takes
21251
+ * the last inference permit — so the switch exists for the camera where the
21252
+ * history is worthless (a doorbell whose subject is always already at the
21253
+ * door), not as a hedge against the feature.
21254
+ */
21255
+ preRollInferenceEnabled: boolean().default(true),
21256
+ preRollInferenceFrames: number().min(preRollInferenceFramesField.min).max(preRollInferenceFramesField.max).default(preRollInferenceFramesField.default),
21216
21257
  occupancyRecheckEnabled: boolean().default(true),
21217
21258
  occupancyRecheckSec: number().min(occupancyRecheckSecField.min).max(occupancyRecheckSecField.max).default(occupancyRecheckSecField.default),
21218
21259
  occupancyRecheckFrames: number().min(occupancyRecheckFramesField.min).max(occupancyRecheckFramesField.max).default(occupancyRecheckFramesField.default),
@@ -21241,7 +21282,7 @@ var RunnerCameraConfigSchema = object({
21241
21282
  */
21242
21283
  inferenceDevices: array(RunnerInferenceDeviceSchema).readonly().optional()
21243
21284
  });
21244
- 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;
21285
+ 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;
21245
21286
  /**
21246
21287
  * Runtime load summary returned by `getLocalLoad`. Used by the orchestrator's
21247
21288
  * load-balancing levels (L2 capacity-based, L3 hardware-aware) to decide
@@ -20952,6 +20952,22 @@ var occupancyRecheckFramesField = {
20952
20952
  step: 1
20953
20953
  };
20954
20954
  /**
20955
+ * Frames one PRE-ROLL catch-up burst may send to inference at session open.
20956
+ *
20957
+ * The default of 12 over a ~4 s retained window is one frame per ~333 ms of
20958
+ * footage, and costs ~480 ms of ONE inference permit at the 40 ms/frame this
20959
+ * fleet measures — one-shot, and only ever taken while a permit would still be
20960
+ * spare for live. `0` turns the burst off entirely (the history is still
20961
+ * decoded, because that is how the dial reaches a decodable GOP, and is then
20962
+ * discarded — the pre-D411 behaviour).
20963
+ */
20964
+ var preRollInferenceFramesField = {
20965
+ min: 0,
20966
+ max: 30,
20967
+ default: 12,
20968
+ step: 1
20969
+ };
20970
+ /**
20955
20971
  * Source enum for motion signals fed to the runner. Extensible — add
20956
20972
  * new variants here when new motion-trigger paths are wired in
20957
20973
  * (`wasm-cross-camera`, `event-bus-relay`, etc.). The runner uses
@@ -21192,6 +21208,31 @@ var RunnerCameraConfigSchema = object({
21192
21208
  * to every occupancy rule until something moved in front of it. The churn is
21193
21209
  * now paid on the interval instead — see `occupancyRecheckSecField`.
21194
21210
  */
21211
+ /**
21212
+ * Infer the session's PRE-ROLL — the retained history the restreamer replays
21213
+ * at session open — instead of decoding it and throwing it away.
21214
+ *
21215
+ * DEFAULT `true`, and the default is the argument. This is not a new
21216
+ * capability being offered cautiously: the pre-roll is ALREADY requested,
21217
+ * already served, already decoded and already paid for on every on-motion
21218
+ * detection session that asks for history. What shipped was a last-moment
21219
+ * discard — `FrameSlot`'s throttle compares wall clocks, and ~4 s of media
21220
+ * arriving inside a few hundred ms of wall clock looks to it like one frame's
21221
+ * worth. Device 617, 2026-09-08: a re-run of the SAME model over the stored
21222
+ * recording scored the subject `vehicle 0.5669` — above the 0.50 floor —
21223
+ * 1.68 s BEFORE the live track was born, on a frame that was in the pre-roll,
21224
+ * was decoded, and was freed.
21225
+ *
21226
+ * Shipping that as opt-in would ship the bug: an operator cannot discover a
21227
+ * setting whose absence looks exactly like a camera that noticed the cyclist
21228
+ * late. What makes ON safe is not a switch but the BOUND —
21229
+ * `preRollInferenceFrames`, a wall-clock ceiling, and a lane that never takes
21230
+ * the last inference permit — so the switch exists for the camera where the
21231
+ * history is worthless (a doorbell whose subject is always already at the
21232
+ * door), not as a hedge against the feature.
21233
+ */
21234
+ preRollInferenceEnabled: boolean().default(true),
21235
+ preRollInferenceFrames: number().min(preRollInferenceFramesField.min).max(preRollInferenceFramesField.max).default(preRollInferenceFramesField.default),
21195
21236
  occupancyRecheckEnabled: boolean().default(true),
21196
21237
  occupancyRecheckSec: number().min(occupancyRecheckSecField.min).max(occupancyRecheckSecField.max).default(occupancyRecheckSecField.default),
21197
21238
  occupancyRecheckFrames: number().min(occupancyRecheckFramesField.min).max(occupancyRecheckFramesField.max).default(occupancyRecheckFramesField.default),
@@ -21220,7 +21261,7 @@ var RunnerCameraConfigSchema = object({
21220
21261
  */
21221
21262
  inferenceDevices: array(RunnerInferenceDeviceSchema).readonly().optional()
21222
21263
  });
21223
- 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;
21264
+ 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;
21224
21265
  /**
21225
21266
  * Runtime load summary returned by `getLocalLoad`. Used by the orchestrator's
21226
21267
  * load-balancing levels (L2 capacity-based, L3 hardware-aware) to decide
@@ -1,2 +1,2 @@
1
- import { n as e, t } from "./virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_model_studio_page__remoteEntry_js-YRzNpAHa.mjs";
1
+ import { n as e, t } from "./virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_model_studio_page__remoteEntry_js-vfKMEWga.mjs";
2
2
  export { t as get, e as init };
@@ -2753,7 +2753,7 @@ async function rr(e) {
2753
2753
  }
2754
2754
  }
2755
2755
  async function ir() {
2756
- return tr ||= rr(() => import("./_virtual_mf-localSharedImportMap___mfe_internal__addon_model_studio_page-DEaWpIxi.mjs")).catch((e) => {
2756
+ return tr ||= rr(() => import("./_virtual_mf-localSharedImportMap___mfe_internal__addon_model_studio_page-yVuxM2oy.mjs")).catch((e) => {
2757
2757
  throw tr = void 0, e;
2758
2758
  }), tr;
2759
2759
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@camstack/addon-model-studio",
3
- "version": "1.1.115",
3
+ "version": "1.1.116",
4
4
  "description": "Custom detection model registry, conversion & distribution for CamStack",
5
5
  "keywords": [
6
6
  "camstack",