@camstack/addon-pipeline 1.2.630 → 1.2.631

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 (36) hide show
  1. package/CHANGELOG.md +10 -1
  2. package/README.md +39 -20
  3. package/dist/audio-analyzer/index.js +3 -3
  4. package/dist/audio-analyzer/index.mjs +3 -3
  5. package/dist/{custom-model-catalog-CsHQljey.js → custom-model-catalog-5IT-gwL2.js} +2 -2
  6. package/dist/{custom-model-catalog-qwNT0qE-.mjs → custom-model-catalog-DLv2FLul.mjs} +2 -2
  7. package/dist/detection-pipeline/index.js +4 -4
  8. package/dist/detection-pipeline/index.mjs +4 -4
  9. package/dist/{dist-M09KjuSx.js → dist-CVvwej3J.js} +39 -7
  10. package/dist/{dist-C56NTN3j.mjs → dist-DV6W_qKY.mjs} +39 -7
  11. package/dist/{model-catalogs-vPj_kgtX.mjs → model-catalogs-CI9KoY4D.mjs} +1 -1
  12. package/dist/{model-catalogs-BmZHxpaD.js → model-catalogs-lWWyJZqw.js} +1 -1
  13. package/dist/motion-wasm/index.js +1 -1
  14. package/dist/motion-wasm/index.mjs +1 -1
  15. package/dist/{node-C0CzsJ0N.js → node-BQ7P2No5.js} +1 -1
  16. package/dist/{node-CdsOgsyN.mjs → node-KEh_tmT2.mjs} +1 -1
  17. package/dist/pipeline-runner/index.js +3 -3
  18. package/dist/pipeline-runner/index.mjs +3 -3
  19. package/dist/{process-memory-BURe-pwd.js → process-memory-C-3bSKF5.js} +1 -1
  20. package/dist/{process-memory-DAhr_IbO.mjs → process-memory-ChQO96Xb.mjs} +1 -1
  21. package/dist/recorder/index.js +2 -2
  22. package/dist/recorder/index.mjs +2 -2
  23. package/dist/{segment-demux-js-B391lmQZ.js → segment-demux-js-8YepQCG3.js} +1 -1
  24. package/dist/{segment-demux-js-CobIINvd.mjs → segment-demux-js-Dy75tkrR.mjs} +1 -1
  25. package/dist/stream-broker/_stub.js +2 -2
  26. package/dist/stream-broker/{_virtual_mf-localSharedImportMap___mfe_internal__addon_stream_broker_widgets-Bxan5418.mjs → _virtual_mf-localSharedImportMap___mfe_internal__addon_stream_broker_widgets-CKN6MEA_.mjs} +3 -3
  27. package/dist/stream-broker/{_virtual_mf___mfe_internal__addon_stream_broker_widgets__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-inxALjZf.mjs → _virtual_mf___mfe_internal__addon_stream_broker_widgets__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-BPnizAbp.mjs} +1 -1
  28. package/dist/stream-broker/_virtual_mf___mfe_internal__addon_stream_broker_widgets__loadShare___mf_0_camstack_mf_1_ui_mf_2_library__loadShare__.js-BL5-HIQd.mjs +26 -0
  29. package/dist/stream-broker/demux-worker-child.js +1 -1
  30. package/dist/stream-broker/demux-worker-child.mjs +1 -1
  31. package/dist/stream-broker/{hostInit-CmFod5rw.mjs → hostInit-BqjKmOsK.mjs} +3 -3
  32. package/dist/stream-broker/index.js +3 -3
  33. package/dist/stream-broker/index.mjs +3 -3
  34. package/dist/stream-broker/remoteEntry.js +1 -1
  35. package/package.json +2 -2
  36. package/dist/stream-broker/_virtual_mf___mfe_internal__addon_stream_broker_widgets__loadShare___mf_0_camstack_mf_1_ui_mf_2_library__loadShare__.js-wSzIkKI-.mjs +0 -26
package/CHANGELOG.md CHANGED
@@ -7,6 +7,15 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [1.2.631] - 2026-10-27
11
+
12
+ ### Changed
13
+
14
+ - Motion detection is shown as "Motion Detection" (was "Motion Detection (WASM)").
15
+
16
+ ## [1.2.630] - 2026-10-27
17
+
10
18
  ### Added
11
19
 
12
- - Package README and changelog, included in the published files list.
20
+ - Pipeline: Pipeline bundle — runner, detection, motion, audio + stream broker. Multi-entry npm package shipping pipeline addons under a single bundle.
21
+ - Provides the addons Pipeline Runner, Detection Pipeline, Motion Detection, Audio Analyzer, Stream Broker, Recorder.
package/README.md CHANGED
@@ -1,35 +1,54 @@
1
- # @camstack/addon-pipeline
1
+ # Pipeline
2
2
 
3
- Pipeline bundle — runner, detection, motion, audio + stream broker. Multi-entry npm package shipping pipeline addons under a single bundle.
3
+ Pipeline bundle — runner, detection, motion, audio + stream broker. Multi-entry npm package shipping pipeline addons under a single bundle. Detection, motion, audio + stream broker.
4
4
 
5
- ## What it does
5
+ <!-- readme:generated:start (derived from the manifest; edit outside this block) -->
6
6
 
7
- - **Pipeline Runner** (`pipeline-runner`): Per-node detection scheduler — manages frame queues, semaphore, motion drain, and inference dispatch for cameras assigned by the orchestrator
8
- - Node placement: `any-node`, runner group `detection`.
7
+ Package `@camstack/addon-pipeline` on npm.
8
+
9
+ ## What it provides
10
+
11
+ - **Pipeline Runner** (`pipeline-runner`): Per-node detection scheduler — manages frame queues, semaphore, motion drain, and inference dispatch for cameras assigned by the orchestrator. Category: pipeline.
9
12
  - Capabilities: `pipeline-runner`, `load-contribution`, `failure-contribution`.
10
- - **Detection Pipeline** (`detection-pipeline`): Unified detection pipeline — object detection, face/plate recognition, classification, segmentation
11
- - Node placement: `any-node`, runner group `detection`.
13
+ - **Detection Pipeline** (`detection-pipeline`): Unified detection pipeline — object detection, face/plate recognition, classification, segmentation. Category: pipeline.
12
14
  - Capabilities: `pipeline-executor`, `detection-pipeline`, `load-contribution`.
13
- - **Motion Detection (WASM)** (`motion-wasm`): WASM-accelerated motion detection with blur, dilation, and connected component labeling
14
- - Node placement: `any-node`, runner group `detection`.
15
+ - **Motion Detection** (`motion-wasm`): WASM-accelerated motion detection with blur, dilation, and connected component labeling. Category: pipeline.
15
16
  - Capabilities: `motion-detection`.
16
- - **Audio Analyzer** (`audio-analyzer`): Audio level metering (dB/RMS) with optional classification
17
- - Node placement: `any-node`.
17
+ - **Audio Analyzer** (`audio-analyzer`): Audio level metering (dB/RMS) with optional classification. Category: pipeline.
18
18
  - Capabilities: `audio-analyzer`, `audio-analysis`.
