@camstack/ui-library 1.2.68 → 1.2.69

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.
@@ -2,10 +2,22 @@
2
2
  * Burst-download the hub's `/adaptive-probe` blob and return Mbps.
3
3
  * Used as `hints.downlinkMbps` so adaptive selection is based on a measured
4
4
  * path, not viewport size or IP class. Failures return null (caller keeps
5
- * the default-high / ceiling path).
5
+ * the default-low / ceiling path and may stay on the lowest rung).
6
6
  */
7
7
  export declare const ADAPTIVE_PROBE_PATH = "/adaptive-probe";
8
8
  export declare const ADAPTIVE_PROBE_TIMEOUT_MS = 2500;
9
+ export type AdaptiveTier = 'high' | 'mid' | 'low';
10
+ /** Mbps needed to attempt each rung (bitrate / 0.6 headroom, rounded). */
11
+ export declare const DOWNLINK_HIGH_MBPS = 8;
12
+ export declare const DOWNLINK_MID_MBPS = 2.5;
13
+ /** Map a measured downlink onto the adaptive ladder. Mid is a real rung. */
14
+ export declare function suggestedAdaptiveTier(mbps: number): AdaptiveTier;
15
+ /** First connect never carries a cached probe — the broker starts lowest. */
16
+ export declare function stripDownlinkForColdStart<T extends {
17
+ readonly downlinkMbps?: number;
18
+ }>(hints: T): Omit<T, 'downlinkMbps'>;
19
+ /** After a probe, only mid/high justify a make-before-break climb. */
20
+ export declare function shouldUpgradeAfterProbe(mbps: number): boolean;
9
21
  export declare function measureDownlinkMbps(origin: string, deps: {
10
22
  readonly fetchImpl: (url: string, init: {
11
23
  signal: AbortSignal;
@@ -3,23 +3,12 @@ export type ModelOption = PipelineAddonSchema['models'][number];
3
3
  /**
4
4
  * Shared model picker — the ONE model-selection control across the app.
5
5
  *
6
- * Renders the grouped Family→Tier→Resolution→Variant selector
7
- * ({@link GroupedModelSelector}) when the step's models declare variant groups
8
- * (yolo26 / yolov9 …), else a flat `<select>` (face / plate / classifier
9
- * catalogs and operator-registered custom models).
10
- *
11
- * D214 — the catalog and the custom/ungrouped list are MUTUALLY EXCLUSIVE
12
- * views. A pinned custom model hides the grouped catalog entirely (both used
13
- * to render, and the grouped picker highlighted a family that was NOT the
14
- * selection); while a catalog model is pinned the custom list stays behind an
15
- * explicit affordance. A legacy/removed pin is surfaced with an explicit
16
- * banner rather than a silently mis-highlighted chip.
17
- *
18
- * Used by the pipeline stepper (`PipelineStep`), the agent/device step editor
19
- * (`AgentStepEditor`), and the benchmark — so the picker looks identical
20
- * everywhere. `value === ''` renders nothing selected (callers that support an
21
- * "Auto / node default" mode own that affordance and hide this picker while it
22
- * is active).
6
+ * Provider first (CamStack / Frigate / Scrypted / Custom), then inside that
7
+ * catalog the grouped Family→Tier→Variant selector when entries declare
8
+ * `group`, else a flat `<select>`. The persisted value stays the flat model
9
+ * id. `value === ''` renders nothing selected (callers that support an
10
+ * "Auto / node default" mode own that affordance and hide this picker while
11
+ * it is active).
23
12
  */
24
13
  export declare function ModelPicker({ models, value, onChange, disabled, }: {
25
14
  readonly models: readonly ModelOption[];
@@ -1067,6 +1067,10 @@ export declare const usePipelineAnalyticsGetTrack: typeof trpc.pipelineAnalytics
1067
1067
  export declare const usePipelineAnalyticsListTracks: typeof trpc.pipelineAnalytics.listTracks.useQuery;
1068
1068
  /** Generated alias around `trpc.pipelineAnalytics.listRecentTracks.useQuery`. */
1069
1069
  export declare const usePipelineAnalyticsListRecentTracks: typeof trpc.pipelineAnalytics.listRecentTracks.useQuery;
1070
+ /** Generated alias around `trpc.pipelineAnalytics.listGroups.useQuery`. */
1071
+ export declare const usePipelineAnalyticsListGroups: typeof trpc.pipelineAnalytics.listGroups.useQuery;
1072
+ /** Generated alias around `trpc.pipelineAnalytics.getGroup.useQuery`. */
1073
+ export declare const usePipelineAnalyticsGetGroup: typeof trpc.pipelineAnalytics.getGroup.useQuery;
1070
1074
  /** Generated alias around `trpc.pipelineAnalytics.clearTracks.useMutation`. */
1071
1075
  export declare const usePipelineAnalyticsClearTracks: typeof trpc.pipelineAnalytics.clearTracks.useMutation;
1072
1076
  /** Generated alias around `trpc.pipelineAnalytics.getMotionEvents.useQuery`. */
package/dist/index.cjs CHANGED
@@ -5981,6 +5981,10 @@ var usePipelineAnalyticsGetTrack = trpc.pipelineAnalytics.getTrack.useQuery;
5981
5981
  var usePipelineAnalyticsListTracks = trpc.pipelineAnalytics.listTracks.useQuery;
5982
5982
  /** Generated alias around `trpc.pipelineAnalytics.listRecentTracks.useQuery`. */
5983
5983
  var usePipelineAnalyticsListRecentTracks = trpc.pipelineAnalytics.listRecentTracks.useQuery;
5984
+ /** Generated alias around `trpc.pipelineAnalytics.listGroups.useQuery`. */
5985
+ var usePipelineAnalyticsListGroups = trpc.pipelineAnalytics.listGroups.useQuery;
5986
+ /** Generated alias around `trpc.pipelineAnalytics.getGroup.useQuery`. */
5987
+ var usePipelineAnalyticsGetGroup = trpc.pipelineAnalytics.getGroup.useQuery;
5984
5988
  /** Generated alias around `trpc.pipelineAnalytics.clearTracks.useMutation`. */
5985
5989
  var usePipelineAnalyticsClearTracks = trpc.pipelineAnalytics.clearTracks.useMutation;
5986
5990
  /** Generated alias around `trpc.pipelineAnalytics.getMotionEvents.useQuery`. */
@@ -21865,35 +21869,45 @@ function GroupedModelSelector({ catalog, value, onChange, disabled }) {
21865
21869
  }
21866
21870
  //#endregion
21867
21871
  //#region src/composites/model-picker.tsx
21872
+ var PROVIDER_LABEL = {
21873
+ camstack: "CamStack",
21874
+ frigate: "Frigate",
21875
+ scrypted: "Scrypted",
21876
+ custom: "Custom"
21877
+ };
21878
+ function providerOf(model) {
21879
+ return model.provider ?? "camstack";
21880
+ }
21868
21881
  /**
21869
21882
  * Shared model picker — the ONE model-selection control across the app.
21870
21883
  *
21871
- * Renders the grouped Family→Tier→Resolution→Variant selector
21872
- * ({@link GroupedModelSelector}) when the step's models declare variant groups
21873
- * (yolo26 / yolov9 …), else a flat `<select>` (face / plate / classifier
21874
- * catalogs and operator-registered custom models).
21875
- *
21876
- * D214 — the catalog and the custom/ungrouped list are MUTUALLY EXCLUSIVE
21877
- * views. A pinned custom model hides the grouped catalog entirely (both used
21878
- * to render, and the grouped picker highlighted a family that was NOT the
21879
- * selection); while a catalog model is pinned the custom list stays behind an
21880
- * explicit affordance. A legacy/removed pin is surfaced with an explicit
21881
- * banner rather than a silently mis-highlighted chip.
21882
- *
21883
- * Used by the pipeline stepper (`PipelineStep`), the agent/device step editor
21884
- * (`AgentStepEditor`), and the benchmark — so the picker looks identical
21885
- * everywhere. `value === ''` renders nothing selected (callers that support an
21886
- * "Auto / node default" mode own that affordance and hide this picker while it
21887
- * is active).
21884
+ * Provider first (CamStack / Frigate / Scrypted / Custom), then inside that
21885
+ * catalog the grouped Family→Tier→Variant selector when entries declare
21886
+ * `group`, else a flat `<select>`. The persisted value stays the flat model
21887
+ * id. `value === ''` renders nothing selected (callers that support an
21888
+ * "Auto / node default" mode own that affordance and hide this picker while
21889
+ * it is active).
21888
21890
  */
21889
21891
  function ModelPicker({ models, value, onChange, disabled }) {
21890
- const hasGroups = (0, react$1.useMemo)(() => (0, _camstack_types.buildModelVariantGroups)(models).length > 0, [models]);
21891
- const ungrouped = (0, react$1.useMemo)(() => models.filter((m) => m.group === void 0), [models]);
21892
- const customSelected = ungrouped.some((m) => m.id === value);
21893
- const [view, setView] = (0, react$1.useState)(customSelected ? "custom" : "catalog");
21892
+ const byProvider = (0, react$1.useMemo)(() => {
21893
+ const map = /* @__PURE__ */ new Map();
21894
+ for (const m of models) {
21895
+ const provider = providerOf(m);
21896
+ const list = map.get(provider);
21897
+ if (list) list.push(m);
21898
+ else map.set(provider, [m]);
21899
+ }
21900
+ return map;
21901
+ }, [models]);
21902
+ const presentProviders = (0, react$1.useMemo)(() => _camstack_types.MODEL_PROVIDER_IDS.filter((id) => (byProvider.get(id)?.length ?? 0) > 0), [byProvider]);
21903
+ const defaultProvider = (0, react$1.useMemo)(() => {
21904
+ const pinned = models.find((m) => m.id === value);
21905
+ return pinned ? providerOf(pinned) : void 0;
21906
+ }, [models, value]) ?? (presentProviders.includes("camstack") ? "camstack" : presentProviders[0] ?? "camstack");
21907
+ const [provider, setProvider] = (0, react$1.useState)(defaultProvider);
21894
21908
  (0, react$1.useEffect)(() => {
21895
- setView(customSelected ? "custom" : "catalog");
21896
- }, [customSelected, value]);
21909
+ setProvider(defaultProvider);
21910
+ }, [defaultProvider]);
21897
21911
  const unresolvedBanner = value !== "" && !models.some((m) => m.id === value) && /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
21898
21912
  className: "rounded border border-amber-500/40 bg-amber-500/10 px-2 py-1.5 text-[10px] text-amber-300",
21899
21913
  children: [
@@ -21905,6 +21919,9 @@ function ModelPicker({ models, value, onChange, disabled }) {
21905
21919
  ") is a legacy/removed model — no longer offered below. Pick a replacement to change it; Save persists whatever is selected here."
21906
21920
  ]
21907
21921
  });
21922
+ const scoped = byProvider.get(provider) ?? [];
21923
+ const grouped = scoped.filter((m) => m.group !== void 0);
21924
+ const ungrouped = scoped.filter((m) => m.group === void 0);
21908
21925
  const flatSelect = (opts, selectPlaceholder) => /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("select", {
21909
21926
  disabled,
21910
21927
  className: "w-full bg-surface border border-border rounded px-2 py-1 text-xs disabled:opacity-50",
@@ -21919,49 +21936,30 @@ function ModelPicker({ models, value, onChange, disabled }) {
21919
21936
  children: m.name
21920
21937
  }, m.id))]
21921
21938
  });
21922
- const switchButton = (label, target) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
21923
- type: "button",
21924
- disabled,
21925
- onClick: () => setView(target),
21926
- className: "text-[10px] text-primary hover:underline disabled:opacity-50",
21927
- children: label
21928
- });
21929
- if (!hasGroups) return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
21930
- className: "space-y-2",
21931
- children: [unresolvedBanner, flatSelect(models, "— select a model —")]
21932
- });
21933
- if (view === "custom" && ungrouped.length > 0) return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
21934
- className: "space-y-2",
21935
- children: [
21936
- unresolvedBanner,
21937
- /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
21938
- className: "flex items-center justify-between",
21939
- children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
21940
- className: "text-[10px] uppercase tracking-widest text-foreground-subtle",
21941
- children: "Custom / ungrouped model"
21942
- }), switchButton("Choose from catalog instead", "catalog")]
21943
- }),
21944
- flatSelect(ungrouped, "— custom / ungrouped model —"),
21945
- customSelected && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
21946
- className: "text-[10px] text-foreground-subtle",
21947
- children: "A custom model is pinned — the catalog selection is hidden while it is active."
21948
- })
21949
- ]
21950
- });
21951
21939
  return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
