@camstack/ui-library 1.2.56 → 1.2.58

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.
@@ -1,8 +1,10 @@
1
- import { RecordingConfig } from '@camstack/types';
1
+ import { RecordingConfig, CamProfile } from '@camstack/types';
2
2
  interface RecordingSettingsProps {
3
3
  readonly initial: RecordingConfig;
4
+ /** Broker-assigned profile slots for this camera (already deduped). */
5
+ readonly availableProfiles: readonly CamProfile[];
4
6
  readonly saving: boolean;
5
7
  readonly onSave: (config: RecordingConfig) => void;
6
8
  }
7
- export declare function RecordingSettings({ initial, saving, onSave }: RecordingSettingsProps): import("react").JSX.Element;
9
+ export declare function RecordingSettings({ initial, availableProfiles, saving, onSave, }: RecordingSettingsProps): import("react").JSX.Element;
8
10
  export {};
@@ -1077,6 +1077,8 @@ export declare const usePipelineAnalyticsPruneEventsBefore: typeof trpc.pipeline
1077
1077
  export declare const usePipelineAnalyticsPruneTracksBefore: typeof trpc.pipelineAnalytics.pruneTracksBefore.useMutation;
1078
1078
  /** Generated alias around `trpc.pipelineAnalytics.wipeAllAnalytics.useMutation`. */
1079
1079
  export declare const usePipelineAnalyticsWipeAllAnalytics: typeof trpc.pipelineAnalytics.wipeAllAnalytics.useMutation;
1080
+ /** Generated alias around `trpc.pipelineAnalytics.reconcileFromDisk.useMutation`. */
1081
+ export declare const usePipelineAnalyticsReconcileFromDisk: typeof trpc.pipelineAnalytics.reconcileFromDisk.useMutation;
1080
1082
  /** Generated alias around `trpc.pipelineAnalytics.deleteTracks.useMutation`. */
1081
1083
  export declare const usePipelineAnalyticsDeleteTracks: typeof trpc.pipelineAnalytics.deleteTracks.useMutation;
1082
1084
  /** Generated alias around `trpc.pipelineAnalytics.setTrackFlags.useMutation`. */
@@ -1299,6 +1301,10 @@ export declare const usePipelineOrchestratorSetCameraSwitch: typeof trpc.pipelin
1299
1301
  export declare const usePipelineOrchestratorGetCameraStatus: typeof trpc.pipelineOrchestrator.getCameraStatus.useQuery;
1300
1302
  /** Generated alias around `trpc.pipelineOrchestrator.getCameraStatuses.useQuery`. */
1301
1303
  export declare const usePipelineOrchestratorGetCameraStatuses: typeof trpc.pipelineOrchestrator.getCameraStatuses.useQuery;
1304
+ /** Generated alias around `trpc.pipelineOrchestrator.reconcileFromDisk.useMutation`. */
1305
+ export declare const usePipelineOrchestratorReconcileFromDisk: typeof trpc.pipelineOrchestrator.reconcileFromDisk.useMutation;
1306
+ /** Generated alias around `trpc.pipelineOrchestrator.getReconcileFromDiskStatus.useQuery`. */
1307
+ export declare const usePipelineOrchestratorGetReconcileFromDiskStatus: typeof trpc.pipelineOrchestrator.getReconcileFromDiskStatus.useQuery;
1302
1308
  /** Generated alias around `trpc.pipelineOrchestrator.listTemplates.useQuery`. */
1303
1309
  export declare const usePipelineOrchestratorListTemplates: typeof trpc.pipelineOrchestrator.listTemplates.useQuery;
1304
1310
  /** Generated alias around `trpc.pipelineOrchestrator.saveTemplate.useMutation`. */
package/dist/index.cjs CHANGED
@@ -5991,6 +5991,8 @@ var usePipelineAnalyticsPruneEventsBefore = trpc.pipelineAnalytics.pruneEventsBe
5991
5991
  var usePipelineAnalyticsPruneTracksBefore = trpc.pipelineAnalytics.pruneTracksBefore.useMutation;
5992
5992
  /** Generated alias around `trpc.pipelineAnalytics.wipeAllAnalytics.useMutation`. */
5993
5993
  var usePipelineAnalyticsWipeAllAnalytics = trpc.pipelineAnalytics.wipeAllAnalytics.useMutation;
5994
+ /** Generated alias around `trpc.pipelineAnalytics.reconcileFromDisk.useMutation`. */
5995
+ var usePipelineAnalyticsReconcileFromDisk = trpc.pipelineAnalytics.reconcileFromDisk.useMutation;
5994
5996
  /** Generated alias around `trpc.pipelineAnalytics.deleteTracks.useMutation`. */
5995
5997
  var usePipelineAnalyticsDeleteTracks = trpc.pipelineAnalytics.deleteTracks.useMutation;
5996
5998
  /** Generated alias around `trpc.pipelineAnalytics.setTrackFlags.useMutation`. */
@@ -6213,6 +6215,10 @@ var usePipelineOrchestratorSetCameraSwitch = trpc.pipelineOrchestrator.setCamera
6213
6215
  var usePipelineOrchestratorGetCameraStatus = trpc.pipelineOrchestrator.getCameraStatus.useQuery;
6214
6216
  /** Generated alias around `trpc.pipelineOrchestrator.getCameraStatuses.useQuery`. */
6215
6217
  var usePipelineOrchestratorGetCameraStatuses = trpc.pipelineOrchestrator.getCameraStatuses.useQuery;
6218
+ /** Generated alias around `trpc.pipelineOrchestrator.reconcileFromDisk.useMutation`. */
6219
+ var usePipelineOrchestratorReconcileFromDisk = trpc.pipelineOrchestrator.reconcileFromDisk.useMutation;
6220
+ /** Generated alias around `trpc.pipelineOrchestrator.getReconcileFromDiskStatus.useQuery`. */
6221
+ var usePipelineOrchestratorGetReconcileFromDiskStatus = trpc.pipelineOrchestrator.getReconcileFromDiskStatus.useQuery;
6216
6222
  /** Generated alias around `trpc.pipelineOrchestrator.listTemplates.useQuery`. */
6217
6223
  var usePipelineOrchestratorListTemplates = trpc.pipelineOrchestrator.listTemplates.useQuery;
6218
6224
  /** Generated alias around `trpc.pipelineOrchestrator.saveTemplate.useMutation`. */
@@ -16152,65 +16158,6 @@ function withBandAt(bands, index, patch) {
16152
16158
  function removeBandAt(bands, index) {
16153
16159
  return bands.filter((_, i) => i !== index);
16154
16160
  }
16155
- /** Does this band cover the whole week, all day? (the Base-tab shape) */
16156
- function isAlwaysBand(band) {
16157
- return (band.days.length === 0 || ALL_WEEKDAYS.every((d) => band.days.includes(d))) && band.start === "00:00" && band.end === "23:59";
16158
- }
16159
- /**
16160
- * A config is "advanced" when its bands cannot be expressed by the Base tab —
16161
- * i.e. more than one band, or a single band restricted in time or weekday. Such
16162
- * a config opens directly in the Advanced band table so nothing is silently
16163
- * flattened by the simpler form.
16164
- */
16165
- function isAdvancedConfig(cfg) {
16166
- if (cfg.bands.length > 1) return true;
16167
- const [only] = cfg.bands;
16168
- return only !== void 0 && !isAlwaysBand(only);
16169
- }
16170
- /**
16171
- * Read a persisted config into the Basic form state. `mode` is DERIVED from the
16172
- * bands by the same function the recorder stamps `config.mode` with; the
16173
- * `events` parameters come from the first events band, so re-opening the form
16174
- * shows what is actually recorded.
16175
- */
16176
- function formStateFromConfig(cfg) {
16177
- const eventsBand = cfg.bands.find((band) => band.mode === "events");
16178
- return {
16179
- mode: (0, _camstack_types.deriveRecordingMode)(cfg),
16180
- profiles: cfg.profiles,
16181
- segmentSeconds: cfg.segmentSeconds,
16182
- triggers: eventsBand?.triggers ?? {},
16183
- preBufferSec: eventsBand?.preBufferSec,
16184
- postBufferSec: eventsBand?.postBufferSec,
16185
- retention: cfg.retention,
16186
- scrubThumbnails: cfg.scrubThumbnails
16187
- };
16188
- }
16189
- /**
16190
- * Serialize the Basic form state to the wire config: one always-on band of the
16191
- * chosen mode, none when `off`. `enabled` follows the mode; `mode` itself is
16192
- * NOT sent — the recorder stamps it as the derived summary of the bands.
16193
- */
16194
- function configFromFormState(state) {
16195
- return {
16196
- enabled: state.mode !== "off",
16197
- bands: bandsFromFormState(state),
16198
- profiles: state.profiles ? [...state.profiles] : void 0,
16199
- segmentSeconds: state.segmentSeconds,
16200
- retention: state.retention,
16201
- scrubThumbnails: state.scrubThumbnails
16202
- };
16203
- }
16204
- /** The Base tab's bands: one always-on band of the chosen mode (none = off). */
16205
- function bandsFromFormState(state) {
16206
- if (state.mode === "off") return [];
16207
- if (state.mode === "continuous") return [alwaysBand("continuous")];
16208
- return [alwaysBand("events", {
16209
- ...Object.keys(state.triggers).length > 0 ? { triggers: state.triggers } : {},
16210
- ...state.preBufferSec !== void 0 ? { preBufferSec: state.preBufferSec } : {},
16211
- ...state.postBufferSec !== void 0 ? { postBufferSec: state.postBufferSec } : {}
16212
- })];
16213
- }
16214
16161
  //#endregion
16215
16162
  //#region src/composites/cap-settings/RecordingBandsEditor.tsx
16216
16163
  /** Weekday chips in display order (Mon→Sun); value is `Date.getDay()` (0=Sun). */
@@ -16419,11 +16366,6 @@ function BandRow({ band, onChange, onRemove }) {
16419
16366
  }
16420
16367
  //#endregion
16421
16368
  //#region src/composites/cap-settings/RecordingSettings.tsx
16422
- var PROFILES = [
16423
- "high",
16424
- "mid",
16425
- "low"
16426
- ];
16427
16369
  var MODES = [
16428
16370
  {
16429
16371
  value: "off",
@@ -16438,9 +16380,7 @@ var MODES = [
16438
16380
  label: "Continuous"
16439
16381
  }
16440
16382
  ];
16441
- function RecordingSettings({ initial, saving, onSave }) {
16442
- const [tab, setTab] = (0, react$1.useState)(isAdvancedConfig(initial) ? "advanced" : "base");
16443
- const [base, setBase] = (0, react$1.useState)(formStateFromConfig(initial));
16383
+ function RecordingSettings({ initial, availableProfiles, saving, onSave }) {
16444
16384
  const [bands, setBands] = (0, react$1.useState)([...initial.bands]);
16445
16385
  const [common, setCommon] = (0, react$1.useState)({
16446
16386
  profiles: initial.profiles,
@@ -16456,198 +16396,85 @@ function RecordingSettings({ initial, saving, onSave }) {
16456
16396
  }
16457
16397
  });
16458
16398
  const numOrUndef = (v) => v === "" ? void 0 : Number(v);
16459
- const toggleProfile = (p) => {
16460
- const cur = common.profiles ?? [...PROFILES];
16461
- const next = cur.includes(p) ? cur.filter((x) => x !== p) : [...cur, p];
16399
+ const derivedMode = (0, _camstack_types.deriveRecordingMode)({
16400
+ enabled: bands.length > 0,
16401
+ bands
16402
+ });
16403
+ const selectedProfiles = (0, _camstack_types.resolveRecordingProfiles)(availableProfiles, common.profiles);
16404
+ const toggleProfile = (profile) => {
16405
+ const next = selectedProfiles.includes(profile) ? selectedProfiles.filter((x) => x !== profile) : [...selectedProfiles, profile];
16462
16406
  setCommon({
16463
16407
  ...common,
16464
16408
  profiles: next.length ? next : void 0
16465
16409
  });
16466
16410
  };
16467
- const setTriggers = (patch) => setBase({
16468
- ...base,
16469
- triggers: {
16470
- ...base.triggers,
16471
- ...patch
16411
+ const setMode = (mode) => {
16412
+ if (mode === "off") {
16413
+ setBands([]);
16414
+ return;
16472
16415
  }
16473
- });
16474
- const switchTab = (next) => {
16475
- if (next === "advanced") setBands(bandsFromFormState(base));
16476
- else setBase(formStateFromConfig({
16477
- enabled: bands.length > 0,
16478
- bands
16479
- }));
16480
- setTab(next);
16416
+ if (mode === derivedMode) return;
16417
+ setBands([alwaysBand(mode)]);
16481
16418
  };
16482
16419
  const handleSave = () => {
16483
- const shared = {
16484
- profiles: common.profiles ? [...common.profiles] : void 0,
16485
- segmentSeconds: common.segmentSeconds,
16486
- retention: common.retention
16487
- };
16488
- if (tab === "base") onSave({
16489
- ...configFromFormState({
16490
- ...base,
16491
- ...shared
16492
- }),
16493
- ...shared
16494
- });
16495
- else onSave({
16420
+ const profiles = availableProfiles.length > 0 ? (0, _camstack_types.resolveRecordingProfiles)(availableProfiles, common.profiles) : common.profiles ? [...common.profiles] : void 0;
16421
+ onSave({
16496
16422
  enabled: bands.length > 0,
16497
16423
  bands,
16498
- ...shared
16424
+ ...profiles !== void 0 ? { profiles } : {},
16425
+ segmentSeconds: common.segmentSeconds,
16426
+ retention: common.retention
16499
16427
  });
16500
16428
  };
16429
+ const visibleProfiles = _camstack_types.CAM_PROFILE_ORDER.filter((p) => availableProfiles.includes(p));
16501
16430
  return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
16502
16431
  className: "space-y-4",
16503
16432
  children: [
16504
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
16505
- className: "flex gap-1 text-xs",
16506
- children: ["base", "advanced"].map((t) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
16433
+ /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
16434
+ className: "flex items-center gap-2 text-xs",
16435
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
16436
+ className: "text-foreground-subtle",
16437
+ children: "Mode:"
16438
+ }), MODES.map((m) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
16507
16439
  type: "button",
16508
- onClick: () => switchTab(t),
16509
- className: `rounded px-2.5 py-1 ${tab === t ? "bg-primary text-primary-foreground" : "bg-surface-hover text-foreground-subtle"}`,
16510
- children: t === "base" ? "Base" : "Advanced (bands)"
16511
- }, t))
16512
- }),
16513
- tab === "base" ? /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
16514
- className: "space-y-4",
16515
- children: [
16516
- /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
16517
- className: "flex items-center gap-2 text-xs",
16518
- children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
16519
- className: "text-foreground-subtle",
16520
- children: "Mode:"
16521
- }), MODES.map((m) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
16522
- type: "button",
16523
- onClick: () => setBase({
16524
- ...base,
16525
- mode: m.value
16526
- }),
16527
- className: `rounded px-2.5 py-1 ${base.mode === m.value ? "bg-primary text-primary-foreground" : "bg-surface-hover text-foreground-subtle"}`,
16528
- children: m.label
16529
- }, m.value))]
16530
- }),
16531
- base.mode !== "off" ? /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("p", {
16532
- className: "text-[11px] text-foreground-subtle",
16533
- children: [
16534
- "Records 24/7. Use ",
16535
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
16536
- className: "font-medium",
16537
- children: "Advanced (bands)"
16538
- }),
16539
- " to restrict hours or weekdays, or to mix continuous and event windows."
16540
- ]
16541
- }) : null,
16542
- base.mode === "events" ? /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
16543
- className: "space-y-2",
16544
- children: [
16545
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
16546
- className: "text-[11px] font-semibold uppercase tracking-wider text-foreground-subtle",
16547
- children: "Trigger"
16548
- }),
16549
- /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("label", {
16550
- className: "flex items-center gap-2 text-xs",
16551
- children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("input", {
16552
- type: "checkbox",
16553
- checked: base.triggers.motion ?? false,
16554
- onChange: (e) => setTriggers({ motion: e.target.checked ? true : void 0 })
16555
- }), "Motion"]
16556
- }),
16557
- /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("label", {
16558
- className: "flex items-center gap-2 text-xs",
16559
- children: [
16560
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)("input", {
16561
- type: "checkbox",
16562
- checked: base.triggers.audioThresholdDbfs != null,
16563
- onChange: (e) => setTriggers({ audioThresholdDbfs: e.target.checked ? -30 : void 0 })
16564
- }),
16565
- "Audio above threshold",
16566
- base.triggers.audioThresholdDbfs != null ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)("input", {
16567
- type: "number",
16568
- value: base.triggers.audioThresholdDbfs,
16569
- onChange: (e) => setTriggers({ audioThresholdDbfs: numOrUndef(e.target.value) }),
16570
- className: "w-16 rounded-md border border-border bg-background px-1 py-0.5 text-xs"
16571
- }) : null,
16572
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
16573
- className: "text-foreground-subtle",
16574
- children: "dBFS"
16575
- })
16576
- ]
16577
- }),
16578
- /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
16579
- className: "flex flex-wrap items-center gap-3 text-xs",
16580
- children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("label", {
16581
- className: "flex items-center gap-1",
16582
- children: [
16583
- "Pre-buffer",
16584
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)("input", {
16585
- type: "number",
16586
- min: 0,
16587
- value: base.preBufferSec ?? "",
16588
- placeholder: String(_camstack_types.DEFAULT_EVENTS_BAND_BUFFER_SEC.preBufferSec),
16589
- onChange: (e) => setBase({
16590
- ...base,
16591
- preBufferSec: numOrUndef(e.target.value)
16592
- }),
16593
- className: "w-16 rounded-md border border-border bg-background px-1 py-1 text-xs"
16594
- }),
16595
- "s"
16596
- ]
16597
- }), /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("label", {
16598
- className: "flex items-center gap-1",
16599
- children: [
16600
- "Post-buffer",
16601
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)("input", {
16602
- type: "number",
16603
- min: 0,
16604
- value: base.postBufferSec ?? "",
16605
- placeholder: String(_camstack_types.DEFAULT_EVENTS_BAND_BUFFER_SEC.postBufferSec),
16606
- onChange: (e) => setBase({
16607
- ...base,
16608
- postBufferSec: numOrUndef(e.target.value)
16609
- }),
16610
- className: "w-16 rounded-md border border-border bg-background px-1 py-1 text-xs"
16611
- }),
16612
- "s"
16613
- ]
16614
- })]
16615
- })
16616
- ]
16617
- }) : null
16618
- ]
16619
- }) : /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
16620
- className: "space-y-4",
16621
- children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", { children: [
16622
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
16623
- className: "mb-1.5 text-[11px] font-semibold uppercase tracking-wider text-foreground-subtle",
16624
- children: "Recording bands"
16625
- }),
16626
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)(RecordingBandsEditor, {
16627
- bands,
16628
- onChange: setBands
16629
- }),
16630
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", {
16631
- className: "mt-1.5 text-[11px] text-foreground-subtle",
16632
- children: "A band says WHEN to record and HOW. Nothing is recorded outside every band — an empty table means this camera is off."
16633
- })
16634
- ] })
16440
+ "aria-label": `Mode ${m.label}`,
16441
+ onClick: () => setMode(m.value),
16442
+ className: `rounded px-2.5 py-1 ${derivedMode === m.value ? "bg-primary text-primary-foreground" : "bg-surface-hover text-foreground-subtle"}`,
16443
+ children: m.label
16444
+ }, m.value))]
16635
16445
  }),
