@camstack/addon-pipeline 1.2.333 → 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 (37) hide show
  1. package/THIRD_PARTY_MODELS.md +3 -8
  2. package/dist/audio-analyzer/index.js +2 -2
  3. package/dist/audio-analyzer/index.mjs +2 -2
  4. package/dist/{default-detection-model-CDffuH2m.mjs → custom-model-catalog-Buehc666.mjs} +518 -179
  5. package/dist/{default-detection-model-Biwf5-ML.js → custom-model-catalog-CL-xJa8w.js} +529 -178
  6. package/dist/detection-pipeline/index.js +186 -120
  7. package/dist/detection-pipeline/index.mjs +135 -69
  8. package/dist/{dist-DJV7Z6Bb.js → dist-C5DlS_lW.js} +214 -22
  9. package/dist/{dist-BsT15i7i.mjs → dist-CPhDwlSN.mjs} +203 -23
  10. package/dist/motion-wasm/index.js +1 -1
  11. package/dist/motion-wasm/index.mjs +1 -1
  12. package/dist/{node-CkmucLYG.js → node-BUafKArW.js} +1 -1
  13. package/dist/{node-Crsi_8ea.mjs → node-DYfEOwjW.mjs} +1 -1
  14. package/dist/pipeline-runner/index.js +248 -44
  15. package/dist/pipeline-runner/index.mjs +226 -22
  16. package/dist/{process-memory-BJb7Ihdp.js → process-memory-DWOQCbg5.js} +1 -1
  17. package/dist/{process-memory-1mAUV8S1.mjs → process-memory-WPRYnN8c.mjs} +1 -1
  18. package/dist/recorder/index.js +2 -2
  19. package/dist/recorder/index.mjs +2 -2
  20. package/dist/{segment-demux-js-mK9IBGLf.js → segment-demux-js-DWIgUPW1.js} +1 -1
  21. package/dist/{segment-demux-js-B_tboBcJ.mjs → segment-demux-js-Kz4EnmOr.mjs} +1 -1
  22. package/dist/stream-broker/_stub.js +1 -1
  23. package/dist/stream-broker/{_virtual_mf-localSharedImportMap___mfe_internal__addon_stream_broker_widgets-a3HMFtd5.mjs → _virtual_mf-localSharedImportMap___mfe_internal__addon_stream_broker_widgets-RPk9F8CY.mjs} +2 -2
  24. 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
  25. package/dist/stream-broker/demux-worker-child.js +1 -1
  26. package/dist/stream-broker/demux-worker-child.mjs +1 -1
  27. package/dist/stream-broker/{hostInit-DChPnZ5C.mjs → hostInit-DXXdQdLd.mjs} +2 -2
  28. package/dist/stream-broker/index.js +3 -3
  29. package/dist/stream-broker/index.mjs +3 -3
  30. package/dist/stream-broker/remoteEntry.js +1 -1
  31. package/package.json +1 -1
  32. package/python/inference_pool.py +52 -2
  33. package/python/postprocessors/test_yolo_seg_root.py +109 -0
  34. package/python/postprocessors/yolo.py +52 -13
  35. package/python/postprocessors/yolo_seg.py +79 -156
  36. package/python/test_inference_pool_ov_precision.py +98 -0
  37. package/dist/stream-broker/_virtual_mf___mfe_internal__addon_stream_broker_widgets__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-DPbj3ML4.mjs +0 -26
@@ -12608,8 +12608,19 @@ var LABEL_SUPPLY_STEP_IDS = [
12608
12608
  ];
12609
12609
  /** Steps whose box a root detection can BE. */
12610
12610
  var CROP_SUPPLY_STEP_IDS = ["plate-detection", "face-detection"];
12611
+ /**
12612
+ * Steps whose per-detection MASK a root detection can carry (D737). The live
12613
+ * mask step is `segmentation` — a frame-plane refiner that runs its own model
12614
+ * once per detection crop. (`instance-segmentation` is a dormant step id that
12615
+ * no camera tree carries.)
12616
+ */
12617
+ var MASK_SUPPLY_STEP_IDS = ["segmentation"];
12611
12618
  /** Every step a root model can supply. */
12612
- var ROOT_SUPPLIABLE_STEP_IDS = [...LABEL_SUPPLY_STEP_IDS, ...CROP_SUPPLY_STEP_IDS];
12619
+ var ROOT_SUPPLIABLE_STEP_IDS = [
12620
+ ...LABEL_SUPPLY_STEP_IDS,
12621
+ ...CROP_SUPPLY_STEP_IDS,
12622
+ ...MASK_SUPPLY_STEP_IDS
12623
+ ];
12613
12624
  /** Narrow a step id to a label-kind one. */