21952
21940
  className: "space-y-3",
21953
21941
  children: [
21954
21942
  unresolvedBanner,
21955
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)(GroupedModelSelector, {
21956
- catalog: models,
21943
+ presentProviders.length > 1 && /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", { children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", {
21944
+ className: "text-[10px] uppercase tracking-wide text-foreground-subtle mb-1.5",
21945
+ children: "Provider"
21946
+ }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
21947
+ className: "flex flex-wrap gap-1.5",
21948
+ children: presentProviders.map((id) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
21949
+ type: "button",
21950
+ disabled,
21951
+ onClick: () => setProvider(id),
21952
+ className: cn("rounded-full px-3 py-1 text-[11px] font-medium border transition-colors", id === provider ? "border-primary bg-primary/10 text-primary" : "border-border bg-background text-foreground-subtle hover:text-foreground hover:border-foreground-subtle/40", disabled ? "opacity-50 cursor-not-allowed" : "cursor-pointer"),
21953
+ children: PROVIDER_LABEL[id]
21954
+ }, id))
21955
+ })] }),
21956
+ grouped.length > 0 && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(GroupedModelSelector, {
21957
+ catalog: grouped,
21957
21958
  value,
21958
21959
  onChange,
21959
21960
  disabled
21960
21961
  }),
