@camstack/addon-pipeline 1.2.334 → 1.2.335

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 (33) hide show
  1. package/dist/audio-analyzer/index.js +2 -2
  2. package/dist/audio-analyzer/index.mjs +2 -2
  3. package/dist/{custom-model-catalog-DoOVE7kz.mjs → custom-model-catalog-Buehc666.mjs} +297 -17
  4. package/dist/{custom-model-catalog-CVeosmYm.js → custom-model-catalog-CL-xJa8w.js} +297 -17
  5. package/dist/detection-pipeline/index.js +121 -21
  6. package/dist/detection-pipeline/index.mjs +121 -21
  7. package/dist/{dist-C7v30DMP.js → dist-C5DlS_lW.js} +145 -0
  8. package/dist/{dist-Dn3knu_K.mjs → dist-CPhDwlSN.mjs} +134 -1
  9. package/dist/motion-wasm/index.js +1 -1
  10. package/dist/motion-wasm/index.mjs +1 -1
  11. package/dist/{node-DWdekhW3.js → node-BUafKArW.js} +1 -1
  12. package/dist/{node-_BruMF4L.mjs → node-DYfEOwjW.mjs} +1 -1
  13. package/dist/pipeline-runner/index.js +23 -5
  14. package/dist/pipeline-runner/index.mjs +23 -5
  15. package/dist/{process-memory-CaDpfUdM.js → process-memory-DWOQCbg5.js} +1 -1
  16. package/dist/{process-memory-Dp-4bFOp.mjs → process-memory-WPRYnN8c.mjs} +1 -1
  17. package/dist/recorder/index.js +2 -2
  18. package/dist/recorder/index.mjs +2 -2
  19. package/dist/{segment-demux-js-BqPTLFZG.js → segment-demux-js-DWIgUPW1.js} +1 -1
  20. package/dist/{segment-demux-js-B_-zBECg.mjs → segment-demux-js-Kz4EnmOr.mjs} +1 -1
  21. package/dist/stream-broker/_stub.js +1 -1
  22. package/dist/stream-broker/{_virtual_mf-localSharedImportMap___mfe_internal__addon_stream_broker_widgets-BP8FFU2i.mjs → _virtual_mf-localSharedImportMap___mfe_internal__addon_stream_broker_widgets-RPk9F8CY.mjs} +2 -2
  23. package/dist/stream-broker/_virtual_mf___mfe_internal__addon_stream_broker_widgets__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-1Y-WK-Zy.mjs +26 -0
  24. package/dist/stream-broker/demux-worker-child.js +1 -1
  25. package/dist/stream-broker/demux-worker-child.mjs +1 -1
  26. package/dist/stream-broker/{hostInit-BEh-hm1x.mjs → hostInit-DXXdQdLd.mjs} +2 -2
  27. package/dist/stream-broker/index.js +3 -3
  28. package/dist/stream-broker/index.mjs +3 -3
  29. package/dist/stream-broker/remoteEntry.js +1 -1
  30. package/package.json +1 -1
  31. package/python/inference_pool.py +52 -2
  32. package/python/test_inference_pool_ov_precision.py +98 -0
  33. package/dist/stream-broker/_virtual_mf___mfe_internal__addon_stream_broker_widgets__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-CpjKK9II.mjs +0 -26