19
- - **Stream Broker** (`stream-broker`).
20
- - Node placement: `any-node`.
19
+ - **Stream Broker** (`stream-broker`): Category: pipeline.
21
20
  - Capabilities: `device-removal-hook`, `stream-broker`, `camera-streams`, `webrtc-session`, `addon-widgets-source`, `log-channels`, `load-contribution`.
22
- - **Recorder** (`recorder`): Continuous, local, filesystem-native camera recording — passthrough ffmpeg segmenter per profile with a RAM index and HLS variant/master playlists
23
- - Node placement: `any-node`.
21
+ - **Recorder** (`recorder`): Continuous, local, filesystem-native camera recording — passthrough ffmpeg segmenter per profile with a RAM index and HLS variant/master playlists. Category: pipeline.
24
22
  - Capabilities: `device-removal-hook`, `recording`, `recording-archive`, `videoclips`, `recording-export`, `storage-evictable`, `storage-occupancy`, `load-contribution`.
25
23
 
26
- ## Settings
24
+ ## Configuration
25
+
26
+ Edit these from System, Addons, this addon, Settings (a device's own settings are on its device page). A password field is stored in the keychain.
27
+
28
+ **Addon settings**
27
29
 
28
- Settings this addon exposes are edited from System → Addons → this addon → Settings when they apply to the whole cluster, and from the device page when they belong to one device. A password field is stored in the keychain.
30
+ - Cluster recording: Recording node, Hub host (cross-node)
29
31
 
30
32
  ## Requirements
31
33
 
32
- - Peer packages already on the node: `@camstack/types`, `react`, `react-dom`, `werift`.
33
- - Runtime dependencies the node resolves: `werift`.
34
- - A CamStack hub. An agent is used only when the placement above allows it.
34
+ - Pipeline Runner: any-node (runner group `detection`).
35
+ - Detection Pipeline: any-node (runner group `detection`).
36
+ - Motion Detection: any-node (runner group `detection`).
37
+ - Audio Analyzer: any-node.
38
+ - Stream Broker: any-node.
39
+ - Recorder: any-node.
40
+ - Runtime dependencies installed with the addon: `werift`.
41
+ - Python: Detection Pipeline installs `python/requirements.txt` into its own environment.
42
+ - A CamStack hub. An agent is used only where the placement above allows it.
43
+
44
+ ## Documentation
45
+
46
+ - [docs/architecture/data-planes.md](https://github.com/camstack/server/blob/main/docs/architecture/data-planes.md)
47
+ - [docs/architecture/detection-execution.md](https://github.com/camstack/server/blob/main/docs/architecture/detection-execution.md)
48
+ - [docs/architecture/load-ledger.md](https://github.com/camstack/server/blob/main/docs/architecture/load-ledger.md)
49
+ - [docs/architecture/benchmark.md](https://github.com/camstack/server/blob/main/docs/architecture/benchmark.md)
50
+ - [packages/addon-pipeline/AGENTS.md](https://github.com/camstack/server/blob/main/packages/addon-pipeline/AGENTS.md)
51
+
52
+ See [CHANGELOG.md](./CHANGELOG.md) for what changed in each version.
35
53
 
54
+ <!-- readme:generated:end -->
@@ -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-M09KjuSx.js");
7
- const require_model_catalogs = require("../model-catalogs-BmZHxpaD.js");
8
- const require_process_memory = require("../process-memory-BURe-pwd.js");
6
+ const require_dist = require("../dist-CVvwej3J.js");
7
+ const require_model_catalogs = require("../model-catalogs-lWWyJZqw.js");
8
+ const require_process_memory = require("../process-memory-C-3bSKF5.js");
9
9
  let node_fs = require("node:fs");
10
10
  node_fs = require_chunk.__toESM(node_fs);
11
11
  let node_path = require("node:path");
@@ -1,7 +1,7 @@
1
1
  import { n as __require } from "../chunk-DnnnRqeS.mjs";
2
- import { Er as EventCategory, Gn as BaseAddon, Gt as mapAudioLabelToMacro, I as PoolMemoryWatchdog, Un as errMsg, Xn as audioChunkBytesPerSample, h as DEFAULT_AUDIO_ANALYZER_CONFIG, lr as nodePin, nt as audioAnalyzerCapability, r as AUDIO_BACKEND_CHOICES, rr as hydrateSchema, tr as expandAudioChunkToF32le, tt as audioAnalysisCapability, yn as resolvePoolMemoryPolicy } from "../dist-C56NTN3j.mjs";
3
- import { n as AUDIO_CLASSIFIER_MODELS } from "../model-catalogs-vPj_kgtX.mjs";
4
- import { n as pickNodePlatformArch, t as readProcessMemory } from "../process-memory-DAhr_IbO.mjs";
2
+ import { Er as EventCategory, Gn as BaseAddon, Gt as mapAudioLabelToMacro, I as PoolMemoryWatchdog, Un as errMsg, Xn as audioChunkBytesPerSample, h as DEFAULT_AUDIO_ANALYZER_CONFIG, lr as nodePin, nt as audioAnalyzerCapability, r as AUDIO_BACKEND_CHOICES, rr as hydrateSchema, tr as expandAudioChunkToF32le, tt as audioAnalysisCapability, yn as resolvePoolMemoryPolicy } from "../dist-DV6W_qKY.mjs";
3
+ import { n as AUDIO_CLASSIFIER_MODELS } from "../model-catalogs-CI9KoY4D.mjs";
4
+ import { n as pickNodePlatformArch, t as readProcessMemory } from "../process-memory-ChQO96Xb.mjs";
5
5
  import * as fs from "node:fs";
6
6
  import * as path$1 from "node:path";
7
7
  import { ensureModel } from "@camstack/system/addon-utils";
@@ -1,5 +1,5 @@
1
- const require_dist = require("./dist-M09KjuSx.js");
2
- const require_model_catalogs = require("./model-catalogs-BmZHxpaD.js");
1
+ const require_dist = require("./dist-CVvwej3J.js");
2
+ const require_model_catalogs = require("./model-catalogs-lWWyJZqw.js");
3
3
  const require_worker_protocol = require("./worker-protocol-DngGEAT2.js");
4
4
  let node_crypto = require("node:crypto");
5
5
  //#region src/detection-pipeline/registry/effective-confidence.ts
@@ -1,5 +1,5 @@
1
- import { En as stepModelRunsOnFormat, N as OBJECT_DETECTION_STEP_ID, b as DEVICE_BACKEND_TO_FORMAT, f as COCO_80_LABELS, i as AUDIO_MACRO_LABELS, k as LABEL_SUPPLY_VOCABULARIES, p as COCO_TO_MACRO, rt as audioKindId, zt as inferModelProvider } from "./dist-C56NTN3j.mjs";
2
- import { a as FACE_DETECTION_MODELS, c as OBJECT_DETECTION_MODELS, d as PLATE_OCR_MODELS, f as SEGMENTATION_REFINER_MODELS, i as CLIP_EMBEDDING_MODELS, l as PACKAGE_DETECTION_MODELS, n as AUDIO_CLASSIFIER_MODELS, o as FACE_EMBEDDING_MODELS, p as VEHICLE_CLASSIFIER_MODELS, r as BIRD_CLASSIFIER_MODELS, s as INSTANCE_SEGMENTATION_MODELS, t as ANIMAL_CLASSIFIER_MODELS, u as PLATE_DETECTION_MODELS } from "./model-catalogs-vPj_kgtX.mjs";
1
+ import { En as stepModelRunsOnFormat, N as OBJECT_DETECTION_STEP_ID, b as DEVICE_BACKEND_TO_FORMAT, f as COCO_80_LABELS, i as AUDIO_MACRO_LABELS, k as LABEL_SUPPLY_VOCABULARIES, p as COCO_TO_MACRO, rt as audioKindId, zt as inferModelProvider } from "./dist-DV6W_qKY.mjs";
2
+ import { a as FACE_DETECTION_MODELS, c as OBJECT_DETECTION_MODELS, d as PLATE_OCR_MODELS, f as SEGMENTATION_REFINER_MODELS, i as CLIP_EMBEDDING_MODELS, l as PACKAGE_DETECTION_MODELS, n as AUDIO_CLASSIFIER_MODELS, o as FACE_EMBEDDING_MODELS, p as VEHICLE_CLASSIFIER_MODELS, r as BIRD_CLASSIFIER_MODELS, s as INSTANCE_SEGMENTATION_MODELS, t as ANIMAL_CLASSIFIER_MODELS, u as PLATE_DETECTION_MODELS } from "./model-catalogs-CI9KoY4D.mjs";
3
3
  import { t as isWorkerReply } from "./worker-protocol-_avq7y8O.mjs";
4
4
  import { randomUUID } from "node:crypto";
5
5
  //#region src/detection-pipeline/registry/effective-confidence.ts
@@ -3,11 +3,11 @@ 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-M09KjuSx.js");
7
- const require_node = require("../node-C0CzsJ0N.js");
8
- const require_custom_model_catalog = require("../custom-model-catalog-CsHQljey.js");
6
+ const require_dist = require("../dist-CVvwej3J.js");
7
+ const require_node = require("../node-BQ7P2No5.js");
8
+ const require_custom_model_catalog = require("../custom-model-catalog-5IT-gwL2.js");
9
9
  const require_lazy_sharp = require("../lazy-sharp-BuwKlQLR.js");
10
- const require_process_memory = require("../process-memory-BURe-pwd.js");
10
+ const require_process_memory = require("../process-memory-C-3bSKF5.js");
11
11
  let node_os = require("node:os");
12
12
  node_os = require_chunk.__toESM(node_os);
13
13
  let node_fs = require("node:fs");
@@ -1,9 +1,9 @@
1
1
  import { n as __require } from "../chunk-DnnnRqeS.mjs";
2
- import { $ as applyModelBoundSettings, Cn as runtimeDevices$1, Dt as enumerateInferenceDevices, En as stepModelRunsOnFormat, Er as EventCategory, Gn as BaseAddon, I as PoolMemoryWatchdog, O as LABEL_SUPPLY_MACRO, Ot as evaluateZoneRules, Qt as overlayClusterStepSettings, Sn as rootSuppliesOf, Tr as union, Un as errMsg, Ut as loadContributionCapability, Vt as linkedLabelStepId, Y as YAMNET_TO_MACRO, Zn as createEvent, d as CLUSTER_MODEL_SCOPED_STEPS, dt as containingParentIndex, en as pickClusterStepSettings, fr as sleep, g as DEFAULT_CLUSTER_STEP_SETTINGS, gt as defaultDeviceFor$1, hr as array, jn as supportedRuntimes$1, lr as nodePin, mn as resolveClusterStepModelId, n as APPLE_SA_TO_MACRO, nr as hfModelUrl, rn as pipelineExecutorCapability, rr as hydrateSchema, ut as collectModelBoundKeys, wr as string, wt as edgetpuDelegateDevice, xr as object, xt as detectionPipelineCapability, yn as resolvePoolMemoryPolicy } from "../dist-C56NTN3j.mjs";
3
- import { c as readProcessCost } from "../node-CdsOgsyN.mjs";
4
- import { S as resolveModelDefaultConfidence, _ as getDefaultModelForFormat, b as resolveModelForFormat, c as resolveDefaultDetectionModel, d as localFrameRegistry, g as ALL_STEPS, h as ALL_PIPELINE_STEPS, l as macroGateVerdict, n as mergeCustomModels, o as deviceKeyOf, r as buildSubtreeCanRun, s as resolveDeviceEngine, t as CustomModelCatalog, v as getStep, x as landmarkPrecisionVerdict, y as getStepDefinition } from "../custom-model-catalog-qwNT0qE-.mjs";
2
+ import { $ as applyModelBoundSettings, Cn as runtimeDevices$1, Dt as enumerateInferenceDevices, En as stepModelRunsOnFormat, Er as EventCategory, Gn as BaseAddon, I as PoolMemoryWatchdog, O as LABEL_SUPPLY_MACRO, Ot as evaluateZoneRules, Qt as overlayClusterStepSettings, Sn as rootSuppliesOf, Tr as union, Un as errMsg, Ut as loadContributionCapability, Vt as linkedLabelStepId, Y as YAMNET_TO_MACRO, Zn as createEvent, d as CLUSTER_MODEL_SCOPED_STEPS, dt as containingParentIndex, en as pickClusterStepSettings, fr as sleep, g as DEFAULT_CLUSTER_STEP_SETTINGS, gt as defaultDeviceFor$1, hr as array, jn as supportedRuntimes$1, lr as nodePin, mn as resolveClusterStepModelId, n as APPLE_SA_TO_MACRO, nr as hfModelUrl, rn as pipelineExecutorCapability, rr as hydrateSchema, ut as collectModelBoundKeys, wr as string, wt as edgetpuDelegateDevice, xr as object, xt as detectionPipelineCapability, yn as resolvePoolMemoryPolicy } from "../dist-DV6W_qKY.mjs";
3
+ import { c as readProcessCost } from "../node-KEh_tmT2.mjs";
4
+ import { S as resolveModelDefaultConfidence, _ as getDefaultModelForFormat, b as resolveModelForFormat, c as resolveDefaultDetectionModel, d as localFrameRegistry, g as ALL_STEPS, h as ALL_PIPELINE_STEPS, l as macroGateVerdict, n as mergeCustomModels, o as deviceKeyOf, r as buildSubtreeCanRun, s as resolveDeviceEngine, t as CustomModelCatalog, v as getStep, x as landmarkPrecisionVerdict, y as getStepDefinition } from "../custom-model-catalog-DLv2FLul.mjs";
5
5
  import { t as getSharp } from "../lazy-sharp-DXsqwpph.mjs";
6
- import { n as pickNodePlatformArch, t as readProcessMemory } from "../process-memory-DAhr_IbO.mjs";
6
+ import { n as pickNodePlatformArch, t as readProcessMemory } from "../process-memory-ChQO96Xb.mjs";
7
7
  import * as os$1 from "node:os";
8
8
  import * as fs from "node:fs";
9
9
  import * as path$1 from "node:path";
@@ -20002,7 +20002,22 @@ var BrokerProviderInfoSchema = object({
20002
20002
  */
20003
20003
  interactiveConnectPath: string().min(1).optional(),
20004
20004
  /** Relative hub path to disconnect the linked account (same popup pattern). */
20005
- interactiveDisconnectPath: string().min(1).optional()
20005
+ interactiveDisconnectPath: string().min(1).optional(),
20006
+ /**
20007
+ * The kind signs in through a server-held interactive session instead of
20008
+ * (or before) typed credentials. `basePath` is a hub-relative route set
20009
+ * served by the owning addon (`/addon/<id>/...`) speaking the sign-in
20010
+ * contract: `POST {basePath}/start` (body: the form's settings) answers
20011
+ * `{ sessionId, loginUrl }`; `GET {basePath}/status?sessionId=` answers
20012
+ * `{ phase: 'starting' | 'awaiting-login' | 'captured' | 'error' |
20013
+ * 'cancelled', loginUrl, error }`; `POST {basePath}/commit`
20014
+ * (`{ sessionId, name, brokerId? }`) stores the credentials on a new or
20015
+ * existing broker and answers `{ brokerId }`; `POST {basePath}/cancel`
20016
+ * (`{ sessionId }`) drops the session. The dialog that edits a broker
20017
+ * offers it as the default path; the fields the session fills are
20018
+ * marked `filledBySignIn` in the kind's settings schema.
20019
+ */
20020
+ signIn: object({ basePath: string().min(1) }).optional()
20006
20021
  }))
20007
20022
  });
20008
20023
  var ListInputSchema = object({
@@ -47109,7 +47124,7 @@ var NetworkAccessStatusSchema = object({
47109
47124
  });
47110
47125
  /**
47111
47126
  * Optional, richer endpoint shape returned by providers that expose
47112
- * MORE than one ingress concurrently (Tailscale Ingress with mixed
47127
+ * MORE than one ingress concurrently (Tailscale Funnel with mixed
47113
47128
  * serve+funnel rules, future ngrok multi-tunnel, …). Each entry carries
47114
47129
  * the originating provider config (mode + sourcePort) so the
47115
47130
  * orchestrator UI can label rows distinctly. Providers that expose only
@@ -61395,7 +61410,8 @@ var BATTERY_DEVICE_TYPES = [
61395
61410
  DeviceType.Switch,
61396
61411
  DeviceType.PetFeeder,
61397
61412
  DeviceType.Container,
61398
- DeviceType.Thermostat
61413
+ DeviceType.Thermostat,
61414
+ DeviceType.EventEmitter
61399
61415
  ];
61400
61416
  /** Generic Customize target for the percentage reading (D936). */
61401
61417
  var batteryCustomize = {
@@ -66134,9 +66150,9 @@ object({
66134
66150
  /** Cumulative energy in kilowatt-hours since the meter was reset. */
66135
66151
  kwhTotal: number().optional().meta(readingMeta("energy", { label: "Energy" })),
66136
66152
  /** Voltage in volts. */
66137
- volts: number().optional().meta(readingMeta("voltage")),
66153
+ volts: number().optional().meta(readingMeta("voltage", { label: "Voltage" })),
66138
66154
  /** Current in amperes. */
66139
- amps: number().optional().meta(readingMeta("current")),
66155
+ amps: number().optional().meta(readingMeta("current", { label: "Current" })),
66140
66156
  /** Apparent power in volt-amperes. */
66141
66157
  va: number().optional().meta(readingMeta("apparent-power")),
66142
66158
  /** Power factor (0..1) if reported. */
@@ -66144,7 +66160,23 @@ object({
66144
66160
  /** Ms epoch when the slice was last updated. */
66145
66161
  lastFetchedAt: number()
66146
66162
  });
66147
- DeviceType.Sensor, DeviceType.Washer, DeviceType.Dryer, DeviceType.Dishwasher;
66163
+ [
66164
+ DeviceType.Sensor,
66165
+ DeviceType.Switch,
66166
+ DeviceType.Light,
66167
+ DeviceType.Fan,
66168
+ DeviceType.Climate,
66169
+ DeviceType.Thermostat,
66170
+ DeviceType.Humidifier,
66171
+ DeviceType.WaterHeater,
66172
+ DeviceType.MediaPlayer,
66173
+ DeviceType.Washer,
66174
+ DeviceType.Dryer,
66175
+ DeviceType.Dishwasher,
66176
+ DeviceType.Vacuum,
66177
+ DeviceType.LawnMower,
66178
+ DeviceType.PetFeeder
66179
+ ].filter((type) => type !== DeviceType.Sensor);
66148
66180
  /**
66149
66181
  * Presence cap. Models HA `person.*` and `device_tracker.*` entities
66150
66182
  * on `DeviceType.Presence`. Read-only — no setters: presence is
@@ -70888,7 +70920,7 @@ function dominantClipLabels(events) {
70888
70920
  }
70889
70921
  DeviceFeature.FanSpeed, DeviceFeature.FanPreset, DeviceFeature.FanDirection, DeviceFeature.FanOscillating, DeviceFeature.CoverPositionable, DeviceFeature.CoverTilt, DeviceFeature.ValvePositionable, DeviceFeature.MediaPlayerVolume, DeviceFeature.ClimateFanMode;
70890
70922
  SOURCE_CAPS.filter((cap) => cap !== "switch" && cap !== "motion");
70891
- DeviceType.Camera, DeviceType.Sensor, DeviceType.Button, DeviceType.Switch, DeviceType.PetFeeder, DeviceType.Container, DeviceType.Thermostat, DeviceType.Camera, DeviceType.Hub, DeviceType.Light, DeviceType.Siren, DeviceType.Switch, DeviceType.Sensor, DeviceType.Thermostat, DeviceType.Climate, DeviceType.Button, DeviceType.EventEmitter, DeviceType.Update, DeviceType.Generic, DeviceType.Notifier, DeviceType.Script, DeviceType.Automation, DeviceType.Lock, DeviceType.Cover, DeviceType.Valve, DeviceType.Humidifier, DeviceType.WaterHeater, DeviceType.Fan, DeviceType.MediaPlayer, DeviceType.AlarmPanel, DeviceType.Control, DeviceType.Presence, DeviceType.Weather, DeviceType.Vacuum, DeviceType.LawnMower, DeviceType.Container, DeviceType.Image, DeviceType.PetFeeder, DeviceType.Dishwasher, DeviceType.Washer, DeviceType.Dryer, DeviceType.Camera, DeviceType.Camera, DeviceType.Washer, DeviceType.Dryer, DeviceType.Dishwasher, DeviceType.Vacuum, DeviceType.LawnMower, DeviceType.MediaPlayer, DeviceType.WaterHeater, DeviceType.Humidifier, DeviceType.Fan, DeviceType.Climate, DeviceType.Thermostat, DeviceType.PetFeeder;
70923
+ DeviceType.Camera, DeviceType.Sensor, DeviceType.Button, DeviceType.Switch, DeviceType.PetFeeder, DeviceType.Container, DeviceType.Thermostat, DeviceType.EventEmitter, DeviceType.Camera, DeviceType.Hub, DeviceType.Light, DeviceType.Siren, DeviceType.Switch, DeviceType.Sensor, DeviceType.Thermostat, DeviceType.Climate, DeviceType.Button, DeviceType.EventEmitter, DeviceType.Update, DeviceType.Generic, DeviceType.Notifier, DeviceType.Script, DeviceType.Automation, DeviceType.Lock, DeviceType.Cover, DeviceType.Valve, DeviceType.Humidifier, DeviceType.WaterHeater, DeviceType.Fan, DeviceType.MediaPlayer, DeviceType.AlarmPanel, DeviceType.Control, DeviceType.Presence, DeviceType.Weather, DeviceType.Vacuum, DeviceType.LawnMower, DeviceType.Container, DeviceType.Image, DeviceType.PetFeeder, DeviceType.Dishwasher, DeviceType.Washer, DeviceType.Dryer, DeviceType.Camera, DeviceType.Camera, DeviceType.Switch, DeviceType.Light, DeviceType.Fan, DeviceType.Climate, DeviceType.Thermostat, DeviceType.Humidifier, DeviceType.WaterHeater, DeviceType.MediaPlayer, DeviceType.Washer, DeviceType.Dryer, DeviceType.Dishwasher, DeviceType.Vacuum, DeviceType.LawnMower, DeviceType.PetFeeder, DeviceType.Switch, DeviceType.Light, DeviceType.Fan, DeviceType.Climate, DeviceType.Thermostat, DeviceType.Humidifier, DeviceType.WaterHeater, DeviceType.MediaPlayer, DeviceType.Washer, DeviceType.Dryer, DeviceType.Dishwasher, DeviceType.Vacuum, DeviceType.LawnMower, DeviceType.PetFeeder, DeviceType.Switch, DeviceType.Light, DeviceType.Fan, DeviceType.Climate, DeviceType.Thermostat, DeviceType.Humidifier, DeviceType.WaterHeater, DeviceType.MediaPlayer, DeviceType.Washer, DeviceType.Dryer, DeviceType.Dishwasher, DeviceType.Vacuum, DeviceType.LawnMower, DeviceType.PetFeeder, DeviceType.Switch, DeviceType.Light, DeviceType.Fan, DeviceType.Climate, DeviceType.Thermostat, DeviceType.Humidifier, DeviceType.WaterHeater, DeviceType.MediaPlayer, DeviceType.Washer, DeviceType.Dryer, DeviceType.Dishwasher, DeviceType.Vacuum, DeviceType.LawnMower, DeviceType.PetFeeder, DeviceType.Washer, DeviceType.Dryer, DeviceType.Dishwasher, DeviceType.Vacuum, DeviceType.LawnMower, DeviceType.MediaPlayer, DeviceType.WaterHeater, DeviceType.Humidifier, DeviceType.Fan, DeviceType.Climate, DeviceType.Thermostat, DeviceType.PetFeeder;
70892
70924
  String.raw`rose\(active(\d+), changed(\d+), (\d+(?:\.\d+)?)\)`;
70893
70925
  DeviceRole.BinarySensor, DeviceRole.MotionSensor;
70894
70926
  new Set(CAP_NAMES);
@@ -20002,7 +20002,22 @@ var BrokerProviderInfoSchema = object({
20002
20002
  */
20003
20003
  interactiveConnectPath: string().min(1).optional(),
20004
20004
  /** Relative hub path to disconnect the linked account (same popup pattern). */
20005
- interactiveDisconnectPath: string().min(1).optional()
20005
+ interactiveDisconnectPath: string().min(1).optional(),
20006
+ /**
20007
+ * The kind signs in through a server-held interactive session instead of
20008
+ * (or before) typed credentials. `basePath` is a hub-relative route set
20009
+ * served by the owning addon (`/addon/<id>/...`) speaking the sign-in
20010
+ * contract: `POST {basePath}/start` (body: the form's settings) answers
20011
+ * `{ sessionId, loginUrl }`; `GET {basePath}/status?sessionId=` answers
20012
+ * `{ phase: 'starting' | 'awaiting-login' | 'captured' | 'error' |
20013
+ * 'cancelled', loginUrl, error }`; `POST {basePath}/commit`
20014
+ * (`{ sessionId, name, brokerId? }`) stores the credentials on a new or
20015
+ * existing broker and answers `{ brokerId }`; `POST {basePath}/cancel`
20016
+ * (`{ sessionId }`) drops the session. The dialog that edits a broker
20017
+ * offers it as the default path; the fields the session fills are
20018
+ * marked `filledBySignIn` in the kind's settings schema.
20019
+ */
20020
+ signIn: object({ basePath: string().min(1) }).optional()
20006
20021
  }))
20007
20022
  });
20008
20023
  var ListInputSchema = object({
@@ -47109,7 +47124,7 @@ var NetworkAccessStatusSchema = object({
47109
47124
  });
47110
47125
  /**
47111
47126
  * Optional, richer endpoint shape returned by providers that expose
47112
- * MORE than one ingress concurrently (Tailscale Ingress with mixed
47127
+ * MORE than one ingress concurrently (Tailscale Funnel with mixed
47113
47128
  * serve+funnel rules, future ngrok multi-tunnel, …). Each entry carries
47114
47129
  * the originating provider config (mode + sourcePort) so the
47115
47130
  * orchestrator UI can label rows distinctly. Providers that expose only
@@ -61395,7 +61410,8 @@ var BATTERY_DEVICE_TYPES = [
61395
61410
  DeviceType.Switch,
61396
61411
  DeviceType.PetFeeder,
61397
61412
  DeviceType.Container,
61398
- DeviceType.Thermostat
61413
+ DeviceType.Thermostat,
61414
+ DeviceType.EventEmitter
61399
61415
  ];
61400
61416
  /** Generic Customize target for the percentage reading (D936). */
61401
61417
  var batteryCustomize = {
@@ -66134,9 +66150,9 @@ object({
66134
66150
  /** Cumulative energy in kilowatt-hours since the meter was reset. */
66135
66151
  kwhTotal: number().optional().meta(readingMeta("energy", { label: "Energy" })),
66136
66152
  /** Voltage in volts. */
66137
- volts: number().optional().meta(readingMeta("voltage")),
66153
+ volts: number().optional().meta(readingMeta("voltage", { label: "Voltage" })),
66138
66154
  /** Current in amperes. */
66139
- amps: number().optional().meta(readingMeta("current")),
66155
+ amps: number().optional().meta(readingMeta("current", { label: "Current" })),
66140
66156
  /** Apparent power in volt-amperes. */
66141
66157
  va: number().optional().meta(readingMeta("apparent-power")),
66142
66158
  /** Power factor (0..1) if reported. */
@@ -66144,7 +66160,23 @@ object({
66144
66160
  /** Ms epoch when the slice was last updated. */
66145
66161
  lastFetchedAt: number()
66146
66162
  });
66147
- DeviceType.Sensor, DeviceType.Washer, DeviceType.Dryer, DeviceType.Dishwasher;
66163
+ [
66164
+ DeviceType.Sensor,
66165
+ DeviceType.Switch,
66166
+ DeviceType.Light,
66167
+ DeviceType.Fan,
66168
+ DeviceType.Climate,
66169
+ DeviceType.Thermostat,
66170
+ DeviceType.Humidifier,
66171
+ DeviceType.WaterHeater,
66172
+ DeviceType.MediaPlayer,
66173
+ DeviceType.Washer,
66174
+ DeviceType.Dryer,
66175
+ DeviceType.Dishwasher,
66176
+ DeviceType.Vacuum,
66177
+ DeviceType.LawnMower,
66178
+ DeviceType.PetFeeder
66179
+ ].filter((type) => type !== DeviceType.Sensor);
66148
66180
  /**
66149
66181
  * Presence cap. Models HA `person.*` and `device_tracker.*` entities
66150
66182
  * on `DeviceType.Presence`. Read-only — no setters: presence is
@@ -70888,7 +70920,7 @@ function dominantClipLabels(events) {
70888
70920
  }
70889
70921
  DeviceFeature.FanSpeed, DeviceFeature.FanPreset, DeviceFeature.FanDirection, DeviceFeature.FanOscillating, DeviceFeature.CoverPositionable, DeviceFeature.CoverTilt, DeviceFeature.ValvePositionable, DeviceFeature.MediaPlayerVolume, DeviceFeature.ClimateFanMode;
70890
70922
  SOURCE_CAPS.filter((cap) => cap !== "switch" && cap !== "motion");
70891
- DeviceType.Camera, DeviceType.Sensor, DeviceType.Button, DeviceType.Switch, DeviceType.PetFeeder, DeviceType.Container, DeviceType.Thermostat, DeviceType.Camera, DeviceType.Hub, DeviceType.Light, DeviceType.Siren, DeviceType.Switch, DeviceType.Sensor, DeviceType.Thermostat, DeviceType.Climate, DeviceType.Button, DeviceType.EventEmitter, DeviceType.Update, DeviceType.Generic, DeviceType.Notifier, DeviceType.Script, DeviceType.Automation, DeviceType.Lock, DeviceType.Cover, DeviceType.Valve, DeviceType.Humidifier, DeviceType.WaterHeater, DeviceType.Fan, DeviceType.MediaPlayer, DeviceType.AlarmPanel, DeviceType.Control, DeviceType.Presence, DeviceType.Weather, DeviceType.Vacuum, DeviceType.LawnMower, DeviceType.Container, DeviceType.Image, DeviceType.PetFeeder, DeviceType.Dishwasher, DeviceType.Washer, DeviceType.Dryer, DeviceType.Camera, DeviceType.Camera, DeviceType.Washer, DeviceType.Dryer, DeviceType.Dishwasher, DeviceType.Vacuum, DeviceType.LawnMower, DeviceType.MediaPlayer, DeviceType.WaterHeater, DeviceType.Humidifier, DeviceType.Fan, DeviceType.Climate, DeviceType.Thermostat, DeviceType.PetFeeder;
70923
+ DeviceType.Camera, DeviceType.Sensor, DeviceType.Button, DeviceType.Switch, DeviceType.PetFeeder, DeviceType.Container, DeviceType.Thermostat, DeviceType.EventEmitter, DeviceType.Camera, DeviceType.Hub, DeviceType.Light, DeviceType.Siren, DeviceType.Switch, DeviceType.Sensor, DeviceType.Thermostat, DeviceType.Climate, DeviceType.Button, DeviceType.EventEmitter, DeviceType.Update, DeviceType.Generic, DeviceType.Notifier, DeviceType.Script, DeviceType.Automation, DeviceType.Lock, DeviceType.Cover, DeviceType.Valve, DeviceType.Humidifier, DeviceType.WaterHeater, DeviceType.Fan, DeviceType.MediaPlayer, DeviceType.AlarmPanel, DeviceType.Control, DeviceType.Presence, DeviceType.Weather, DeviceType.Vacuum, DeviceType.LawnMower, DeviceType.Container, DeviceType.Image, DeviceType.PetFeeder, DeviceType.Dishwasher, DeviceType.Washer, DeviceType.Dryer, DeviceType.Camera, DeviceType.Camera, DeviceType.Switch, DeviceType.Light, DeviceType.Fan, DeviceType.Climate, DeviceType.Thermostat, DeviceType.Humidifier, DeviceType.WaterHeater, DeviceType.MediaPlayer, DeviceType.Washer, DeviceType.Dryer, DeviceType.Dishwasher, DeviceType.Vacuum, DeviceType.LawnMower, DeviceType.PetFeeder, DeviceType.Switch, DeviceType.Light, DeviceType.Fan, DeviceType.Climate, DeviceType.Thermostat, DeviceType.Humidifier, DeviceType.WaterHeater, DeviceType.MediaPlayer, DeviceType.Washer, DeviceType.Dryer, DeviceType.Dishwasher, DeviceType.Vacuum, DeviceType.LawnMower, DeviceType.PetFeeder, DeviceType.Switch, DeviceType.Light, DeviceType.Fan, DeviceType.Climate, DeviceType.Thermostat, DeviceType.Humidifier, DeviceType.WaterHeater, DeviceType.MediaPlayer, DeviceType.Washer, DeviceType.Dryer, DeviceType.Dishwasher, DeviceType.Vacuum, DeviceType.LawnMower, DeviceType.PetFeeder, DeviceType.Switch, DeviceType.Light, DeviceType.Fan, DeviceType.Climate, DeviceType.Thermostat, DeviceType.Humidifier, DeviceType.WaterHeater, DeviceType.MediaPlayer, DeviceType.Washer, DeviceType.Dryer, DeviceType.Dishwasher, DeviceType.Vacuum, DeviceType.LawnMower, DeviceType.PetFeeder, DeviceType.Washer, DeviceType.Dryer, DeviceType.Dishwasher, DeviceType.Vacuum, DeviceType.LawnMower, DeviceType.MediaPlayer, DeviceType.WaterHeater, DeviceType.Humidifier, DeviceType.Fan, DeviceType.Climate, DeviceType.Thermostat, DeviceType.PetFeeder;
70892
70924
  String.raw`rose\(active(\d+), changed(\d+), (\d+(?:\.\d+)?)\)`;
70893
70925
  DeviceRole.BinarySensor, DeviceRole.MotionSensor;
70894
70926
  new Set(CAP_NAMES);
@@ -1,4 +1,4 @@
1
- import { f as COCO_80_LABELS, nr as hfModelUrl } from "./dist-C56NTN3j.mjs";
1
+ import { f as COCO_80_LABELS, nr as hfModelUrl } from "./dist-DV6W_qKY.mjs";
2
2
  //#region src/detection-pipeline/registry/model-licenses.ts
3
3
  var COCO_DATA = {
4
4
  name: "COCO 2017",
@@ -1,4 +1,4 @@
1
- const require_dist = require("./dist-M09KjuSx.js");
1
+ const require_dist = require("./dist-CVvwej3J.js");
2
2
  //#region src/detection-pipeline/registry/model-licenses.ts
3
3
  var COCO_DATA = {
4
4
  name: "COCO 2017",
@@ -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-M09KjuSx.js");
5
+ const require_dist = require("../dist-CVvwej3J.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 { Gn as BaseAddon, Hn as DeviceType, Ot as evaluateZoneRules, Zt as motionDetectionCapability, rr as hydrateSchema } from "../dist-C56NTN3j.mjs";
1
+ import { Gn as BaseAddon, Hn as DeviceType, Ot as evaluateZoneRules, Zt as motionDetectionCapability, rr as hydrateSchema } from "../dist-DV6W_qKY.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-M09KjuSx.js");
2
+ const require_dist = require("./dist-CVvwej3J.js");
3
3
  require("node:os");
4
4
  let node_crypto = require("node:crypto");
5
5
  let node_fs = require("node:fs");
@@ -1,4 +1,4 @@
1
- import { Bn as isSoftwareDecode, In as Fmp4BoxSplitter, Ln as buildFfmpegArgs, Un as errMsg } from "./dist-C56NTN3j.mjs";
1
+ import { Bn as isSoftwareDecode, In as Fmp4BoxSplitter, Ln as buildFfmpegArgs, Un as errMsg } from "./dist-DV6W_qKY.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-M09KjuSx.js");
7
- const require_node = require("../node-C0CzsJ0N.js");
8
- const require_custom_model_catalog = require("../custom-model-catalog-CsHQljey.js");
6
+ const require_dist = require("../dist-CVvwej3J.js");
7
+ const require_node = require("../node-BQ7P2No5.js");
8
+ const require_custom_model_catalog = require("../custom-model-catalog-5IT-gwL2.js");
9
9
  const require_worker_protocol = require("../worker-protocol-DngGEAT2.js");
10
10
  const require_hub_hostname = require("../hub-hostname-DAJXlOgV.js");
11
11
  const require_lazy_sharp = require("../lazy-sharp-BuwKlQLR.js");
@@ -1,6 +1,6 @@
1
- import { $n as defineCustomActions, A as NativeLeaseAdmissionSchema, E as FailureCounters, Er as EventCategory, F as PIPELINE_RAMP, Ft as fuseRecoveredDetections, Gn as BaseAddon, Ht as linkedStepOf, M as NodeBenchRunnerInputSchema, Nt as failureContributionCapability, Q as applyCropClassFloors, Qn as customAction, Sn as rootSuppliesOf, U as ROOT_SUPPLIABLE_STEP_IDS, Un as errMsg, Ut as loadContributionCapability, Yn as MODEL_FORMATS, Z as allowedSuppliedEffect, Zn as createEvent, _ as DEFAULT_DETAIL_CROP_CONVENTION, a as BackgroundRunRegistry, an as planMotionCrops, at as buildBenchStepTree, br as number, bt as deriveRootFaceRefineRect, cn as readRecoveryRecipeForSteps, ft as countRecoverySkips, gr as boolean, hr as array, in as pipelineRunnerCapability, j as NativeLeaseSettingsSchema, lr as nodePin, m as CROP_SUPPLY_SOURCES, mr as _enum, nn as pickNativeLeaseOverride, on as planRecoveryCrops, ot as cameraOwnsMotionViaSensor, pn as remapCropDetections, tn as pickDetailCropConvention, vn as resolveModelBoundSetting, vr as lazy, vt as deriveDetailCropRect, wn as selectRecoveryStep, wr as string, x as DEVICE_RAMP, xn as resolveRootSupply, xr as object, y as DEFAULT_NATIVE_LEASE_SETTINGS, yr as literal } from "../dist-C56NTN3j.mjs";
2
- import { i as NO_COST_CLAIM, t as ChildCostRegistry } from "../node-CdsOgsyN.mjs";
3
- import { a as stepsForElectedPool, c as resolveDefaultDetectionModel, d as localFrameRegistry, f as isSessionDecodeReadGone, i as placeDetailStep, l as macroGateVerdict, m as resolveFrameViewGeometry, p as createSessionDecodeCoordinator, s as resolveDeviceEngine, t as CustomModelCatalog, u as rootObjectGate, v as getStep, y as getStepDefinition } from "../custom-model-catalog-qwNT0qE-.mjs";
1
+ import { $n as defineCustomActions, A as NativeLeaseAdmissionSchema, E as FailureCounters, Er as EventCategory, F as PIPELINE_RAMP, Ft as fuseRecoveredDetections, Gn as BaseAddon, Ht as linkedStepOf, M as NodeBenchRunnerInputSchema, Nt as failureContributionCapability, Q as applyCropClassFloors, Qn as customAction, Sn as rootSuppliesOf, U as ROOT_SUPPLIABLE_STEP_IDS, Un as errMsg, Ut as loadContributionCapability, Yn as MODEL_FORMATS, Z as allowedSuppliedEffect, Zn as createEvent, _ as DEFAULT_DETAIL_CROP_CONVENTION, a as BackgroundRunRegistry, an as planMotionCrops, at as buildBenchStepTree, br as number, bt as deriveRootFaceRefineRect, cn as readRecoveryRecipeForSteps, ft as countRecoverySkips, gr as boolean, hr as array, in as pipelineRunnerCapability, j as NativeLeaseSettingsSchema, lr as nodePin, m as CROP_SUPPLY_SOURCES, mr as _enum, nn as pickNativeLeaseOverride, on as planRecoveryCrops, ot as cameraOwnsMotionViaSensor, pn as remapCropDetections, tn as pickDetailCropConvention, vn as resolveModelBoundSetting, vr as lazy, vt as deriveDetailCropRect, wn as selectRecoveryStep, wr as string, x as DEVICE_RAMP, xn as resolveRootSupply, xr as object, y as DEFAULT_NATIVE_LEASE_SETTINGS, yr as literal } from "../dist-DV6W_qKY.mjs";
2
+ import { i as NO_COST_CLAIM, t as ChildCostRegistry } from "../node-KEh_tmT2.mjs";
3
+ import { a as stepsForElectedPool, c as resolveDefaultDetectionModel, d as localFrameRegistry, f as isSessionDecodeReadGone, i as placeDetailStep, l as macroGateVerdict, m as resolveFrameViewGeometry, p as createSessionDecodeCoordinator, s as resolveDeviceEngine, t as CustomModelCatalog, u as rootObjectGate, v as getStep, y as getStepDefinition } from "../custom-model-catalog-DLv2FLul.mjs";
4
4
  import { i as SessionHwaccelSource } from "../worker-protocol-_avq7y8O.mjs";
5
5
  import { t as resolveHubHostname } from "../hub-hostname-cCknRYKj.mjs";
6
6
  import { t as getSharp } from "../lazy-sharp-DXsqwpph.mjs";
@@ -1,5 +1,5 @@
1
1
  const require_chunk = require("./chunk-emK7D4bc.js");
2
- const require_dist = require("./dist-M09KjuSx.js");
2
+ const require_dist = require("./dist-CVvwej3J.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 { $t as parseProcStatus } from "./dist-C56NTN3j.mjs";
1
+ import { $t as parseProcStatus } from "./dist-DV6W_qKY.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-M09KjuSx.js");
7
- const require_node = require("../node-C0CzsJ0N.js");
6
+ const require_dist = require("../dist-CVvwej3J.js");
7
+ const require_node = require("../node-BQ7P2No5.js");
8
8
  const require_hub_hostname = require("../hub-hostname-DAJXlOgV.js");
9
9
  const require_restream_intent = require("../restream-intent-DzrZ_EHP.js");
10
10
  let node_crypto = require("node:crypto");
@@ -1,5 +1,5 @@
1
- import { $n as defineCustomActions, An as stripRetiredBandPreBufferSec, At as evictionPolicyForMode, B as RECORDING_SOURCE_CAMSTACK, Bt as isFirstLevelMacroClass, C as EVENT_PAD_MS, Cr as record, Ct as dominantClipLabels, Dn as storageEvictableCapability, Er as EventCategory, G as RecordingSignalStatusSchema, Gn as BaseAddon, Hn as DeviceType, It as gbToBytes, J as VISIT_MERGE_GAP_MS, Jt as memoizePinnedFfmpeg, Kt as mayReadLocation, Mn as videoclipsCapability, Mt as exportSubjectOf, On as storageOccupancyCapability, P as OpsLogEntrySchema, Qn as customAction, Rn as evaluateSensorEdge, S as EVENT_OWNER_TYPES, Sr as preprocess, St as deviceRemovalHookCapability, T as ExportRecordSchema, Tn as startMoverUnderClearance, Un as errMsg$1, Ut as loadContributionCapability, V as RECORDING_SOURCE_CAMSTACK_ADDON, Vn as DeviceFeature, W as RecordingConfigSchema, Xt as modeMayWrite, Yt as migrateLegacyDeviceSignalConfig, _n as resolveLocationMode, _t as deriveBatteryPresence, bn as resolveRecordingProfiles, br as number, ct as clipExportFailure, dn as recordingExportCapability, dr as selectAssignedProfileSlots, er as defineRecordKinds, et as armRemovalReconcile, fn as recordingSignalCapability, fr as sleep$1, gr as boolean, hn as resolveCreateExportSubject, hr as array, it as batteryCapability, jt as evictionPolicyOfLocation, kt as eventOverlapsClipWindow, ln as recordingArchiveCapability, lr as nodePin, lt as clipExportFailureOf, mr as _enum, o as BatteryStatusSchema, pr as userError, q as VIDEOCLIPS_MAX_OFFER_BYTES, qt as mayWriteToLocation, rr as hydrateSchema, s as CLIP_BROKER_PACED_RATES, un as recordingCapability, v as DEFAULT_EVENTS_BAND_BUFFER_SEC, wr as string, xr as object, yt as deriveRecordingMode, z as RECORDING_EXPORT_MAX_READ_BYTES } from "../dist-C56NTN3j.mjs";
2
- import { i as NO_COST_CLAIM, o as physicalRootOf, t as ChildCostRegistry } from "../node-CdsOgsyN.mjs";
1
+ import { $n as defineCustomActions, An as stripRetiredBandPreBufferSec, At as evictionPolicyForMode, B as RECORDING_SOURCE_CAMSTACK, Bt as isFirstLevelMacroClass, C as EVENT_PAD_MS, Cr as record, Ct as dominantClipLabels, Dn as storageEvictableCapability, Er as EventCategory, G as RecordingSignalStatusSchema, Gn as BaseAddon, Hn as DeviceType, It as gbToBytes, J as VISIT_MERGE_GAP_MS, Jt as memoizePinnedFfmpeg, Kt as mayReadLocation, Mn as videoclipsCapability, Mt as exportSubjectOf, On as storageOccupancyCapability, P as OpsLogEntrySchema, Qn as customAction, Rn as evaluateSensorEdge, S as EVENT_OWNER_TYPES, Sr as preprocess, St as deviceRemovalHookCapability, T as ExportRecordSchema, Tn as startMoverUnderClearance, Un as errMsg$1, Ut as loadContributionCapability, V as RECORDING_SOURCE_CAMSTACK_ADDON, Vn as DeviceFeature, W as RecordingConfigSchema, Xt as modeMayWrite, Yt as migrateLegacyDeviceSignalConfig, _n as resolveLocationMode, _t as deriveBatteryPresence, bn as resolveRecordingProfiles, br as number, ct as clipExportFailure, dn as recordingExportCapability, dr as selectAssignedProfileSlots, er as defineRecordKinds, et as armRemovalReconcile, fn as recordingSignalCapability, fr as sleep$1, gr as boolean, hn as resolveCreateExportSubject, hr as array, it as batteryCapability, jt as evictionPolicyOfLocation, kt as eventOverlapsClipWindow, ln as recordingArchiveCapability, lr as nodePin, lt as clipExportFailureOf, mr as _enum, o as BatteryStatusSchema, pr as userError, q as VIDEOCLIPS_MAX_OFFER_BYTES, qt as mayWriteToLocation, rr as hydrateSchema, s as CLIP_BROKER_PACED_RATES, un as recordingCapability, v as DEFAULT_EVENTS_BAND_BUFFER_SEC, wr as string, xr as object, yt as deriveRecordingMode, z as RECORDING_EXPORT_MAX_READ_BYTES } from "../dist-DV6W_qKY.mjs";
2
+ import { i as NO_COST_CLAIM, o as physicalRootOf, t as ChildCostRegistry } from "../node-KEh_tmT2.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-DvzCnthK.mjs";
5
5
  import { randomUUID } from "node:crypto";
@@ -1,5 +1,5 @@
1
1
  const require_chunk = require("./chunk-emK7D4bc.js");
2
- const require_dist = require("./dist-M09KjuSx.js");
2
+ const require_dist = require("./dist-CVvwej3J.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 { Un as errMsg } from "./dist-C56NTN3j.mjs";
2
+ import { Un as errMsg } from "./dist-DV6W_qKY.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
- import { a as e, c as t, d as n, f as r, i, l as a, m as o, n as s, o as c, p as l, r as u, s as d, t as f, u as p } from "./_virtual_mf___mfe_internal__addon_stream_broker_widgets__loadShare___mf_0_camstack_mf_1_ui_mf_2_library__loadShare__.js-wSzIkKI-.mjs";
1
+ import { a as e, c as t, d as n, f as r, i, l as a, m as o, n as s, o as c, p as l, r as u, s as d, t as f, u as p } from "./_virtual_mf___mfe_internal__addon_stream_broker_widgets__loadShare___mf_0_camstack_mf_1_ui_mf_2_library__loadShare__.js-BL5-HIQd.mjs";
2
2
  import { a as m, i as h, n as g, o as _, r as v, t as y } from "./_virtual_mf___mfe_internal__addon_stream_broker_widgets__loadShare__react__loadShare__.js-C9j-2lBe.mjs";
3
3
  import { n as b, r as x, t as S } 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 C } from "./_virtual_mf___mfe_internal__addon_stream_broker_widgets__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-inxALjZf.mjs";
4
+ import { t as C } from "./_virtual_mf___mfe_internal__addon_stream_broker_widgets__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-BPnizAbp.mjs";
5
5
  import { n as w, t as T } 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 E = (...e) => e.filter((e, t, n) => !!e && e.trim() !== "" && n.indexOf(e) === t).join(" ").trim(), D = (e) => e.replace(/([a-z0-9])([A-Z])/g, "$1-$2").toLowerCase(), O = (e) => e.replace(/^([A-Z])|[\s-_]+(\w)/g, (e, t, n) => n ? n.toUpperCase() : t.toLowerCase()), k = (e) => {
@@ -3,7 +3,7 @@ import "./dist-CYZr2fwk.mjs";
3
3
  var e = {
4
4
  "@camstack/sdk": {
5
5
  name: "@camstack/sdk",
6
- version: "1.2.153",
6
+ version: "1.2.154",
7
7
  scope: ["default"],
8
8
  loaded: !1,
9
9
  from: "addon_stream_broker_widgets",
@@ -18,7 +18,7 @@ var e = {
18
18
  },
19
19
  "@camstack/types": {
20
20
  name: "@camstack/types",
21
- version: "1.2.424",
21
+ version: "1.2.428",
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.335",
36
+ version: "1.2.337",
37
37
  scope: ["default"],
38
38
  loaded: !1,
39
39
  from: "addon_stream_broker_widgets",