21961
- ungrouped.length > 0 && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
21962
- className: "flex justify-end",
21963
- children: switchButton("Use a custom model…", "custom")
21964
- })
21962
+ ungrouped.length > 0 && flatSelect(ungrouped, grouped.length > 0 ? "— other models —" : "— select a model —")
21965
21963
  ]
21966
21964
  });
21967
21965
  }
@@ -24268,10 +24266,25 @@ function nextReconnectAction(attempt, random = Math.random) {
24268
24266
  * Burst-download the hub's `/adaptive-probe` blob and return Mbps.
24269
24267
  * Used as `hints.downlinkMbps` so adaptive selection is based on a measured
24270
24268
  * path, not viewport size or IP class. Failures return null (caller keeps
24271
- * the default-high / ceiling path).
24269
+ * the default-low / ceiling path and may stay on the lowest rung).
24272
24270
  */
24273
24271
  var ADAPTIVE_PROBE_PATH = "/adaptive-probe";
24274
24272
  var ADAPTIVE_PROBE_TIMEOUT_MS = 2500;
24273
+ /** Map a measured downlink onto the adaptive ladder. Mid is a real rung. */
24274
+ function suggestedAdaptiveTier(mbps) {
24275
+ if (mbps >= 8) return "high";
24276
+ if (mbps >= 2.5) return "mid";
24277
+ return "low";
24278
+ }
24279
+ /** First connect never carries a cached probe — the broker starts lowest. */
24280
+ function stripDownlinkForColdStart(hints) {
24281
+ const { downlinkMbps: _ignored, ...rest } = hints;
24282
+ return rest;
24283
+ }
24284
+ /** After a probe, only mid/high justify a make-before-break climb. */
24285
+ function shouldUpgradeAfterProbe(mbps) {
24286
+ return suggestedAdaptiveTier(mbps) !== "low";
24287
+ }
24275
24288
  async function measureDownlinkMbps(origin, deps) {
24276
24289
  const base = origin.replace(/\/+$/, "");
24277
24290
  const ctrl = new AbortController();
@@ -24370,6 +24383,14 @@ async function measuredDownlinkMbps() {
24370
24383
  };
24371
24384
  return mbps;
24372
24385
  }
24386
+ function mergePlayerHints(autoHints, override, downlinkMbps, coldStart) {
24387
+ const merged = {
24388
+ ...autoHints,
24389
+ ...downlinkMbps !== void 0 ? { downlinkMbps } : {},
24390
+ ...override
24391
+ };
24392
+ return coldStart ? stripDownlinkForColdStart(merged) : merged;
24393
+ }
24373
24394
  var FIRST_FRAME_TIMEOUT_MS = 8e3;
