@camstack/ui-library 1.2.33 → 1.2.35
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/index.d.ts +2 -2
- package/dist/composites/resolve-step-default-model.d.ts +77 -1
- package/dist/generated/system-hooks.d.ts +6 -2
- package/dist/hooks/index.d.ts +1 -1
- package/dist/hooks/use-device-snapshot.d.ts +23 -5
- package/dist/index.cjs +152 -81
- package/dist/index.js +146 -81
- package/package.json +1 -1
|
@@ -13,8 +13,8 @@ export { DeviceStepMatrix } from './device-step-matrix';
|
|
|
13
13
|
export type { DeviceStepMatrixProps, StepGate } from './device-step-matrix';
|
|
14
14
|
export { shouldUseSingleNode, agentColumnKey, groupAgentColumns } from './pipeline-matrix-shared';
|
|
15
15
|
export type { AgentColumnGroup, AgentColumnIdentity, MatrixSelectedCell, } from './pipeline-matrix-shared';
|
|
16
|
-
export { resolveStepDefaultModel } from './resolve-step-default-model';
|
|
17
|
-
export type { StepModelCatalog } from './resolve-step-default-model';
|
|
16
|
+
export { resolveStepDefaultModel, resolveEffectiveDefaultModel, resolveEffectiveStepModel, stepHasModelForFormat, stepModelOptions, } from './resolve-step-default-model';
|
|
17
|
+
export type { EffectiveStepModelInput, StepModelCatalog, StepModelFormatBuilds, } from './resolve-step-default-model';
|
|
18
18
|
export { NodePicker } from './node-picker';
|
|
19
19
|
export type { NodePickerProps } from './node-picker';
|
|
20
20
|
export * from './status-badge';
|
|
@@ -1,5 +1,20 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* resolve-step-default-model — the
|
|
2
|
+
* resolve-step-default-model — the ONE step-model primitive every admin-ui
|
|
3
|
+
* surface that shows or edits a step's model consumes. Two questions, two
|
|
4
|
+
* exported answers, no local copies:
|
|
5
|
+
*
|
|
6
|
+
* - which models may this step run on this device? → `stepModelOptions`
|
|
7
|
+
* (and its boolean form `stepHasModelForFormat`);
|
|
8
|
+
* - which model does it ACTUALLY run right now? → `resolveEffectiveStepModel`
|
|
9
|
+
* (override → base → `resolveEffectiveDefaultModel`).
|
|
10
|
+
*
|
|
11
|
+
* Consumers: `AgentStepEditor` (the drawer picker), `NodeDeviceStepsMatrix`
|
|
12
|
+
* (per-node base), `DeviceStepOverrideTab` (per-camera override), the Models
|
|
13
|
+
* page and `pipeline-mirror`. They are views of the same decision and drifted
|
|
14
|
+
* apart once already — see `resolveEffectiveDefaultModel` for the bite.
|
|
15
|
+
* `scripts/check-step-model-single-owner.ts` is what stops the next copy.
|
|
16
|
+
*
|
|
17
|
+
* The rest of this file is the pure, UI-side mirror of the runner's
|
|
3
18
|
* `getDefaultModelForFormat` (`@camstack/addon-pipeline`
|
|
4
19
|
* `registry/step-definitions.ts`). The steps×device matrices need to show, per
|
|
5
20
|
* cell, the model a STEP would actually run on a device's engine format — but
|
|
@@ -37,3 +52,64 @@ export interface StepModelCatalog {
|
|
|
37
52
|
readonly defaultModelIdByFormat?: Readonly<Record<string, string>>;
|
|
38
53
|
}
|
|
39
54
|
export declare function resolveStepDefaultModel(catalog: StepModelCatalog, format: string): string;
|
|
55
|
+
/**
|
|
56
|
+
* The model a matrix CELL shows as this step's effective default on `device`.
|
|
57
|
+
*
|
|
58
|
+
* The device's ELECTED model (`device.defaultModelId`, the per-device
|
|
59
|
+
* object-detection election) applies ONLY when this step's catalog actually
|
|
60
|
+
* contains it — `slot === 'detector'` alone is too wide, because
|
|
61
|
+
* package-detection shares the detector slot with the root step. Bit live
|
|
62
|
+
* 2026-08-08: rfdetr-package became the package step's default and every
|
|
63
|
+
* matrix cell still showed the device's yolo as the "selected" model, because
|
|
64
|
+
* the election was applied slot-wide. Membership is the principled gate: an
|
|
65
|
+
* elected model this step cannot run is never displayed for it.
|
|
66
|
+
*/
|
|
67
|
+
export declare function resolveEffectiveDefaultModel(catalog: StepModelCatalog & {
|
|
68
|
+
readonly slot?: string;
|
|
69
|
+
}, device: {
|
|
70
|
+
readonly format?: string;
|
|
71
|
+
readonly defaultModelId?: string;
|
|
72
|
+
} | null | undefined): string | undefined;
|
|
73
|
+
/**
|
|
74
|
+
* The minimal model shape option-derivation needs: a per-format build map.
|
|
75
|
+
* `PipelineAddonSchema['models'][number]` is structurally assignable, and the
|
|
76
|
+
* generic below returns the CALLER's element type so a picker still receives
|
|
77
|
+
* `name` / `group` / `sizeMB`.
|
|
78
|
+
*/
|
|
79
|
+
export interface StepModelFormatBuilds {
|
|
80
|
+
readonly formats: Readonly<Record<string, unknown>>;
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* The models a step may run on an engine `format` — the ONE derivation of the
|
|
84
|
+
* option list. An unknown format yields NOTHING rather than everything: a
|
|
85
|
+
* picker that offered a model with no build for the device would write a pin
|
|
86
|
+
* the runner cannot honour.
|
|
87
|
+
*/
|
|
88
|
+
export declare function stepModelOptions<M extends StepModelFormatBuilds>(models: readonly M[], format: string | undefined): readonly M[];
|
|
89
|
+
/** Can this step run on `format` at all? (`false` ⇒ the caller renders "⚠ skip"/"—".) */
|
|
90
|
+
export declare function stepHasModelForFormat(models: readonly StepModelFormatBuilds[], format: string | undefined): boolean;
|
|
91
|
+
/** The layers a surface may pin, outermost first. Both are optional per surface. */
|
|
92
|
+
export interface EffectiveStepModelInput {
|
|
93
|
+
readonly catalog: StepModelCatalog & {
|
|
94
|
+
readonly slot?: string;
|
|
95
|
+
};
|
|
96
|
+
readonly device: {
|
|
97
|
+
readonly format?: string;
|
|
98
|
+
readonly defaultModelId?: string;
|
|
99
|
+
} | null | undefined;
|
|
100
|
+
/** Per-camera override (`stepOverridesByDevice[node][deviceKey][step].modelId`). */
|
|
101
|
+
readonly override?: string | undefined;
|
|
102
|
+
/** Per-(node,device) base (`inferenceDevices[node][deviceKey].steps[step].modelId`). */
|
|
103
|
+
readonly base?: string | undefined;
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* The model a step ACTUALLY runs for a (device, camera) — the whole effective
|
|
107
|
+
* chain in one place: per-camera override → per-(node,device) base → the
|
|
108
|
+
* resolved default (`resolveEffectiveDefaultModel`).
|
|
109
|
+
*
|
|
110
|
+
* Every surface calls this: the matrix cell, and the drawer's picker seed. They
|
|
111
|
+
* are the same number, and the only way to keep them the same number is to have
|
|
112
|
+
* one function produce it. A surface that owns fewer layers omits them (the node
|
|
113
|
+
* matrix passes no `override`) — it does NOT get its own resolver.
|
|
114
|
+
*/
|
|
115
|
+
export declare function resolveEffectiveStepModel(input: EffectiveStepModelInput): string | undefined;
|
|
@@ -297,6 +297,8 @@ export declare const useCoreBlocksUpdate: typeof trpc.coreBlocks.update.useMutat
|
|
|
297
297
|
export declare const useCoreBlocksDelete: typeof trpc.coreBlocks.delete.useMutation;
|
|
298
298
|
/** Generated alias around `trpc.coreBlocks.setEnabled.useMutation`. */
|
|
299
299
|
export declare const useCoreBlocksSetEnabled: typeof trpc.coreBlocks.setEnabled.useMutation;
|
|
300
|
+
/** Generated alias around `trpc.coreBlocks.restart.useMutation`. */
|
|
301
|
+
export declare const useCoreBlocksRestart: typeof trpc.coreBlocks.restart.useMutation;
|
|
300
302
|
/** Generated alias around `trpc.coreBlocks.compile.useMutation`. */
|
|
301
303
|
export declare const useCoreBlocksCompile: typeof trpc.coreBlocks.compile.useMutation;
|
|
302
304
|
/** Generated alias around `trpc.coreBlocks.getTypeDefs.useQuery`. */
|
|
@@ -423,8 +425,6 @@ export declare const useDeviceManagerSetLinkDeviceId: typeof trpc.deviceManager.
|
|
|
423
425
|
export declare const useDeviceManagerSetPrimaryChildEntityId: typeof trpc.deviceManager.setPrimaryChildEntityId.useMutation;
|
|
424
426
|
/** Generated alias around `trpc.deviceManager.setChildLayout.useMutation`. */
|
|
425
427
|
export declare const useDeviceManagerSetChildLayout: typeof trpc.deviceManager.setChildLayout.useMutation;
|
|
426
|
-
/** Generated alias around `trpc.deviceManager.setDeviceLinks.useMutation`. */
|
|
427
|
-
export declare const useDeviceManagerSetDeviceLinks: typeof trpc.deviceManager.setDeviceLinks.useMutation;
|
|
428
428
|
/** Generated alias around `trpc.deviceManager.setDisplay.useMutation`. */
|
|
429
429
|
export declare const useDeviceManagerSetDisplay: typeof trpc.deviceManager.setDisplay.useMutation;
|
|
430
430
|
/** Generated alias around `trpc.deviceManager.getRoleDisplayDefaults.useQuery`. */
|
|
@@ -1573,6 +1573,10 @@ export declare const useStreamBrokerAssignProfile: typeof trpc.streamBroker.assi
|
|
|
1573
1573
|
export declare const useStreamBrokerUnassignProfile: typeof trpc.streamBroker.unassignProfile.useMutation;
|
|
1574
1574
|
/** Generated alias around `trpc.streamBroker.renderPreBufferClip.useMutation`. */
|
|
1575
1575
|
export declare const useStreamBrokerRenderPreBufferClip: typeof trpc.streamBroker.renderPreBufferClip.useMutation;
|
|
1576
|
+
/** Generated alias around `trpc.streamBroker.produceEventMedia.useMutation`. */
|
|
1577
|
+
export declare const useStreamBrokerProduceEventMedia: typeof trpc.streamBroker.produceEventMedia.useMutation;
|
|
1578
|
+
/** Generated alias around `trpc.streamBroker.fetchEventMedia.useMutation`. */
|
|
1579
|
+
export declare const useStreamBrokerFetchEventMedia: typeof trpc.streamBroker.fetchEventMedia.useMutation;
|
|
1576
1580
|
/** Generated alias around `trpc.streamBroker.listAllCameraStreams.useQuery`. */
|
|
1577
1581
|
export declare const useStreamBrokerListAllCameraStreams: typeof trpc.streamBroker.listAllCameraStreams.useQuery;
|
|
1578
1582
|
/** Generated alias around `trpc.streamBroker.listAllProfileSlots.useQuery`. */
|
package/dist/hooks/index.d.ts
CHANGED
|
@@ -17,7 +17,7 @@ export type { UseDeviceProxyTrpc } from './use-device-proxy';
|
|
|
17
17
|
export { useDeviceCapability } from './use-device-capability';
|
|
18
18
|
export type { UseDeviceCapabilityOptions, UseDeviceCapabilityResult, } from './use-device-capability';
|
|
19
19
|
export { useDeviceSnapshotImage } from './use-device-snapshot';
|
|
20
|
-
export type { DeviceSnapshotImage } from './use-device-snapshot';
|
|
20
|
+
export type { DeviceSnapshotImage, UseDeviceSnapshotOptions } from './use-device-snapshot';
|
|
21
21
|
export type { ClusterNode } from './use-cluster-nodes';
|
|
22
22
|
export type { DeviceDetections, MotionState, MotionZone, MotionRawState, MotionRawBox, DetectionState, } from './use-device-detections';
|
|
23
23
|
export type { DeviceWebrtcResult, UseDeviceWebrtcTrpc, DevicePipelineMetrics, WebrtcTarget, SessionRenegotiationState, } from './use-device-webrtc';
|
|
@@ -1,10 +1,28 @@
|
|
|
1
|
-
|
|
1
|
+
/** The hub-proxied path prefix for the snapshot image data plane. */
|
|
2
|
+
export declare const SNAPSHOT_MEDIA_PATH = "/addon/snapshot/media";
|
|
2
3
|
export interface DeviceSnapshotImage {
|
|
3
|
-
/**
|
|
4
|
+
/** Image URL ready for `<img src>`, or `null` when there is no device. */
|
|
4
5
|
readonly src: string | null;
|
|
5
|
-
/**
|
|
6
|
+
/**
|
|
7
|
+
* Always false. Kept so existing callers' spinners compile; a URL needs no
|
|
8
|
+
* fetch state, and the `<img>` element owns its own load lifecycle (an
|
|
9
|
+
* unavailable snapshot surfaces as `onError`, which every consumer already
|
|
10
|
+
* handles because a device can legitimately have no camera).
|
|
11
|
+
*/
|
|
6
12
|
readonly loading: boolean;
|
|
7
|
-
/** Force
|
|
13
|
+
/** Force ONE fresh capture (bypasses the wrapper's freshness gate, and wakes
|
|
14
|
+
* a battery camera — an operator action only). */
|
|
8
15
|
readonly refresh: () => void;
|
|
9
16
|
}
|
|
10
|
-
export
|
|
17
|
+
export interface UseDeviceSnapshotOptions {
|
|
18
|
+
/**
|
|
19
|
+
* Target width in px. The server snaps it to a ladder
|
|
20
|
+
* ([160, 240, 320, 480, 640, 960]) and derives the variant once per capture,
|
|
21
|
+
* so nearby sizes share one image. **Omitting it returns the frame as
|
|
22
|
+
* captured** — which is how a 28 px thumbnail came to cost a megabyte.
|
|
23
|
+
*/
|
|
24
|
+
readonly width?: number;
|
|
25
|
+
/** Absolute hub base. Omit in the admin UI, which is same-origin with the hub. */
|
|
26
|
+
readonly baseUrl?: string;
|
|
27
|
+
}
|
|
28
|
+
export declare function useDeviceSnapshotImage(deviceId: number | null, options?: UseDeviceSnapshotOptions): DeviceSnapshotImage;
|
package/dist/index.cjs
CHANGED
|
@@ -3733,6 +3733,62 @@ var CHIP_BASE = "inline-flex items-center gap-1 rounded-full border px-1.5 py-0.
|
|
|
3733
3733
|
var CHIP_ACTIVE = "border-primary/50 bg-primary/15 text-primary";
|
|
3734
3734
|
var CHIP_INACTIVE = "border-border bg-surface text-foreground-subtle hover:bg-surface-hover";
|
|
3735
3735
|
//#endregion
|
|
3736
|
+
//#region src/composites/resolve-step-default-model.ts
|
|
3737
|
+
function resolveStepDefaultModel(catalog, format) {
|
|
3738
|
+
const hasFormatBuild = (modelId) => catalog.models.find((m) => m.id === modelId)?.formats[format] !== void 0;
|
|
3739
|
+
const declared = catalog.defaultModelIdByFormat?.[format];
|
|
3740
|
+
if (declared !== void 0 && hasFormatBuild(declared)) return declared;
|
|
3741
|
+
if (hasFormatBuild(catalog.defaultModelId)) return catalog.defaultModelId;
|
|
3742
|
+
const available = catalog.models.filter((m) => m.formats[format] !== void 0 && m.legacy !== true);
|
|
3743
|
+
if (available.length === 0) return catalog.defaultModelId;
|
|
3744
|
+
return [...available].toSorted((a, b) => (a.formats[format]?.sizeMB ?? Infinity) - (b.formats[format]?.sizeMB ?? Infinity))[0].id;
|
|
3745
|
+
}
|
|
3746
|
+
/**
|
|
3747
|
+
* The model a matrix CELL shows as this step's effective default on `device`.
|
|
3748
|
+
*
|
|
3749
|
+
* The device's ELECTED model (`device.defaultModelId`, the per-device
|
|
3750
|
+
* object-detection election) applies ONLY when this step's catalog actually
|
|
3751
|
+
* contains it — `slot === 'detector'` alone is too wide, because
|
|
3752
|
+
* package-detection shares the detector slot with the root step. Bit live
|
|
3753
|
+
* 2026-08-08: rfdetr-package became the package step's default and every
|
|
3754
|
+
* matrix cell still showed the device's yolo as the "selected" model, because
|
|
3755
|
+
* the election was applied slot-wide. Membership is the principled gate: an
|
|
3756
|
+
* elected model this step cannot run is never displayed for it.
|
|
3757
|
+
*/
|
|
3758
|
+
function resolveEffectiveDefaultModel(catalog, device) {
|
|
3759
|
+
const format = device?.format;
|
|
3760
|
+
if (format === void 0) return void 0;
|
|
3761
|
+
const elected = device?.defaultModelId;
|
|
3762
|
+
return catalog.slot === "detector" && elected !== void 0 && catalog.models.some((m) => m.id === elected) ? elected : resolveStepDefaultModel(catalog, format);
|
|
3763
|
+
}
|
|
3764
|
+
/**
|
|
3765
|
+
* The models a step may run on an engine `format` — the ONE derivation of the
|
|
3766
|
+
* option list. An unknown format yields NOTHING rather than everything: a
|
|
3767
|
+
* picker that offered a model with no build for the device would write a pin
|
|
3768
|
+
* the runner cannot honour.
|
|
3769
|
+
*/
|
|
3770
|
+
function stepModelOptions(models, format) {
|
|
3771
|
+
if (format === void 0) return [];
|
|
3772
|
+
return models.filter((m) => m.formats[format] !== void 0);
|
|
3773
|
+
}
|
|
3774
|
+
/** Can this step run on `format` at all? (`false` ⇒ the caller renders "⚠ skip"/"—".) */
|
|
3775
|
+
function stepHasModelForFormat(models, format) {
|
|
3776
|
+
return stepModelOptions(models, format).length > 0;
|
|
3777
|
+
}
|
|
3778
|
+
/**
|
|
3779
|
+
* The model a step ACTUALLY runs for a (device, camera) — the whole effective
|
|
3780
|
+
* chain in one place: per-camera override → per-(node,device) base → the
|
|
3781
|
+
* resolved default (`resolveEffectiveDefaultModel`).
|
|
3782
|
+
*
|
|
3783
|
+
* Every surface calls this: the matrix cell, and the drawer's picker seed. They
|
|
3784
|
+
* are the same number, and the only way to keep them the same number is to have
|
|
3785
|
+
* one function produce it. A surface that owns fewer layers omits them (the node
|
|
3786
|
+
* matrix passes no `override`) — it does NOT get its own resolver.
|
|
3787
|
+
*/
|
|
3788
|
+
function resolveEffectiveStepModel(input) {
|
|
3789
|
+
return input.override ?? input.base ?? resolveEffectiveDefaultModel(input.catalog, input.device);
|
|
3790
|
+
}
|
|
3791
|
+
//#endregion
|
|
3736
3792
|
//#region src/lib/pipeline-mirror.ts
|
|
3737
3793
|
function findAddonInCatalog(catalog, addonId) {
|
|
3738
3794
|
for (const slot of catalog.slots) for (const addon of slot.addons) if (addon.id === addonId) return addon;
|
|
@@ -3741,8 +3797,20 @@ function findAddonInCatalog(catalog, addonId) {
|
|
|
3741
3797
|
function findModel(addon, modelId) {
|
|
3742
3798
|
return addon.models.find((m) => m.id === modelId) ?? null;
|
|
3743
3799
|
}
|
|
3744
|
-
|
|
3745
|
-
|
|
3800
|
+
/**
|
|
3801
|
+
* The model to adopt on the target when the source's pin has no build there.
|
|
3802
|
+
*
|
|
3803
|
+
* Options come from the shared step-model primitive, and the CHOICE is the
|
|
3804
|
+
* step's own resolved default for that format — not "the first entry in the
|
|
3805
|
+
* array", which is how a mirror could land on `yolov8n-package` for a step
|
|
3806
|
+
* whose declared default is `rfdetr-package`, disagreeing with the very cell
|
|
3807
|
+
* the steps matrix renders right after the mirror.
|
|
3808
|
+
*/
|
|
3809
|
+
function fallbackModelFor(addon, format) {
|
|
3810
|
+
const options = stepModelOptions(addon.models, format);
|
|
3811
|
+
if (options.length === 0) return null;
|
|
3812
|
+
const resolved = resolveStepDefaultModel(addon, format);
|
|
3813
|
+
return options.find((m) => m.id === resolved) ?? options[0] ?? null;
|
|
3746
3814
|
}
|
|
3747
3815
|
function dropModelSpecific(settings, targetAddon) {
|
|
3748
3816
|
const allowedKeys = new Set((targetAddon.configSchema ?? []).map((f) => f.key));
|
|
@@ -3783,11 +3851,11 @@ function mirror(input) {
|
|
|
3783
3851
|
outcome = "exact";
|
|
3784
3852
|
} else {
|
|
3785
3853
|
const srcModel = findModel(targetAddon, srcCfg.modelId);
|
|
3786
|
-
if (srcModel !== null &&
|
|
3854
|
+
if (srcModel !== null && stepModelOptions([srcModel], target.engine.format).length > 0) {
|
|
3787
3855
|
chosenModelId = srcCfg.modelId;
|
|
3788
3856
|
outcome = "exact";
|
|
3789
3857
|
} else {
|
|
3790
|
-
const fallback =
|
|
3858
|
+
const fallback = fallbackModelFor(targetAddon, target.engine.format);
|
|
3791
3859
|
if (!fallback) {
|
|
3792
3860
|
out.push({
|
|
3793
3861
|
addonId,
|
|
@@ -14231,7 +14299,7 @@ function ModelPicker({ models, value, onChange, disabled }) {
|
|
|
14231
14299
|
});
|
|
14232
14300
|
if (!hasGroups) return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
14233
14301
|
className: "space-y-2",
|
|
14234
|
-
children: [unresolvedBanner, flatSelect(models)]
|
|
14302
|
+
children: [unresolvedBanner, flatSelect(models, "— select a model —")]
|
|
14235
14303
|
});
|
|
14236
14304
|
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
14237
14305
|
className: "space-y-3",
|
|
@@ -14758,7 +14826,7 @@ function DeviceModeEditor({ addon, agentDefault, agentNodeId, currentPatch, mode
|
|
|
14758
14826
|
}
|
|
14759
14827
|
function AgentStepEditor(props) {
|
|
14760
14828
|
const { mode, addon, agentDefault, agentNodeId, currentPatch, onChangeAgentConfig, onChangePatch, engineFormat, effectiveModelId } = props;
|
|
14761
|
-
const modelsForFormat = (0, react$1.useMemo)(() => addon.models
|
|
14829
|
+
const modelsForFormat = (0, react$1.useMemo)(() => stepModelOptions(addon.models, engineFormat), [addon.models, engineFormat]);
|
|
14762
14830
|
if (mode === "agent") return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(AgentModeEditor, {
|
|
14763
14831
|
addon,
|
|
14764
14832
|
agentDefault,
|
|
@@ -15430,17 +15498,6 @@ function DeviceStepMatrix({ tree, agents, gateFor, getCellState, onCellClick, se
|
|
|
15430
15498
|
});
|
|
15431
15499
|
}
|
|
15432
15500
|
//#endregion
|
|
15433
|
-
//#region src/composites/resolve-step-default-model.ts
|
|
15434
|
-
function resolveStepDefaultModel(catalog, format) {
|
|
15435
|
-
const hasFormatBuild = (modelId) => catalog.models.find((m) => m.id === modelId)?.formats[format] !== void 0;
|
|
15436
|
-
const declared = catalog.defaultModelIdByFormat?.[format];
|
|
15437
|
-
if (declared !== void 0 && hasFormatBuild(declared)) return declared;
|
|
15438
|
-
if (hasFormatBuild(catalog.defaultModelId)) return catalog.defaultModelId;
|
|
15439
|
-
const available = catalog.models.filter((m) => m.formats[format] !== void 0 && m.legacy !== true);
|
|
15440
|
-
if (available.length === 0) return catalog.defaultModelId;
|
|
15441
|
-
return [...available].toSorted((a, b) => (a.formats[format]?.sizeMB ?? Infinity) - (b.formats[format]?.sizeMB ?? Infinity))[0].id;
|
|
15442
|
-
}
|
|
15443
|
-
//#endregion
|
|
15444
15501
|
//#region src/trpc-react.ts
|
|
15445
15502
|
/**
|
|
15446
15503
|
* Shared typed React Query proxy for the backend AppRouter.
|
|
@@ -18464,6 +18521,8 @@ var useCoreBlocksUpdate = trpc.coreBlocks.update.useMutation;
|
|
|
18464
18521
|
var useCoreBlocksDelete = trpc.coreBlocks.delete.useMutation;
|
|
18465
18522
|
/** Generated alias around `trpc.coreBlocks.setEnabled.useMutation`. */
|
|
18466
18523
|
var useCoreBlocksSetEnabled = trpc.coreBlocks.setEnabled.useMutation;
|
|
18524
|
+
/** Generated alias around `trpc.coreBlocks.restart.useMutation`. */
|
|
18525
|
+
var useCoreBlocksRestart = trpc.coreBlocks.restart.useMutation;
|
|
18467
18526
|
/** Generated alias around `trpc.coreBlocks.compile.useMutation`. */
|
|
18468
18527
|
var useCoreBlocksCompile = trpc.coreBlocks.compile.useMutation;
|
|
18469
18528
|
/** Generated alias around `trpc.coreBlocks.getTypeDefs.useQuery`. */
|
|
@@ -18590,8 +18649,6 @@ var useDeviceManagerSetLinkDeviceId = trpc.deviceManager.setLinkDeviceId.useMuta
|
|
|
18590
18649
|
var useDeviceManagerSetPrimaryChildEntityId = trpc.deviceManager.setPrimaryChildEntityId.useMutation;
|
|
18591
18650
|
/** Generated alias around `trpc.deviceManager.setChildLayout.useMutation`. */
|
|
18592
18651
|
var useDeviceManagerSetChildLayout = trpc.deviceManager.setChildLayout.useMutation;
|
|
18593
|
-
/** Generated alias around `trpc.deviceManager.setDeviceLinks.useMutation`. */
|
|
18594
|
-
var useDeviceManagerSetDeviceLinks = trpc.deviceManager.setDeviceLinks.useMutation;
|
|
18595
18652
|
/** Generated alias around `trpc.deviceManager.setDisplay.useMutation`. */
|
|
18596
18653
|
var useDeviceManagerSetDisplay = trpc.deviceManager.setDisplay.useMutation;
|
|
18597
18654
|
/** Generated alias around `trpc.deviceManager.getRoleDisplayDefaults.useQuery`. */
|
|
@@ -19740,6 +19797,10 @@ var useStreamBrokerAssignProfile = trpc.streamBroker.assignProfile.useMutation;
|
|
|
19740
19797
|
var useStreamBrokerUnassignProfile = trpc.streamBroker.unassignProfile.useMutation;
|
|
19741
19798
|
/** Generated alias around `trpc.streamBroker.renderPreBufferClip.useMutation`. */
|
|
19742
19799
|
var useStreamBrokerRenderPreBufferClip = trpc.streamBroker.renderPreBufferClip.useMutation;
|
|
19800
|
+
/** Generated alias around `trpc.streamBroker.produceEventMedia.useMutation`. */
|
|
19801
|
+
var useStreamBrokerProduceEventMedia = trpc.streamBroker.produceEventMedia.useMutation;
|
|
19802
|
+
/** Generated alias around `trpc.streamBroker.fetchEventMedia.useMutation`. */
|
|
19803
|
+
var useStreamBrokerFetchEventMedia = trpc.streamBroker.fetchEventMedia.useMutation;
|
|
19743
19804
|
/** Generated alias around `trpc.streamBroker.listAllCameraStreams.useQuery`. */
|
|
19744
19805
|
var useStreamBrokerListAllCameraStreams = trpc.streamBroker.listAllCameraStreams.useQuery;
|
|
19745
19806
|
/** Generated alias around `trpc.streamBroker.listAllProfileSlots.useQuery`. */
|
|
@@ -29408,67 +29469,68 @@ function useDeviceBattery(trpc, deviceId) {
|
|
|
29408
29469
|
//#endregion
|
|
29409
29470
|
//#region src/hooks/use-device-snapshot.ts
|
|
29410
29471
|
/**
|
|
29411
|
-
* useDeviceSnapshotImage —
|
|
29412
|
-
*
|
|
29413
|
-
*
|
|
29414
|
-
*
|
|
29415
|
-
*
|
|
29416
|
-
*
|
|
29417
|
-
*
|
|
29418
|
-
*
|
|
29419
|
-
*
|
|
29420
|
-
*
|
|
29421
|
-
*
|
|
29422
|
-
*
|
|
29423
|
-
*
|
|
29424
|
-
*
|
|
29425
|
-
*
|
|
29426
|
-
*
|
|
29427
|
-
*
|
|
29428
|
-
*
|
|
29429
|
-
*
|
|
29430
|
-
*
|
|
29431
|
-
*
|
|
29432
|
-
* Returns:
|
|
29433
|
-
*
|
|
29434
|
-
*
|
|
29435
|
-
*
|
|
29436
|
-
*
|
|
29437
|
-
*
|
|
29438
|
-
*
|
|
29439
|
-
*
|
|
29440
|
-
|
|
29441
|
-
|
|
29442
|
-
|
|
29443
|
-
|
|
29444
|
-
|
|
29445
|
-
|
|
29446
|
-
|
|
29447
|
-
|
|
29448
|
-
|
|
29449
|
-
|
|
29450
|
-
|
|
29451
|
-
if (!dev) throw new Error("useDeviceSnapshotImage: device proxy not ready");
|
|
29452
|
-
const force = forceRef.current;
|
|
29453
|
-
forceRef.current = false;
|
|
29454
|
-
return dev.snapshot?.getSnapshot({ force }) ?? null;
|
|
29455
|
-
},
|
|
29456
|
-
enabled: dev !== null && deviceId !== null,
|
|
29457
|
-
staleTime: 1e4,
|
|
29458
|
-
gcTime: 1440 * 60 * 1e3,
|
|
29459
|
-
refetchOnWindowFocus: false,
|
|
29460
|
-
refetchOnReconnect: false,
|
|
29461
|
-
retry: false
|
|
29462
|
-
});
|
|
29463
|
-
const src = data ? `data:${data.contentType};base64,${data.base64}` : null;
|
|
29464
|
-
function refresh() {
|
|
29465
|
-
forceRef.current = true;
|
|
29466
|
-
refetch();
|
|
29467
|
-
}
|
|
29472
|
+
* useDeviceSnapshotImage — a device's snapshot as a plain image URL.
|
|
29473
|
+
*
|
|
29474
|
+
* ## What this used to do, and why it stopped
|
|
29475
|
+
*
|
|
29476
|
+
* It fetched `dev.snapshot.getSnapshot()` over tRPC and returned
|
|
29477
|
+
* `data:image/jpeg;base64,…`. That put a full camera capture — up to 4 K,
|
|
29478
|
+
* measured at 758 KB average per camera on the live hub — through the msgpack
|
|
29479
|
+
* WebSocket plane, base64-inflated by a third, and then held it in the
|
|
29480
|
+
* react-query heap for 24 h per device. The device list rendered it into a
|
|
29481
|
+
* **28 × 28 px `<img>`**.
|
|
29482
|
+
*
|
|
29483
|
+
* It also did not do what it appeared to do. `snapshot.getSnapshot` scoped to a
|
|
29484
|
+
* device routes to the NATIVE provider, not the snapshot wrapper, so it bypassed
|
|
29485
|
+
* the wrapper's cache, coalescing and stale-while-revalidate entirely: probed
|
|
29486
|
+
* live, a `force:true` call returned a fresh 1.05 MB JPEG in 0.55 s while the
|
|
29487
|
+
* wrapper's `lastCapturedAt` for that camera did not move. Two snapshot paths,
|
|
29488
|
+
* different behaviour, and only one of them maintained the cache the other one
|
|
29489
|
+
* reported on.
|
|
29490
|
+
*
|
|
29491
|
+
* ## What it does now
|
|
29492
|
+
*
|
|
29493
|
+
* Returns the same URL the viewer uses: `/addon/snapshot/media/<id>.jpg?w=<n>`,
|
|
29494
|
+
* served by the wrapper over the HTTP data plane. Relative and same-origin, so
|
|
29495
|
+
* the admin UI's `camstack_session` cookie authenticates it — the endpoint is
|
|
29496
|
+
* `access: 'authenticated'`, which accepts either a Bearer header or that
|
|
29497
|
+
* cookie, and a bare `<img>` can only send the cookie. This is the same
|
|
29498
|
+
* mechanism the native `<video>` fallback in `hls-video.tsx` already relies on.
|
|
29499
|
+
*
|
|
29500
|
+
* Caching is now the browser's, which is the point: `ETag` +
|
|
29501
|
+
* `Cache-Control: private, max-age=<device maxAgeS>` means a repeat render is a
|
|
29502
|
+
* cache hit and a revalidation is a 0-byte 304. No JS heap, no msgpack, no
|
|
29503
|
+
* base64. Nothing to configure — unlike `expo-image` on native, browsers
|
|
29504
|
+
* revalidate a stale URL rather than treating it as immutable, so the URL stays
|
|
29505
|
+
* stable and does NOT need a version parameter.
|
|
29506
|
+
*/
|
|
29507
|
+
/** The hub-proxied path prefix for the snapshot image data plane. */
|
|
29508
|
+
var SNAPSHOT_MEDIA_PATH = "/addon/snapshot/media";
|
|
29509
|
+
function useDeviceSnapshotImage(deviceId, options = {}) {
|
|
29510
|
+
const { width, baseUrl } = options;
|
|
29511
|
+
const [refreshNonce, setRefreshNonce] = (0, react$1.useState)(0);
|
|
29468
29512
|
return {
|
|
29469
|
-
src,
|
|
29470
|
-
|
|
29471
|
-
|
|
29513
|
+
src: (0, react$1.useMemo)(() => {
|
|
29514
|
+
if (deviceId === null || deviceId <= 0) return null;
|
|
29515
|
+
const base = baseUrl !== void 0 ? baseUrl.replace(/\/+$/, "") : "";
|
|
29516
|
+
const params = new URLSearchParams();
|
|
29517
|
+
if (width !== void 0 && Number.isInteger(width) && width > 0) params.set("w", String(width));
|
|
29518
|
+
if (refreshNonce > 0) {
|
|
29519
|
+
params.set("force", "1");
|
|
29520
|
+
params.set("r", String(refreshNonce));
|
|
29521
|
+
}
|
|
29522
|
+
const query = params.toString();
|
|
29523
|
+
return `${base}${SNAPSHOT_MEDIA_PATH}/${String(deviceId)}.jpg${query.length > 0 ? `?${query}` : ""}`;
|
|
29524
|
+
}, [
|
|
29525
|
+
deviceId,
|
|
29526
|
+
width,
|
|
29527
|
+
baseUrl,
|
|
29528
|
+
refreshNonce
|
|
29529
|
+
]),
|
|
29530
|
+
loading: false,
|
|
29531
|
+
refresh: (0, react$1.useCallback)(() => {
|
|
29532
|
+
setRefreshNonce((n) => n + 1);
|
|
29533
|
+
}, [])
|
|
29472
29534
|
};
|
|
29473
29535
|
}
|
|
29474
29536
|
//#endregion
|
|
@@ -29630,8 +29692,11 @@ function HoverZoomImage({ src, alt, caption, placeholder = "No image", thumbClas
|
|
|
29630
29692
|
}
|
|
29631
29693
|
//#endregion
|
|
29632
29694
|
//#region src/composites/device-item/preview.tsx
|
|
29695
|
+
/** Ladder rung for the device-row preview: sharp at 28 px, sharp enough at
|
|
29696
|
+
* the 288 px hover zoom. */
|
|
29697
|
+
var PREVIEW_SNAPSHOT_WIDTH = 480;
|
|
29633
29698
|
function DeviceItemPreview({ trpc, device, status, enabled, showStatusPills = false }) {
|
|
29634
|
-
const snapshot = useDeviceSnapshotImage(
|
|
29699
|
+
const snapshot = useDeviceSnapshotImage(enabled && device.online ? device.id : null, { width: PREVIEW_SNAPSHOT_WIDTH });
|
|
29635
29700
|
const isBatteryOperated = (device.features ?? []).includes("battery-operated");
|
|
29636
29701
|
const wantPills = showStatusPills && isBatteryOperated && !device.disabled;
|
|
29637
29702
|
const batteryStatus = useDeviceBattery(trpc, wantPills ? device.id : null);
|
|
@@ -48261,6 +48326,8 @@ exports.resolveContainerPrimary = resolveContainerPrimary;
|
|
|
48261
48326
|
exports.resolveControlAlign = resolveControlAlign;
|
|
48262
48327
|
exports.resolveDeviceControl = resolveDeviceControl;
|
|
48263
48328
|
exports.resolveDisplayIcon = resolveDisplayIcon;
|
|
48329
|
+
exports.resolveEffectiveDefaultModel = resolveEffectiveDefaultModel;
|
|
48330
|
+
exports.resolveEffectiveStepModel = resolveEffectiveStepModel;
|
|
48264
48331
|
exports.resolveEventKindIcon = resolveEventKindIcon;
|
|
48265
48332
|
exports.resolvePrimaryChild = resolvePrimaryChild;
|
|
48266
48333
|
exports.resolveSensorDisplay = resolveSensorDisplay;
|
|
@@ -48274,6 +48341,8 @@ exports.shouldEmit = shouldEmit;
|
|
|
48274
48341
|
exports.shouldUseSingleNode = shouldUseSingleNode;
|
|
48275
48342
|
exports.sortRows = sortRows;
|
|
48276
48343
|
exports.statusIcons = statusIcons;
|
|
48344
|
+
exports.stepHasModelForFormat = stepHasModelForFormat;
|
|
48345
|
+
exports.stepModelOptions = stepModelOptions;
|
|
48277
48346
|
exports.stripParentNamePrefix = stripParentNamePrefix;
|
|
48278
48347
|
exports.tankAlert = tankAlert;
|
|
48279
48348
|
exports.themeToCss = require_theme_index.themeToCss$1;
|
|
@@ -48431,6 +48500,7 @@ exports.useCoreBlocksDelete = useCoreBlocksDelete;
|
|
|
48431
48500
|
exports.useCoreBlocksGet = useCoreBlocksGet;
|
|
48432
48501
|
exports.useCoreBlocksGetTypeDefs = useCoreBlocksGetTypeDefs;
|
|
48433
48502
|
exports.useCoreBlocksList = useCoreBlocksList;
|
|
48503
|
+
exports.useCoreBlocksRestart = useCoreBlocksRestart;
|
|
48434
48504
|
exports.useCoreBlocksSetEnabled = useCoreBlocksSetEnabled;
|
|
48435
48505
|
exports.useCoreBlocksUpdate = useCoreBlocksUpdate;
|
|
48436
48506
|
exports.useCoverClose = useCoverClose;
|
|
@@ -48547,7 +48617,6 @@ exports.useDeviceManagerRemoveDevice = useDeviceManagerRemoveDevice;
|
|
|
48547
48617
|
exports.useDeviceManagerRemoveLocation = useDeviceManagerRemoveLocation;
|
|
48548
48618
|
exports.useDeviceManagerRunDeviceAction = useDeviceManagerRunDeviceAction;
|
|
48549
48619
|
exports.useDeviceManagerSetChildLayout = useDeviceManagerSetChildLayout;
|
|
48550
|
-
exports.useDeviceManagerSetDeviceLinks = useDeviceManagerSetDeviceLinks;
|
|
48551
48620
|
exports.useDeviceManagerSetDisabled = useDeviceManagerSetDisabled;
|
|
48552
48621
|
exports.useDeviceManagerSetDisplay = useDeviceManagerSetDisplay;
|
|
48553
48622
|
exports.useDeviceManagerSetIntegrationId = useDeviceManagerSetIntegrationId;
|
|
@@ -49105,6 +49174,7 @@ exports.useStorageWriteChunk = useStorageWriteChunk;
|
|
|
49105
49174
|
exports.useStreamBrokerAcquireEgressTranscode = useStreamBrokerAcquireEgressTranscode;
|
|
49106
49175
|
exports.useStreamBrokerApplyDeviceSettingsPatch = useStreamBrokerApplyDeviceSettingsPatch;
|
|
49107
49176
|
exports.useStreamBrokerAssignProfile = useStreamBrokerAssignProfile;
|
|
49177
|
+
exports.useStreamBrokerFetchEventMedia = useStreamBrokerFetchEventMedia;
|
|
49108
49178
|
exports.useStreamBrokerGetAllRtspEntries = useStreamBrokerGetAllRtspEntries;
|
|
49109
49179
|
exports.useStreamBrokerGetBrokerStats = useStreamBrokerGetBrokerStats;
|
|
49110
49180
|
exports.useStreamBrokerGetDeviceAudioMute = useStreamBrokerGetDeviceAudioMute;
|
|
@@ -49121,6 +49191,7 @@ exports.useStreamBrokerListAllCameraStreams = useStreamBrokerListAllCameraStream
|
|
|
49121
49191
|
exports.useStreamBrokerListAllProfileSlots = useStreamBrokerListAllProfileSlots;
|
|
49122
49192
|
exports.useStreamBrokerListClients = useStreamBrokerListClients;
|
|
49123
49193
|
exports.useStreamBrokerProbeStream = useStreamBrokerProbeStream;
|
|
49194
|
+
exports.useStreamBrokerProduceEventMedia = useStreamBrokerProduceEventMedia;
|
|
49124
49195
|
exports.useStreamBrokerPublishCameraStream = useStreamBrokerPublishCameraStream;
|
|
49125
49196
|
exports.useStreamBrokerPullAudioChunks = useStreamBrokerPullAudioChunks;
|
|
49126
49197
|
exports.useStreamBrokerPullFrameHandles = useStreamBrokerPullFrameHandles;
|
package/dist/index.js
CHANGED
|
@@ -3709,6 +3709,62 @@ var CHIP_BASE = "inline-flex items-center gap-1 rounded-full border px-1.5 py-0.
|
|
|
3709
3709
|
var CHIP_ACTIVE = "border-primary/50 bg-primary/15 text-primary";
|
|
3710
3710
|
var CHIP_INACTIVE = "border-border bg-surface text-foreground-subtle hover:bg-surface-hover";
|
|
3711
3711
|
//#endregion
|
|
3712
|
+
//#region src/composites/resolve-step-default-model.ts
|
|
3713
|
+
function resolveStepDefaultModel(catalog, format) {
|
|
3714
|
+
const hasFormatBuild = (modelId) => catalog.models.find((m) => m.id === modelId)?.formats[format] !== void 0;
|
|
3715
|
+
const declared = catalog.defaultModelIdByFormat?.[format];
|
|
3716
|
+
if (declared !== void 0 && hasFormatBuild(declared)) return declared;
|
|
3717
|
+
if (hasFormatBuild(catalog.defaultModelId)) return catalog.defaultModelId;
|
|
3718
|
+
const available = catalog.models.filter((m) => m.formats[format] !== void 0 && m.legacy !== true);
|
|
3719
|
+
if (available.length === 0) return catalog.defaultModelId;
|
|
3720
|
+
return [...available].toSorted((a, b) => (a.formats[format]?.sizeMB ?? Infinity) - (b.formats[format]?.sizeMB ?? Infinity))[0].id;
|
|
3721
|
+
}
|
|
3722
|
+
/**
|
|
3723
|
+
* The model a matrix CELL shows as this step's effective default on `device`.
|
|
3724
|
+
*
|
|
3725
|
+
* The device's ELECTED model (`device.defaultModelId`, the per-device
|
|
3726
|
+
* object-detection election) applies ONLY when this step's catalog actually
|
|
3727
|
+
* contains it — `slot === 'detector'` alone is too wide, because
|
|
3728
|
+
* package-detection shares the detector slot with the root step. Bit live
|
|
3729
|
+
* 2026-08-08: rfdetr-package became the package step's default and every
|
|
3730
|
+
* matrix cell still showed the device's yolo as the "selected" model, because
|
|
3731
|
+
* the election was applied slot-wide. Membership is the principled gate: an
|
|
3732
|
+
* elected model this step cannot run is never displayed for it.
|
|
3733
|
+
*/
|
|
3734
|
+
function resolveEffectiveDefaultModel(catalog, device) {
|
|
3735
|
+
const format = device?.format;
|
|
3736
|
+
if (format === void 0) return void 0;
|
|
3737
|
+
const elected = device?.defaultModelId;
|
|
3738
|
+
return catalog.slot === "detector" && elected !== void 0 && catalog.models.some((m) => m.id === elected) ? elected : resolveStepDefaultModel(catalog, format);
|
|
3739
|
+
}
|
|
3740
|
+
/**
|
|
3741
|
+
* The models a step may run on an engine `format` — the ONE derivation of the
|
|
3742
|
+
* option list. An unknown format yields NOTHING rather than everything: a
|
|
3743
|
+
* picker that offered a model with no build for the device would write a pin
|
|
3744
|
+
* the runner cannot honour.
|
|
3745
|
+
*/
|
|
3746
|
+
function stepModelOptions(models, format) {
|
|
3747
|
+
if (format === void 0) return [];
|
|
3748
|
+
return models.filter((m) => m.formats[format] !== void 0);
|
|
3749
|
+
}
|
|
3750
|
+
/** Can this step run on `format` at all? (`false` ⇒ the caller renders "⚠ skip"/"—".) */
|
|
3751
|
+
function stepHasModelForFormat(models, format) {
|
|
3752
|
+
return stepModelOptions(models, format).length > 0;
|
|
3753
|
+
}
|
|
3754
|
+
/**
|
|
3755
|
+
* The model a step ACTUALLY runs for a (device, camera) — the whole effective
|
|
3756
|
+
* chain in one place: per-camera override → per-(node,device) base → the
|
|
3757
|
+
* resolved default (`resolveEffectiveDefaultModel`).
|
|
3758
|
+
*
|
|
3759
|
+
* Every surface calls this: the matrix cell, and the drawer's picker seed. They
|
|
3760
|
+
* are the same number, and the only way to keep them the same number is to have
|
|
3761
|
+
* one function produce it. A surface that owns fewer layers omits them (the node
|
|
3762
|
+
* matrix passes no `override`) — it does NOT get its own resolver.
|
|
3763
|
+
*/
|
|
3764
|
+
function resolveEffectiveStepModel(input) {
|
|
3765
|
+
return input.override ?? input.base ?? resolveEffectiveDefaultModel(input.catalog, input.device);
|
|
3766
|
+
}
|
|
3767
|
+
//#endregion
|
|
3712
3768
|
//#region src/lib/pipeline-mirror.ts
|
|
3713
3769
|
function findAddonInCatalog(catalog, addonId) {
|
|
3714
3770
|
for (const slot of catalog.slots) for (const addon of slot.addons) if (addon.id === addonId) return addon;
|
|
@@ -3717,8 +3773,20 @@ function findAddonInCatalog(catalog, addonId) {
|
|
|
3717
3773
|
function findModel(addon, modelId) {
|
|
3718
3774
|
return addon.models.find((m) => m.id === modelId) ?? null;
|
|
3719
3775
|
}
|
|
3720
|
-
|
|
3721
|
-
|
|
3776
|
+
/**
|
|
3777
|
+
* The model to adopt on the target when the source's pin has no build there.
|
|
3778
|
+
*
|
|
3779
|
+
* Options come from the shared step-model primitive, and the CHOICE is the
|
|
3780
|
+
* step's own resolved default for that format — not "the first entry in the
|
|
3781
|
+
* array", which is how a mirror could land on `yolov8n-package` for a step
|
|
3782
|
+
* whose declared default is `rfdetr-package`, disagreeing with the very cell
|
|
3783
|
+
* the steps matrix renders right after the mirror.
|
|
3784
|
+
*/
|
|
3785
|
+
function fallbackModelFor(addon, format) {
|
|
3786
|
+
const options = stepModelOptions(addon.models, format);
|
|
3787
|
+
if (options.length === 0) return null;
|
|
3788
|
+
const resolved = resolveStepDefaultModel(addon, format);
|
|
3789
|
+
return options.find((m) => m.id === resolved) ?? options[0] ?? null;
|
|
3722
3790
|
}
|
|
3723
3791
|
function dropModelSpecific(settings, targetAddon) {
|
|
3724
3792
|
const allowedKeys = new Set((targetAddon.configSchema ?? []).map((f) => f.key));
|
|
@@ -3759,11 +3827,11 @@ function mirror(input) {
|
|
|
3759
3827
|
outcome = "exact";
|
|
3760
3828
|
} else {
|
|
3761
3829
|
const srcModel = findModel(targetAddon, srcCfg.modelId);
|
|
3762
|
-
if (srcModel !== null &&
|
|
3830
|
+
if (srcModel !== null && stepModelOptions([srcModel], target.engine.format).length > 0) {
|
|
3763
3831
|
chosenModelId = srcCfg.modelId;
|
|
3764
3832
|
outcome = "exact";
|
|
3765
3833
|
} else {
|
|
3766
|
-
const fallback =
|
|
3834
|
+
const fallback = fallbackModelFor(targetAddon, target.engine.format);
|
|
3767
3835
|
if (!fallback) {
|
|
3768
3836
|
out.push({
|
|
3769
3837
|
addonId,
|
|
@@ -14207,7 +14275,7 @@ function ModelPicker({ models, value, onChange, disabled }) {
|
|
|
14207
14275
|
});
|
|
14208
14276
|
if (!hasGroups) return /* @__PURE__ */ jsxs("div", {
|
|
14209
14277
|
className: "space-y-2",
|
|
14210
|
-
children: [unresolvedBanner, flatSelect(models)]
|
|
14278
|
+
children: [unresolvedBanner, flatSelect(models, "— select a model —")]
|
|
14211
14279
|
});
|
|
14212
14280
|
return /* @__PURE__ */ jsxs("div", {
|
|
14213
14281
|
className: "space-y-3",
|
|
@@ -14734,7 +14802,7 @@ function DeviceModeEditor({ addon, agentDefault, agentNodeId, currentPatch, mode
|
|
|
14734
14802
|
}
|
|
14735
14803
|
function AgentStepEditor(props) {
|
|
14736
14804
|
const { mode, addon, agentDefault, agentNodeId, currentPatch, onChangeAgentConfig, onChangePatch, engineFormat, effectiveModelId } = props;
|
|
14737
|
-
const modelsForFormat = useMemo(() => addon.models
|
|
14805
|
+
const modelsForFormat = useMemo(() => stepModelOptions(addon.models, engineFormat), [addon.models, engineFormat]);
|
|
14738
14806
|
if (mode === "agent") return /* @__PURE__ */ jsx(AgentModeEditor, {
|
|
14739
14807
|
addon,
|
|
14740
14808
|
agentDefault,
|
|
@@ -15406,17 +15474,6 @@ function DeviceStepMatrix({ tree, agents, gateFor, getCellState, onCellClick, se
|
|
|
15406
15474
|
});
|
|
15407
15475
|
}
|
|
15408
15476
|
//#endregion
|
|
15409
|
-
//#region src/composites/resolve-step-default-model.ts
|
|
15410
|
-
function resolveStepDefaultModel(catalog, format) {
|
|
15411
|
-
const hasFormatBuild = (modelId) => catalog.models.find((m) => m.id === modelId)?.formats[format] !== void 0;
|
|
15412
|
-
const declared = catalog.defaultModelIdByFormat?.[format];
|
|
15413
|
-
if (declared !== void 0 && hasFormatBuild(declared)) return declared;
|
|
15414
|
-
if (hasFormatBuild(catalog.defaultModelId)) return catalog.defaultModelId;
|
|
15415
|
-
const available = catalog.models.filter((m) => m.formats[format] !== void 0 && m.legacy !== true);
|
|
15416
|
-
if (available.length === 0) return catalog.defaultModelId;
|
|
15417
|
-
return [...available].toSorted((a, b) => (a.formats[format]?.sizeMB ?? Infinity) - (b.formats[format]?.sizeMB ?? Infinity))[0].id;
|
|
15418
|
-
}
|
|
15419
|
-
//#endregion
|
|
15420
15477
|
//#region src/trpc-react.ts
|
|
15421
15478
|
/**
|
|
15422
15479
|
* Shared typed React Query proxy for the backend AppRouter.
|
|
@@ -18440,6 +18497,8 @@ var useCoreBlocksUpdate = trpc.coreBlocks.update.useMutation;
|
|
|
18440
18497
|
var useCoreBlocksDelete = trpc.coreBlocks.delete.useMutation;
|
|
18441
18498
|
/** Generated alias around `trpc.coreBlocks.setEnabled.useMutation`. */
|
|
18442
18499
|
var useCoreBlocksSetEnabled = trpc.coreBlocks.setEnabled.useMutation;
|
|
18500
|
+
/** Generated alias around `trpc.coreBlocks.restart.useMutation`. */
|
|
18501
|
+
var useCoreBlocksRestart = trpc.coreBlocks.restart.useMutation;
|
|
18443
18502
|
/** Generated alias around `trpc.coreBlocks.compile.useMutation`. */
|
|
18444
18503
|
var useCoreBlocksCompile = trpc.coreBlocks.compile.useMutation;
|
|
18445
18504
|
/** Generated alias around `trpc.coreBlocks.getTypeDefs.useQuery`. */
|
|
@@ -18566,8 +18625,6 @@ var useDeviceManagerSetLinkDeviceId = trpc.deviceManager.setLinkDeviceId.useMuta
|
|
|
18566
18625
|
var useDeviceManagerSetPrimaryChildEntityId = trpc.deviceManager.setPrimaryChildEntityId.useMutation;
|
|
18567
18626
|
/** Generated alias around `trpc.deviceManager.setChildLayout.useMutation`. */
|
|
18568
18627
|
var useDeviceManagerSetChildLayout = trpc.deviceManager.setChildLayout.useMutation;
|
|
18569
|
-
/** Generated alias around `trpc.deviceManager.setDeviceLinks.useMutation`. */
|
|
18570
|
-
var useDeviceManagerSetDeviceLinks = trpc.deviceManager.setDeviceLinks.useMutation;
|
|
18571
18628
|
/** Generated alias around `trpc.deviceManager.setDisplay.useMutation`. */
|
|
18572
18629
|
var useDeviceManagerSetDisplay = trpc.deviceManager.setDisplay.useMutation;
|
|
18573
18630
|
/** Generated alias around `trpc.deviceManager.getRoleDisplayDefaults.useQuery`. */
|
|
@@ -19716,6 +19773,10 @@ var useStreamBrokerAssignProfile = trpc.streamBroker.assignProfile.useMutation;
|
|
|
19716
19773
|
var useStreamBrokerUnassignProfile = trpc.streamBroker.unassignProfile.useMutation;
|
|
19717
19774
|
/** Generated alias around `trpc.streamBroker.renderPreBufferClip.useMutation`. */
|
|
19718
19775
|
var useStreamBrokerRenderPreBufferClip = trpc.streamBroker.renderPreBufferClip.useMutation;
|
|
19776
|
+
/** Generated alias around `trpc.streamBroker.produceEventMedia.useMutation`. */
|
|
19777
|
+
var useStreamBrokerProduceEventMedia = trpc.streamBroker.produceEventMedia.useMutation;
|
|
19778
|
+
/** Generated alias around `trpc.streamBroker.fetchEventMedia.useMutation`. */
|
|
19779
|
+
var useStreamBrokerFetchEventMedia = trpc.streamBroker.fetchEventMedia.useMutation;
|
|
19719
19780
|
/** Generated alias around `trpc.streamBroker.listAllCameraStreams.useQuery`. */
|
|
19720
19781
|
var useStreamBrokerListAllCameraStreams = trpc.streamBroker.listAllCameraStreams.useQuery;
|
|
19721
19782
|
/** Generated alias around `trpc.streamBroker.listAllProfileSlots.useQuery`. */
|
|
@@ -29384,67 +29445,68 @@ function useDeviceBattery(trpc, deviceId) {
|
|
|
29384
29445
|
//#endregion
|
|
29385
29446
|
//#region src/hooks/use-device-snapshot.ts
|
|
29386
29447
|
/**
|
|
29387
|
-
* useDeviceSnapshotImage —
|
|
29388
|
-
*
|
|
29389
|
-
*
|
|
29390
|
-
*
|
|
29391
|
-
*
|
|
29392
|
-
*
|
|
29393
|
-
*
|
|
29394
|
-
*
|
|
29395
|
-
*
|
|
29396
|
-
*
|
|
29397
|
-
*
|
|
29398
|
-
*
|
|
29399
|
-
*
|
|
29400
|
-
*
|
|
29401
|
-
*
|
|
29402
|
-
*
|
|
29403
|
-
*
|
|
29404
|
-
*
|
|
29405
|
-
*
|
|
29406
|
-
*
|
|
29407
|
-
*
|
|
29408
|
-
* Returns:
|
|
29409
|
-
*
|
|
29410
|
-
*
|
|
29411
|
-
*
|
|
29412
|
-
*
|
|
29413
|
-
*
|
|
29414
|
-
*
|
|
29415
|
-
*
|
|
29416
|
-
|
|
29417
|
-
|
|
29418
|
-
|
|
29419
|
-
|
|
29420
|
-
|
|
29421
|
-
|
|
29422
|
-
|
|
29423
|
-
|
|
29424
|
-
|
|
29425
|
-
|
|
29426
|
-
|
|
29427
|
-
if (!dev) throw new Error("useDeviceSnapshotImage: device proxy not ready");
|
|
29428
|
-
const force = forceRef.current;
|
|
29429
|
-
forceRef.current = false;
|
|
29430
|
-
return dev.snapshot?.getSnapshot({ force }) ?? null;
|
|
29431
|
-
},
|
|
29432
|
-
enabled: dev !== null && deviceId !== null,
|
|
29433
|
-
staleTime: 1e4,
|
|
29434
|
-
gcTime: 1440 * 60 * 1e3,
|
|
29435
|
-
refetchOnWindowFocus: false,
|
|
29436
|
-
refetchOnReconnect: false,
|
|
29437
|
-
retry: false
|
|
29438
|
-
});
|
|
29439
|
-
const src = data ? `data:${data.contentType};base64,${data.base64}` : null;
|
|
29440
|
-
function refresh() {
|
|
29441
|
-
forceRef.current = true;
|
|
29442
|
-
refetch();
|
|
29443
|
-
}
|
|
29448
|
+
* useDeviceSnapshotImage — a device's snapshot as a plain image URL.
|
|
29449
|
+
*
|
|
29450
|
+
* ## What this used to do, and why it stopped
|
|
29451
|
+
*
|
|
29452
|
+
* It fetched `dev.snapshot.getSnapshot()` over tRPC and returned
|
|
29453
|
+
* `data:image/jpeg;base64,…`. That put a full camera capture — up to 4 K,
|
|
29454
|
+
* measured at 758 KB average per camera on the live hub — through the msgpack
|
|
29455
|
+
* WebSocket plane, base64-inflated by a third, and then held it in the
|
|
29456
|
+
* react-query heap for 24 h per device. The device list rendered it into a
|
|
29457
|
+
* **28 × 28 px `<img>`**.
|
|
29458
|
+
*
|
|
29459
|
+
* It also did not do what it appeared to do. `snapshot.getSnapshot` scoped to a
|
|
29460
|
+
* device routes to the NATIVE provider, not the snapshot wrapper, so it bypassed
|
|
29461
|
+
* the wrapper's cache, coalescing and stale-while-revalidate entirely: probed
|
|
29462
|
+
* live, a `force:true` call returned a fresh 1.05 MB JPEG in 0.55 s while the
|
|
29463
|
+
* wrapper's `lastCapturedAt` for that camera did not move. Two snapshot paths,
|
|
29464
|
+
* different behaviour, and only one of them maintained the cache the other one
|
|
29465
|
+
* reported on.
|
|
29466
|
+
*
|
|
29467
|
+
* ## What it does now
|
|
29468
|
+
*
|
|
29469
|
+
* Returns the same URL the viewer uses: `/addon/snapshot/media/<id>.jpg?w=<n>`,
|
|
29470
|
+
* served by the wrapper over the HTTP data plane. Relative and same-origin, so
|
|
29471
|
+
* the admin UI's `camstack_session` cookie authenticates it — the endpoint is
|
|
29472
|
+
* `access: 'authenticated'`, which accepts either a Bearer header or that
|
|
29473
|
+
* cookie, and a bare `<img>` can only send the cookie. This is the same
|
|
29474
|
+
* mechanism the native `<video>` fallback in `hls-video.tsx` already relies on.
|
|
29475
|
+
*
|
|
29476
|
+
* Caching is now the browser's, which is the point: `ETag` +
|
|
29477
|
+
* `Cache-Control: private, max-age=<device maxAgeS>` means a repeat render is a
|
|
29478
|
+
* cache hit and a revalidation is a 0-byte 304. No JS heap, no msgpack, no
|
|
29479
|
+
* base64. Nothing to configure — unlike `expo-image` on native, browsers
|
|
29480
|
+
* revalidate a stale URL rather than treating it as immutable, so the URL stays
|
|
29481
|
+
* stable and does NOT need a version parameter.
|
|
29482
|
+
*/
|
|
29483
|
+
/** The hub-proxied path prefix for the snapshot image data plane. */
|
|
29484
|
+
var SNAPSHOT_MEDIA_PATH = "/addon/snapshot/media";
|
|
29485
|
+
function useDeviceSnapshotImage(deviceId, options = {}) {
|
|
29486
|
+
const { width, baseUrl } = options;
|
|
29487
|
+
const [refreshNonce, setRefreshNonce] = useState(0);
|
|
29444
29488
|
return {
|
|
29445
|
-
src
|
|
29446
|
-
|
|
29447
|
-
|
|
29489
|
+
src: useMemo(() => {
|
|
29490
|
+
if (deviceId === null || deviceId <= 0) return null;
|
|
29491
|
+
const base = baseUrl !== void 0 ? baseUrl.replace(/\/+$/, "") : "";
|
|
29492
|
+
const params = new URLSearchParams();
|
|
29493
|
+
if (width !== void 0 && Number.isInteger(width) && width > 0) params.set("w", String(width));
|
|
29494
|
+
if (refreshNonce > 0) {
|
|
29495
|
+
params.set("force", "1");
|
|
29496
|
+
params.set("r", String(refreshNonce));
|
|
29497
|
+
}
|
|
29498
|
+
const query = params.toString();
|
|
29499
|
+
return `${base}${SNAPSHOT_MEDIA_PATH}/${String(deviceId)}.jpg${query.length > 0 ? `?${query}` : ""}`;
|
|
29500
|
+
}, [
|
|
29501
|
+
deviceId,
|
|
29502
|
+
width,
|
|
29503
|
+
baseUrl,
|
|
29504
|
+
refreshNonce
|
|
29505
|
+
]),
|
|
29506
|
+
loading: false,
|
|
29507
|
+
refresh: useCallback(() => {
|
|
29508
|
+
setRefreshNonce((n) => n + 1);
|
|
29509
|
+
}, [])
|
|
29448
29510
|
};
|
|
29449
29511
|
}
|
|
29450
29512
|
//#endregion
|
|
@@ -29606,8 +29668,11 @@ function HoverZoomImage({ src, alt, caption, placeholder = "No image", thumbClas
|
|
|
29606
29668
|
}
|
|
29607
29669
|
//#endregion
|
|
29608
29670
|
//#region src/composites/device-item/preview.tsx
|
|
29671
|
+
/** Ladder rung for the device-row preview: sharp at 28 px, sharp enough at
|
|
29672
|
+
* the 288 px hover zoom. */
|
|
29673
|
+
var PREVIEW_SNAPSHOT_WIDTH = 480;
|
|
29609
29674
|
function DeviceItemPreview({ trpc, device, status, enabled, showStatusPills = false }) {
|
|
29610
|
-
const snapshot = useDeviceSnapshotImage(
|
|
29675
|
+
const snapshot = useDeviceSnapshotImage(enabled && device.online ? device.id : null, { width: PREVIEW_SNAPSHOT_WIDTH });
|
|
29611
29676
|
const isBatteryOperated = (device.features ?? []).includes("battery-operated");
|
|
29612
29677
|
const wantPills = showStatusPills && isBatteryOperated && !device.disabled;
|
|
29613
29678
|
const batteryStatus = useDeviceBattery(trpc, wantPills ? device.id : null);
|
|
@@ -47915,4 +47980,4 @@ var MotionZonesSettings = lazy(() => import("./MotionZonesSettings-NcxxQN8r.js")
|
|
|
47915
47980
|
/** Lazy-wrapped `PrivacyMaskSettings` — code-split off the main bundle. */
|
|
47916
47981
|
var PrivacyMaskSettings = lazy(() => import("./PrivacyMaskSettings-APgPLF7p.js").then((m) => ({ default: m.PrivacyMaskSettings })));
|
|
47917
47982
|
//#endregion
|
|
47918
|
-
export { AddonGlobalSettingsForm, AgentStepEditor, AlarmHeroCard, AlarmInlineControl as AlarmPanelInlineControl, AppShell, ArcKnob, AudioClassificationList, AudioLevelWaveform, AudioWaveform, AutomationHeroCard, AutomationInlineControl, AutotrackSection, BTN_COMPACT, BTN_COMPACT_DANGER, BTN_COMPACT_PRIMARY, BTN_COMPACT_WARNING, Badge, BatteryBadge, BottomSheet, Breadcrumb, BrightnessPanel, Button, ButtonControl, ButtonHeroCard, CARD_MODE_MIN_COLUMNS, CENTER, CHIP_ACTIVE, CHIP_BASE, CHIP_INACTIVE, CLASS_COLORS, COLUMN_BREAKPOINT_CLASS, COLUMN_PRIORITY, COMMIT_DEDUPE_TOLERANCE_MS, COMMIT_DEDUPE_WINDOW_MS, CONTROL_CAP_NAMES, CONTROL_FILLS, CameraStreamPlayer, Card, Checkbox, ChildSectionAccordion, ClimatePanel, CodeBlock, CollapsibleCard, ConfigFormBuilder, FormField as ConfigFormField, ConfigSchemaField, ConfirmActionButton, ConfirmDialogProvider, ConsumablesPanel, ContainerChildrenProvider, ContainerPrimaryHero, ControlColumn, ControlHeroCard, ControlInlineControl, ControlPanel, CopyButton, CoverHeroCard, CoverInlineControl, CoverPanel, CustomFieldRenderersProvider, DEFAULT_COLOR, DEVICE_COLUMNS, DEVICE_LIST_PAGE_SIZE_KEY, DEVICE_LIST_PAGE_SIZE_OPTIONS, DEVICE_ROLE_META, DEVICE_TYPE_CONTROL, DEVICE_TYPE_META, DISPLAY_ICON_REGISTRY, DataTable, DetectionCanvas, DetectionOverlay, DetectionResultTree, DevShell, DeviceActivityPanel, DeviceBatchToolbar, DeviceCard, DeviceContextProvider, DeviceExportPanel, DeviceGrid, DeviceItem, DeviceList, DeviceMultiSelectField, DeviceSelectField, 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, ModelPicker, MotionZonesSettings, NodeMultiSelectField, NodePicker, NodeSelectField, OfflineBadge, PHASE_CONFIG, PRIORITY, PTZOverlay, PageHeader, PhaseIcon, PipelineBuilder, PipelineRuntimeSelector, PipelineStep, PipelineTreeMatrix, PlayerOverlaysProvider, Popover, PopoverContent, PopoverRowAction, PopoverTrigger, PrimaryChildPicker, PrivacyMaskSettings, ProviderBadge, PtzPanel, QrCode, RECONNECT_POLICY, RECORDED_PLAYBACK_MODES, RIGHT, ROLE_DESCRIPTOR, RadialGauge, RecordedPlaybackProvider, RecordingPanel, ResponseLog, SECTION_BODY, SECTION_CARD, SECTION_HEADER, SETTING_ROW, SETTING_ROW_LABEL, SETTING_ROW_STACK_BREAKPOINT, SETTING_ROW_VALUE, SETTING_ROW_VALUE_TEXT, SPLIT_PANEL_OUTER, SPLIT_PANEL_SIDE, STACK_GAP, STATE_COLOR, ScopePicker, ScriptHeroCard, ScriptInlineControl, ScrollArea, Select, SemanticBadge, SensorHeroCard, SensorInlineControl, SensorValueAtom, Separator, SettingRow, Sidebar, SidebarItem, Skeleton, SlideOverPanel, SlideToggle, SnapshotButton, StatCard, StateValuesStream, StatusBadge, StepTimings, StepTreeMaster, Stepper, StreamBrokerSelector, StreamPanel, Switch, SwitchHeroCard, SwitchInlineControl, SwitchPanel, SystemProvider, 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, agentColumnKey, 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, groupAgentColumns, groupChildrenByLayout, hardwareLabel, humidifierTint, createLucideIcon as i, initialScrubState, isAbsentProvider, isFieldVisible, lawnMowerActivityMeta, lightColors, loadRemoteBundle, makeScrubBridge, metadataEntries, metadataString, mirror, mountAddonPage, Square as n, nextReconnectAction, nextSort, normalizeForSearch, overrideEntityIdFromLink, parseRecordedServerMessage, providerIcons, EyeOff as r, resolveContainerPrimary, resolveControlAlign, resolveDeviceControl, resolveDisplayIcon, resolveEventKindIcon, resolvePrimaryChild, resolveSensorDisplay, resolveStepDefaultModel, resolveTableLayout, 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, useBackupDeleteSchedule, useBackupGetEntries, useBackupList, useBackupListArchives, useBackupListDestinations, useBackupListLocations, useBackupListSchedules, useBackupPreviewSchedule, useBackupRestore, useBackupTrigger, useBackupUpsertDestinationPolicy, useBackupUpsertSchedule, useBatteryGetStatus, useBatteryWakeForStream, useBinaryGetStatus, useBrightnessGetStatus, useBrightnessSetBrightness, useBrokerAdd, useBrokerGet, useBrokerGetBrokerConfig, useBrokerGetSettings, useBrokerGetSettingsSchema, useBrokerGetState, useBrokerGetStatus, useBrokerList, useBrokerListProviders, useBrokerPublish, useBrokerRemove, useBrokerSetSettings, useBrokerSubscribe, useBrokerTestConnection, useBrokerTestSettings, useBrokerUnsubscribe, useButtonPress, useCameraCredentialsGetCredentials, useCameraCredentialsGetStatus, useCameraPipelineConfigApplyDeviceSettingsPatch, useCameraPipelineConfigGetDeviceLiveContribution, useCameraPipelineConfigGetDeviceSettingsContribution, useCameraStreamsGetBrokerStreams, useCameraStreamsGetCameraStreams, useCameraStreamsGetProfileRtspEntries, useCameraStreamsGetRtspEntries, useCameraStreamsPickStream, useCarbonMonoxideGetStatus, useClimateControlGetStatus, useClimateControlSetFanMode, useClimateControlSetMode, useClimateControlSetPreset, useClimateControlSetSwingHorizontal, useClimateControlSetSwingVertical, useClimateControlSetTarget, useClimateControlSetTargetHumidity, useClimateControlSetTargetRange, useClusterNodes, useColorGetStatus, useColorSetColor, useConfirm, useConnectivityGetStatus, useConsumablesGetStatus, useConsumablesReset, useContactGetStatus, useContainerChildren, useControlGetStatus, useControlSetValue, useCoreBlocksCompile, useCoreBlocksCreate, useCoreBlocksDelete, useCoreBlocksGet, useCoreBlocksGetTypeDefs, useCoreBlocksList, useCoreBlocksSetEnabled, useCoreBlocksUpdate, useCoverClose, useCoverGetStatus, useCoverOpen, useCoverSetPosition, useCoverSetTiltPosition, useCoverStop, useCustomFieldRenderer, useDayNightGetOptions, useDayNightGetStatus, useDayNightSetSettings, useDebouncedString, useDecoderCreateSession, useDecoderDestroySession, useDecoderGetFrame, useDecoderGetInfo, useDecoderGetShmStats, useDecoderGetStats, useDecoderListActiveSessions, useDecoderOpenStream, useDecoderPullFrames, useDecoderPullHandles, useDecoderPushPacket, useDecoderReprobeHwaccel, useDecoderSupportsCodec, useDecoderUpdateConfig, useDetectionPipelineApplyDeviceSettingsPatch, useDetectionPipelineGetDeviceLiveContribution, useDetectionPipelineGetDeviceSettingsContribution, useDevShell, useDevice, useDeviceAdoptionAdopt, useDeviceAdoptionGetCandidate, useDeviceAdoptionGetStatus, useDeviceAdoptionListCandidateFilters, useDeviceAdoptionListCandidates, useDeviceAdoptionRefresh, useDeviceAdoptionRelease, useDeviceAdoptionResync, useDeviceAutotrack, useDeviceBattery, useDeviceCapSlice, useDeviceCapability, useDeviceDetections, useDeviceDiscoveryAdoptDevice, useDeviceDiscoveryGetStatus, useDeviceDiscoveryListDiscovered, useDeviceDiscoveryRefreshDiscovery, useDeviceDiscoveryReleaseDevice, useDeviceExportApplyDeviceSettingsPatch, useDeviceExportExposeDevice, useDeviceExportGetDeviceLiveContribution, useDeviceExportGetDeviceSettingsContribution, useDeviceExportGetStatus, useDeviceExportListExposedDevices, useDeviceExportListSupportedDeviceKinds, useDeviceExportUnexposeDevice, useDeviceId, useDeviceListPageSize, useDeviceManagerAddLocation, useDeviceManagerAdoptDevice, useDeviceManagerAdoptionAdopt, 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, useDeviceManagerGetDeviceStatusAggregateBatch, useDeviceManagerGetLinkedDevices, useDeviceManagerGetRoleDisplayDefaults, useDeviceManagerGetSettingsSchema, useDeviceManagerGetStreamProfileMap, useDeviceManagerGetStreamSources, useDeviceManagerGetWireableFields, useDeviceManagerListAll, useDeviceManagerListBindableCapsForDeviceType, useDeviceManagerListLocations, useDeviceManagerListPersistedByAddon, useDeviceManagerListWrappersForCap, useDeviceManagerLoadConfig, useDeviceManagerLoadMeta, useDeviceManagerLoadRuntimeState, useDeviceManagerPersistConfig, useDeviceManagerProbeStreams, useDeviceManagerProviderCreationType, useDeviceManagerProviderDiscoveryParamsSchema, useDeviceManagerRegisterDevice, useDeviceManagerRemove, useDeviceManagerRemoveByIntegration, useDeviceManagerRemoveDevice, useDeviceManagerRemoveLocation, useDeviceManagerRunDeviceAction, useDeviceManagerSetChildLayout, 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, useLocalNetworkGetNotificationEndpoint, useLocalNetworkGetPreferred, useLocalNetworkList, useLocalNetworkResetAllowlistToBestMatch, useLocalNetworkSetAllowedAddresses, useLocalNetworkSetNotificationEndpoint, useLockControlGetStatus, useLockControlLock, useLockControlOpen, useLockControlUnlock, useMediaPlayerGetStatus, useMediaPlayerNext, useMediaPlayerPause, useMediaPlayerPlay, useMediaPlayerPlayMedia, useMediaPlayerPrevious, useMediaPlayerSeek, useMediaPlayerSelectSource, useMediaPlayerSetMute, useMediaPlayerSetRepeat, useMediaPlayerSetShuffle, useMediaPlayerSetVolume, useMediaPlayerStop, useMeshNetworkGetStatus, useMeshNetworkJoin, useMeshNetworkLeave, useMeshNetworkListPeers, useMeshNetworkLogout, useMeshNetworkStartLogin, useMeshNetworkTestConnection, useMetricsProviderCollectSnapshot, useMetricsProviderDumpHeapSnapshot, useMetricsProviderGetAddonStats, useMetricsProviderGetCached, useMetricsProviderGetCpuTemperature, useMetricsProviderGetCurrent, useMetricsProviderGetDiskSpace, useMetricsProviderGetGpuInfo, useMetricsProviderGetProcessStats, useMetricsProviderKillProcess, useMetricsProviderListAddonInstances, useMetricsProviderListNodeProcesses, useMotionDetectionAnalyze, useMotionDetectionApplyDeviceSettingsPatch, useMotionDetectionGetDeviceLiveContribution, useMotionDetectionGetDeviceSettingsContribution, useMotionDetectionRemoveCamera, useMotionDetectionReset, useMotionGetStatus, useMotionIsDetected, useMotionTriggerGetStatus, useMotionTriggerSetMotionTrigger, useMotionZonesGetOptions, useMotionZonesGetStatus, useMotionZonesSetZone, useMqttBrokerAddBroker, useMqttBrokerGetBrokerConfig, useMqttBrokerGetStatus, useMqttBrokerListBrokers, useMqttBrokerRemoveBroker, useMqttBrokerStartEmbeddedBroker, useMqttBrokerStopEmbeddedBroker, useMqttBrokerTestConnection, useNativeObjectDetectionGetStatus, useNativeObjectDetectionSetEnabled, useNetworkAccessGetEndpoint, useNetworkAccessGetStatus, useNetworkAccessListEndpoints, useNetworkAccessStart, useNetworkAccessStop, useNetworkQualityGetAllStats, useNetworkQualityGetDeviceStats, useNetworkQualityReportClientStats, useNodesClusterAddonStatus, useNodesDeployAddon, useNodesExecuteQuery, useNodesGetCapUsageGraph, useNodesGetNodeAddons, useNodesRenameNode, useNodesRestartAddon, useNodesRestartNode, useNodesRestartProcess, useNodesSetProcessLogLevel, useNodesShutdownNode, useNodesTopology, useNodesUndeployAddon, useNotificationOutputDeleteTarget, useNotificationOutputDiscoverTargets, useNotificationOutputListTargetKinds, useNotificationOutputListTargets, useNotificationOutputSend, useNotificationOutputSetTargetEnabled, useNotificationOutputTestTarget, useNotificationOutputUpsertTarget, useNotificationRulesCancelSnooze, useNotificationRulesCreateRule, useNotificationRulesCreateSnooze, useNotificationRulesDeleteRule, useNotificationRulesGetAlarmConfig, useNotificationRulesGetConditionCatalog, useNotificationRulesGetHistory, useNotificationRulesGetRule, useNotificationRulesListDeviceMutes, useNotificationRulesListRules, useNotificationRulesListSnoozes, useNotificationRulesSetAlarmConfig, useNotificationRulesSetDeviceMuted, useNotificationRulesSetRuleEnabled, useNotificationRulesTestRule, useNotificationRulesUpdateRule, useNotifierCancel, useNotifierGetStatus, useNotifierSend, useNumericSensorGetStatus, useOptimisticSlice, useOptionalSystem, useOptionalWidgetRegistry, useOsdGetStatus, useOsdManagerClearSlotBinding, useOsdManagerGetConditionSupport, useOsdManagerGetDeviceOsd, useOsdManagerGetSourceCatalog, useOsdManagerPreviewSlot, useOsdManagerRenderDevice, useOsdManagerSetSlotBinding, useOsdSetOverlay, usePTZ, usePetFeederCallPet, usePetFeederCancelFeed, usePetFeederFeed, usePetFeederGetStatus, usePetFeederMarkFoodReplenished, usePetFeederPlaySound, usePetFeederResetDesiccant, usePetFeederSetChildLock, usePetFeederSetFeedSound, usePetFeederSetIndicatorLight, usePetFeederSetVolume, usePipelineAnalyticsApplyDeviceSettingsPatch, usePipelineAnalyticsCancelMediaRelocate, usePipelineAnalyticsClearTracks, usePipelineAnalyticsCompleteRetrainTrack, usePipelineAnalyticsDeleteDeviceEvents, usePipelineAnalyticsDeleteTracks, usePipelineAnalyticsDeselectRetrainFrame, usePipelineAnalyticsGetActiveTracks, usePipelineAnalyticsGetAudioEvents, usePipelineAnalyticsGetDeviceLiveContribution, usePipelineAnalyticsGetDeviceSettingsContribution, usePipelineAnalyticsGetEventDensity, usePipelineAnalyticsGetEventMedia, usePipelineAnalyticsGetEventStoreFootprint, usePipelineAnalyticsGetKeyEvents, usePipelineAnalyticsGetMediaRelocateStatus, usePipelineAnalyticsGetMotionEvents, usePipelineAnalyticsGetObjectEmbeddingRebuildStatus, usePipelineAnalyticsGetObjectEvents, usePipelineAnalyticsGetRetrainExportUrl, usePipelineAnalyticsGetRetrainFrameImage, usePipelineAnalyticsGetSensorEvents, usePipelineAnalyticsGetTrack, usePipelineAnalyticsGetTrackMedia, usePipelineAnalyticsGetTrainingExportSummary, usePipelineAnalyticsGetTrainingExportUrl, usePipelineAnalyticsListEventKinds, usePipelineAnalyticsListEventKindsBatch, usePipelineAnalyticsListOpsLog, usePipelineAnalyticsListRecentTracks, usePipelineAnalyticsListRetrainAnnotations, usePipelineAnalyticsListRetrainFrames, usePipelineAnalyticsListRetrainStaging, usePipelineAnalyticsListTrackMedia, usePipelineAnalyticsListTracks, usePipelineAnalyticsProposeRetrainAnnotations, usePipelineAnalyticsPruneEvents, usePipelineAnalyticsPruneEventsBefore, usePipelineAnalyticsPruneTracksBefore, usePipelineAnalyticsRebuildObjectEmbeddings, usePipelineAnalyticsRelocateMedia, usePipelineAnalyticsRestageRetrainTrack, usePipelineAnalyticsSaveRetrainAnnotations, usePipelineAnalyticsSearchObjectEvents, usePipelineAnalyticsSelectRetrainFrames, usePipelineAnalyticsSetTrackFlags, usePipelineAnalyticsWipeAllAnalytics, usePipelineAnalyticsWipeObjectEmbeddings, usePipelineExecutorCacheFrameInPool, usePipelineExecutorClearDeviceOverrides, usePipelineExecutorDeleteModel, usePipelineExecutorDeleteTemplate, usePipelineExecutorDownloadModel, usePipelineExecutorGetAddonModels, usePipelineExecutorGetAudioCapabilities, usePipelineExecutorGetAvailableEngines, usePipelineExecutorGetCapabilities, usePipelineExecutorGetDefaultSteps, usePipelineExecutorGetDetectionConfigSchema, usePipelineExecutorGetEffectiveTuning, usePipelineExecutorGetEngineProvisioning, usePipelineExecutorGetGlobalPipelineConfig, usePipelineExecutorGetGlobalSteps, usePipelineExecutorGetOrchestratorConfigSchema, usePipelineExecutorGetReferenceAudio, usePipelineExecutorGetReferenceAudioFiles, usePipelineExecutorGetReferenceImage, usePipelineExecutorGetSchema, usePipelineExecutorGetSelectedEngine, usePipelineExecutorGetVideoPipelineSteps, usePipelineExecutorInferCached, usePipelineExecutorKillEngine, usePipelineExecutorListLoadedEngines, usePipelineExecutorListReferenceImages, usePipelineExecutorListTemplates, usePipelineExecutorRunAudioTest, usePipelineExecutorRunPipeline, usePipelineExecutorRunPipelineBatch, usePipelineExecutorSaveTemplate, usePipelineExecutorSetVideoPipelineSteps, usePipelineExecutorSpinEngine, usePipelineExecutorUncacheFrame, usePipelineExecutorUpdateTemplate, usePipelineExecutorValidatePipeline, usePipelineOrchestratorApplyDeviceSettingsPatch, usePipelineOrchestratorAssignAudio, usePipelineOrchestratorAssignPipeline, usePipelineOrchestratorDeleteTemplate, usePipelineOrchestratorGetAgentLoad, usePipelineOrchestratorGetAgentSettings, usePipelineOrchestratorGetAudioAssignment, usePipelineOrchestratorGetAudioAssignments, usePipelineOrchestratorGetAudioNodeLoad, usePipelineOrchestratorGetCameraMetrics, usePipelineOrchestratorGetCameraSettings, usePipelineOrchestratorGetCameraStatus, usePipelineOrchestratorGetCameraStatuses, usePipelineOrchestratorGetCameraStepOverrides, usePipelineOrchestratorGetCameraSwitches, usePipelineOrchestratorGetCapabilityBindings, usePipelineOrchestratorGetDeviceLiveContribution, usePipelineOrchestratorGetDeviceSettingsContribution, usePipelineOrchestratorGetGlobalMetrics, usePipelineOrchestratorGetIngestOwner, usePipelineOrchestratorGetNodeInferenceDevices, usePipelineOrchestratorGetPipelineAssignment, usePipelineOrchestratorGetPipelineAssignments, usePipelineOrchestratorGetPipelineDevicePin, usePipelineOrchestratorListAgentSettings, usePipelineOrchestratorListTemplates, usePipelineOrchestratorRebalance, usePipelineOrchestratorRemoveAgentSettings, usePipelineOrchestratorResetNodePipelineDefaults, usePipelineOrchestratorResolvePipeline, usePipelineOrchestratorSaveTemplate, usePipelineOrchestratorSetAgentCapabilities, usePipelineOrchestratorSetAgentDetectWeight, usePipelineOrchestratorSetAgentInferenceDevices, usePipelineOrchestratorSetAgentMaxCameras, usePipelineOrchestratorSetAgentReachableHost, usePipelineOrchestratorSetCameraPipelineForAgent, usePipelineOrchestratorSetCameraStepOverride, usePipelineOrchestratorSetCameraStepToggle, usePipelineOrchestratorSetCameraSwitch, usePipelineOrchestratorSetCapabilityBinding, usePipelineOrchestratorSetPipelineDevicePin, usePipelineOrchestratorUnassignAudio, usePipelineOrchestratorUnassignPipeline, usePipelineOrchestratorUpdateTemplate, usePipelineRunnerAttachCamera, usePipelineRunnerDetachCamera, usePipelineRunnerGetAllCameraMetrics, usePipelineRunnerGetCameraMetrics, usePipelineRunnerGetLocalCameras, usePipelineRunnerGetLocalLoad, usePipelineRunnerGetLocalMetrics, usePipelineRunnerGetNativeCrop, usePipelineRunnerReportMotion, usePipelineRunnerRunDetailSubtree, usePipelineRunnerRunStatelessStep, usePlateGalleryAssignPlate, usePlateGalleryAssignPlates, usePlateGalleryCorrectPlateText, usePlateGalleryCreateVehicle, usePlateGalleryDeletePlate, usePlateGalleryDeleteVehicle, usePlateGalleryGetPlateByTrack, usePlateGalleryGetPlateMedia, usePlateGalleryListPlates, usePlateGalleryListVehicleSamples, usePlateGalleryListVehicles, usePlateGalleryRemoveVehicleSample, usePlateGalleryRenameVehicle, usePlateGallerySearchPlates, usePlateGallerySuggestPlateClusters, usePlateGalleryUnassignPlate, usePlateGalleryUnassignPlates, usePlayerOverlayLayer, usePlayerOverlayLayers, usePlayerToolbarButton, usePlayerToolbarButtons, usePowerMeterGetStatus, usePresenceGetStatus, usePressureSensorGetStatus, usePrivacyMaskGetOptions, usePrivacyMaskGetStatus, usePrivacyMaskSetAudioEnabled, usePrivacyMaskSetMask, usePtzAutotrackGetSettings, usePtzAutotrackGetStatus, usePtzAutotrackSetEnabled, usePtzAutotrackSetSettings, usePtzContinuousMove, usePtzDeletePreset, usePtzGetOptions, usePtzGetPosition, usePtzGetPresets, usePtzGetStatus, usePtzGoHome, usePtzGoToPreset, usePtzMove, usePtzSavePreset, usePtzSetAutofocus, usePtzStop, useRebootReboot, useRecordedPlayback, useRecordingApplyDeviceSettingsPatch, useRecordingCancelRelocate, useRecordingDeleteFootprint, useRecordingExportCancelExport, useRecordingExportCreateExport, useRecordingExportDeleteExport, useRecordingExportGetDownloadUrl, useRecordingExportGetExport, useRecordingExportListExports, useRecordingGetAvailability, useRecordingGetDaysWithRecordings, useRecordingGetDeviceConfig, useRecordingGetDeviceLiveContribution, useRecordingGetDeviceSettingsContribution, useRecordingGetPlaybackManifest, useRecordingGetRelocateStatus, useRecordingGetStatus, useRecordingGetStorageUsage, useRecordingListOpsLog, useRecordingLocateSegment, useRecordingPruneFootage, useRecordingReadGopBytes, useRecordingReadSegmentBytes, useRecordingRelocateFootage, useRecordingRenderClip, useRecordingRenderGif, useRecordingRescanStorage, useRecordingSetDeviceConfig, useRemoteComponent, useSceneMonitorCaptureReference, useSceneMonitorCreateScene, useSceneMonitorDeleteReference, useSceneMonitorDeleteScene, useSceneMonitorGetStatus, useSceneMonitorListScenes, useSceneMonitorRecheckNow, useSceneMonitorUpdateScene, useScriptRunnerGetStatus, useScriptRunnerRun, useScriptRunnerStop, useScrubController, useServerManagementApplyServerUpdate, useServerManagementCheckServerUpdate, useServerManagementGetServerPackageStatus, useServerManagementRestartServer, useServerManagementRollbackServerUpdate, useSettingsStoreCount, useSettingsStoreDeclareCollection, useSettingsStoreDelete, useSettingsStoreDeleteWhere, useSettingsStoreGet, useSettingsStoreHistogram, useSettingsStoreInsert, useSettingsStoreIsEmpty, useSettingsStoreQuery, useSettingsStoreSet, useSettingsStoreUpdate, useSettingsStoreUpdateWhere, 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, useStreamBrokerAcquireEgressTranscode, useStreamBrokerApplyDeviceSettingsPatch, useStreamBrokerAssignProfile, useStreamBrokerGetAllRtspEntries, useStreamBrokerGetBrokerStats, useStreamBrokerGetDeviceAudioMute, useStreamBrokerGetDeviceLiveContribution, useStreamBrokerGetDeviceSettingsContribution, useStreamBrokerGetPreBufferInfo, useStreamBrokerGetRtspEntry, useStreamBrokerGetRtspPort, useStreamBrokerGetStreamUrl, useStreamBrokerGetStreamWithCodec, useStreamBrokerIsRtspEnabled, useStreamBrokerKillClient, useStreamBrokerListAllCameraStreams, useStreamBrokerListAllProfileSlots, useStreamBrokerListClients, useStreamBrokerProbeStream, useStreamBrokerPublishCameraStream, useStreamBrokerPullAudioChunks, useStreamBrokerPullFrameHandles, useStreamBrokerRegenerateRtspToken, useStreamBrokerReleaseEgressTranscode, useStreamBrokerReleaseStreamWithCodec, useStreamBrokerRenderPreBufferClip, useStreamBrokerRestartProfile, useStreamBrokerRetractCameraStream, useStreamBrokerSetDeviceAudioMute, useStreamBrokerSetPreBufferDuration, useStreamBrokerSetRtspEnabled, useStreamBrokerSubscribeAudioChunks, useStreamBrokerSubscribeFrames, useStreamBrokerUnassignProfile, useStreamBrokerUnsubscribeAudioChunks, useStreamBrokerUnsubscribeFrames, useStreamCatalogGetCatalog, useStreamParamsGetConfigSchema, useStreamParamsGetOptions, useStreamParamsGetStatus, useStreamParamsSetProfile, useSwitchGetStatus, useSwitchSetState, useSystem, useSystemFeatureFlags, useSystemForceRetentionCleanup, useSystemGetRetentionConfig, useSystemHealth, useSystemInfo, useSystemMutation, useSystemNetworkAddresses, useSystemQuery, useSystemSetRetentionConfig, useTamperGetStatus, useTemperatureSensorGetStatus, useTerminalSessionClose, useTerminalSessionListProfiles, useTerminalSessionListSessions, useTerminalSessionOpenSession, useTerminalSessionResize, 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 };
|
|
47983
|
+
export { AddonGlobalSettingsForm, AgentStepEditor, AlarmHeroCard, AlarmInlineControl as AlarmPanelInlineControl, AppShell, ArcKnob, AudioClassificationList, AudioLevelWaveform, AudioWaveform, AutomationHeroCard, AutomationInlineControl, AutotrackSection, BTN_COMPACT, BTN_COMPACT_DANGER, BTN_COMPACT_PRIMARY, BTN_COMPACT_WARNING, Badge, BatteryBadge, BottomSheet, Breadcrumb, BrightnessPanel, Button, ButtonControl, ButtonHeroCard, CARD_MODE_MIN_COLUMNS, CENTER, CHIP_ACTIVE, CHIP_BASE, CHIP_INACTIVE, CLASS_COLORS, COLUMN_BREAKPOINT_CLASS, COLUMN_PRIORITY, COMMIT_DEDUPE_TOLERANCE_MS, COMMIT_DEDUPE_WINDOW_MS, CONTROL_CAP_NAMES, CONTROL_FILLS, CameraStreamPlayer, Card, Checkbox, ChildSectionAccordion, ClimatePanel, CodeBlock, CollapsibleCard, ConfigFormBuilder, FormField as ConfigFormField, ConfigSchemaField, ConfirmActionButton, ConfirmDialogProvider, ConsumablesPanel, ContainerChildrenProvider, ContainerPrimaryHero, ControlColumn, ControlHeroCard, ControlInlineControl, ControlPanel, CopyButton, CoverHeroCard, CoverInlineControl, CoverPanel, CustomFieldRenderersProvider, DEFAULT_COLOR, DEVICE_COLUMNS, DEVICE_LIST_PAGE_SIZE_KEY, DEVICE_LIST_PAGE_SIZE_OPTIONS, DEVICE_ROLE_META, DEVICE_TYPE_CONTROL, DEVICE_TYPE_META, DISPLAY_ICON_REGISTRY, DataTable, DetectionCanvas, DetectionOverlay, DetectionResultTree, DevShell, DeviceActivityPanel, DeviceBatchToolbar, DeviceCard, DeviceContextProvider, DeviceExportPanel, DeviceGrid, DeviceItem, DeviceList, DeviceMultiSelectField, DeviceSelectField, 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, ModelPicker, MotionZonesSettings, NodeMultiSelectField, NodePicker, NodeSelectField, OfflineBadge, PHASE_CONFIG, PRIORITY, PTZOverlay, PageHeader, PhaseIcon, PipelineBuilder, PipelineRuntimeSelector, PipelineStep, PipelineTreeMatrix, PlayerOverlaysProvider, Popover, PopoverContent, PopoverRowAction, PopoverTrigger, PrimaryChildPicker, PrivacyMaskSettings, ProviderBadge, PtzPanel, QrCode, RECONNECT_POLICY, RECORDED_PLAYBACK_MODES, RIGHT, ROLE_DESCRIPTOR, RadialGauge, RecordedPlaybackProvider, RecordingPanel, ResponseLog, SECTION_BODY, SECTION_CARD, SECTION_HEADER, SETTING_ROW, SETTING_ROW_LABEL, SETTING_ROW_STACK_BREAKPOINT, SETTING_ROW_VALUE, SETTING_ROW_VALUE_TEXT, SPLIT_PANEL_OUTER, SPLIT_PANEL_SIDE, STACK_GAP, STATE_COLOR, ScopePicker, ScriptHeroCard, ScriptInlineControl, ScrollArea, Select, SemanticBadge, SensorHeroCard, SensorInlineControl, SensorValueAtom, Separator, SettingRow, Sidebar, SidebarItem, Skeleton, SlideOverPanel, SlideToggle, SnapshotButton, StatCard, StateValuesStream, StatusBadge, StepTimings, StepTreeMaster, Stepper, StreamBrokerSelector, StreamPanel, Switch, SwitchHeroCard, SwitchInlineControl, SwitchPanel, SystemProvider, 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, agentColumnKey, 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, groupAgentColumns, groupChildrenByLayout, hardwareLabel, humidifierTint, createLucideIcon as i, initialScrubState, isAbsentProvider, isFieldVisible, lawnMowerActivityMeta, lightColors, loadRemoteBundle, makeScrubBridge, metadataEntries, metadataString, mirror, mountAddonPage, Square as n, nextReconnectAction, nextSort, normalizeForSearch, overrideEntityIdFromLink, parseRecordedServerMessage, providerIcons, EyeOff as r, resolveContainerPrimary, resolveControlAlign, resolveDeviceControl, resolveDisplayIcon, resolveEffectiveDefaultModel, resolveEffectiveStepModel, resolveEventKindIcon, resolvePrimaryChild, resolveSensorDisplay, resolveStepDefaultModel, resolveTableLayout, scrubReducer, selectedDeviceOptions, serializeRecordedCommand, shouldCommit, shouldEmit, shouldUseSingleNode, sortRows, statusIcons, stepHasModelForFormat, stepModelOptions, 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, useBackupDeleteSchedule, useBackupGetEntries, useBackupList, useBackupListArchives, useBackupListDestinations, useBackupListLocations, useBackupListSchedules, useBackupPreviewSchedule, useBackupRestore, useBackupTrigger, useBackupUpsertDestinationPolicy, useBackupUpsertSchedule, useBatteryGetStatus, useBatteryWakeForStream, useBinaryGetStatus, useBrightnessGetStatus, useBrightnessSetBrightness, useBrokerAdd, useBrokerGet, useBrokerGetBrokerConfig, useBrokerGetSettings, useBrokerGetSettingsSchema, useBrokerGetState, useBrokerGetStatus, useBrokerList, useBrokerListProviders, useBrokerPublish, useBrokerRemove, useBrokerSetSettings, useBrokerSubscribe, useBrokerTestConnection, useBrokerTestSettings, useBrokerUnsubscribe, useButtonPress, useCameraCredentialsGetCredentials, useCameraCredentialsGetStatus, useCameraPipelineConfigApplyDeviceSettingsPatch, useCameraPipelineConfigGetDeviceLiveContribution, useCameraPipelineConfigGetDeviceSettingsContribution, useCameraStreamsGetBrokerStreams, useCameraStreamsGetCameraStreams, useCameraStreamsGetProfileRtspEntries, useCameraStreamsGetRtspEntries, useCameraStreamsPickStream, useCarbonMonoxideGetStatus, useClimateControlGetStatus, useClimateControlSetFanMode, useClimateControlSetMode, useClimateControlSetPreset, useClimateControlSetSwingHorizontal, useClimateControlSetSwingVertical, useClimateControlSetTarget, useClimateControlSetTargetHumidity, useClimateControlSetTargetRange, useClusterNodes, useColorGetStatus, useColorSetColor, useConfirm, useConnectivityGetStatus, useConsumablesGetStatus, useConsumablesReset, useContactGetStatus, useContainerChildren, useControlGetStatus, useControlSetValue, useCoreBlocksCompile, useCoreBlocksCreate, useCoreBlocksDelete, useCoreBlocksGet, useCoreBlocksGetTypeDefs, useCoreBlocksList, useCoreBlocksRestart, useCoreBlocksSetEnabled, useCoreBlocksUpdate, useCoverClose, useCoverGetStatus, useCoverOpen, useCoverSetPosition, useCoverSetTiltPosition, useCoverStop, useCustomFieldRenderer, useDayNightGetOptions, useDayNightGetStatus, useDayNightSetSettings, useDebouncedString, useDecoderCreateSession, useDecoderDestroySession, useDecoderGetFrame, useDecoderGetInfo, useDecoderGetShmStats, useDecoderGetStats, useDecoderListActiveSessions, useDecoderOpenStream, useDecoderPullFrames, useDecoderPullHandles, useDecoderPushPacket, useDecoderReprobeHwaccel, useDecoderSupportsCodec, useDecoderUpdateConfig, useDetectionPipelineApplyDeviceSettingsPatch, useDetectionPipelineGetDeviceLiveContribution, useDetectionPipelineGetDeviceSettingsContribution, useDevShell, useDevice, useDeviceAdoptionAdopt, useDeviceAdoptionGetCandidate, useDeviceAdoptionGetStatus, useDeviceAdoptionListCandidateFilters, useDeviceAdoptionListCandidates, useDeviceAdoptionRefresh, useDeviceAdoptionRelease, useDeviceAdoptionResync, useDeviceAutotrack, useDeviceBattery, useDeviceCapSlice, useDeviceCapability, useDeviceDetections, useDeviceDiscoveryAdoptDevice, useDeviceDiscoveryGetStatus, useDeviceDiscoveryListDiscovered, useDeviceDiscoveryRefreshDiscovery, useDeviceDiscoveryReleaseDevice, useDeviceExportApplyDeviceSettingsPatch, useDeviceExportExposeDevice, useDeviceExportGetDeviceLiveContribution, useDeviceExportGetDeviceSettingsContribution, useDeviceExportGetStatus, useDeviceExportListExposedDevices, useDeviceExportListSupportedDeviceKinds, useDeviceExportUnexposeDevice, useDeviceId, useDeviceListPageSize, useDeviceManagerAddLocation, useDeviceManagerAdoptDevice, useDeviceManagerAdoptionAdopt, 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, useDeviceManagerGetDeviceStatusAggregateBatch, useDeviceManagerGetLinkedDevices, useDeviceManagerGetRoleDisplayDefaults, useDeviceManagerGetSettingsSchema, useDeviceManagerGetStreamProfileMap, useDeviceManagerGetStreamSources, useDeviceManagerGetWireableFields, useDeviceManagerListAll, useDeviceManagerListBindableCapsForDeviceType, useDeviceManagerListLocations, useDeviceManagerListPersistedByAddon, useDeviceManagerListWrappersForCap, useDeviceManagerLoadConfig, useDeviceManagerLoadMeta, useDeviceManagerLoadRuntimeState, useDeviceManagerPersistConfig, useDeviceManagerProbeStreams, useDeviceManagerProviderCreationType, useDeviceManagerProviderDiscoveryParamsSchema, useDeviceManagerRegisterDevice, useDeviceManagerRemove, useDeviceManagerRemoveByIntegration, useDeviceManagerRemoveDevice, useDeviceManagerRemoveLocation, useDeviceManagerRunDeviceAction, useDeviceManagerSetChildLayout, useDeviceManagerSetDisabled, useDeviceManagerSetDisplay, useDeviceManagerSetIntegrationId, useDeviceManagerSetLinkDeviceId, useDeviceManagerSetLocation, useDeviceManagerSetMetadata, useDeviceManagerSetName, useDeviceManagerSetPrimaryChildEntityId, useDeviceManagerSetRole, useDeviceManagerSetRoleDisplayDefaults, useDeviceManagerSetStreamProfileMap, useDeviceManagerSetType, useDeviceManagerSetWrapperActive, useDeviceManagerTestCreationField, useDeviceManagerTestField, useDeviceManagerUpdateConfig, useDeviceManagerUpdateDeviceField, useDeviceManagerUpdateDeviceFieldsBatch, useDeviceOpsGetConfigEntries, useDeviceOpsGetRawState, useDeviceOpsGetSettingsSchema, useDeviceOpsGetStreamSources, useDeviceOpsRemoveDevice, useDeviceOpsRunAction, useDeviceOpsSetConfig, useDeviceProviderAdoptDiscoveredDevice, useDeviceProviderCreateDevice, useDeviceProviderDiscoverDevices, useDeviceProviderGetChildCreationSchema, useDeviceProviderGetDevices, useDeviceProviderGetDiscoveryParamsSchema, useDeviceProviderGetManualCreationType, useDeviceProviderGetStatus, useDeviceProviderStart, useDeviceProviderStop, useDeviceProviderSupportsDiscovery, useDeviceProviderSupportsManualCreation, useDeviceProviderTestCreationField, useDeviceProxy, useDeviceSnapshot, useDeviceSnapshotImage, useDeviceState, useDeviceStateGetAllSnapshots, useDeviceStateGetCapSlice, useDeviceStateGetSnapshot, useDeviceStateSetCapSlice, useDeviceStateSlice, useDeviceStatusGetStatus, useDeviceWebrtc, useDevices, useDoorbellApplyDeviceSettingsPatch, useDoorbellEvents, useDoorbellGetDeviceLiveContribution, useDoorbellGetDeviceSettingsContribution, useDoorbellGetStatus, useEnumSensorGetStatus, useEventEmitterGetStatus, useEventInvalidation, useEventStreamLatest, useEventStreamMap, useEventsGetEventClipUrl, useEventsGetEventThumbnail, useEventsGetEvents, useFaceGalleryAssignFace, useFaceGalleryAssignFaces, useFaceGalleryCreateIdentity, useFaceGalleryDeleteFace, useFaceGalleryDeleteIdentity, useFaceGalleryGetFaceByTrack, useFaceGalleryGetFaceMedia, useFaceGalleryListIdentities, useFaceGalleryListIdentitySamples, useFaceGalleryListRecentFaces, useFaceGalleryRemoveSample, useFaceGalleryRenameIdentity, useFaceGallerySuggestFaceClusters, useFaceGalleryUnassignFace, useFaceGalleryUnassignFaces, useFanControlGetStatus, useFanControlSetDirection, useFanControlSetOscillating, useFanControlSetPercentage, useFanControlSetPreset, useFeatureProbeGetStatus, useFloodGetStatus, useGasGetStatus, useHumidifierGetStatus, useHumidifierSetMode, useHumidifierSetOn, useHumidifierSetTargetHumidity, useHumiditySensorGetStatus, useImageGetStatus, useImageSettingsGetOptions, useImageSettingsGetStatus, useImageSettingsSetSettings, useIntegrationsCreate, useIntegrationsDelete, useIntegrationsGet, useIntegrationsGetAvailableTypes, useIntegrationsGetByAddonId, useIntegrationsGetSettings, useIntegrationsList, useIntegrationsSetSettings, useIntegrationsTestConnection, useIntegrationsUpdate, useIntercomEndTalkSession, useIntercomGetStatus, useIntercomHandleAnswer, useIntercomPushTalkAudio, useIntercomStartSession, useIntercomStartTalkSession, useIntercomStopSession, useIsMidWidth, useIsMobile, useLawnMowerControlDock, useLawnMowerControlGetStatus, useLawnMowerControlPause, useLawnMowerControlStartMowing, useLiveBuffer, useLiveEvent, useLlmDeleteModel, useLlmDeleteProfile, useLlmGenerate, useLlmGenerateVision, useLlmGetDefaults, useLlmGetRuntimeStatus, useLlmGetUsage, useLlmInstallModel, useLlmListModelCatalog, useLlmListModels, useLlmListNodeModels, useLlmListProfileKinds, useLlmListProfiles, useLlmListRuntimeNodes, useLlmSetDefault, useLlmStartRuntime, useLlmStopRuntime, useLlmTestProfile, useLlmUpsertProfile, useLocalNetworkGetAllowedAddresses, useLocalNetworkGetConnectionEndpoints, useLocalNetworkGetNotificationEndpoint, useLocalNetworkGetPreferred, useLocalNetworkList, useLocalNetworkResetAllowlistToBestMatch, useLocalNetworkSetAllowedAddresses, useLocalNetworkSetNotificationEndpoint, useLockControlGetStatus, useLockControlLock, useLockControlOpen, useLockControlUnlock, useMediaPlayerGetStatus, useMediaPlayerNext, useMediaPlayerPause, useMediaPlayerPlay, useMediaPlayerPlayMedia, useMediaPlayerPrevious, useMediaPlayerSeek, useMediaPlayerSelectSource, useMediaPlayerSetMute, useMediaPlayerSetRepeat, useMediaPlayerSetShuffle, useMediaPlayerSetVolume, useMediaPlayerStop, useMeshNetworkGetStatus, useMeshNetworkJoin, useMeshNetworkLeave, useMeshNetworkListPeers, useMeshNetworkLogout, useMeshNetworkStartLogin, useMeshNetworkTestConnection, useMetricsProviderCollectSnapshot, useMetricsProviderDumpHeapSnapshot, useMetricsProviderGetAddonStats, useMetricsProviderGetCached, useMetricsProviderGetCpuTemperature, useMetricsProviderGetCurrent, useMetricsProviderGetDiskSpace, useMetricsProviderGetGpuInfo, useMetricsProviderGetProcessStats, useMetricsProviderKillProcess, useMetricsProviderListAddonInstances, useMetricsProviderListNodeProcesses, useMotionDetectionAnalyze, useMotionDetectionApplyDeviceSettingsPatch, useMotionDetectionGetDeviceLiveContribution, useMotionDetectionGetDeviceSettingsContribution, useMotionDetectionRemoveCamera, useMotionDetectionReset, useMotionGetStatus, useMotionIsDetected, useMotionTriggerGetStatus, useMotionTriggerSetMotionTrigger, useMotionZonesGetOptions, useMotionZonesGetStatus, useMotionZonesSetZone, useMqttBrokerAddBroker, useMqttBrokerGetBrokerConfig, useMqttBrokerGetStatus, useMqttBrokerListBrokers, useMqttBrokerRemoveBroker, useMqttBrokerStartEmbeddedBroker, useMqttBrokerStopEmbeddedBroker, useMqttBrokerTestConnection, useNativeObjectDetectionGetStatus, useNativeObjectDetectionSetEnabled, useNetworkAccessGetEndpoint, useNetworkAccessGetStatus, useNetworkAccessListEndpoints, useNetworkAccessStart, useNetworkAccessStop, useNetworkQualityGetAllStats, useNetworkQualityGetDeviceStats, useNetworkQualityReportClientStats, useNodesClusterAddonStatus, useNodesDeployAddon, useNodesExecuteQuery, useNodesGetCapUsageGraph, useNodesGetNodeAddons, useNodesRenameNode, useNodesRestartAddon, useNodesRestartNode, useNodesRestartProcess, useNodesSetProcessLogLevel, useNodesShutdownNode, useNodesTopology, useNodesUndeployAddon, useNotificationOutputDeleteTarget, useNotificationOutputDiscoverTargets, useNotificationOutputListTargetKinds, useNotificationOutputListTargets, useNotificationOutputSend, useNotificationOutputSetTargetEnabled, useNotificationOutputTestTarget, useNotificationOutputUpsertTarget, useNotificationRulesCancelSnooze, useNotificationRulesCreateRule, useNotificationRulesCreateSnooze, useNotificationRulesDeleteRule, useNotificationRulesGetAlarmConfig, useNotificationRulesGetConditionCatalog, useNotificationRulesGetHistory, useNotificationRulesGetRule, useNotificationRulesListDeviceMutes, useNotificationRulesListRules, useNotificationRulesListSnoozes, useNotificationRulesSetAlarmConfig, useNotificationRulesSetDeviceMuted, useNotificationRulesSetRuleEnabled, useNotificationRulesTestRule, useNotificationRulesUpdateRule, useNotifierCancel, useNotifierGetStatus, useNotifierSend, useNumericSensorGetStatus, useOptimisticSlice, useOptionalSystem, useOptionalWidgetRegistry, useOsdGetStatus, useOsdManagerClearSlotBinding, useOsdManagerGetConditionSupport, useOsdManagerGetDeviceOsd, useOsdManagerGetSourceCatalog, useOsdManagerPreviewSlot, useOsdManagerRenderDevice, useOsdManagerSetSlotBinding, useOsdSetOverlay, usePTZ, usePetFeederCallPet, usePetFeederCancelFeed, usePetFeederFeed, usePetFeederGetStatus, usePetFeederMarkFoodReplenished, usePetFeederPlaySound, usePetFeederResetDesiccant, usePetFeederSetChildLock, usePetFeederSetFeedSound, usePetFeederSetIndicatorLight, usePetFeederSetVolume, usePipelineAnalyticsApplyDeviceSettingsPatch, usePipelineAnalyticsCancelMediaRelocate, usePipelineAnalyticsClearTracks, usePipelineAnalyticsCompleteRetrainTrack, usePipelineAnalyticsDeleteDeviceEvents, usePipelineAnalyticsDeleteTracks, usePipelineAnalyticsDeselectRetrainFrame, usePipelineAnalyticsGetActiveTracks, usePipelineAnalyticsGetAudioEvents, usePipelineAnalyticsGetDeviceLiveContribution, usePipelineAnalyticsGetDeviceSettingsContribution, usePipelineAnalyticsGetEventDensity, usePipelineAnalyticsGetEventMedia, usePipelineAnalyticsGetEventStoreFootprint, usePipelineAnalyticsGetKeyEvents, usePipelineAnalyticsGetMediaRelocateStatus, usePipelineAnalyticsGetMotionEvents, usePipelineAnalyticsGetObjectEmbeddingRebuildStatus, usePipelineAnalyticsGetObjectEvents, usePipelineAnalyticsGetRetrainExportUrl, usePipelineAnalyticsGetRetrainFrameImage, usePipelineAnalyticsGetSensorEvents, usePipelineAnalyticsGetTrack, usePipelineAnalyticsGetTrackMedia, usePipelineAnalyticsGetTrainingExportSummary, usePipelineAnalyticsGetTrainingExportUrl, usePipelineAnalyticsListEventKinds, usePipelineAnalyticsListEventKindsBatch, usePipelineAnalyticsListOpsLog, usePipelineAnalyticsListRecentTracks, usePipelineAnalyticsListRetrainAnnotations, usePipelineAnalyticsListRetrainFrames, usePipelineAnalyticsListRetrainStaging, usePipelineAnalyticsListTrackMedia, usePipelineAnalyticsListTracks, usePipelineAnalyticsProposeRetrainAnnotations, usePipelineAnalyticsPruneEvents, usePipelineAnalyticsPruneEventsBefore, usePipelineAnalyticsPruneTracksBefore, usePipelineAnalyticsRebuildObjectEmbeddings, usePipelineAnalyticsRelocateMedia, usePipelineAnalyticsRestageRetrainTrack, usePipelineAnalyticsSaveRetrainAnnotations, usePipelineAnalyticsSearchObjectEvents, usePipelineAnalyticsSelectRetrainFrames, usePipelineAnalyticsSetTrackFlags, usePipelineAnalyticsWipeAllAnalytics, usePipelineAnalyticsWipeObjectEmbeddings, usePipelineExecutorCacheFrameInPool, usePipelineExecutorClearDeviceOverrides, usePipelineExecutorDeleteModel, usePipelineExecutorDeleteTemplate, usePipelineExecutorDownloadModel, usePipelineExecutorGetAddonModels, usePipelineExecutorGetAudioCapabilities, usePipelineExecutorGetAvailableEngines, usePipelineExecutorGetCapabilities, usePipelineExecutorGetDefaultSteps, usePipelineExecutorGetDetectionConfigSchema, usePipelineExecutorGetEffectiveTuning, usePipelineExecutorGetEngineProvisioning, usePipelineExecutorGetGlobalPipelineConfig, usePipelineExecutorGetGlobalSteps, usePipelineExecutorGetOrchestratorConfigSchema, usePipelineExecutorGetReferenceAudio, usePipelineExecutorGetReferenceAudioFiles, usePipelineExecutorGetReferenceImage, usePipelineExecutorGetSchema, usePipelineExecutorGetSelectedEngine, usePipelineExecutorGetVideoPipelineSteps, usePipelineExecutorInferCached, usePipelineExecutorKillEngine, usePipelineExecutorListLoadedEngines, usePipelineExecutorListReferenceImages, usePipelineExecutorListTemplates, usePipelineExecutorRunAudioTest, usePipelineExecutorRunPipeline, usePipelineExecutorRunPipelineBatch, usePipelineExecutorSaveTemplate, usePipelineExecutorSetVideoPipelineSteps, usePipelineExecutorSpinEngine, usePipelineExecutorUncacheFrame, usePipelineExecutorUpdateTemplate, usePipelineExecutorValidatePipeline, usePipelineOrchestratorApplyDeviceSettingsPatch, usePipelineOrchestratorAssignAudio, usePipelineOrchestratorAssignPipeline, usePipelineOrchestratorDeleteTemplate, usePipelineOrchestratorGetAgentLoad, usePipelineOrchestratorGetAgentSettings, usePipelineOrchestratorGetAudioAssignment, usePipelineOrchestratorGetAudioAssignments, usePipelineOrchestratorGetAudioNodeLoad, usePipelineOrchestratorGetCameraMetrics, usePipelineOrchestratorGetCameraSettings, usePipelineOrchestratorGetCameraStatus, usePipelineOrchestratorGetCameraStatuses, usePipelineOrchestratorGetCameraStepOverrides, usePipelineOrchestratorGetCameraSwitches, usePipelineOrchestratorGetCapabilityBindings, usePipelineOrchestratorGetDeviceLiveContribution, usePipelineOrchestratorGetDeviceSettingsContribution, usePipelineOrchestratorGetGlobalMetrics, usePipelineOrchestratorGetIngestOwner, usePipelineOrchestratorGetNodeInferenceDevices, usePipelineOrchestratorGetPipelineAssignment, usePipelineOrchestratorGetPipelineAssignments, usePipelineOrchestratorGetPipelineDevicePin, usePipelineOrchestratorListAgentSettings, usePipelineOrchestratorListTemplates, usePipelineOrchestratorRebalance, usePipelineOrchestratorRemoveAgentSettings, usePipelineOrchestratorResetNodePipelineDefaults, usePipelineOrchestratorResolvePipeline, usePipelineOrchestratorSaveTemplate, usePipelineOrchestratorSetAgentCapabilities, usePipelineOrchestratorSetAgentDetectWeight, usePipelineOrchestratorSetAgentInferenceDevices, usePipelineOrchestratorSetAgentMaxCameras, usePipelineOrchestratorSetAgentReachableHost, usePipelineOrchestratorSetCameraPipelineForAgent, usePipelineOrchestratorSetCameraStepOverride, usePipelineOrchestratorSetCameraStepToggle, usePipelineOrchestratorSetCameraSwitch, usePipelineOrchestratorSetCapabilityBinding, usePipelineOrchestratorSetPipelineDevicePin, usePipelineOrchestratorUnassignAudio, usePipelineOrchestratorUnassignPipeline, usePipelineOrchestratorUpdateTemplate, usePipelineRunnerAttachCamera, usePipelineRunnerDetachCamera, usePipelineRunnerGetAllCameraMetrics, usePipelineRunnerGetCameraMetrics, usePipelineRunnerGetLocalCameras, usePipelineRunnerGetLocalLoad, usePipelineRunnerGetLocalMetrics, usePipelineRunnerGetNativeCrop, usePipelineRunnerReportMotion, usePipelineRunnerRunDetailSubtree, usePipelineRunnerRunStatelessStep, usePlateGalleryAssignPlate, usePlateGalleryAssignPlates, usePlateGalleryCorrectPlateText, usePlateGalleryCreateVehicle, usePlateGalleryDeletePlate, usePlateGalleryDeleteVehicle, usePlateGalleryGetPlateByTrack, usePlateGalleryGetPlateMedia, usePlateGalleryListPlates, usePlateGalleryListVehicleSamples, usePlateGalleryListVehicles, usePlateGalleryRemoveVehicleSample, usePlateGalleryRenameVehicle, usePlateGallerySearchPlates, usePlateGallerySuggestPlateClusters, usePlateGalleryUnassignPlate, usePlateGalleryUnassignPlates, usePlayerOverlayLayer, usePlayerOverlayLayers, usePlayerToolbarButton, usePlayerToolbarButtons, usePowerMeterGetStatus, usePresenceGetStatus, usePressureSensorGetStatus, usePrivacyMaskGetOptions, usePrivacyMaskGetStatus, usePrivacyMaskSetAudioEnabled, usePrivacyMaskSetMask, usePtzAutotrackGetSettings, usePtzAutotrackGetStatus, usePtzAutotrackSetEnabled, usePtzAutotrackSetSettings, usePtzContinuousMove, usePtzDeletePreset, usePtzGetOptions, usePtzGetPosition, usePtzGetPresets, usePtzGetStatus, usePtzGoHome, usePtzGoToPreset, usePtzMove, usePtzSavePreset, usePtzSetAutofocus, usePtzStop, useRebootReboot, useRecordedPlayback, useRecordingApplyDeviceSettingsPatch, useRecordingCancelRelocate, useRecordingDeleteFootprint, useRecordingExportCancelExport, useRecordingExportCreateExport, useRecordingExportDeleteExport, useRecordingExportGetDownloadUrl, useRecordingExportGetExport, useRecordingExportListExports, useRecordingGetAvailability, useRecordingGetDaysWithRecordings, useRecordingGetDeviceConfig, useRecordingGetDeviceLiveContribution, useRecordingGetDeviceSettingsContribution, useRecordingGetPlaybackManifest, useRecordingGetRelocateStatus, useRecordingGetStatus, useRecordingGetStorageUsage, useRecordingListOpsLog, useRecordingLocateSegment, useRecordingPruneFootage, useRecordingReadGopBytes, useRecordingReadSegmentBytes, useRecordingRelocateFootage, useRecordingRenderClip, useRecordingRenderGif, useRecordingRescanStorage, useRecordingSetDeviceConfig, useRemoteComponent, useSceneMonitorCaptureReference, useSceneMonitorCreateScene, useSceneMonitorDeleteReference, useSceneMonitorDeleteScene, useSceneMonitorGetStatus, useSceneMonitorListScenes, useSceneMonitorRecheckNow, useSceneMonitorUpdateScene, useScriptRunnerGetStatus, useScriptRunnerRun, useScriptRunnerStop, useScrubController, useServerManagementApplyServerUpdate, useServerManagementCheckServerUpdate, useServerManagementGetServerPackageStatus, useServerManagementRestartServer, useServerManagementRollbackServerUpdate, useSettingsStoreCount, useSettingsStoreDeclareCollection, useSettingsStoreDelete, useSettingsStoreDeleteWhere, useSettingsStoreGet, useSettingsStoreHistogram, useSettingsStoreInsert, useSettingsStoreIsEmpty, useSettingsStoreQuery, useSettingsStoreSet, useSettingsStoreUpdate, useSettingsStoreUpdateWhere, 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, useStreamBrokerAcquireEgressTranscode, useStreamBrokerApplyDeviceSettingsPatch, useStreamBrokerAssignProfile, useStreamBrokerFetchEventMedia, useStreamBrokerGetAllRtspEntries, useStreamBrokerGetBrokerStats, useStreamBrokerGetDeviceAudioMute, useStreamBrokerGetDeviceLiveContribution, useStreamBrokerGetDeviceSettingsContribution, useStreamBrokerGetPreBufferInfo, useStreamBrokerGetRtspEntry, useStreamBrokerGetRtspPort, useStreamBrokerGetStreamUrl, useStreamBrokerGetStreamWithCodec, useStreamBrokerIsRtspEnabled, useStreamBrokerKillClient, useStreamBrokerListAllCameraStreams, useStreamBrokerListAllProfileSlots, useStreamBrokerListClients, useStreamBrokerProbeStream, useStreamBrokerProduceEventMedia, useStreamBrokerPublishCameraStream, useStreamBrokerPullAudioChunks, useStreamBrokerPullFrameHandles, useStreamBrokerRegenerateRtspToken, useStreamBrokerReleaseEgressTranscode, useStreamBrokerReleaseStreamWithCodec, useStreamBrokerRenderPreBufferClip, useStreamBrokerRestartProfile, useStreamBrokerRetractCameraStream, useStreamBrokerSetDeviceAudioMute, useStreamBrokerSetPreBufferDuration, useStreamBrokerSetRtspEnabled, useStreamBrokerSubscribeAudioChunks, useStreamBrokerSubscribeFrames, useStreamBrokerUnassignProfile, useStreamBrokerUnsubscribeAudioChunks, useStreamBrokerUnsubscribeFrames, useStreamCatalogGetCatalog, useStreamParamsGetConfigSchema, useStreamParamsGetOptions, useStreamParamsGetStatus, useStreamParamsSetProfile, useSwitchGetStatus, useSwitchSetState, useSystem, useSystemFeatureFlags, useSystemForceRetentionCleanup, useSystemGetRetentionConfig, useSystemHealth, useSystemInfo, useSystemMutation, useSystemNetworkAddresses, useSystemQuery, useSystemSetRetentionConfig, useTamperGetStatus, useTemperatureSensorGetStatus, useTerminalSessionClose, useTerminalSessionListProfiles, useTerminalSessionListSessions, useTerminalSessionOpenSession, useTerminalSessionResize, 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 };
|