12614
12625
  function isLabelSupplyStepId(value) {
12615
12626
  return LABEL_SUPPLY_STEP_IDS.some((id) => id === value);
@@ -12690,7 +12701,12 @@ var CROP_SUPPLY_SOURCES = {
12690
12701
  * Whether an operator intends a step to take the root's output when the
12691
12702
  * root declares it — the default of the `useRootModel` flag. The label kinds
12692
12703
  * default ON: the detector's answer is the cheaper one and the classifier
12693
- * keeps its model for the day the root changes. The crop kinds default OFF: a
12704
+ * keeps its model for the day the root changes. The animal and vehicle
12705
+ * classifiers are also ENABLED by default (their catalog `enabledByDefault`,
12706
+ * D736), so out of the box a root that declares them names animals and
12707
+ * vehicles and a root that does not runs the classifier; `package-detection`
12708
+ * stays zone-driven and takes this default whenever a zone switches it on.
12709
+ * The crop kinds default OFF: a
12694
12710
  * root plate box has an uncalibrated OCR margin, and root-face refinement has
12695
12711
  * not run on live traffic yet.
12696
12712
  */
@@ -12699,7 +12715,8 @@ var USE_ROOT_MODEL_DEFAULTS = {
12699
12715
  "vehicle-classifier": true,
12700
12716
  "package-detection": true,
12701
12717
  "plate-detection": false,
12702
- "face-detection": false
12718
+ "face-detection": false,
12719
+ segmentation: true
12703
12720
  };
12704
12721
  /** The step-settings key the flag is stored under (DeviceStepConfig.settings, camera overrides). */
12705
12722
  var USE_ROOT_MODEL_SETTING_KEY = "useRootModel";
@@ -12776,13 +12793,32 @@ function deriveRootSupplies(labels, classMap) {
12776
12793
  return supplies;
12777
12794
  }
12778
12795
  /**
12796
+ * The decodes that emit an instance mask with every detection — a fact of the
12797
+ * model's OUTPUT, read from its postprocessor (`yolo-seg`: per-instance mask
12798
+ * coefficients times the prototype masks), never assumed per family.
12799
+ */
12800
+ var MASK_EMITTING_POSTPROCESSORS = ["yolo-seg"];
12801
+ /**
12802
+ * The mask supplies a root declares from its decode: `segmentation` when the
12803
+ * postprocessor emits a mask per detection, nothing otherwise.
12804
+ */
12805
+ function deriveMaskSupplies(postprocessor) {
12806
+ if (postprocessor === void 0 || !MASK_EMITTING_POSTPROCESSORS.includes(postprocessor)) return [];
12807
+ return MASK_SUPPLY_STEP_IDS.map((stepId) => ({
12808
+ kind: "mask",
12809
+ stepId
12810
+ }));
12811
+ }
12812
+ /**
12779
12813
  * The supplies a root model declares. A row registered with a declaration
12780
12814
  * carries it (`suppliesSteps`, computed at import from the model's own
12781
12815
  * labelmap); a row without one — a built-in entry, or a custom row registered
12782
12816
  * before the field existed — is derived here, on read, from the same inputs.
12783
12817
  */
12784
12818
  function rootSuppliesOf(entry, stepDefaults) {
12785
- const declared = entry?.suppliesSteps ?? deriveRootSupplies(entry !== void 0 && entry.labels.length > 0 ? entry.labels.map((l) => l.id) : stepDefaults.labels, entry?.classMap ?? stepDefaults.classMap);
12819
+ const fromLabels = entry?.suppliesSteps ?? deriveRootSupplies(entry !== void 0 && entry.labels.length > 0 ? entry.labels.map((l) => l.id) : stepDefaults.labels, entry?.classMap ?? stepDefaults.classMap);
12820
+ const masks = deriveMaskSupplies(entry?.postprocessor).filter((m) => !fromLabels.some((s) => s.stepId === m.stepId));
12821
+ const declared = masks.length > 0 ? [...fromLabels, ...masks] : fromLabels;
12786
12822
  const inputPx = entry !== void 0 ? Math.min(entry.inputSize.width, entry.inputSize.height) : void 0;
12787
12823
  if (inputPx === void 0) return declared;
12788
12824
  return declared.map((s) => s.kind === "crop" ? {
@@ -13019,25 +13055,36 @@ var ModelLicenseSchema = preprocess((value) => typeof value === "string" ? { wei
13019
13055
  * - `crop`: the root draws the box the step would have found (`license_plate`
13020
13056
  * for plate-detection, `face` for face-detection). The box becomes a detail
13021
13057
  * child of the `parentMacro` detection that contains it — never a track.
13058
+ * - `mask`: the root's decode emits an instance mask with every detection (a
13059
+ * YOLO26-seg root, D737) — the `segmentation` step's result, carried on the
13060
+ * detection in the shape that step produces. Derived from the model's
13061
+ * postprocessor on read, never stored by an import.
13022
13062
  */
13023
- var RootStepSupplySchema = discriminatedUnion("kind", [object({
13024
- kind: literal("label"),
13025
- stepId: _enum(LABEL_SUPPLY_STEP_IDS),
13026
- labelToEffect: record(string(), string()),
13027
- uncovered: array(string()).readonly()
13028
- }), object({
13029
- kind: literal("crop"),
13030
- stepId: _enum(CROP_SUPPLY_STEP_IDS),
13031
- rootLabels: array(string()).readonly(),
13032
- parentMacro: _enum(["vehicle", "person"]),
13033
- childClass: _enum(["plate", "face"]),
13034
- /**
13035
- * The root's smaller input side, stamped on read by `rootSuppliesOf` from
13036
- * the model entry — what a step's `minRootInputPx` gate judges. Never
13037
- * stored by an import.
13038
- */
13039
- rootInputPx: number().int().positive().optional()
13040
- })]);
13063
+ var RootStepSupplySchema = discriminatedUnion("kind", [
13064
+ object({
13065
+ kind: literal("label"),
13066
+ stepId: _enum(LABEL_SUPPLY_STEP_IDS),
13067
+ labelToEffect: record(string(), string()),
13068
+ uncovered: array(string()).readonly()
13069
+ }),
13070
+ object({
13071
+ kind: literal("crop"),
13072
+ stepId: _enum(CROP_SUPPLY_STEP_IDS),
13073
+ rootLabels: array(string()).readonly(),
13074
+ parentMacro: _enum(["vehicle", "person"]),
13075
+ childClass: _enum(["plate", "face"]),
13076
+ /**
13077
+ * The root's smaller input side, stamped on read by `rootSuppliesOf` from
13078
+ * the model entry — what a step's `minRootInputPx` gate judges. Never
13079
+ * stored by an import.
13080
+ */
13081
+ rootInputPx: number().int().positive().optional()
13082
+ }),
13083
+ object({
13084
+ kind: literal("mask"),
13085
+ stepId: _enum(MASK_SUPPLY_STEP_IDS)
13086
+ })
13087
+ ]);
13041
13088
  var ModelCatalogEntrySchema = object({
13042
13089
  id: string(),
13043
13090
  name: string(),
@@ -13103,6 +13150,35 @@ var ModelCatalogEntrySchema = object({
13103
13150
  */
13104
13151
  defaultConfidence: number().min(0).max(1).optional(),
13105
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
+ /**
13106
13182
  * When true, the executor produces a landmark-aligned crop (similarity warp
13107
13183
  * onto the canonical template) before this step runs, instead of a plain
13108
13184
  * axis-aligned bbox crop. Required for face-recognition embedders (ArcFace):
@@ -41070,6 +41146,16 @@ DeviceType.Camera, method(object({
41070
41146
  package: array(ZoneRuleSchema).readonly()
41071
41147
  });
41072
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
+ });
41073
41159
  var HF_BASE_URL = `https://huggingface.co/camstack/camstack-models/resolve/main`;
41074
41160
  /**
41075
41161
  * Accessory device helpers — shared across drivers.
@@ -53325,6 +53411,100 @@ function stepModelRunsOnFormat(models, modelId, format) {
53325
53411
  }
53326
53412
  return models.some((m) => m.legacy !== true && hasBuild(m, format));
53327
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
+ }
53328
53508
  /** Side of the square, as a multiple of the face box's longer side. */
53329
53509
  var ROOT_FACE_REFINE_SCALE = 1.6;
53330
53510
  /**
@@ -54543,4 +54723,4 @@ function enumerateInferenceDevices(hw) {
54543
54723
  return out;
54544
54724
  }
54545
54725
  //#endregion
54546
- 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-DJV7Z6Bb.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-BsT15i7i.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-DJV7Z6Bb.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-BsT15i7i.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";