@camstack/ui-library 1.1.43 → 1.1.45
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.
- package/dist/composites/device-controls/control-registry.d.ts +14 -5
- package/dist/composites/device-step-matrix.d.ts +33 -0
- package/dist/composites/index.d.ts +3 -0
- package/dist/composites/pipeline-matrix-shared.d.ts +69 -0
- package/dist/composites/pipeline-tree-matrix.d.ts +2 -14
- package/dist/generated/system-hooks.d.ts +2 -0
- package/dist/index.cjs +530 -252
- package/dist/index.js +529 -254
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -3,7 +3,7 @@ import * as __mfHostReact from "react";
|
|
|
3
3
|
import React, { Fragment, Suspense, createContext, createElement, forwardRef, lazy, useCallback, useContext, useEffect, useId, useLayoutEffect, useMemo, useReducer, useRef, useState, useSyncExternalStore } from "react";
|
|
4
4
|
import * as __mfHostReactJsxRuntime from "react/jsx-runtime";
|
|
5
5
|
import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
|
|
6
|
-
import { ALL_CAPABILITY_DEFINITIONS, DEFAULT_EVENT_COLOR, DEFAULT_SCRUB_THUMBNAIL_PRESET, DeviceExportStatusSchema, DeviceFeature, DeviceRole, DeviceType, EVENT_TAXONOMY, EventCategory, ExposedDeviceSchema, KNOWN_CAP_NAMES, PET_FEEDER_MANUAL_FEED_MAX, PET_FEEDER_MANUAL_FEED_MIN, RecordingConfigSchema, RecordingStatusSchema, SCRUB_THUMBNAIL_PRESET_LABELS, SCRUB_THUMBNAIL_PRESET_ORDER, ScrubThumbnailPresetSchema, SourceInfoSchema, TIMEZONES, buildModelVariantGroups, canConvertUnit, createDeviceProxy, createLazyTrpcSource, createSliceHandle, describeModelVariant, findTimezone, resolveVariantModelId, tryConvertUnit } from "@camstack/types";
|
|
6
|
+
import { ALL_CAPABILITY_DEFINITIONS, DEFAULT_EVENT_COLOR, DEFAULT_SCRUB_THUMBNAIL_PRESET, 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, SCRUB_THUMBNAIL_PRESET_LABELS, SCRUB_THUMBNAIL_PRESET_ORDER, ScrubThumbnailPresetSchema, SourceInfoSchema, TIMEZONES, buildModelVariantGroups, canConvertUnit, createDeviceProxy, createLazyTrpcSource, createSliceHandle, describeModelVariant, findTimezone, resolveDeviceControlKind, resolveVariantModelId, tryConvertUnit } from "@camstack/types";
|
|
7
7
|
import * as __mfHostReactDOM from "react-dom";
|
|
8
8
|
import { createPortal } from "react-dom";
|
|
9
9
|
import * as __mfHostReactDOMClient from "react-dom/client";
|
|
@@ -14402,7 +14402,7 @@ function buildDisplayStep(addon, cfg) {
|
|
|
14402
14402
|
function computeEffective(mode, agentDefault, patch) {
|
|
14403
14403
|
if (mode !== "device" || !patch) return agentDefault;
|
|
14404
14404
|
return {
|
|
14405
|
-
enabled:
|
|
14405
|
+
enabled: agentDefault.enabled,
|
|
14406
14406
|
modelId: patch.modelId ?? agentDefault.modelId,
|
|
14407
14407
|
settings: patch.settings ?? agentDefault.settings
|
|
14408
14408
|
};
|
|
@@ -14416,97 +14416,62 @@ function AgentModeEditor({ addon, agentDefault, modelsForFormat, onChangeAgentCo
|
|
|
14416
14416
|
};
|
|
14417
14417
|
return /* @__PURE__ */ jsxs("div", {
|
|
14418
14418
|
className: "space-y-4 text-xs",
|
|
14419
|
-
children: [
|
|
14420
|
-
|
|
14421
|
-
|
|
14422
|
-
|
|
14423
|
-
|
|
14424
|
-
|
|
14425
|
-
|
|
14426
|
-
|
|
14427
|
-
|
|
14428
|
-
|
|
14429
|
-
|
|
14430
|
-
|
|
14431
|
-
}),
|
|
14432
|
-
|
|
14433
|
-
|
|
14434
|
-
|
|
14435
|
-
|
|
14436
|
-
|
|
14437
|
-
|
|
14438
|
-
|
|
14439
|
-
})] }),
|
|
14440
|
-
(addon.configSchema?.length ?? 0) > 0 && /* @__PURE__ */ jsxs("div", {
|
|
14441
|
-
className: "pt-2 border-t border-border/50 space-y-3",
|
|
14442
|
-
children: [/* @__PURE__ */ jsx("div", {
|
|
14443
|
-
className: "text-[10px] uppercase tracking-widest text-foreground-subtle",
|
|
14444
|
-
children: "Settings"
|
|
14445
|
-
}), addon.configSchema?.map((field) => /* @__PURE__ */ jsx(ConfigSchemaField, {
|
|
14446
|
-
field,
|
|
14447
|
-
allFields: addon.configSchema ?? [],
|
|
14448
|
-
step: buildDisplayStep(addon, agentDefault),
|
|
14449
|
-
disabled: false,
|
|
14450
|
-
onChange: (next) => update({ settings: { ...next.settings } })
|
|
14451
|
-
}, field.key))]
|
|
14452
|
-
})
|
|
14453
|
-
]
|
|
14419
|
+
children: [/* @__PURE__ */ jsxs("div", { children: [/* @__PURE__ */ jsx("div", {
|
|
14420
|
+
className: "text-[10px] uppercase tracking-widest text-foreground-subtle mb-1",
|
|
14421
|
+
children: "Model"
|
|
14422
|
+
}), /* @__PURE__ */ jsx(ModelPicker, {
|
|
14423
|
+
models: modelsForFormat,
|
|
14424
|
+
value: agentDefault.modelId ?? "",
|
|
14425
|
+
onChange: (modelId) => update({ modelId })
|
|
14426
|
+
})] }), (addon.configSchema?.length ?? 0) > 0 && /* @__PURE__ */ jsxs("div", {
|
|
14427
|
+
className: "pt-2 border-t border-border/50 space-y-3",
|
|
14428
|
+
children: [/* @__PURE__ */ jsx("div", {
|
|
14429
|
+
className: "text-[10px] uppercase tracking-widest text-foreground-subtle",
|
|
14430
|
+
children: "Settings"
|
|
14431
|
+
}), addon.configSchema?.map((field) => /* @__PURE__ */ jsx(ConfigSchemaField, {
|
|
14432
|
+
field,
|
|
14433
|
+
allFields: addon.configSchema ?? [],
|
|
14434
|
+
step: buildDisplayStep(addon, agentDefault),
|
|
14435
|
+
disabled: false,
|
|
14436
|
+
onChange: (next) => update({ settings: { ...next.settings } })
|
|
14437
|
+
}, field.key))]
|
|
14438
|
+
})]
|
|
14454
14439
|
});
|
|
14455
14440
|
}
|
|
14456
14441
|
function DeviceModeEditor({ addon, agentDefault, agentNodeId, currentPatch, modelsForFormat, onChangePatch }) {
|
|
14457
14442
|
const effective = computeEffective("device", agentDefault, currentPatch);
|
|
14458
14443
|
const commitPatch = (next) => {
|
|
14459
|
-
const hasAnyField = next.
|
|
14444
|
+
const hasAnyField = next.modelId !== void 0 || next.settings !== void 0;
|
|
14460
14445
|
onChangePatch?.(hasAnyField ? next : null);
|
|
14461
14446
|
};
|
|
14462
|
-
const setEnabled = (state) => {
|
|
14463
|
-
const { enabled: _prev, ...rest } = currentPatch ?? {};
|
|
14464
|
-
commitPatch(state === "inherit" ? rest : {
|
|
14465
|
-
...rest,
|
|
14466
|
-
enabled: state === "on"
|
|
14467
|
-
});
|
|
14468
|
-
};
|
|
14469
14447
|
const setModel = (modelId) => {
|
|
14470
|
-
const { modelId: _prev, ...rest } = currentPatch ?? {};
|
|
14448
|
+
const { enabled: _enabled, modelId: _prev, ...rest } = currentPatch ?? {};
|
|
14471
14449
|
commitPatch(modelId === void 0 ? rest : {
|
|
14472
14450
|
...rest,
|
|
14473
14451
|
modelId
|
|
14474
14452
|
});
|
|
14475
14453
|
};
|
|
14476
14454
|
const setSettings = (settings) => {
|
|
14477
|
-
const { settings: _prev, ...rest } = currentPatch ?? {};
|
|
14455
|
+
const { enabled: _enabled, settings: _prev, ...rest } = currentPatch ?? {};
|
|
14478
14456
|
commitPatch(settings === void 0 ? rest : {
|
|
14479
14457
|
...rest,
|
|
14480
14458
|
settings
|
|
14481
14459
|
});
|
|
14482
14460
|
};
|
|
14483
|
-
const enabledTri = currentPatch?.enabled === void 0 ? "inherit" : currentPatch.enabled ? "on" : "off";
|
|
14484
14461
|
const modelOverridden = currentPatch?.modelId !== void 0;
|
|
14485
14462
|
return /* @__PURE__ */ jsxs("div", {
|
|
14486
14463
|
className: "space-y-4 text-xs",
|
|
14487
14464
|
children: [
|
|
14488
14465
|
/* @__PURE__ */ jsxs("div", {
|
|
14489
|
-
className: "
|
|
14490
|
-
children: [
|
|
14491
|
-
"
|
|
14492
|
-
"
|
|
14493
|
-
|
|
14494
|
-
|
|
14495
|
-
|
|
14496
|
-
|
|
14497
|
-
|
|
14498
|
-
children: s
|
|
14499
|
-
}, s)), /* @__PURE__ */ jsxs("span", {
|
|
14500
|
-
className: "ml-2 text-[10px] text-foreground-subtle",
|
|
14501
|
-
children: [
|
|
14502
|
-
"agent default:",
|
|
14503
|
-
" ",
|
|
14504
|
-
/* @__PURE__ */ jsx("span", {
|
|
14505
|
-
className: "font-semibold",
|
|
14506
|
-
children: agentDefault.enabled ? "on" : "off"
|
|
14507
|
-
})
|
|
14508
|
-
]
|
|
14509
|
-
})]
|
|
14466
|
+
className: "rounded bg-muted/40 px-3 py-2 text-[11px] text-foreground-subtle",
|
|
14467
|
+
children: [
|
|
14468
|
+
"Provisioning for ",
|
|
14469
|
+
/* @__PURE__ */ jsx("span", {
|
|
14470
|
+
className: "font-semibold text-foreground",
|
|
14471
|
+
children: agentNodeId
|
|
14472
|
+
}),
|
|
14473
|
+
" — model + settings only. Whether this camera runs the step is set by its per-camera gate above."
|
|
14474
|
+
]
|
|
14510
14475
|
}),
|
|
14511
14476
|
/* @__PURE__ */ jsxs("div", { children: [
|
|
14512
14477
|
/* @__PURE__ */ jsxs("div", {
|
|
@@ -14577,15 +14542,13 @@ function DeviceModeEditor({ addon, agentDefault, agentNodeId, currentPatch, mode
|
|
|
14577
14542
|
className: "rounded bg-muted/40 px-3 py-2 text-[11px] text-foreground-subtle",
|
|
14578
14543
|
children: [/* @__PURE__ */ jsx("div", {
|
|
14579
14544
|
className: "font-semibold text-foreground mb-0.5",
|
|
14580
|
-
children: "Effective
|
|
14545
|
+
children: "Effective provisioning preview"
|
|
14581
14546
|
}), /* @__PURE__ */ jsxs("div", {
|
|
14582
14547
|
className: "font-mono truncate",
|
|
14583
14548
|
children: [
|
|
14584
14549
|
addon.id,
|
|
14585
14550
|
" · model: ",
|
|
14586
|
-
effective.modelId
|
|
14587
|
-
" · ",
|
|
14588
|
-
effective.enabled ? "on" : "off"
|
|
14551
|
+
effective.modelId ?? "Auto"
|
|
14589
14552
|
]
|
|
14590
14553
|
})]
|
|
14591
14554
|
})
|
|
@@ -14610,19 +14573,6 @@ function AgentStepEditor(props) {
|
|
|
14610
14573
|
onChangePatch
|
|
14611
14574
|
});
|
|
14612
14575
|
}
|
|
14613
|
-
//#endregion
|
|
14614
|
-
//#region src/composites/pipeline-tree-matrix.tsx
|
|
14615
|
-
/**
|
|
14616
|
-
* Fixed column geometry (rem). The matrix uses a CSS grid with STATIC track
|
|
14617
|
-
* widths so a cell's content (a status chip, a long model id) can never resize
|
|
14618
|
-
* a column or shift its neighbours — cell content is truncated WITHIN the fixed
|
|
14619
|
-
* track instead. This kills the "table dances when the last column's status
|
|
14620
|
-
* changes" jitter. See `min-w-0` on every grid child, which lets the child
|
|
14621
|
-
* shrink to the track (a grid item's automatic minimum is its content size, so
|
|
14622
|
-
* without this a non-wrapping model id would blow the track wider than its max).
|
|
14623
|
-
*/
|
|
14624
|
-
var STEP_COL_REM = 18;
|
|
14625
|
-
var AGENT_COL_REM = 13;
|
|
14626
14576
|
function flattenTree(nodes) {
|
|
14627
14577
|
const out = [];
|
|
14628
14578
|
const walk = (list, depth) => {
|
|
@@ -14637,6 +14587,20 @@ function flattenTree(nodes) {
|
|
|
14637
14587
|
walk(nodes, 0);
|
|
14638
14588
|
return out;
|
|
14639
14589
|
}
|
|
14590
|
+
/**
|
|
14591
|
+
* Layout decision for the responsive A↔B switch. Pure so it can be unit-tested
|
|
14592
|
+
* in isolation from the DOM.
|
|
14593
|
+
*
|
|
14594
|
+
* Returns `true` (single-node fallback) when there is MORE than one node but
|
|
14595
|
+
* the container is too narrow to show the step column plus at least TWO node
|
|
14596
|
+
* columns side by side. An unmeasured container (`width <= 0`) defaults to the
|
|
14597
|
+
* wide matrix so there is no first-paint flash into the fallback.
|
|
14598
|
+
*/
|
|
14599
|
+
function shouldUseSingleNode(width, nodeCount, stepColPx, agentColPx = 208) {
|
|
14600
|
+
if (nodeCount <= 1) return false;
|
|
14601
|
+
if (width <= 0) return false;
|
|
14602
|
+
return width < stepColPx + agentColPx * 2;
|
|
14603
|
+
}
|
|
14640
14604
|
var SLOT_LABEL = {
|
|
14641
14605
|
detector: {
|
|
14642
14606
|
label: "detector",
|
|
@@ -14687,25 +14651,26 @@ function ClassChips({ inputs, outputs }) {
|
|
|
14687
14651
|
]
|
|
14688
14652
|
});
|
|
14689
14653
|
}
|
|
14690
|
-
|
|
14691
|
-
|
|
14692
|
-
|
|
14693
|
-
|
|
14694
|
-
"
|
|
14695
|
-
|
|
14696
|
-
|
|
14697
|
-
|
|
14698
|
-
|
|
14699
|
-
|
|
14700
|
-
|
|
14701
|
-
|
|
14702
|
-
|
|
14654
|
+
/** Step label (slot heading + addon name + class chips), shared by both views. */
|
|
14655
|
+
function StepLabel({ node }) {
|
|
14656
|
+
return /* @__PURE__ */ jsxs("div", {
|
|
14657
|
+
className: "flex flex-col gap-1 min-w-0 flex-1",
|
|
14658
|
+
children: [/* @__PURE__ */ jsx(SlotHeading, { slot: node.slot }), /* @__PURE__ */ jsxs("div", {
|
|
14659
|
+
className: "flex items-center gap-2 flex-wrap",
|
|
14660
|
+
children: [/* @__PURE__ */ jsx("span", {
|
|
14661
|
+
className: "font-semibold truncate",
|
|
14662
|
+
children: node.addonName
|
|
14663
|
+
}), /* @__PURE__ */ jsx(ClassChips, {
|
|
14664
|
+
inputs: node.inputClasses,
|
|
14665
|
+
outputs: node.outputClasses
|
|
14666
|
+
})]
|
|
14667
|
+
})]
|
|
14703
14668
|
});
|
|
14704
14669
|
}
|
|
14705
14670
|
/**
|
|
14706
|
-
* Cell content.
|
|
14707
|
-
*
|
|
14708
|
-
*
|
|
14671
|
+
* Cell content. Width-stable: the status dot is `shrink-0` (reserved space) and
|
|
14672
|
+
* the model id truncates inside a `min-w-0` flex row, so a longer model id never
|
|
14673
|
+
* widens the cell — it ellipsises instead.
|
|
14709
14674
|
*/
|
|
14710
14675
|
function renderCellContent(state) {
|
|
14711
14676
|
if (state.kind === "enabled") return /* @__PURE__ */ jsxs("span", {
|
|
@@ -14738,31 +14703,41 @@ function renderCellContent(state) {
|
|
|
14738
14703
|
})
|
|
14739
14704
|
]
|
|
14740
14705
|
});
|
|
14706
|
+
if (state.kind === "skip") return /* @__PURE__ */ jsxs("span", {
|
|
14707
|
+
className: "flex min-w-0 items-center gap-1 text-amber-500",
|
|
14708
|
+
title: "Gated on for this camera, but no compatible model on this node — click to provision",
|
|
14709
|
+
children: [/* @__PURE__ */ jsx("span", { className: "h-1.5 w-1.5 rounded-full bg-amber-500 shrink-0" }), /* @__PURE__ */ jsx("span", {
|
|
14710
|
+
className: "truncate font-medium",
|
|
14711
|
+
children: "⚠ skip"
|
|
14712
|
+
})]
|
|
14713
|
+
});
|
|
14741
14714
|
return /* @__PURE__ */ jsxs("span", {
|
|
14742
14715
|
className: "flex min-w-0 items-center gap-1 text-foreground-subtle/70",
|
|
14743
14716
|
children: [/* @__PURE__ */ jsx("span", { className: "h-1.5 w-1.5 rounded-full bg-muted shrink-0" }), /* @__PURE__ */ jsx("span", {
|
|
14744
14717
|
className: "truncate",
|
|
14745
|
-
children: "
|
|
14718
|
+
children: "—"
|
|
14746
14719
|
})]
|
|
14747
14720
|
});
|
|
14748
14721
|
}
|
|
14749
14722
|
function cellButtonClass(state, isSelected, extra) {
|
|
14750
|
-
return cn("text-left text-xs hover:bg-muted/40", state.kind === "enabled" && "bg-emerald-500/5", state.kind === "na" && "bg-muted/30", isSelected && "ring-2 ring-primary ring-inset", extra);
|
|
14723
|
+
return cn("text-left text-xs hover:bg-muted/40", state.kind === "enabled" && "bg-emerald-500/5", state.kind === "skip" && "bg-amber-500/5", state.kind === "na" && "bg-muted/30", isSelected && "ring-2 ring-primary ring-inset", extra);
|
|
14751
14724
|
}
|
|
14752
|
-
|
|
14753
|
-
|
|
14754
|
-
|
|
14755
|
-
|
|
14756
|
-
|
|
14757
|
-
|
|
14758
|
-
|
|
14759
|
-
|
|
14760
|
-
|
|
14761
|
-
|
|
14762
|
-
|
|
14763
|
-
|
|
14764
|
-
|
|
14765
|
-
|
|
14725
|
+
//#endregion
|
|
14726
|
+
//#region src/composites/pipeline-tree-matrix.tsx
|
|
14727
|
+
var STEP_COL_REM$1 = 18;
|
|
14728
|
+
function QuickToggle({ enabled, onChange, disabled }) {
|
|
14729
|
+
return /* @__PURE__ */ jsx("button", {
|
|
14730
|
+
type: "button",
|
|
14731
|
+
role: "switch",
|
|
14732
|
+
"aria-checked": enabled,
|
|
14733
|
+
disabled,
|
|
14734
|
+
onClick: (e) => {
|
|
14735
|
+
e.stopPropagation();
|
|
14736
|
+
onChange(!enabled);
|
|
14737
|
+
},
|
|
14738
|
+
className: cn("relative inline-flex h-3.5 w-7 shrink-0 items-center rounded-full transition-colors", enabled ? "bg-emerald-500" : "bg-foreground-subtle/30", disabled ? "opacity-50 cursor-not-allowed" : "cursor-pointer"),
|
|
14739
|
+
title: enabled ? "Click to disable" : "Click to enable",
|
|
14740
|
+
children: /* @__PURE__ */ jsx("span", { className: cn("inline-block h-3 w-3 rounded-full bg-white shadow transition-transform", enabled ? "translate-x-3.5" : "translate-x-0.5") })
|
|
14766
14741
|
});
|
|
14767
14742
|
}
|
|
14768
14743
|
function GridRow({ node, depth, agents, getCellState, onCellClick, selectedCell, toggleProps }) {
|
|
@@ -14790,11 +14765,11 @@ function GridRow({ node, depth, agents, getCellState, onCellClick, selectedCell,
|
|
|
14790
14765
|
/**
|
|
14791
14766
|
* Wide layout: horizontally self-scrolling matrix. The scroll lives INSIDE
|
|
14792
14767
|
* this `overflow-auto` box (sticky first column + sticky header row) so the
|
|
14793
|
-
* page body never scrolls sideways. Column tracks are fixed px widths
|
|
14794
|
-
*
|
|
14768
|
+
* page body never scrolls sideways. Column tracks are fixed px widths so the
|
|
14769
|
+
* grid is static regardless of content.
|
|
14795
14770
|
*/
|
|
14796
|
-
function MatrixGrid({ rows, agents, getCellState, onCellClick, selectedCell, onToggleEnabled }) {
|
|
14797
|
-
const gridTemplate = `${STEP_COL_REM}rem repeat(${agents.length},
|
|
14771
|
+
function MatrixGrid$1({ rows, agents, getCellState, onCellClick, selectedCell, onToggleEnabled }) {
|
|
14772
|
+
const gridTemplate = `${STEP_COL_REM$1}rem repeat(${agents.length}, 13rem)`;
|
|
14798
14773
|
const showToggle = onToggleEnabled !== void 0 && agents.length === 1;
|
|
14799
14774
|
const onlyAgent = agents[0]?.agentNodeId;
|
|
14800
14775
|
return /* @__PURE__ */ jsx("div", {
|
|
@@ -14839,9 +14814,7 @@ function MatrixGrid({ rows, agents, getCellState, onCellClick, selectedCell, onT
|
|
|
14839
14814
|
}
|
|
14840
14815
|
/**
|
|
14841
14816
|
* Narrow layout: one card per agent column, each listing every step stacked
|
|
14842
|
-
* vertically.
|
|
14843
|
-
* (click-to-edit, status, toggle) reflow into full-width rows so nothing scrolls
|
|
14844
|
-
* horizontally. Feature-parity with the matrix — same `onCellClick`, same
|
|
14817
|
+
* vertically. Feature-parity with the matrix — same `onCellClick`, same
|
|
14845
14818
|
* `renderCellContent`, same single-agent `onToggleEnabled`.
|
|
14846
14819
|
*/
|
|
14847
14820
|
function StackedCards({ rows, agents, getCellState, onCellClick, selectedCell, onToggleEnabled }) {
|
|
@@ -14910,7 +14883,7 @@ function PipelineTreeMatrix({ tree, agents, getCellState, onCellClick, selectedC
|
|
|
14910
14883
|
})
|
|
14911
14884
|
}), /* @__PURE__ */ jsx("div", {
|
|
14912
14885
|
className: "hidden @2xl/matrix:block",
|
|
14913
|
-
children: /* @__PURE__ */ jsx(MatrixGrid, {
|
|
14886
|
+
children: /* @__PURE__ */ jsx(MatrixGrid$1, {
|
|
14914
14887
|
rows,
|
|
14915
14888
|
agents,
|
|
14916
14889
|
getCellState,
|
|
@@ -14922,6 +14895,226 @@ function PipelineTreeMatrix({ tree, agents, getCellState, onCellClick, selectedC
|
|
|
14922
14895
|
});
|
|
14923
14896
|
}
|
|
14924
14897
|
//#endregion
|
|
14898
|
+
//#region src/composites/device-step-matrix.tsx
|
|
14899
|
+
/**
|
|
14900
|
+
* DeviceStepMatrix — the per-camera "Detection pipeline → Steps" surface (#33)
|
|
14901
|
+
* rendered as ONE hierarchical steps×nodes matrix.
|
|
14902
|
+
*
|
|
14903
|
+
* Column 1 (STICKY): the indented step tree. Each step carries its slot +
|
|
14904
|
+
* name + class-flow chips PLUS a per-camera, node-independent GATE control
|
|
14905
|
+
* with THREE states — On / Off / Default (inherit). `package-detection` is
|
|
14906
|
+
* zone-driven, so it shows a "Zones" badge instead of a gate.
|
|
14907
|
+
* Columns 2..N (one per online node): the provisioned model chip (click →
|
|
14908
|
+
* the model/config picker), a clickable "⚠ skip" when the step is gated ON
|
|
14909
|
+
* but the node has no compatible model, or "—" when N/A.
|
|
14910
|
+
*
|
|
14911
|
+
* Responsive, container-measured (never a global media query, so it also works
|
|
14912
|
+
* embedded):
|
|
14913
|
+
* A) wide — sticky step column + node columns in an `overflow-x:auto` box, so
|
|
14914
|
+
* narrow viewports scroll the NODES sideways while col-1 stays pinned and
|
|
14915
|
+
* the page body never scrolls horizontally.
|
|
14916
|
+
* B) narrow — below the width needed for ≥2 node columns, collapse to a
|
|
14917
|
+
* single-node view: a node selector picks ONE node and the matrix renders
|
|
14918
|
+
* `step-tree × that-one-node`.
|
|
14919
|
+
*/
|
|
14920
|
+
/** Wider than the cluster matrix's 18rem: col-1 also hosts the gate control. */
|
|
14921
|
+
var STEP_COL_REM = 21;
|
|
14922
|
+
var STEP_COL_PX = STEP_COL_REM * 16;
|
|
14923
|
+
function activeChoice(gate) {
|
|
14924
|
+
if (!gate.explicit) return "default";
|
|
14925
|
+
return gate.effectiveOn ? "on" : "off";
|
|
14926
|
+
}
|
|
14927
|
+
/**
|
|
14928
|
+
* Tri-state segmented control. `Default` inherits the catalog value (shown in
|
|
14929
|
+
* the caption); `On`/`Off` pin an explicit per-camera override. Touch-friendly
|
|
14930
|
+
* 28px segments.
|
|
14931
|
+
*/
|
|
14932
|
+
function GateControl({ gate, busy, onSet }) {
|
|
14933
|
+
const active = activeChoice(gate);
|
|
14934
|
+
const seg = (choice, label, value, activeClass) => /* @__PURE__ */ jsx("button", {
|
|
14935
|
+
type: "button",
|
|
14936
|
+
"aria-pressed": active === choice,
|
|
14937
|
+
disabled: busy,
|
|
14938
|
+
onClick: () => onSet(value),
|
|
14939
|
+
className: cn("flex-1 px-2 py-1 text-[11px] font-medium leading-none transition-colors", "min-h-[26px]", active === choice ? activeClass : "text-foreground-subtle hover:bg-muted/60", busy && "opacity-50 cursor-not-allowed"),
|
|
14940
|
+
children: label
|
|
14941
|
+
});
|
|
14942
|
+
return /* @__PURE__ */ jsxs("div", {
|
|
14943
|
+
className: "flex flex-col gap-1",
|
|
14944
|
+
children: [/* @__PURE__ */ jsxs("div", {
|
|
14945
|
+
className: "inline-flex w-fit max-w-full self-start overflow-hidden rounded-md border border-border",
|
|
14946
|
+
children: [
|
|
14947
|
+
seg("default", "Auto", null, "bg-primary/15 text-primary"),
|
|
14948
|
+
/* @__PURE__ */ jsx("span", { className: "w-px self-stretch bg-border" }),
|
|
14949
|
+
seg("on", "On", true, "bg-emerald-500 text-white"),
|
|
14950
|
+
/* @__PURE__ */ jsx("span", { className: "w-px self-stretch bg-border" }),
|
|
14951
|
+
seg("off", "Off", false, "bg-foreground-subtle/70 text-white")
|
|
14952
|
+
]
|
|
14953
|
+
}), /* @__PURE__ */ jsx("span", {
|
|
14954
|
+
className: "text-[10px] leading-none text-foreground-subtle",
|
|
14955
|
+
children: active === "default" ? /* @__PURE__ */ jsxs(Fragment$1, { children: [
|
|
14956
|
+
"= default (",
|
|
14957
|
+
gate.defaultOn ? "on" : "off",
|
|
14958
|
+
")"
|
|
14959
|
+
] }) : /* @__PURE__ */ jsxs(Fragment$1, { children: ["overridden · default ", gate.defaultOn ? "on" : "off"] })
|
|
14960
|
+
})]
|
|
14961
|
+
});
|
|
14962
|
+
}
|
|
14963
|
+
function ZoneBadge() {
|
|
14964
|
+
return /* @__PURE__ */ jsxs("div", {
|
|
14965
|
+
className: "flex flex-col gap-1",
|
|
14966
|
+
children: [/* @__PURE__ */ jsx("span", {
|
|
14967
|
+
className: "inline-flex w-fit items-center gap-1 rounded-md border border-violet-500/40 bg-violet-500/10 px-2 py-1 text-[11px] font-medium text-violet-400",
|
|
14968
|
+
children: "Zones"
|
|
14969
|
+
}), /* @__PURE__ */ jsx("span", {
|
|
14970
|
+
className: "text-[10px] leading-none text-foreground-subtle",
|
|
14971
|
+
children: "driven by package zones"
|
|
14972
|
+
})]
|
|
14973
|
+
});
|
|
14974
|
+
}
|
|
14975
|
+
function StepGateCell({ node, depth, gate, busy, onSet }) {
|
|
14976
|
+
return /* @__PURE__ */ jsxs("div", {
|
|
14977
|
+
className: "sticky left-0 z-10 flex flex-col gap-2 border-b border-border bg-surface px-3 py-2.5 text-xs min-w-0",
|
|
14978
|
+
style: { paddingLeft: `${12 + depth * 14}px` },
|
|
14979
|
+
children: [/* @__PURE__ */ jsx(StepLabel, { node }), gate.kind === "zone-driven" ? /* @__PURE__ */ jsx(ZoneBadge, {}) : /* @__PURE__ */ jsx(GateControl, {
|
|
14980
|
+
gate,
|
|
14981
|
+
busy,
|
|
14982
|
+
onSet
|
|
14983
|
+
})]
|
|
14984
|
+
});
|
|
14985
|
+
}
|
|
14986
|
+
/**
|
|
14987
|
+
* Agents-scoped node selector for the B fallback. Styled like the shared
|
|
14988
|
+
* `NodePicker` but driven by THIS matrix's `agents` set — the cluster-wide
|
|
14989
|
+
* NodePicker can list nodes (e.g. the hub) that own no pipeline column here,
|
|
14990
|
+
* which would let the operator select a node the matrix can't show.
|
|
14991
|
+
*/
|
|
14992
|
+
function NodeSelectorBar({ agents, selected, onSelect }) {
|
|
14993
|
+
return /* @__PURE__ */ jsxs("div", {
|
|
14994
|
+
className: "flex flex-wrap items-center gap-1.5",
|
|
14995
|
+
role: "tablist",
|
|
14996
|
+
"aria-label": "Node",
|
|
14997
|
+
children: [
|
|
14998
|
+
/* @__PURE__ */ jsx(Server, { className: "h-3.5 w-3.5 text-foreground-subtle" }),
|
|
14999
|
+
/* @__PURE__ */ jsx("span", {
|
|
15000
|
+
className: "text-[10px] uppercase tracking-wider text-foreground-subtle",
|
|
15001
|
+
children: "Node"
|
|
15002
|
+
}),
|
|
15003
|
+
/* @__PURE__ */ jsx("div", {
|
|
15004
|
+
className: "flex overflow-hidden rounded-md border border-border text-[11px] font-medium",
|
|
15005
|
+
children: agents.map((a, idx) => {
|
|
15006
|
+
const isSelected = a.agentNodeId === selected;
|
|
15007
|
+
return /* @__PURE__ */ jsx("button", {
|
|
15008
|
+
type: "button",
|
|
15009
|
+
role: "tab",
|
|
15010
|
+
"aria-selected": isSelected,
|
|
15011
|
+
onClick: () => onSelect(a.agentNodeId),
|
|
15012
|
+
title: `${a.agentNodeId} · ${a.engineLabel}`,
|
|
15013
|
+
className: cn("px-2.5 py-1 transition-colors", isSelected ? "bg-primary/15 text-primary" : "bg-transparent text-foreground-subtle hover:bg-surface-hover hover:text-foreground", idx > 0 && "border-l border-border"),
|
|
15014
|
+
children: a.agentNodeId
|
|
15015
|
+
}, a.agentNodeId);
|
|
15016
|
+
})
|
|
15017
|
+
})
|
|
15018
|
+
]
|
|
15019
|
+
});
|
|
15020
|
+
}
|
|
15021
|
+
function MatrixGrid({ tree, agents, gateFor, getCellState, onCellClick, selectedCell, onSetGate, gateBusy, single }) {
|
|
15022
|
+
const rows = useMemo(() => flattenTree(tree), [tree]);
|
|
15023
|
+
const gridTemplate = single ? `minmax(0, 1.35fr) repeat(${agents.length}, minmax(0, 1fr))` : `${STEP_COL_REM}rem repeat(${agents.length}, 13rem)`;
|
|
15024
|
+
return /* @__PURE__ */ jsx("div", {
|
|
15025
|
+
className: cn("rounded border border-border", single ? "overflow-hidden" : "overflow-auto"),
|
|
15026
|
+
children: /* @__PURE__ */ jsxs("div", {
|
|
15027
|
+
className: cn("grid", single ? "w-full" : "w-max"),
|
|
15028
|
+
style: { gridTemplateColumns: gridTemplate },
|
|
15029
|
+
children: [
|
|
15030
|
+
/* @__PURE__ */ jsx("div", {
|
|
15031
|
+
className: "sticky left-0 top-0 z-20 border-b border-border bg-muted/60 px-3 py-2 text-[10px] uppercase tracking-widest text-foreground-subtle",
|
|
15032
|
+
children: "Step · gate"
|
|
15033
|
+
}),
|
|
15034
|
+
agents.map((a) => /* @__PURE__ */ jsxs("div", {
|
|
15035
|
+
className: "sticky top-0 z-10 min-w-0 border-b border-l border-border bg-muted/60 px-3 py-2",
|
|
15036
|
+
children: [/* @__PURE__ */ jsx("div", {
|
|
15037
|
+
className: "truncate text-xs font-semibold text-foreground",
|
|
15038
|
+
children: a.agentNodeId
|
|
15039
|
+
}), /* @__PURE__ */ jsx("div", {
|
|
15040
|
+
className: "truncate text-[10px] text-foreground-subtle",
|
|
15041
|
+
children: a.engineLabel
|
|
15042
|
+
})]
|
|
15043
|
+
}, a.agentNodeId)),
|
|
15044
|
+
rows.map(({ node, depth }) => /* @__PURE__ */ jsx(MatrixRow, {
|
|
15045
|
+
node,
|
|
15046
|
+
depth,
|
|
15047
|
+
agents,
|
|
15048
|
+
gate: gateFor(node.addonId),
|
|
15049
|
+
getCellState,
|
|
15050
|
+
onCellClick,
|
|
15051
|
+
selectedCell,
|
|
15052
|
+
onSetGate,
|
|
15053
|
+
gateBusy
|
|
15054
|
+
}, node.addonId))
|
|
15055
|
+
]
|
|
15056
|
+
})
|
|
15057
|
+
});
|
|
15058
|
+
}
|
|
15059
|
+
function MatrixRow({ node, depth, agents, gate, getCellState, onCellClick, selectedCell, onSetGate, gateBusy }) {
|
|
15060
|
+
return /* @__PURE__ */ jsxs(Fragment$1, { children: [/* @__PURE__ */ jsx(StepGateCell, {
|
|
15061
|
+
node,
|
|
15062
|
+
depth,
|
|
15063
|
+
gate,
|
|
15064
|
+
busy: gateBusy,
|
|
15065
|
+
onSet: (next) => onSetGate(node.addonId, next)
|
|
15066
|
+
}), agents.map((a) => {
|
|
15067
|
+
const state = getCellState(node.addonId, a.agentNodeId);
|
|
15068
|
+
const isSelected = selectedCell?.addonId === node.addonId && selectedCell.agentNodeId === a.agentNodeId;
|
|
15069
|
+
const actionable = state.kind === "enabled" || state.kind === "skip";
|
|
15070
|
+
return /* @__PURE__ */ jsx("button", {
|
|
15071
|
+
type: "button",
|
|
15072
|
+
disabled: !actionable,
|
|
15073
|
+
onClick: () => onCellClick(node.addonId, a.agentNodeId),
|
|
15074
|
+
className: cellButtonClass(state, isSelected, cn("min-w-0 overflow-hidden border-b border-l border-border px-3 py-2", !actionable && "cursor-default hover:bg-transparent")),
|
|
15075
|
+
children: renderCellContent(state)
|
|
15076
|
+
}, a.agentNodeId);
|
|
15077
|
+
})] });
|
|
15078
|
+
}
|
|
15079
|
+
function DeviceStepMatrix({ tree, agents, gateFor, getCellState, onCellClick, selectedCell, onSetGate, gateBusy, fallbackNodeId, onFallbackNodeChange }) {
|
|
15080
|
+
const containerRef = useRef(null);
|
|
15081
|
+
const [width, setWidth] = useState(0);
|
|
15082
|
+
useLayoutEffect(() => {
|
|
15083
|
+
const el = containerRef.current;
|
|
15084
|
+
if (!el) return;
|
|
15085
|
+
const measure = () => setWidth(el.getBoundingClientRect().width);
|
|
15086
|
+
measure();
|
|
15087
|
+
const RO = typeof ResizeObserver !== "undefined" ? new ResizeObserver(measure) : null;
|
|
15088
|
+
RO?.observe(el);
|
|
15089
|
+
return () => RO?.disconnect();
|
|
15090
|
+
}, []);
|
|
15091
|
+
const single = shouldUseSingleNode(width, agents.length, STEP_COL_PX);
|
|
15092
|
+
const selectedNode = useMemo(() => {
|
|
15093
|
+
if (agents.length === 0) return null;
|
|
15094
|
+
return agents.find((a) => a.agentNodeId === fallbackNodeId) ?? agents[0];
|
|
15095
|
+
}, [agents, fallbackNodeId]);
|
|
15096
|
+
const shownAgents = single && selectedNode ? [selectedNode] : agents;
|
|
15097
|
+
return /* @__PURE__ */ jsxs("div", {
|
|
15098
|
+
ref: containerRef,
|
|
15099
|
+
className: "w-full space-y-2",
|
|
15100
|
+
children: [single && selectedNode && /* @__PURE__ */ jsx(NodeSelectorBar, {
|
|
15101
|
+
agents,
|
|
15102
|
+
selected: selectedNode.agentNodeId,
|
|
15103
|
+
onSelect: onFallbackNodeChange
|
|
15104
|
+
}), /* @__PURE__ */ jsx(MatrixGrid, {
|
|
15105
|
+
tree,
|
|
15106
|
+
agents: shownAgents,
|
|
15107
|
+
gateFor,
|
|
15108
|
+
getCellState,
|
|
15109
|
+
onCellClick,
|
|
15110
|
+
selectedCell,
|
|
15111
|
+
onSetGate,
|
|
15112
|
+
gateBusy,
|
|
15113
|
+
single: single && selectedNode !== null
|
|
15114
|
+
})]
|
|
15115
|
+
});
|
|
15116
|
+
}
|
|
15117
|
+
//#endregion
|
|
14925
15118
|
//#region src/trpc-react.ts
|
|
14926
15119
|
/**
|
|
14927
15120
|
* Shared typed React Query proxy for the backend AppRouter.
|
|
@@ -18749,6 +18942,8 @@ var usePipelineOrchestratorSetAgentDetectWeight = trpc.pipelineOrchestrator.setA
|
|
|
18749
18942
|
var usePipelineOrchestratorSetAgentCapabilities = trpc.pipelineOrchestrator.setAgentCapabilities.useMutation;
|
|
18750
18943
|
/** Generated alias around `trpc.pipelineOrchestrator.setAgentReachableHost.useMutation`. */
|
|
18751
18944
|
var usePipelineOrchestratorSetAgentReachableHost = trpc.pipelineOrchestrator.setAgentReachableHost.useMutation;
|
|
18945
|
+
/** Generated alias around `trpc.pipelineOrchestrator.setAgentInferenceDevices.useMutation`. */
|
|
18946
|
+
var usePipelineOrchestratorSetAgentInferenceDevices = trpc.pipelineOrchestrator.setAgentInferenceDevices.useMutation;
|
|
18752
18947
|
/** Generated alias around `trpc.pipelineOrchestrator.resetNodePipelineDefaults.useMutation`. */
|
|
18753
18948
|
var usePipelineOrchestratorResetNodePipelineDefaults = trpc.pipelineOrchestrator.resetNodePipelineDefaults.useMutation;
|
|
18754
18949
|
/** Generated alias around `trpc.pipelineOrchestrator.getCameraSettings.useQuery`. */
|
|
@@ -26509,131 +26704,117 @@ function ControlHeroCard({ trpc, deviceId, features, optimistic }) {
|
|
|
26509
26704
|
}
|
|
26510
26705
|
//#endregion
|
|
26511
26706
|
//#region src/composites/device-controls/control-registry.tsx
|
|
26512
|
-
var COVER_CONTROL = {
|
|
26513
|
-
InlineControl: CoverInlineControl,
|
|
26514
|
-
HeroCard: CoverHeroCard
|
|
26515
|
-
};
|
|
26516
|
-
var DUMMY_CONTROL = {
|
|
26517
|
-
InlineControl: DummyInline,
|
|
26518
|
-
HeroCard: DummyHeroCard
|
|
26519
|
-
};
|
|
26520
|
-
var SENSOR_CONTROL = {
|
|
26521
|
-
InlineControl: SensorInlineControl,
|
|
26522
|
-
HeroCard: SensorHeroCard
|
|
26523
|
-
};
|
|
26524
|
-
var UPDATE_CONTROL = {
|
|
26525
|
-
InlineControl: UpdateInlineControl,
|
|
26526
|
-
HeroCard: UpdateHeroCard
|
|
26527
|
-
};
|
|
26528
|
-
var SWITCH_CONTROL = {
|
|
26529
|
-
InlineControl: SwitchInlineControl,
|
|
26530
|
-
HeroCard: SwitchHeroCard
|
|
26531
|
-
};
|
|
26532
|
-
var LOCK_CONTROL = {
|
|
26533
|
-
InlineControl: LockInlineControl,
|
|
26534
|
-
HeroCard: LockHeroCard
|
|
26535
|
-
};
|
|
26536
|
-
var LIGHT_CONTROL = {
|
|
26537
|
-
InlineControl: LightInlineControl,
|
|
26538
|
-
HeroCard: LightHeroCard
|
|
26539
|
-
};
|
|
26540
|
-
var FAN_CONTROL = {
|
|
26541
|
-
InlineControl: FanInlineControl,
|
|
26542
|
-
HeroCard: FanHeroCard
|
|
26543
|
-
};
|
|
26544
|
-
var THERMOSTAT_CONTROL = {
|
|
26545
|
-
InlineControl: ThermostatInlineControl,
|
|
26546
|
-
HeroCard: ThermostatHeroCard
|
|
26547
|
-
};
|
|
26548
|
-
var CLIMATE_CONTROL = {
|
|
26549
|
-
InlineControl: AcInlineControl,
|
|
26550
|
-
HeroCard: AcHeroCard
|
|
26551
|
-
};
|
|
26552
|
-
var MEDIA_PLAYER_CONTROL = {
|
|
26553
|
-
InlineControl: MediaPlayerInlineControl,
|
|
26554
|
-
HeroCard: MediaPlayerHeroCard
|
|
26555
|
-
};
|
|
26556
|
-
var ALARM_PANEL_CONTROL = {
|
|
26557
|
-
InlineControl: AlarmInlineControl,
|
|
26558
|
-
HeroCard: AlarmHeroCard
|
|
26559
|
-
};
|
|
26560
|
-
var CONTROL_CONTROL = {
|
|
26561
|
-
InlineControl: ControlInlineControl,
|
|
26562
|
-
HeroCard: ControlHeroCard
|
|
26563
|
-
};
|
|
26564
|
-
var VACUUM_CONTROL = {
|
|
26565
|
-
InlineControl: VacuumInlineControl,
|
|
26566
|
-
HeroCard: VacuumHeroCard
|
|
26567
|
-
};
|
|
26568
|
-
var LAWN_MOWER_CONTROL = {
|
|
26569
|
-
InlineControl: LawnMowerInlineControl,
|
|
26570
|
-
HeroCard: LawnMowerHeroCard
|
|
26571
|
-
};
|
|
26572
|
-
var VALVE_CONTROL = {
|
|
26573
|
-
InlineControl: ValveInlineControl,
|
|
26574
|
-
HeroCard: ValveHeroCard
|
|
26575
|
-
};
|
|
26576
|
-
var HUMIDIFIER_CONTROL = {
|
|
26577
|
-
InlineControl: HumidifierInlineControl,
|
|
26578
|
-
HeroCard: HumidifierHeroCard
|
|
26579
|
-
};
|
|
26580
|
-
var WATER_HEATER_CONTROL = {
|
|
26581
|
-
InlineControl: WaterHeaterInlineControl,
|
|
26582
|
-
HeroCard: WaterHeaterHeroCard
|
|
26583
|
-
};
|
|
26584
|
-
var WEATHER_CONTROL = {
|
|
26585
|
-
InlineControl: WeatherInlineControl,
|
|
26586
|
-
HeroCard: WeatherHeroCard
|
|
26587
|
-
};
|
|
26588
|
-
var IMAGE_CONTROL = {
|
|
26589
|
-
InlineControl: ImageInlineControl,
|
|
26590
|
-
HeroCard: ImageHeroCard
|
|
26591
|
-
};
|
|
26592
|
-
var PET_FEEDER_CONTROL = {
|
|
26593
|
-
InlineControl: PetFeederInlineControl,
|
|
26594
|
-
HeroCard: PetFeederHeroCard
|
|
26595
|
-
};
|
|
26596
26707
|
/**
|
|
26597
|
-
*
|
|
26598
|
-
*
|
|
26599
|
-
|
|
26600
|
-
|
|
26601
|
-
|
|
26602
|
-
|
|
26603
|
-
|
|
26604
|
-
|
|
26605
|
-
|
|
26606
|
-
|
|
26607
|
-
|
|
26608
|
-
|
|
26609
|
-
|
|
26610
|
-
|
|
26611
|
-
|
|
26612
|
-
|
|
26613
|
-
|
|
26614
|
-
|
|
26708
|
+
* Presentation binding: the shared `DeviceControlKind` (decided in
|
|
26709
|
+
* `@camstack/types` `resolveDeviceControlKind`) → this platform's web
|
|
26710
|
+
* components. Exhaustive over `DeviceControlKind` — omitting a kind fails the
|
|
26711
|
+
* build here. The type→kind DECISION is single-sourced in `@camstack/types`;
|
|
26712
|
+
* this map only binds a kind to its web widgets.
|
|
26713
|
+
*/
|
|
26714
|
+
var CONTROL_KIND_COMPONENTS = {
|
|
26715
|
+
cover: {
|
|
26716
|
+
InlineControl: CoverInlineControl,
|
|
26717
|
+
HeroCard: CoverHeroCard
|
|
26718
|
+
},
|
|
26719
|
+
valve: {
|
|
26720
|
+
InlineControl: ValveInlineControl,
|
|
26721
|
+
HeroCard: ValveHeroCard
|
|
26722
|
+
},
|
|
26723
|
+
humidifier: {
|
|
26724
|
+
InlineControl: HumidifierInlineControl,
|
|
26725
|
+
HeroCard: HumidifierHeroCard
|
|
26726
|
+
},
|
|
26727
|
+
"water-heater": {
|
|
26728
|
+
InlineControl: WaterHeaterInlineControl,
|
|
26729
|
+
HeroCard: WaterHeaterHeroCard
|
|
26730
|
+
},
|
|
26731
|
+
switch: {
|
|
26732
|
+
InlineControl: SwitchInlineControl,
|
|
26733
|
+
HeroCard: SwitchHeroCard
|
|
26734
|
+
},
|
|
26735
|
+
light: {
|
|
26736
|
+
InlineControl: LightInlineControl,
|
|
26737
|
+
HeroCard: LightHeroCard
|
|
26738
|
+
},
|
|
26739
|
+
fan: {
|
|
26740
|
+
InlineControl: FanInlineControl,
|
|
26741
|
+
HeroCard: FanHeroCard
|
|
26742
|
+
},
|
|
26743
|
+
sensor: {
|
|
26744
|
+
InlineControl: SensorInlineControl,
|
|
26745
|
+
HeroCard: SensorHeroCard
|
|
26746
|
+
},
|
|
26747
|
+
thermostat: {
|
|
26748
|
+
InlineControl: ThermostatInlineControl,
|
|
26749
|
+
HeroCard: ThermostatHeroCard
|
|
26750
|
+
},
|
|
26751
|
+
climate: {
|
|
26752
|
+
InlineControl: AcInlineControl,
|
|
26753
|
+
HeroCard: AcHeroCard
|
|
26754
|
+
},
|
|
26755
|
+
button: {
|
|
26615
26756
|
InlineControl: ButtonControl,
|
|
26616
26757
|
HeroCard: ButtonHeroCard
|
|
26617
26758
|
},
|
|
26618
|
-
|
|
26619
|
-
|
|
26620
|
-
|
|
26621
|
-
|
|
26622
|
-
|
|
26623
|
-
|
|
26624
|
-
|
|
26625
|
-
|
|
26626
|
-
|
|
26627
|
-
|
|
26628
|
-
|
|
26629
|
-
|
|
26630
|
-
|
|
26631
|
-
|
|
26632
|
-
|
|
26633
|
-
|
|
26634
|
-
|
|
26759
|
+
update: {
|
|
26760
|
+
InlineControl: UpdateInlineControl,
|
|
26761
|
+
HeroCard: UpdateHeroCard
|
|
26762
|
+
},
|
|
26763
|
+
lock: {
|
|
26764
|
+
InlineControl: LockInlineControl,
|
|
26765
|
+
HeroCard: LockHeroCard
|
|
26766
|
+
},
|
|
26767
|
+
"media-player": {
|
|
26768
|
+
InlineControl: MediaPlayerInlineControl,
|
|
26769
|
+
HeroCard: MediaPlayerHeroCard
|
|
26770
|
+
},
|
|
26771
|
+
alarm: {
|
|
26772
|
+
InlineControl: AlarmInlineControl,
|
|
26773
|
+
HeroCard: AlarmHeroCard
|
|
26774
|
+
},
|
|
26775
|
+
control: {
|
|
26776
|
+
InlineControl: ControlInlineControl,
|
|
26777
|
+
HeroCard: ControlHeroCard
|
|
26778
|
+
},
|
|
26779
|
+
weather: {
|
|
26780
|
+
InlineControl: WeatherInlineControl,
|
|
26781
|
+
HeroCard: WeatherHeroCard
|
|
26782
|
+
},
|
|
26783
|
+
vacuum: {
|
|
26784
|
+
InlineControl: VacuumInlineControl,
|
|
26785
|
+
HeroCard: VacuumHeroCard
|
|
26786
|
+
},
|
|
26787
|
+
"lawn-mower": {
|
|
26788
|
+
InlineControl: LawnMowerInlineControl,
|
|
26789
|
+
HeroCard: LawnMowerHeroCard
|
|
26790
|
+
},
|
|
26791
|
+
image: {
|
|
26792
|
+
InlineControl: ImageInlineControl,
|
|
26793
|
+
HeroCard: ImageHeroCard
|
|
26794
|
+
},
|
|
26795
|
+
"pet-feeder": {
|
|
26796
|
+
InlineControl: PetFeederInlineControl,
|
|
26797
|
+
HeroCard: PetFeederHeroCard
|
|
26798
|
+
},
|
|
26799
|
+
dummy: {
|
|
26800
|
+
InlineControl: DummyInline,
|
|
26801
|
+
HeroCard: DummyHeroCard
|
|
26802
|
+
}
|
|
26635
26803
|
};
|
|
26636
26804
|
/**
|
|
26805
|
+
* Exhaustive record over DeviceType, DERIVED from the shared decision
|
|
26806
|
+
* (`DEVICE_TYPE_CONTROL_KIND`) composed with the web `CONTROL_KIND_COMPONENTS`
|
|
26807
|
+
* binding — so the type→control mapping can never diverge from the single
|
|
26808
|
+
* source in `@camstack/types`. Preserved as a public export for consumers/tests
|
|
26809
|
+
* that index it by `DeviceType`.
|
|
26810
|
+
*
|
|
26811
|
+
* The `Object.fromEntries` result is a `{ [k: string]: DeviceTypeControl }`;
|
|
26812
|
+
* `Object.values(DeviceType)` (a string enum) yields exactly the enum's members,
|
|
26813
|
+
* so the record is fully populated — the assertion narrows that documented
|
|
26814
|
+
* enum-record projection boundary.
|
|
26815
|
+
*/
|
|
26816
|
+
var DEVICE_TYPE_CONTROL = Object.fromEntries(Object.values(DeviceType).map((type) => [type, CONTROL_KIND_COMPONENTS[DEVICE_TYPE_CONTROL_KIND[type]]]));
|
|
26817
|
+
/**
|
|
26637
26818
|
* Per-type FILL flag.
|
|
26638
26819
|
*
|
|
26639
26820
|
* true — range / choice / button controls (cover ▲■▼ triad, thermostat
|
|
@@ -26687,12 +26868,14 @@ var CONTROL_FILLS = {
|
|
|
26687
26868
|
};
|
|
26688
26869
|
var DEVICE_TYPE_VALUES$1 = new Set(Object.values(DeviceType));
|
|
26689
26870
|
/**
|
|
26690
|
-
* Runtime-string-safe lookup: a device row's `type` crosses the wire
|
|
26691
|
-
*
|
|
26692
|
-
*
|
|
26871
|
+
* Runtime-string-safe lookup: a device row's `type` crosses the wire as a plain
|
|
26872
|
+
* string. The type→control-kind DECISION is single-sourced in `@camstack/types`
|
|
26873
|
+
* (`resolveDeviceControlKind`, null for an unrecognised type); this maps the
|
|
26874
|
+
* resolved kind onto the web components.
|
|
26693
26875
|
*/
|
|
26694
26876
|
function resolveDeviceControl(type) {
|
|
26695
|
-
|
|
26877
|
+
const kind = resolveDeviceControlKind(type);
|
|
26878
|
+
return kind ? CONTROL_KIND_COMPONENTS[kind] : null;
|
|
26696
26879
|
}
|
|
26697
26880
|
/**
|
|
26698
26881
|
* Runtime-string-safe alignment lookup for the fixed-width control column.
|
|
@@ -40464,8 +40647,30 @@ function CameraStreamPlayer({ serverUrl, streamKey, label, autoPlay = true, mute
|
|
|
40464
40647
|
const pc = new RTCPeerConnection({ iceServers: [...iceServers ?? [], { urls: "stun:stun.l.google.com:19302" }] });
|
|
40465
40648
|
const newStream = new MediaStream();
|
|
40466
40649
|
let swappedIn = false;
|
|
40467
|
-
|
|
40468
|
-
|
|
40650
|
+
let warmupStarted = false;
|
|
40651
|
+
let warmupVideo = null;
|
|
40652
|
+
let warmupRvfc;
|
|
40653
|
+
let warmupSafety;
|
|
40654
|
+
const teardownWarmup = () => {
|
|
40655
|
+
if (warmupSafety !== void 0) {
|
|
40656
|
+
clearTimeout(warmupSafety);
|
|
40657
|
+
warmupSafety = void 0;
|
|
40658
|
+
}
|
|
40659
|
+
const v = warmupVideo;
|
|
40660
|
+
warmupVideo = null;
|
|
40661
|
+
if (!v) return;
|
|
40662
|
+
if (warmupRvfc !== void 0 && typeof v.cancelVideoFrameCallback === "function") v.cancelVideoFrameCallback(warmupRvfc);
|
|
40663
|
+
v.removeEventListener("loadeddata", commitSwap);
|
|
40664
|
+
try {
|
|
40665
|
+
v.srcObject = null;
|
|
40666
|
+
} catch {}
|
|
40667
|
+
v.remove();
|
|
40668
|
+
};
|
|
40669
|
+
function commitSwap() {
|
|
40670
|
+
if (swappedIn || !mountedRef.current) {
|
|
40671
|
+
teardownWarmup();
|
|
40672
|
+
return;
|
|
40673
|
+
}
|
|
40469
40674
|
swappedIn = true;
|
|
40470
40675
|
pcRef.current = pc;
|
|
40471
40676
|
if (videoRef.current) {
|
|
@@ -40473,11 +40678,32 @@ function CameraStreamPlayer({ serverUrl, streamKey, label, autoPlay = true, mute
|
|
|
40473
40678
|
videoRef.current.play().catch(() => {});
|
|
40474
40679
|
}
|
|
40475
40680
|
if (oldPc && oldPc !== pc) oldPc.close();
|
|
40681
|
+
teardownWarmup();
|
|
40682
|
+
}
|
|
40683
|
+
const armSwap = () => {
|
|
40684
|
+
if (warmupStarted || swappedIn || !mountedRef.current) return;
|
|
40685
|
+
warmupStarted = true;
|
|
40686
|
+
if (typeof document === "undefined") {
|
|
40687
|
+
commitSwap();
|
|
40688
|
+
return;
|
|
40689
|
+
}
|
|
40690
|
+
const v = document.createElement("video");
|
|
40691
|
+
v.muted = true;
|
|
40692
|
+
v.playsInline = true;
|
|
40693
|
+
v.autoplay = true;
|
|
40694
|
+
v.style.cssText = "position:absolute;left:-9999px;top:0;width:1px;height:1px;opacity:0;pointer-events:none;";
|
|
40695
|
+
v.srcObject = newStream;
|
|
40696
|
+
warmupVideo = v;
|
|
40697
|
+
(containerRef.current ?? document.body).appendChild(v);
|
|
40698
|
+
v.play().catch(() => {});
|
|
40699
|
+
if (typeof v.requestVideoFrameCallback === "function") warmupRvfc = v.requestVideoFrameCallback(() => commitSwap());
|
|
40700
|
+
v.addEventListener("loadeddata", commitSwap, { once: true });
|
|
40701
|
+
warmupSafety = setTimeout(() => commitSwap(), 1800);
|
|
40476
40702
|
};
|
|
40477
40703
|
pc.ontrack = (event) => {
|
|
40478
40704
|
console.debug("[WebRTC] ontrack (reoffer)", event.track.kind, event.track.readyState);
|
|
40479
40705
|
newStream.addTrack(event.track);
|
|
40480
|
-
|
|
40706
|
+
armSwap();
|
|
40481
40707
|
};
|
|
40482
40708
|
pc.oniceconnectionstatechange = () => {
|
|
40483
40709
|
if (!mountedRef.current) return;
|
|
@@ -40485,10 +40711,11 @@ function CameraStreamPlayer({ serverUrl, streamKey, label, autoPlay = true, mute
|
|
|
40485
40711
|
console.debug("[WebRTC] ICE state (reoffer):", iceState);
|
|
40486
40712
|
if (iceState === "connected" || iceState === "completed") {
|
|
40487
40713
|
reconnectAttemptsRef.current = 0;
|
|
40488
|
-
|
|
40714
|
+
armSwap();
|
|
40489
40715
|
updateState("playing");
|
|
40490
40716
|
if (videoRef.current?.paused) videoRef.current.play().catch(() => {});
|
|
40491
40717
|
} else if (iceState === "failed" || iceState === "closed") {
|
|
40718
|
+
teardownWarmup();
|
|
40492
40719
|
if (!swappedIn && iceState === "failed") pc.close();
|
|
40493
40720
|
updateState("disconnected");
|
|
40494
40721
|
scheduleReconnect();
|
|
@@ -44566,6 +44793,33 @@ function buildRawTree(data, fetchedAt) {
|
|
|
44566
44793
|
* State). Computed once at module load.
|
|
44567
44794
|
*/
|
|
44568
44795
|
var ALL_DEVICE_CAP_NAMES = Object.freeze([...new Set(ALL_CAPABILITY_DEFINITIONS.filter((c) => c.scope === "device").map((c) => c.name))].toSorted());
|
|
44796
|
+
/**
|
|
44797
|
+
* The keys of a cap's `runtimeState` object schema, or `[]` when the cap
|
|
44798
|
+
* declares none / it is not an object schema. Read structurally (no Zod
|
|
44799
|
+
* import, no cast) so a self-contained addon's schema instance still works
|
|
44800
|
+
* across the bundle boundary — `ZodObject.shape` is a public getter.
|
|
44801
|
+
*/
|
|
44802
|
+
function runtimeStateKeys(capName) {
|
|
44803
|
+
const rs = ALL_CAPABILITY_DEFINITIONS.find((c) => c.name === capName)?.runtimeState;
|
|
44804
|
+
if (!rs || typeof rs !== "object") return [];
|
|
44805
|
+
const shape = Reflect.get(rs, "shape");
|
|
44806
|
+
if (!shape || typeof shape !== "object") return [];
|
|
44807
|
+
return Object.keys(shape);
|
|
44808
|
+
}
|
|
44809
|
+
/**
|
|
44810
|
+
* Cold placeholder slice for a bound cap that declares `runtimeState` but
|
|
44811
|
+
* has never written it (e.g. a virtual-doorbell camera that has never rung).
|
|
44812
|
+
* Every declared field is seeded `null` so the tree surfaces the cap's
|
|
44813
|
+
* presence and reads as "never" instead of the cap being OMITTED entirely.
|
|
44814
|
+
* Returns `null` when the cap has no runtime-state schema (nothing to seed).
|
|
44815
|
+
*/
|
|
44816
|
+
function coldRuntimeStateSlice(capName) {
|
|
44817
|
+
const keys = runtimeStateKeys(capName);
|
|
44818
|
+
if (keys.length === 0) return null;
|
|
44819
|
+
const slice = {};
|
|
44820
|
+
for (const key of keys) slice[key] = null;
|
|
44821
|
+
return slice;
|
|
44822
|
+
}
|
|
44569
44823
|
/** Depth at which tree nodes start collapsed. Cap nodes (depth 0) and
|
|
44570
44824
|
* their direct slice keys (depth 1) render expanded; anything nested
|
|
44571
44825
|
* deeper opens on demand. */
|
|
@@ -44612,6 +44866,27 @@ function StateValuesStream({ deviceId, defaultCaps, maxHeight = "max-h-96", onCl
|
|
|
44612
44866
|
useEffect(() => {
|
|
44613
44867
|
seededRef.current = false;
|
|
44614
44868
|
}, [deviceId]);
|
|
44869
|
+
const { data: bindings } = trpc.deviceManager.getBindings.useQuery({ deviceId }, { staleTime: 3e4 });
|
|
44870
|
+
useEffect(() => {
|
|
44871
|
+
const entries = bindings?.entries;
|
|
44872
|
+
if (!entries || entries.length === 0) return;
|
|
44873
|
+
const now = Date.now();
|
|
44874
|
+
setCapStates((prev) => {
|
|
44875
|
+
let mutated = false;
|
|
44876
|
+
const next = new Map(prev);
|
|
44877
|
+
for (const entry of entries) {
|
|
44878
|
+
if (next.has(entry.capName)) continue;
|
|
44879
|
+
const slice = coldRuntimeStateSlice(entry.capName);
|
|
44880
|
+
if (!slice) continue;
|
|
44881
|
+
next.set(entry.capName, {
|
|
44882
|
+
slice,
|
|
44883
|
+
updatedAt: now
|
|
44884
|
+
});
|
|
44885
|
+
mutated = true;
|
|
44886
|
+
}
|
|
44887
|
+
return mutated ? next : prev;
|
|
44888
|
+
});
|
|
44889
|
+
}, [bindings, deviceId]);
|
|
44615
44890
|
const patchCapState = useCallback((capName, slice) => {
|
|
44616
44891
|
setCapStates((prev) => {
|
|
44617
44892
|
const next = new Map(prev);
|
|
@@ -46634,4 +46909,4 @@ var MotionZonesSettings = lazy(() => import("./MotionZonesSettings-NcxxQN8r.js")
|
|
|
46634
46909
|
/** Lazy-wrapped `PrivacyMaskSettings` — code-split off the main bundle. */
|
|
46635
46910
|
var PrivacyMaskSettings = lazy(() => import("./PrivacyMaskSettings-APgPLF7p.js").then((m) => ({ default: m.PrivacyMaskSettings })));
|
|
46636
46911
|
//#endregion
|
|
46637
|
-
export { AddonGlobalSettingsForm, AgentStepEditor, AlarmHeroCard, AlarmInlineControl as AlarmPanelInlineControl, AppShell, ArcKnob, AudioClassificationList, AudioLevelWaveform, AudioWaveform, AutotrackSection, BTN_COMPACT, BTN_COMPACT_DANGER, BTN_COMPACT_PRIMARY, BTN_COMPACT_WARNING, Badge, BatteryBadge, BottomSheet, Breadcrumb, BrightnessPanel, Button, ButtonControl, ButtonHeroCard, 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, Dialog, 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, 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, RECORDED_PLAYBACK_MODES, RIGHT, ROLE_DESCRIPTOR, RadialGauge, RecordedPlaybackProvider, RecordingPanel, ResponseLog, SECTION_BODY, SECTION_CARD, SECTION_HEADER, SPLIT_PANEL_OUTER, SPLIT_PANEL_SIDE, STACK_GAP, STATE_COLOR, ScopePicker, ScrollArea, Select, SemanticBadge, SensorHeroCard, SensorInlineControl, SensorValueAtom, Separator, Sidebar, SidebarItem, Skeleton, SlideOverPanel, SlideToggle, SnapshotButton, StatCard, StateValuesStream, StatusBadge, StepTimings, StepTreeMaster, Stepper, StreamBrokerSelector, StreamPanel, Switch, SwitchHeroCard, SwitchInlineControl, SwitchPanel, SystemProvider, 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, allDeviceTypeFilterOptions, buildStepTreeFromSchema, childEntityId, childListName, cn, columnsForContext, containerChildToRef, countableDevices, coverHighlight, createSharedContext, createTheme, cursorFractionFor, darkColors, defaultTheme, deriveDeviceKind, deviceMatchesFilter, deviceOptionLabel, deviceRoleMeta, deviceRoleMetaOf, deviceTypeMeta, deviceTypeMetaOf, devicesToOptions, ensureMfHostInit, eventKindLabel, filterDeviceOptions, findTimezone, formatControlDateTime, formatLastSeen, formatNumeric, fuzzyMatch, getClassColor, getPhaseVisual, groupChildrenByLayout, hardwareLabel, humidifierTint, createLucideIcon as i, initialScrubState, isAbsentProvider, isFieldVisible, lawnMowerActivityMeta, lightColors, loadRemoteBundle, makeScrubBridge, metadataEntries, metadataString, mirror, mountAddonPage, Square as n, nextSort, normalizeForSearch, overrideEntityIdFromLink, parseRecordedServerMessage, providerIcons, EyeOff as r, resolveContainerPrimary, resolveControlAlign, resolveDeviceControl, resolveDisplayIcon, resolveEventKindIcon, resolvePrimaryChild, resolveSensorDisplay, scrubReducer, selectedDeviceOptions, serializeRecordedCommand, shouldCommit, shouldEmit, sortRows, statusIcons, stripParentNamePrefix, Trash2 as t, 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, useBackupGetEntries, useBackupList, useBackupListArchives, useBackupListDestinations, useBackupListLocations, useBackupPreviewSchedule, useBackupRestore, useBackupTrigger, useBackupUpsertDestinationPolicy, 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, useConnectivityGetStatus, useConsumablesGetStatus, useConsumablesReset, useContactGetStatus, useContainerChildren, useControlGetStatus, useControlSetValue, 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, useDeviceManagerAdoptionListCandidateFilters, useDeviceManagerAdoptionListCandidates, useDeviceManagerAdoptionRefresh, useDeviceManagerAdoptionRelease, useDeviceManagerAdoptionResync, useDeviceManagerAllocateDeviceId, useDeviceManagerApplyDeviceSettingsPatch, useDeviceManagerApplyInitialMeta, useDeviceManagerCreateDevice, useDeviceManagerDisable, useDeviceManagerDiscoverAllProviders, useDeviceManagerDiscoverDevices, useDeviceManagerDiscoverProvider, useDeviceManagerDiscoveryProviders, useDeviceManagerEnable, useDeviceManagerGetAllBindings, useDeviceManagerGetBindings, useDeviceManagerGetChildren, useDeviceManagerGetConfigSchema, useDeviceManagerGetCreationSchema, useDeviceManagerGetDevice, useDeviceManagerGetDeviceAggregate, useDeviceManagerGetDeviceLiveContribution, useDeviceManagerGetDeviceLiveInfoAggregate, useDeviceManagerGetDeviceSettingsAggregate, useDeviceManagerGetDeviceSettingsContribution, useDeviceManagerGetDeviceStatusAggregate, 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, useDeviceManagerSetDeviceLinks, 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, useLlmDeleteModel, useLlmDeleteProfile, useLlmGenerate, useLlmGenerateVision, useLlmGetDefaults, useLlmGetRuntimeStatus, useLlmGetUsage, useLlmInstallModel, useLlmListModelCatalog, useLlmListModels, useLlmListNodeModels, useLlmListProfileKinds, useLlmListProfiles, useLlmListRuntimeNodes, useLlmSetDefault, useLlmStartRuntime, useLlmStopRuntime, useLlmTestProfile, useLlmUpsertProfile, useLocalNetworkGetAllowedAddresses, useLocalNetworkGetConnectionEndpoints, useLocalNetworkGetPreferred, useLocalNetworkList, useLocalNetworkResetAllowlistToBestMatch, useLocalNetworkSetAllowedAddresses, 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, useNotifierCancel, useNotifierGetStatus, useNotifierSend, useNumericSensorGetStatus, useOptimisticSlice, useOptionalSystem, useOptionalWidgetRegistry, useOsdGetStatus, useOsdSetOverlay, usePTZ, usePetFeederCallPet, usePetFeederCancelFeed, usePetFeederFeed, usePetFeederGetStatus, usePetFeederMarkFoodReplenished, usePetFeederPlaySound, usePetFeederResetDesiccant, usePetFeederSetChildLock, usePetFeederSetFeedSound, usePetFeederSetIndicatorLight, usePetFeederSetVolume, usePipelineAnalyticsApplyDeviceSettingsPatch, usePipelineAnalyticsClearTracks, usePipelineAnalyticsDeleteDeviceEvents, usePipelineAnalyticsDeleteTracks, usePipelineAnalyticsGetActiveTracks, usePipelineAnalyticsGetAudioEvents, usePipelineAnalyticsGetDeviceLiveContribution, usePipelineAnalyticsGetDeviceSettingsContribution, usePipelineAnalyticsGetEventDensity, usePipelineAnalyticsGetEventMedia, usePipelineAnalyticsGetEventStoreFootprint, usePipelineAnalyticsGetKeyEvents, usePipelineAnalyticsGetMotionEvents, usePipelineAnalyticsGetObjectEvents, usePipelineAnalyticsGetSensorEvents, usePipelineAnalyticsGetTrack, usePipelineAnalyticsGetTrackMedia, usePipelineAnalyticsListEventKinds, usePipelineAnalyticsListOpsLog, usePipelineAnalyticsListRecentTracks, usePipelineAnalyticsListTracks, usePipelineAnalyticsPruneEvents, usePipelineAnalyticsPruneEventsBefore, usePipelineAnalyticsPruneTracksBefore, usePipelineAnalyticsSearchObjectEvents, usePipelineAnalyticsWipeAllAnalytics, 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, usePipelineExecutorReprobeEngine, usePipelineExecutorRunAudioTest, usePipelineExecutorRunPipeline, usePipelineExecutorRunPipelineBatch, usePipelineExecutorSaveTemplate, usePipelineExecutorSetVideoPipelineSteps, usePipelineExecutorSpinEngine, usePipelineExecutorUncacheFrame, usePipelineExecutorUpdateTemplate, usePipelineExecutorValidatePipeline, usePipelineOrchestratorApplyDeviceSettingsPatch, usePipelineOrchestratorAssignAudio, usePipelineOrchestratorAssignPipeline, usePipelineOrchestratorDeleteTemplate, usePipelineOrchestratorGetAgentLoad, usePipelineOrchestratorGetAgentSettings, usePipelineOrchestratorGetAudioAssignment, usePipelineOrchestratorGetAudioAssignments, usePipelineOrchestratorGetAudioNodeLoad, usePipelineOrchestratorGetCameraMetrics, usePipelineOrchestratorGetCameraSettings, usePipelineOrchestratorGetCameraStatus, usePipelineOrchestratorGetCameraStatuses, usePipelineOrchestratorGetCameraStepOverrides, usePipelineOrchestratorGetCapabilityBindings, usePipelineOrchestratorGetDeviceLiveContribution, usePipelineOrchestratorGetDeviceSettingsContribution, usePipelineOrchestratorGetGlobalMetrics, usePipelineOrchestratorGetIngestOwner, usePipelineOrchestratorGetPipelineAssignment, usePipelineOrchestratorGetPipelineAssignments, usePipelineOrchestratorListAgentSettings, usePipelineOrchestratorListTemplates, usePipelineOrchestratorRebalance, usePipelineOrchestratorRemoveAgentSettings, usePipelineOrchestratorResetNodePipelineDefaults, usePipelineOrchestratorResolvePipeline, usePipelineOrchestratorSaveTemplate, usePipelineOrchestratorSetAgentAddonDefaults, usePipelineOrchestratorSetAgentCapabilities, usePipelineOrchestratorSetAgentDetectWeight, usePipelineOrchestratorSetAgentMaxCameras, usePipelineOrchestratorSetAgentReachableHost, usePipelineOrchestratorSetCameraPipelineForAgent, usePipelineOrchestratorSetCameraStepOverride, usePipelineOrchestratorSetCameraStepToggle, usePipelineOrchestratorSetCapabilityBinding, usePipelineOrchestratorUnassignAudio, usePipelineOrchestratorUnassignPipeline, usePipelineOrchestratorUpdateTemplate, usePipelineRunnerAttachCamera, usePipelineRunnerDetachCamera, usePipelineRunnerGetAllCameraMetrics, usePipelineRunnerGetCameraMetrics, usePipelineRunnerGetLocalCameras, usePipelineRunnerGetLocalLoad, usePipelineRunnerGetLocalMetrics, usePipelineRunnerGetNativeCrop, usePipelineRunnerReportMotion, usePipelineRunnerRunDetailSubtree, 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, usePrivacyMaskSetMask, usePtzAutotrackGetSettings, usePtzAutotrackGetStatus, usePtzAutotrackSetEnabled, usePtzAutotrackSetSettings, usePtzContinuousMove, usePtzDeletePreset, usePtzGetOptions, usePtzGetPosition, usePtzGetPresets, usePtzGetStatus, usePtzGoHome, usePtzGoToPreset, usePtzMove, usePtzSavePreset, usePtzSetAutofocus, usePtzStop, useRebootReboot, useRecordedPlayback, useRecordingApplyDeviceSettingsPatch, useRecordingDeleteFootprint, useRecordingExportCancelExport, useRecordingExportCreateExport, useRecordingExportDeleteExport, useRecordingExportGetDownloadUrl, useRecordingExportGetExport, useRecordingExportListExports, useRecordingGetAvailability, useRecordingGetDaysWithRecordings, useRecordingGetDeviceConfig, useRecordingGetDeviceLiveContribution, useRecordingGetDeviceSettingsContribution, useRecordingGetPlaybackManifest, useRecordingGetStatus, useRecordingGetStorageUsage, useRecordingListOpsLog, useRecordingLocateSegment, useRecordingPruneFootage, useRecordingReadSegmentBytes, useRecordingRescanStorage, useRecordingSetDeviceConfig, useRemoteComponent, useSceneMonitorCaptureReference, useSceneMonitorCreateScene, useSceneMonitorDeleteReference, useSceneMonitorDeleteScene, useSceneMonitorGetStatus, useSceneMonitorListScenes, useSceneMonitorRecheckNow, useSceneMonitorUpdateScene, useScriptRunnerGetStatus, useScriptRunnerRun, useScriptRunnerStop, useScrubController, useServerManagementApplyServerUpdate, useServerManagementCheckServerUpdate, useServerManagementGetServerPackageStatus, useServerManagementRestartServer, useServerManagementRollbackServerUpdate, useSettingsStoreCount, useSettingsStoreDeclareCollection, useSettingsStoreDelete, useSettingsStoreGet, useSettingsStoreHistogram, useSettingsStoreInsert, useSettingsStoreIsEmpty, useSettingsStoreQuery, useSettingsStoreSet, useSettingsStoreUpdate, useSmokeGetStatus, useSnapshotApplyDeviceSettingsPatch, useSnapshotGetDeviceLiveContribution, useSnapshotGetDeviceSettingsContribution, useSnapshotGetSnapshot, useSnapshotGetSnapshotOverview, useSnapshotGetStatus, useSnapshotInvalidateCache, useStorageAbortUpload, useStorageBeginDownload, useStorageBeginUpload, useStorageDelete, useStorageDeleteLocation, useStorageEndDownload, useStorageExists, useStorageFinalizeUpload, useStorageGetAvailableSpace, useStorageGetDefaultLocation, useStorageList, useStorageListLocationDeclarations, useStorageListLocations, useStorageListProviders, useStorageRead, useStorageReadChunk, useStorageResolve, useStorageTestConfig, useStorageTestLocation, useStorageUpsertLocation, useStorageWrite, useStorageWriteChunk, useStreamBrokerApplyDeviceSettingsPatch, useStreamBrokerAssignProfile, useStreamBrokerGetAllRtspEntries, useStreamBrokerGetBrokerStats, useStreamBrokerGetDeviceLiveContribution, useStreamBrokerGetDeviceSettingsContribution, useStreamBrokerGetPreBufferInfo, useStreamBrokerGetRtspEntry, useStreamBrokerGetRtspPort, useStreamBrokerGetStreamUrl, useStreamBrokerGetStreamWithCodec, useStreamBrokerIsRtspEnabled, useStreamBrokerKillClient, useStreamBrokerListAllCameraStreams, useStreamBrokerListAllProfileSlots, useStreamBrokerListClients, useStreamBrokerProbeStream, useStreamBrokerPublishCameraStream, useStreamBrokerPullAudioChunks, useStreamBrokerPullFrameHandles, useStreamBrokerRegenerateRtspToken, useStreamBrokerReleaseStreamWithCodec, useStreamBrokerRestartProfile, useStreamBrokerRetractCameraStream, useStreamBrokerSetPreBufferDuration, useStreamBrokerSetRtspEnabled, useStreamBrokerSubscribeAudioChunks, useStreamBrokerSubscribeFrames, useStreamBrokerUnassignProfile, useStreamBrokerUnsubscribeAudioChunks, useStreamBrokerUnsubscribeFrames, useStreamCatalogGetCatalog, useStreamParamsGetConfigSchema, useStreamParamsGetOptions, useStreamParamsGetStatus, useStreamParamsSetProfile, useSwitchGetStatus, useSwitchSetState, useSystem, useSystemFeatureFlags, useSystemForceRetentionCleanup, useSystemGetRetentionConfig, useSystemHealth, useSystemInfo, useSystemMutation, useSystemNetworkAddresses, useSystemQuery, useSystemSetRetentionConfig, useTamperGetStatus, useTemperatureSensorGetStatus, 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, waterHeaterPhase, waterHeaterTint, weatherConditionMeta, weatherTint };
|
|
46912
|
+
export { AddonGlobalSettingsForm, AgentStepEditor, AlarmHeroCard, AlarmInlineControl as AlarmPanelInlineControl, AppShell, ArcKnob, AudioClassificationList, AudioLevelWaveform, AudioWaveform, AutotrackSection, BTN_COMPACT, BTN_COMPACT_DANGER, BTN_COMPACT_PRIMARY, BTN_COMPACT_WARNING, Badge, BatteryBadge, BottomSheet, Breadcrumb, BrightnessPanel, Button, ButtonControl, ButtonHeroCard, 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, DeviceStepMatrix, Dialog, 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, 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, RECORDED_PLAYBACK_MODES, RIGHT, ROLE_DESCRIPTOR, RadialGauge, RecordedPlaybackProvider, RecordingPanel, ResponseLog, SECTION_BODY, SECTION_CARD, SECTION_HEADER, SPLIT_PANEL_OUTER, SPLIT_PANEL_SIDE, STACK_GAP, STATE_COLOR, ScopePicker, ScrollArea, Select, SemanticBadge, SensorHeroCard, SensorInlineControl, SensorValueAtom, Separator, Sidebar, SidebarItem, Skeleton, SlideOverPanel, SlideToggle, SnapshotButton, StatCard, StateValuesStream, StatusBadge, StepTimings, StepTreeMaster, Stepper, StreamBrokerSelector, StreamPanel, Switch, SwitchHeroCard, SwitchInlineControl, SwitchPanel, SystemProvider, 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, allDeviceTypeFilterOptions, buildStepTreeFromSchema, childEntityId, childListName, cn, columnsForContext, containerChildToRef, countableDevices, coverHighlight, createSharedContext, createTheme, cursorFractionFor, darkColors, defaultTheme, deriveDeviceKind, deviceMatchesFilter, deviceOptionLabel, deviceRoleMeta, deviceRoleMetaOf, deviceTypeMeta, deviceTypeMetaOf, devicesToOptions, ensureMfHostInit, eventKindLabel, filterDeviceOptions, findTimezone, formatControlDateTime, formatLastSeen, formatNumeric, fuzzyMatch, getClassColor, getPhaseVisual, groupChildrenByLayout, hardwareLabel, humidifierTint, createLucideIcon as i, initialScrubState, isAbsentProvider, isFieldVisible, lawnMowerActivityMeta, lightColors, loadRemoteBundle, makeScrubBridge, metadataEntries, metadataString, mirror, mountAddonPage, Square as n, nextSort, normalizeForSearch, overrideEntityIdFromLink, parseRecordedServerMessage, providerIcons, EyeOff as r, resolveContainerPrimary, resolveControlAlign, resolveDeviceControl, resolveDisplayIcon, resolveEventKindIcon, resolvePrimaryChild, resolveSensorDisplay, scrubReducer, selectedDeviceOptions, serializeRecordedCommand, shouldCommit, shouldEmit, shouldUseSingleNode, sortRows, statusIcons, stripParentNamePrefix, Trash2 as t, 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, useBackupGetEntries, useBackupList, useBackupListArchives, useBackupListDestinations, useBackupListLocations, useBackupPreviewSchedule, useBackupRestore, useBackupTrigger, useBackupUpsertDestinationPolicy, 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, useConnectivityGetStatus, useConsumablesGetStatus, useConsumablesReset, useContactGetStatus, useContainerChildren, useControlGetStatus, useControlSetValue, 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, useDeviceManagerAdoptionListCandidateFilters, useDeviceManagerAdoptionListCandidates, useDeviceManagerAdoptionRefresh, useDeviceManagerAdoptionRelease, useDeviceManagerAdoptionResync, useDeviceManagerAllocateDeviceId, useDeviceManagerApplyDeviceSettingsPatch, useDeviceManagerApplyInitialMeta, useDeviceManagerCreateDevice, useDeviceManagerDisable, useDeviceManagerDiscoverAllProviders, useDeviceManagerDiscoverDevices, useDeviceManagerDiscoverProvider, useDeviceManagerDiscoveryProviders, useDeviceManagerEnable, useDeviceManagerGetAllBindings, useDeviceManagerGetBindings, useDeviceManagerGetChildren, useDeviceManagerGetConfigSchema, useDeviceManagerGetCreationSchema, useDeviceManagerGetDevice, useDeviceManagerGetDeviceAggregate, useDeviceManagerGetDeviceLiveContribution, useDeviceManagerGetDeviceLiveInfoAggregate, useDeviceManagerGetDeviceSettingsAggregate, useDeviceManagerGetDeviceSettingsContribution, useDeviceManagerGetDeviceStatusAggregate, 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, useDeviceManagerSetDeviceLinks, 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, useLlmDeleteModel, useLlmDeleteProfile, useLlmGenerate, useLlmGenerateVision, useLlmGetDefaults, useLlmGetRuntimeStatus, useLlmGetUsage, useLlmInstallModel, useLlmListModelCatalog, useLlmListModels, useLlmListNodeModels, useLlmListProfileKinds, useLlmListProfiles, useLlmListRuntimeNodes, useLlmSetDefault, useLlmStartRuntime, useLlmStopRuntime, useLlmTestProfile, useLlmUpsertProfile, useLocalNetworkGetAllowedAddresses, useLocalNetworkGetConnectionEndpoints, useLocalNetworkGetPreferred, useLocalNetworkList, useLocalNetworkResetAllowlistToBestMatch, useLocalNetworkSetAllowedAddresses, 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, useNotifierCancel, useNotifierGetStatus, useNotifierSend, useNumericSensorGetStatus, useOptimisticSlice, useOptionalSystem, useOptionalWidgetRegistry, useOsdGetStatus, useOsdSetOverlay, usePTZ, usePetFeederCallPet, usePetFeederCancelFeed, usePetFeederFeed, usePetFeederGetStatus, usePetFeederMarkFoodReplenished, usePetFeederPlaySound, usePetFeederResetDesiccant, usePetFeederSetChildLock, usePetFeederSetFeedSound, usePetFeederSetIndicatorLight, usePetFeederSetVolume, usePipelineAnalyticsApplyDeviceSettingsPatch, usePipelineAnalyticsClearTracks, usePipelineAnalyticsDeleteDeviceEvents, usePipelineAnalyticsDeleteTracks, usePipelineAnalyticsGetActiveTracks, usePipelineAnalyticsGetAudioEvents, usePipelineAnalyticsGetDeviceLiveContribution, usePipelineAnalyticsGetDeviceSettingsContribution, usePipelineAnalyticsGetEventDensity, usePipelineAnalyticsGetEventMedia, usePipelineAnalyticsGetEventStoreFootprint, usePipelineAnalyticsGetKeyEvents, usePipelineAnalyticsGetMotionEvents, usePipelineAnalyticsGetObjectEvents, usePipelineAnalyticsGetSensorEvents, usePipelineAnalyticsGetTrack, usePipelineAnalyticsGetTrackMedia, usePipelineAnalyticsListEventKinds, usePipelineAnalyticsListOpsLog, usePipelineAnalyticsListRecentTracks, usePipelineAnalyticsListTracks, usePipelineAnalyticsPruneEvents, usePipelineAnalyticsPruneEventsBefore, usePipelineAnalyticsPruneTracksBefore, usePipelineAnalyticsSearchObjectEvents, usePipelineAnalyticsWipeAllAnalytics, 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, usePipelineExecutorReprobeEngine, usePipelineExecutorRunAudioTest, usePipelineExecutorRunPipeline, usePipelineExecutorRunPipelineBatch, usePipelineExecutorSaveTemplate, usePipelineExecutorSetVideoPipelineSteps, usePipelineExecutorSpinEngine, usePipelineExecutorUncacheFrame, usePipelineExecutorUpdateTemplate, usePipelineExecutorValidatePipeline, usePipelineOrchestratorApplyDeviceSettingsPatch, usePipelineOrchestratorAssignAudio, usePipelineOrchestratorAssignPipeline, usePipelineOrchestratorDeleteTemplate, usePipelineOrchestratorGetAgentLoad, usePipelineOrchestratorGetAgentSettings, usePipelineOrchestratorGetAudioAssignment, usePipelineOrchestratorGetAudioAssignments, usePipelineOrchestratorGetAudioNodeLoad, usePipelineOrchestratorGetCameraMetrics, usePipelineOrchestratorGetCameraSettings, usePipelineOrchestratorGetCameraStatus, usePipelineOrchestratorGetCameraStatuses, usePipelineOrchestratorGetCameraStepOverrides, usePipelineOrchestratorGetCapabilityBindings, usePipelineOrchestratorGetDeviceLiveContribution, usePipelineOrchestratorGetDeviceSettingsContribution, usePipelineOrchestratorGetGlobalMetrics, usePipelineOrchestratorGetIngestOwner, usePipelineOrchestratorGetPipelineAssignment, usePipelineOrchestratorGetPipelineAssignments, usePipelineOrchestratorListAgentSettings, usePipelineOrchestratorListTemplates, usePipelineOrchestratorRebalance, usePipelineOrchestratorRemoveAgentSettings, usePipelineOrchestratorResetNodePipelineDefaults, usePipelineOrchestratorResolvePipeline, usePipelineOrchestratorSaveTemplate, usePipelineOrchestratorSetAgentAddonDefaults, usePipelineOrchestratorSetAgentCapabilities, usePipelineOrchestratorSetAgentDetectWeight, usePipelineOrchestratorSetAgentInferenceDevices, usePipelineOrchestratorSetAgentMaxCameras, usePipelineOrchestratorSetAgentReachableHost, usePipelineOrchestratorSetCameraPipelineForAgent, usePipelineOrchestratorSetCameraStepOverride, usePipelineOrchestratorSetCameraStepToggle, usePipelineOrchestratorSetCapabilityBinding, usePipelineOrchestratorUnassignAudio, usePipelineOrchestratorUnassignPipeline, usePipelineOrchestratorUpdateTemplate, usePipelineRunnerAttachCamera, usePipelineRunnerDetachCamera, usePipelineRunnerGetAllCameraMetrics, usePipelineRunnerGetCameraMetrics, usePipelineRunnerGetLocalCameras, usePipelineRunnerGetLocalLoad, usePipelineRunnerGetLocalMetrics, usePipelineRunnerGetNativeCrop, usePipelineRunnerReportMotion, usePipelineRunnerRunDetailSubtree, 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, usePrivacyMaskSetMask, usePtzAutotrackGetSettings, usePtzAutotrackGetStatus, usePtzAutotrackSetEnabled, usePtzAutotrackSetSettings, usePtzContinuousMove, usePtzDeletePreset, usePtzGetOptions, usePtzGetPosition, usePtzGetPresets, usePtzGetStatus, usePtzGoHome, usePtzGoToPreset, usePtzMove, usePtzSavePreset, usePtzSetAutofocus, usePtzStop, useRebootReboot, useRecordedPlayback, useRecordingApplyDeviceSettingsPatch, useRecordingDeleteFootprint, useRecordingExportCancelExport, useRecordingExportCreateExport, useRecordingExportDeleteExport, useRecordingExportGetDownloadUrl, useRecordingExportGetExport, useRecordingExportListExports, useRecordingGetAvailability, useRecordingGetDaysWithRecordings, useRecordingGetDeviceConfig, useRecordingGetDeviceLiveContribution, useRecordingGetDeviceSettingsContribution, useRecordingGetPlaybackManifest, useRecordingGetStatus, useRecordingGetStorageUsage, useRecordingListOpsLog, useRecordingLocateSegment, useRecordingPruneFootage, useRecordingReadSegmentBytes, useRecordingRescanStorage, useRecordingSetDeviceConfig, useRemoteComponent, useSceneMonitorCaptureReference, useSceneMonitorCreateScene, useSceneMonitorDeleteReference, useSceneMonitorDeleteScene, useSceneMonitorGetStatus, useSceneMonitorListScenes, useSceneMonitorRecheckNow, useSceneMonitorUpdateScene, useScriptRunnerGetStatus, useScriptRunnerRun, useScriptRunnerStop, useScrubController, useServerManagementApplyServerUpdate, useServerManagementCheckServerUpdate, useServerManagementGetServerPackageStatus, useServerManagementRestartServer, useServerManagementRollbackServerUpdate, useSettingsStoreCount, useSettingsStoreDeclareCollection, useSettingsStoreDelete, useSettingsStoreGet, useSettingsStoreHistogram, useSettingsStoreInsert, useSettingsStoreIsEmpty, useSettingsStoreQuery, useSettingsStoreSet, useSettingsStoreUpdate, useSmokeGetStatus, useSnapshotApplyDeviceSettingsPatch, useSnapshotGetDeviceLiveContribution, useSnapshotGetDeviceSettingsContribution, useSnapshotGetSnapshot, useSnapshotGetSnapshotOverview, useSnapshotGetStatus, useSnapshotInvalidateCache, useStorageAbortUpload, useStorageBeginDownload, useStorageBeginUpload, useStorageDelete, useStorageDeleteLocation, useStorageEndDownload, useStorageExists, useStorageFinalizeUpload, useStorageGetAvailableSpace, useStorageGetDefaultLocation, useStorageList, useStorageListLocationDeclarations, useStorageListLocations, useStorageListProviders, useStorageRead, useStorageReadChunk, useStorageResolve, useStorageTestConfig, useStorageTestLocation, useStorageUpsertLocation, useStorageWrite, useStorageWriteChunk, useStreamBrokerApplyDeviceSettingsPatch, useStreamBrokerAssignProfile, useStreamBrokerGetAllRtspEntries, useStreamBrokerGetBrokerStats, useStreamBrokerGetDeviceLiveContribution, useStreamBrokerGetDeviceSettingsContribution, useStreamBrokerGetPreBufferInfo, useStreamBrokerGetRtspEntry, useStreamBrokerGetRtspPort, useStreamBrokerGetStreamUrl, useStreamBrokerGetStreamWithCodec, useStreamBrokerIsRtspEnabled, useStreamBrokerKillClient, useStreamBrokerListAllCameraStreams, useStreamBrokerListAllProfileSlots, useStreamBrokerListClients, useStreamBrokerProbeStream, useStreamBrokerPublishCameraStream, useStreamBrokerPullAudioChunks, useStreamBrokerPullFrameHandles, useStreamBrokerRegenerateRtspToken, useStreamBrokerReleaseStreamWithCodec, useStreamBrokerRestartProfile, useStreamBrokerRetractCameraStream, useStreamBrokerSetPreBufferDuration, useStreamBrokerSetRtspEnabled, useStreamBrokerSubscribeAudioChunks, useStreamBrokerSubscribeFrames, useStreamBrokerUnassignProfile, useStreamBrokerUnsubscribeAudioChunks, useStreamBrokerUnsubscribeFrames, useStreamCatalogGetCatalog, useStreamParamsGetConfigSchema, useStreamParamsGetOptions, useStreamParamsGetStatus, useStreamParamsSetProfile, useSwitchGetStatus, useSwitchSetState, useSystem, useSystemFeatureFlags, useSystemForceRetentionCleanup, useSystemGetRetentionConfig, useSystemHealth, useSystemInfo, useSystemMutation, useSystemNetworkAddresses, useSystemQuery, useSystemSetRetentionConfig, useTamperGetStatus, useTemperatureSensorGetStatus, 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, waterHeaterPhase, waterHeaterTint, weatherConditionMeta, weatherTint };
|