16446
+ /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", { children: [
16447
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
16448
+ className: "mb-1.5 text-[11px] font-semibold uppercase tracking-wider text-foreground-subtle",
16449
+ children: "Recording bands"
16450
+ }),
16451
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)(RecordingBandsEditor, {
16452
+ bands,
16453
+ onChange: setBands
16454
+ }),
16455
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", {
16456
+ className: "mt-1.5 text-[11px] text-foreground-subtle",
16457
+ children: "A band says WHEN to record and HOW. Nothing is recorded outside every band — an empty table means this camera is off."
16458
+ })
16459
+ ] }),
16636
16460
  /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
16637
16461
  className: "flex flex-wrap items-center gap-4 text-xs",
16638
- children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
16462
+ children: [visibleProfiles.length > 0 ? /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
16639
16463
  className: "flex items-center gap-2",
16640
16464
  children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
16641
16465
  className: "text-foreground-subtle",
16642
16466
  children: "Profiles:"
16643
- }), PROFILES.map((p) => {
16467
+ }), visibleProfiles.map((p) => {
16644
16468
  return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
16645
16469
  type: "button",
16646
16470
  onClick: () => toggleProfile(p),
16647
- className: `rounded px-2 py-1 ${common.profiles == null || common.profiles.includes(p) ? "bg-primary text-primary-foreground" : "bg-surface-hover text-foreground-subtle"}`,
16471
+ className: `rounded px-2 py-1 ${selectedProfiles.includes(p) ? "bg-primary text-primary-foreground" : "bg-surface-hover text-foreground-subtle"}`,
16648
16472
  children: p
16649
16473
  }, p);
16650
16474
  })]