24374
24395
  function CameraStreamPlayer({ serverUrl, streamKey, label, autoPlay = true, muted: initialMuted = true, showControls = true, showStats = false, onPlaybackStats, onClientNetworkSample, onConnectTiming, className = "", onStateChange, onError, onReconnectAttempt, overlay, createSession, sendAnswer, handleOffer, getIceServers, addIceCandidate, getIceCandidates, closeSession, getSessionState, reoffer, posterUrl, hintsOverride, reconnectSignal, onControlChannel, onVideoElement }) {
24375
24396
  const videoRef = (0, react$1.useRef)(null);
@@ -24402,6 +24423,8 @@ function CameraStreamPlayer({ serverUrl, streamKey, label, autoPlay = true, mute
24402
24423
  /** Highest `pendingRenegotiation.epoch` already acted on — act at most once
24403
24424
  * per epoch so a poll that re-reports the same pending change is a no-op. */
24404
24425
  const lastEpochRef = (0, react$1.useRef)(0);
24426
+ /** True once this adaptive session already climbed after the cold-start probe. */
24427
+ const probeUpgradeRef = (0, react$1.useRef)(false);
24405
24428
  /** True while a background re-offer PeerConnection is being built — guards
24406
24429
  * against a second poll firing a parallel renegotiation. */
24407
24430
  const renegotiatingRef = (0, react$1.useRef)(false);
@@ -24515,7 +24538,7 @@ function CameraStreamPlayer({ serverUrl, streamKey, label, autoPlay = true, mute
24515
24538
  tick();
24516
24539
  }, SESSION_STATE_POLL_MS);
24517
24540
  }, [getSessionState, reoffer]);
24518
- const connectServerOffer = (0, react$1.useCallback)(async (seamless = false) => {
24541
+ const connectServerOffer = (0, react$1.useCallback)(async (seamless = false, withDownlink = seamless) => {
24519
24542
  if (!mountedRef.current || !createSession || !sendAnswer) return;
24520
24543
  const oldPc = seamless ? pcRef.current : null;
24521
24544
  const oldSessions = seamless ? new Set(sessionIdsRef.current) : null;
@@ -24525,14 +24548,16 @@ function CameraStreamPlayer({ serverUrl, streamKey, label, autoPlay = true, mute
24525
24548
  const abort = new AbortController();
24526
24549
  connectAbortRef.current = abort;
24527
24550
  try {
24528
- const autoHints = computeClientHints(containerRef.current);
24529
- const downlinkMbps = await measuredDownlinkMbps();
24530
- const { sessionId, sdpOffer, iceServers } = await createSession({
24531
- ...autoHints,
24532
- ...downlinkMbps !== void 0 ? { downlinkMbps } : {},
24533
- ...hintsOverride
24534
- });
24551
+ const probePromise = !withDownlink ? measuredDownlinkMbps() : void 0;
24552
+ const { sessionId, sdpOffer, iceServers } = await createSession(mergePlayerHints(computeClientHints(containerRef.current), hintsOverride, withDownlink ? await measuredDownlinkMbps() : void 0, !withDownlink));
24535
24553
  sessionIdsRef.current.add(sessionId);
24554
+ if (probePromise !== void 0) probePromise.then((mbps) => {
24555
+ if (mbps === void 0 || !shouldUpgradeAfterProbe(mbps)) return;
24556
+ if (!mountedRef.current || abort.signal.aborted) return;
24557
+ if (probeUpgradeRef.current) return;
24558
+ probeUpgradeRef.current = true;
24559
+ connectServerOffer(true, true);
24560
+ });
24536
24561
  if (!mountedRef.current || abort.signal.aborted) {
24537
24562
  closeSession?.(sessionId).catch(() => {});
24538
24563
  sessionIdsRef.current.delete(sessionId);
@@ -24702,7 +24727,7 @@ function CameraStreamPlayer({ serverUrl, streamKey, label, autoPlay = true, mute
24702
24727
  updateState,
24703
24728
  onError
24704
24729
  ]);
24705
- const connectClientOffer = (0, react$1.useCallback)(async (seamless = false) => {
24730
+ const connectClientOffer = (0, react$1.useCallback)(async (seamless = false, withDownlink = seamless) => {
24706
24731
  if (!mountedRef.current || !handleOffer) return;
24707
24732
  const oldPc = seamless ? pcRef.current : null;
24708
24733
  const oldSessions = seamless ? new Set(sessionIdsRef.current) : null;
@@ -24715,6 +24740,7 @@ function CameraStreamPlayer({ serverUrl, streamKey, label, autoPlay = true, mute
24715
24740
  const ms = () => Math.round(performance.now() - t0);
24716
24741
  const timing = {};
24717
24742
  try {
24743
+ const probePromise = !withDownlink ? measuredDownlinkMbps() : void 0;
24718
24744
  const iceServers = await getIceServers?.();
24719
24745
  timing.iceServersMs = ms();
24720
24746
  if (!mountedRef.current || abort.signal.aborted) return;
@@ -24822,17 +24848,20 @@ function CameraStreamPlayer({ serverUrl, streamKey, label, autoPlay = true, mute
24822
24848
  await pc.setLocalDescription(offer);
24823
24849
  timing.localSetMs = ms();
24824
24850
  if (!mountedRef.current || abort.signal.aborted) return;
24825
- const downlinkMbps = await measuredDownlinkMbps();
24826
- const clientOfferHints = {
24827
- ...computeClientHints(containerRef.current),
24828
- ...downlinkMbps !== void 0 ? { downlinkMbps } : {},
24829
- ...hintsOverride
24830
- };
24851
+ const downlinkMbps = withDownlink ? await measuredDownlinkMbps() : void 0;
24852
+ const clientOfferHints = mergePlayerHints(computeClientHints(containerRef.current), hintsOverride, downlinkMbps, !withDownlink);
24831
24853
  const signalingStart = ms();
24832
24854
  const { sessionId: sid, sdpAnswer } = await handleOffer(pc.localDescription?.sdp ?? offer.sdp ?? "", void 0, clientOfferHints);
24833
24855
  timing.signalingRttMs = ms() - signalingStart;
24834
24856
  sessionId = sid;
24835
24857
  sessionIdsRef.current.add(sid);
24858
+ if (probePromise !== void 0) probePromise.then((mbps) => {
24859
+ if (mbps === void 0 || !shouldUpgradeAfterProbe(mbps)) return;
24860
+ if (!mountedRef.current || abort.signal.aborted) return;
24861
+ if (probeUpgradeRef.current) return;
24862
+ probeUpgradeRef.current = true;
24863
+ connectClientOffer(true, true);
24864
+ });
24836
24865
  activeSessionIdRef.current = sid;
24837
24866
  if (!mountedRef.current || abort.signal.aborted) {
24838
24867
  closeSession?.(sid).catch(() => {});
@@ -25143,6 +25172,7 @@ function CameraStreamPlayer({ serverUrl, streamKey, label, autoPlay = true, mute
25143
25172
  if (!serverChanged && !keyChanged) return;
25144
25173
  if (!mountedRef.current) return;
25145
25174
  reconnectAttemptsRef.current = 0;
25175
+ probeUpgradeRef.current = false;
25146
25176
  if (serverChanged) {
25147
25177
  cleanup();
25148
25178
  connect();
@@ -49695,6 +49725,7 @@ exports.usePipelineAnalyticsGetDeviceSettingsContribution = usePipelineAnalytics
49695
49725
  exports.usePipelineAnalyticsGetEventDensity = usePipelineAnalyticsGetEventDensity;
49696
49726
  exports.usePipelineAnalyticsGetEventMedia = usePipelineAnalyticsGetEventMedia;
49697
49727
  exports.usePipelineAnalyticsGetEventStoreFootprint = usePipelineAnalyticsGetEventStoreFootprint;
49728
+ exports.usePipelineAnalyticsGetGroup = usePipelineAnalyticsGetGroup;
49698
49729
  exports.usePipelineAnalyticsGetKeyEvents = usePipelineAnalyticsGetKeyEvents;
49699
49730
  exports.usePipelineAnalyticsGetMotionEvents = usePipelineAnalyticsGetMotionEvents;
49700
49731
  exports.usePipelineAnalyticsGetObjectEmbeddingRebuildStatus = usePipelineAnalyticsGetObjectEmbeddingRebuildStatus;
@@ -49709,6 +49740,7 @@ exports.usePipelineAnalyticsGetTrainingExportSummary = usePipelineAnalyticsGetTr
49709
49740
  exports.usePipelineAnalyticsGetTrainingExportUrl = usePipelineAnalyticsGetTrainingExportUrl;
49710
49741
  exports.usePipelineAnalyticsListEventKinds = usePipelineAnalyticsListEventKinds;
49711
49742
  exports.usePipelineAnalyticsListEventKindsBatch = usePipelineAnalyticsListEventKindsBatch;
49743
+ exports.usePipelineAnalyticsListGroups = usePipelineAnalyticsListGroups;
49712
49744
  exports.usePipelineAnalyticsListOpsLog = usePipelineAnalyticsListOpsLog;
49713
49745
  exports.usePipelineAnalyticsListRecentTracks = usePipelineAnalyticsListRecentTracks;
49714
49746
  exports.usePipelineAnalyticsListRetrainAnnotations = usePipelineAnalyticsListRetrainAnnotations;
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, 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, clusterStepSettingFieldsFor, createDeviceProxy, createLazyTrpcSource, createSliceHandle, deriveRecordingMode, describeModelVariant, findTimezone, resolveDeviceControlKind, resolveRecordingProfiles, resolveVariantModelId, resolveViewableDeviceIds, selectAssignedProfileSlots, 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, MODEL_PROVIDER_IDS, PET_FEEDER_MANUAL_FEED_MAX, PET_FEEDER_MANUAL_FEED_MIN, RecordingConfigSchema, RecordingStatusSchema, SourceInfoSchema, TIMEZONES, buildModelVariantGroups, canConvertUnit, clusterStepSettingFieldsFor, 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
@@ -5957,6 +5957,10 @@ var usePipelineAnalyticsGetTrack = trpc.pipelineAnalytics.getTrack.useQuery;
5957
5957
  var usePipelineAnalyticsListTracks = trpc.pipelineAnalytics.listTracks.useQuery;
5958
5958
  /** Generated alias around `trpc.pipelineAnalytics.listRecentTracks.useQuery`. */
5959
5959
  var usePipelineAnalyticsListRecentTracks = trpc.pipelineAnalytics.listRecentTracks.useQuery;
5960
+ /** Generated alias around `trpc.pipelineAnalytics.listGroups.useQuery`. */
5961
+ var usePipelineAnalyticsListGroups = trpc.pipelineAnalytics.listGroups.useQuery;
5962
+ /** Generated alias around `trpc.pipelineAnalytics.getGroup.useQuery`. */
5963
+ var usePipelineAnalyticsGetGroup = trpc.pipelineAnalytics.getGroup.useQuery;
5960
5964
  /** Generated alias around `trpc.pipelineAnalytics.clearTracks.useMutation`. */
5961
5965
  var usePipelineAnalyticsClearTracks = trpc.pipelineAnalytics.clearTracks.useMutation;
5962
5966
  /** Generated alias around `trpc.pipelineAnalytics.getMotionEvents.useQuery`. */
@@ -21841,35 +21845,45 @@ function GroupedModelSelector({ catalog, value, onChange, disabled }) {
21841
21845
  }
21842
21846
  //#endregion
21843
21847
  //#region src/composites/model-picker.tsx
21848
+ var PROVIDER_LABEL = {
21849
+ camstack: "CamStack",
21850
+ frigate: "Frigate",
21851
+ scrypted: "Scrypted",
21852
+ custom: "Custom"
21853
+ };
21854
+ function providerOf(model) {
21855
+ return model.provider ?? "camstack";
21856
+ }
21844
21857
  /**
21845
21858
  * Shared model picker — the ONE model-selection control across the app.
21846
21859
  *
21847
- * Renders the grouped Family→Tier→Resolution→Variant selector
21848
- * ({@link GroupedModelSelector}) when the step's models declare variant groups
21849
- * (yolo26 / yolov9 …), else a flat `<select>` (face / plate / classifier
21850
- * catalogs and operator-registered custom models).
21851
- *
21852
- * D214 — the catalog and the custom/ungrouped list are MUTUALLY EXCLUSIVE
21853
- * views. A pinned custom model hides the grouped catalog entirely (both used
21854
- * to render, and the grouped picker highlighted a family that was NOT the
21855
- * selection); while a catalog model is pinned the custom list stays behind an
21856
- * explicit affordance. A legacy/removed pin is surfaced with an explicit
21857
- * banner rather than a silently mis-highlighted chip.
21858
- *
21859
- * Used by the pipeline stepper (`PipelineStep`), the agent/device step editor
21860
- * (`AgentStepEditor`), and the benchmark — so the picker looks identical
21861
- * everywhere. `value === ''` renders nothing selected (callers that support an
21862
- * "Auto / node default" mode own that affordance and hide this picker while it
21863
- * is active).
21860
+ * Provider first (CamStack / Frigate / Scrypted / Custom), then inside that
21861
+ * catalog the grouped Family→Tier→Variant selector when entries declare
21862
+ * `group`, else a flat `<select>`. The persisted value stays the flat model
21863
+ * id. `value === ''` renders nothing selected (callers that support an
21864
+ * "Auto / node default" mode own that affordance and hide this picker while
21865
+ * it is active).
21864
21866
  */
21865
21867
  function ModelPicker({ models, value, onChange, disabled }) {
21866
- const hasGroups = useMemo(() => buildModelVariantGroups(models).length > 0, [models]);
21867
- const ungrouped = useMemo(() => models.filter((m) => m.group === void 0), [models]);
21868
- const customSelected = ungrouped.some((m) => m.id === value);
21869
- const [view, setView] = useState(customSelected ? "custom" : "catalog");
21868
+ const byProvider = useMemo(() => {
21869
+ const map = /* @__PURE__ */ new Map();
21870
+ for (const m of models) {
21871
+ const provider = providerOf(m);
21872
+ const list = map.get(provider);
21873
+ if (list) list.push(m);
21874
+ else map.set(provider, [m]);
21875
+ }
21876
+ return map;
21877
+ }, [models]);
21878
+ const presentProviders = useMemo(() => MODEL_PROVIDER_IDS.filter((id) => (byProvider.get(id)?.length ?? 0) > 0), [byProvider]);
21879
+ const defaultProvider = useMemo(() => {
21880
+ const pinned = models.find((m) => m.id === value);
21881
+ return pinned ? providerOf(pinned) : void 0;
21882
+ }, [models, value]) ?? (presentProviders.includes("camstack") ? "camstack" : presentProviders[0] ?? "camstack");
21883
+ const [provider, setProvider] = useState(defaultProvider);
21870
21884
  useEffect(() => {
21871
- setView(customSelected ? "custom" : "catalog");
21872
- }, [customSelected, value]);
21885
+ setProvider(defaultProvider);
21886
+ }, [defaultProvider]);
21873
21887
  const unresolvedBanner = value !== "" && !models.some((m) => m.id === value) && /* @__PURE__ */ jsxs("div", {
21874
21888
  className: "rounded border border-amber-500/40 bg-amber-500/10 px-2 py-1.5 text-[10px] text-amber-300",
21875
21889
  children: [
@@ -21881,6 +21895,9 @@ function ModelPicker({ models, value, onChange, disabled }) {
21881
21895
  ") is a legacy/removed model — no longer offered below. Pick a replacement to change it; Save persists whatever is selected here."
21882
21896
  ]
21883
21897
  });
21898
+ const scoped = byProvider.get(provider) ?? [];
21899
+ const grouped = scoped.filter((m) => m.group !== void 0);
21900
+ const ungrouped = scoped.filter((m) => m.group === void 0);
21884
21901
  const flatSelect = (opts, selectPlaceholder) => /* @__PURE__ */ jsxs("select", {
21885
21902
  disabled,
21886
21903
  className: "w-full bg-surface border border-border rounded px-2 py-1 text-xs disabled:opacity-50",
@@ -21895,49 +21912,30 @@ function ModelPicker({ models, value, onChange, disabled }) {
21895
21912
  children: m.name
21896
21913
  }, m.id))]
21897
21914
  });
21898
- const switchButton = (label, target) => /* @__PURE__ */ jsx("button", {
21899
- type: "button",
21900
- disabled,
21901
- onClick: () => setView(target),
21902
- className: "text-[10px] text-primary hover:underline disabled:opacity-50",
21903
- children: label
21904
- });
21905
- if (!hasGroups) return /* @__PURE__ */ jsxs("div", {
21906
- className: "space-y-2",
21907
- children: [unresolvedBanner, flatSelect(models, "— select a model —")]
21908
- });
21909
- if (view === "custom" && ungrouped.length > 0) return /* @__PURE__ */ jsxs("div", {
21910
- className: "space-y-2",
21911
- children: [
21912
- unresolvedBanner,
21913
- /* @__PURE__ */ jsxs("div", {
21914
- className: "flex items-center justify-between",
21915
- children: [/* @__PURE__ */ jsx("div", {
21916
- className: "text-[10px] uppercase tracking-widest text-foreground-subtle",
21917
- children: "Custom / ungrouped model"
21918
- }), switchButton("Choose from catalog instead", "catalog")]
21919
- }),
21920
- flatSelect(ungrouped, "— custom / ungrouped model —"),
21921
- customSelected && /* @__PURE__ */ jsx("div", {
21922
- className: "text-[10px] text-foreground-subtle",
21923
- children: "A custom model is pinned — the catalog selection is hidden while it is active."
21924
- })
21925
- ]
21926
- });
21927
21915
  return /* @__PURE__ */ jsxs("div", {
21928
21916
  className: "space-y-3",
21929
21917
  children: [
21930
21918
  unresolvedBanner,
21931
- /* @__PURE__ */ jsx(GroupedModelSelector, {
21932
- catalog: models,
21919
+ presentProviders.length > 1 && /* @__PURE__ */ jsxs("div", { children: [/* @__PURE__ */ jsx("p", {
21920
+ className: "text-[10px] uppercase tracking-wide text-foreground-subtle mb-1.5",
21921
+ children: "Provider"
21922
+ }), /* @__PURE__ */ jsx("div", {
21923
+ className: "flex flex-wrap gap-1.5",
21924
+ children: presentProviders.map((id) => /* @__PURE__ */ jsx("button", {
21925
+ type: "button",
21926
+ disabled,
21927
+ onClick: () => setProvider(id),
21928
+ className: cn("rounded-full px-3 py-1 text-[11px] font-medium border transition-colors", id === provider ? "border-primary bg-primary/10 text-primary" : "border-border bg-background text-foreground-subtle hover:text-foreground hover:border-foreground-subtle/40", disabled ? "opacity-50 cursor-not-allowed" : "cursor-pointer"),
21929
+ children: PROVIDER_LABEL[id]
21930
+ }, id))
21931
+ })] }),
21932
+ grouped.length > 0 && /* @__PURE__ */ jsx(GroupedModelSelector, {
21933
+ catalog: grouped,
21933
21934
  value,
21934
21935
  onChange,
21935
21936
  disabled
21936
21937
  }),
21937
- ungrouped.length > 0 && /* @__PURE__ */ jsx("div", {
21938
- className: "flex justify-end",
21939
- children: switchButton("Use a custom model…", "custom")
21940
- })
21938
+ ungrouped.length > 0 && flatSelect(ungrouped, grouped.length > 0 ? "— other models —" : "— select a model —")
21941
21939
  ]
21942
21940
  });
21943
21941
  }
@@ -24244,10 +24242,25 @@ function nextReconnectAction(attempt, random = Math.random) {
24244
24242
  * Burst-download the hub's `/adaptive-probe` blob and return Mbps.
24245
24243
  * Used as `hints.downlinkMbps` so adaptive selection is based on a measured
24246
24244
  * path, not viewport size or IP class. Failures return null (caller keeps
24247
- * the default-high / ceiling path).
24245
+ * the default-low / ceiling path and may stay on the lowest rung).
24248
24246
  */
24249
24247
  var ADAPTIVE_PROBE_PATH = "/adaptive-probe";
24250
24248
  var ADAPTIVE_PROBE_TIMEOUT_MS = 2500;
24249
+ /** Map a measured downlink onto the adaptive ladder. Mid is a real rung. */
24250
+ function suggestedAdaptiveTier(mbps) {
24251
+ if (mbps >= 8) return "high";
24252
+ if (mbps >= 2.5) return "mid";
24253
+ return "low";
24254
+ }
24255
+ /** First connect never carries a cached probe — the broker starts lowest. */
24256
+ function stripDownlinkForColdStart(hints) {
24257
+ const { downlinkMbps: _ignored, ...rest } = hints;
24258
+ return rest;
24259
+ }
24260
+ /** After a probe, only mid/high justify a make-before-break climb. */
24261
+ function shouldUpgradeAfterProbe(mbps) {
24262
+ return suggestedAdaptiveTier(mbps) !== "low";
24263
+ }
24251
24264
  async function measureDownlinkMbps(origin, deps) {
24252
24265
  const base = origin.replace(/\/+$/, "");
24253
24266
  const ctrl = new AbortController();
@@ -24346,6 +24359,14 @@ async function measuredDownlinkMbps() {
24346
24359
  };
24347
24360
  return mbps;
24348
24361
  }
24362
+ function mergePlayerHints(autoHints, override, downlinkMbps, coldStart) {
24363
+ const merged = {
24364
+ ...autoHints,
24365
+ ...downlinkMbps !== void 0 ? { downlinkMbps } : {},
24366
+ ...override
24367
+ };
24368
+ return coldStart ? stripDownlinkForColdStart(merged) : merged;
24369
+ }
24349
24370
  var FIRST_FRAME_TIMEOUT_MS = 8e3;
24350
24371
  function CameraStreamPlayer({ serverUrl, streamKey, label, autoPlay = true, muted: initialMuted = true, showControls = true, showStats = false, onPlaybackStats, onClientNetworkSample, onConnectTiming, className = "", onStateChange, onError, onReconnectAttempt, overlay, createSession, sendAnswer, handleOffer, getIceServers, addIceCandidate, getIceCandidates, closeSession, getSessionState, reoffer, posterUrl, hintsOverride, reconnectSignal, onControlChannel, onVideoElement }) {
24351
24372
  const videoRef = useRef(null);
@@ -24378,6 +24399,8 @@ function CameraStreamPlayer({ serverUrl, streamKey, label, autoPlay = true, mute
24378
24399
  /** Highest `pendingRenegotiation.epoch` already acted on — act at most once
24379
24400
  * per epoch so a poll that re-reports the same pending change is a no-op. */
24380
24401
  const lastEpochRef = useRef(0);
24402
+ /** True once this adaptive session already climbed after the cold-start probe. */
24403
+ const probeUpgradeRef = useRef(false);
24381
24404
  /** True while a background re-offer PeerConnection is being built — guards
24382
24405
  * against a second poll firing a parallel renegotiation. */
24383
24406
  const renegotiatingRef = useRef(false);
@@ -24491,7 +24514,7 @@ function CameraStreamPlayer({ serverUrl, streamKey, label, autoPlay = true, mute
24491
24514
  tick();
24492
24515
  }, SESSION_STATE_POLL_MS);
24493
24516
  }, [getSessionState, reoffer]);
24494
- const connectServerOffer = useCallback(async (seamless = false) => {
24517
+ const connectServerOffer = useCallback(async (seamless = false, withDownlink = seamless) => {
24495
24518
  if (!mountedRef.current || !createSession || !sendAnswer) return;
24496
24519
  const oldPc = seamless ? pcRef.current : null;
24497
24520
  const oldSessions = seamless ? new Set(sessionIdsRef.current) : null;
@@ -24501,14 +24524,16 @@ function CameraStreamPlayer({ serverUrl, streamKey, label, autoPlay = true, mute
24501
24524
  const abort = new AbortController();
24502
24525
  connectAbortRef.current = abort;
24503
24526
  try {
24504
- const autoHints = computeClientHints(containerRef.current);
24505
- const downlinkMbps = await measuredDownlinkMbps();
24506
- const { sessionId, sdpOffer, iceServers } = await createSession({
24507
- ...autoHints,
24508
- ...downlinkMbps !== void 0 ? { downlinkMbps } : {},
24509
- ...hintsOverride
24510
- });
24527
+ const probePromise = !withDownlink ? measuredDownlinkMbps() : void 0;
24528
+ const { sessionId, sdpOffer, iceServers } = await createSession(mergePlayerHints(computeClientHints(containerRef.current), hintsOverride, withDownlink ? await measuredDownlinkMbps() : void 0, !withDownlink));
24511
24529
  sessionIdsRef.current.add(sessionId);
24530
+ if (probePromise !== void 0) probePromise.then((mbps) => {
24531
+ if (mbps === void 0 || !shouldUpgradeAfterProbe(mbps)) return;
24532
+ if (!mountedRef.current || abort.signal.aborted) return;
24533
+ if (probeUpgradeRef.current) return;
24534
+ probeUpgradeRef.current = true;
24535
+ connectServerOffer(true, true);
24536
+ });
24512
24537
  if (!mountedRef.current || abort.signal.aborted) {
24513
24538
  closeSession?.(sessionId).catch(() => {});
24514
24539
  sessionIdsRef.current.delete(sessionId);
@@ -24678,7 +24703,7 @@ function CameraStreamPlayer({ serverUrl, streamKey, label, autoPlay = true, mute
24678
24703
  updateState,
24679
24704
  onError
24680
24705
  ]);
24681
- const connectClientOffer = useCallback(async (seamless = false) => {
24706
+ const connectClientOffer = useCallback(async (seamless = false, withDownlink = seamless) => {
24682
24707
  if (!mountedRef.current || !handleOffer) return;
24683
24708
  const oldPc = seamless ? pcRef.current : null;
24684
24709
  const oldSessions = seamless ? new Set(sessionIdsRef.current) : null;
@@ -24691,6 +24716,7 @@ function CameraStreamPlayer({ serverUrl, streamKey, label, autoPlay = true, mute
24691
24716
  const ms = () => Math.round(performance.now() - t0);
24692
24717
  const timing = {};
24693
24718
  try {
24719
+ const probePromise = !withDownlink ? measuredDownlinkMbps() : void 0;
24694
24720
  const iceServers = await getIceServers?.();
24695
24721
  timing.iceServersMs = ms();
24696
24722
  if (!mountedRef.current || abort.signal.aborted) return;
@@ -24798,17 +24824,20 @@ function CameraStreamPlayer({ serverUrl, streamKey, label, autoPlay = true, mute
24798
24824
  await pc.setLocalDescription(offer);
24799
24825
  timing.localSetMs = ms();
24800
24826
  if (!mountedRef.current || abort.signal.aborted) return;
24801
- const downlinkMbps = await measuredDownlinkMbps();
24802
- const clientOfferHints = {
24803
- ...computeClientHints(containerRef.current),
24804
- ...downlinkMbps !== void 0 ? { downlinkMbps } : {},
24805
- ...hintsOverride
24806
- };
24827
+ const downlinkMbps = withDownlink ? await measuredDownlinkMbps() : void 0;
24828
+ const clientOfferHints = mergePlayerHints(computeClientHints(containerRef.current), hintsOverride, downlinkMbps, !withDownlink);
24807
24829
  const signalingStart = ms();
24808
24830
  const { sessionId: sid, sdpAnswer } = await handleOffer(pc.localDescription?.sdp ?? offer.sdp ?? "", void 0, clientOfferHints);
24809
24831
  timing.signalingRttMs = ms() - signalingStart;
24810
24832
  sessionId = sid;
24811
24833
  sessionIdsRef.current.add(sid);
24834
+ if (probePromise !== void 0) probePromise.then((mbps) => {
24835
+ if (mbps === void 0 || !shouldUpgradeAfterProbe(mbps)) return;
24836
+ if (!mountedRef.current || abort.signal.aborted) return;
24837
+ if (probeUpgradeRef.current) return;
24838
+ probeUpgradeRef.current = true;
24839
+ connectClientOffer(true, true);
24840
+ });
24812
24841
  activeSessionIdRef.current = sid;
24813
24842
  if (!mountedRef.current || abort.signal.aborted) {
24814
24843
  closeSession?.(sid).catch(() => {});
@@ -25119,6 +25148,7 @@ function CameraStreamPlayer({ serverUrl, streamKey, label, autoPlay = true, mute
25119
25148
  if (!serverChanged && !keyChanged) return;
25120
25149
  if (!mountedRef.current) return;
25121
25150
  reconnectAttemptsRef.current = 0;
25151
+ probeUpgradeRef.current = false;
25122
25152
  if (serverChanged) {
25123
25153
  cleanup();
25124
25154
  connect();
@@ -48724,4 +48754,4 @@ var SceneMonitorEditor = lazy(() => import("./SceneMonitorEditor-d_A4kO-M.js").t
48724
48754
  /** Lazy-wrapped `PrivacyMaskSettings` — code-split off the main bundle. */
48725
48755
  var PrivacyMaskSettings = lazy(() => import("./PrivacyMaskSettings-DNSLc6ww.js").then((m) => ({ default: m.PrivacyMaskSettings })));
48726
48756
  //#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, useLocalNetworkDownloadCa, useLocalNetworkGetAllowedAddresses, useLocalNetworkGetConnectionEndpoints, useLocalNetworkGetNotificationEndpoint, useLocalNetworkGetPreferred, useLocalNetworkGetTlsStatus, useLocalNetworkGetViewerEndpoints, useLocalNetworkList, useLocalNetworkRegenerateCertificate, useLocalNetworkResetAllowlistToBestMatch, useLocalNetworkRevertToGeneratedCertificate, useLocalNetworkSetAllowedAddresses, useLocalNetworkSetNotificationEndpoint, useLocalNetworkSetViewerEndpoints, useLocalNetworkUploadCertificate, 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, useTerminalSessionUpdateInstance, 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 };
48757
+ 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, useLocalNetworkDownloadCa, useLocalNetworkGetAllowedAddresses, useLocalNetworkGetConnectionEndpoints, useLocalNetworkGetNotificationEndpoint, useLocalNetworkGetPreferred, useLocalNetworkGetTlsStatus, useLocalNetworkGetViewerEndpoints, useLocalNetworkList, useLocalNetworkRegenerateCertificate, useLocalNetworkResetAllowlistToBestMatch, useLocalNetworkRevertToGeneratedCertificate, useLocalNetworkSetAllowedAddresses, useLocalNetworkSetNotificationEndpoint, useLocalNetworkSetViewerEndpoints, useLocalNetworkUploadCertificate, 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, usePipelineAnalyticsGetGroup, usePipelineAnalyticsGetKeyEvents, usePipelineAnalyticsGetMotionEvents, usePipelineAnalyticsGetObjectEmbeddingRebuildStatus, usePipelineAnalyticsGetObjectEvents, usePipelineAnalyticsGetRetrainExportUrl, usePipelineAnalyticsGetRetrainFrameImage, usePipelineAnalyticsGetSensorEvents, usePipelineAnalyticsGetStorageMigrationMoveStatus, usePipelineAnalyticsGetTrack, usePipelineAnalyticsGetTrackMedia, usePipelineAnalyticsGetTrainingExportSummary, usePipelineAnalyticsGetTrainingExportUrl, usePipelineAnalyticsListEventKinds, usePipelineAnalyticsListEventKindsBatch, usePipelineAnalyticsListGroups, 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, useTerminalSessionUpdateInstance, 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.68",
3
+ "version": "1.2.69",
4
4
  "type": "module",
5
5
  "main": "dist/index.cjs",
6
6
  "module": "dist/index.js",