@@ -13150,6 +13150,35 @@ var ModelCatalogEntrySchema = object({
13150
13150
  */
13151
13151
  defaultConfidence: number().min(0).max(1).optional(),
13152
13152
  /**
13153
+ * Per-MODEL default of the per-class confidence floors (`minConfidence<Macro>`
13154
+ * on a detector step), keyed by macro class: `{ person: 0.45 }`. A class
13155
+ * absent here runs at the step slider's global default. The same row shape
13156
+ * the floor measurement produces (`model-floors.json`: modelId → floors), so
13157
+ * a measured table is copied in as-is. An operator override is bound to the
13158
+ * model it was made for and does not survive a model change (D738). A custom
13159
+ * / imported model may declare it; without it, the global defaults apply.
13160
+ */
13161
+ defaultClassFloors: record(string(), number().min(0).max(1)).optional(),
13162
+ /**
13163
+ * The inference precision this model's OpenVINO IR needs on an Intel GPU.
13164
+ * Absent ⇒ the device default (f16 on a GPU). Set to `'f32'` for an FP32 IR
13165
+ * that produces invalid output at f16 — measured 2026-10-07 for YOLO26
13166
+ * base IRs (`yolo26s`: 0 true / 146 false positives; `yolo26m*`: NaN
13167
+ * scores) on the Core Ultra iGPU and the N100. Threaded to the pool as
13168
+ * `PoolModelConfig.gpuInferencePrecision`; the pool sets
13169
+ * INFERENCE_PRECISION_HINT on a GPU only. Costs ~60% latency on the GPU.
13170
+ */
13171
+ gpuInferencePrecision: _enum(["f32", "f16"]).optional(),
13172
+ /**
13173
+ * ROOT detectors only: per supplied step (`animal-classifier`, …), the
13174
+ * minimum DETECTION score from which this root's own fine label (species,
13175
+ * vehicle type — D736 root supply) is taken (D741). Below it the detection
13176
+ * keeps its macro class without the fine label. `1` = never take it from
13177
+ * this root. Absent ⇒ no floor beyond the macro floor. The supplied step's
13178
+ * `minConfidence` slider, bound to the ROOT model, overrides it.
13179
+ */
13180
+ suppliedLabelFloors: record(string(), number().min(0).max(1)).optional(),
13181
+ /**
13153
13182
  * When true, the executor produces a landmark-aligned crop (similarity warp
13154
13183
  * onto the canonical template) before this step runs, instead of a plain
13155
13184
  * axis-aligned bbox crop. Required for face-recognition embedders (ArcFace):
@@ -41117,6 +41146,16 @@ DeviceType.Camera, method(object({
41117
41146
  package: array(ZoneRuleSchema).readonly()
41118
41147
  });
41119
41148
  SOURCE_CAPS.filter((cap) => cap !== "switch" && cap !== "motion");
41149
+ Object.freeze({
41150
+ person: .5,
41151
+ vehicle: .5,
41152
+ animal: .5
41153
+ });
41154
+ Object.freeze({
41155
+ person: .65,
41156
+ vehicle: .65,
41157
+ animal: .65
41158
+ });
41120
41159
  var HF_BASE_URL = `https://huggingface.co/camstack/camstack-models/resolve/main`;
41121
41160
  /**
41122
41161
  * Accessory device helpers — shared across drivers.
@@ -53372,6 +53411,100 @@ function stepModelRunsOnFormat(models, modelId, format) {
53372
53411
  }
53373
53412
  return models.some((m) => m.legacy !== true && hasBuild(m, format));
53374
53413
  }
53414
+ /**
53415
+ * Model-bound step settings (D738): an operator value that is only meaningful
53416
+ * for ONE model, stored together with that model's id.
53417
+ *
53418
+ * The per-class confidence floors are the case it exists for. A score is a
53419
+ * property of one detector's output scale — on this hub the median score of a
53420
+ * correct person was 0.78 on `yolov9m-320-int8`, 0.68 on `yolo26s-320-int8`,
53421
+ * 0.40 on `yolo26n-320-int8` and 0.89 on `yolo26s` (640) — so a floor tuned on
53422
+ * one model is wrong on the next. The DEFAULT of such a field belongs to the
53423
+ * model (the catalog entry); an operator OVERRIDE belongs to the model it was
53424
+ * made for.
53425
+ *
53426
+ * The binding is checked at READ time against the model that RUNS, never
53427
+ * enforced by a write on the model-change path: a model can change without any
53428
+ * operator write at all (an unpinned root follows the elected device's
53429
+ * hardware-aware default, D736), and an event-driven reset could be dropped
53430
+ * (events are telemetry, D8/D11). So:
53431
+ *
53432
+ * effective = override when the stored binding names the running model
53433
+ * | override when no binding is stored (a legacy / programmatic
53434
+ * value — it applies to whatever runs, as before D738)
53435
+ * | the running model's default, when it declares one
53436
+ * | the field's global default.
53437
+ *
53438
+ * Storage shape: the value stays a plain number under its own key (every
53439
+ * reader of the raw settings bag keeps working), and the binding is a SIBLING
53440
+ * key, {@link modelBindingKey}. Both are flat so the shallow per-key merges of
53441
+ * the settings layers (node fold, camera override) carry a value and its
53442
+ * binding together whenever one layer writes both — which every writer here
53443
+ * does.
53444
+ *
53445
+ * Lives in the bare `@camstack/types` entry, which every addon bundles, so the
53446
+ * runner (`addon-pipeline`) and the editors (`ui-library`, `addon-admin-ui`)
53447
+ * apply the same rule.
53448
+ */
53449
+ /** Suffix of the sibling key that names the model a stored value was made for. */
53450
+ var MODEL_BINDING_SUFFIX = "ModelId";
53451
+ /** `minConfidencePerson` → `minConfidencePersonModelId`. */
53452
+ function modelBindingKey(key) {
53453
+ return `${key}${MODEL_BINDING_SUFFIX}`;
53454
+ }
53455
+ /** The model a stored value was made for, or `undefined` when unbound. */
53456
+ function storedBinding(settings, key) {
53457
+ const binding = settings?.[modelBindingKey(key)];
53458
+ return typeof binding === "string" && binding.length > 0 ? binding : void 0;
53459
+ }
53460
+ /**
53461
+ * The effective value of `key` for the model that runs (`runningModelId`,
53462
+ * `undefined` when unknown — it then matches no binding).
53463
+ */
53464
+ function resolveModelBoundSetting(settings, key, runningModelId, modelDefault, globalDefault) {
53465
+ const stored = settings?.[key];
53466
+ const binding = storedBinding(settings, key);
53467
+ if (stored !== void 0 && binding === void 0) return {
53468
+ value: stored,
53469
+ source: "override"
53470
+ };
53471
+ if (stored !== void 0 && binding !== void 0 && binding === runningModelId) return {
53472
+ value: stored,
53473
+ source: "override",
53474
+ boundModelId: binding
53475
+ };
53476
+ const inapplicable = stored !== void 0 && binding !== void 0 ? { inapplicableOverride: {
53477
+ value: stored,
53478
+ modelId: binding
53479
+ } } : {};
53480
+ if (modelDefault !== void 0) return {
53481
+ value: modelDefault,
53482
+ source: "model-default",
53483
+ ...inapplicable
53484
+ };
53485
+ return {
53486
+ value: globalDefault,
53487
+ source: "global-default",
53488
+ ...inapplicable
53489
+ };
53490
+ }
53491
+ /**
53492
+ * The OPERATOR layer of a step's settings as the running model sees it: every
53493
+ * model-bound value made for another model is removed (so the default
53494
+ * underneath — the running model's — wins the merge), and every binding key is
53495
+ * stripped. Unbound values are kept. Returns a fresh object; `undefined` stays
53496
+ * `undefined`.
53497
+ */
53498
+ function applyModelBoundSettings(settings, boundKeys, runningModelId) {
53499
+ if (settings === void 0) return void 0;
53500
+ const out = { ...settings };
53501
+ for (const key of boundKeys) {
53502
+ const binding = storedBinding(settings, key);
53503
+ if (binding !== void 0 && binding !== runningModelId) delete out[key];
53504
+ delete out[modelBindingKey(key)];
53505
+ }
53506
+ return out;
53507
+ }
53375
53508
  /** Side of the square, as a multiple of the face box's longer side. */
53376
53509
  var ROOT_FACE_REFINE_SCALE = 1.6;
53377
53510
  /**
@@ -54938,6 +55071,12 @@ Object.defineProperty(exports, "allowedSuppliedEffect", {
54938
55071
  return allowedSuppliedEffect;
54939
55072
  }
54940
55073
  });
55074
+ Object.defineProperty(exports, "applyModelBoundSettings", {
55075
+ enumerable: true,
55076
+ get: function() {
55077
+ return applyModelBoundSettings;
55078
+ }
55079
+ });
54941
55080
  Object.defineProperty(exports, "array", {
54942
55081
  enumerable: true,
54943
55082
  get: function() {
@@ -55460,6 +55599,12 @@ Object.defineProperty(exports, "resolveLocationMode", {
55460
55599
  return resolveLocationMode;
55461
55600
  }
55462
55601
  });
55602
+ Object.defineProperty(exports, "resolveModelBoundSetting", {
55603
+ enumerable: true,
55604
+ get: function() {
55605
+ return resolveModelBoundSetting;
55606
+ }
55607
+ });
55463
55608
  Object.defineProperty(exports, "resolvePoolMemoryPolicy", {
55464
55609
  enumerable: true,
55465
55610
  get: function() {
@@ -13150,6 +13150,35 @@ var ModelCatalogEntrySchema = object({
13150
13150
  */
13151
13151
  defaultConfidence: number().min(0).max(1).optional(),
13152
13152
  /**
13153
+ * Per-MODEL default of the per-class confidence floors (`minConfidence<Macro>`
13154
+ * on a detector step), keyed by macro class: `{ person: 0.45 }`. A class
13155
+ * absent here runs at the step slider's global default. The same row shape
13156
+ * the floor measurement produces (`model-floors.json`: modelId → floors), so
13157
+ * a measured table is copied in as-is. An operator override is bound to the
13158
+ * model it was made for and does not survive a model change (D738). A custom
13159
+ * / imported model may declare it; without it, the global defaults apply.
13160
+ */
13161
+ defaultClassFloors: record(string(), number().min(0).max(1)).optional(),
13162
+ /**
13163
+ * The inference precision this model's OpenVINO IR needs on an Intel GPU.
13164
+ * Absent ⇒ the device default (f16 on a GPU). Set to `'f32'` for an FP32 IR
13165
+ * that produces invalid output at f16 — measured 2026-10-07 for YOLO26
13166
+ * base IRs (`yolo26s`: 0 true / 146 false positives; `yolo26m*`: NaN
13167
+ * scores) on the Core Ultra iGPU and the N100. Threaded to the pool as
13168
+ * `PoolModelConfig.gpuInferencePrecision`; the pool sets
13169
+ * INFERENCE_PRECISION_HINT on a GPU only. Costs ~60% latency on the GPU.
13170
+ */
13171
+ gpuInferencePrecision: _enum(["f32", "f16"]).optional(),
13172
+ /**
13173
+ * ROOT detectors only: per supplied step (`animal-classifier`, …), the
13174
+ * minimum DETECTION score from which this root's own fine label (species,
13175
+ * vehicle type — D736 root supply) is taken (D741). Below it the detection
13176
+ * keeps its macro class without the fine label. `1` = never take it from
13177
+ * this root. Absent ⇒ no floor beyond the macro floor. The supplied step's
13178
+ * `minConfidence` slider, bound to the ROOT model, overrides it.
13179
+ */
13180
+ suppliedLabelFloors: record(string(), number().min(0).max(1)).optional(),
13181
+ /**
13153
13182
  * When true, the executor produces a landmark-aligned crop (similarity warp
13154
13183
  * onto the canonical template) before this step runs, instead of a plain
13155
13184
  * axis-aligned bbox crop. Required for face-recognition embedders (ArcFace):
@@ -41117,6 +41146,16 @@ DeviceType.Camera, method(object({
41117
41146
  package: array(ZoneRuleSchema).readonly()
41118
41147
  });
41119
41148
  SOURCE_CAPS.filter((cap) => cap !== "switch" && cap !== "motion");
41149
+ Object.freeze({
41150
+ person: .5,
41151
+ vehicle: .5,
41152
+ animal: .5
41153
+ });
41154
+ Object.freeze({
41155
+ person: .65,
41156
+ vehicle: .65,
41157
+ animal: .65
41158
+ });
41120
41159
  var HF_BASE_URL = `https://huggingface.co/camstack/camstack-models/resolve/main`;
41121
41160
  /**
41122
41161
  * Accessory device helpers — shared across drivers.
@@ -53372,6 +53411,100 @@ function stepModelRunsOnFormat(models, modelId, format) {
53372
53411
  }
53373
53412
  return models.some((m) => m.legacy !== true && hasBuild(m, format));
53374
53413
  }
53414
+ /**
53415
+ * Model-bound step settings (D738): an operator value that is only meaningful
53416
+ * for ONE model, stored together with that model's id.
53417
+ *
53418
+ * The per-class confidence floors are the case it exists for. A score is a
53419
+ * property of one detector's output scale — on this hub the median score of a
53420
+ * correct person was 0.78 on `yolov9m-320-int8`, 0.68 on `yolo26s-320-int8`,
53421
+ * 0.40 on `yolo26n-320-int8` and 0.89 on `yolo26s` (640) — so a floor tuned on
53422
+ * one model is wrong on the next. The DEFAULT of such a field belongs to the
53423
+ * model (the catalog entry); an operator OVERRIDE belongs to the model it was
53424
+ * made for.
53425
+ *
53426
+ * The binding is checked at READ time against the model that RUNS, never
53427
+ * enforced by a write on the model-change path: a model can change without any
53428
+ * operator write at all (an unpinned root follows the elected device's
53429
+ * hardware-aware default, D736), and an event-driven reset could be dropped
53430
+ * (events are telemetry, D8/D11). So:
53431
+ *
53432
+ * effective = override when the stored binding names the running model
53433
+ * | override when no binding is stored (a legacy / programmatic
53434
+ * value — it applies to whatever runs, as before D738)
53435
+ * | the running model's default, when it declares one
53436
+ * | the field's global default.
53437
+ *
53438
+ * Storage shape: the value stays a plain number under its own key (every
53439
+ * reader of the raw settings bag keeps working), and the binding is a SIBLING
53440
+ * key, {@link modelBindingKey}. Both are flat so the shallow per-key merges of
53441
+ * the settings layers (node fold, camera override) carry a value and its
53442
+ * binding together whenever one layer writes both — which every writer here
53443
+ * does.
53444
+ *
53445
+ * Lives in the bare `@camstack/types` entry, which every addon bundles, so the
53446
+ * runner (`addon-pipeline`) and the editors (`ui-library`, `addon-admin-ui`)
53447
+ * apply the same rule.
53448
+ */
53449
+ /** Suffix of the sibling key that names the model a stored value was made for. */
53450
+ var MODEL_BINDING_SUFFIX = "ModelId";
53451
+ /** `minConfidencePerson` → `minConfidencePersonModelId`. */
53452
+ function modelBindingKey(key) {
53453
+ return `${key}${MODEL_BINDING_SUFFIX}`;
53454
+ }
53455
+ /** The model a stored value was made for, or `undefined` when unbound. */
53456
+ function storedBinding(settings, key) {
53457
+ const binding = settings?.[modelBindingKey(key)];
53458
+ return typeof binding === "string" && binding.length > 0 ? binding : void 0;
53459
+ }
53460
+ /**
53461
+ * The effective value of `key` for the model that runs (`runningModelId`,
53462
+ * `undefined` when unknown — it then matches no binding).
53463
+ */
53464
+ function resolveModelBoundSetting(settings, key, runningModelId, modelDefault, globalDefault) {
53465
+ const stored = settings?.[key];
53466
+ const binding = storedBinding(settings, key);
53467
+ if (stored !== void 0 && binding === void 0) return {
53468
+ value: stored,
53469
+ source: "override"
53470
+ };
53471
+ if (stored !== void 0 && binding !== void 0 && binding === runningModelId) return {
53472
+ value: stored,
53473
+ source: "override",
53474
+ boundModelId: binding
53475
+ };
53476
+ const inapplicable = stored !== void 0 && binding !== void 0 ? { inapplicableOverride: {
53477
+ value: stored,
53478
+ modelId: binding
53479
+ } } : {};
53480
+ if (modelDefault !== void 0) return {
53481
+ value: modelDefault,
53482
+ source: "model-default",
53483
+ ...inapplicable
53484
+ };
53485
+ return {
53486
+ value: globalDefault,
53487
+ source: "global-default",
53488
+ ...inapplicable
53489
+ };
53490
+ }
53491
+ /**
53492
+ * The OPERATOR layer of a step's settings as the running model sees it: every
53493
+ * model-bound value made for another model is removed (so the default
53494
+ * underneath — the running model's — wins the merge), and every binding key is
53495
+ * stripped. Unbound values are kept. Returns a fresh object; `undefined` stays
53496
+ * `undefined`.
53497
+ */
53498
+ function applyModelBoundSettings(settings, boundKeys, runningModelId) {
53499
+ if (settings === void 0) return void 0;
53500
+ const out = { ...settings };
53501
+ for (const key of boundKeys) {
53502
+ const binding = storedBinding(settings, key);
53503
+ if (binding !== void 0 && binding !== runningModelId) delete out[key];
53504
+ delete out[modelBindingKey(key)];
53505
+ }
53506
+ return out;
53507
+ }
53375
53508
  /** Side of the square, as a multiple of the face box's longer side. */
53376
53509
  var ROOT_FACE_REFINE_SCALE = 1.6;
53377
53510
  /**
@@ -54590,4 +54723,4 @@ function enumerateInferenceDevices(hw) {
54590
54723
  return out;
54591
54724
  }
54592
54725
  //#endregion
54593
- export { cameraStreamsCapability as $, union as $n, resolveEgressDecodeHwAccel as $t, NativeLeaseAdmissionSchema as A, customAction as An, logChannelsCapability as At, RecordingConfigSchema as B, selectAssignedProfileSlots as Bn, parseProcStatus as Bt, EncodeProfileSchema as C, errMsg as Cn, gifFromMp4Args as Ct, HF_BASE_URL as D, CamProfileSchema as Dn, linkedLabelStepId as Dt, G711_SCALE_CORRECTION_DB as E, CAM_PROFILE_ORDER as En, isFirstLevelMacroClass as Et, RATE_CONTROL_TIGHT as F, makeProfileBrokerId as Fn, memoizePinnedFfmpeg as Ft, YAMNET_TO_MACRO as G, discriminatedUnion as Gn, pipelineRunnerCapability as Gt, RingBuffer as H, _enum as Hn, pickDetailCropConvention as Ht, RECORDING_EXPORT_MAX_READ_BYTES as I, makeSourceBrokerId as In, migrateLegacyDeviceSignalConfig as It, audioAnalysisCapability as J, number as Jn, recordingCapability as Jt, addonWidgetsSourceCapability as K, lazy as Kn, rankStreams as Kt, RECORDING_SOURCE_CAMSTACK as L, nodePin as Ln, modeMayWrite as Lt, OpsLogEntrySchema as M, expandAudioChunkToF32le as Mn, maskUrlCredentials as Mt, PoolMemoryWatchdog as N, hydrateSchema as Nn, mayReadLocation as Nt, LABEL_SUPPLY_MACRO as O, audioChunkBytesPerSample as On, linkedStepOf as Ot, RATE_CONTROL_RELAXED as P, isEvent as Pn, mayWriteToLocation as Pt, cameraOwnsMotionViaSensor as Q, string as Qn, resolveCreateExportSubject as Qt, RECORDING_SOURCE_CAMSTACK_ADDON as R, parseJsonUnknown as Rn, motionDetectionCapability as Rt, EVENT_PAD_MS as S, DeviceType as Sn, gifDeriveSpeed as St, FailureCounters as T, BaseAddon as Tn, inferModelProvider as Tt, VIDEOCLIPS_MAX_OFFER_BYTES as U, array as Un, pickNativeLeaseOverride as Ut, RecordingSignalStatusSchema as V, sleep as Vn, pickClusterStepSettings as Vt, VISIT_MERGE_GAP_MS as W, boolean as Wn, pipelineExecutorCapability as Wt, audioKindId as X, preprocess as Xn, recordingSignalCapability as Xt, audioAnalyzerCapability as Y, object as Yn, recordingExportCapability as Yt, batteryCapability as Z, record as Zn, resolveClusterStepModelId as Zt, DEFAULT_DETAIL_CROP_CONVENTION as _, buildFfmpegArgs as _n, evictionPolicyOfLocation as _t, BackgroundRunRegistry as a, runtimeDevices as an, declareLogChannel as at, DEVICE_BACKEND_TO_FORMAT as b, isSoftwareDecode as bn, ffmpegRate as bt, CLIP_STILL_REASON_CODE_HEADER as c, storageOccupancyCapability as cn, deriveDetailCropRect as ct, CLUSTER_MODEL_SCOPED_STEPS as d, supportedRuntimes as dn, detectionPipelineCapability as dt, resolveLocationMode as en, EventCategory as er, clipExportFailure as et, COCO_80_LABELS as f, videoclipsCapability as fn, egressTranscodeSharingKey as ft, DEFAULT_CLUSTER_STEP_SETTINGS as g, Fmp4BoxSplitter as gn, evictionPolicyForMode as gt, DEFAULT_AUDIO_ANALYZER_CONFIG as h, DEFAULT_FIRST_SIGHTING_FRESHNESS_MS as hn, evaluateZoneRules as ht, AUDIO_MACRO_LABELS as i, rootSuppliesOf as in, createLogChannelsProvider as it, NativeLeaseSettingsSchema as j, defineCustomActions as jn, mapAudioLabelToMacro as jt, LABEL_SUPPLY_VOCABULARIES as k, createEvent as kn, loadContributionCapability as kt, CLIP_STILL_REASON_HEADER as l, streamBrokerCapability as ln, deriveRecordingMode as lt, CROP_SUPPLY_SOURCES as m, AUDIO_PRESETS as mn, enumerateInferenceDevices as mt, APPLE_SA_TO_MACRO as n, resolveRecordingProfiles as nn, containingParentIndex as nt, BatteryStatusSchema as o, stepModelRunsOnFormat as on, defaultDeviceFor as ot, COCO_TO_MACRO as p, webrtcSessionCapability as pn, egressTransportFromRequest as pt, allowedSuppliedEffect as q, literal as qn, recordingArchiveCapability as qt, AUDIO_BACKEND_CHOICES as r, resolveRootSupply as rn, createHwAccelCache as rt, CLIP_BROKER_PACED_RATES as s, storageEvictableCapability as sn, deriveBatteryPresence as st, APPEARANCE_BLOCKS as t, resolvePoolMemoryPolicy as tn, clipExportFailureOf as tt, CLIP_STREAM_TRANSPORT_HEADER as u, stripRetiredBandPreBufferSec as un, deriveRootFaceRefineRect as ut, DEFAULT_EVENTS_BAND_BUFFER_SEC as v, evaluateSensorEdge as vn, exportSubjectOf as vt, ExportRecordSchema as w, BOOT_RECOVERY_BACKOFF_MS as wn, hfModelUrl as wt, EVENT_OWNER_TYPES as x, DeviceFeature as xn, gbToBytes as xt, DEFAULT_NATIVE_LEASE_SETTINGS as y, invocationFromEncodeProfile as yn, failureContributionCapability as yt, ROOT_SUPPLIABLE_STEP_IDS as z, parseProfileBrokerId as zn, overlayClusterStepSettings as zt };
54726
+ export { cameraOwnsMotionViaSensor as $, record as $n, resolveCreateExportSubject as $t, NativeLeaseAdmissionSchema as A, audioChunkBytesPerSample as An, loadContributionCapability as At, RecordingConfigSchema as B, parseJsonUnknown as Bn, overlayClusterStepSettings as Bt, EncodeProfileSchema as C, DeviceFeature as Cn, gifDeriveSpeed as Ct, HF_BASE_URL as D, BaseAddon as Dn, isFirstLevelMacroClass as Dt, G711_SCALE_CORRECTION_DB as E, BOOT_RECOVERY_BACKOFF_MS as En, inferModelProvider as Et, RATE_CONTROL_TIGHT as F, hydrateSchema as Fn, mayWriteToLocation as Ft, YAMNET_TO_MACRO as G, array as Gn, pipelineExecutorCapability as Gt, RingBuffer as H, selectAssignedProfileSlots as Hn, pickClusterStepSettings as Ht, RECORDING_EXPORT_MAX_READ_BYTES as I, isEvent as In, memoizePinnedFfmpeg as It, applyModelBoundSettings as J, lazy as Jn, recordingArchiveCapability as Jt, addonWidgetsSourceCapability as K, boolean as Kn, pipelineRunnerCapability as Kt, RECORDING_SOURCE_CAMSTACK as L, makeProfileBrokerId as Ln, migrateLegacyDeviceSignalConfig as Lt, OpsLogEntrySchema as M, customAction as Mn, mapAudioLabelToMacro as Mt, PoolMemoryWatchdog as N, defineCustomActions as Nn, maskUrlCredentials as Nt, LABEL_SUPPLY_MACRO as O, CAM_PROFILE_ORDER as On, linkedLabelStepId as Ot, RATE_CONTROL_RELAXED as P, expandAudioChunkToF32le as Pn, mayReadLocation as Pt, batteryCapability as Q, preprocess as Qn, resolveClusterStepModelId as Qt, RECORDING_SOURCE_CAMSTACK_ADDON as R, makeSourceBrokerId as Rn, modeMayWrite as Rt, EVENT_PAD_MS as S, isSoftwareDecode as Sn, gbToBytes as St, FailureCounters as T, errMsg as Tn, hfModelUrl as Tt, VIDEOCLIPS_MAX_OFFER_BYTES as U, sleep as Un, pickDetailCropConvention as Ut, RecordingSignalStatusSchema as V, parseProfileBrokerId as Vn, parseProcStatus as Vt, VISIT_MERGE_GAP_MS as W, _enum as Wn, pickNativeLeaseOverride as Wt, audioAnalyzerCapability as X, number as Xn, recordingExportCapability as Xt, audioAnalysisCapability as Y, literal as Yn, recordingCapability as Yt, audioKindId as Z, object as Zn, recordingSignalCapability as Zt, DEFAULT_DETAIL_CROP_CONVENTION as _, DEFAULT_FIRST_SIGHTING_FRESHNESS_MS as _n, evictionPolicyForMode as _t, BackgroundRunRegistry as a, resolveRootSupply as an, createLogChannelsProvider as at, DEVICE_BACKEND_TO_FORMAT as b, evaluateSensorEdge as bn, failureContributionCapability as bt, CLIP_STILL_REASON_CODE_HEADER as c, stepModelRunsOnFormat as cn, deriveBatteryPresence as ct, CLUSTER_MODEL_SCOPED_STEPS as d, streamBrokerCapability as dn, deriveRootFaceRefineRect as dt, resolveEgressDecodeHwAccel as en, string as er, cameraStreamsCapability as et, COCO_80_LABELS as f, stripRetiredBandPreBufferSec as fn, detectionPipelineCapability as ft, DEFAULT_CLUSTER_STEP_SETTINGS as g, AUDIO_PRESETS as gn, evaluateZoneRules as gt, DEFAULT_AUDIO_ANALYZER_CONFIG as h, webrtcSessionCapability as hn, enumerateInferenceDevices as ht, AUDIO_MACRO_LABELS as i, resolveRecordingProfiles as in, createHwAccelCache as it, NativeLeaseSettingsSchema as j, createEvent as jn, logChannelsCapability as jt, LABEL_SUPPLY_VOCABULARIES as k, CamProfileSchema as kn, linkedStepOf as kt, CLIP_STILL_REASON_HEADER as l, storageEvictableCapability as ln, deriveDetailCropRect as lt, CROP_SUPPLY_SOURCES as m, videoclipsCapability as mn, egressTransportFromRequest as mt, APPLE_SA_TO_MACRO as n, resolveModelBoundSetting as nn, EventCategory as nr, clipExportFailureOf as nt, BatteryStatusSchema as o, rootSuppliesOf as on, declareLogChannel as ot, COCO_TO_MACRO as p, supportedRuntimes as pn, egressTranscodeSharingKey as pt, allowedSuppliedEffect as q, discriminatedUnion as qn, rankStreams as qt, AUDIO_BACKEND_CHOICES as r, resolvePoolMemoryPolicy as rn, containingParentIndex as rt, CLIP_BROKER_PACED_RATES as s, runtimeDevices as sn, defaultDeviceFor as st, APPEARANCE_BLOCKS as t, resolveLocationMode as tn, union as tr, clipExportFailure as tt, CLIP_STREAM_TRANSPORT_HEADER as u, storageOccupancyCapability as un, deriveRecordingMode as ut, DEFAULT_EVENTS_BAND_BUFFER_SEC as v, Fmp4BoxSplitter as vn, evictionPolicyOfLocation as vt, ExportRecordSchema as w, DeviceType as wn, gifFromMp4Args as wt, EVENT_OWNER_TYPES as x, invocationFromEncodeProfile as xn, ffmpegRate as xt, DEFAULT_NATIVE_LEASE_SETTINGS as y, buildFfmpegArgs as yn, exportSubjectOf as yt, ROOT_SUPPLIABLE_STEP_IDS as z, nodePin as zn, motionDetectionCapability as zt };
@@ -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-C7v30DMP.js");
5
+ const require_dist = require("../dist-C5DlS_lW.js");
6
6
  const require_lazy_sharp = require("../lazy-sharp-BuwKlQLR.js");
7
7
  let node_fs = require("node:fs");
8
8
  let node_path = require("node:path");
@@ -1,4 +1,4 @@
1
- import { Nn as hydrateSchema, Rt as motionDetectionCapability, Sn as DeviceType, Tn as BaseAddon, ht as evaluateZoneRules } from "../dist-Dn3knu_K.mjs";
1
+ import { Dn as BaseAddon, Fn as hydrateSchema, gt as evaluateZoneRules, wn as DeviceType, zt as motionDetectionCapability } from "../dist-CPhDwlSN.mjs";
2
2
  import { t as getSharp } from "../lazy-sharp-DXsqwpph.mjs";
3
3
  import { readFileSync } from "node:fs";
4
4
  import { join } from "node:path";
@@ -1,5 +1,5 @@
1
1
  const require_chunk = require("./chunk-emK7D4bc.js");
2
- const require_dist = require("./dist-C7v30DMP.js");
2
+ const require_dist = require("./dist-C5DlS_lW.js");
3
3
  let node_crypto = require("node:crypto");
4
4
  let node_fs = require("node:fs");
5
5
  node_fs = require_chunk.__toESM(node_fs, 1);
@@ -1,4 +1,4 @@
1
- import { Cn as errMsg, _n as buildFfmpegArgs, bn as isSoftwareDecode, gn as Fmp4BoxSplitter } from "./dist-Dn3knu_K.mjs";
1
+ import { Sn as isSoftwareDecode, Tn as errMsg, vn as Fmp4BoxSplitter, yn as buildFfmpegArgs } from "./dist-CPhDwlSN.mjs";
2
2
  import { randomUUID } from "node:crypto";
3
3
  import { realpathSync } from "node:fs";
4
4
  import path from "node:path";
@@ -3,9 +3,9 @@ Object.defineProperties(exports, {
3
3
  [Symbol.toStringTag]: { value: "Module" }
4
4
  });
5
5
  const require_chunk = require("../chunk-emK7D4bc.js");
6
- const require_dist = require("../dist-C7v30DMP.js");
7
- const require_node = require("../node-DWdekhW3.js");
8
- const require_custom_model_catalog = require("../custom-model-catalog-CVeosmYm.js");
6
+ const require_dist = require("../dist-C5DlS_lW.js");
7
+ const require_node = require("../node-BUafKArW.js");
8
+ const require_custom_model_catalog = require("../custom-model-catalog-CL-xJa8w.js");
9
9
  const require_hub_hostname = require("../hub-hostname-DAJXlOgV.js");
10
10
  const require_lazy_sharp = require("../lazy-sharp-BuwKlQLR.js");
11
11
  const require_restream_intent = require("../restream-intent-7uDNqMKs.js");
@@ -2155,6 +2155,18 @@ function applyRootMasks(result, fill) {
2155
2155
  var ROOT_SUPPLY_ROOT_STEP_ID = "object-detection";
2156
2156
  var PACKAGE_STEP_ID = "package-detection";
2157
2157
  var PACKAGE_THRESHOLD_KEY = "minConfidencePackage";
2158
+ /** The step slider that governs a supplied label — one knob per step (D741). */
2159
+ var SUPPLIED_LABEL_FLOOR_KEY = "minConfidence";
2160
+ /**
2161
+ * The floor a supplied label must clear for one step, under the D738 binding
2162
+ * rule against the ROOT model: an operator value made for the root applies; one
2163
+ * made for the step's own classifier does not (another scale); the root's
2164
+ * measured floor is the default, and no floor at all when it declares none.
2165
+ */
2166
+ function suppliedLabelFloor(stepId, settings, rootModelId, rootEntry) {
2167
+ const state = require_dist.resolveModelBoundSetting(settings, SUPPLIED_LABEL_FLOOR_KEY, rootModelId, rootEntry?.suppliedLabelFloors?.[stepId] ?? 0, 0);
2168
+ return typeof state.value === "number" ? state.value : 0;
2169
+ }
2158
2170
  var EMPTY_ROOT_SUPPLY_PLAN = { states: /* @__PURE__ */ new Map() };
2159
2171
  /** The step `addonId` when it is in the tree AND switched on — the per-camera gate's answer. */
2160
2172
  function findEnabledStep(steps, addonId) {
@@ -2203,7 +2215,8 @@ function planRootSupplies(steps, resolveModel, deviceKey) {
2203
2215
  if (root === void 0) return EMPTY_ROOT_SUPPLY_PLAN;
2204
2216
  const definition = require_custom_model_catalog.getStepDefinition(ROOT_SUPPLY_ROOT_STEP_ID);
2205
2217
  const rootModelId = root.modelId ?? unpinnedRootModelId(deviceKey, definition.defaultModelId);
2206
- const supplies = require_dist.rootSuppliesOf(resolveModel(ROOT_SUPPLY_ROOT_STEP_ID, rootModelId), {
2218
+ const rootEntry = resolveModel(ROOT_SUPPLY_ROOT_STEP_ID, rootModelId);
2219
+ const supplies = require_dist.rootSuppliesOf(rootEntry, {
2207
2220
  labels: definition.labels ?? [],
2208
2221
  ...definition.classMap !== void 0 ? { classMap: definition.classMap } : {}
2209
2222
  });
@@ -2214,7 +2227,8 @@ function planRootSupplies(steps, resolveModel, deviceKey) {
2214
2227
  const settings = step.settings;
2215
2228
  states.set(stepId, {
2216
2229
  ...require_dist.resolveRootSupply(stepId, settings, supplies),
2217
- ...settings !== void 0 ? { settings } : {}
2230
+ ...settings !== void 0 ? { settings } : {},
2231
+ labelFloor: suppliedLabelFloor(stepId, settings, rootModelId, rootEntry)
2218
2232
  });
2219
2233
  }
2220
2234
  return {
@@ -2252,6 +2266,10 @@ function authoritativeLabels(detection, plan) {
2252
2266
  changed = true;
2253
2267
  continue;
2254
2268
  }
2269
+ if (state.labelFloor >= 1 || detection.score < state.labelFloor) {
2270
+ changed = true;
2271
+ continue;
2272
+ }
2255
2273
  if (label.score === detection.score) {
2256
2274
  labels.push(label);
2257
2275
  continue;
@@ -1,6 +1,6 @@
1
- import { A as NativeLeaseAdmissionSchema, An as customAction, Cn as errMsg, Gt as pipelineRunnerCapability, Hn as _enum, Ht as pickDetailCropConvention, Jn as number, Kn as lazy, Ln as nodePin, Ot as linkedStepOf, Q as cameraOwnsMotionViaSensor, Qn as string, T as FailureCounters, Tn as BaseAddon, Un as array, Ut as pickNativeLeaseOverride, Wn as boolean, Yn as object, _ as DEFAULT_DETAIL_CROP_CONVENTION, a as BackgroundRunRegistry, ct as deriveDetailCropRect, er as EventCategory, in as rootSuppliesOf, j as NativeLeaseSettingsSchema, jn as defineCustomActions, kn as createEvent, kt as loadContributionCapability, m as CROP_SUPPLY_SOURCES, q as allowedSuppliedEffect, qn as literal, rn as resolveRootSupply, ut as deriveRootFaceRefineRect, y as DEFAULT_NATIVE_LEASE_SETTINGS, yt as failureContributionCapability, z as ROOT_SUPPLIABLE_STEP_IDS } from "../dist-Dn3knu_K.mjs";
2
- import { i as NO_COST_CLAIM, t as ChildCostRegistry } from "../node-_BruMF4L.mjs";
3
- import { a as stepsForElectedPool, b as getStepDefinition, d as rootObjectGate, f as localFrameRegistry, h as resolveFrameViewGeometry, i as placeDetailStep, l as resolveDefaultDetectionModel, m as createSessionDecodeCoordinator, p as isSessionDecodeReadGone, s as resolveDeviceEngine, t as CustomModelCatalog, u as macroGateVerdict, y as getStep } from "../custom-model-catalog-DoOVE7kz.mjs";
1
+ import { $ as cameraOwnsMotionViaSensor, A as NativeLeaseAdmissionSchema, At as loadContributionCapability, Dn as BaseAddon, Gn as array, Jn as lazy, Kn as boolean, Kt as pipelineRunnerCapability, Mn as customAction, Nn as defineCustomActions, T as FailureCounters, Tn as errMsg, Ut as pickDetailCropConvention, Wn as _enum, Wt as pickNativeLeaseOverride, Xn as number, Yn as literal, Zn as object, _ as DEFAULT_DETAIL_CROP_CONVENTION, a as BackgroundRunRegistry, an as resolveRootSupply, bt as failureContributionCapability, dt as deriveRootFaceRefineRect, er as string, j as NativeLeaseSettingsSchema, jn as createEvent, kt as linkedStepOf, lt as deriveDetailCropRect, m as CROP_SUPPLY_SOURCES, nn as resolveModelBoundSetting, nr as EventCategory, on as rootSuppliesOf, q as allowedSuppliedEffect, y as DEFAULT_NATIVE_LEASE_SETTINGS, z as ROOT_SUPPLIABLE_STEP_IDS, zn as nodePin } from "../dist-CPhDwlSN.mjs";
2
+ import { i as NO_COST_CLAIM, t as ChildCostRegistry } from "../node-DYfEOwjW.mjs";
3
+ import { a as stepsForElectedPool, b as getStepDefinition, d as rootObjectGate, f as localFrameRegistry, h as resolveFrameViewGeometry, i as placeDetailStep, l as resolveDefaultDetectionModel, m as createSessionDecodeCoordinator, p as isSessionDecodeReadGone, s as resolveDeviceEngine, t as CustomModelCatalog, u as macroGateVerdict, y as getStep } from "../custom-model-catalog-Buehc666.mjs";
4
4
  import { t as resolveHubHostname } from "../hub-hostname-cCknRYKj.mjs";
5
5
  import { t as getSharp } from "../lazy-sharp-DXsqwpph.mjs";
6
6
  import { c as withDetectionIntent, o as preRollRequestOf, t as DETECTION_PRE_ROLL_REQUEST_MS } from "../restream-intent-DyGmLAU9.mjs";
@@ -2148,6 +2148,18 @@ function applyRootMasks(result, fill) {
2148
2148
  var ROOT_SUPPLY_ROOT_STEP_ID = "object-detection";
2149
2149
  var PACKAGE_STEP_ID = "package-detection";
2150
2150
  var PACKAGE_THRESHOLD_KEY = "minConfidencePackage";
2151
+ /** The step slider that governs a supplied label — one knob per step (D741). */
2152
+ var SUPPLIED_LABEL_FLOOR_KEY = "minConfidence";
2153
+ /**
2154
+ * The floor a supplied label must clear for one step, under the D738 binding
2155
+ * rule against the ROOT model: an operator value made for the root applies; one
2156
+ * made for the step's own classifier does not (another scale); the root's
2157
+ * measured floor is the default, and no floor at all when it declares none.
2158
+ */
2159
+ function suppliedLabelFloor(stepId, settings, rootModelId, rootEntry) {
2160
+ const state = resolveModelBoundSetting(settings, SUPPLIED_LABEL_FLOOR_KEY, rootModelId, rootEntry?.suppliedLabelFloors?.[stepId] ?? 0, 0);
2161
+ return typeof state.value === "number" ? state.value : 0;
2162
+ }
2151
2163
  var EMPTY_ROOT_SUPPLY_PLAN = { states: /* @__PURE__ */ new Map() };
2152
2164
  /** The step `addonId` when it is in the tree AND switched on — the per-camera gate's answer. */
2153
2165
  function findEnabledStep(steps, addonId) {
@@ -2196,7 +2208,8 @@ function planRootSupplies(steps, resolveModel, deviceKey) {
2196
2208
  if (root === void 0) return EMPTY_ROOT_SUPPLY_PLAN;
2197
2209
  const definition = getStepDefinition(ROOT_SUPPLY_ROOT_STEP_ID);
2198
2210
  const rootModelId = root.modelId ?? unpinnedRootModelId(deviceKey, definition.defaultModelId);
2199
- const supplies = rootSuppliesOf(resolveModel(ROOT_SUPPLY_ROOT_STEP_ID, rootModelId), {
2211
+ const rootEntry = resolveModel(ROOT_SUPPLY_ROOT_STEP_ID, rootModelId);
2212
+ const supplies = rootSuppliesOf(rootEntry, {
2200
2213
  labels: definition.labels ?? [],
2201
2214
  ...definition.classMap !== void 0 ? { classMap: definition.classMap } : {}
2202
2215
  });
@@ -2207,7 +2220,8 @@ function planRootSupplies(steps, resolveModel, deviceKey) {
2207
2220
  const settings = step.settings;
2208
2221
  states.set(stepId, {
2209
2222
  ...resolveRootSupply(stepId, settings, supplies),
2210
- ...settings !== void 0 ? { settings } : {}
2223
+ ...settings !== void 0 ? { settings } : {},
2224
+ labelFloor: suppliedLabelFloor(stepId, settings, rootModelId, rootEntry)
2211
2225
  });
2212
2226
  }
2213
2227
  return {
@@ -2245,6 +2259,10 @@ function authoritativeLabels(detection, plan) {
2245
2259
  changed = true;
2246
2260
  continue;
2247
2261
  }
2262
+ if (state.labelFloor >= 1 || detection.score < state.labelFloor) {
2263
+ changed = true;
2264
+ continue;
2265
+ }
2248
2266
  if (label.score === detection.score) {
2249
2267
  labels.push(label);
2250
2268
  continue;
@@ -1,5 +1,5 @@
1
1
  const require_chunk = require("./chunk-emK7D4bc.js");
2
- const require_dist = require("./dist-C7v30DMP.js");
2
+ const require_dist = require("./dist-C5DlS_lW.js");
3
3
  let node_fs = require("node:fs");
4
4
  node_fs = require_chunk.__toESM(node_fs);
5
5
  let node_child_process = require("node:child_process");
@@ -1,4 +1,4 @@
1
- import { Bt as parseProcStatus } from "./dist-Dn3knu_K.mjs";
1
+ import { Vt as parseProcStatus } from "./dist-CPhDwlSN.mjs";
2
2
  import * as fs from "node:fs";
3
3
  import { execFile } from "node:child_process";
4
4
  //#region src/shared/node-topology-platform.ts
@@ -3,8 +3,8 @@ Object.defineProperties(exports, {
3
3
  [Symbol.toStringTag]: { value: "Module" }
4
4
  });
5
5
  const require_chunk = require("../chunk-emK7D4bc.js");
6
- const require_dist = require("../dist-C7v30DMP.js");
7
- const require_node = require("../node-DWdekhW3.js");
6
+ const require_dist = require("../dist-C5DlS_lW.js");
7
+ const require_node = require("../node-BUafKArW.js");
8
8
  const require_hub_hostname = require("../hub-hostname-DAJXlOgV.js");
9
9
  const require_restream_intent = require("../restream-intent-7uDNqMKs.js");
10
10
  const require_retire_root_keys = require("../retire-root-keys-Csb8z2f3.js");
@@ -1,5 +1,5 @@
1
- import { An as customAction, B as RecordingConfigSchema, Bn as selectAssignedProfileSlots, Cn as errMsg$1, Et as isFirstLevelMacroClass, Ft as memoizePinnedFfmpeg, Hn as _enum, I as RECORDING_EXPORT_MAX_READ_BYTES, It as migrateLegacyDeviceSignalConfig, Jn as number, Jt as recordingCapability, L as RECORDING_SOURCE_CAMSTACK, Ln as nodePin, Lt as modeMayWrite, M as OpsLogEntrySchema, Nn as hydrateSchema, Nt as mayReadLocation, Pt as mayWriteToLocation, Qn as string, Qt as resolveCreateExportSubject, R as RECORDING_SOURCE_CAMSTACK_ADDON, S as EVENT_PAD_MS, Sn as DeviceType, Tn as BaseAddon, U as VIDEOCLIPS_MAX_OFFER_BYTES, Un as array, V as RecordingSignalStatusSchema, Vn as sleep$1, W as VISIT_MERGE_GAP_MS, Wn as boolean, Xn as preprocess, Xt as recordingSignalCapability, Yn as object, Yt as recordingExportCapability, Z as batteryCapability, Zn as record, _t as evictionPolicyOfLocation, cn as storageOccupancyCapability, en as resolveLocationMode, er as EventCategory, et as clipExportFailure, fn as videoclipsCapability, gt as evictionPolicyForMode, jn as defineCustomActions, kt as loadContributionCapability, lt as deriveRecordingMode, nn as resolveRecordingProfiles, o as BatteryStatusSchema, qt as recordingArchiveCapability, s as CLIP_BROKER_PACED_RATES, sn as storageEvictableCapability, st as deriveBatteryPresence, tt as clipExportFailureOf, un as stripRetiredBandPreBufferSec, v as DEFAULT_EVENTS_BAND_BUFFER_SEC, vn as evaluateSensorEdge, vt as exportSubjectOf, w as ExportRecordSchema, x as EVENT_OWNER_TYPES, xn as DeviceFeature, xt as gbToBytes } from "../dist-Dn3knu_K.mjs";
2
- import { a as physicalRootOf, i as NO_COST_CLAIM, t as ChildCostRegistry } from "../node-_BruMF4L.mjs";
1
+ import { $n as record, $t as resolveCreateExportSubject, At as loadContributionCapability, B as RecordingConfigSchema, Cn as DeviceFeature, Dn as BaseAddon, Dt as isFirstLevelMacroClass, Fn as hydrateSchema, Ft as mayWriteToLocation, Gn as array, Hn as selectAssignedProfileSlots, I as RECORDING_EXPORT_MAX_READ_BYTES, It as memoizePinnedFfmpeg, Jt as recordingArchiveCapability, Kn as boolean, L as RECORDING_SOURCE_CAMSTACK, Lt as migrateLegacyDeviceSignalConfig, M as OpsLogEntrySchema, Mn as customAction, Nn as defineCustomActions, Pt as mayReadLocation, Q as batteryCapability, Qn as preprocess, R as RECORDING_SOURCE_CAMSTACK_ADDON, Rt as modeMayWrite, S as EVENT_PAD_MS, St as gbToBytes, Tn as errMsg$1, U as VIDEOCLIPS_MAX_OFFER_BYTES, Un as sleep$1, V as RecordingSignalStatusSchema, W as VISIT_MERGE_GAP_MS, Wn as _enum, Xn as number, Xt as recordingExportCapability, Yt as recordingCapability, Zn as object, Zt as recordingSignalCapability, _t as evictionPolicyForMode, bn as evaluateSensorEdge, ct as deriveBatteryPresence, er as string, fn as stripRetiredBandPreBufferSec, in as resolveRecordingProfiles, ln as storageEvictableCapability, mn as videoclipsCapability, nr as EventCategory, nt as clipExportFailureOf, o as BatteryStatusSchema, s as CLIP_BROKER_PACED_RATES, tn as resolveLocationMode, tt as clipExportFailure, un as storageOccupancyCapability, ut as deriveRecordingMode, v as DEFAULT_EVENTS_BAND_BUFFER_SEC, vt as evictionPolicyOfLocation, w as ExportRecordSchema, wn as DeviceType, x as EVENT_OWNER_TYPES, yt as exportSubjectOf, zn as nodePin } from "../dist-CPhDwlSN.mjs";
2
+ import { a as physicalRootOf, i as NO_COST_CLAIM, t as ChildCostRegistry } from "../node-DYfEOwjW.mjs";
3
3
  import { t as resolveHubHostname } from "../hub-hostname-cCknRYKj.mjs";
4
4
  import { d as PREBUFFER_MAX_MS, l as withRecordingIntent, r as RECORDING_PRE_ROLL_REQUEST_MS } from "../restream-intent-DyGmLAU9.mjs";
5
5
  import { n as RowMapStore, t as retireRootKeys } from "../retire-root-keys-DZvlso2l.mjs";
@@ -1,5 +1,5 @@
1
1
  const require_chunk = require("./chunk-emK7D4bc.js");
2
- const require_dist = require("./dist-C7v30DMP.js");
2
+ const require_dist = require("./dist-C5DlS_lW.js");
3
3
  let node_child_process = require("node:child_process");
4
4
  //#region src/stream-broker/recorded/avcc-annexb.ts
5
5
  /**
@@ -1,5 +1,5 @@
1
1
  import { r as __toESM, t as __commonJSMin } from "./chunk-DnnnRqeS.mjs";
2
- import { Cn as errMsg } from "./dist-Dn3knu_K.mjs";
2
+ import { Tn as errMsg } from "./dist-CPhDwlSN.mjs";
3
3
  import { spawn } from "node:child_process";
4
4
  //#region src/stream-broker/recorded/avcc-annexb.ts
5
5
  /**
@@ -1,7 +1,7 @@
1
1
  import { a as e, c as t, d as n, f as r, i, l as a, n as o, o as s, p as c, r as l, s as u, t as d, u as f } from "./_virtual_mf___mfe_internal__addon_stream_broker_widgets__loadShare___mf_0_camstack_mf_1_ui_mf_2_library__loadShare__.js-Bt8aa0wk.mjs";
2
2
  import { a as p, i as m, n as h, o as g, r as _, t as v } from "./_virtual_mf___mfe_internal__addon_stream_broker_widgets__loadShare__react__loadShare__.js-C9j-2lBe.mjs";
3
3
  import { n as y, r as b, t as x } from "./_virtual_mf___mfe_internal__addon_stream_broker_widgets__loadShare__react_mf_1_jsx_mf_2_runtime__loadShare__.js-XO0-Pyu6.mjs";
4
- import { t as S } from "./_virtual_mf___mfe_internal__addon_stream_broker_widgets__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-CpjKK9II.mjs";
4
+ import { t as S } from "./_virtual_mf___mfe_internal__addon_stream_broker_widgets__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-1Y-WK-Zy.mjs";
5
5
  import { n as C, t as w } from "./_virtual_mf___mfe_internal__addon_stream_broker_widgets__loadShare___mf_0_tanstack_mf_1_react_mf_2_query__loadShare__.js-BO7TIbJV.mjs";
6
6
  //#region ../../node_modules/lucide-react/dist/esm/shared/src/utils/mergeClasses.js
7
7
  var T = (...e) => e.filter((e, t, n) => !!e && e.trim() !== "" && n.indexOf(e) === t).join(" ").trim(), E = (e) => e.replace(/([a-z0-9])([A-Z])/g, "$1-$2").toLowerCase(), D = (e) => e.replace(/^([A-Z])|[\s-_]+(\w)/g, (e, t, n) => n ? n.toUpperCase() : t.toLowerCase()), O = (e) => {
@@ -18,7 +18,7 @@ var e = {
18
18
  },
19
19
  "@camstack/types": {
20
20
  name: "@camstack/types",
21
- version: "1.2.313",
21
+ version: "1.2.314",
22
22
  scope: ["default"],
23
23
  loaded: !1,
24
24
  from: "addon_stream_broker_widgets",
@@ -33,7 +33,7 @@ var e = {
33
33
  },
34
34
  "@camstack/ui-library": {
35
35
  name: "@camstack/ui-library",
36
- version: "1.2.238",
36
+ version: "1.2.239",
37
37
  scope: ["default"],
38
38
  loaded: !1,
39
39
  from: "addon_stream_broker_widgets",