16475
+ }) : /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
16476
+ className: "text-foreground-subtle",
16477
+ children: "No assigned streams to record yet."
16651
16478
  }), /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("label", {
16652
16479
  className: "flex items-center gap-1",
16653
16480
  children: [
@@ -18224,6 +18051,8 @@ function RecordingPanel({ deviceId }) {
18224
18051
  const configQuery = useRecordingGetDeviceConfig({ deviceId });
18225
18052
  const setConfig = useRecordingSetDeviceConfig();
18226
18053
  const rescanStorage = useRecordingRescanStorage();
18054
+ const { data: profileSlots } = useStreamBrokerListAllProfileSlots(void 0, { staleTime: 3e4 });
18055
+ const availableProfiles = (0, react$1.useMemo)(() => (0, _camstack_types.selectAssignedProfileSlots)(profileSlots ?? [], deviceId).map((s) => s.profile), [profileSlots, deviceId]);
18227
18056
  const saveConfig = (config) => {
18228
18057
  setConfig.mutate({
18229
18058
  deviceId,
@@ -18260,10 +18089,9 @@ function RecordingPanel({ deviceId }) {
18260
18089
  children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(WidgetPanel, {
18261
18090
  title: "Settings",
18262
18091
  icon: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Settings, { className: "h-3.5 w-3.5 text-foreground-subtle" }),
18263
- collapsible: true,
18264
- defaultOpen: false,
18265
18092
  children: resolvedConfig ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(RecordingSettings, {
18266
18093
  initial: resolvedConfig,
18094
+ availableProfiles,
18267
18095
  saving: setConfig.isPending,
18268
18096
  onSave: saveConfig
18269
18097
  }, JSON.stringify(resolvedConfig)) : /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
@@ -49715,6 +49543,7 @@ exports.usePipelineAnalyticsPruneEvents = usePipelineAnalyticsPruneEvents;
49715
49543
  exports.usePipelineAnalyticsPruneEventsBefore = usePipelineAnalyticsPruneEventsBefore;
49716
49544
  exports.usePipelineAnalyticsPruneTracksBefore = usePipelineAnalyticsPruneTracksBefore;
49717
49545
  exports.usePipelineAnalyticsRebuildObjectEmbeddings = usePipelineAnalyticsRebuildObjectEmbeddings;
49546
+ exports.usePipelineAnalyticsReconcileFromDisk = usePipelineAnalyticsReconcileFromDisk;
49718
49547
  exports.usePipelineAnalyticsRefreshStorageLocationsForMigration = usePipelineAnalyticsRefreshStorageLocationsForMigration;
49719
49548
  exports.usePipelineAnalyticsRestageRetrainTrack = usePipelineAnalyticsRestageRetrainTrack;
49720
49549
  exports.usePipelineAnalyticsResumeForStorageMigration = usePipelineAnalyticsResumeForStorageMigration;
@@ -49785,10 +49614,12 @@ exports.usePipelineOrchestratorGetNodeInferenceDevices = usePipelineOrchestrator
49785
49614
  exports.usePipelineOrchestratorGetPipelineAssignment = usePipelineOrchestratorGetPipelineAssignment;
49786
49615
  exports.usePipelineOrchestratorGetPipelineAssignments = usePipelineOrchestratorGetPipelineAssignments;
49787
49616
  exports.usePipelineOrchestratorGetPipelineDevicePin = usePipelineOrchestratorGetPipelineDevicePin;
49617
+ exports.usePipelineOrchestratorGetReconcileFromDiskStatus = usePipelineOrchestratorGetReconcileFromDiskStatus;
49788
49618
  exports.usePipelineOrchestratorListAgentSettings = usePipelineOrchestratorListAgentSettings;
49789
49619
  exports.usePipelineOrchestratorListTemplates = usePipelineOrchestratorListTemplates;
49790
49620
  exports.usePipelineOrchestratorPauseForStorageMigration = usePipelineOrchestratorPauseForStorageMigration;
49791
49621
  exports.usePipelineOrchestratorRebalance = usePipelineOrchestratorRebalance;
49622
+ exports.usePipelineOrchestratorReconcileFromDisk = usePipelineOrchestratorReconcileFromDisk;
49792
49623
  exports.usePipelineOrchestratorRemoveAgentSettings = usePipelineOrchestratorRemoveAgentSettings;
49793
49624
  exports.usePipelineOrchestratorResetNodePipelineDefaults = usePipelineOrchestratorResetNodePipelineDefaults;
49794
49625
  exports.usePipelineOrchestratorResolvePipeline = usePipelineOrchestratorResolvePipeline;
package/dist/index.js CHANGED
@@ -13,7 +13,7 @@ import * as __mfHostReactDOMClient from "react-dom/client";
13
13
  import { createRoot } from "react-dom/client";
14
14
  import * as __mfHostTrpcClient from "@trpc/client";
15
15
  import { createTRPCClient, createWSClient, httpLink, splitLink, wsLink } from "@trpc/client";
16
- import { ALL_CAPABILITY_DEFINITIONS, DEFAULT_EVENTS_BAND_BUFFER_SEC, DEFAULT_EVENT_COLOR, DEVICE_TYPE_CONTROL_KIND, DeviceExportStatusSchema, DeviceFeature, DeviceRole, DeviceType, EVENT_TAXONOMY, EventCategory, ExposedDeviceSchema, KNOWN_CAP_NAMES, PET_FEEDER_MANUAL_FEED_MAX, PET_FEEDER_MANUAL_FEED_MIN, RecordingConfigSchema, RecordingStatusSchema, SourceInfoSchema, TIMEZONES, buildModelVariantGroups, canConvertUnit, createDeviceProxy, createLazyTrpcSource, createSliceHandle, deriveRecordingMode, describeModelVariant, findTimezone, resolveDeviceControlKind, resolveVariantModelId, resolveViewableDeviceIds, tryConvertUnit } from "@camstack/types";
16
+ import { ALL_CAPABILITY_DEFINITIONS, CAM_PROFILE_ORDER, DEFAULT_EVENTS_BAND_BUFFER_SEC, DEFAULT_EVENT_COLOR, DEVICE_TYPE_CONTROL_KIND, DeviceExportStatusSchema, DeviceFeature, DeviceRole, DeviceType, EVENT_TAXONOMY, EventCategory, ExposedDeviceSchema, KNOWN_CAP_NAMES, PET_FEEDER_MANUAL_FEED_MAX, PET_FEEDER_MANUAL_FEED_MIN, RecordingConfigSchema, RecordingStatusSchema, SourceInfoSchema, TIMEZONES, buildModelVariantGroups, canConvertUnit, createDeviceProxy, createLazyTrpcSource, createSliceHandle, deriveRecordingMode, describeModelVariant, findTimezone, resolveDeviceControlKind, resolveRecordingProfiles, resolveVariantModelId, resolveViewableDeviceIds, selectAssignedProfileSlots, tryConvertUnit } from "@camstack/types";
17
17
  import { createSystem } from "@camstack/sdk";
18
18
  import { z } from "zod";
19
19
  //#region node_modules/lucide-react/dist/esm/shared/src/utils/mergeClasses.js
@@ -5967,6 +5967,8 @@ var usePipelineAnalyticsPruneEventsBefore = trpc.pipelineAnalytics.pruneEventsBe
5967
5967
  var usePipelineAnalyticsPruneTracksBefore = trpc.pipelineAnalytics.pruneTracksBefore.useMutation;
5968
5968
  /** Generated alias around `trpc.pipelineAnalytics.wipeAllAnalytics.useMutation`. */
5969
5969
  var usePipelineAnalyticsWipeAllAnalytics = trpc.pipelineAnalytics.wipeAllAnalytics.useMutation;
5970
+ /** Generated alias around `trpc.pipelineAnalytics.reconcileFromDisk.useMutation`. */
5971
+ var usePipelineAnalyticsReconcileFromDisk = trpc.pipelineAnalytics.reconcileFromDisk.useMutation;
5970
5972
  /** Generated alias around `trpc.pipelineAnalytics.deleteTracks.useMutation`. */
5971
5973
  var usePipelineAnalyticsDeleteTracks = trpc.pipelineAnalytics.deleteTracks.useMutation;
5972
5974
  /** Generated alias around `trpc.pipelineAnalytics.setTrackFlags.useMutation`. */
@@ -6189,6 +6191,10 @@ var usePipelineOrchestratorSetCameraSwitch = trpc.pipelineOrchestrator.setCamera
6189
6191
  var usePipelineOrchestratorGetCameraStatus = trpc.pipelineOrchestrator.getCameraStatus.useQuery;
6190
6192
  /** Generated alias around `trpc.pipelineOrchestrator.getCameraStatuses.useQuery`. */
6191
6193
  var usePipelineOrchestratorGetCameraStatuses = trpc.pipelineOrchestrator.getCameraStatuses.useQuery;
6194
+ /** Generated alias around `trpc.pipelineOrchestrator.reconcileFromDisk.useMutation`. */
6195
+ var usePipelineOrchestratorReconcileFromDisk = trpc.pipelineOrchestrator.reconcileFromDisk.useMutation;
6196
+ /** Generated alias around `trpc.pipelineOrchestrator.getReconcileFromDiskStatus.useQuery`. */
6197
+ var usePipelineOrchestratorGetReconcileFromDiskStatus = trpc.pipelineOrchestrator.getReconcileFromDiskStatus.useQuery;
6192
6198
  /** Generated alias around `trpc.pipelineOrchestrator.listTemplates.useQuery`. */
6193
6199
  var usePipelineOrchestratorListTemplates = trpc.pipelineOrchestrator.listTemplates.useQuery;
6194
6200
  /** Generated alias around `trpc.pipelineOrchestrator.saveTemplate.useMutation`. */
@@ -16128,65 +16134,6 @@ function withBandAt(bands, index, patch) {
16128
16134
  function removeBandAt(bands, index) {
16129
16135
  return bands.filter((_, i) => i !== index);
16130
16136
  }
16131
- /** Does this band cover the whole week, all day? (the Base-tab shape) */
16132
- function isAlwaysBand(band) {
16133
- return (band.days.length === 0 || ALL_WEEKDAYS.every((d) => band.days.includes(d))) && band.start === "00:00" && band.end === "23:59";
16134
- }
16135
- /**
16136
- * A config is "advanced" when its bands cannot be expressed by the Base tab —
16137
- * i.e. more than one band, or a single band restricted in time or weekday. Such
16138
- * a config opens directly in the Advanced band table so nothing is silently
16139
- * flattened by the simpler form.
16140
- */
16141
- function isAdvancedConfig(cfg) {
16142
- if (cfg.bands.length > 1) return true;
16143
- const [only] = cfg.bands;
16144
- return only !== void 0 && !isAlwaysBand(only);
16145
- }
16146
- /**
16147
- * Read a persisted config into the Basic form state. `mode` is DERIVED from the
16148
- * bands by the same function the recorder stamps `config.mode` with; the
16149
- * `events` parameters come from the first events band, so re-opening the form
16150
- * shows what is actually recorded.
16151
- */
16152
- function formStateFromConfig(cfg) {
16153
- const eventsBand = cfg.bands.find((band) => band.mode === "events");
16154
- return {
16155
- mode: deriveRecordingMode(cfg),
16156
- profiles: cfg.profiles,
16157
- segmentSeconds: cfg.segmentSeconds,
16158
- triggers: eventsBand?.triggers ?? {},
16159
- preBufferSec: eventsBand?.preBufferSec,
16160
- postBufferSec: eventsBand?.postBufferSec,
16161
- retention: cfg.retention,
16162
- scrubThumbnails: cfg.scrubThumbnails
16163
- };
16164
- }
16165
- /**
16166
- * Serialize the Basic form state to the wire config: one always-on band of the
16167
- * chosen mode, none when `off`. `enabled` follows the mode; `mode` itself is
16168
- * NOT sent — the recorder stamps it as the derived summary of the bands.
16169
- */
16170
- function configFromFormState(state) {
16171
- return {
16172
- enabled: state.mode !== "off",
16173
- bands: bandsFromFormState(state),
16174
- profiles: state.profiles ? [...state.profiles] : void 0,
16175
- segmentSeconds: state.segmentSeconds,
16176
- retention: state.retention,
16177
- scrubThumbnails: state.scrubThumbnails
16178
- };
16179
- }
16180
- /** The Base tab's bands: one always-on band of the chosen mode (none = off). */
16181
- function bandsFromFormState(state) {
16182
- if (state.mode === "off") return [];
16183
- if (state.mode === "continuous") return [alwaysBand("continuous")];
16184
- return [alwaysBand("events", {
16185
- ...Object.keys(state.triggers).length > 0 ? { triggers: state.triggers } : {},
16186
- ...state.preBufferSec !== void 0 ? { preBufferSec: state.preBufferSec } : {},
16187
- ...state.postBufferSec !== void 0 ? { postBufferSec: state.postBufferSec } : {}
16188
- })];
16189
- }
16190
16137
  //#endregion
16191
16138
  //#region src/composites/cap-settings/RecordingBandsEditor.tsx
16192
16139
  /** Weekday chips in display order (Mon→Sun); value is `Date.getDay()` (0=Sun). */
@@ -16395,11 +16342,6 @@ function BandRow({ band, onChange, onRemove }) {
16395
16342
  }
16396
16343
  //#endregion
16397
16344
  //#region src/composites/cap-settings/RecordingSettings.tsx
16398
- var PROFILES = [
16399
- "high",
16400
- "mid",
16401
- "low"
16402
- ];
16403
16345
  var MODES = [
16404
16346
  {
16405
16347
  value: "off",
@@ -16414,9 +16356,7 @@ var MODES = [
16414
16356
  label: "Continuous"
16415
16357
  }
16416
16358
  ];
16417
- function RecordingSettings({ initial, saving, onSave }) {
16418
- const [tab, setTab] = useState(isAdvancedConfig(initial) ? "advanced" : "base");
16419
- const [base, setBase] = useState(formStateFromConfig(initial));
16359
+ function RecordingSettings({ initial, availableProfiles, saving, onSave }) {
16420
16360
  const [bands, setBands] = useState([...initial.bands]);
16421
16361
  const [common, setCommon] = useState({
16422
16362
  profiles: initial.profiles,
@@ -16432,198 +16372,85 @@ function RecordingSettings({ initial, saving, onSave }) {
16432
16372
  }
16433
16373
  });
16434
16374
  const numOrUndef = (v) => v === "" ? void 0 : Number(v);
16435
- const toggleProfile = (p) => {
16436
- const cur = common.profiles ?? [...PROFILES];
16437
- const next = cur.includes(p) ? cur.filter((x) => x !== p) : [...cur, p];
16375
+ const derivedMode = deriveRecordingMode({
16376
+ enabled: bands.length > 0,
16377
+ bands
16378
+ });
16379
+ const selectedProfiles = resolveRecordingProfiles(availableProfiles, common.profiles);
16380
+ const toggleProfile = (profile) => {
16381
+ const next = selectedProfiles.includes(profile) ? selectedProfiles.filter((x) => x !== profile) : [...selectedProfiles, profile];
16438
16382
  setCommon({
16439
16383
  ...common,
16440
16384
  profiles: next.length ? next : void 0
16441
16385
  });
16442
16386
  };
16443
- const setTriggers = (patch) => setBase({
16444
- ...base,
16445
- triggers: {
16446
- ...base.triggers,
16447
- ...patch
16387
+ const setMode = (mode) => {
16388
+ if (mode === "off") {
16389
+ setBands([]);
16390
+ return;
16448
16391
  }
16449
- });
16450
- const switchTab = (next) => {
16451
- if (next === "advanced") setBands(bandsFromFormState(base));
16452
- else setBase(formStateFromConfig({
16453
- enabled: bands.length > 0,
16454
- bands
16455
- }));
16456
- setTab(next);
16392
+ if (mode === derivedMode) return;
16393
+ setBands([alwaysBand(mode)]);
16457
16394
  };
16458
16395
  const handleSave = () => {
16459
- const shared = {
16460
- profiles: common.profiles ? [...common.profiles] : void 0,
16461
- segmentSeconds: common.segmentSeconds,
16462
- retention: common.retention
16463
- };
16464
- if (tab === "base") onSave({
16465
- ...configFromFormState({
16466
- ...base,
16467
- ...shared
16468
- }),
16469
- ...shared
16470
- });
16471
- else onSave({
16396
+ const profiles = availableProfiles.length > 0 ? resolveRecordingProfiles(availableProfiles, common.profiles) : common.profiles ? [...common.profiles] : void 0;
16397
+ onSave({
16472
16398
  enabled: bands.length > 0,
16473
16399
  bands,
16474
- ...shared
16400
+ ...profiles !== void 0 ? { profiles } : {},
16401
+ segmentSeconds: common.segmentSeconds,
16402
+ retention: common.retention
16475
16403
  });
16476
16404
  };
16405
+ const visibleProfiles = CAM_PROFILE_ORDER.filter((p) => availableProfiles.includes(p));
16477
16406
  return /* @__PURE__ */ jsxs("div", {
16478
16407
  className: "space-y-4",
16479
16408
  children: [
16480
- /* @__PURE__ */ jsx("div", {
16481
- className: "flex gap-1 text-xs",
16482
- children: ["base", "advanced"].map((t) => /* @__PURE__ */ jsx("button", {
16409
+ /* @__PURE__ */ jsxs("div", {
16410
+ className: "flex items-center gap-2 text-xs",
16411
+ children: [/* @__PURE__ */ jsx("span", {
16412
+ className: "text-foreground-subtle",
16413
+ children: "Mode:"
16414
+ }), MODES.map((m) => /* @__PURE__ */ jsx("button", {
16483
16415
  type: "button",
16484
- onClick: () => switchTab(t),
16485
- className: `rounded px-2.5 py-1 ${tab === t ? "bg-primary text-primary-foreground" : "bg-surface-hover text-foreground-subtle"}`,
16486
- children: t === "base" ? "Base" : "Advanced (bands)"
16487
- }, t))
16488
- }),
16489
- tab === "base" ? /* @__PURE__ */ jsxs("div", {
16490
- className: "space-y-4",
16491
- children: [
16492
- /* @__PURE__ */ jsxs("div", {
16493
- className: "flex items-center gap-2 text-xs",
16494
- children: [/* @__PURE__ */ jsx("span", {
16495
- className: "text-foreground-subtle",
16496
- children: "Mode:"
16497
- }), MODES.map((m) => /* @__PURE__ */ jsx("button", {
16498
- type: "button",
16499
- onClick: () => setBase({
16500
- ...base,
16501
- mode: m.value
16502
- }),
16503
- className: `rounded px-2.5 py-1 ${base.mode === m.value ? "bg-primary text-primary-foreground" : "bg-surface-hover text-foreground-subtle"}`,
16504
- children: m.label
16505
- }, m.value))]
16506
- }),
16507
- base.mode !== "off" ? /* @__PURE__ */ jsxs("p", {
16508
- className: "text-[11px] text-foreground-subtle",
16509
- children: [
16510
- "Records 24/7. Use ",
16511
- /* @__PURE__ */ jsx("span", {
16512
- className: "font-medium",
16513
- children: "Advanced (bands)"
16514
- }),
16515
- " to restrict hours or weekdays, or to mix continuous and event windows."
16516
- ]
16517
- }) : null,
16518
- base.mode === "events" ? /* @__PURE__ */ jsxs("div", {
16519
- className: "space-y-2",
16520
- children: [
16521
- /* @__PURE__ */ jsx("div", {
16522
- className: "text-[11px] font-semibold uppercase tracking-wider text-foreground-subtle",
16523
- children: "Trigger"
16524
- }),
16525
- /* @__PURE__ */ jsxs("label", {
16526
- className: "flex items-center gap-2 text-xs",
16527
- children: [/* @__PURE__ */ jsx("input", {
16528
- type: "checkbox",
16529
- checked: base.triggers.motion ?? false,
16530
- onChange: (e) => setTriggers({ motion: e.target.checked ? true : void 0 })
16531
- }), "Motion"]
16532
- }),
16533
- /* @__PURE__ */ jsxs("label", {
16534
- className: "flex items-center gap-2 text-xs",
16535
- children: [
16536
- /* @__PURE__ */ jsx("input", {
16537
- type: "checkbox",
16538
- checked: base.triggers.audioThresholdDbfs != null,
16539
- onChange: (e) => setTriggers({ audioThresholdDbfs: e.target.checked ? -30 : void 0 })
16540
- }),
16541
- "Audio above threshold",
16542
- base.triggers.audioThresholdDbfs != null ? /* @__PURE__ */ jsx("input", {
16543
- type: "number",
16544
- value: base.triggers.audioThresholdDbfs,
16545
- onChange: (e) => setTriggers({ audioThresholdDbfs: numOrUndef(e.target.value) }),
16546
- className: "w-16 rounded-md border border-border bg-background px-1 py-0.5 text-xs"
16547
- }) : null,
16548
- /* @__PURE__ */ jsx("span", {
16549
- className: "text-foreground-subtle",
16550
- children: "dBFS"
16551
- })
16552
- ]
16553
- }),
16554
- /* @__PURE__ */ jsxs("div", {
16555
- className: "flex flex-wrap items-center gap-3 text-xs",
16556
- children: [/* @__PURE__ */ jsxs("label", {
16557
- className: "flex items-center gap-1",
16558
- children: [
16559
- "Pre-buffer",
16560
- /* @__PURE__ */ jsx("input", {
16561
- type: "number",
16562
- min: 0,
16563
- value: base.preBufferSec ?? "",
16564
- placeholder: String(DEFAULT_EVENTS_BAND_BUFFER_SEC.preBufferSec),
16565
- onChange: (e) => setBase({
16566
- ...base,
16567
- preBufferSec: numOrUndef(e.target.value)
16568
- }),
16569
- className: "w-16 rounded-md border border-border bg-background px-1 py-1 text-xs"
16570
- }),
16571
- "s"
16572
- ]
16573
- }), /* @__PURE__ */ jsxs("label", {
16574
- className: "flex items-center gap-1",
16575
- children: [
16576
- "Post-buffer",
16577
- /* @__PURE__ */ jsx("input", {
16578
- type: "number",
16579
- min: 0,
16580
- value: base.postBufferSec ?? "",
16581
- placeholder: String(DEFAULT_EVENTS_BAND_BUFFER_SEC.postBufferSec),
16582
- onChange: (e) => setBase({
16583
- ...base,
16584
- postBufferSec: numOrUndef(e.target.value)
16585
- }),
16586
- className: "w-16 rounded-md border border-border bg-background px-1 py-1 text-xs"
16587
- }),
16588
- "s"
16589
- ]
16590
- })]
16591
- })
16592
- ]
16593
- }) : null
16594
- ]
16595
- }) : /* @__PURE__ */ jsx("div", {
16596
- className: "space-y-4",
16597
- children: /* @__PURE__ */ jsxs("div", { children: [
16598
- /* @__PURE__ */ jsx("div", {
16599
- className: "mb-1.5 text-[11px] font-semibold uppercase tracking-wider text-foreground-subtle",
16600
- children: "Recording bands"
16601
- }),
16602
- /* @__PURE__ */ jsx(RecordingBandsEditor, {
16603
- bands,
16604
- onChange: setBands
16605
- }),
16606
- /* @__PURE__ */ jsx("p", {
16607
- className: "mt-1.5 text-[11px] text-foreground-subtle",
16608
- children: "A band says WHEN to record and HOW. Nothing is recorded outside every band — an empty table means this camera is off."
16609
- })
16610
- ] })
16416
+ "aria-label": `Mode ${m.label}`,
16417
+ onClick: () => setMode(m.value),
16418
+ className: `rounded px-2.5 py-1 ${derivedMode === m.value ? "bg-primary text-primary-foreground" : "bg-surface-hover text-foreground-subtle"}`,
16419
+ children: m.label
16420
+ }, m.value))]
16611
16421
  }),
16422
+ /* @__PURE__ */ jsxs("div", { children: [
16423
+ /* @__PURE__ */ jsx("div", {
16424
+ className: "mb-1.5 text-[11px] font-semibold uppercase tracking-wider text-foreground-subtle",
16425
+ children: "Recording bands"
16426
+ }),
16427
+ /* @__PURE__ */ jsx(RecordingBandsEditor, {
16428
+ bands,
16429
+ onChange: setBands
16430
+ }),
16431
+ /* @__PURE__ */ jsx("p", {
16432
+ className: "mt-1.5 text-[11px] text-foreground-subtle",
16433
+ children: "A band says WHEN to record and HOW. Nothing is recorded outside every band — an empty table means this camera is off."
16434
+ })
16435
+ ] }),
16612
16436
  /* @__PURE__ */ jsxs("div", {
16613
16437
  className: "flex flex-wrap items-center gap-4 text-xs",
16614
- children: [/* @__PURE__ */ jsxs("div", {
16438
+ children: [visibleProfiles.length > 0 ? /* @__PURE__ */ jsxs("div", {
16615
16439
  className: "flex items-center gap-2",
16616
16440
  children: [/* @__PURE__ */ jsx("span", {
16617
16441
  className: "text-foreground-subtle",
16618
16442
  children: "Profiles:"
16619
- }), PROFILES.map((p) => {
16443
+ }), visibleProfiles.map((p) => {
16620
16444
  return /* @__PURE__ */ jsx("button", {
16621
16445
  type: "button",
16622
16446
  onClick: () => toggleProfile(p),
16623
- className: `rounded px-2 py-1 ${common.profiles == null || common.profiles.includes(p) ? "bg-primary text-primary-foreground" : "bg-surface-hover text-foreground-subtle"}`,
16447
+ className: `rounded px-2 py-1 ${selectedProfiles.includes(p) ? "bg-primary text-primary-foreground" : "bg-surface-hover text-foreground-subtle"}`,
16624
16448
  children: p
16625
16449
  }, p);
16626
16450
  })]
16451
+ }) : /* @__PURE__ */ jsx("span", {
16452
+ className: "text-foreground-subtle",
16453
+ children: "No assigned streams to record yet."
16627
16454
  }), /* @__PURE__ */ jsxs("label", {
16628
16455
  className: "flex items-center gap-1",
16629
16456
  children: [
@@ -18200,6 +18027,8 @@ function RecordingPanel({ deviceId }) {
18200
18027
  const configQuery = useRecordingGetDeviceConfig({ deviceId });
18201
18028
  const setConfig = useRecordingSetDeviceConfig();
18202
18029
  const rescanStorage = useRecordingRescanStorage();
18030
+ const { data: profileSlots } = useStreamBrokerListAllProfileSlots(void 0, { staleTime: 3e4 });
18031
+ const availableProfiles = useMemo(() => selectAssignedProfileSlots(profileSlots ?? [], deviceId).map((s) => s.profile), [profileSlots, deviceId]);
18203
18032
  const saveConfig = (config) => {
18204
18033
  setConfig.mutate({
18205
18034
  deviceId,
@@ -18236,10 +18065,9 @@ function RecordingPanel({ deviceId }) {
18236
18065
  children: [/* @__PURE__ */ jsx(WidgetPanel, {
18237
18066
  title: "Settings",
18238
18067
  icon: /* @__PURE__ */ jsx(Settings, { className: "h-3.5 w-3.5 text-foreground-subtle" }),
18239
- collapsible: true,
18240
- defaultOpen: false,
18241
18068
  children: resolvedConfig ? /* @__PURE__ */ jsx(RecordingSettings, {
18242
18069
  initial: resolvedConfig,
18070
+ availableProfiles,
18243
18071
  saving: setConfig.isPending,
18244
18072
  onSave: saveConfig
18245
18073
  }, JSON.stringify(resolvedConfig)) : /* @__PURE__ */ jsx("div", {
@@ -48724,4 +48552,4 @@ var SceneMonitorEditor = lazy(() => import("./SceneMonitorEditor-d_A4kO-M.js").t
48724
48552
  /** Lazy-wrapped `PrivacyMaskSettings` — code-split off the main bundle. */
48725
48553
  var PrivacyMaskSettings = lazy(() => import("./PrivacyMaskSettings-DNSLc6ww.js").then((m) => ({ default: m.PrivacyMaskSettings })));
48726
48554
  //#endregion
48727
- export { AddonGlobalSettingsForm, AgentStepEditor, AlarmHeroCard, AlarmInlineControl as AlarmPanelInlineControl, AppShell, ArcKnob, AudioClassificationList, AudioLevelWaveform, AudioWaveform, AutomationHeroCard, AutomationInlineControl, AutotrackSection, BTN_COMPACT, BTN_COMPACT_DANGER, BTN_COMPACT_PRIMARY, BTN_COMPACT_WARNING, Badge, BatteryBadge, BottomSheet, Breadcrumb, BrightnessPanel, Button, ButtonControl, ButtonHeroCard, CARD_MODE_MIN_COLUMNS, CENTER, CHIP_ACTIVE, CHIP_BASE, CHIP_INACTIVE, CLASS_COLORS, COLUMN_BREAKPOINT_CLASS, COLUMN_PRIORITY, COMMIT_DEDUPE_TOLERANCE_MS, COMMIT_DEDUPE_WINDOW_MS, CONTROL_CAP_NAMES, CONTROL_FILLS, CameraStreamPlayer, Card, Checkbox, ChildSectionAccordion, ClimatePanel, CodeBlock, CollapsibleCard, ConfigFormBuilder, FormField as ConfigFormField, ConfigSchemaField, ConfirmActionButton, ConfirmDialogProvider, ConsumablesPanel, ContainerChildrenProvider, ContainerPrimaryHero, ControlColumn, ControlHeroCard, ControlInlineControl, ControlPanel, CopyButton, CoverHeroCard, CoverInlineControl, CoverPanel, CustomFieldRenderersProvider, DEFAULT_COLOR, DEVICE_COLUMNS, DEVICE_LIST_PAGE_SIZE_KEY, DEVICE_LIST_PAGE_SIZE_OPTIONS, DEVICE_ROLE_META, DEVICE_TYPE_CONTROL, DEVICE_TYPE_META, DISPLAY_ICON_REGISTRY, DataTable, DetectionCanvas, DetectionOverlay, DetectionResultTree, DevShell, DeviceActivityPanel, DeviceBatchToolbar, DeviceCard, DeviceContextProvider, DeviceExportPanel, DeviceGrid, DeviceItem, DeviceList, DeviceMultiSelectField, DeviceSelectField, DeviceSelectorPicker, DeviceStepMatrix, Dialog, DialogBody, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, DialogTrigger, DiscoveryPanel, DoorbellRecentPanel, Dropdown, DropdownContent, DropdownItem, DropdownTrigger, DummyHeroCard, DummyInline, EVENT_KIND_ICONS, EmptyState, ErrorBox, EventKindGlyph, EventStream, FILL, FanHeroCard, FanInlineControl, FanPanel, FilterBar, FloatingEventStream, FloatingLogStream, FloatingPanel, FormField$1 as FormField, GRID_GAP, GRID_PAIRED, GRID_QUICK_STATS, GripTrack, GroupedModelSelector, HOST_WIDGETS, HlsVideo, HoverZoomImage, HumidifierHeroCard, HumidifierInlineControl, INPUT_COMPACT, IconAction, IconButton, ImageHeroCard, ImageInlineControl, ImageSelector, InferenceConfigSelector, Input, KebabMenu, KeyValueList, LIST_ROW, Label, LawnMowerHeroCard, LawnMowerInlineControl, LightHeroCard, LightInlineControl, LockHeroCard, LockInlineControl, LockPanel, LogStream, LoginForm, MODE_COLOR, MaskShapeCanvas, MediaPlayerHeroCard, MediaPlayerInlineControl, MediaPlayerPanel, MobileDrawer, ModelPicker, MotionZonesSettings, NodeMultiSelectField, NodePicker, NodeSelectField, OfflineBadge, PHASE_CONFIG, PRIORITY, PTZOverlay, PageHeader, PhaseIcon, PipelineBuilder, PipelineRuntimeSelector, PipelineStep, PipelineTreeMatrix, PlayerOverlaysProvider, Popover, PopoverContent, PopoverRowAction, PopoverTrigger, PrimaryChildPicker, PrivacyMaskSettings, ProviderBadge, PtzPanel, QrCode, RECONNECT_POLICY, RECORDED_PLAYBACK_MODES, RIGHT, ROI_AREA_WARN_FRACTION, ROLE_DESCRIPTOR, RadialGauge, RecordedPlaybackProvider, RecordingPanel, ResponseLog, SCENE_CAPTURE_VARIANTS, SECTION_BODY, SECTION_CARD, SECTION_HEADER, SETTING_ROW, SETTING_ROW_LABEL, SETTING_ROW_STACK_BREAKPOINT, SETTING_ROW_VALUE, SETTING_ROW_VALUE_TEXT, SPLIT_PANEL_OUTER, SPLIT_PANEL_SIDE, STACK_GAP, STATE_COLOR, SceneMonitorEditor, ScopePicker, ScriptHeroCard, ScriptInlineControl, ScrollArea, Select, SemanticBadge, SensorHeroCard, SensorInlineControl, SensorValueAtom, Separator, SettingRow, Sidebar, SidebarItem, Skeleton, SlideOverPanel, SlideToggle, SnapshotButton, StatCard, StateValuesStream, StatusBadge, StepTimings, StepTreeMaster, Stepper, StreamBrokerSelector, StreamPanel, Switch, SwitchHeroCard, SwitchInlineControl, SwitchPanel, SystemProvider, TABLE_SCROLL_MAX_H, TEXT_FIELD_LABEL, TEXT_HINT, TEXT_METRIC, TEXT_SECTION_LABEL, TEXT_VALUE, TIMEZONES, Tabs, TabsContent, TabsList, TabsTrigger, TapToggle, ThemeProvider, ThermostatHeroCard, ThermostatInlineControl, TimezoneSelector, Tooltip, TooltipContent, TooltipTrigger, VacuumHeroCard, VacuumInlineControl, ValueReadout, ValveHeroCard, ValveInlineControl, VersionBadge, VodPlaybackProvider, WaterHeaterHeroCard, WaterHeaterInlineControl, WeatherHeroCard, WeatherInlineControl, WidgetMetricCard, WidgetPanel, WidgetRegistryProvider, WidgetSlot, ZoneEditingProvider, ImageOff as a, agentColumnKey, allDeviceTypeFilterOptions, badgeFor, buildStepTreeFromSchema, createLucideIcon as c, childEntityId, childListName, cn, columnsForContext, containerChildToRef, countableDevices, coverHighlight, coverageLine, createSharedContext, createTheme, cursorFractionFor, darkColors, defaultTheme, deriveDeviceKind, describeDeviceSelector, deviceMatchesFilter, deviceOptionLabel, deviceRoleMeta, deviceRoleMetaOf, deviceTypeLabel, deviceTypeMeta, deviceTypeMetaOf, devicesToOptions, ensureMfHostInit, eventKindLabel, filterDeviceOptions, findTimezone, formatControlDateTime, formatLastSeen, formatNumeric, fuzzyMatch, getClassColor, getPhaseVisual, groupAgentColumns, groupChildrenByLayout, hardwareLabel, humanDuration, humidifierTint, Mic as i, initialScrubState, isAbsentProvider, isFieldVisible, lawnMowerActivityMeta, lightColors, loadRemoteBundle, makeScrubBridge, metadataEntries, metadataString, mirror, mountAddonPage, Square as n, nextReconnectAction, nextSort, normalizeForSearch, EyeOff as o, overrideEntityIdFromLink, parseRecordedServerMessage, providerIcons, RotateCcw as r, resolveContainerPrimary, resolveControlAlign, resolveDeviceControl, resolveDisplayIcon, resolveEffectiveDefaultModel, resolveEffectiveStepModel, resolveEventKindIcon, resolvePrimaryChild, resolveSensorDisplay, resolveStepDefaultModel, resolveTableLayout, roiTooLarge, Camera as s, scrubReducer, selectedDeviceOptions, serializeRecordedCommand, shouldCommit, shouldEmit, shouldUseSingleNode, sortRows, statusIcons, statusLine, stepHasModelForFormat, stepModelOptions, stripParentNamePrefix, Trash2 as t, tabForSelector, tankAlert, themeToCss, trpc, useAccessoriesGetStatus, useAccessoriesSetChildHidden, useAddonPagesListPages, useAddonSettingsGetDeviceSettings, useAddonSettingsGetGlobalSettings, useAddonSettingsUpdateDeviceSettings, useAddonSettingsUpdateGlobalSettings, useAddonWidgetsListWidgets, useAddonsApplyAutoUpdateToAll, useAddonsCancelJob, useAddonsCustom, useAddonsForceRefresh, useAddonsGetAddonAutoUpdate, useAddonsGetAutoUpdateSettings, useAddonsGetJob, useAddonsGetLastRestart, useAddonsGetLogs, useAddonsGetVersions, useAddonsInstallFromWorkspace, useAddonsInstallPackage, useAddonsIsWorkspaceAvailable, useAddonsList, useAddonsListCapabilityProviders, useAddonsListFrameworkPackages, useAddonsListJobs, useAddonsListPackages, useAddonsListUpdates, useAddonsListWorkspacePackages, useAddonsOnAddonLogs, useAddonsReloadPackages, useAddonsRestartAddon, useAddonsRestartServer, useAddonsRetryLoad, useAddonsRollbackPackage, useAddonsSearchAvailable, useAddonsSetAddonAutoUpdate, useAddonsSetAutoUpdateSettings, useAddonsSetCapabilityProviderEnabled, useAddonsStartJob, useAddonsUninstallPackage, useAddonsUpdatePackage, useAirQualitySensorGetStatus, useAlarmPanelArm, useAlarmPanelDisarm, useAlarmPanelGetStatus, useAlarmPanelTrigger, useAlertsDismiss, useAlertsEmit, useAlertsGetUnreadCount, useAlertsList, useAlertsMarkAllRead, useAlertsMarkRead, useAlertsUpdate, useAllWidgets, useAmbientLightSensorGetStatus, useAudioAnalysisApplyDeviceSettingsPatch, useAudioAnalysisGetDeviceLiveContribution, useAudioAnalysisGetDeviceSettingsContribution, useAudioAnalysisResolveDeviceSettings, useAudioAnalyzerAnalyseChunk, useAudioAnalyzerClassify, useAudioAnalyzerDispose, useAudioAnalyzerIsReady, useAudioAnalyzerReprobeAudioEngine, useAudioCodecCanHandle, useAudioCodecCloseSession, useAudioCodecCreateDecodeSession, useAudioCodecCreateEncodeSession, useAudioCodecFlushEncode, useAudioCodecListActiveSessions, useAudioCodecListSupportedCodecs, useAudioCodecPullEncoded, useAudioCodecPullPcm, useAudioCodecPushEncodedFrame, useAudioCodecPushPcm, useAudioMetricsGetCurrentSnapshot, useAudioMetricsGetHistory, useAutomationControlDisable, useAutomationControlEnable, useAutomationControlGetStatus, useAutomationControlTrigger, useBackupDelete, useBackupDeleteSchedule, useBackupGetEntries, useBackupList, useBackupListArchives, useBackupListDestinations, useBackupListLocations, useBackupListSchedules, useBackupPreviewSchedule, useBackupRestore, useBackupTrigger, useBackupUpsertDestinationPolicy, useBackupUpsertSchedule, useBatteryGetStatus, useBatteryWakeForStream, useBinaryGetStatus, useBrightnessGetStatus, useBrightnessSetBrightness, useBrokerAdd, useBrokerGet, useBrokerGetBrokerConfig, useBrokerGetSettings, useBrokerGetSettingsSchema, useBrokerGetState, useBrokerGetStatus, useBrokerList, useBrokerListProviders, useBrokerPublish, useBrokerRemove, useBrokerSetSettings, useBrokerSubscribe, useBrokerTestConnection, useBrokerTestSettings, useBrokerUnsubscribe, useButtonPress, useCameraCredentialsGetCredentials, useCameraCredentialsGetStatus, useCameraPipelineConfigApplyDeviceSettingsPatch, useCameraPipelineConfigGetDeviceLiveContribution, useCameraPipelineConfigGetDeviceSettingsContribution, useCameraStreamsGetBrokerStreams, useCameraStreamsGetCameraStreams, useCameraStreamsGetProfileRtspEntries, useCameraStreamsGetRtspEntries, useCameraStreamsPickStream, useCarbonMonoxideGetStatus, useClimateControlGetStatus, useClimateControlSetFanMode, useClimateControlSetMode, useClimateControlSetPreset, useClimateControlSetSwingHorizontal, useClimateControlSetSwingVertical, useClimateControlSetTarget, useClimateControlSetTargetHumidity, useClimateControlSetTargetRange, useClusterNodes, useColorGetStatus, useColorSetColor, useConfirm, useConnectionTestDescribeTest, useConnectionTestTestSettings, useConnectivityGetStatus, useConsumablesGetStatus, useConsumablesReset, useContactGetStatus, useContainerChildren, useControlGetStatus, useControlSetValue, useCoreBlocksCompile, useCoreBlocksCreate, useCoreBlocksDelete, useCoreBlocksGet, useCoreBlocksGetTypeDefs, useCoreBlocksList, useCoreBlocksRestart, useCoreBlocksSetEnabled, useCoreBlocksUpdate, useCoverClose, useCoverGetStatus, useCoverOpen, useCoverSetPosition, useCoverSetTiltPosition, useCoverStop, useCustomFieldRenderer, useDayNightGetOptions, useDayNightGetStatus, useDayNightSetSettings, useDebouncedString, useDecoderCreateSession, useDecoderDestroySession, useDecoderGetFrame, useDecoderGetInfo, useDecoderGetShmStats, useDecoderGetStats, useDecoderListActiveSessions, useDecoderOpenStream, useDecoderPullFrames, useDecoderPullHandles, useDecoderPushPacket, useDecoderReprobeHwaccel, useDecoderSupportsCodec, useDecoderUpdateConfig, useDetectionPipelineApplyDeviceSettingsPatch, useDetectionPipelineGetDeviceLiveContribution, useDetectionPipelineGetDeviceSettingsContribution, useDevShell, useDevice, useDeviceAdoptionAdopt, useDeviceAdoptionGetCandidate, useDeviceAdoptionGetStatus, useDeviceAdoptionListCandidateFilters, useDeviceAdoptionListCandidates, useDeviceAdoptionRefresh, useDeviceAdoptionRelease, useDeviceAdoptionResync, useDeviceAutotrack, useDeviceBattery, useDeviceCapSlice, useDeviceCapability, useDeviceDetections, useDeviceDiscoveryAdoptDevice, useDeviceDiscoveryGetStatus, useDeviceDiscoveryListDiscovered, useDeviceDiscoveryRefreshDiscovery, useDeviceDiscoveryReleaseDevice, useDeviceExportApplyDeviceSettingsPatch, useDeviceExportExposeDevice, useDeviceExportGetDeviceLiveContribution, useDeviceExportGetDeviceSettingsContribution, useDeviceExportGetStatus, useDeviceExportListExposedDevices, useDeviceExportListSupportedDeviceKinds, useDeviceExportUnexposeDevice, useDeviceId, useDeviceListPageSize, useDeviceManagerAddLocation, useDeviceManagerAdoptDevice, useDeviceManagerAdoptionAdopt, useDeviceManagerAdoptionCancelJob, useDeviceManagerAdoptionListCandidateFilters, useDeviceManagerAdoptionListCandidates, useDeviceManagerAdoptionListJobs, useDeviceManagerAdoptionRefresh, useDeviceManagerAdoptionRelease, useDeviceManagerAdoptionResync, useDeviceManagerAdoptionStartJob, useDeviceManagerAllocateDeviceId, useDeviceManagerApplyDeviceSettingsPatch, useDeviceManagerApplyInitialMeta, useDeviceManagerCreateDevice, useDeviceManagerDisable, useDeviceManagerDiscoverAllProviders, useDeviceManagerDiscoverDevices, useDeviceManagerDiscoverProvider, useDeviceManagerDiscoveryProviders, useDeviceManagerEnable, useDeviceManagerGetAllBindings, useDeviceManagerGetBindings, useDeviceManagerGetChildren, useDeviceManagerGetConfigSchema, useDeviceManagerGetCreationSchema, useDeviceManagerGetDevice, useDeviceManagerGetDeviceAggregate, useDeviceManagerGetDeviceLiveContribution, useDeviceManagerGetDeviceLiveInfoAggregate, useDeviceManagerGetDeviceSettingsAggregate, useDeviceManagerGetDeviceSettingsContribution, useDeviceManagerGetDeviceStatusAggregate, useDeviceManagerGetDeviceStatusAggregateBatch, useDeviceManagerGetLinkedDevices, useDeviceManagerGetRoleDisplayDefaults, useDeviceManagerGetSettingsSchema, useDeviceManagerGetStreamProfileMap, useDeviceManagerGetStreamSources, useDeviceManagerGetWireableFields, useDeviceManagerListAll, useDeviceManagerListBindableCapsForDeviceType, useDeviceManagerListLocations, useDeviceManagerListPersistedByAddon, useDeviceManagerListWrappersForCap, useDeviceManagerLoadConfig, useDeviceManagerLoadMeta, useDeviceManagerLoadRuntimeState, useDeviceManagerPersistConfig, useDeviceManagerProbeStreams, useDeviceManagerProviderCreationType, useDeviceManagerProviderDiscoveryParamsSchema, useDeviceManagerRegisterDevice, useDeviceManagerRemove, useDeviceManagerRemoveByIntegration, useDeviceManagerRemoveDevice, useDeviceManagerRemoveLocation, useDeviceManagerRunDeviceAction, useDeviceManagerSetChildLayout, useDeviceManagerSetDisabled, useDeviceManagerSetDisplay, useDeviceManagerSetIntegrationId, useDeviceManagerSetLinkDeviceId, useDeviceManagerSetLocation, useDeviceManagerSetMetadata, useDeviceManagerSetName, useDeviceManagerSetPrimaryChildEntityId, useDeviceManagerSetRole, useDeviceManagerSetRoleDisplayDefaults, useDeviceManagerSetStreamProfileMap, useDeviceManagerSetType, useDeviceManagerSetWrapperActive, useDeviceManagerTestCreationField, useDeviceManagerTestField, useDeviceManagerUpdateConfig, useDeviceManagerUpdateDeviceField, useDeviceManagerUpdateDeviceFieldsBatch, useDeviceOpsGetConfigEntries, useDeviceOpsGetRawState, useDeviceOpsGetSettingsSchema, useDeviceOpsGetStreamSources, useDeviceOpsRemoveDevice, useDeviceOpsRunAction, useDeviceOpsSetConfig, useDeviceProviderAdoptDiscoveredDevice, useDeviceProviderCreateDevice, useDeviceProviderDiscoverDevices, useDeviceProviderGetChildCreationSchema, useDeviceProviderGetDevices, useDeviceProviderGetDiscoveryParamsSchema, useDeviceProviderGetManualCreationType, useDeviceProviderGetStatus, useDeviceProviderStart, useDeviceProviderStop, useDeviceProviderSupportsDiscovery, useDeviceProviderSupportsManualCreation, useDeviceProviderTestCreationField, useDeviceProxy, useDeviceSnapshot, useDeviceSnapshotImage, useDeviceState, useDeviceStateGetAllSnapshots, useDeviceStateGetCapSlice, useDeviceStateGetSnapshot, useDeviceStateSetCapSlice, useDeviceStateSlice, useDeviceStatusGetStatus, useDeviceWebrtc, useDevices, useDoorbellApplyDeviceSettingsPatch, useDoorbellEvents, useDoorbellGetDeviceLiveContribution, useDoorbellGetDeviceSettingsContribution, useDoorbellGetStatus, useEnumSensorGetStatus, useEventEmitterGetStatus, useEventInvalidation, useEventStreamLatest, useEventStreamMap, useEventsGetEventClipUrl, useEventsGetEventThumbnail, useEventsGetEvents, useFaceGalleryAssignFace, useFaceGalleryAssignFaces, useFaceGalleryCreateIdentity, useFaceGalleryDeleteFace, useFaceGalleryDeleteIdentity, useFaceGalleryGetFaceByTrack, useFaceGalleryGetFaceMedia, useFaceGalleryListIdentities, useFaceGalleryListIdentitySamples, useFaceGalleryListRecentFaces, useFaceGalleryRemoveSample, useFaceGalleryRenameIdentity, useFaceGallerySuggestFaceClusters, useFaceGalleryUnassignFace, useFaceGalleryUnassignFaces, useFanControlGetStatus, useFanControlSetDirection, useFanControlSetOscillating, useFanControlSetPercentage, useFanControlSetPreset, useFeatureProbeGetStatus, useFloodGetStatus, useGasGetStatus, useHumidifierGetStatus, useHumidifierSetMode, useHumidifierSetOn, useHumidifierSetTargetHumidity, useHumiditySensorGetStatus, useImageGetStatus, useImageSettingsGetOptions, useImageSettingsGetStatus, useImageSettingsSetSettings, useIntegrationsCreate, useIntegrationsDelete, useIntegrationsGet, useIntegrationsGetAvailableTypes, useIntegrationsGetByAddonId, useIntegrationsGetSettings, useIntegrationsList, useIntegrationsSetSettings, useIntegrationsTestConnection, useIntegrationsUpdate, useIntercomEndTalkSession, useIntercomGetStatus, useIntercomHandleAnswer, useIntercomPushTalkAudio, useIntercomStartSession, useIntercomStartTalkSession, useIntercomStopSession, useIsMidWidth, useIsMobile, useLawnMowerControlDock, useLawnMowerControlGetStatus, useLawnMowerControlPause, useLawnMowerControlStartMowing, useLiveBuffer, useLiveEvent, useLlmCancel, useLlmDeleteModel, useLlmDeleteProfile, useLlmGenerate, useLlmGenerateVision, useLlmGetDefaults, useLlmGetRuntimeStatus, useLlmGetUsage, useLlmInstallModel, useLlmListModelCatalog, useLlmListModels, useLlmListNodeModels, useLlmListProfileKinds, useLlmListProfiles, useLlmListRuntimeNodes, useLlmResolveModelRef, useLlmSetDefault, useLlmStartRuntime, useLlmStopRuntime, useLlmTestProfile, useLlmUpsertProfile, useLocalNetworkGetAllowedAddresses, useLocalNetworkGetConnectionEndpoints, useLocalNetworkGetNotificationEndpoint, useLocalNetworkGetPreferred, useLocalNetworkList, useLocalNetworkResetAllowlistToBestMatch, useLocalNetworkSetAllowedAddresses, useLocalNetworkSetNotificationEndpoint, useLockControlGetStatus, useLockControlLock, useLockControlOpen, useLockControlUnlock, useMediaPlayerGetStatus, useMediaPlayerNext, useMediaPlayerPause, useMediaPlayerPlay, useMediaPlayerPlayMedia, useMediaPlayerPrevious, useMediaPlayerSeek, useMediaPlayerSelectSource, useMediaPlayerSetMute, useMediaPlayerSetRepeat, useMediaPlayerSetShuffle, useMediaPlayerSetVolume, useMediaPlayerStop, useMeshNetworkGetStatus, useMeshNetworkJoin, useMeshNetworkLeave, useMeshNetworkListPeers, useMeshNetworkLogout, useMeshNetworkStartLogin, useMeshNetworkTestConnection, useMetricsProviderCollectSnapshot, useMetricsProviderDumpHeapSnapshot, useMetricsProviderGetAddonStats, useMetricsProviderGetCached, useMetricsProviderGetCpuTemperature, useMetricsProviderGetCurrent, useMetricsProviderGetDiskSpace, useMetricsProviderGetGpuInfo, useMetricsProviderGetProcessStats, useMetricsProviderKillProcess, useMetricsProviderListAddonInstances, useMetricsProviderListNodeProcesses, useMotionDetectionAnalyze, useMotionDetectionApplyDeviceSettingsPatch, useMotionDetectionGetDeviceLiveContribution, useMotionDetectionGetDeviceSettingsContribution, useMotionDetectionRemoveCamera, useMotionDetectionReset, useMotionGetStatus, useMotionIsDetected, useMotionTriggerGetStatus, useMotionTriggerSetMotionTrigger, useMotionZonesGetOptions, useMotionZonesGetStatus, useMotionZonesSetZone, useMqttBrokerAddBroker, useMqttBrokerGetBrokerConfig, useMqttBrokerGetStatus, useMqttBrokerListBrokers, useMqttBrokerRemoveBroker, useMqttBrokerStartEmbeddedBroker, useMqttBrokerStopEmbeddedBroker, useMqttBrokerTestConnection, useNativeObjectDetectionGetStatus, useNativeObjectDetectionSetEnabled, useNetworkAccessGetEndpoint, useNetworkAccessGetStatus, useNetworkAccessListEndpoints, useNetworkAccessStart, useNetworkAccessStop, useNetworkQualityGetAllStats, useNetworkQualityGetDeviceStats, useNetworkQualityReportClientStats, useNodesClusterAddonStatus, useNodesDeployAddon, useNodesExecuteQuery, useNodesGetCapUsageGraph, useNodesGetNodeAddons, useNodesRenameNode, useNodesRestartAddon, useNodesRestartNode, useNodesRestartProcess, useNodesSetProcessLogLevel, useNodesShutdownNode, useNodesTopology, useNodesUndeployAddon, useNotificationOutputDeleteTarget, useNotificationOutputDiscoverTargets, useNotificationOutputListTargetKinds, useNotificationOutputListTargets, useNotificationOutputSend, useNotificationOutputSetTargetEnabled, useNotificationOutputTestTarget, useNotificationOutputUpsertTarget, useNotificationRulesCancelSnooze, useNotificationRulesCreateRule, useNotificationRulesCreateSnooze, useNotificationRulesDeleteRule, useNotificationRulesGetAlarmConfig, useNotificationRulesGetConditionCatalog, useNotificationRulesGetHistory, useNotificationRulesGetRule, useNotificationRulesListDeviceMutes, useNotificationRulesListRules, useNotificationRulesListSnoozes, useNotificationRulesSetAlarmConfig, useNotificationRulesSetDeviceMuted, useNotificationRulesSetRuleEnabled, useNotificationRulesTestRule, useNotificationRulesUpdateRule, useNotifierCancel, useNotifierGetStatus, useNotifierSend, useNumericSensorGetStatus, useOptimisticSlice, useOptionalSystem, useOptionalWidgetRegistry, useOsdGetStatus, useOsdManagerClearSlotBinding, useOsdManagerCopyDeviceConfiguration, useOsdManagerGetConditionSupport, useOsdManagerGetDeviceOsd, useOsdManagerGetSourceCatalog, useOsdManagerPreviewSlot, useOsdManagerRenderDevice, useOsdManagerSetSlotBinding, useOsdSetOverlay, usePTZ, usePetFeederCallPet, usePetFeederCancelFeed, usePetFeederFeed, usePetFeederGetStatus, usePetFeederMarkFoodReplenished, usePetFeederPlaySound, usePetFeederResetDesiccant, usePetFeederSetChildLock, usePetFeederSetFeedSound, usePetFeederSetIndicatorLight, usePetFeederSetVolume, usePipelineAnalyticsApplyDeviceSettingsPatch, usePipelineAnalyticsCancelStorageMigrationMove, usePipelineAnalyticsClearTracks, usePipelineAnalyticsCompleteRetrainTrack, usePipelineAnalyticsDeleteDeviceEvents, usePipelineAnalyticsDeleteTracks, usePipelineAnalyticsDeselectRetrainFrame, usePipelineAnalyticsGetActiveTracks, usePipelineAnalyticsGetAudioEvents, usePipelineAnalyticsGetDeviceLiveContribution, usePipelineAnalyticsGetDeviceSettingsContribution, usePipelineAnalyticsGetEventDensity, usePipelineAnalyticsGetEventMedia, usePipelineAnalyticsGetEventStoreFootprint, usePipelineAnalyticsGetKeyEvents, usePipelineAnalyticsGetMotionEvents, usePipelineAnalyticsGetObjectEmbeddingRebuildStatus, usePipelineAnalyticsGetObjectEvents, usePipelineAnalyticsGetRetrainExportUrl, usePipelineAnalyticsGetRetrainFrameImage, usePipelineAnalyticsGetSensorEvents, usePipelineAnalyticsGetStorageMigrationMoveStatus, usePipelineAnalyticsGetTrack, usePipelineAnalyticsGetTrackMedia, usePipelineAnalyticsGetTrainingExportSummary, usePipelineAnalyticsGetTrainingExportUrl, usePipelineAnalyticsListEventKinds, usePipelineAnalyticsListEventKindsBatch, usePipelineAnalyticsListOpsLog, usePipelineAnalyticsListRecentTracks, usePipelineAnalyticsListRetrainAnnotations, usePipelineAnalyticsListRetrainFrames, usePipelineAnalyticsListRetrainStaging, usePipelineAnalyticsListTrackMedia, usePipelineAnalyticsListTracks, usePipelineAnalyticsPauseForStorageMigration, usePipelineAnalyticsProposeRetrainAnnotations, usePipelineAnalyticsPruneEvents, usePipelineAnalyticsPruneEventsBefore, usePipelineAnalyticsPruneTracksBefore, usePipelineAnalyticsRebuildObjectEmbeddings, usePipelineAnalyticsRefreshStorageLocationsForMigration, usePipelineAnalyticsRestageRetrainTrack, usePipelineAnalyticsResumeForStorageMigration, usePipelineAnalyticsSaveRetrainAnnotations, usePipelineAnalyticsSearchObjectEvents, usePipelineAnalyticsSelectRetrainFrames, usePipelineAnalyticsSetTrackFlags, usePipelineAnalyticsStartStorageMigrationMove, usePipelineAnalyticsWipeAllAnalytics, usePipelineAnalyticsWipeObjectEmbeddings, usePipelineExecutorCacheFrameInPool, usePipelineExecutorClearDeviceOverrides, usePipelineExecutorDeleteModel, usePipelineExecutorDeleteTemplate, usePipelineExecutorDownloadModel, usePipelineExecutorGetAddonModels, usePipelineExecutorGetAudioCapabilities, usePipelineExecutorGetAvailableEngines, usePipelineExecutorGetCapabilities, usePipelineExecutorGetDefaultSteps, usePipelineExecutorGetDetectionConfigSchema, usePipelineExecutorGetEffectiveTuning, usePipelineExecutorGetEngineProvisioning, usePipelineExecutorGetGlobalPipelineConfig, usePipelineExecutorGetGlobalSteps, usePipelineExecutorGetOrchestratorConfigSchema, usePipelineExecutorGetReferenceAudio, usePipelineExecutorGetReferenceAudioFiles, usePipelineExecutorGetReferenceImage, usePipelineExecutorGetSchema, usePipelineExecutorGetSelectedEngine, usePipelineExecutorGetVideoPipelineSteps, usePipelineExecutorInferCached, usePipelineExecutorKillEngine, usePipelineExecutorListLoadedEngines, usePipelineExecutorListReferenceImages, usePipelineExecutorListTemplates, usePipelineExecutorRunAudioTest, usePipelineExecutorRunPipeline, usePipelineExecutorRunPipelineBatch, usePipelineExecutorSaveTemplate, usePipelineExecutorSetVideoPipelineSteps, usePipelineExecutorSpinEngine, usePipelineExecutorUncacheFrame, usePipelineExecutorUpdateTemplate, usePipelineExecutorValidatePipeline, usePipelineOrchestratorApplyDeviceSettingsPatch, usePipelineOrchestratorAssignAudio, usePipelineOrchestratorAssignPipeline, usePipelineOrchestratorDeleteTemplate, usePipelineOrchestratorGetAgentLoad, usePipelineOrchestratorGetAgentSettings, usePipelineOrchestratorGetAudioAssignment, usePipelineOrchestratorGetAudioAssignments, usePipelineOrchestratorGetAudioNodeLoad, usePipelineOrchestratorGetCameraMetrics, usePipelineOrchestratorGetCameraSettings, usePipelineOrchestratorGetCameraStatus, usePipelineOrchestratorGetCameraStatuses, usePipelineOrchestratorGetCameraStepOverrides, usePipelineOrchestratorGetCameraSwitches, usePipelineOrchestratorGetCapabilityBindings, usePipelineOrchestratorGetDeviceLiveContribution, usePipelineOrchestratorGetDeviceSettingsContribution, usePipelineOrchestratorGetGlobalMetrics, usePipelineOrchestratorGetIngestOwner, usePipelineOrchestratorGetNodeInferenceDevices, usePipelineOrchestratorGetPipelineAssignment, usePipelineOrchestratorGetPipelineAssignments, usePipelineOrchestratorGetPipelineDevicePin, usePipelineOrchestratorListAgentSettings, usePipelineOrchestratorListTemplates, usePipelineOrchestratorPauseForStorageMigration, usePipelineOrchestratorRebalance, usePipelineOrchestratorRemoveAgentSettings, usePipelineOrchestratorResetNodePipelineDefaults, usePipelineOrchestratorResolvePipeline, usePipelineOrchestratorResumeForStorageMigration, usePipelineOrchestratorSaveTemplate, usePipelineOrchestratorSetAgentCapabilities, usePipelineOrchestratorSetAgentDetectWeight, usePipelineOrchestratorSetAgentInferenceDevices, usePipelineOrchestratorSetAgentMaxCameras, usePipelineOrchestratorSetAgentReachableHost, usePipelineOrchestratorSetCameraPipelineForAgent, usePipelineOrchestratorSetCameraStepOverride, usePipelineOrchestratorSetCameraStepToggle, usePipelineOrchestratorSetCameraSwitch, usePipelineOrchestratorSetCapabilityBinding, usePipelineOrchestratorSetPipelineDevicePin, usePipelineOrchestratorUnassignAudio, usePipelineOrchestratorUnassignPipeline, usePipelineOrchestratorUpdateTemplate, usePipelineRunnerAttachCamera, usePipelineRunnerDetachCamera, usePipelineRunnerGetAllCameraMetrics, usePipelineRunnerGetCameraMetrics, usePipelineRunnerGetLocalCameras, usePipelineRunnerGetLocalLoad, usePipelineRunnerGetLocalMetrics, usePipelineRunnerGetNativeCrop, usePipelineRunnerReportMotion, usePipelineRunnerRunDetailSubtree, usePipelineRunnerRunStatelessStep, usePlateGalleryAssignPlate, usePlateGalleryAssignPlates, usePlateGalleryCorrectPlateText, usePlateGalleryCreateVehicle, usePlateGalleryDeletePlate, usePlateGalleryDeleteVehicle, usePlateGalleryGetPlateByTrack, usePlateGalleryGetPlateMedia, usePlateGalleryListPlates, usePlateGalleryListVehicleSamples, usePlateGalleryListVehicles, usePlateGalleryRemoveVehicleSample, usePlateGalleryRenameVehicle, usePlateGallerySearchPlates, usePlateGallerySuggestPlateClusters, usePlateGalleryUnassignPlate, usePlateGalleryUnassignPlates, usePlayerOverlayLayer, usePlayerOverlayLayers, usePlayerToolbarButton, usePlayerToolbarButtons, usePowerMeterGetStatus, usePresenceGetStatus, usePressureSensorGetStatus, usePrivacyMaskGetOptions, usePrivacyMaskGetStatus, usePrivacyMaskSetAudioEnabled, usePrivacyMaskSetMask, usePtzAutotrackGetSettings, usePtzAutotrackGetStatus, usePtzAutotrackSetEnabled, usePtzAutotrackSetSettings, usePtzContinuousMove, usePtzDeletePreset, usePtzGetOptions, usePtzGetPosition, usePtzGetPresets, usePtzGetStatus, usePtzGoHome, usePtzGoToPreset, usePtzMove, usePtzSavePreset, usePtzSetAutofocus, usePtzStop, useRebootReboot, useRecordedPlayback, useRecordingApplyDeviceSettingsPatch, useRecordingCancelRelocateJob, useRecordingCancelStorageMigrationMove, useRecordingDeleteFootprint, useRecordingExportCancelExport, useRecordingExportCreateExport, useRecordingExportDeleteExport, useRecordingExportGetDownloadUrl, useRecordingExportGetExport, useRecordingExportListExports, useRecordingExportReadExportBytes, useRecordingGetAvailability, useRecordingGetDaysWithRecordings, useRecordingGetDeviceConfig, useRecordingGetDeviceLiveContribution, useRecordingGetDeviceSettingsContribution, useRecordingGetPlaybackManifest, useRecordingGetStatus, useRecordingGetStorageMigrationMoveStatus, useRecordingGetStorageUsage, useRecordingListOpsLog, useRecordingListRelocateJobs, useRecordingLocateSegment, useRecordingPauseForStorageMigration, useRecordingPlanStorageRebalance, useRecordingPruneFootage, useRecordingReadGopBytes, useRecordingReadSegmentBytes, useRecordingRefreshStorageLocationsForMigration, useRecordingRelocateFootage, useRecordingRenderClip, useRecordingRenderGif, useRecordingRescanStorage, useRecordingResumeForStorageMigration, useRecordingSetDeviceConfig, useRecordingStartStorageMigrationMove, useRecordingStartStorageRebalance, useRemoteComponent, useSceneMonitorCaptureReference, useSceneMonitorCreateScene, useSceneMonitorDeleteReference, useSceneMonitorDeleteScene, useSceneMonitorGetStatus, useSceneMonitorListScenes, useSceneMonitorRecheckNow, useSceneMonitorResetScene, useSceneMonitorUpdateScene, useScriptRunnerGetStatus, useScriptRunnerRun, useScriptRunnerStop, useScrubController, useServerManagementApplyServerUpdate, useServerManagementCheckServerUpdate, useServerManagementGetServerPackageStatus, useServerManagementRestartServer, useServerManagementRollbackServerUpdate, useSettingsStoreCount, useSettingsStoreDeclareCollection, useSettingsStoreDelete, useSettingsStoreDeleteWhere, useSettingsStoreGet, useSettingsStoreHistogram, useSettingsStoreInsert, useSettingsStoreIsEmpty, useSettingsStoreQuery, useSettingsStoreSet, useSettingsStoreUpdate, useSettingsStoreUpdateWhere, useSmokeGetStatus, useSnapshotApplyDeviceSettingsPatch, useSnapshotGetDebugState, useSnapshotGetDeviceLiveContribution, useSnapshotGetDeviceSettingsContribution, useSnapshotGetSnapshot, useSnapshotGetSnapshotLinks, useSnapshotGetSnapshotOverview, useSnapshotGetStatus, useSnapshotInvalidateCache, useStorageAbortUpload, useStorageBeginDownload, useStorageBeginUpload, useStorageDelete, useStorageDeleteLocation, useStorageEndDownload, useStorageExists, useStorageFinalizeUpload, useStorageGetAvailableSpace, useStorageGetDefaultLocation, useStorageList, useStorageListLocationDeclarations, useStorageListLocations, useStorageListProviders, useStorageMigrationCancel, useStorageMigrationPlan, useStorageMigrationStart, useStorageMigrationStatus, useStorageRead, useStorageReadChunk, useStorageResolve, useStorageTestConfig, useStorageTestLocation, useStorageUpsertLocation, useStorageWrite, useStorageWriteChunk, useStreamBrokerAcquireEgressTranscode, useStreamBrokerApplyDeviceSettingsPatch, useStreamBrokerAssignProfile, useStreamBrokerFetchEventMedia, useStreamBrokerGetAllRtspEntries, useStreamBrokerGetBrokerStats, useStreamBrokerGetDeviceAudioMute, useStreamBrokerGetDeviceLiveContribution, useStreamBrokerGetDeviceSettingsContribution, useStreamBrokerGetPreBufferInfo, useStreamBrokerGetRtspEntry, useStreamBrokerGetRtspPort, useStreamBrokerGetStreamUrl, useStreamBrokerGetStreamWithCodec, useStreamBrokerIsRtspEnabled, useStreamBrokerKillClient, useStreamBrokerListAllCameraStreams, useStreamBrokerListAllProfileSlots, useStreamBrokerListClients, useStreamBrokerProbeStream, useStreamBrokerProduceEventMedia, useStreamBrokerPublishCameraStream, useStreamBrokerPullAudioChunks, useStreamBrokerPullFrameHandles, useStreamBrokerRegenerateRtspToken, useStreamBrokerReleaseEgressTranscode, useStreamBrokerReleaseStreamWithCodec, useStreamBrokerRenderPreBufferClip, useStreamBrokerRestartProfile, useStreamBrokerRetractCameraStream, useStreamBrokerSetDeviceAudioMute, useStreamBrokerSetPreBufferDuration, useStreamBrokerSetRtspEnabled, useStreamBrokerSubscribeAudioChunks, useStreamBrokerSubscribeFrames, useStreamBrokerUnassignProfile, useStreamBrokerUnsubscribeAudioChunks, useStreamBrokerUnsubscribeFrames, useStreamCatalogGetCatalog, useStreamParamsGetConfigSchema, useStreamParamsGetOptions, useStreamParamsGetStatus, useStreamParamsSetProfile, useSwitchGetStatus, useSwitchSetState, useSystem, useSystemDetectSiteLocation, useSystemFeatureFlags, useSystemForceRetentionCleanup, useSystemGetRetentionConfig, useSystemGetSiteLocation, useSystemHealth, useSystemInfo, useSystemMutation, useSystemNetworkAddresses, useSystemQuery, useSystemSetRetentionConfig, useSystemSetSiteLocation, useTamperGetStatus, useTemperatureSensorGetStatus, useTerminalSessionAdoptLegacyMonitor, useTerminalSessionClose, useTerminalSessionCreateInstance, useTerminalSessionDeleteInstance, useTerminalSessionListInstances, useTerminalSessionListLegacyCameras, useTerminalSessionListProfiles, useTerminalSessionListSessions, useTerminalSessionOpenSession, useTerminalSessionPullOutput, useTerminalSessionResize, useTerminalSessionSetInstanceEnabled, useTerminalSessionWriteInput, useThemeMode, useToastOnToast, useTurnProviderGetTurnServers, useUpdateGetStatus, useUpdateInstallUpdate, useUserManagementConfirmTotp, useUserManagementCreateApiKey, useUserManagementCreateScopedToken, useUserManagementCreateUser, useUserManagementDeleteUser, useUserManagementDisableTotp, useUserManagementGetTotpStatus, useUserManagementListApiKeys, useUserManagementListOauthSessions, useUserManagementListScopedTokens, useUserManagementListUsers, useUserManagementOauthExchangeCode, useUserManagementOauthIssueCode, useUserManagementOauthRefresh, useUserManagementOauthVerifyAccessToken, useUserManagementResetPassword, useUserManagementRevokeApiKey, useUserManagementRevokeOauthSession, useUserManagementRevokeScopedToken, useUserManagementSetUserScopes, useUserManagementSetupTotp, useUserManagementUpdateUser, useUserManagementValidateApiKey, useUserManagementValidateCredentials, useUserManagementValidateScopedToken, useUserManagementVerifyTotp, useVacuumControlGetStatus, useVacuumControlLocate, useVacuumControlPause, useVacuumControlReturnToBase, useVacuumControlSetFanSpeed, useVacuumControlStart, useVacuumControlStop, useValveClose, useValveGetStatus, useValveOpen, useValveSetPosition, useValveStop, useVibrationGetStatus, useVideoclipsGetClipPlayback, useVideoclipsListClips, useVodPlayback, useWaterHeaterGetStatus, useWaterHeaterSetAway, useWaterHeaterSetOperationMode, useWaterHeaterSetTargetTemp, useWeatherGetStatus, useWebrtcSessionAddIceCandidate, useWebrtcSessionCloseSession, useWebrtcSessionCreateSession, useWebrtcSessionGetIceCandidates, useWebrtcSessionGetSessionState, useWebrtcSessionHandleAnswer, useWebrtcSessionHandleOffer, useWebrtcSessionHasAdaptiveBitrate, useWebrtcSessionListStreams, useWidget, useWidgetMetadata, useWidgetRegistry, useZoneAnalyticsGetCameraHistory, useZoneAnalyticsGetCurrentSnapshot, useZoneAnalyticsGetUnzonedHistory, useZoneAnalyticsGetZoneHistory, useZoneEditing, useZoneRulesListRules, useZoneRulesSetRules, useZonesAddZone, useZonesListZones, useZonesRemoveZone, useZonesUpdateZone, vacuumStateMeta, validateScopes, valveStateMeta, variantLabel, waterHeaterPhase, waterHeaterTint, weatherConditionMeta, weatherTint };
48555
+ export { AddonGlobalSettingsForm, AgentStepEditor, AlarmHeroCard, AlarmInlineControl as AlarmPanelInlineControl, AppShell, ArcKnob, AudioClassificationList, AudioLevelWaveform, AudioWaveform, AutomationHeroCard, AutomationInlineControl, AutotrackSection, BTN_COMPACT, BTN_COMPACT_DANGER, BTN_COMPACT_PRIMARY, BTN_COMPACT_WARNING, Badge, BatteryBadge, BottomSheet, Breadcrumb, BrightnessPanel, Button, ButtonControl, ButtonHeroCard, CARD_MODE_MIN_COLUMNS, CENTER, CHIP_ACTIVE, CHIP_BASE, CHIP_INACTIVE, CLASS_COLORS, COLUMN_BREAKPOINT_CLASS, COLUMN_PRIORITY, COMMIT_DEDUPE_TOLERANCE_MS, COMMIT_DEDUPE_WINDOW_MS, CONTROL_CAP_NAMES, CONTROL_FILLS, CameraStreamPlayer, Card, Checkbox, ChildSectionAccordion, ClimatePanel, CodeBlock, CollapsibleCard, ConfigFormBuilder, FormField as ConfigFormField, ConfigSchemaField, ConfirmActionButton, ConfirmDialogProvider, ConsumablesPanel, ContainerChildrenProvider, ContainerPrimaryHero, ControlColumn, ControlHeroCard, ControlInlineControl, ControlPanel, CopyButton, CoverHeroCard, CoverInlineControl, CoverPanel, CustomFieldRenderersProvider, DEFAULT_COLOR, DEVICE_COLUMNS, DEVICE_LIST_PAGE_SIZE_KEY, DEVICE_LIST_PAGE_SIZE_OPTIONS, DEVICE_ROLE_META, DEVICE_TYPE_CONTROL, DEVICE_TYPE_META, DISPLAY_ICON_REGISTRY, DataTable, DetectionCanvas, DetectionOverlay, DetectionResultTree, DevShell, DeviceActivityPanel, DeviceBatchToolbar, DeviceCard, DeviceContextProvider, DeviceExportPanel, DeviceGrid, DeviceItem, DeviceList, DeviceMultiSelectField, DeviceSelectField, DeviceSelectorPicker, DeviceStepMatrix, Dialog, DialogBody, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, DialogTrigger, DiscoveryPanel, DoorbellRecentPanel, Dropdown, DropdownContent, DropdownItem, DropdownTrigger, DummyHeroCard, DummyInline, EVENT_KIND_ICONS, EmptyState, ErrorBox, EventKindGlyph, EventStream, FILL, FanHeroCard, FanInlineControl, FanPanel, FilterBar, FloatingEventStream, FloatingLogStream, FloatingPanel, FormField$1 as FormField, GRID_GAP, GRID_PAIRED, GRID_QUICK_STATS, GripTrack, GroupedModelSelector, HOST_WIDGETS, HlsVideo, HoverZoomImage, HumidifierHeroCard, HumidifierInlineControl, INPUT_COMPACT, IconAction, IconButton, ImageHeroCard, ImageInlineControl, ImageSelector, InferenceConfigSelector, Input, KebabMenu, KeyValueList, LIST_ROW, Label, LawnMowerHeroCard, LawnMowerInlineControl, LightHeroCard, LightInlineControl, LockHeroCard, LockInlineControl, LockPanel, LogStream, LoginForm, MODE_COLOR, MaskShapeCanvas, MediaPlayerHeroCard, MediaPlayerInlineControl, MediaPlayerPanel, MobileDrawer, ModelPicker, MotionZonesSettings, NodeMultiSelectField, NodePicker, NodeSelectField, OfflineBadge, PHASE_CONFIG, PRIORITY, PTZOverlay, PageHeader, PhaseIcon, PipelineBuilder, PipelineRuntimeSelector, PipelineStep, PipelineTreeMatrix, PlayerOverlaysProvider, Popover, PopoverContent, PopoverRowAction, PopoverTrigger, PrimaryChildPicker, PrivacyMaskSettings, ProviderBadge, PtzPanel, QrCode, RECONNECT_POLICY, RECORDED_PLAYBACK_MODES, RIGHT, ROI_AREA_WARN_FRACTION, ROLE_DESCRIPTOR, RadialGauge, RecordedPlaybackProvider, RecordingPanel, ResponseLog, SCENE_CAPTURE_VARIANTS, SECTION_BODY, SECTION_CARD, SECTION_HEADER, SETTING_ROW, SETTING_ROW_LABEL, SETTING_ROW_STACK_BREAKPOINT, SETTING_ROW_VALUE, SETTING_ROW_VALUE_TEXT, SPLIT_PANEL_OUTER, SPLIT_PANEL_SIDE, STACK_GAP, STATE_COLOR, SceneMonitorEditor, ScopePicker, ScriptHeroCard, ScriptInlineControl, ScrollArea, Select, SemanticBadge, SensorHeroCard, SensorInlineControl, SensorValueAtom, Separator, SettingRow, Sidebar, SidebarItem, Skeleton, SlideOverPanel, SlideToggle, SnapshotButton, StatCard, StateValuesStream, StatusBadge, StepTimings, StepTreeMaster, Stepper, StreamBrokerSelector, StreamPanel, Switch, SwitchHeroCard, SwitchInlineControl, SwitchPanel, SystemProvider, TABLE_SCROLL_MAX_H, TEXT_FIELD_LABEL, TEXT_HINT, TEXT_METRIC, TEXT_SECTION_LABEL, TEXT_VALUE, TIMEZONES, Tabs, TabsContent, TabsList, TabsTrigger, TapToggle, ThemeProvider, ThermostatHeroCard, ThermostatInlineControl, TimezoneSelector, Tooltip, TooltipContent, TooltipTrigger, VacuumHeroCard, VacuumInlineControl, ValueReadout, ValveHeroCard, ValveInlineControl, VersionBadge, VodPlaybackProvider, WaterHeaterHeroCard, WaterHeaterInlineControl, WeatherHeroCard, WeatherInlineControl, WidgetMetricCard, WidgetPanel, WidgetRegistryProvider, WidgetSlot, ZoneEditingProvider, ImageOff as a, agentColumnKey, allDeviceTypeFilterOptions, badgeFor, buildStepTreeFromSchema, createLucideIcon as c, childEntityId, childListName, cn, columnsForContext, containerChildToRef, countableDevices, coverHighlight, coverageLine, createSharedContext, createTheme, cursorFractionFor, darkColors, defaultTheme, deriveDeviceKind, describeDeviceSelector, deviceMatchesFilter, deviceOptionLabel, deviceRoleMeta, deviceRoleMetaOf, deviceTypeLabel, deviceTypeMeta, deviceTypeMetaOf, devicesToOptions, ensureMfHostInit, eventKindLabel, filterDeviceOptions, findTimezone, formatControlDateTime, formatLastSeen, formatNumeric, fuzzyMatch, getClassColor, getPhaseVisual, groupAgentColumns, groupChildrenByLayout, hardwareLabel, humanDuration, humidifierTint, Mic as i, initialScrubState, isAbsentProvider, isFieldVisible, lawnMowerActivityMeta, lightColors, loadRemoteBundle, makeScrubBridge, metadataEntries, metadataString, mirror, mountAddonPage, Square as n, nextReconnectAction, nextSort, normalizeForSearch, EyeOff as o, overrideEntityIdFromLink, parseRecordedServerMessage, providerIcons, RotateCcw as r, resolveContainerPrimary, resolveControlAlign, resolveDeviceControl, resolveDisplayIcon, resolveEffectiveDefaultModel, resolveEffectiveStepModel, resolveEventKindIcon, resolvePrimaryChild, resolveSensorDisplay, resolveStepDefaultModel, resolveTableLayout, roiTooLarge, Camera as s, scrubReducer, selectedDeviceOptions, serializeRecordedCommand, shouldCommit, shouldEmit, shouldUseSingleNode, sortRows, statusIcons, statusLine, stepHasModelForFormat, stepModelOptions, stripParentNamePrefix, Trash2 as t, tabForSelector, tankAlert, themeToCss, trpc, useAccessoriesGetStatus, useAccessoriesSetChildHidden, useAddonPagesListPages, useAddonSettingsGetDeviceSettings, useAddonSettingsGetGlobalSettings, useAddonSettingsUpdateDeviceSettings, useAddonSettingsUpdateGlobalSettings, useAddonWidgetsListWidgets, useAddonsApplyAutoUpdateToAll, useAddonsCancelJob, useAddonsCustom, useAddonsForceRefresh, useAddonsGetAddonAutoUpdate, useAddonsGetAutoUpdateSettings, useAddonsGetJob, useAddonsGetLastRestart, useAddonsGetLogs, useAddonsGetVersions, useAddonsInstallFromWorkspace, useAddonsInstallPackage, useAddonsIsWorkspaceAvailable, useAddonsList, useAddonsListCapabilityProviders, useAddonsListFrameworkPackages, useAddonsListJobs, useAddonsListPackages, useAddonsListUpdates, useAddonsListWorkspacePackages, useAddonsOnAddonLogs, useAddonsReloadPackages, useAddonsRestartAddon, useAddonsRestartServer, useAddonsRetryLoad, useAddonsRollbackPackage, useAddonsSearchAvailable, useAddonsSetAddonAutoUpdate, useAddonsSetAutoUpdateSettings, useAddonsSetCapabilityProviderEnabled, useAddonsStartJob, useAddonsUninstallPackage, useAddonsUpdatePackage, useAirQualitySensorGetStatus, useAlarmPanelArm, useAlarmPanelDisarm, useAlarmPanelGetStatus, useAlarmPanelTrigger, useAlertsDismiss, useAlertsEmit, useAlertsGetUnreadCount, useAlertsList, useAlertsMarkAllRead, useAlertsMarkRead, useAlertsUpdate, useAllWidgets, useAmbientLightSensorGetStatus, useAudioAnalysisApplyDeviceSettingsPatch, useAudioAnalysisGetDeviceLiveContribution, useAudioAnalysisGetDeviceSettingsContribution, useAudioAnalysisResolveDeviceSettings, useAudioAnalyzerAnalyseChunk, useAudioAnalyzerClassify, useAudioAnalyzerDispose, useAudioAnalyzerIsReady, useAudioAnalyzerReprobeAudioEngine, useAudioCodecCanHandle, useAudioCodecCloseSession, useAudioCodecCreateDecodeSession, useAudioCodecCreateEncodeSession, useAudioCodecFlushEncode, useAudioCodecListActiveSessions, useAudioCodecListSupportedCodecs, useAudioCodecPullEncoded, useAudioCodecPullPcm, useAudioCodecPushEncodedFrame, useAudioCodecPushPcm, useAudioMetricsGetCurrentSnapshot, useAudioMetricsGetHistory, useAutomationControlDisable, useAutomationControlEnable, useAutomationControlGetStatus, useAutomationControlTrigger, useBackupDelete, useBackupDeleteSchedule, useBackupGetEntries, useBackupList, useBackupListArchives, useBackupListDestinations, useBackupListLocations, useBackupListSchedules, useBackupPreviewSchedule, useBackupRestore, useBackupTrigger, useBackupUpsertDestinationPolicy, useBackupUpsertSchedule, useBatteryGetStatus, useBatteryWakeForStream, useBinaryGetStatus, useBrightnessGetStatus, useBrightnessSetBrightness, useBrokerAdd, useBrokerGet, useBrokerGetBrokerConfig, useBrokerGetSettings, useBrokerGetSettingsSchema, useBrokerGetState, useBrokerGetStatus, useBrokerList, useBrokerListProviders, useBrokerPublish, useBrokerRemove, useBrokerSetSettings, useBrokerSubscribe, useBrokerTestConnection, useBrokerTestSettings, useBrokerUnsubscribe, useButtonPress, useCameraCredentialsGetCredentials, useCameraCredentialsGetStatus, useCameraPipelineConfigApplyDeviceSettingsPatch, useCameraPipelineConfigGetDeviceLiveContribution, useCameraPipelineConfigGetDeviceSettingsContribution, useCameraStreamsGetBrokerStreams, useCameraStreamsGetCameraStreams, useCameraStreamsGetProfileRtspEntries, useCameraStreamsGetRtspEntries, useCameraStreamsPickStream, useCarbonMonoxideGetStatus, useClimateControlGetStatus, useClimateControlSetFanMode, useClimateControlSetMode, useClimateControlSetPreset, useClimateControlSetSwingHorizontal, useClimateControlSetSwingVertical, useClimateControlSetTarget, useClimateControlSetTargetHumidity, useClimateControlSetTargetRange, useClusterNodes, useColorGetStatus, useColorSetColor, useConfirm, useConnectionTestDescribeTest, useConnectionTestTestSettings, useConnectivityGetStatus, useConsumablesGetStatus, useConsumablesReset, useContactGetStatus, useContainerChildren, useControlGetStatus, useControlSetValue, useCoreBlocksCompile, useCoreBlocksCreate, useCoreBlocksDelete, useCoreBlocksGet, useCoreBlocksGetTypeDefs, useCoreBlocksList, useCoreBlocksRestart, useCoreBlocksSetEnabled, useCoreBlocksUpdate, useCoverClose, useCoverGetStatus, useCoverOpen, useCoverSetPosition, useCoverSetTiltPosition, useCoverStop, useCustomFieldRenderer, useDayNightGetOptions, useDayNightGetStatus, useDayNightSetSettings, useDebouncedString, useDecoderCreateSession, useDecoderDestroySession, useDecoderGetFrame, useDecoderGetInfo, useDecoderGetShmStats, useDecoderGetStats, useDecoderListActiveSessions, useDecoderOpenStream, useDecoderPullFrames, useDecoderPullHandles, useDecoderPushPacket, useDecoderReprobeHwaccel, useDecoderSupportsCodec, useDecoderUpdateConfig, useDetectionPipelineApplyDeviceSettingsPatch, useDetectionPipelineGetDeviceLiveContribution, useDetectionPipelineGetDeviceSettingsContribution, useDevShell, useDevice, useDeviceAdoptionAdopt, useDeviceAdoptionGetCandidate, useDeviceAdoptionGetStatus, useDeviceAdoptionListCandidateFilters, useDeviceAdoptionListCandidates, useDeviceAdoptionRefresh, useDeviceAdoptionRelease, useDeviceAdoptionResync, useDeviceAutotrack, useDeviceBattery, useDeviceCapSlice, useDeviceCapability, useDeviceDetections, useDeviceDiscoveryAdoptDevice, useDeviceDiscoveryGetStatus, useDeviceDiscoveryListDiscovered, useDeviceDiscoveryRefreshDiscovery, useDeviceDiscoveryReleaseDevice, useDeviceExportApplyDeviceSettingsPatch, useDeviceExportExposeDevice, useDeviceExportGetDeviceLiveContribution, useDeviceExportGetDeviceSettingsContribution, useDeviceExportGetStatus, useDeviceExportListExposedDevices, useDeviceExportListSupportedDeviceKinds, useDeviceExportUnexposeDevice, useDeviceId, useDeviceListPageSize, useDeviceManagerAddLocation, useDeviceManagerAdoptDevice, useDeviceManagerAdoptionAdopt, useDeviceManagerAdoptionCancelJob, useDeviceManagerAdoptionListCandidateFilters, useDeviceManagerAdoptionListCandidates, useDeviceManagerAdoptionListJobs, useDeviceManagerAdoptionRefresh, useDeviceManagerAdoptionRelease, useDeviceManagerAdoptionResync, useDeviceManagerAdoptionStartJob, useDeviceManagerAllocateDeviceId, useDeviceManagerApplyDeviceSettingsPatch, useDeviceManagerApplyInitialMeta, useDeviceManagerCreateDevice, useDeviceManagerDisable, useDeviceManagerDiscoverAllProviders, useDeviceManagerDiscoverDevices, useDeviceManagerDiscoverProvider, useDeviceManagerDiscoveryProviders, useDeviceManagerEnable, useDeviceManagerGetAllBindings, useDeviceManagerGetBindings, useDeviceManagerGetChildren, useDeviceManagerGetConfigSchema, useDeviceManagerGetCreationSchema, useDeviceManagerGetDevice, useDeviceManagerGetDeviceAggregate, useDeviceManagerGetDeviceLiveContribution, useDeviceManagerGetDeviceLiveInfoAggregate, useDeviceManagerGetDeviceSettingsAggregate, useDeviceManagerGetDeviceSettingsContribution, useDeviceManagerGetDeviceStatusAggregate, useDeviceManagerGetDeviceStatusAggregateBatch, useDeviceManagerGetLinkedDevices, useDeviceManagerGetRoleDisplayDefaults, useDeviceManagerGetSettingsSchema, useDeviceManagerGetStreamProfileMap, useDeviceManagerGetStreamSources, useDeviceManagerGetWireableFields, useDeviceManagerListAll, useDeviceManagerListBindableCapsForDeviceType, useDeviceManagerListLocations, useDeviceManagerListPersistedByAddon, useDeviceManagerListWrappersForCap, useDeviceManagerLoadConfig, useDeviceManagerLoadMeta, useDeviceManagerLoadRuntimeState, useDeviceManagerPersistConfig, useDeviceManagerProbeStreams, useDeviceManagerProviderCreationType, useDeviceManagerProviderDiscoveryParamsSchema, useDeviceManagerRegisterDevice, useDeviceManagerRemove, useDeviceManagerRemoveByIntegration, useDeviceManagerRemoveDevice, useDeviceManagerRemoveLocation, useDeviceManagerRunDeviceAction, useDeviceManagerSetChildLayout, useDeviceManagerSetDisabled, useDeviceManagerSetDisplay, useDeviceManagerSetIntegrationId, useDeviceManagerSetLinkDeviceId, useDeviceManagerSetLocation, useDeviceManagerSetMetadata, useDeviceManagerSetName, useDeviceManagerSetPrimaryChildEntityId, useDeviceManagerSetRole, useDeviceManagerSetRoleDisplayDefaults, useDeviceManagerSetStreamProfileMap, useDeviceManagerSetType, useDeviceManagerSetWrapperActive, useDeviceManagerTestCreationField, useDeviceManagerTestField, useDeviceManagerUpdateConfig, useDeviceManagerUpdateDeviceField, useDeviceManagerUpdateDeviceFieldsBatch, useDeviceOpsGetConfigEntries, useDeviceOpsGetRawState, useDeviceOpsGetSettingsSchema, useDeviceOpsGetStreamSources, useDeviceOpsRemoveDevice, useDeviceOpsRunAction, useDeviceOpsSetConfig, useDeviceProviderAdoptDiscoveredDevice, useDeviceProviderCreateDevice, useDeviceProviderDiscoverDevices, useDeviceProviderGetChildCreationSchema, useDeviceProviderGetDevices, useDeviceProviderGetDiscoveryParamsSchema, useDeviceProviderGetManualCreationType, useDeviceProviderGetStatus, useDeviceProviderStart, useDeviceProviderStop, useDeviceProviderSupportsDiscovery, useDeviceProviderSupportsManualCreation, useDeviceProviderTestCreationField, useDeviceProxy, useDeviceSnapshot, useDeviceSnapshotImage, useDeviceState, useDeviceStateGetAllSnapshots, useDeviceStateGetCapSlice, useDeviceStateGetSnapshot, useDeviceStateSetCapSlice, useDeviceStateSlice, useDeviceStatusGetStatus, useDeviceWebrtc, useDevices, useDoorbellApplyDeviceSettingsPatch, useDoorbellEvents, useDoorbellGetDeviceLiveContribution, useDoorbellGetDeviceSettingsContribution, useDoorbellGetStatus, useEnumSensorGetStatus, useEventEmitterGetStatus, useEventInvalidation, useEventStreamLatest, useEventStreamMap, useEventsGetEventClipUrl, useEventsGetEventThumbnail, useEventsGetEvents, useFaceGalleryAssignFace, useFaceGalleryAssignFaces, useFaceGalleryCreateIdentity, useFaceGalleryDeleteFace, useFaceGalleryDeleteIdentity, useFaceGalleryGetFaceByTrack, useFaceGalleryGetFaceMedia, useFaceGalleryListIdentities, useFaceGalleryListIdentitySamples, useFaceGalleryListRecentFaces, useFaceGalleryRemoveSample, useFaceGalleryRenameIdentity, useFaceGallerySuggestFaceClusters, useFaceGalleryUnassignFace, useFaceGalleryUnassignFaces, useFanControlGetStatus, useFanControlSetDirection, useFanControlSetOscillating, useFanControlSetPercentage, useFanControlSetPreset, useFeatureProbeGetStatus, useFloodGetStatus, useGasGetStatus, useHumidifierGetStatus, useHumidifierSetMode, useHumidifierSetOn, useHumidifierSetTargetHumidity, useHumiditySensorGetStatus, useImageGetStatus, useImageSettingsGetOptions, useImageSettingsGetStatus, useImageSettingsSetSettings, useIntegrationsCreate, useIntegrationsDelete, useIntegrationsGet, useIntegrationsGetAvailableTypes, useIntegrationsGetByAddonId, useIntegrationsGetSettings, useIntegrationsList, useIntegrationsSetSettings, useIntegrationsTestConnection, useIntegrationsUpdate, useIntercomEndTalkSession, useIntercomGetStatus, useIntercomHandleAnswer, useIntercomPushTalkAudio, useIntercomStartSession, useIntercomStartTalkSession, useIntercomStopSession, useIsMidWidth, useIsMobile, useLawnMowerControlDock, useLawnMowerControlGetStatus, useLawnMowerControlPause, useLawnMowerControlStartMowing, useLiveBuffer, useLiveEvent, useLlmCancel, useLlmDeleteModel, useLlmDeleteProfile, useLlmGenerate, useLlmGenerateVision, useLlmGetDefaults, useLlmGetRuntimeStatus, useLlmGetUsage, useLlmInstallModel, useLlmListModelCatalog, useLlmListModels, useLlmListNodeModels, useLlmListProfileKinds, useLlmListProfiles, useLlmListRuntimeNodes, useLlmResolveModelRef, useLlmSetDefault, useLlmStartRuntime, useLlmStopRuntime, useLlmTestProfile, useLlmUpsertProfile, useLocalNetworkGetAllowedAddresses, useLocalNetworkGetConnectionEndpoints, useLocalNetworkGetNotificationEndpoint, useLocalNetworkGetPreferred, useLocalNetworkList, useLocalNetworkResetAllowlistToBestMatch, useLocalNetworkSetAllowedAddresses, useLocalNetworkSetNotificationEndpoint, useLockControlGetStatus, useLockControlLock, useLockControlOpen, useLockControlUnlock, useMediaPlayerGetStatus, useMediaPlayerNext, useMediaPlayerPause, useMediaPlayerPlay, useMediaPlayerPlayMedia, useMediaPlayerPrevious, useMediaPlayerSeek, useMediaPlayerSelectSource, useMediaPlayerSetMute, useMediaPlayerSetRepeat, useMediaPlayerSetShuffle, useMediaPlayerSetVolume, useMediaPlayerStop, useMeshNetworkGetStatus, useMeshNetworkJoin, useMeshNetworkLeave, useMeshNetworkListPeers, useMeshNetworkLogout, useMeshNetworkStartLogin, useMeshNetworkTestConnection, useMetricsProviderCollectSnapshot, useMetricsProviderDumpHeapSnapshot, useMetricsProviderGetAddonStats, useMetricsProviderGetCached, useMetricsProviderGetCpuTemperature, useMetricsProviderGetCurrent, useMetricsProviderGetDiskSpace, useMetricsProviderGetGpuInfo, useMetricsProviderGetProcessStats, useMetricsProviderKillProcess, useMetricsProviderListAddonInstances, useMetricsProviderListNodeProcesses, useMotionDetectionAnalyze, useMotionDetectionApplyDeviceSettingsPatch, useMotionDetectionGetDeviceLiveContribution, useMotionDetectionGetDeviceSettingsContribution, useMotionDetectionRemoveCamera, useMotionDetectionReset, useMotionGetStatus, useMotionIsDetected, useMotionTriggerGetStatus, useMotionTriggerSetMotionTrigger, useMotionZonesGetOptions, useMotionZonesGetStatus, useMotionZonesSetZone, useMqttBrokerAddBroker, useMqttBrokerGetBrokerConfig, useMqttBrokerGetStatus, useMqttBrokerListBrokers, useMqttBrokerRemoveBroker, useMqttBrokerStartEmbeddedBroker, useMqttBrokerStopEmbeddedBroker, useMqttBrokerTestConnection, useNativeObjectDetectionGetStatus, useNativeObjectDetectionSetEnabled, useNetworkAccessGetEndpoint, useNetworkAccessGetStatus, useNetworkAccessListEndpoints, useNetworkAccessStart, useNetworkAccessStop, useNetworkQualityGetAllStats, useNetworkQualityGetDeviceStats, useNetworkQualityReportClientStats, useNodesClusterAddonStatus, useNodesDeployAddon, useNodesExecuteQuery, useNodesGetCapUsageGraph, useNodesGetNodeAddons, useNodesRenameNode, useNodesRestartAddon, useNodesRestartNode, useNodesRestartProcess, useNodesSetProcessLogLevel, useNodesShutdownNode, useNodesTopology, useNodesUndeployAddon, useNotificationOutputDeleteTarget, useNotificationOutputDiscoverTargets, useNotificationOutputListTargetKinds, useNotificationOutputListTargets, useNotificationOutputSend, useNotificationOutputSetTargetEnabled, useNotificationOutputTestTarget, useNotificationOutputUpsertTarget, useNotificationRulesCancelSnooze, useNotificationRulesCreateRule, useNotificationRulesCreateSnooze, useNotificationRulesDeleteRule, useNotificationRulesGetAlarmConfig, useNotificationRulesGetConditionCatalog, useNotificationRulesGetHistory, useNotificationRulesGetRule, useNotificationRulesListDeviceMutes, useNotificationRulesListRules, useNotificationRulesListSnoozes, useNotificationRulesSetAlarmConfig, useNotificationRulesSetDeviceMuted, useNotificationRulesSetRuleEnabled, useNotificationRulesTestRule, useNotificationRulesUpdateRule, useNotifierCancel, useNotifierGetStatus, useNotifierSend, useNumericSensorGetStatus, useOptimisticSlice, useOptionalSystem, useOptionalWidgetRegistry, useOsdGetStatus, useOsdManagerClearSlotBinding, useOsdManagerCopyDeviceConfiguration, useOsdManagerGetConditionSupport, useOsdManagerGetDeviceOsd, useOsdManagerGetSourceCatalog, useOsdManagerPreviewSlot, useOsdManagerRenderDevice, useOsdManagerSetSlotBinding, useOsdSetOverlay, usePTZ, usePetFeederCallPet, usePetFeederCancelFeed, usePetFeederFeed, usePetFeederGetStatus, usePetFeederMarkFoodReplenished, usePetFeederPlaySound, usePetFeederResetDesiccant, usePetFeederSetChildLock, usePetFeederSetFeedSound, usePetFeederSetIndicatorLight, usePetFeederSetVolume, usePipelineAnalyticsApplyDeviceSettingsPatch, usePipelineAnalyticsCancelStorageMigrationMove, usePipelineAnalyticsClearTracks, usePipelineAnalyticsCompleteRetrainTrack, usePipelineAnalyticsDeleteDeviceEvents, usePipelineAnalyticsDeleteTracks, usePipelineAnalyticsDeselectRetrainFrame, usePipelineAnalyticsGetActiveTracks, usePipelineAnalyticsGetAudioEvents, usePipelineAnalyticsGetDeviceLiveContribution, usePipelineAnalyticsGetDeviceSettingsContribution, usePipelineAnalyticsGetEventDensity, usePipelineAnalyticsGetEventMedia, usePipelineAnalyticsGetEventStoreFootprint, usePipelineAnalyticsGetKeyEvents, usePipelineAnalyticsGetMotionEvents, usePipelineAnalyticsGetObjectEmbeddingRebuildStatus, usePipelineAnalyticsGetObjectEvents, usePipelineAnalyticsGetRetrainExportUrl, usePipelineAnalyticsGetRetrainFrameImage, usePipelineAnalyticsGetSensorEvents, usePipelineAnalyticsGetStorageMigrationMoveStatus, usePipelineAnalyticsGetTrack, usePipelineAnalyticsGetTrackMedia, usePipelineAnalyticsGetTrainingExportSummary, usePipelineAnalyticsGetTrainingExportUrl, usePipelineAnalyticsListEventKinds, usePipelineAnalyticsListEventKindsBatch, usePipelineAnalyticsListOpsLog, usePipelineAnalyticsListRecentTracks, usePipelineAnalyticsListRetrainAnnotations, usePipelineAnalyticsListRetrainFrames, usePipelineAnalyticsListRetrainStaging, usePipelineAnalyticsListTrackMedia, usePipelineAnalyticsListTracks, usePipelineAnalyticsPauseForStorageMigration, usePipelineAnalyticsProposeRetrainAnnotations, usePipelineAnalyticsPruneEvents, usePipelineAnalyticsPruneEventsBefore, usePipelineAnalyticsPruneTracksBefore, usePipelineAnalyticsRebuildObjectEmbeddings, usePipelineAnalyticsReconcileFromDisk, usePipelineAnalyticsRefreshStorageLocationsForMigration, usePipelineAnalyticsRestageRetrainTrack, usePipelineAnalyticsResumeForStorageMigration, usePipelineAnalyticsSaveRetrainAnnotations, usePipelineAnalyticsSearchObjectEvents, usePipelineAnalyticsSelectRetrainFrames, usePipelineAnalyticsSetTrackFlags, usePipelineAnalyticsStartStorageMigrationMove, usePipelineAnalyticsWipeAllAnalytics, usePipelineAnalyticsWipeObjectEmbeddings, usePipelineExecutorCacheFrameInPool, usePipelineExecutorClearDeviceOverrides, usePipelineExecutorDeleteModel, usePipelineExecutorDeleteTemplate, usePipelineExecutorDownloadModel, usePipelineExecutorGetAddonModels, usePipelineExecutorGetAudioCapabilities, usePipelineExecutorGetAvailableEngines, usePipelineExecutorGetCapabilities, usePipelineExecutorGetDefaultSteps, usePipelineExecutorGetDetectionConfigSchema, usePipelineExecutorGetEffectiveTuning, usePipelineExecutorGetEngineProvisioning, usePipelineExecutorGetGlobalPipelineConfig, usePipelineExecutorGetGlobalSteps, usePipelineExecutorGetOrchestratorConfigSchema, usePipelineExecutorGetReferenceAudio, usePipelineExecutorGetReferenceAudioFiles, usePipelineExecutorGetReferenceImage, usePipelineExecutorGetSchema, usePipelineExecutorGetSelectedEngine, usePipelineExecutorGetVideoPipelineSteps, usePipelineExecutorInferCached, usePipelineExecutorKillEngine, usePipelineExecutorListLoadedEngines, usePipelineExecutorListReferenceImages, usePipelineExecutorListTemplates, usePipelineExecutorRunAudioTest, usePipelineExecutorRunPipeline, usePipelineExecutorRunPipelineBatch, usePipelineExecutorSaveTemplate, usePipelineExecutorSetVideoPipelineSteps, usePipelineExecutorSpinEngine, usePipelineExecutorUncacheFrame, usePipelineExecutorUpdateTemplate, usePipelineExecutorValidatePipeline, usePipelineOrchestratorApplyDeviceSettingsPatch, usePipelineOrchestratorAssignAudio, usePipelineOrchestratorAssignPipeline, usePipelineOrchestratorDeleteTemplate, usePipelineOrchestratorGetAgentLoad, usePipelineOrchestratorGetAgentSettings, usePipelineOrchestratorGetAudioAssignment, usePipelineOrchestratorGetAudioAssignments, usePipelineOrchestratorGetAudioNodeLoad, usePipelineOrchestratorGetCameraMetrics, usePipelineOrchestratorGetCameraSettings, usePipelineOrchestratorGetCameraStatus, usePipelineOrchestratorGetCameraStatuses, usePipelineOrchestratorGetCameraStepOverrides, usePipelineOrchestratorGetCameraSwitches, usePipelineOrchestratorGetCapabilityBindings, usePipelineOrchestratorGetDeviceLiveContribution, usePipelineOrchestratorGetDeviceSettingsContribution, usePipelineOrchestratorGetGlobalMetrics, usePipelineOrchestratorGetIngestOwner, usePipelineOrchestratorGetNodeInferenceDevices, usePipelineOrchestratorGetPipelineAssignment, usePipelineOrchestratorGetPipelineAssignments, usePipelineOrchestratorGetPipelineDevicePin, usePipelineOrchestratorGetReconcileFromDiskStatus, usePipelineOrchestratorListAgentSettings, usePipelineOrchestratorListTemplates, usePipelineOrchestratorPauseForStorageMigration, usePipelineOrchestratorRebalance, usePipelineOrchestratorReconcileFromDisk, usePipelineOrchestratorRemoveAgentSettings, usePipelineOrchestratorResetNodePipelineDefaults, usePipelineOrchestratorResolvePipeline, usePipelineOrchestratorResumeForStorageMigration, usePipelineOrchestratorSaveTemplate, usePipelineOrchestratorSetAgentCapabilities, usePipelineOrchestratorSetAgentDetectWeight, usePipelineOrchestratorSetAgentInferenceDevices, usePipelineOrchestratorSetAgentMaxCameras, usePipelineOrchestratorSetAgentReachableHost, usePipelineOrchestratorSetCameraPipelineForAgent, usePipelineOrchestratorSetCameraStepOverride, usePipelineOrchestratorSetCameraStepToggle, usePipelineOrchestratorSetCameraSwitch, usePipelineOrchestratorSetCapabilityBinding, usePipelineOrchestratorSetPipelineDevicePin, usePipelineOrchestratorUnassignAudio, usePipelineOrchestratorUnassignPipeline, usePipelineOrchestratorUpdateTemplate, usePipelineRunnerAttachCamera, usePipelineRunnerDetachCamera, usePipelineRunnerGetAllCameraMetrics, usePipelineRunnerGetCameraMetrics, usePipelineRunnerGetLocalCameras, usePipelineRunnerGetLocalLoad, usePipelineRunnerGetLocalMetrics, usePipelineRunnerGetNativeCrop, usePipelineRunnerReportMotion, usePipelineRunnerRunDetailSubtree, usePipelineRunnerRunStatelessStep, usePlateGalleryAssignPlate, usePlateGalleryAssignPlates, usePlateGalleryCorrectPlateText, usePlateGalleryCreateVehicle, usePlateGalleryDeletePlate, usePlateGalleryDeleteVehicle, usePlateGalleryGetPlateByTrack, usePlateGalleryGetPlateMedia, usePlateGalleryListPlates, usePlateGalleryListVehicleSamples, usePlateGalleryListVehicles, usePlateGalleryRemoveVehicleSample, usePlateGalleryRenameVehicle, usePlateGallerySearchPlates, usePlateGallerySuggestPlateClusters, usePlateGalleryUnassignPlate, usePlateGalleryUnassignPlates, usePlayerOverlayLayer, usePlayerOverlayLayers, usePlayerToolbarButton, usePlayerToolbarButtons, usePowerMeterGetStatus, usePresenceGetStatus, usePressureSensorGetStatus, usePrivacyMaskGetOptions, usePrivacyMaskGetStatus, usePrivacyMaskSetAudioEnabled, usePrivacyMaskSetMask, usePtzAutotrackGetSettings, usePtzAutotrackGetStatus, usePtzAutotrackSetEnabled, usePtzAutotrackSetSettings, usePtzContinuousMove, usePtzDeletePreset, usePtzGetOptions, usePtzGetPosition, usePtzGetPresets, usePtzGetStatus, usePtzGoHome, usePtzGoToPreset, usePtzMove, usePtzSavePreset, usePtzSetAutofocus, usePtzStop, useRebootReboot, useRecordedPlayback, useRecordingApplyDeviceSettingsPatch, useRecordingCancelRelocateJob, useRecordingCancelStorageMigrationMove, useRecordingDeleteFootprint, useRecordingExportCancelExport, useRecordingExportCreateExport, useRecordingExportDeleteExport, useRecordingExportGetDownloadUrl, useRecordingExportGetExport, useRecordingExportListExports, useRecordingExportReadExportBytes, useRecordingGetAvailability, useRecordingGetDaysWithRecordings, useRecordingGetDeviceConfig, useRecordingGetDeviceLiveContribution, useRecordingGetDeviceSettingsContribution, useRecordingGetPlaybackManifest, useRecordingGetStatus, useRecordingGetStorageMigrationMoveStatus, useRecordingGetStorageUsage, useRecordingListOpsLog, useRecordingListRelocateJobs, useRecordingLocateSegment, useRecordingPauseForStorageMigration, useRecordingPlanStorageRebalance, useRecordingPruneFootage, useRecordingReadGopBytes, useRecordingReadSegmentBytes, useRecordingRefreshStorageLocationsForMigration, useRecordingRelocateFootage, useRecordingRenderClip, useRecordingRenderGif, useRecordingRescanStorage, useRecordingResumeForStorageMigration, useRecordingSetDeviceConfig, useRecordingStartStorageMigrationMove, useRecordingStartStorageRebalance, useRemoteComponent, useSceneMonitorCaptureReference, useSceneMonitorCreateScene, useSceneMonitorDeleteReference, useSceneMonitorDeleteScene, useSceneMonitorGetStatus, useSceneMonitorListScenes, useSceneMonitorRecheckNow, useSceneMonitorResetScene, useSceneMonitorUpdateScene, useScriptRunnerGetStatus, useScriptRunnerRun, useScriptRunnerStop, useScrubController, useServerManagementApplyServerUpdate, useServerManagementCheckServerUpdate, useServerManagementGetServerPackageStatus, useServerManagementRestartServer, useServerManagementRollbackServerUpdate, useSettingsStoreCount, useSettingsStoreDeclareCollection, useSettingsStoreDelete, useSettingsStoreDeleteWhere, useSettingsStoreGet, useSettingsStoreHistogram, useSettingsStoreInsert, useSettingsStoreIsEmpty, useSettingsStoreQuery, useSettingsStoreSet, useSettingsStoreUpdate, useSettingsStoreUpdateWhere, useSmokeGetStatus, useSnapshotApplyDeviceSettingsPatch, useSnapshotGetDebugState, useSnapshotGetDeviceLiveContribution, useSnapshotGetDeviceSettingsContribution, useSnapshotGetSnapshot, useSnapshotGetSnapshotLinks, useSnapshotGetSnapshotOverview, useSnapshotGetStatus, useSnapshotInvalidateCache, useStorageAbortUpload, useStorageBeginDownload, useStorageBeginUpload, useStorageDelete, useStorageDeleteLocation, useStorageEndDownload, useStorageExists, useStorageFinalizeUpload, useStorageGetAvailableSpace, useStorageGetDefaultLocation, useStorageList, useStorageListLocationDeclarations, useStorageListLocations, useStorageListProviders, useStorageMigrationCancel, useStorageMigrationPlan, useStorageMigrationStart, useStorageMigrationStatus, useStorageRead, useStorageReadChunk, useStorageResolve, useStorageTestConfig, useStorageTestLocation, useStorageUpsertLocation, useStorageWrite, useStorageWriteChunk, useStreamBrokerAcquireEgressTranscode, useStreamBrokerApplyDeviceSettingsPatch, useStreamBrokerAssignProfile, useStreamBrokerFetchEventMedia, useStreamBrokerGetAllRtspEntries, useStreamBrokerGetBrokerStats, useStreamBrokerGetDeviceAudioMute, useStreamBrokerGetDeviceLiveContribution, useStreamBrokerGetDeviceSettingsContribution, useStreamBrokerGetPreBufferInfo, useStreamBrokerGetRtspEntry, useStreamBrokerGetRtspPort, useStreamBrokerGetStreamUrl, useStreamBrokerGetStreamWithCodec, useStreamBrokerIsRtspEnabled, useStreamBrokerKillClient, useStreamBrokerListAllCameraStreams, useStreamBrokerListAllProfileSlots, useStreamBrokerListClients, useStreamBrokerProbeStream, useStreamBrokerProduceEventMedia, useStreamBrokerPublishCameraStream, useStreamBrokerPullAudioChunks, useStreamBrokerPullFrameHandles, useStreamBrokerRegenerateRtspToken, useStreamBrokerReleaseEgressTranscode, useStreamBrokerReleaseStreamWithCodec, useStreamBrokerRenderPreBufferClip, useStreamBrokerRestartProfile, useStreamBrokerRetractCameraStream, useStreamBrokerSetDeviceAudioMute, useStreamBrokerSetPreBufferDuration, useStreamBrokerSetRtspEnabled, useStreamBrokerSubscribeAudioChunks, useStreamBrokerSubscribeFrames, useStreamBrokerUnassignProfile, useStreamBrokerUnsubscribeAudioChunks, useStreamBrokerUnsubscribeFrames, useStreamCatalogGetCatalog, useStreamParamsGetConfigSchema, useStreamParamsGetOptions, useStreamParamsGetStatus, useStreamParamsSetProfile, useSwitchGetStatus, useSwitchSetState, useSystem, useSystemDetectSiteLocation, useSystemFeatureFlags, useSystemForceRetentionCleanup, useSystemGetRetentionConfig, useSystemGetSiteLocation, useSystemHealth, useSystemInfo, useSystemMutation, useSystemNetworkAddresses, useSystemQuery, useSystemSetRetentionConfig, useSystemSetSiteLocation, useTamperGetStatus, useTemperatureSensorGetStatus, useTerminalSessionAdoptLegacyMonitor, useTerminalSessionClose, useTerminalSessionCreateInstance, useTerminalSessionDeleteInstance, useTerminalSessionListInstances, useTerminalSessionListLegacyCameras, useTerminalSessionListProfiles, useTerminalSessionListSessions, useTerminalSessionOpenSession, useTerminalSessionPullOutput, useTerminalSessionResize, useTerminalSessionSetInstanceEnabled, useTerminalSessionWriteInput, useThemeMode, useToastOnToast, useTurnProviderGetTurnServers, useUpdateGetStatus, useUpdateInstallUpdate, useUserManagementConfirmTotp, useUserManagementCreateApiKey, useUserManagementCreateScopedToken, useUserManagementCreateUser, useUserManagementDeleteUser, useUserManagementDisableTotp, useUserManagementGetTotpStatus, useUserManagementListApiKeys, useUserManagementListOauthSessions, useUserManagementListScopedTokens, useUserManagementListUsers, useUserManagementOauthExchangeCode, useUserManagementOauthIssueCode, useUserManagementOauthRefresh, useUserManagementOauthVerifyAccessToken, useUserManagementResetPassword, useUserManagementRevokeApiKey, useUserManagementRevokeOauthSession, useUserManagementRevokeScopedToken, useUserManagementSetUserScopes, useUserManagementSetupTotp, useUserManagementUpdateUser, useUserManagementValidateApiKey, useUserManagementValidateCredentials, useUserManagementValidateScopedToken, useUserManagementVerifyTotp, useVacuumControlGetStatus, useVacuumControlLocate, useVacuumControlPause, useVacuumControlReturnToBase, useVacuumControlSetFanSpeed, useVacuumControlStart, useVacuumControlStop, useValveClose, useValveGetStatus, useValveOpen, useValveSetPosition, useValveStop, useVibrationGetStatus, useVideoclipsGetClipPlayback, useVideoclipsListClips, useVodPlayback, useWaterHeaterGetStatus, useWaterHeaterSetAway, useWaterHeaterSetOperationMode, useWaterHeaterSetTargetTemp, useWeatherGetStatus, useWebrtcSessionAddIceCandidate, useWebrtcSessionCloseSession, useWebrtcSessionCreateSession, useWebrtcSessionGetIceCandidates, useWebrtcSessionGetSessionState, useWebrtcSessionHandleAnswer, useWebrtcSessionHandleOffer, useWebrtcSessionHasAdaptiveBitrate, useWebrtcSessionListStreams, useWidget, useWidgetMetadata, useWidgetRegistry, useZoneAnalyticsGetCameraHistory, useZoneAnalyticsGetCurrentSnapshot, useZoneAnalyticsGetUnzonedHistory, useZoneAnalyticsGetZoneHistory, useZoneEditing, useZoneRulesListRules, useZoneRulesSetRules, useZonesAddZone, useZonesListZones, useZonesRemoveZone, useZonesUpdateZone, vacuumStateMeta, validateScopes, valveStateMeta, variantLabel, waterHeaterPhase, waterHeaterTint, weatherConditionMeta, weatherTint };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@camstack/ui-library",
3
- "version": "1.2.56",
3
+ "version": "1.2.58",
4
4
  "type": "module",
5
5
  "main": "dist/index.cjs",
6
6
  "module": "dist/index.js",