@camstack/ui-library 1.2.245 → 1.2.247
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/accelerator-label.d.ts +17 -0
- package/dist/composites/agent-step-editor.d.ts +3 -3
- package/dist/composites/device-step-matrix.d.ts +25 -2
- package/dist/composites/index.d.ts +3 -2
- package/dist/composites/pipeline-builder.d.ts +2 -10
- package/dist/composites/pipeline-matrix-shared.d.ts +10 -0
- package/dist/composites/step-inspector/index.d.ts +2 -5
- package/dist/composites/step-inspector/step-detail-dock.d.ts +33 -0
- package/dist/composites/step-inspector/step-inspector-panel.d.ts +7 -1
- package/dist/composites/step-inspector/step-search.d.ts +18 -0
- package/dist/composites/stream-panel.d.ts +0 -3
- package/dist/generated/system-hooks.d.ts +0 -46
- package/dist/hooks/use-device-webrtc.d.ts +0 -1
- package/dist/index.cjs +485 -822
- package/dist/index.js +480 -793
- package/package.json +1 -1
- package/dist/composites/step-inspector/accelerator-tabs.d.ts +0 -12
- package/dist/composites/step-inspector/step-chips.d.ts +0 -11
- package/dist/composites/step-inspector/step-inspector-layout.d.ts +0 -23
- package/dist/composites/step-inspector/step-list.d.ts +0 -39
- package/dist/composites/step-inspector/step-model-list.d.ts +0 -9
- package/dist/lib/validate-template.d.ts +0 -2
package/dist/index.js
CHANGED
|
@@ -1683,41 +1683,6 @@ var CookingPot = createLucideIcon("cooking-pot", [
|
|
|
1683
1683
|
* This source code is licensed under the ISC license.
|
|
1684
1684
|
* See the LICENSE file in the root directory of this source tree.
|
|
1685
1685
|
*/
|
|
1686
|
-
var CopyPlus = createLucideIcon("copy-plus", [
|
|
1687
|
-
["line", {
|
|
1688
|
-
x1: "15",
|
|
1689
|
-
x2: "15",
|
|
1690
|
-
y1: "12",
|
|
1691
|
-
y2: "18",
|
|
1692
|
-
key: "1p7wdc"
|
|
1693
|
-
}],
|
|
1694
|
-
["line", {
|
|
1695
|
-
x1: "12",
|
|
1696
|
-
x2: "18",
|
|
1697
|
-
y1: "15",
|
|
1698
|
-
y2: "15",
|
|
1699
|
-
key: "1nscbv"
|
|
1700
|
-
}],
|
|
1701
|
-
["rect", {
|
|
1702
|
-
width: "14",
|
|
1703
|
-
height: "14",
|
|
1704
|
-
x: "8",
|
|
1705
|
-
y: "8",
|
|
1706
|
-
rx: "2",
|
|
1707
|
-
ry: "2",
|
|
1708
|
-
key: "17jyea"
|
|
1709
|
-
}],
|
|
1710
|
-
["path", {
|
|
1711
|
-
d: "M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",
|
|
1712
|
-
key: "zix9uf"
|
|
1713
|
-
}]
|
|
1714
|
-
]);
|
|
1715
|
-
/**
|
|
1716
|
-
* @license lucide-react v0.576.0 - ISC
|
|
1717
|
-
*
|
|
1718
|
-
* This source code is licensed under the ISC license.
|
|
1719
|
-
* See the LICENSE file in the root directory of this source tree.
|
|
1720
|
-
*/
|
|
1721
1686
|
var Copy = createLucideIcon("copy", [["rect", {
|
|
1722
1687
|
width: "14",
|
|
1723
1688
|
height: "14",
|
|
@@ -6866,32 +6831,8 @@ var useDayNightGetOptions = trpc.dayNight.getOptions.useQuery;
|
|
|
6866
6831
|
var useDayNightSetSettings = trpc.dayNight.setSettings.useMutation;
|
|
6867
6832
|
/** Generated alias around `trpc.dayNight.getStatus.useQuery`. */
|
|
6868
6833
|
var useDayNightGetStatus = trpc.dayNight.getStatus.useQuery;
|
|
6869
|
-
/** Generated alias around `trpc.decoder.supportsCodec.useQuery`. */
|
|
6870
|
-
var useDecoderSupportsCodec = trpc.decoder.supportsCodec.useQuery;
|
|
6871
6834
|
/** Generated alias around `trpc.decoder.getInfo.useQuery`. */
|
|
6872
6835
|
var useDecoderGetInfo = trpc.decoder.getInfo.useQuery;
|
|
6873
|
-
/** Generated alias around `trpc.decoder.createSession.useQuery`. */
|
|
6874
|
-
var useDecoderCreateSession = trpc.decoder.createSession.useQuery;
|
|
6875
|
-
/** Generated alias around `trpc.decoder.destroySession.useQuery`. */
|
|
6876
|
-
var useDecoderDestroySession = trpc.decoder.destroySession.useQuery;
|
|
6877
|
-
/** Generated alias around `trpc.decoder.pushPacket.useQuery`. */
|
|
6878
|
-
var useDecoderPushPacket = trpc.decoder.pushPacket.useQuery;
|
|
6879
|
-
/** Generated alias around `trpc.decoder.openStream.useQuery`. */
|
|
6880
|
-
var useDecoderOpenStream = trpc.decoder.openStream.useQuery;
|
|
6881
|
-
/** Generated alias around `trpc.decoder.pullFrames.useQuery`. */
|
|
6882
|
-
var useDecoderPullFrames = trpc.decoder.pullFrames.useQuery;
|
|
6883
|
-
/** Generated alias around `trpc.decoder.pullHandles.useQuery`. */
|
|
6884
|
-
var useDecoderPullHandles = trpc.decoder.pullHandles.useQuery;
|
|
6885
|
-
/** Generated alias around `trpc.decoder.getFrame.useQuery`. */
|
|
6886
|
-
var useDecoderGetFrame = trpc.decoder.getFrame.useQuery;
|
|
6887
|
-
/** Generated alias around `trpc.decoder.getShmStats.useQuery`. */
|
|
6888
|
-
var useDecoderGetShmStats = trpc.decoder.getShmStats.useQuery;
|
|
6889
|
-
/** Generated alias around `trpc.decoder.updateConfig.useQuery`. */
|
|
6890
|
-
var useDecoderUpdateConfig = trpc.decoder.updateConfig.useQuery;
|
|
6891
|
-
/** Generated alias around `trpc.decoder.getStats.useQuery`. */
|
|
6892
|
-
var useDecoderGetStats = trpc.decoder.getStats.useQuery;
|
|
6893
|
-
/** Generated alias around `trpc.decoder.listActiveSessions.useQuery`. */
|
|
6894
|
-
var useDecoderListActiveSessions = trpc.decoder.listActiveSessions.useQuery;
|
|
6895
6836
|
/** Generated alias around `trpc.decoder.reprobeHwaccel.useMutation`. */
|
|
6896
6837
|
var useDecoderReprobeHwaccel = trpc.decoder.reprobeHwaccel.useMutation;
|
|
6897
6838
|
/** Generated alias around `trpc.detectionPipeline.getDeviceSettingsContribution.useQuery`. */
|
|
@@ -7890,14 +7831,6 @@ var usePipelineExecutorGetGlobalPipelineConfig = trpc.pipelineExecutor.getGlobal
|
|
|
7890
7831
|
var usePipelineExecutorGetOrchestratorConfigSchema = trpc.pipelineExecutor.getOrchestratorConfigSchema.useQuery;
|
|
7891
7832
|
/** Generated alias around `trpc.pipelineExecutor.validatePipeline.useQuery`. */
|
|
7892
7833
|
var usePipelineExecutorValidatePipeline = trpc.pipelineExecutor.validatePipeline.useQuery;
|
|
7893
|
-
/** Generated alias around `trpc.pipelineExecutor.listTemplates.useQuery`. */
|
|
7894
|
-
var usePipelineExecutorListTemplates = trpc.pipelineExecutor.listTemplates.useQuery;
|
|
7895
|
-
/** Generated alias around `trpc.pipelineExecutor.saveTemplate.useMutation`. */
|
|
7896
|
-
var usePipelineExecutorSaveTemplate = trpc.pipelineExecutor.saveTemplate.useMutation;
|
|
7897
|
-
/** Generated alias around `trpc.pipelineExecutor.updateTemplate.useMutation`. */
|
|
7898
|
-
var usePipelineExecutorUpdateTemplate = trpc.pipelineExecutor.updateTemplate.useMutation;
|
|
7899
|
-
/** Generated alias around `trpc.pipelineExecutor.deleteTemplate.useMutation`. */
|
|
7900
|
-
var usePipelineExecutorDeleteTemplate = trpc.pipelineExecutor.deleteTemplate.useMutation;
|
|
7901
7834
|
/** Generated alias around `trpc.pipelineExecutor.getCapabilities.useQuery`. */
|
|
7902
7835
|
var usePipelineExecutorGetCapabilities = trpc.pipelineExecutor.getCapabilities.useQuery;
|
|
7903
7836
|
/** Generated alias around `trpc.pipelineExecutor.getAddonModels.useQuery`. */
|
|
@@ -8044,14 +7977,6 @@ var usePipelineOrchestratorSetCameraSensors = trpc.pipelineOrchestrator.setCamer
|
|
|
8044
7977
|
var usePipelineOrchestratorReconcileFromDisk = trpc.pipelineOrchestrator.reconcileFromDisk.useMutation;
|
|
8045
7978
|
/** Generated alias around `trpc.pipelineOrchestrator.getReconcileFromDiskStatus.useQuery`. */
|
|
8046
7979
|
var usePipelineOrchestratorGetReconcileFromDiskStatus = trpc.pipelineOrchestrator.getReconcileFromDiskStatus.useQuery;
|
|
8047
|
-
/** Generated alias around `trpc.pipelineOrchestrator.listTemplates.useQuery`. */
|
|
8048
|
-
var usePipelineOrchestratorListTemplates = trpc.pipelineOrchestrator.listTemplates.useQuery;
|
|
8049
|
-
/** Generated alias around `trpc.pipelineOrchestrator.saveTemplate.useMutation`. */
|
|
8050
|
-
var usePipelineOrchestratorSaveTemplate = trpc.pipelineOrchestrator.saveTemplate.useMutation;
|
|
8051
|
-
/** Generated alias around `trpc.pipelineOrchestrator.updateTemplate.useMutation`. */
|
|
8052
|
-
var usePipelineOrchestratorUpdateTemplate = trpc.pipelineOrchestrator.updateTemplate.useMutation;
|
|
8053
|
-
/** Generated alias around `trpc.pipelineOrchestrator.deleteTemplate.useMutation`. */
|
|
8054
|
-
var usePipelineOrchestratorDeleteTemplate = trpc.pipelineOrchestrator.deleteTemplate.useMutation;
|
|
8055
7980
|
/** Generated alias around `trpc.pipelineOrchestrator.getDeviceSettingsContribution.useQuery`. */
|
|
8056
7981
|
var usePipelineOrchestratorGetDeviceSettingsContribution = trpc.pipelineOrchestrator.getDeviceSettingsContribution.useQuery;
|
|
8057
7982
|
/** Generated alias around `trpc.pipelineOrchestrator.getDeviceLiveContribution.useQuery`. */
|
|
@@ -8480,12 +8405,6 @@ var useStreamBrokerSubscribeAudioChunks = trpc.streamBroker.subscribeAudioChunks
|
|
|
8480
8405
|
var useStreamBrokerPullAudioChunks = trpc.streamBroker.pullAudioChunks.useQuery;
|
|
8481
8406
|
/** Generated alias around `trpc.streamBroker.unsubscribeAudioChunks.useMutation`. */
|
|
8482
8407
|
var useStreamBrokerUnsubscribeAudioChunks = trpc.streamBroker.unsubscribeAudioChunks.useMutation;
|
|
8483
|
-
/** Generated alias around `trpc.streamBroker.subscribeFrames.useMutation`. */
|
|
8484
|
-
var useStreamBrokerSubscribeFrames = trpc.streamBroker.subscribeFrames.useMutation;
|
|
8485
|
-
/** Generated alias around `trpc.streamBroker.pullFrameHandles.useQuery`. */
|
|
8486
|
-
var useStreamBrokerPullFrameHandles = trpc.streamBroker.pullFrameHandles.useQuery;
|
|
8487
|
-
/** Generated alias around `trpc.streamBroker.unsubscribeFrames.useMutation`. */
|
|
8488
|
-
var useStreamBrokerUnsubscribeFrames = trpc.streamBroker.unsubscribeFrames.useMutation;
|
|
8489
8408
|
/** Generated alias around `trpc.streamBroker.setPreBufferDuration.useMutation`. */
|
|
8490
8409
|
var useStreamBrokerSetPreBufferDuration = trpc.streamBroker.setPreBufferDuration.useMutation;
|
|
8491
8410
|
/** Generated alias around `trpc.streamBroker.getPreBufferInfo.useQuery`. */
|
|
@@ -28722,6 +28641,45 @@ function AddonGlobalSettingsForm({ trpc, addonId, nodeId, title, disabled, onAft
|
|
|
28722
28641
|
});
|
|
28723
28642
|
}
|
|
28724
28643
|
//#endregion
|
|
28644
|
+
//#region src/composites/accelerator-label.ts
|
|
28645
|
+
function names(device) {
|
|
28646
|
+
const backend = device.backend.toLowerCase();
|
|
28647
|
+
const dev = device.device.toLowerCase();
|
|
28648
|
+
if (device.key === "cpu" || dev === "cpu" || backend === "cpu") return {
|
|
28649
|
+
label: "CPU",
|
|
28650
|
+
short: "CPU"
|
|
28651
|
+
};
|
|
28652
|
+
if (dev === "npu") return {
|
|
28653
|
+
label: "Intel NPU",
|
|
28654
|
+
short: "NPU"
|
|
28655
|
+
};
|
|
28656
|
+
if (dev === "gpu" || dev === "igpu") return {
|
|
28657
|
+
label: "Intel iGPU",
|
|
28658
|
+
short: "iGPU"
|
|
28659
|
+
};
|
|
28660
|
+
if (backend === "edgetpu") return {
|
|
28661
|
+
label: "Coral Edge TPU",
|
|
28662
|
+
short: "Coral"
|
|
28663
|
+
};
|
|
28664
|
+
if (backend === "coreml") return {
|
|
28665
|
+
label: "Apple Neural Engine",
|
|
28666
|
+
short: "ANE"
|
|
28667
|
+
};
|
|
28668
|
+
const pretty = `${device.backend} ${device.device}`.trim().replace(/\b\w/g, (c) => c.toUpperCase());
|
|
28669
|
+
return {
|
|
28670
|
+
label: pretty.length > 0 ? pretty : device.key,
|
|
28671
|
+
short: device.backend || device.key
|
|
28672
|
+
};
|
|
28673
|
+
}
|
|
28674
|
+
/** "Intel NPU", "Apple Neural Engine", "Coral Edge TPU", "CPU" — Auto tune's names too. */
|
|
28675
|
+
function acceleratorLabel(device) {
|
|
28676
|
+
return names(device).label;
|
|
28677
|
+
}
|
|
28678
|
+
/** "NPU", "ANE", "Coral", "CPU" — chips and tabs. */
|
|
28679
|
+
function acceleratorShortLabel(device) {
|
|
28680
|
+
return names(device).short;
|
|
28681
|
+
}
|
|
28682
|
+
//#endregion
|
|
28725
28683
|
//#region src/composites/grouped-model-selector.tsx
|
|
28726
28684
|
/**
|
|
28727
28685
|
* GroupedModelSelector — the shared Family → Tier → Variant model picker.
|
|
@@ -29949,9 +29907,9 @@ function RootSuppliedModelNote({ rootModel, stepModelId }) {
|
|
|
29949
29907
|
/**
|
|
29950
29908
|
* AgentStepEditor — one step on ONE accelerator: its model and its settings,
|
|
29951
29909
|
* as a single node-level layer. Model Studio's "settings for this installed
|
|
29952
|
-
* model" dialog uses it. The pipeline pages use the step
|
|
29953
|
-
* the same parts out across accelerators and layers (D754/
|
|
29954
|
-
* form here is that
|
|
29910
|
+
* model" dialog uses it. The pipeline pages use the step matrix's panel, which lays
|
|
29911
|
+
* the same parts out across accelerators and layers (D754/D757); the settings
|
|
29912
|
+
* form here is that panel's `LayeredSettingsForm` with one layer.
|
|
29955
29913
|
*/
|
|
29956
29914
|
function AgentStepEditor({ addon, agentDefault, onChangeAgentConfig, engineFormat, effectiveModelId, rootModel }) {
|
|
29957
29915
|
const modelsForFormat = useMemo(() => stepModelOptions(addon.models, engineFormat), [addon.models, engineFormat]);
|
|
@@ -35270,7 +35228,6 @@ function useDeviceWebrtc(trpc, deviceId, pollIntervalMs = 5e3) {
|
|
|
35270
35228
|
target: r.target,
|
|
35271
35229
|
status: r.status,
|
|
35272
35230
|
inputFps: r.inputFps,
|
|
35273
|
-
decodeFps: r.decodeFps,
|
|
35274
35231
|
bitrateKbps: r.bitrateKbps
|
|
35275
35232
|
})),
|
|
35276
35233
|
hasWebrtc: true
|
|
@@ -55381,25 +55338,46 @@ function ClassChips({ inputs, outputs }) {
|
|
|
55381
55338
|
* the first column; each device's real format is shown per sub-column instead
|
|
55382
55339
|
* ("Coral Edge TPU · tflite").
|
|
55383
55340
|
*/
|
|
55341
|
+
/** The per-accelerator lines of a column header: name, format, model, off. */
|
|
55342
|
+
function AgentColumnLines({ column }) {
|
|
55343
|
+
const name = column.deviceLabel ?? column.deviceKey;
|
|
55344
|
+
return /* @__PURE__ */ jsxs(Fragment$1, { children: [
|
|
55345
|
+
(name !== void 0 || column.disabled === true) && /* @__PURE__ */ jsxs("div", {
|
|
55346
|
+
className: "flex min-w-0 items-center gap-1",
|
|
55347
|
+
children: [name !== void 0 && /* @__PURE__ */ jsx("span", {
|
|
55348
|
+
className: "truncate text-[10px] font-medium text-foreground/90",
|
|
55349
|
+
children: name
|
|
55350
|
+
}), column.disabled === true && /* @__PURE__ */ jsx("span", {
|
|
55351
|
+
className: "shrink-0 rounded bg-muted px-1 text-[8px] font-semibold uppercase text-foreground-subtle",
|
|
55352
|
+
children: "off"
|
|
55353
|
+
})]
|
|
55354
|
+
}),
|
|
55355
|
+
/* @__PURE__ */ jsx("div", {
|
|
55356
|
+
className: "truncate text-[9px] text-foreground-subtle",
|
|
55357
|
+
children: column.engineLabel
|
|
55358
|
+
}),
|
|
55359
|
+
column.detail !== void 0 && /* @__PURE__ */ jsx("div", {
|
|
55360
|
+
className: "truncate font-mono text-[9px] text-foreground-subtle",
|
|
55361
|
+
title: column.detail,
|
|
55362
|
+
children: column.detail
|
|
55363
|
+
})
|
|
55364
|
+
] });
|
|
55365
|
+
}
|
|
55384
55366
|
function GroupedAgentHeader({ group }) {
|
|
55367
|
+
const nodeLabel = group.columns[0]?.nodeLabel ?? group.agentNodeId;
|
|
55385
55368
|
return /* @__PURE__ */ jsxs("div", {
|
|
55369
|
+
role: "columnheader",
|
|
55386
55370
|
className: "sticky top-0 z-10 min-w-0 border-b border-l border-border bg-muted/60",
|
|
55387
55371
|
style: { gridColumn: `span ${group.columns.length}` },
|
|
55388
55372
|
children: [/* @__PURE__ */ jsx("div", {
|
|
55389
55373
|
className: "truncate px-3 pt-2 pb-1 text-xs font-semibold text-foreground",
|
|
55390
|
-
children:
|
|
55374
|
+
children: nodeLabel
|
|
55391
55375
|
}), /* @__PURE__ */ jsx("div", {
|
|
55392
55376
|
className: "mt-1 flex border-t border-border/50",
|
|
55393
|
-
children: group.columns.map((c, i) => /* @__PURE__ */
|
|
55394
|
-
className: cn("min-w-0 flex-1 px-3 py-1", i > 0 && "border-l border-border/50"),
|
|
55395
|
-
title: `${c.deviceLabel ?? c.deviceKey} · ${c.engineLabel}`,
|
|
55396
|
-
children:
|
|
55397
|
-
className: "truncate text-[10px] font-medium text-foreground/90",
|
|
55398
|
-
children: c.deviceLabel ?? c.deviceKey
|
|
55399
|
-
}), /* @__PURE__ */ jsx("div", {
|
|
55400
|
-
className: "truncate text-[9px] text-foreground-subtle",
|
|
55401
|
-
children: c.engineLabel
|
|
55402
|
-
})]
|
|
55377
|
+
children: group.columns.map((c, i) => /* @__PURE__ */ jsx("div", {
|
|
55378
|
+
className: cn("min-w-0 flex-1 px-3 py-1", i > 0 && "border-l border-border/50", c.disabled === true && "opacity-70"),
|
|
55379
|
+
title: `${c.deviceLabel ?? c.deviceKey} · ${c.engineLabel}${c.detail ? ` · ${c.detail}` : ""}`,
|
|
55380
|
+
children: /* @__PURE__ */ jsx(AgentColumnLines, { column: c })
|
|
55403
55381
|
}, agentColumnKey(c)))
|
|
55404
55382
|
})]
|
|
55405
55383
|
});
|
|
@@ -55503,25 +55481,30 @@ function cellButtonClass(state, isSelected, extra) {
|
|
|
55503
55481
|
//#endregion
|
|
55504
55482
|
//#region src/composites/device-step-matrix.tsx
|
|
55505
55483
|
/**
|
|
55506
|
-
* DeviceStepMatrix — the
|
|
55507
|
-
* (
|
|
55508
|
-
*
|
|
55509
|
-
*
|
|
55510
|
-
*
|
|
55511
|
-
*
|
|
55512
|
-
*
|
|
55513
|
-
*
|
|
55514
|
-
*
|
|
55515
|
-
*
|
|
55516
|
-
*
|
|
55517
|
-
*
|
|
55518
|
-
*
|
|
55519
|
-
*
|
|
55520
|
-
*
|
|
55521
|
-
*
|
|
55522
|
-
*
|
|
55523
|
-
*
|
|
55524
|
-
*
|
|
55484
|
+
* DeviceStepMatrix — the step × accelerator TABLE of a detection pipeline
|
|
55485
|
+
* (D757): the node's Pipeline tab and the camera's Detection pipeline → Steps
|
|
55486
|
+
* are this matrix, and a click on a cell (or a step's header) opens that step's
|
|
55487
|
+
* settings in a docked panel (`StepDetailDock`) that overlays the page instead
|
|
55488
|
+
* of reflowing the matrix.
|
|
55489
|
+
*
|
|
55490
|
+
* Column 1 (STICKY): the indented step tree — slot, name, class-flow chips,
|
|
55491
|
+
* and an optional badge (the camera's gate). The header is a button: it
|
|
55492
|
+
* opens the step on the selected accelerator.
|
|
55493
|
+
* Columns 2..N: one per accelerator, grouped under their node; the header
|
|
55494
|
+
* names the accelerator, its format, the model it elects, and "off" for a
|
|
55495
|
+
* switched-off one. A cell shows the model that runs there, or "⚠ skip",
|
|
55496
|
+
* "→ iGPU", "root", "cluster", "ovr", "—".
|
|
55497
|
+
*
|
|
55498
|
+
* Keyboard: ONE Tab stop (a roving tabindex over the step headers and cells);
|
|
55499
|
+
* arrows move, Home / End go to the row's ends, Enter or Space opens.
|
|
55500
|
+
*
|
|
55501
|
+
* `reserveRightPx`: the width a docked panel covers at the right of the
|
|
55502
|
+
* viewport. The matrix adds a trailing spacer that wide (so any column can
|
|
55503
|
+
* scroll clear of it) and scrolls the selected cell into the uncovered part —
|
|
55504
|
+
* it never shrinks, so nothing reflows when the panel opens.
|
|
55505
|
+
*
|
|
55506
|
+
* Responsive, container-measured: narrower than the step column plus two
|
|
55507
|
+
* columns, the matrix shows ONE node at a time with a node selector.
|
|
55525
55508
|
*/
|
|
55526
55509
|
/** The sticky step column. */
|
|
55527
55510
|
var STEP_COL_REM = 18;
|
|
@@ -55532,11 +55515,41 @@ var STEP_COL_PX = STEP_COL_REM * 16;
|
|
|
55532
55515
|
* step column and lets the device columns scroll horizontally beside it.
|
|
55533
55516
|
*/
|
|
55534
55517
|
var STEP_COL_SINGLE_REM = 11;
|
|
55535
|
-
|
|
55518
|
+
/** Where a key press moves the roving focus in a `rows × cols` grid. */
|
|
55519
|
+
function nextGridPosition(key, pos, rows, cols) {
|
|
55520
|
+
const clamp = (r, c) => ({
|
|
55521
|
+
r: Math.max(0, Math.min(rows - 1, r)),
|
|
55522
|
+
c: Math.max(0, Math.min(cols - 1, c))
|
|
55523
|
+
});
|
|
55524
|
+
switch (key) {
|
|
55525
|
+
case "ArrowRight": return clamp(pos.r, pos.c + 1);
|
|
55526
|
+
case "ArrowLeft": return clamp(pos.r, pos.c - 1);
|
|
55527
|
+
case "ArrowDown": return clamp(pos.r + 1, pos.c);
|
|
55528
|
+
case "ArrowUp": return clamp(pos.r - 1, pos.c);
|
|
55529
|
+
case "Home": return clamp(pos.r, 0);
|
|
55530
|
+
case "End": return clamp(pos.r, cols - 1);
|
|
55531
|
+
case "PageDown": return clamp(rows - 1, pos.c);
|
|
55532
|
+
case "PageUp": return clamp(0, pos.c);
|
|
55533
|
+
default: return null;
|
|
55534
|
+
}
|
|
55535
|
+
}
|
|
55536
|
+
function StepCell({ node, depth, r, tabbable, selected, badge, onClick, sticky }) {
|
|
55536
55537
|
return /* @__PURE__ */ jsx("div", {
|
|
55537
|
-
|
|
55538
|
-
|
|
55539
|
-
children: /* @__PURE__ */
|
|
55538
|
+
role: "rowheader",
|
|
55539
|
+
className: cn("min-w-0 border-b border-border bg-surface", sticky && "sticky left-0 z-10"),
|
|
55540
|
+
children: /* @__PURE__ */ jsxs("button", {
|
|
55541
|
+
type: "button",
|
|
55542
|
+
"data-r": r,
|
|
55543
|
+
"data-c": 0,
|
|
55544
|
+
"data-step": node.addonId,
|
|
55545
|
+
"data-col": "",
|
|
55546
|
+
tabIndex: tabbable ? 0 : -1,
|
|
55547
|
+
"aria-current": selected ? "true" : void 0,
|
|
55548
|
+
onClick: onClick ? (e) => onClick(e.detail === 0) : void 0,
|
|
55549
|
+
className: cn("flex h-full w-full min-w-0 items-start gap-2 px-3 py-2 text-left text-xs outline-none", "hover:bg-muted/40 focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-primary", selected && "bg-primary/10 shadow-[inset_3px_0_0_var(--color-primary)]"),
|
|
55550
|
+
style: { paddingLeft: `${12 + depth * 14}px` },
|
|
55551
|
+
children: [/* @__PURE__ */ jsx(StepLabel, { node }), badge]
|
|
55552
|
+
})
|
|
55540
55553
|
});
|
|
55541
55554
|
}
|
|
55542
55555
|
/**
|
|
@@ -55566,68 +55579,179 @@ function NodeSelectorBar({ nodes, selected, onSelect }) {
|
|
|
55566
55579
|
role: "tab",
|
|
55567
55580
|
"aria-selected": isSelected,
|
|
55568
55581
|
onClick: () => onSelect(a.agentNodeId),
|
|
55569
|
-
title: `${a.agentNodeId} · ${a.engineLabel}`,
|
|
55582
|
+
title: `${a.columns[0]?.nodeLabel ?? a.agentNodeId} · ${a.engineLabel}`,
|
|
55570
55583
|
className: cn("px-2.5 py-1 transition-colors", isSelected ? "bg-primary/15 text-primary" : "bg-transparent text-foreground-subtle hover:bg-surface-hover hover:text-foreground", idx > 0 && "border-l border-border"),
|
|
55571
|
-
children: a.agentNodeId
|
|
55584
|
+
children: a.columns[0]?.nodeLabel ?? a.agentNodeId
|
|
55572
55585
|
}, a.agentNodeId);
|
|
55573
55586
|
})
|
|
55574
55587
|
})
|
|
55575
55588
|
]
|
|
55576
55589
|
});
|
|
55577
55590
|
}
|
|
55578
|
-
function MatrixGrid({ tree, agents, getCellState, onCellClick, selectedCell, single }) {
|
|
55591
|
+
var MatrixGrid = forwardRef(function MatrixGrid({ tree, agents, getCellState, onCellClick, onStepClick, stepBadge, selectedCell, single, reserveRightPx, label }, ref) {
|
|
55579
55592
|
const rows = useMemo(() => flattenTree(tree), [tree]);
|
|
55580
55593
|
const groups = useMemo(() => groupAgentColumns(agents), [agents]);
|
|
55594
|
+
const boxRef = useRef(null);
|
|
55595
|
+
const stepColRem = single ? STEP_COL_SINGLE_REM : STEP_COL_REM;
|
|
55596
|
+
const gridTemplate = `${stepColRem}rem repeat(${agents.length}, 13rem)`;
|
|
55597
|
+
const cols = agents.length + 1;
|
|
55598
|
+
const [stickySteps, setStickySteps] = useState(true);
|
|
55599
|
+
useLayoutEffect(() => {
|
|
55600
|
+
const box = boxRef.current;
|
|
55601
|
+
if (!box || reserveRightPx <= 0) {
|
|
55602
|
+
setStickySteps(true);
|
|
55603
|
+
return;
|
|
55604
|
+
}
|
|
55605
|
+
const measure = () => {
|
|
55606
|
+
const left = box.getBoundingClientRect().left;
|
|
55607
|
+
setStickySteps(window.innerWidth - reserveRightPx - left >= stepColRem * 16 + 208 + 24);
|
|
55608
|
+
};
|
|
55609
|
+
measure();
|
|
55610
|
+
window.addEventListener("resize", measure);
|
|
55611
|
+
return () => window.removeEventListener("resize", measure);
|
|
55612
|
+
}, [reserveRightPx, stepColRem]);
|
|
55613
|
+
const selectedPos = useMemo(() => {
|
|
55614
|
+
if (selectedCell === null) return null;
|
|
55615
|
+
const r = rows.findIndex((row) => row.node.addonId === selectedCell.addonId);
|
|
55616
|
+
if (r < 0) return null;
|
|
55617
|
+
const c = agents.findIndex((a) => agentColumnKey(a) === agentColumnKey(selectedCell));
|
|
55618
|
+
return {
|
|
55619
|
+
r,
|
|
55620
|
+
c: c < 0 ? 0 : c + 1
|
|
55621
|
+
};
|
|
55622
|
+
}, [
|
|
55623
|
+
selectedCell,
|
|
55624
|
+
rows,
|
|
55625
|
+
agents
|
|
55626
|
+
]);
|
|
55627
|
+
const [focusPos, setFocusPos] = useState({
|
|
55628
|
+
r: 0,
|
|
55629
|
+
c: 0
|
|
55630
|
+
});
|
|
55631
|
+
useEffect(() => {
|
|
55632
|
+
if (selectedPos !== null) setFocusPos(selectedPos);
|
|
55633
|
+
}, [selectedPos]);
|
|
55634
|
+
const tab = focusPos.r < rows.length && focusPos.c < cols ? focusPos : {
|
|
55635
|
+
r: 0,
|
|
55636
|
+
c: 0
|
|
55637
|
+
};
|
|
55638
|
+
const focusAt = (r, c) => {
|
|
55639
|
+
boxRef.current?.querySelector(`[data-r="${r}"][data-c="${c}"]`)?.focus();
|
|
55640
|
+
};
|
|
55641
|
+
useImperativeHandle(ref, () => ({ focusCell: (addonId, columnKey) => {
|
|
55642
|
+
const r = rows.findIndex((row) => row.node.addonId === addonId);
|
|
55643
|
+
if (r < 0) return;
|
|
55644
|
+
const index = columnKey === null ? -1 : agents.findIndex((a) => agentColumnKey(a) === columnKey);
|
|
55645
|
+
const c = index < 0 ? 0 : index + 1;
|
|
55646
|
+
setFocusPos({
|
|
55647
|
+
r,
|
|
55648
|
+
c
|
|
55649
|
+
});
|
|
55650
|
+
focusAt(r, c);
|
|
55651
|
+
} }), [rows, agents]);
|
|
55652
|
+
useLayoutEffect(() => {
|
|
55653
|
+
if (selectedPos === null) return;
|
|
55654
|
+
const box = boxRef.current;
|
|
55655
|
+
const el = box?.querySelector(`[data-r="${selectedPos.r}"][data-c="${selectedPos.c}"]`);
|
|
55656
|
+
if (!box || !el) return;
|
|
55657
|
+
if (typeof el.scrollIntoView === "function") el.scrollIntoView({
|
|
55658
|
+
block: "nearest",
|
|
55659
|
+
inline: "nearest"
|
|
55660
|
+
});
|
|
55661
|
+
if (reserveRightPx <= 0) return;
|
|
55662
|
+
const limit = window.innerWidth - reserveRightPx - 12;
|
|
55663
|
+
const right = el.getBoundingClientRect().right;
|
|
55664
|
+
if (right > limit) box.scrollLeft += right - limit;
|
|
55665
|
+
}, [
|
|
55666
|
+
selectedPos,
|
|
55667
|
+
reserveRightPx,
|
|
55668
|
+
stickySteps
|
|
55669
|
+
]);
|
|
55670
|
+
const onKeyDown = (e) => {
|
|
55671
|
+
if (!(e.target instanceof HTMLElement) || e.target.dataset.r === void 0) return;
|
|
55672
|
+
const pos = {
|
|
55673
|
+
r: Number(e.target.dataset.r),
|
|
55674
|
+
c: Number(e.target.dataset.c)
|
|
55675
|
+
};
|
|
55676
|
+
const next = nextGridPosition(e.key, pos, rows.length, cols);
|
|
55677
|
+
if (next === null) return;
|
|
55678
|
+
e.preventDefault();
|
|
55679
|
+
setFocusPos(next);
|
|
55680
|
+
focusAt(next.r, next.c);
|
|
55681
|
+
};
|
|
55581
55682
|
return /* @__PURE__ */ jsx("div", {
|
|
55683
|
+
ref: boxRef,
|
|
55582
55684
|
className: "overflow-auto rounded border border-border",
|
|
55583
55685
|
children: /* @__PURE__ */ jsxs("div", {
|
|
55584
|
-
className: "
|
|
55585
|
-
|
|
55586
|
-
|
|
55587
|
-
|
|
55588
|
-
|
|
55589
|
-
|
|
55590
|
-
}
|
|
55591
|
-
|
|
55592
|
-
|
|
55686
|
+
className: "flex w-max",
|
|
55687
|
+
children: [/* @__PURE__ */ jsxs("div", {
|
|
55688
|
+
role: "grid",
|
|
55689
|
+
"aria-label": label,
|
|
55690
|
+
"aria-rowcount": rows.length + 1,
|
|
55691
|
+
className: "grid w-max",
|
|
55692
|
+
style: { gridTemplateColumns: gridTemplate },
|
|
55693
|
+
onKeyDown,
|
|
55694
|
+
children: [/* @__PURE__ */ jsxs("div", {
|
|
55695
|
+
role: "row",
|
|
55696
|
+
className: "contents",
|
|
55593
55697
|
children: [/* @__PURE__ */ jsx("div", {
|
|
55594
|
-
|
|
55595
|
-
|
|
55596
|
-
|
|
55597
|
-
|
|
55598
|
-
|
|
55698
|
+
role: "columnheader",
|
|
55699
|
+
className: cn("top-0 z-20 border-b border-border bg-muted/60 px-3 py-2 text-[10px] uppercase tracking-widest text-foreground-subtle", stickySteps ? "sticky left-0" : "sticky"),
|
|
55700
|
+
children: "Step"
|
|
55701
|
+
}), groups.map((group) => group.grouped ? /* @__PURE__ */ jsx(GroupedAgentHeader, { group }, group.agentNodeId) : group.columns.map((col) => /* @__PURE__ */ jsxs("div", {
|
|
55702
|
+
role: "columnheader",
|
|
55703
|
+
className: cn("sticky top-0 z-10 min-w-0 border-b border-l border-border bg-muted/60 px-3 py-2", col.disabled === true && "opacity-70"),
|
|
55704
|
+
children: [/* @__PURE__ */ jsx("div", {
|
|
55705
|
+
className: "truncate text-xs font-semibold text-foreground",
|
|
55706
|
+
children: col.nodeLabel ?? col.agentNodeId
|
|
55707
|
+
}), /* @__PURE__ */ jsx(AgentColumnLines, { column: col })]
|
|
55708
|
+
}, agentColumnKey(col))))]
|
|
55709
|
+
}), rows.map(({ node, depth }, r) => /* @__PURE__ */ jsxs("div", {
|
|
55710
|
+
role: "row",
|
|
55711
|
+
className: "contents",
|
|
55712
|
+
children: [/* @__PURE__ */ jsx(StepCell, {
|
|
55713
|
+
node,
|
|
55714
|
+
depth,
|
|
55715
|
+
r,
|
|
55716
|
+
tabbable: tab.r === r && tab.c === 0,
|
|
55717
|
+
selected: selectedCell?.addonId === node.addonId,
|
|
55718
|
+
badge: stepBadge?.(node.addonId),
|
|
55719
|
+
onClick: onStepClick ? (kb) => onStepClick(node.addonId, kb) : void 0,
|
|
55720
|
+
sticky: stickySteps
|
|
55721
|
+
}), agents.map((a, i) => {
|
|
55722
|
+
const state = getCellState(node.addonId, a);
|
|
55723
|
+
const isSelected = selectedCell !== null && selectedCell.addonId === node.addonId && agentColumnKey(selectedCell) === agentColumnKey(a);
|
|
55724
|
+
const actionable = state.kind === "enabled" || state.kind === "skip";
|
|
55725
|
+
return /* @__PURE__ */ jsx("div", {
|
|
55726
|
+
role: "gridcell",
|
|
55727
|
+
className: "min-w-0 border-b border-l border-border",
|
|
55728
|
+
children: /* @__PURE__ */ jsx("button", {
|
|
55729
|
+
type: "button",
|
|
55730
|
+
"data-r": r,
|
|
55731
|
+
"data-c": i + 1,
|
|
55732
|
+
"data-step": node.addonId,
|
|
55733
|
+
"data-col": agentColumnKey(a),
|
|
55734
|
+
tabIndex: tab.r === r && tab.c === i + 1 ? 0 : -1,
|
|
55735
|
+
"aria-disabled": !actionable,
|
|
55736
|
+
"aria-selected": isSelected,
|
|
55737
|
+
onClick: (e) => {
|
|
55738
|
+
if (actionable) onCellClick(node.addonId, a, e.detail === 0);
|
|
55739
|
+
},
|
|
55740
|
+
className: cellButtonClass(state, isSelected, cn("h-full w-full min-w-0 overflow-hidden px-3 py-2 outline-none", "focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-primary", !actionable && "cursor-default hover:bg-transparent", a.disabled === true && "opacity-70")),
|
|
55741
|
+
children: renderCellContent(state)
|
|
55742
|
+
})
|
|
55743
|
+
}, agentColumnKey(a));
|
|
55599
55744
|
})]
|
|
55600
|
-
},
|
|
55601
|
-
|
|
55602
|
-
|
|
55603
|
-
|
|
55604
|
-
|
|
55605
|
-
|
|
55606
|
-
onCellClick,
|
|
55607
|
-
selectedCell
|
|
55608
|
-
}, node.addonId))
|
|
55609
|
-
]
|
|
55745
|
+
}, node.addonId))]
|
|
55746
|
+
}), reserveRightPx > 0 && /* @__PURE__ */ jsx("div", {
|
|
55747
|
+
"aria-hidden": true,
|
|
55748
|
+
style: { width: reserveRightPx },
|
|
55749
|
+
className: "shrink-0"
|
|
55750
|
+
})]
|
|
55610
55751
|
})
|
|
55611
55752
|
});
|
|
55612
|
-
}
|
|
55613
|
-
function
|
|
55614
|
-
return /* @__PURE__ */ jsxs(Fragment$1, { children: [/* @__PURE__ */ jsx(StepCell, {
|
|
55615
|
-
node,
|
|
55616
|
-
depth
|
|
55617
|
-
}), agents.map((a) => {
|
|
55618
|
-
const state = getCellState(node.addonId, a);
|
|
55619
|
-
const isSelected = selectedCell !== null && selectedCell.addonId === node.addonId && agentColumnKey(selectedCell) === agentColumnKey(a);
|
|
55620
|
-
const actionable = state.kind === "enabled" || state.kind === "skip";
|
|
55621
|
-
return /* @__PURE__ */ jsx("button", {
|
|
55622
|
-
type: "button",
|
|
55623
|
-
disabled: !actionable,
|
|
55624
|
-
onClick: () => onCellClick(node.addonId, a),
|
|
55625
|
-
className: cellButtonClass(state, isSelected, cn("min-w-0 overflow-hidden border-b border-l border-border px-3 py-2", !actionable && "cursor-default hover:bg-transparent")),
|
|
55626
|
-
children: renderCellContent(state)
|
|
55627
|
-
}, agentColumnKey(a));
|
|
55628
|
-
})] });
|
|
55629
|
-
}
|
|
55630
|
-
function DeviceStepMatrix({ tree, agents, getCellState, onCellClick, selectedCell, fallbackNodeId, onFallbackNodeChange }) {
|
|
55753
|
+
});
|
|
55754
|
+
var DeviceStepMatrix = forwardRef(function DeviceStepMatrix({ tree, agents, getCellState, onCellClick, selectedCell, fallbackNodeId, onFallbackNodeChange, onStepClick, stepBadge, reserveRightPx = 0, label = "Detection steps" }, ref) {
|
|
55631
55755
|
const containerRef = useRef(null);
|
|
55632
55756
|
const [width, setWidth] = useState(0);
|
|
55633
55757
|
useLayoutEffect(() => {
|
|
@@ -55645,6 +55769,15 @@ function DeviceStepMatrix({ tree, agents, getCellState, onCellClick, selectedCel
|
|
|
55645
55769
|
if (nodes.length === 0) return null;
|
|
55646
55770
|
return nodes.find((n) => n.agentNodeId === fallbackNodeId) ?? nodes[0] ?? null;
|
|
55647
55771
|
}, [nodes, fallbackNodeId]);
|
|
55772
|
+
const selectedNodeId = selectedCell?.agentNodeId;
|
|
55773
|
+
useEffect(() => {
|
|
55774
|
+
if (single && selectedNodeId !== void 0 && selectedNodeId !== fallbackNodeId) onFallbackNodeChange(selectedNodeId);
|
|
55775
|
+
}, [
|
|
55776
|
+
single,
|
|
55777
|
+
selectedNodeId,
|
|
55778
|
+
fallbackNodeId,
|
|
55779
|
+
onFallbackNodeChange
|
|
55780
|
+
]);
|
|
55648
55781
|
const shownAgents = single && selectedNode ? selectedNode.columns : agents;
|
|
55649
55782
|
return /* @__PURE__ */ jsxs("div", {
|
|
55650
55783
|
ref: containerRef,
|
|
@@ -55654,15 +55787,20 @@ function DeviceStepMatrix({ tree, agents, getCellState, onCellClick, selectedCel
|
|
|
55654
55787
|
selected: selectedNode.agentNodeId,
|
|
55655
55788
|
onSelect: onFallbackNodeChange
|
|
55656
55789
|
}), /* @__PURE__ */ jsx(MatrixGrid, {
|
|
55790
|
+
ref,
|
|
55657
55791
|
tree,
|
|
55658
55792
|
agents: shownAgents,
|
|
55659
55793
|
getCellState,
|
|
55660
55794
|
onCellClick,
|
|
55795
|
+
onStepClick,
|
|
55796
|
+
stepBadge,
|
|
55661
55797
|
selectedCell,
|
|
55662
|
-
single: single && selectedNode !== null
|
|
55798
|
+
single: single && selectedNode !== null,
|
|
55799
|
+
reserveRightPx,
|
|
55800
|
+
label
|
|
55663
55801
|
})]
|
|
55664
55802
|
});
|
|
55665
|
-
}
|
|
55803
|
+
});
|
|
55666
55804
|
//#endregion
|
|
55667
55805
|
//#region src/composites/discovery-panel.tsx
|
|
55668
55806
|
function DiscoveryPanel({ deviceId, className = "", onOpenChild }) {
|
|
@@ -56601,43 +56739,13 @@ function PhaseIcon({ phase, ...props }) {
|
|
|
56601
56739
|
return /* @__PURE__ */ jsx(Icon, { ...props });
|
|
56602
56740
|
}
|
|
56603
56741
|
//#endregion
|
|
56604
|
-
//#region src/lib/validate-template.ts
|
|
56605
|
-
function validateTemplate(steps, schema) {
|
|
56606
|
-
const availableAddonIds = new Set(schema.slots.flatMap((s) => s.addons.map((a) => a.id)));
|
|
56607
|
-
const warnings = [];
|
|
56608
|
-
function validateStep(step) {
|
|
56609
|
-
if (!availableAddonIds.has(step.addonId)) {
|
|
56610
|
-
warnings.push(`Addon "${step.addonId}" is no longer available — step removed`);
|
|
56611
|
-
return null;
|
|
56612
|
-
}
|
|
56613
|
-
const addon = schema.slots.flatMap((s) => s.addons).find((a) => a.id === step.addonId);
|
|
56614
|
-
let modelId = step.modelId;
|
|
56615
|
-
if (addon && !addon.models.some((m) => m.id === modelId)) {
|
|
56616
|
-
const fallback = addon.defaultModelId;
|
|
56617
|
-
warnings.push(`Model "${modelId}" not available for ${step.addonId} — using "${fallback}"`);
|
|
56618
|
-
modelId = fallback;
|
|
56619
|
-
}
|
|
56620
|
-
const validChildren = step.children.map((c) => validateStep(c)).filter((c) => c !== null);
|
|
56621
|
-
return {
|
|
56622
|
-
...step,
|
|
56623
|
-
modelId,
|
|
56624
|
-
children: validChildren
|
|
56625
|
-
};
|
|
56626
|
-
}
|
|
56627
|
-
const validSteps = steps.map((s) => validateStep(s)).filter((s) => s !== null);
|
|
56628
|
-
return {
|
|
56629
|
-
valid: warnings.length === 0,
|
|
56630
|
-
steps: validSteps,
|
|
56631
|
-
warnings
|
|
56632
|
-
};
|
|
56633
|
-
}
|
|
56634
|
-
//#endregion
|
|
56635
56742
|
//#region src/composites/pipeline-builder.tsx
|
|
56636
56743
|
/**
|
|
56637
|
-
* PipelineBuilder — orchestrates the pipeline step tree
|
|
56744
|
+
* PipelineBuilder — orchestrates the pipeline step tree.
|
|
56638
56745
|
*
|
|
56639
|
-
* Renders
|
|
56640
|
-
*
|
|
56746
|
+
* Renders the step tree from schema with nested children and placeholder steps
|
|
56747
|
+
* for disabled addons, all driven by API schema. There are no saved pipeline
|
|
56748
|
+
* templates (D759): the tree is the caller's state.
|
|
56641
56749
|
*/
|
|
56642
56750
|
function buildSchemaMap(schema) {
|
|
56643
56751
|
const map = /* @__PURE__ */ new Map();
|
|
@@ -56689,31 +56797,9 @@ function PlaceholderStep({ addon, onClick }) {
|
|
|
56689
56797
|
})
|
|
56690
56798
|
});
|
|
56691
56799
|
}
|
|
56692
|
-
function PipelineBuilder({ schema, steps, onChange,
|
|
56800
|
+
function PipelineBuilder({ schema, steps, onChange, readOnly = false, excludeAddons = [], showOnlyEnabled = false, showSlotLabels = false }) {
|
|
56693
56801
|
const excluded = useMemo(() => new Set(excludeAddons), [excludeAddons]);
|
|
56694
56802
|
const schemaMap = useMemo(() => buildSchemaMap(schema), [schema]);
|
|
56695
|
-
const [warnings, setWarnings] = useState([]);
|
|
56696
|
-
const dirty = selectedTemplateId ? JSON.stringify(steps) !== JSON.stringify(templates.find((t) => t.id === selectedTemplateId)?.steps) : false;
|
|
56697
|
-
function handleSelectTemplate(e) {
|
|
56698
|
-
const id = e.target.value || null;
|
|
56699
|
-
if (id) {
|
|
56700
|
-
const tpl = templates.find((t) => t.id === id);
|
|
56701
|
-
if (tpl) setWarnings([...validateTemplate(tpl.steps, schema).warnings]);
|
|
56702
|
-
} else setWarnings([]);
|
|
56703
|
-
onSelectTemplate(id);
|
|
56704
|
-
}
|
|
56705
|
-
function handleSave() {
|
|
56706
|
-
if (selectedTemplateId) onUpdateTemplate(selectedTemplateId, steps);
|
|
56707
|
-
}
|
|
56708
|
-
function handleSaveAs() {
|
|
56709
|
-
const name = window.prompt("Template name:");
|
|
56710
|
-
if (name?.trim()) onSaveTemplate(name.trim(), steps);
|
|
56711
|
-
}
|
|
56712
|
-
function handleDelete() {
|
|
56713
|
-
if (!selectedTemplateId) return;
|
|
56714
|
-
const tpl = templates.find((t) => t.id === selectedTemplateId);
|
|
56715
|
-
if (tpl && window.confirm(`Delete template "${tpl.name}"?`)) onDeleteTemplate(selectedTemplateId);
|
|
56716
|
-
}
|
|
56717
56803
|
/**
|
|
56718
56804
|
* When a step is updated, auto-enable the entire ancestor chain if a
|
|
56719
56805
|
* child/grandchild was just enabled. This ensures enabling face-recognition
|
|
@@ -56883,104 +56969,42 @@ function PipelineBuilder({ schema, steps, onChange, templates, selectedTemplateI
|
|
|
56883
56969
|
})]
|
|
56884
56970
|
}, step.addonId);
|
|
56885
56971
|
}
|
|
56886
|
-
|
|
56887
|
-
return /* @__PURE__ */ jsxs("div", {
|
|
56972
|
+
return /* @__PURE__ */ jsx("div", {
|
|
56888
56973
|
className: "space-y-4",
|
|
56889
|
-
children:
|
|
56890
|
-
|
|
56891
|
-
|
|
56892
|
-
|
|
56893
|
-
|
|
56894
|
-
|
|
56895
|
-
|
|
56896
|
-
|
|
56897
|
-
|
|
56898
|
-
|
|
56899
|
-
|
|
56900
|
-
|
|
56901
|
-
|
|
56902
|
-
|
|
56903
|
-
|
|
56904
|
-
|
|
56905
|
-
|
|
56906
|
-
|
|
56907
|
-
|
|
56908
|
-
|
|
56909
|
-
|
|
56910
|
-
|
|
56911
|
-
|
|
56912
|
-
|
|
56913
|
-
|
|
56914
|
-
|
|
56915
|
-
|
|
56916
|
-
|
|
56917
|
-
|
|
56918
|
-
|
|
56919
|
-
|
|
56920
|
-
|
|
56921
|
-
|
|
56922
|
-
|
|
56923
|
-
children: /* @__PURE__ */ jsx(CopyPlus, { className: "h-4 w-4" })
|
|
56924
|
-
}),
|
|
56925
|
-
/* @__PURE__ */ jsx("button", {
|
|
56926
|
-
onClick: handleDelete,
|
|
56927
|
-
disabled: !selectedTemplateId || readOnly,
|
|
56928
|
-
title: "Delete",
|
|
56929
|
-
className: cn("p-2 rounded-lg border border-border transition-colors", selectedTemplateId && !readOnly ? "text-foreground-subtle hover:text-danger" : "text-foreground-subtle/30 cursor-not-allowed"),
|
|
56930
|
-
children: /* @__PURE__ */ jsx(Trash2, { className: "h-4 w-4" })
|
|
56931
|
-
})
|
|
56932
|
-
]
|
|
56933
|
-
})
|
|
56934
|
-
}),
|
|
56935
|
-
warnings.length > 0 && /* @__PURE__ */ jsxs("div", {
|
|
56936
|
-
className: "rounded-lg border border-amber-500/30 bg-amber-500/5 p-3 text-xs text-amber-400 space-y-1",
|
|
56937
|
-
children: [/* @__PURE__ */ jsxs("div", {
|
|
56938
|
-
className: "flex items-center justify-between",
|
|
56939
|
-
children: [/* @__PURE__ */ jsx("span", {
|
|
56940
|
-
className: "font-medium",
|
|
56941
|
-
children: "Template loaded with warnings:"
|
|
56942
|
-
}), /* @__PURE__ */ jsx("button", {
|
|
56943
|
-
onClick: () => setWarnings([]),
|
|
56944
|
-
className: "text-amber-400/60 hover:text-amber-400",
|
|
56945
|
-
children: /* @__PURE__ */ jsx(X, { className: "h-3.5 w-3.5" })
|
|
56946
|
-
})]
|
|
56947
|
-
}), warnings.map((w, i) => /* @__PURE__ */ jsxs("div", { children: ["• ", w] }, i))]
|
|
56948
|
-
}),
|
|
56949
|
-
rootSlots.map((slot) => {
|
|
56950
|
-
const allSlotSteps = steps.filter((s) => s.slot === slot.id && !excluded.has(s.addonId));
|
|
56951
|
-
const slotSteps = showOnlyEnabled ? allSlotSteps.filter((s) => s.enabled) : allSlotSteps;
|
|
56952
|
-
const missingRootAddons = showOnlyEnabled ? [] : slot.addons.filter((a) => !existingIds.has(a.id) && !excluded.has(a.id));
|
|
56953
|
-
const groups = /* @__PURE__ */ new Map();
|
|
56954
|
-
const ungrouped = [];
|
|
56955
|
-
for (const step of slotSteps) if (step.group) {
|
|
56956
|
-
if (!groups.has(step.group)) groups.set(step.group, []);
|
|
56957
|
-
groups.get(step.group).push(step);
|
|
56958
|
-
} else ungrouped.push(step);
|
|
56959
|
-
return /* @__PURE__ */ jsxs("div", {
|
|
56960
|
-
className: "space-y-2",
|
|
56961
|
-
children: [
|
|
56962
|
-
showSlotLabels && /* @__PURE__ */ jsxs("span", {
|
|
56963
|
-
className: "text-[10px] font-semibold uppercase tracking-widest text-foreground-subtle/50",
|
|
56964
|
-
children: ["Slot: ", slot.label]
|
|
56965
|
-
}),
|
|
56966
|
-
ungrouped.map((step) => renderStep(step)),
|
|
56967
|
-
[...groups.entries()].map(([groupName, groupSteps]) => /* @__PURE__ */ jsxs("div", {
|
|
56968
|
-
className: "space-y-2 rounded-lg border border-border/40 p-2",
|
|
56969
|
-
children: [/* @__PURE__ */ jsx("span", {
|
|
56970
|
-
className: "text-[10px] font-semibold uppercase tracking-widest text-foreground-subtle/50 px-1",
|
|
56971
|
-
children: groupName
|
|
56972
|
-
}), groupSteps.map((step) => renderStep(step))]
|
|
56973
|
-
}, groupName)),
|
|
56974
|
-
!readOnly && missingRootAddons.map((addon) => /* @__PURE__ */ jsx(PlaceholderStep, {
|
|
56975
|
-
addon,
|
|
56976
|
-
onClick: () => {
|
|
56977
|
-
onChange([...steps, createDefaultStep(addon)]);
|
|
56978
|
-
}
|
|
56979
|
-
}, addon.id))
|
|
56980
|
-
]
|
|
56981
|
-
}, slot.id);
|
|
56982
|
-
})
|
|
56983
|
-
]
|
|
56974
|
+
children: schema.slots.filter((s) => s.parentSlot === null).toSorted((a, b) => a.priority - b.priority).map((slot) => {
|
|
56975
|
+
const allSlotSteps = steps.filter((s) => s.slot === slot.id && !excluded.has(s.addonId));
|
|
56976
|
+
const slotSteps = showOnlyEnabled ? allSlotSteps.filter((s) => s.enabled) : allSlotSteps;
|
|
56977
|
+
const missingRootAddons = showOnlyEnabled ? [] : slot.addons.filter((a) => !existingIds.has(a.id) && !excluded.has(a.id));
|
|
56978
|
+
const groups = /* @__PURE__ */ new Map();
|
|
56979
|
+
const ungrouped = [];
|
|
56980
|
+
for (const step of slotSteps) if (step.group) {
|
|
56981
|
+
if (!groups.has(step.group)) groups.set(step.group, []);
|
|
56982
|
+
groups.get(step.group).push(step);
|
|
56983
|
+
} else ungrouped.push(step);
|
|
56984
|
+
return /* @__PURE__ */ jsxs("div", {
|
|
56985
|
+
className: "space-y-2",
|
|
56986
|
+
children: [
|
|
56987
|
+
showSlotLabels && /* @__PURE__ */ jsxs("span", {
|
|
56988
|
+
className: "text-[10px] font-semibold uppercase tracking-widest text-foreground-subtle/50",
|
|
56989
|
+
children: ["Slot: ", slot.label]
|
|
56990
|
+
}),
|
|
56991
|
+
ungrouped.map((step) => renderStep(step)),
|
|
56992
|
+
[...groups.entries()].map(([groupName, groupSteps]) => /* @__PURE__ */ jsxs("div", {
|
|
56993
|
+
className: "space-y-2 rounded-lg border border-border/40 p-2",
|
|
56994
|
+
children: [/* @__PURE__ */ jsx("span", {
|
|
56995
|
+
className: "text-[10px] font-semibold uppercase tracking-widest text-foreground-subtle/50 px-1",
|
|
56996
|
+
children: groupName
|
|
56997
|
+
}), groupSteps.map((step) => renderStep(step))]
|
|
56998
|
+
}, groupName)),
|
|
56999
|
+
!readOnly && missingRootAddons.map((addon) => /* @__PURE__ */ jsx(PlaceholderStep, {
|
|
57000
|
+
addon,
|
|
57001
|
+
onClick: () => {
|
|
57002
|
+
onChange([...steps, createDefaultStep(addon)]);
|
|
57003
|
+
}
|
|
57004
|
+
}, addon.id))
|
|
57005
|
+
]
|
|
57006
|
+
}, slot.id);
|
|
57007
|
+
})
|
|
56984
57008
|
});
|
|
56985
57009
|
}
|
|
56986
57010
|
//#endregion
|
|
@@ -57644,39 +57668,6 @@ function StepTimings({ timings, totalMs, className }) {
|
|
|
57644
57668
|
});
|
|
57645
57669
|
}
|
|
57646
57670
|
//#endregion
|
|
57647
|
-
//#region src/composites/step-inspector/accelerator-tabs.tsx
|
|
57648
|
-
function AcceleratorTabs({ items, selectedId, onSelect }) {
|
|
57649
|
-
const onKeyDown = (e, index) => {
|
|
57650
|
-
const delta = e.key === "ArrowRight" ? 1 : e.key === "ArrowLeft" ? -1 : 0;
|
|
57651
|
-
if (delta === 0) return;
|
|
57652
|
-
e.preventDefault();
|
|
57653
|
-
const next = items[(index + delta + items.length) % items.length];
|
|
57654
|
-
if (next !== void 0) onSelect(next.id);
|
|
57655
|
-
};
|
|
57656
|
-
return /* @__PURE__ */ jsx("div", {
|
|
57657
|
-
role: "tablist",
|
|
57658
|
-
"aria-label": "Accelerator",
|
|
57659
|
-
className: "-mx-1 flex min-w-0 flex-nowrap gap-1 overflow-x-auto px-1 pb-0.5",
|
|
57660
|
-
children: items.map((item, index) => {
|
|
57661
|
-
const selected = item.id === selectedId;
|
|
57662
|
-
return /* @__PURE__ */ jsxs("button", {
|
|
57663
|
-
type: "button",
|
|
57664
|
-
role: "tab",
|
|
57665
|
-
"aria-selected": selected,
|
|
57666
|
-
"aria-label": item.marked ? `${item.label} (camera override)` : item.label,
|
|
57667
|
-
tabIndex: selected ? 0 : -1,
|
|
57668
|
-
onClick: () => onSelect(item.id),
|
|
57669
|
-
onKeyDown: (e) => onKeyDown(e, index),
|
|
57670
|
-
className: cn("inline-flex h-9 shrink-0 items-center gap-1 whitespace-nowrap rounded-md border px-2.5 text-[11px] font-medium transition-colors md:h-7", selected ? "border-primary/50 bg-primary/15 text-primary" : "border-border text-foreground-subtle hover:bg-surface-hover hover:text-foreground"),
|
|
57671
|
-
children: [item.label, item.marked && /* @__PURE__ */ jsx("span", {
|
|
57672
|
-
className: "h-1.5 w-1.5 rounded-full bg-amber-500",
|
|
57673
|
-
"aria-hidden": true
|
|
57674
|
-
})]
|
|
57675
|
-
}, item.id);
|
|
57676
|
-
})
|
|
57677
|
-
});
|
|
57678
|
-
}
|
|
57679
|
-
//#endregion
|
|
57680
57671
|
//#region src/composites/step-inspector/gate-control.tsx
|
|
57681
57672
|
/**
|
|
57682
57673
|
* GateControl — whether ONE camera runs a step: Auto (the catalog default) /
|
|
@@ -57769,166 +57760,104 @@ function SegmentedChoice({ label, options, value, onChange }) {
|
|
|
57769
57760
|
});
|
|
57770
57761
|
}
|
|
57771
57762
|
//#endregion
|
|
57772
|
-
//#region src/composites/step-inspector/step-
|
|
57773
|
-
function chipText(state) {
|
|
57774
|
-
switch (state.kind) {
|
|
57775
|
-
case "enabled":
|
|
57776
|
-
if (state.suppliedByRoot !== void 0) return "root";
|
|
57777
|
-
return state.jumpTo !== void 0 ? `→ ${state.jumpTo}` : state.modelId;
|
|
57778
|
-
case "skip": return state.jumpTo !== void 0 ? `→ ${state.jumpTo}` : "skip";
|
|
57779
|
-
case "disabled": return "off";
|
|
57780
|
-
case "na": return "—";
|
|
57781
|
-
}
|
|
57782
|
-
}
|
|
57783
|
-
/** What a chip MEANS — the full model id, not its shortened text. */
|
|
57784
|
-
function chipKey(state) {
|
|
57785
|
-
return state.kind === "enabled" ? `${state.modelId}|${chipText(state)}` : chipText(state);
|
|
57786
|
-
}
|
|
57787
|
-
function chipTone(state, selected) {
|
|
57788
|
-
if (selected) return "border-primary/60 text-primary";
|
|
57789
|
-
if (state.kind === "skip" && state.jumpTo === void 0) return "border-amber-500/40 text-amber-500";
|
|
57790
|
-
if (state.kind === "na" || state.kind === "disabled") return "border-border/60 text-foreground-subtle/70";
|
|
57791
|
-
return "border-border text-foreground-subtle";
|
|
57792
|
-
}
|
|
57793
|
-
function StepChips({ chips, selectedId }) {
|
|
57794
|
-
const first = chips[0];
|
|
57795
|
-
if (first !== void 0 && chips.length > 1 && chips.every((c) => chipKey(c.state) === chipKey(first.state) && !(c.state.kind === "enabled" && c.state.overridden === true) && chipTone(c.state, c.id === selectedId) === chipTone(first.state, first.id === selectedId)) && first !== void 0) {
|
|
57796
|
-
const text = chipText(first.state);
|
|
57797
|
-
return /* @__PURE__ */ jsx("span", {
|
|
57798
|
-
className: "flex flex-wrap gap-1",
|
|
57799
|
-
children: /* @__PURE__ */ jsxs("span", {
|
|
57800
|
-
title: `${text} on ${chips.map((c) => c.label).join(", ")}`,
|
|
57801
|
-
className: cn("inline-flex max-w-[12rem] items-center gap-1 truncate rounded border px-1 font-mono text-[9px] leading-4", chipTone(first.state, first.id === selectedId)),
|
|
57802
|
-
children: [/* @__PURE__ */ jsx("span", {
|
|
57803
|
-
className: "truncate",
|
|
57804
|
-
children: text
|
|
57805
|
-
}), /* @__PURE__ */ jsxs("span", {
|
|
57806
|
-
className: "shrink-0 font-sans text-foreground-subtle/80",
|
|
57807
|
-
children: ["×", chips.length]
|
|
57808
|
-
})]
|
|
57809
|
-
})
|
|
57810
|
-
});
|
|
57811
|
-
}
|
|
57812
|
-
return /* @__PURE__ */ jsx("span", {
|
|
57813
|
-
className: "flex flex-wrap gap-1",
|
|
57814
|
-
children: chips.map((chip) => {
|
|
57815
|
-
const overridden = chip.state.kind === "enabled" && chip.state.overridden === true;
|
|
57816
|
-
const text = chipText(chip.state);
|
|
57817
|
-
return /* @__PURE__ */ jsxs("span", {
|
|
57818
|
-
title: `${chip.label}: ${chip.state.kind === "enabled" ? chip.state.modelId : text}${overridden ? " (camera override)" : ""}`,
|
|
57819
|
-
className: cn("inline-flex max-w-[9rem] items-center gap-0.5 truncate rounded border px-1 font-mono text-[9px] leading-4", chipTone(chip.state, chip.id === selectedId)),
|
|
57820
|
-
children: [/* @__PURE__ */ jsx("span", {
|
|
57821
|
-
className: "truncate",
|
|
57822
|
-
children: text
|
|
57823
|
-
}), overridden && /* @__PURE__ */ jsx("span", {
|
|
57824
|
-
className: "text-amber-500",
|
|
57825
|
-
"aria-hidden": true,
|
|
57826
|
-
children: "•"
|
|
57827
|
-
})]
|
|
57828
|
-
}, chip.id);
|
|
57829
|
-
})
|
|
57830
|
-
});
|
|
57831
|
-
}
|
|
57832
|
-
//#endregion
|
|
57833
|
-
//#region src/composites/step-inspector/step-inspector-layout.tsx
|
|
57763
|
+
//#region src/composites/step-inspector/step-detail-dock.tsx
|
|
57834
57764
|
/**
|
|
57835
|
-
*
|
|
57765
|
+
* StepDetailDock — where a step's settings open from the step matrix
|
|
57766
|
+
* (D757): docked to the page's scroll container, never inside the scrolling
|
|
57767
|
+
* content.
|
|
57836
57768
|
*
|
|
57837
|
-
* Desktop:
|
|
57838
|
-
*
|
|
57839
|
-
*
|
|
57840
|
-
* save bar are always on screen
|
|
57841
|
-
*
|
|
57842
|
-
* matrix
|
|
57843
|
-
*
|
|
57844
|
-
*
|
|
57769
|
+
* Desktop: a side panel `position: fixed` over the RIGHT edge of the nearest
|
|
57770
|
+
* scroll container (its top, bottom and right are measured from that box), so
|
|
57771
|
+
* it stays where it is while the matrix scrolls under it, and its header and
|
|
57772
|
+
* save bar are always on screen. It overlays — it never reserves width, so the
|
|
57773
|
+
* matrix does not reflow (the slide-over before D756 reserved 360 px, the
|
|
57774
|
+
* matrix re-measured into a single-node layout, and the clicked cell slid
|
|
57775
|
+
* under the panel). The matrix uses {@link STEP_DOCK_WIDTH_PX} to scroll the
|
|
57776
|
+
* selected column clear of it.
|
|
57845
57777
|
*
|
|
57846
|
-
* Phone:
|
|
57847
|
-
* sheet with "‹ Steps" to go back.
|
|
57778
|
+
* Phone: a full-screen `Dialog` sheet.
|
|
57848
57779
|
*/
|
|
57849
|
-
/**
|
|
57850
|
-
|
|
57851
|
-
|
|
57852
|
-
|
|
57780
|
+
/** Width of the desktop dock — what the matrix keeps clear of it. */
|
|
57781
|
+
var STEP_DOCK_WIDTH_PX = 432;
|
|
57782
|
+
/** The dock's viewport box, from its scroll container's box. */
|
|
57783
|
+
function dockBox(input) {
|
|
57784
|
+
const right = Math.max(0, input.viewportWidth - input.scroller.right);
|
|
57785
|
+
const width = Math.min(input.widthPx, input.scroller.right);
|
|
57786
|
+
return {
|
|
57787
|
+
top: Math.max(0, input.scroller.top),
|
|
57788
|
+
height: Math.max(0, input.scroller.bottom - Math.max(0, input.scroller.top)),
|
|
57789
|
+
right,
|
|
57790
|
+
width
|
|
57791
|
+
};
|
|
57853
57792
|
}
|
|
57854
57793
|
function scrollParentOf(el) {
|
|
57855
|
-
for (let p = el
|
|
57794
|
+
for (let p = el?.parentElement ?? null; p !== null; p = p.parentElement) {
|
|
57856
57795
|
const { overflowY } = getComputedStyle(p);
|
|
57857
57796
|
if (overflowY === "auto" || overflowY === "scroll") return p;
|
|
57858
57797
|
}
|
|
57859
57798
|
return null;
|
|
57860
57799
|
}
|
|
57861
|
-
|
|
57862
|
-
|
|
57863
|
-
const ref = useRef(null);
|
|
57864
|
-
const [height, setHeight] = useState(null);
|
|
57800
|
+
function useDockBox(anchor, enabled) {
|
|
57801
|
+
const [box, setBox] = useState(null);
|
|
57865
57802
|
useLayoutEffect(() => {
|
|
57866
|
-
|
|
57867
|
-
|
|
57868
|
-
const scroller = scrollParentOf(el);
|
|
57803
|
+
if (!enabled) return;
|
|
57804
|
+
const scroller = scrollParentOf(anchor.current);
|
|
57869
57805
|
const measure = () => {
|
|
57870
|
-
|
|
57871
|
-
|
|
57872
|
-
|
|
57873
|
-
|
|
57874
|
-
|
|
57875
|
-
|
|
57876
|
-
|
|
57877
|
-
|
|
57878
|
-
minPx
|
|
57806
|
+
setBox(dockBox({
|
|
57807
|
+
scroller: scroller?.getBoundingClientRect() ?? {
|
|
57808
|
+
top: 0,
|
|
57809
|
+
bottom: window.innerHeight,
|
|
57810
|
+
right: window.innerWidth
|
|
57811
|
+
},
|
|
57812
|
+
viewportWidth: window.innerWidth,
|
|
57813
|
+
widthPx: 432
|
|
57879
57814
|
}));
|
|
57880
57815
|
};
|
|
57881
57816
|
measure();
|
|
57882
57817
|
const RO = typeof ResizeObserver === "undefined" ? null : new ResizeObserver(measure);
|
|
57883
57818
|
if (scroller) RO?.observe(scroller);
|
|
57884
|
-
if (el.parentElement) RO?.observe(el.parentElement);
|
|
57885
57819
|
window.addEventListener("resize", measure);
|
|
57886
57820
|
return () => {
|
|
57887
57821
|
RO?.disconnect();
|
|
57888
57822
|
window.removeEventListener("resize", measure);
|
|
57889
57823
|
};
|
|
57890
|
-
}, [
|
|
57891
|
-
return
|
|
57892
|
-
ref,
|
|
57893
|
-
height
|
|
57894
|
-
};
|
|
57824
|
+
}, [anchor, enabled]);
|
|
57825
|
+
return box;
|
|
57895
57826
|
}
|
|
57896
|
-
function
|
|
57827
|
+
function StepDetailDock({ open, anchor, onClose, label, children }) {
|
|
57897
57828
|
const isMobile = useIsMobile();
|
|
57898
|
-
const
|
|
57899
|
-
if (isMobile) return /* @__PURE__ */
|
|
57900
|
-
|
|
57901
|
-
|
|
57902
|
-
|
|
57903
|
-
|
|
57904
|
-
|
|
57905
|
-
|
|
57906
|
-
|
|
57907
|
-
children:
|
|
57908
|
-
placement: "sheet-on-mobile",
|
|
57909
|
-
scroll: "body",
|
|
57910
|
-
className: "h-[100dvh] max-h-none w-full max-w-full rounded-none border-0 p-0 pt-[env(safe-area-inset-top)] pb-[env(safe-area-inset-bottom)]",
|
|
57911
|
-
children: mobileDetailOpen && detail
|
|
57912
|
-
})
|
|
57913
|
-
})]
|
|
57914
|
-
});
|
|
57915
|
-
return /* @__PURE__ */ jsx("div", {
|
|
57916
|
-
ref,
|
|
57917
|
-
className: cn("@container/inspector", className),
|
|
57918
|
-
style: height !== null ? { height } : void 0,
|
|
57919
|
-
children: /* @__PURE__ */ jsxs("div", {
|
|
57920
|
-
className: cn("grid h-full min-h-0 gap-3", "grid-cols-1 grid-rows-[minmax(9rem,32%)_minmax(0,1fr)]", "@xl/inspector:grid-cols-[minmax(14rem,19rem)_minmax(0,1fr)] @xl/inspector:grid-rows-1"),
|
|
57921
|
-
children: [/* @__PURE__ */ jsx("div", {
|
|
57922
|
-
className: cn(SECTION_CARD, "flex min-h-0 flex-col"),
|
|
57923
|
-
children: list
|
|
57924
|
-
}), /* @__PURE__ */ jsx("div", {
|
|
57925
|
-
className: cn(SECTION_CARD, "flex min-h-0 flex-col"),
|
|
57926
|
-
children: detail
|
|
57927
|
-
})]
|
|
57829
|
+
const box = useDockBox(anchor, open && !isMobile);
|
|
57830
|
+
if (isMobile) return /* @__PURE__ */ jsx(Dialog, {
|
|
57831
|
+
open,
|
|
57832
|
+
onOpenChange: (next) => !next && onClose(),
|
|
57833
|
+
children: /* @__PURE__ */ jsx(DialogContent, {
|
|
57834
|
+
placement: "sheet-on-mobile",
|
|
57835
|
+
scroll: "body",
|
|
57836
|
+
"aria-label": label,
|
|
57837
|
+
className: "h-[100dvh] max-h-none w-full max-w-full rounded-none border-0 p-0 pt-[env(safe-area-inset-top)] pb-[env(safe-area-inset-bottom)]",
|
|
57838
|
+
children: open && children
|
|
57928
57839
|
})
|
|
57929
57840
|
});
|
|
57841
|
+
if (!open) return null;
|
|
57842
|
+
return /* @__PURE__ */ jsx("aside", {
|
|
57843
|
+
"aria-label": label,
|
|
57844
|
+
"data-step-dock": true,
|
|
57845
|
+
className: "fixed z-30 flex flex-col border-l border-border bg-surface shadow-2xl",
|
|
57846
|
+
style: box !== null ? {
|
|
57847
|
+
top: box.top,
|
|
57848
|
+
height: box.height,
|
|
57849
|
+
right: box.right,
|
|
57850
|
+
width: box.width
|
|
57851
|
+
} : {
|
|
57852
|
+
top: 0,
|
|
57853
|
+
bottom: 0,
|
|
57854
|
+
right: 0,
|
|
57855
|
+
width: 432
|
|
57856
|
+
},
|
|
57857
|
+
children
|
|
57858
|
+
});
|
|
57930
57859
|
}
|
|
57931
|
-
/** "‹ Steps" — the phone sheet's way back to the
|
|
57860
|
+
/** "‹ Steps" — the phone sheet's way back to the matrix. */
|
|
57932
57861
|
function BackToStepsButton({ onClick }) {
|
|
57933
57862
|
return /* @__PURE__ */ jsxs("button", {
|
|
57934
57863
|
type: "button",
|
|
@@ -57944,36 +57873,42 @@ function BackToStepsButton({ onClick }) {
|
|
|
57944
57873
|
//#region src/composites/step-inspector/step-inspector-panel.tsx
|
|
57945
57874
|
/**
|
|
57946
57875
|
* StepInspectorPanel — the detail pane of the step inspector: a pinned header
|
|
57947
|
-
* (the step
|
|
57948
|
-
* save bar. Nothing in it depends on the page's scroll position — the slide-over
|
|
57876
|
+
* (the clicked step and accelerator, the gate), ONE scrolling body, and a
|
|
57877
|
+
* pinned save bar (with the "applies to" choice, when there is one). Nothing in it depends on the page's scroll position — the slide-over
|
|
57949
57878
|
* it replaced was anchored to the matrix block and scrolled away with it.
|
|
57950
57879
|
*/
|
|
57951
|
-
function SaveBar({ dirtyCount, saving, status, error, onSave, onDiscard }) {
|
|
57880
|
+
function SaveBar({ dirtyCount, saving, status, error, onSave, onDiscard, scope }) {
|
|
57952
57881
|
const dirty = dirtyCount > 0;
|
|
57953
57882
|
const message = saving ? "Saving…" : dirty ? `${dirtyCount} unsaved change${dirtyCount === 1 ? "" : "s"}` : status === "saved" ? "Saved" : status === "error" ? error ?? "Save failed" : "No unsaved changes";
|
|
57954
57883
|
return /* @__PURE__ */ jsxs("footer", {
|
|
57955
|
-
className: "
|
|
57956
|
-
children: [
|
|
57957
|
-
|
|
57958
|
-
|
|
57959
|
-
|
|
57960
|
-
|
|
57961
|
-
|
|
57962
|
-
|
|
57963
|
-
|
|
57964
|
-
|
|
57965
|
-
|
|
57966
|
-
|
|
57967
|
-
|
|
57968
|
-
|
|
57969
|
-
|
|
57970
|
-
|
|
57971
|
-
|
|
57972
|
-
|
|
57973
|
-
|
|
57974
|
-
|
|
57975
|
-
|
|
57976
|
-
|
|
57884
|
+
className: "shrink-0 space-y-2 border-t border-border bg-surface px-4 py-2 pb-[max(0.5rem,env(safe-area-inset-bottom))] md:pb-2",
|
|
57885
|
+
children: [scope !== void 0 && /* @__PURE__ */ jsx("div", {
|
|
57886
|
+
"data-save-scope": true,
|
|
57887
|
+
children: scope
|
|
57888
|
+
}), /* @__PURE__ */ jsxs("div", {
|
|
57889
|
+
className: "flex items-center gap-2",
|
|
57890
|
+
children: [
|
|
57891
|
+
/* @__PURE__ */ jsx("span", {
|
|
57892
|
+
role: "status",
|
|
57893
|
+
className: cn("min-w-0 flex-1 truncate text-[11px]", status === "error" && !dirty ? "text-danger" : dirty ? "text-amber-500" : "text-foreground-subtle"),
|
|
57894
|
+
children: message
|
|
57895
|
+
}),
|
|
57896
|
+
/* @__PURE__ */ jsx(Button, {
|
|
57897
|
+
variant: "outline",
|
|
57898
|
+
size: "md",
|
|
57899
|
+
disabled: !dirty || saving,
|
|
57900
|
+
onClick: onDiscard,
|
|
57901
|
+
children: "Discard"
|
|
57902
|
+
}),
|
|
57903
|
+
/* @__PURE__ */ jsx(Button, {
|
|
57904
|
+
variant: "primary",
|
|
57905
|
+
size: "md",
|
|
57906
|
+
disabled: !dirty || saving,
|
|
57907
|
+
onClick: onSave,
|
|
57908
|
+
children: "Save"
|
|
57909
|
+
})
|
|
57910
|
+
]
|
|
57911
|
+
})]
|
|
57977
57912
|
});
|
|
57978
57913
|
}
|
|
57979
57914
|
var StepInspectorPanel = forwardRef(function StepInspectorPanel({ title, subtitle, headerActions, headerExtra, leading, saveBar, onEscape, children, className }, headingRef) {
|
|
@@ -58000,7 +57935,8 @@ var StepInspectorPanel = forwardRef(function StepInspectorPanel({ title, subtitl
|
|
|
58000
57935
|
id: headingId,
|
|
58001
57936
|
ref: headingRef,
|
|
58002
57937
|
tabIndex: -1,
|
|
58003
|
-
|
|
57938
|
+
title,
|
|
57939
|
+
className: "line-clamp-2 break-words text-sm font-semibold leading-snug text-foreground outline-none focus-visible:ring-2 focus-visible:ring-primary rounded",
|
|
58004
57940
|
children: title
|
|
58005
57941
|
}), subtitle !== void 0 && /* @__PURE__ */ jsx("div", {
|
|
58006
57942
|
className: "mt-0.5 text-[11px] text-foreground-subtle",
|
|
@@ -58021,192 +57957,6 @@ var StepInspectorPanel = forwardRef(function StepInspectorPanel({ title, subtitl
|
|
|
58021
57957
|
});
|
|
58022
57958
|
});
|
|
58023
57959
|
//#endregion
|
|
58024
|
-
//#region src/composites/step-inspector/step-list.tsx
|
|
58025
|
-
/**
|
|
58026
|
-
* StepList — the master pane of the step inspector: every detection step of the
|
|
58027
|
-
* tree, one compact row each, as ONE tab stop.
|
|
58028
|
-
*
|
|
58029
|
-
* Keyboard (a listbox with a roving tabindex): ↑/↓/Home/End move the selection,
|
|
58030
|
-
* Enter or → hands focus to the inspector, `/` jumps to the search box. The
|
|
58031
|
-
* search matches a step's name or any of its field labels, so a question about
|
|
58032
|
-
* a knob ("face size", "person") finds the step that owns it; Enter in the box
|
|
58033
|
-
* selects the first hit and says which field it matched.
|
|
58034
|
-
*/
|
|
58035
|
-
function matches(text, tokens) {
|
|
58036
|
-
const lower = text.toLowerCase();
|
|
58037
|
-
return tokens.every((t) => lower.includes(t));
|
|
58038
|
-
}
|
|
58039
|
-
/** Rows matching `query` (all tokens in the name, or all in one field label). */
|
|
58040
|
-
function searchSteps(rows, query) {
|
|
58041
|
-
const tokens = query.trim().toLowerCase().split(/\s+/).filter(Boolean);
|
|
58042
|
-
if (tokens.length === 0) return rows.map((row) => ({ row }));
|
|
58043
|
-
const hits = [];
|
|
58044
|
-
for (const row of rows) {
|
|
58045
|
-
if (matches(row.name, tokens)) {
|
|
58046
|
-
hits.push({ row });
|
|
58047
|
-
continue;
|
|
58048
|
-
}
|
|
58049
|
-
const field = row.fieldLabels.find((l) => matches(l, tokens));
|
|
58050
|
-
if (field !== void 0) hits.push({
|
|
58051
|
-
row,
|
|
58052
|
-
matchedField: field
|
|
58053
|
-
});
|
|
58054
|
-
}
|
|
58055
|
-
return hits;
|
|
58056
|
-
}
|
|
58057
|
-
var StepList = forwardRef(function StepList({ rows, selectedId, onSelect, onActivate, onPick, label, className }, ref) {
|
|
58058
|
-
const [query, setQuery] = useState("");
|
|
58059
|
-
const listRef = useRef(null);
|
|
58060
|
-
const searchRef = useRef(null);
|
|
58061
|
-
const hits = useMemo(() => searchSteps(rows, query), [rows, query]);
|
|
58062
|
-
const tabStopId = hits.some((h) => h.row.addonId === selectedId) ? selectedId : hits[0]?.row.addonId ?? null;
|
|
58063
|
-
const pendingFocus = useRef(null);
|
|
58064
|
-
const tryFocus = (addonId) => {
|
|
58065
|
-
const el = listRef.current?.querySelector(`[data-step-id="${addonId}"]`);
|
|
58066
|
-
if (!el) return false;
|
|
58067
|
-
el.focus();
|
|
58068
|
-
return true;
|
|
58069
|
-
};
|
|
58070
|
-
const focusRow = (addonId) => {
|
|
58071
|
-
if (addonId === null) return;
|
|
58072
|
-
pendingFocus.current = tryFocus(addonId) ? null : addonId;
|
|
58073
|
-
};
|
|
58074
|
-
useLayoutEffect(() => {
|
|
58075
|
-
if (pendingFocus.current !== null && tryFocus(pendingFocus.current)) pendingFocus.current = null;
|
|
58076
|
-
});
|
|
58077
|
-
useImperativeHandle(ref, () => ({ focusSelected: () => focusRow(selectedId) }), [selectedId]);
|
|
58078
|
-
const move = (index) => {
|
|
58079
|
-
const target = hits[Math.max(0, Math.min(hits.length - 1, index))];
|
|
58080
|
-
if (target === void 0) return;
|
|
58081
|
-
onSelect(target.row.addonId, target.matchedField);
|
|
58082
|
-
focusRow(target.row.addonId);
|
|
58083
|
-
};
|
|
58084
|
-
const onRowKeyDown = (e, index, hit) => {
|
|
58085
|
-
switch (e.key) {
|
|
58086
|
-
case "ArrowDown":
|
|
58087
|
-
e.preventDefault();
|
|
58088
|
-
move(index + 1);
|
|
58089
|
-
return;
|
|
58090
|
-
case "ArrowUp":
|
|
58091
|
-
e.preventDefault();
|
|
58092
|
-
move(index - 1);
|
|
58093
|
-
return;
|
|
58094
|
-
case "Home":
|
|
58095
|
-
e.preventDefault();
|
|
58096
|
-
move(0);
|
|
58097
|
-
return;
|
|
58098
|
-
case "End":
|
|
58099
|
-
e.preventDefault();
|
|
58100
|
-
move(hits.length - 1);
|
|
58101
|
-
return;
|
|
58102
|
-
case "Enter":
|
|
58103
|
-
case "ArrowRight":
|
|
58104
|
-
e.preventDefault();
|
|
58105
|
-
onActivate(hit.row.addonId);
|
|
58106
|
-
return;
|
|
58107
|
-
case "/":
|
|
58108
|
-
e.preventDefault();
|
|
58109
|
-
searchRef.current?.focus();
|
|
58110
|
-
return;
|
|
58111
|
-
default:
|
|
58112
|
-
}
|
|
58113
|
-
};
|
|
58114
|
-
const onSearchKeyDown = (e) => {
|
|
58115
|
-
if (e.key === "Enter") {
|
|
58116
|
-
e.preventDefault();
|
|
58117
|
-
const first = hits[0];
|
|
58118
|
-
if (first !== void 0) {
|
|
58119
|
-
onSelect(first.row.addonId, first.matchedField);
|
|
58120
|
-
onPick?.(first.row.addonId);
|
|
58121
|
-
focusRow(first.row.addonId);
|
|
58122
|
-
}
|
|
58123
|
-
} else if (e.key === "Escape") {
|
|
58124
|
-
e.preventDefault();
|
|
58125
|
-
setQuery("");
|
|
58126
|
-
focusRow(selectedId);
|
|
58127
|
-
} else if (e.key === "ArrowDown") {
|
|
58128
|
-
e.preventDefault();
|
|
58129
|
-
focusRow(tabStopId);
|
|
58130
|
-
}
|
|
58131
|
-
};
|
|
58132
|
-
return /* @__PURE__ */ jsxs("div", {
|
|
58133
|
-
className: cn("flex min-h-0 flex-col", className),
|
|
58134
|
-
children: [/* @__PURE__ */ jsxs("div", {
|
|
58135
|
-
className: "relative shrink-0 border-b border-border p-1.5",
|
|
58136
|
-
children: [/* @__PURE__ */ jsx(Search, {
|
|
58137
|
-
className: "pointer-events-none absolute left-3.5 top-1/2 h-3.5 w-3.5 -translate-y-1/2 text-foreground-subtle",
|
|
58138
|
-
"aria-hidden": true
|
|
58139
|
-
}), /* @__PURE__ */ jsx("input", {
|
|
58140
|
-
ref: searchRef,
|
|
58141
|
-
type: "search",
|
|
58142
|
-
value: query,
|
|
58143
|
-
onChange: (e) => setQuery(e.target.value),
|
|
58144
|
-
onKeyDown: onSearchKeyDown,
|
|
58145
|
-
placeholder: "Find a step or setting /",
|
|
58146
|
-
"aria-label": "Find a step or setting",
|
|
58147
|
-
className: "h-9 w-full rounded-md border border-border bg-background pl-8 pr-2 text-xs text-foreground outline-none focus:border-primary focus:ring-1 focus:ring-primary/30 md:h-8"
|
|
58148
|
-
})]
|
|
58149
|
-
}), /* @__PURE__ */ jsxs("ul", {
|
|
58150
|
-
ref: listRef,
|
|
58151
|
-
role: "listbox",
|
|
58152
|
-
"aria-label": label,
|
|
58153
|
-
className: "min-h-0 flex-1 overflow-y-auto py-1",
|
|
58154
|
-
children: [hits.map((hit, index) => {
|
|
58155
|
-
const { row } = hit;
|
|
58156
|
-
const selected = row.addonId === selectedId;
|
|
58157
|
-
return /* @__PURE__ */ jsxs("li", {
|
|
58158
|
-
role: "option",
|
|
58159
|
-
"aria-selected": selected,
|
|
58160
|
-
tabIndex: row.addonId === tabStopId ? 0 : -1,
|
|
58161
|
-
"data-step-id": row.addonId,
|
|
58162
|
-
onClick: () => {
|
|
58163
|
-
onSelect(row.addonId, hit.matchedField);
|
|
58164
|
-
onPick?.(row.addonId);
|
|
58165
|
-
},
|
|
58166
|
-
onKeyDown: (e) => onRowKeyDown(e, index, hit),
|
|
58167
|
-
className: cn("cursor-pointer border-l-2 py-1 pl-2.5 pr-3 outline-none transition-colors", "focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-primary", selected ? "border-primary bg-primary/10" : "border-transparent hover:bg-muted/40"),
|
|
58168
|
-
children: [
|
|
58169
|
-
/* @__PURE__ */ jsxs("div", {
|
|
58170
|
-
className: "flex min-w-0 items-baseline gap-2",
|
|
58171
|
-
children: [
|
|
58172
|
-
/* @__PURE__ */ jsx("span", {
|
|
58173
|
-
className: "w-[4.5rem] shrink-0 truncate",
|
|
58174
|
-
children: /* @__PURE__ */ jsx(SlotHeading, { slot: row.slot })
|
|
58175
|
-
}),
|
|
58176
|
-
/* @__PURE__ */ jsxs("span", {
|
|
58177
|
-
className: cn("min-w-0 flex-1 truncate text-xs font-medium", selected ? "text-foreground" : "text-foreground/90"),
|
|
58178
|
-
style: { paddingLeft: `${row.depth * 12}px` },
|
|
58179
|
-
children: [row.depth > 0 && /* @__PURE__ */ jsx("span", {
|
|
58180
|
-
className: "mr-1 text-foreground-subtle/60",
|
|
58181
|
-
"aria-hidden": true,
|
|
58182
|
-
children: "└"
|
|
58183
|
-
}), row.name]
|
|
58184
|
-
}),
|
|
58185
|
-
row.status
|
|
58186
|
-
]
|
|
58187
|
-
}),
|
|
58188
|
-
hit.matchedField !== void 0 && /* @__PURE__ */ jsxs("div", {
|
|
58189
|
-
className: "mt-0.5 truncate pl-[5rem] text-[10px] text-primary",
|
|
58190
|
-
children: ["↳ ", hit.matchedField]
|
|
58191
|
-
}),
|
|
58192
|
-
row.detail !== void 0 && /* @__PURE__ */ jsx("div", {
|
|
58193
|
-
className: "mt-0.5 pl-[5rem]",
|
|
58194
|
-
children: row.detail
|
|
58195
|
-
})
|
|
58196
|
-
]
|
|
58197
|
-
}, row.addonId);
|
|
58198
|
-
}), hits.length === 0 && /* @__PURE__ */ jsxs("li", {
|
|
58199
|
-
className: "px-3 py-4 text-center text-[11px] text-foreground-subtle",
|
|
58200
|
-
children: [
|
|
58201
|
-
"No step matches “",
|
|
58202
|
-
query,
|
|
58203
|
-
"”."
|
|
58204
|
-
]
|
|
58205
|
-
})]
|
|
58206
|
-
})]
|
|
58207
|
-
});
|
|
58208
|
-
});
|
|
58209
|
-
//#endregion
|
|
58210
57960
|
//#region src/composites/step-inspector/step-model-row.tsx
|
|
58211
57961
|
var SOURCE_TONE = {
|
|
58212
57962
|
camera: "border-primary/40 bg-primary/10 text-primary",
|
|
@@ -58285,81 +58035,28 @@ function StepModelRow({ label, format, modelId, source, sourceLabel, models, def
|
|
|
58285
58035
|
});
|
|
58286
58036
|
}
|
|
58287
58037
|
//#endregion
|
|
58288
|
-
//#region src/composites/step-inspector/step-
|
|
58289
|
-
|
|
58290
|
-
|
|
58291
|
-
|
|
58292
|
-
* While nothing is pinned, edited or worth a note, the accelerators are
|
|
58293
|
-
* summarised by model — one line per distinct model, naming the accelerators
|
|
58294
|
-
* that run it ("yolov9m-320-int8 · hub iGPU, hub NPU, little-unraid iGPU") —
|
|
58295
|
-
* with "Per accelerator" to open one `StepModelRow` each. Four near-identical
|
|
58296
|
-
* rows pushed the settings, the thing most edits are about, below the fold.
|
|
58297
|
-
* A pin, a pending change or a note (no build here, root-supplied) shows every
|
|
58298
|
-
* row, so nothing that differs from the default is ever folded away.
|
|
58299
|
-
*/
|
|
58300
|
-
/** True when the rows can be summarised: nothing pinned here, edited, or noted. */
|
|
58301
|
-
function modelRowsAreFoldable(rows) {
|
|
58302
|
-
return rows.length >= 2 && rows.every((r) => r.note === void 0 && r.onReset === void 0 && r.changed !== true && !r.expanded);
|
|
58038
|
+
//#region src/composites/step-inspector/step-search.ts
|
|
58039
|
+
function matches(text, tokens) {
|
|
58040
|
+
const lower = text.toLowerCase();
|
|
58041
|
+
return tokens.every((t) => lower.includes(t));
|
|
58303
58042
|
}
|
|
58304
|
-
|
|
58305
|
-
|
|
58043
|
+
/** Steps matching `query` (all tokens in the name, or all in one field label). Empty query = all. */
|
|
58044
|
+
function searchSteps(rows, query) {
|
|
58045
|
+
const tokens = query.trim().toLowerCase().split(/\s+/).filter(Boolean);
|
|
58046
|
+
if (tokens.length === 0) return rows.map((row) => ({ addonId: row.addonId }));
|
|
58047
|
+
const hits = [];
|
|
58306
58048
|
for (const row of rows) {
|
|
58307
|
-
|
|
58308
|
-
|
|
58309
|
-
|
|
58310
|
-
|
|
58311
|
-
|
|
58312
|
-
|
|
58313
|
-
|
|
58314
|
-
|
|
58315
|
-
modelId,
|
|
58316
|
-
labels: [row.label],
|
|
58317
|
-
sourceLabel: row.sourceLabel
|
|
58318
|
-
});
|
|
58319
|
-
}
|
|
58320
|
-
return groups;
|
|
58321
|
-
}
|
|
58322
|
-
function StepModelList({ rows }) {
|
|
58323
|
-
const [open, setOpen] = useState(false);
|
|
58324
|
-
if (!open && modelRowsAreFoldable(rows)) {
|
|
58325
|
-
const groups = groupByModel(rows);
|
|
58326
|
-
return /* @__PURE__ */ jsxs("div", {
|
|
58327
|
-
className: cn("rounded-md border border-border", LIST_ROW),
|
|
58328
|
-
children: [/* @__PURE__ */ jsx("ul", {
|
|
58329
|
-
className: "space-y-1",
|
|
58330
|
-
children: groups.map((g) => /* @__PURE__ */ jsxs("li", {
|
|
58331
|
-
className: "flex flex-wrap items-baseline gap-x-2 text-xs",
|
|
58332
|
-
children: [
|
|
58333
|
-
/* @__PURE__ */ jsx("span", {
|
|
58334
|
-
className: "font-mono text-foreground",
|
|
58335
|
-
children: g.modelId
|
|
58336
|
-
}),
|
|
58337
|
-
/* @__PURE__ */ jsx("span", {
|
|
58338
|
-
className: "min-w-0 flex-1 text-[11px] text-foreground-subtle",
|
|
58339
|
-
children: g.labels.length === rows.length ? `all ${rows.length} accelerators` : g.labels.join(", ")
|
|
58340
|
-
}),
|
|
58341
|
-
/* @__PURE__ */ jsx("span", {
|
|
58342
|
-
className: "rounded border border-border px-1.5 py-px text-[10px] font-medium text-foreground-subtle",
|
|
58343
|
-
children: g.sourceLabel
|
|
58344
|
-
})
|
|
58345
|
-
]
|
|
58346
|
-
}, `${g.modelId}|${g.sourceLabel}`))
|
|
58347
|
-
}), /* @__PURE__ */ jsx("div", {
|
|
58348
|
-
className: "mt-1.5 flex justify-end",
|
|
58349
|
-
children: /* @__PURE__ */ jsx("button", {
|
|
58350
|
-
type: "button",
|
|
58351
|
-
className: cn(BTN_COMPACT, "min-h-9 md:min-h-0"),
|
|
58352
|
-
"aria-expanded": false,
|
|
58353
|
-
onClick: () => setOpen(true),
|
|
58354
|
-
children: "Per accelerator"
|
|
58355
|
-
})
|
|
58356
|
-
})]
|
|
58049
|
+
if (matches(row.name, tokens)) {
|
|
58050
|
+
hits.push({ addonId: row.addonId });
|
|
58051
|
+
continue;
|
|
58052
|
+
}
|
|
58053
|
+
const field = row.fieldLabels.find((l) => matches(l, tokens));
|
|
58054
|
+
if (field !== void 0) hits.push({
|
|
58055
|
+
addonId: row.addonId,
|
|
58056
|
+
matchedField: field
|
|
58357
58057
|
});
|
|
58358
58058
|
}
|
|
58359
|
-
return
|
|
58360
|
-
className: "space-y-2",
|
|
58361
|
-
children: rows.map(({ id, ...row }) => /* @__PURE__ */ jsx(StepModelRow, { ...row }, id))
|
|
58362
|
-
});
|
|
58059
|
+
return hits;
|
|
58363
58060
|
}
|
|
58364
58061
|
//#endregion
|
|
58365
58062
|
//#region src/composites/step-tree.ts
|
|
@@ -58992,29 +58689,19 @@ function StreamPanel({ serverUrl, createSession, sendAnswer, handleOffer, getIce
|
|
|
58992
58689
|
children: [
|
|
58993
58690
|
showStreamStats && streamStats && /* @__PURE__ */ jsxs("div", {
|
|
58994
58691
|
className: "px-3 py-1.5 text-[10px] text-foreground-subtle border-b border-border-subtle",
|
|
58995
|
-
children: [
|
|
58996
|
-
|
|
58997
|
-
|
|
58998
|
-
|
|
58999
|
-
|
|
59000
|
-
|
|
59001
|
-
|
|
59002
|
-
|
|
59003
|
-
/* @__PURE__ */
|
|
59004
|
-
className: "
|
|
59005
|
-
children:
|
|
59006
|
-
|
|
59007
|
-
|
|
59008
|
-
})]
|
|
59009
|
-
}),
|
|
59010
|
-
/* @__PURE__ */ jsxs("div", {
|
|
59011
|
-
className: "flex justify-between gap-3",
|
|
59012
|
-
children: [/* @__PURE__ */ jsx("span", { children: "Uptime" }), /* @__PURE__ */ jsx("span", {
|
|
59013
|
-
className: "tabular-nums text-foreground",
|
|
59014
|
-
children: fmtUptime(streamStats.uptimeMs)
|
|
59015
|
-
})]
|
|
59016
|
-
})
|
|
59017
|
-
]
|
|
58692
|
+
children: [/* @__PURE__ */ jsxs("div", {
|
|
58693
|
+
className: "flex justify-between gap-3",
|
|
58694
|
+
children: [/* @__PURE__ */ jsx("span", { children: "Input" }), /* @__PURE__ */ jsxs("span", {
|
|
58695
|
+
className: "tabular-nums text-foreground",
|
|
58696
|
+
children: [streamStats.inputFps.toFixed(1), " fps"]
|
|
58697
|
+
})]
|
|
58698
|
+
}), /* @__PURE__ */ jsxs("div", {
|
|
58699
|
+
className: "flex justify-between gap-3",
|
|
58700
|
+
children: [/* @__PURE__ */ jsx("span", { children: "Uptime" }), /* @__PURE__ */ jsx("span", {
|
|
58701
|
+
className: "tabular-nums text-foreground",
|
|
58702
|
+
children: fmtUptime(streamStats.uptimeMs)
|
|
58703
|
+
})]
|
|
58704
|
+
})]
|
|
59018
58705
|
}),
|
|
59019
58706
|
!showStreamStats && choiceStats && choiceStats.inputFps > 0 && /* @__PURE__ */ jsxs("div", {
|
|
59020
58707
|
className: "px-3 py-1.5 text-[10px] text-foreground-subtle border-b border-border-subtle",
|
|
@@ -61307,4 +60994,4 @@ var SceneMonitorEditor = lazy(() => import("./SceneMonitorEditor-vfWTm6qv.js").t
|
|
|
61307
60994
|
/** Lazy-wrapped `PrivacyMaskSettings` — code-split off the main bundle. */
|
|
61308
60995
|
var PrivacyMaskSettings = lazy(() => import("./PrivacyMaskSettings-DMkchqO1.js").then((m) => ({ default: m.PrivacyMaskSettings })));
|
|
61309
60996
|
//#endregion
|
|
61310
|
-
export { AcceleratorTabs, AddonGlobalSettingsForm, AdminLinkQuickAction, AgentStepEditor, AlarmHeroCard, AlarmInlineControl as AlarmPanelInlineControl, AppShell, ArcKnob, AudioClassificationList, AudioLevelWaveform, AudioWaveform, AutomationHeroCard, AutomationInlineControl, AutotrackSection, BTN_COMPACT, BTN_COMPACT_DANGER, BTN_COMPACT_PRIMARY, BTN_COMPACT_WARNING, BackToStepsButton, 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, ConfigNotificationTargetMultiSelectFieldView, ConfigNotificationTargetSelectFieldView, 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_PICKER_GROUP_STORAGE_KEY, DEVICE_ROLE_META, DEVICE_TYPE_CONTROL, DEVICE_TYPE_META, DISPLAY_ICON_REGISTRY, DataTable, DataTableFilterBar, DetectionCanvas, DetectionOverlay, DetectionResultTree, DevShell, DeviceActivityPanel, DeviceBatchToolbar, DeviceCard, DeviceContextProvider, DeviceExportPanel, DeviceFilterBar, DeviceGrid, DeviceItem, DeviceList, DeviceMultiSelectField, DevicePicker, DeviceQuickDetailProvider, DeviceSelectField, DeviceSelectorPicker, DeviceStepMatrix, DevicesFailedLine, DevicesLoadingLine, DevicesWidenWarning, Dialog, DialogBody, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, DialogTrigger, DiscoveryPanel, DoorbellRecentPanel, Dropdown, DropdownContent, DropdownItem, DropdownTrigger, DummyHeroCard, DummyInline, EMPTY_DATA_TABLE_FILTER, EVENT_KIND_ICONS, EmptyState, EndpointResultsCard, EndpointTestCard, ErrorBox, EventKindGlyph, EventStream, ExtensionsPanel, FILL, FLEET_LIST_GC_TIME_MS, FLEET_LIST_QUERY_KEY, FLEET_LIST_STALE_TIME_MS, FanHeroCard, FanInlineControl, FanPanel, FilterBar, FloatingEventStream, FloatingLogStream, FloatingPanel, FormField$1 as FormField, GRID_GAP, GRID_PAIRED, GRID_QUICK_STATS, GateBadge, GateControl, GripTrack, GroupedModelSelector, HOST_WIDGETS, HUB_SESSION_RUN_MS, HlsVideo, HoverZoomImage, HubSessionTestCard, HumidifierHeroCard, HumidifierInlineControl, INPUT_COMPACT, INPUT_SHELL, IconAction, IconButton, IconPicker, ImageHeroCard, ImageInlineControl, ImageSelector, InferenceConfigSelector, Input, KebabMenu, KeyValueList, LIST_ROW, Label, LawnMowerHeroCard, LawnMowerInlineControl, LayeredSettingsForm, LightHeroCard, LightInlineControl, LockHeroCard, LockInlineControl, LockPanel, LogStream, LoginForm, MODE_COLOR, MaskShapeCanvas, MediaPlayerHeroCard, MediaPlayerInlineControl, MediaPlayerPanel, MobileDrawer, ModelPicker, MotionZonesSettings, NAVIGATION_DRIVE_INTERVAL_MS, NatResultCard, NavigationPanel, NetworkLinkBadge, NodeMultiSelectField, NodePicker, NodeSelectField, NotificationTargetSelectField, NotificationTargetsField, OPTION_SELECT_SEARCH_MIN_OPTIONS, OfflineBadge, OptionSelect, PHASE_CONFIG, PICKER_CHIP_LIMIT, PICKER_DEFAULT_GROUP_BY, PICKER_GROUP_BY_MODES, PICKER_GROUP_COLLAPSE_AT, PICKER_NONE_KEY, PICKER_NOUN_PLURAL, PICKER_NO_FILTERS, PICKER_PAGE_SIZE, PICKER_SEARCH_DEBOUNCE_MS, PICKER_WINDOW, PRIORITY, PTZOverlay, PageHeader, PhaseIcon, PipelineBuilder, PipelineRuntimeSelector, PipelineStep, PlaceholderChipField, PlayerOverlaysProvider, Popover, PopoverContent, PopoverRowAction, PopoverTrigger, PrimaryChildPicker, PrivacyMaskSettings, ProviderBadge, PtzPanel, QrCode, RECONNECT_POLICY, RECORDED_PLAYBACK_MODES, RIGHT, ROI_AREA_WARN_FRACTION, ROLE_DESCRIPTOR, RadialGauge, RecordedPlaybackProvider, RecordingPanel, ResponseLog, RoleDisplayDefaultsFromServer, RoleDisplayDefaultsProvider, RootModelSourceControl, RootSuppliedModelNote, RunReport, SCENE_CAPTURE_VARIANTS, SECTION_BODY, SECTION_CARD, SECTION_HEADER, SETTING_ROW, SETTING_ROW_LABEL, SETTING_ROW_STACK_BREAKPOINT, SETTING_ROW_VALUE, SETTING_ROW_VALUE_TEXT, SNAPSHOT_MEDIA_PATH, SPLIT_PANEL_OUTER, SPLIT_PANEL_SIDE, STACK_GAP, STATE_COLOR, SceneMonitorEditor, ScopePicker, ScriptHeroCard, ScriptInlineControl, ScrollArea, SectionCard, SegmentedChoice, Select, SelectedChip, SemanticBadge, SensorHeroCard, SensorInlineControl, SensorValueAtom, Separator, SettingRow, Sidebar, SidebarItem, Skeleton, SlideToggle, SnapshotButton, SortHeaderButton, StatCard, StateValuesStream, StatusBadge, StepChips, StepInspectorLayout, StepInspectorPanel, StepList, StepModelList, StepModelRow, StepTimings, Stepper, StreamBrokerSelector, StreamDebugOverlay, StreamPanel, Switch, SwitchHeroCard, SwitchInlineControl, SwitchPanel, SystemProvider, TABLE_SCROLL_MAX_H, TEXT_FIELD_LABEL, TEXT_HINT, TEXT_METRIC, TEXT_SECTION_LABEL, TEXT_VALUE, TIMEZONES, Tabs, TabsContent, TabsList, TabsTrigger, TapToggle, ThemeProvider, ThermostatHeroCard, ThermostatInlineControl, TimezoneSelector, Tooltip, TooltipContent, TooltipTrigger, UnitPicker, VacuumHeroCard, VacuumInlineControl, ValueReadout, ValveHeroCard, ValveInlineControl, VersionBadge, VodPlaybackProvider, WaterHeaterHeroCard, WaterHeaterInlineControl, WeatherHeroCard, WeatherInlineControl, WidgetMetricCard, WidgetPanel, WidgetRegistryProvider, WidgetSlot, ZoneEditingProvider, MicOff as a, agentColumnKey, allDeviceTypeFilterOptions, applyFleetQueryDefaults, applyPickerFilters, ariaSortForColumn, badgeFor, bindsToModel, buildPeerConnectionConfig, buildStepTreeFromSchema, EyeOff as c, catalogHasDraft, childEntityId, childListName, chipOverflow, classifyAddressScope, classifyCapability, classifySessionVerdict, clearPickerGroup, cn, columnsForContext, compareSrflxMappings, containerChildToRef, countableDevices, coverHighlight, coverageLine, createSharedContext, createTheme, cursorFractionFor, darkColors, dataTableFacets, defaultOfField, defaultTheme, deriveDeviceKind, deriveWebrtcDebugStats, describeDeviceSelector, deviceIntegrationResolver, deviceListStateOf, deviceMatchesFilter, deviceOptionLabel, deviceRoleMeta, deviceRoleMetaOf, deviceTypeLabel, deviceTypeMeta, deviceTypeMetaOf, devicesToOptions, draftFromQuery, emptyDevicesWidens, emptySessionRun, ensureMfHostInit, eventKindLabel, fillHeightPx, filterDataTableRows, filterDeviceOptions, filterOptions as filterOptionSelectOptions, filterPickerDevices, finalizeSessionRun, findTimezone, flattenPickerGrouping, flattenPickerRows, fleetViewOf, formatControlDateTime, formatLastSeen, formatNumeric, formatSettingValue, freezeVerdict, fuzzyMatch, getClassColor, getPhaseVisual, groupAgentColumns, groupChildrenByLayout, groupPickerDevices, groupPickerDevicesBy, hardwareLabel, hubOrigin, hubPath, hubUrl, hubWsUrl, humanDuration, humidifierTint, Mic as i, initialScrubState, insertAtSelection, isAbsentProvider, isDataTableFilterActive, isFieldVisible, isGroupExpanded, isValueField, Camera as l, lawnMowerActivityMeta, lightColors, loadRemoteBundle, makeScrubBridge, metadataEntries, metadataString, mirror, modelRowsAreFoldable, mountAddonPage, mountPath, Square as n, nextReconnectAction, nextSort, nextSortDirection, nextTableSort, normalizeForSearch, ImageOff as o, offListSelections, openTopLayer, optionSearchText as optionSelectSearchText, orphanDeviceLabel, overrideEntityIdFromLink, pageRows, parentDetailOf, parseIceCandidate, parsePickerGroupBy, parseRecordedServerMessage, partitionSelected as partitionOptionSelectSelected, partitionSuggested, pickerFacetFilterShown, pickerFacetKey, pickerFacetOptions, pickerFiltersActive, pickerGroupKey, pickerHiddenSelectedCount, pickerLocationKey, pickerQueryTokens, pickerRowFacts, pickerSearchText, pickerZoneFilterSuspended, pinnedStreamChoices, providerIcons, RotateCcw as r, readStoredGroupBy, reduceSessionRun, resetHubMountForTests, resetPickerFilters, resolveContainerPrimary, resolveControlAlign, resolveDeviceControl, resolveDeviceIntegration, resolveDisplayIcon, resolveEffectiveDefaultModel, resolveEffectiveStepModel, resolveEventKindIcon, resolveSearchable as resolveOptionSelectSearchable, resolveParentNames, resolvePrimaryChild, resolveSelectedDevices, resolveSensorDisplay, resolveStepDefaultModel, resolveTableLayout, roiTooLarge, rootSourceState, routerBasename, Grid2x2 as s, sameLocationSuggestions, scrubReducer, searchSteps, selectPickerGroup, selectedDeviceOptions, serializeRecordedCommand, settingsModelIdFor, shouldCommit, shouldEmit, shouldShowAddNewFooter, shouldShowUseQueryRow, shouldUseSingleNode, showsNoCamerasHint, sortRows, sortRowsByColumn, statusIcons, statusLine, stepFieldDomId, stepHasModelForFormat, stepLocalFields, stepModelOptions, stripParentNamePrefix, summarizeHubCandidates, Trash2 as t, tabForSelector, tankAlert, themeToCss, toStationaryOverlayBox, toggleDataTableFacet, togglePickerDevice, togglePickerKey, trpc, typeLabel, createLucideIcon as u, useAccessoriesGetStatus, useAccessoriesSetChildHidden, useAddonPagesListPages, useAddonSettingsGetDeviceSettings, useAddonSettingsGetGlobalSettings, useAddonSettingsGetIntegrationSettings, 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, useAlert, useAlertsDismiss, useAlertsEmit, useAlertsGetUnreadCount, useAlertsList, useAlertsMarkAllRead, useAlertsMarkRead, useAlertsUpdate, useAllWidgets, useAmbientLightSensorGetStatus, useAudioAnalysisApplyDeviceSettingsPatch, useAudioAnalysisGetDeviceLiveContribution, useAudioAnalysisGetDeviceSettingsContribution, useAudioAnalysisResolveDeviceSettings, useAudioAnalyzerAnalyseChunk, useAudioAnalyzerAttachDevice, useAudioAnalyzerClassify, useAudioAnalyzerDetachDevice, useAudioAnalyzerDispose, useAudioAnalyzerIsReady, useAudioAnalyzerReprobeAudioEngine, useAudioCodecCanHandle, useAudioCodecCloseSession, useAudioCodecCreateDecodeSession, useAudioCodecCreateEncodeSession, useAudioCodecFlushEncode, useAudioCodecListActiveSessions, useAudioCodecListSupportedCodecs, useAudioCodecPullEncoded, useAudioCodecPullPcm, useAudioCodecPushEncodedFrame, useAudioCodecPushPcm, useAudioMetricsGetCurrentSnapshot, useAudioMetricsGetHistory, useAutomationControlDisable, useAutomationControlEnable, useAutomationControlGetStatus, useAutomationControlTrigger, useBackupCancel, useBackupDelete, useBackupDeleteSchedule, useBackupGetEntries, useBackupList, useBackupListArchives, useBackupListDestinations, useBackupListLocations, useBackupListRuns, 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, useCalendarsGetPreferences, useCalendarsListCalendars, useCalendarsListEvents, useCalendarsSetCalendarPreference, useCameraCredentialsGetCredentials, useCameraCredentialsGetStatus, useCameraGridLayoutApplyDeviceSettingsPatch, useCameraGridLayoutGetDeviceLiveContribution, useCameraGridLayoutGetDeviceSettingsContribution, useCameraGridLayoutGetLayout, useCameraGridLayoutSaveLayout, useCameraPipelineConfigApplyDeviceSettingsPatch, useCameraPipelineConfigGetDeviceLiveContribution, useCameraPipelineConfigGetDeviceSettingsContribution, useCameraStreamsGetBrokerStreams, useCameraStreamsGetCameraStreams, useCameraStreamsGetProfileRtspEntries, useCameraStreamsGetRtspEntries, useCameraStreamsPickStream, useCapabilityPresence, useCarbonMonoxideGetStatus, useClimateControlGetStatus, useClimateControlSetFanMode, useClimateControlSetMode, useClimateControlSetPreset, useClimateControlSetSwingHorizontal, useClimateControlSetSwingVertical, useClimateControlSetTarget, useClimateControlSetTargetHumidity, useClimateControlSetTargetRange, useClusterNodes, useClusterTopology, useColorGetStatus, useColorSetColor, useConfirm, useConnectionTestDescribeTest, useConnectionTestTestSettings, useConnectivityGetStatus, useConsumablesGetStatus, useConsumablesReset, useContactGetStatus, useContainerChildren, useControlGetStatus, useControlSetValue, useCoreBlocksCompile, useCoreBlocksCreate, useCoreBlocksCreateComposition, useCoreBlocksDelete, useCoreBlocksGet, useCoreBlocksGetBlockSettings, useCoreBlocksGetComposition, useCoreBlocksGetCustomization, useCoreBlocksGetTypeDefs, useCoreBlocksList, useCoreBlocksListComposableCaps, useCoreBlocksListCompositions, useCoreBlocksRestart, useCoreBlocksSetEnabled, useCoreBlocksUpdate, useCoreBlocksUpdateBlockSettings, useCoreBlocksUpdateComposition, useCoreBlocksValidateComposition, useCoverClose, useCoverGetStatus, useCoverOpen, useCoverSetPosition, useCoverSetTiltPosition, useCoverStop, useCustomFieldRenderer, useDataTableFilter, useDayNightGetOptions, useDayNightGetStatus, useDayNightSetSettings, useDebouncedString, useDecoderCreateSession, useDecoderDestroySession, useDecoderGetFrame, useDecoderGetInfo, useDecoderGetShmStats, useDecoderGetStats, useDecoderListActiveSessions, useDecoderOpenStream, useDecoderPullFrames, useDecoderPullHandles, useDecoderPushPacket, useDecoderReprobeHwaccel, useDecoderSupportsCodec, useDecoderUpdateConfig, useDetectionPipelineApplyDeviceSettingsPatch, useDetectionPipelineGetDeviceLiveContribution, useDetectionPipelineGetDeviceSettingsContribution, useDevShell, useDevice, useDeviceAdminLink, useDeviceAdminLinkGetAdminLink, 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, useDeviceExtensionListCandidates, useDeviceExtensionListSlots, useDeviceExtensionListSources, useDeviceExtensionSetSlot, useDeviceId, useDeviceListPageSize, useDeviceManagerAddLocation, useDeviceManagerAdoptDevice, useDeviceManagerAdoptionAdopt, useDeviceManagerAdoptionCancelJob, useDeviceManagerAdoptionListCandidateFilters, useDeviceManagerAdoptionListCandidates, useDeviceManagerAdoptionListJobs, useDeviceManagerAdoptionRefresh, useDeviceManagerAdoptionRelease, useDeviceManagerAdoptionResync, useDeviceManagerAdoptionStartJob, useDeviceManagerAllocateDeviceId, useDeviceManagerApplyInitialMeta, useDeviceManagerCreateDevice, useDeviceManagerDisable, useDeviceManagerDiscoverAllProviders, useDeviceManagerDiscoverDevices, useDeviceManagerDiscoverProvider, useDeviceManagerDiscoveryProviders, useDeviceManagerEnable, useDeviceManagerGetAllBindings, useDeviceManagerGetBindings, useDeviceManagerGetBindingsBatch, useDeviceManagerGetChildren, useDeviceManagerGetChildrenBatch, useDeviceManagerGetConfigSchema, useDeviceManagerGetCreationSchema, useDeviceManagerGetDevice, useDeviceManagerGetDeviceAggregate, useDeviceManagerGetDeviceLiveInfoAggregate, useDeviceManagerGetDeviceSettingsAggregate, useDeviceManagerGetDeviceStatusAggregate, useDeviceManagerGetDeviceStatusAggregateBatch, useDeviceManagerGetLinkedDevices, useDeviceManagerGetLinkedDevicesBatch, useDeviceManagerGetRoleDisplayDefaults, useDeviceManagerGetSettingsSchema, useDeviceManagerGetStreamProfileMap, useDeviceManagerGetStreamSources, useDeviceManagerGetWireableFields, useDeviceManagerGetWrapperActivation, useDeviceManagerListAll, useDeviceManagerListBindableCapsForDeviceType, useDeviceManagerListDeviceIdsByCaps, useDeviceManagerListLocationDescriptions, useDeviceManagerListLocationIcons, useDeviceManagerListLocations, useDeviceManagerListPersistedByAddon, useDeviceManagerListSiteZones, useDeviceManagerListWrappersForCap, useDeviceManagerLoadConfig, useDeviceManagerLoadMeta, useDeviceManagerLoadRuntimeState, useDeviceManagerMigrateDevice, useDeviceManagerPersistConfig, useDeviceManagerProbeStreams, useDeviceManagerProviderCreationType, useDeviceManagerProviderDiscoveryParamsSchema, useDeviceManagerRegisterDevice, useDeviceManagerRemove, useDeviceManagerRemoveByIntegration, useDeviceManagerRemoveDevice, useDeviceManagerRemoveLocation, useDeviceManagerRemoveSiteZone, useDeviceManagerRenameLocation, useDeviceManagerRenameSiteZone, useDeviceManagerRunDeviceAction, useDeviceManagerSetChildLayout, useDeviceManagerSetDisabled, useDeviceManagerSetDisplay, useDeviceManagerSetIntegrationId, useDeviceManagerSetLinkDeviceId, useDeviceManagerSetLocation, useDeviceManagerSetLocationDescription, useDeviceManagerSetLocationIcon, useDeviceManagerSetLocationZone, useDeviceManagerSetMetadata, useDeviceManagerSetName, useDeviceManagerSetPrimaryChildEntityId, useDeviceManagerSetRole, useDeviceManagerSetRoleDisplayDefaults, useDeviceManagerSetSiteZone, useDeviceManagerSetStreamProfileMap, useDeviceManagerSetType, useDeviceManagerSetWrapperActive, useDeviceManagerTestCreationField, useDeviceManagerTestField, useDeviceManagerUpdateConfig, useDeviceManagerUpdateDeviceField, useDeviceManagerUpdateDeviceFieldsBatch, useDeviceNetworkLink, useDeviceOpsGetConfigEntries, useDeviceOpsGetRawState, useDeviceOpsGetSettingsSchema, useDeviceOpsGetStreamSources, useDeviceOpsRemoveDevice, useDeviceOpsRunAction, useDeviceOpsSetConfig, useDeviceProviderAdoptDiscoveredDevice, useDeviceProviderCreateDevice, useDeviceProviderDiscoverDevices, useDeviceProviderGetChildCreationSchema, useDeviceProviderGetDevices, useDeviceProviderGetDiscoveryParamsSchema, useDeviceProviderGetManualCreationType, useDeviceProviderGetStatus, useDeviceProviderReloadDevice, useDeviceProviderStart, useDeviceProviderStop, useDeviceProviderSupportsDiscovery, useDeviceProviderSupportsManualCreation, useDeviceProviderTestCreationField, useDeviceProxy, useDeviceQuickDetailOpen, useDeviceSnapshot, useDeviceSnapshotImage, useDeviceState, useDeviceStateClaimFields, useDeviceStateGetAllSnapshots, useDeviceStateGetCapSlice, useDeviceStateGetNativeCapSlice, useDeviceStateGetSnapshot, useDeviceStateListClaims, useDeviceStatePatchOwnedFields, useDeviceStateReleaseClaim, useDeviceStateSetCapSlice, useDeviceStateSlice, useDeviceStatusGetStatus, useDeviceWebrtc, useDevices, useDoorbellEvents, useDoorbellGetStatus, useEnumSensorGetStatus, useEventEmitterGetStatus, useEventInvalidation, useEventStreamLatest, useEventStreamMap, useFaceGalleryAssignFace, useFaceGalleryAssignFaces, useFaceGalleryAuditIdentitySamples, useFaceGalleryCreateIdentity, useFaceGalleryDeleteFace, useFaceGalleryDeleteIdentity, useFaceGalleryGetFaceByTrack, useFaceGalleryGetFaceMedia, useFaceGalleryListIdentities, useFaceGalleryListIdentitySamples, useFaceGalleryListRecentFaces, useFaceGalleryRemoveSample, useFaceGalleryRenameIdentity, useFaceGallerySuggestFaceClusters, useFaceGalleryUnassignFace, useFaceGalleryUnassignFaces, useFanControlGetStatus, useFanControlSetDirection, useFanControlSetOscillating, useFanControlSetPercentage, useFanControlSetPreset, useFeatureProbeGetStatus, useFloodGetStatus, useGasGetStatus, useHumidifierGetStatus, useHumidifierSetMode, useHumidifierSetOn, useHumidifierSetTargetHumidity, useHumiditySensorGetStatus, useImageGetStatus, useImageSettingsGetOptions, useImageSettingsGetStatus, useImageSettingsSetSettings, useIntegrationsCreate, useIntegrationsDelete, useIntegrationsGet, useIntegrationsGetAvailableTypes, useIntegrationsGetByAddonId, useIntegrationsGetSettings, useIntegrationsList, useIntegrationsSetSettings, useIntegrationsTestConnection, useIntegrationsUpdate, useIntercomEndTalkSession, useIntercomGetStatus, useIntercomHandleAnswer, useIntercomPushTalkAudio, useIntercomStartSession, useIntercomStartTalkSession, useIntercomStopSession, useIsMidWidth, useIsMobile, useLawnMowerControlDock, useLawnMowerControlGetStatus, useLawnMowerControlPause, useLawnMowerControlStartMowing, useLiveBuffer, useLiveEvent, useLlmCancel, useLlmDeleteModel, useLlmDeleteProfile, useLlmGenerate, useLlmGenerateVision, useLlmGetDefaults, useLlmGetRuntimeStatus, useLlmGetUsage, useLlmInstallModel, useLlmListModelCatalog, useLlmListModels, useLlmListNodeModels, useLlmListProfileKinds, useLlmListProfiles, useLlmListRuntimeNodes, useLlmResolveModelRef, useLlmSetDefault, useLlmStartRuntime, useLlmStopRuntime, useLlmTestProfile, useLlmUpsertProfile, useLocalNetworkAddCustomAddress, useLocalNetworkDownloadCa, useLocalNetworkGetAddresses, useLocalNetworkGetAllowedAddresses, useLocalNetworkGetConnectionEndpoints, useLocalNetworkGetHubAddresses, useLocalNetworkGetNotificationEndpoint, useLocalNetworkGetPreferred, useLocalNetworkGetTlsStatus, useLocalNetworkGetViewerEndpoints, useLocalNetworkList, useLocalNetworkRegenerateCertificate, useLocalNetworkRemoveCustomAddress, useLocalNetworkResetAllowlistToBestMatch, useLocalNetworkRevertToGeneratedCertificate, useLocalNetworkSetAddressRole, useLocalNetworkSetAllowedAddresses, useLocalNetworkSetNotificationEndpoint, useLocalNetworkSetViewerEndpoints, useLocalNetworkUploadCertificate, useLockControlGetStatus, useLockControlLock, useLockControlOpen, useLockControlUnlock, useMediaPlayerGetStatus, useMediaPlayerNext, useMediaPlayerPause, useMediaPlayerPlay, useMediaPlayerPlayMedia, useMediaPlayerPrevious, useMediaPlayerSeek, useMediaPlayerSelectSource, useMediaPlayerSetMute, useMediaPlayerSetRepeat, useMediaPlayerSetShuffle, useMediaPlayerSetVolume, useMediaPlayerStop, useMeshNetworkGetStatus, useMeshNetworkJoin, useMeshNetworkLeave, useMeshNetworkListPeers, useMeshNetworkLogout, useMeshNetworkStartLogin, useMeshNetworkTestConnection, useMetricsProviderCollectSnapshot, useMetricsProviderGetAddonStats, useMetricsProviderGetCached, useMetricsProviderGetCpuTemperature, useMetricsProviderGetCurrent, useMetricsProviderGetDiskSpace, useMetricsProviderGetGpuInfo, useMetricsProviderGetLoadSeries, useMetricsProviderGetProcessStats, useMetricsProviderListAddonInstances, useMetricsProviderListNodeProcesses, useMotionDetectionAnalyze, useMotionDetectionApplyDeviceSettingsPatch, useMotionDetectionGetDeviceLiveContribution, useMotionDetectionGetDeviceSettingsContribution, useMotionDetectionRemoveCamera, useMotionDetectionReset, useMotionGetStatus, useMotionIsDetected, useMotionTriggerGetStatus, useMotionTriggerSetMotionTrigger, useMotionZonesGetOptions, useMotionZonesGetStatus, useMotionZonesSetZone, useMqttBrokerAddBroker, useMqttBrokerGetBrokerConfig, useMqttBrokerGetStatus, useMqttBrokerListBrokers, useMqttBrokerRemoveBroker, useMqttBrokerStartEmbeddedBroker, useMqttBrokerStopEmbeddedBroker, useMqttBrokerTestConnection, useNativeObjectDetectionGetOptions, useNativeObjectDetectionGetStatus, useNativeObjectDetectionSetEnabled, useNativeObjectDetectionSetSettings, useNavigation, useNavigationGetFeatures, useNavigationGetStatus, useNavigationGoToPoint, useNavigationListActions, useNavigationMove, useNavigationPlaySound, useNavigationRunAction, useNavigationSetLightLevel, useNavigationSetLightMode, useNavigationSetLightOn, useNavigationStop, useNetworkAccessGetEndpoint, useNetworkAccessGetStatus, useNetworkAccessListEndpoints, useNetworkAccessStart, useNetworkAccessStop, useNetworkLinkGetStatus, useNetworkQualityGetAllStats, useNetworkQualityGetDeviceStats, useNetworkQualityReportClientStats, useNodesClusterAddonStatus, useNodesDeployAddon, useNodesDirectory, useNodesExecuteQuery, useNodesGetCapUsageGraph, useNodesGetNodeAddons, useNodesRenameNode, useNodesRestartAddon, useNodesRestartNode, useNodesRestartProcess, useNodesSetProcessLogLevel, useNodesShutdownNode, useNodesTopology, useNodesUndeployAddon, useNotificationOutputDeleteTarget, useNotificationOutputDiscoverTargets, useNotificationOutputGetTarget, useNotificationOutputListTargetKinds, useNotificationOutputListTargets, useNotificationOutputProbeTargetConfig, useNotificationOutputSend, useNotificationOutputSetTargetEnabled, useNotificationOutputTestTarget, useNotificationOutputUpsertTarget, useNotificationRulesActivateAlarmProfile, useNotificationRulesCancelSnooze, useNotificationRulesCreateAlarmProfile, useNotificationRulesCreateRule, useNotificationRulesCreateSequence, useNotificationRulesCreateSnooze, useNotificationRulesDeleteAlarmProfile, useNotificationRulesDeleteRule, useNotificationRulesDeleteSequence, useNotificationRulesGetAlarmConfig, useNotificationRulesGetAlarmSensors, useNotificationRulesGetClipRetentionAsks, useNotificationRulesGetConditionCatalog, useNotificationRulesGetHistory, useNotificationRulesGetRule, useNotificationRulesGetRuleLastRuns, useNotificationRulesGetSequence, useNotificationRulesGetTemplateCatalog, useNotificationRulesListDeviceMutes, useNotificationRulesListRules, useNotificationRulesListSequences, useNotificationRulesListSnoozes, useNotificationRulesPreviewStateSummary, useNotificationRulesPreviewTemplate, useNotificationRulesRenameAlarmProfile, useNotificationRulesResolveArtifactUrl, useNotificationRulesSetAlarmConfig, useNotificationRulesSetDeviceMuted, useNotificationRulesSetRuleEnabled, useNotificationRulesTestRule, useNotificationRulesUpdateRule, useNotificationRulesUpdateSequence, useNotifierCancel, useNotifierGetStatus, useNotifierSend, useNumericSensorGetStatus, useOptimisticSlice, useOptionalSystem, useOptionalWidgetRegistry, useOsdGetStatus, useOsdManagerClearSlotBinding, useOsdManagerCopyDeviceConfiguration, useOsdManagerDeleteTemplate, useOsdManagerGetConditionSupport, useOsdManagerGetDeviceOsd, useOsdManagerGetSourceCatalog, useOsdManagerListTemplates, useOsdManagerPreviewSlot, useOsdManagerRenderDevice, useOsdManagerSetSlotBinding, useOsdManagerUpsertTemplate, useOsdSetOverlay, usePTZ, usePetFeederCallPet, usePetFeederCancelFeed, usePetFeederFeed, usePetFeederGetStatus, usePetFeederMarkFoodReplenished, usePetFeederPlaySound, usePetFeederResetDesiccant, usePetFeederSetChildLock, usePetFeederSetFeedSound, usePetFeederSetIndicatorLight, usePetFeederSetVolume, usePickerSiteZones, usePipelineAnalyticsApplyDeviceSettingsPatch, usePipelineAnalyticsCancelRelocateMedia, usePipelineAnalyticsCancelStorageMigrationMove, usePipelineAnalyticsClearTrackRelation, usePipelineAnalyticsClearTracks, usePipelineAnalyticsCompleteRetrainTrack, usePipelineAnalyticsCountRelocatableMedia, usePipelineAnalyticsCountUnstampedEventMedia, usePipelineAnalyticsDeleteDeviceEvents, usePipelineAnalyticsDeleteTracks, usePipelineAnalyticsDeselectRetrainFrame, usePipelineAnalyticsGetActiveTracks, usePipelineAnalyticsGetAudioEvents, usePipelineAnalyticsGetDeviceLiveContribution, usePipelineAnalyticsGetDeviceSettingsContribution, usePipelineAnalyticsGetEventDensity, usePipelineAnalyticsGetEventDensityBatch, usePipelineAnalyticsGetEventMedia, usePipelineAnalyticsGetEventMediaFootprintByKind, usePipelineAnalyticsGetEventStoreFootprint, usePipelineAnalyticsGetKeyEvents, usePipelineAnalyticsGetKeyEventsBatch, usePipelineAnalyticsGetMediaReclaimStatus, usePipelineAnalyticsGetMotionEvents, usePipelineAnalyticsGetObjectEmbeddingRebuildStatus, usePipelineAnalyticsGetObjectEvents, usePipelineAnalyticsGetRetrainExportUrl, usePipelineAnalyticsGetRetrainFrameImage, usePipelineAnalyticsGetSensorEvents, usePipelineAnalyticsGetStorageMigrationMoveStatus, usePipelineAnalyticsGetTrack, usePipelineAnalyticsGetTrackMedia, usePipelineAnalyticsGetTrainingExportSummary, usePipelineAnalyticsGetTrainingExportUrl, usePipelineAnalyticsListArchivedDebugNotes, usePipelineAnalyticsListBirthDecisions, usePipelineAnalyticsListEventKinds, usePipelineAnalyticsListEventKindsBatch, usePipelineAnalyticsListEventMedia, usePipelineAnalyticsListOpsLog, usePipelineAnalyticsListRecentTracks, usePipelineAnalyticsListRelocateMediaJobs, usePipelineAnalyticsListRetrainAnnotations, usePipelineAnalyticsListRetrainFrames, usePipelineAnalyticsListRetrainStaging, usePipelineAnalyticsListTrackMedia, usePipelineAnalyticsListTrackRelations, usePipelineAnalyticsListTracks, usePipelineAnalyticsOwnersWithMedia, usePipelineAnalyticsPauseForStorageMigration, usePipelineAnalyticsProposeRetrainAnnotations, usePipelineAnalyticsPruneEvents, usePipelineAnalyticsPruneEventsBefore, usePipelineAnalyticsPruneTracksBefore, usePipelineAnalyticsReadLongTermSeries, usePipelineAnalyticsRebuildObjectEmbeddings, usePipelineAnalyticsReclaimDebugMedia, usePipelineAnalyticsReconcileFromDisk, usePipelineAnalyticsRefreshStorageLocationsForMigration, usePipelineAnalyticsRelocateMedia, usePipelineAnalyticsRestageRetrainTrack, usePipelineAnalyticsResumeForStorageMigration, usePipelineAnalyticsSaveRetrainAnnotations, usePipelineAnalyticsSearchObjectEvents, usePipelineAnalyticsSelectRetrainFrames, usePipelineAnalyticsSetTrackFlags, usePipelineAnalyticsSetTrackPurity, usePipelineAnalyticsSetTrackRelation, usePipelineAnalyticsStartStorageMigrationMove, usePipelineAnalyticsWipeAllAnalytics, usePipelineAnalyticsWipeObjectEmbeddings, usePipelineExecutorCacheFrameInPool, usePipelineExecutorClearDeviceOverrides, usePipelineExecutorClearModelBoundDeviceOverrides, usePipelineExecutorDeleteModel, usePipelineExecutorDeleteTemplate, usePipelineExecutorDownloadModel, usePipelineExecutorGetAddonModels, usePipelineExecutorGetAudioCapabilities, usePipelineExecutorGetAvailableEngines, usePipelineExecutorGetCapabilities, usePipelineExecutorGetDefaultSteps, usePipelineExecutorGetDetectionConfigSchema, usePipelineExecutorGetEffectiveTuning, usePipelineExecutorGetEngineProvisioning, usePipelineExecutorGetGlobalPipelineConfig, usePipelineExecutorGetGlobalSteps, usePipelineExecutorGetInferenceDeviceHealth, usePipelineExecutorGetOrchestratorConfigSchema, usePipelineExecutorGetReferenceAudio, usePipelineExecutorGetReferenceAudioFiles, usePipelineExecutorGetReferenceImage, usePipelineExecutorGetSchema, usePipelineExecutorGetSelectedEngine, usePipelineExecutorGetVideoPipelineSteps, usePipelineExecutorInferCached, usePipelineExecutorKillEngine, usePipelineExecutorListLoadedEngines, usePipelineExecutorListReferenceImages, usePipelineExecutorListTemplates, usePipelineExecutorRearmInferenceDevice, usePipelineExecutorRunAudioTest, usePipelineExecutorRunPipeline, usePipelineExecutorRunPipelineBatch, usePipelineExecutorSaveTemplate, usePipelineExecutorSetVideoPipelineSteps, usePipelineExecutorSpinEngine, usePipelineExecutorUncacheFrame, usePipelineExecutorUpdateTemplate, usePipelineExecutorValidatePipeline, usePipelineOrchestratorApplyAutoTune, usePipelineOrchestratorApplyDeviceSettingsPatch, usePipelineOrchestratorAssignAudio, usePipelineOrchestratorAssignPipeline, usePipelineOrchestratorDeleteTemplate, usePipelineOrchestratorGetAgentLoad, usePipelineOrchestratorGetAgentSettings, usePipelineOrchestratorGetAudioAssignment, usePipelineOrchestratorGetAudioAssignments, usePipelineOrchestratorGetAudioNodeLoad, usePipelineOrchestratorGetCameraMetrics, usePipelineOrchestratorGetCameraSettings, usePipelineOrchestratorGetCameraStatus, usePipelineOrchestratorGetCameraStatuses, usePipelineOrchestratorGetCameraStepOverrides, usePipelineOrchestratorGetCameraSwitches, usePipelineOrchestratorGetCapabilityBindings, usePipelineOrchestratorGetClusterModelChoice, usePipelineOrchestratorGetDeviceLiveContribution, usePipelineOrchestratorGetDeviceSettingsContribution, usePipelineOrchestratorGetEffectiveShares, usePipelineOrchestratorGetGlobalMetrics, usePipelineOrchestratorGetIngestOwner, usePipelineOrchestratorGetNodeInferenceDevices, usePipelineOrchestratorGetPipelineAssignment, usePipelineOrchestratorGetPipelineAssignments, usePipelineOrchestratorGetPipelineDevicePin, usePipelineOrchestratorGetPlacementStats, usePipelineOrchestratorGetReconcileFromDiskStatus, usePipelineOrchestratorListAgentSettings, usePipelineOrchestratorListTemplates, usePipelineOrchestratorPauseForStorageMigration, usePipelineOrchestratorPlanAutoTune, usePipelineOrchestratorRebalance, usePipelineOrchestratorReconcileFromDisk, usePipelineOrchestratorRemoveAgentSettings, usePipelineOrchestratorRequestOccupancyLook, usePipelineOrchestratorResetNodePipelineDefaults, usePipelineOrchestratorResolvePipeline, usePipelineOrchestratorResumeForStorageMigration, usePipelineOrchestratorSaveTemplate, usePipelineOrchestratorSetAgentCapabilities, usePipelineOrchestratorSetAgentDecodeLimits, usePipelineOrchestratorSetAgentInferenceDevices, usePipelineOrchestratorSetAgentMaxCameras, usePipelineOrchestratorSetAgentReachableHost, usePipelineOrchestratorSetCameraPipelineForAgent, usePipelineOrchestratorSetCameraSensors, usePipelineOrchestratorSetCameraStepOverride, usePipelineOrchestratorSetCameraStepSettings, usePipelineOrchestratorSetCameraStepToggle, usePipelineOrchestratorSetCameraSwitch, usePipelineOrchestratorSetCapabilityBinding, usePipelineOrchestratorSetLoadBalancingShares, usePipelineOrchestratorSetPipelineDevicePin, usePipelineOrchestratorSetShareSource, usePipelineOrchestratorSuggestShares, usePipelineOrchestratorUnassignAudio, usePipelineOrchestratorUnassignPipeline, usePipelineOrchestratorUpdateTemplate, usePipelineRunnerAttachCamera, usePipelineRunnerDetachCamera, usePipelineRunnerGetAllCameraMetrics, usePipelineRunnerGetCameraMetrics, usePipelineRunnerGetLocalCameras, usePipelineRunnerGetLocalLoad, usePipelineRunnerGetLocalMetrics, usePipelineRunnerGetNativeCrop, usePipelineRunnerGetParkedTrackFrame, usePipelineRunnerParkTrackFrame, usePipelineRunnerReleaseParkedTrackFrames, usePipelineRunnerReportMotion, usePipelineRunnerRequestOccupancyBurst, 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, usePrompt, usePtzAutotrackGetSettings, usePtzAutotrackGetStatus, usePtzAutotrackSetEnabled, usePtzAutotrackSetSettings, usePtzCaptureHomeHere, usePtzContinuousMove, usePtzDeletePreset, usePtzGetHomePreset, usePtzGetHomeReturn, usePtzGetOptions, usePtzGetPosition, usePtzGetPresets, usePtzGetStatus, usePtzGoHome, usePtzGoToPreset, usePtzMove, usePtzSavePreset, usePtzSetAutofocus, usePtzSetHomePreset, usePtzSetHomeReturn, usePtzStop, useRebootReboot, useRecordedPlayback, useRecordingArchiveApplyDeviceSettingsPatch, useRecordingArchiveCancelRelocateJob, useRecordingArchiveCancelStorageMigrationMove, useRecordingArchiveDeleteFootprint, useRecordingArchiveGetAvailabilityBatch, useRecordingArchiveGetDaysWithRecordingsBatch, useRecordingArchiveGetDeviceConfig, useRecordingArchiveGetDeviceLiveContribution, useRecordingArchiveGetDeviceSettingsContribution, useRecordingArchiveGetPlacement, useRecordingArchiveGetRelocateResidue, useRecordingArchiveGetStatus, useRecordingArchiveGetStorageMigrationMoveStatus, useRecordingArchiveGetStorageUsage, useRecordingArchiveListOpsLog, useRecordingArchiveListRelocateJobs, useRecordingArchiveLocateSegment, useRecordingArchivePauseForStorageMigration, useRecordingArchivePlanStorageRebalance, useRecordingArchivePruneFootage, useRecordingArchiveReadGopBytes, useRecordingArchiveReadSegmentBytes, useRecordingArchiveReadWindowBytes, useRecordingArchiveReconcileLedgerAgainstDisk, useRecordingArchiveRefreshStorageLocationsForMigration, useRecordingArchiveRelocateFootage, useRecordingArchiveRenderClip, useRecordingArchiveRenderGif, useRecordingArchiveRescanStorage, useRecordingArchiveResumeForStorageMigration, useRecordingArchiveSetDeviceConfig, useRecordingArchiveSetDevicePlacement, useRecordingArchiveStartStorageMigrationMove, useRecordingArchiveStartStorageRebalance, useRecordingExportCancelExport, useRecordingExportCreateExport, useRecordingExportDeleteExport, useRecordingExportGetDownloadUrl, useRecordingExportGetExport, useRecordingExportListExports, useRecordingExportReadExportBytes, useRecordingGetAvailability, useRecordingGetDaysWithRecordings, useRecordingGetPlayback, useRecordingGetPlaybackOptions, useRecordingListSources, useRecordingOnboardGetOptions, useRecordingOnboardGetStatus, useRecordingOnboardSetSettings, useRecordingSignalGetStatus, useRemoteComponent, useRoleDisplayDefaults, useSceneMonitorCaptureReference, useSceneMonitorCreateScene, useSceneMonitorDeleteReference, useSceneMonitorDeleteScene, useSceneMonitorGetStatus, useSceneMonitorListScenes, useSceneMonitorListScenesBatch, useSceneMonitorRecheckNow, useSceneMonitorResetScene, useSceneMonitorUpdateScene, useScriptRunnerGetStatus, useScriptRunnerRun, useScriptRunnerStop, useScrubController, useServerManagementApplyServerUpdate, useServerManagementCheckServerUpdate, useServerManagementGetServerPackageStatus, useServerManagementRestartServer, useServerManagementRollbackServerUpdate, useSettingsStoreAggregate, useSettingsStoreCount, useSettingsStoreDeclareCollection, useSettingsStoreDelete, useSettingsStoreDeleteWhere, useSettingsStoreGet, useSettingsStoreHistogram, useSettingsStoreInsert, useSettingsStoreInsertMany, useSettingsStoreIsEmpty, useSettingsStoreQuery, useSettingsStoreSet, useSettingsStoreUpdate, useSettingsStoreUpdateWhere, useSettingsStoreUpsert, useSmokeGetStatus, useSnapshotApplyDeviceSettingsPatch, useSnapshotGetDebugState, useSnapshotGetDeviceLiveContribution, useSnapshotGetDeviceSettingsContribution, useSnapshotGetSnapshot, useSnapshotGetSnapshotLinks, useSnapshotGetSnapshotOverview, useSnapshotGetStatus, useSnapshotInvalidateCache, useStationaryOverlay, useStorageAbortUpload, useStorageBeginDownload, useStorageBeginUpload, useStorageDelete, useStorageDeleteLocation, useStorageEndDownload, useStorageExists, useStorageFinalizeUpload, useStorageGetAvailableSpace, useStorageList, useStorageListDrainProgress, useStorageListLocationDeclarations, useStorageListLocations, useStorageListProviders, useStorageMigrationCancel, useStorageMigrationCleanupCancel, useStorageMigrationCleanupStart, useStorageMigrationCleanupStatus, useStorageMigrationDrain, useStorageMigrationHistory, useStorageMigrationMovers, useStorageMigrationPlan, useStorageMigrationResidue, useStorageMigrationStart, useStorageMigrationStatus, useStorageRead, useStorageReadChunk, useStorageResolve, useStorageTestConfig, useStorageTestLocation, useStorageUpsertLocation, useStorageWrite, useStorageWriteChunk, useStoredGroupBy, useStreamBrokerAcquireEgressTranscode, useStreamBrokerApplyDeviceSettingsPatch, useStreamBrokerAssignProfile, useStreamBrokerFetchEventMedia, useStreamBrokerForgetDeviceHardware, useStreamBrokerGetAllRtspEntries, useStreamBrokerGetBrokerStats, useStreamBrokerGetDeviceAudioMute, useStreamBrokerGetDeviceLiveContribution, useStreamBrokerGetDeviceSettingsContribution, useStreamBrokerGetPreBufferInfo, useStreamBrokerGetRtspEntry, useStreamBrokerGetRtspPort, useStreamBrokerGetStreamUrl, useStreamBrokerGetStreamWithCodec, useStreamBrokerIsRtspEnabled, useStreamBrokerKillClient, useStreamBrokerListAllCameraStreams, useStreamBrokerListAllProfileSlots, useStreamBrokerListClients, useStreamBrokerProbeStream, useStreamBrokerProduceEventMedia, useStreamBrokerPublishCameraStream, useStreamBrokerPullAudioChunks, useStreamBrokerPullFrameHandles, useStreamBrokerRegenerateRtspToken, useStreamBrokerReleaseEgressTranscode, useStreamBrokerReleaseStreamWithCodec, useStreamBrokerRenderPreBufferClip, useStreamBrokerReportStreamSignal, useStreamBrokerRestartProfile, useStreamBrokerRetractCameraStream, useStreamBrokerSetDeviceAudioMute, useStreamBrokerSetPreBufferDuration, useStreamBrokerSetRtspEnabled, useStreamBrokerSubscribeAudioChunks, useStreamBrokerSubscribeFrames, useStreamBrokerUnassignProfile, useStreamBrokerUnsubscribeAudioChunks, useStreamBrokerUnsubscribeFrames, useStreamCatalogGetCatalog, useStreamParamsGetConfigSchema, useStreamParamsGetOptions, useStreamParamsGetStatus, useStreamParamsSetProfile, useStreamSignalsListSignals, useSwitchGetStatus, useSwitchSetState, useSystem, useSystemDetectSiteLocation, useSystemFeatureFlags, useSystemForceRetentionCleanup, useSystemGetFailureContributions, useSystemGetLoadContributions, useSystemGetLoggingSettings, useSystemGetRequestCensus, useSystemGetRetentionConfig, useSystemGetSiteLocation, useSystemHealth, useSystemInfo, useSystemMutation, useSystemNetworkAddresses, useSystemQuery, useSystemSetLoggingSettings, useSystemSetRetentionConfig, useSystemSetSiteLocation, useTamperGetStatus, useTemperatureSensorGetStatus, useTerminalSessionAdoptLegacyMonitor, useTerminalSessionClose, useTerminalSessionCreateInstance, useTerminalSessionDeleteInstance, useTerminalSessionListInstances, useTerminalSessionListLegacyCameras, useTerminalSessionListProfiles, useTerminalSessionListSessions, useTerminalSessionOpenSession, useTerminalSessionPullOutput, useTerminalSessionResize, useTerminalSessionSetInstanceEnabled, useTerminalSessionUpdateInstance, useTerminalSessionWriteInput, useThemeMode, useToastOnToast, useTurnProviderGetTurnServers, useUpdateGetStatus, useUpdateInstallUpdate, useUrlQueryParam, 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, useVideoclipsDialClipStream, useVideoclipsGetClipPlayback, useVideoclipsGetPlaybackOptions, useVideoclipsListClips, useVideoclipsListSources, useVideoclipsOfferClipBytes, useVideoclipsReadClipBytes, useVodPlayback, useWaterHeaterGetStatus, useWaterHeaterSetAway, useWaterHeaterSetOperationMode, useWaterHeaterSetTargetTemp, useWeatherGetStatus, useWebrtcSessionAddIceCandidate, useWebrtcSessionApplyDownlinkProbe, useWebrtcSessionCloseSession, useWebrtcSessionCreateSession, useWebrtcSessionGetIceCandidates, useWebrtcSessionGetSessionDebug, useWebrtcSessionGetSessionState, useWebrtcSessionHandleAnswer, useWebrtcSessionHandleOffer, useWebrtcSessionHasAdaptiveBitrate, useWebrtcSessionListStreams, useWidget, useWidgetMetadata, useWidgetRegistry, useZoneAnalyticsGetCameraHistory, useZoneAnalyticsGetCurrentSnapshot, useZoneAnalyticsGetCurrentSnapshotBatch, useZoneAnalyticsGetUnzonedHistory, useZoneAnalyticsGetZoneHistory, useZoneEditing, useZoneRulesListRules, useZoneRulesSetRules, useZonesAddZone, useZonesListZones, useZonesRemoveZone, useZonesUpdateZone, vacuumStateMeta, validateScopes, valveStateMeta, variantLabel, waterHeaterPhase, waterHeaterTint, weatherConditionMeta, weatherTint, withResolvedParentDetail, withUseRootModel, writeStoredGroupBy };
|
|
60997
|
+
export { AddonGlobalSettingsForm, AdminLinkQuickAction, AgentStepEditor, AlarmHeroCard, AlarmInlineControl as AlarmPanelInlineControl, AppShell, ArcKnob, AudioClassificationList, AudioLevelWaveform, AudioWaveform, AutomationHeroCard, AutomationInlineControl, AutotrackSection, BTN_COMPACT, BTN_COMPACT_DANGER, BTN_COMPACT_PRIMARY, BTN_COMPACT_WARNING, BackToStepsButton, 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, ConfigNotificationTargetMultiSelectFieldView, ConfigNotificationTargetSelectFieldView, 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_PICKER_GROUP_STORAGE_KEY, DEVICE_ROLE_META, DEVICE_TYPE_CONTROL, DEVICE_TYPE_META, DISPLAY_ICON_REGISTRY, DataTable, DataTableFilterBar, DetectionCanvas, DetectionOverlay, DetectionResultTree, DevShell, DeviceActivityPanel, DeviceBatchToolbar, DeviceCard, DeviceContextProvider, DeviceExportPanel, DeviceFilterBar, DeviceGrid, DeviceItem, DeviceList, DeviceMultiSelectField, DevicePicker, DeviceQuickDetailProvider, DeviceSelectField, DeviceSelectorPicker, DeviceStepMatrix, DevicesFailedLine, DevicesLoadingLine, DevicesWidenWarning, Dialog, DialogBody, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, DialogTrigger, DiscoveryPanel, DoorbellRecentPanel, Dropdown, DropdownContent, DropdownItem, DropdownTrigger, DummyHeroCard, DummyInline, EMPTY_DATA_TABLE_FILTER, EVENT_KIND_ICONS, EmptyState, EndpointResultsCard, EndpointTestCard, ErrorBox, EventKindGlyph, EventStream, ExtensionsPanel, FILL, FLEET_LIST_GC_TIME_MS, FLEET_LIST_QUERY_KEY, FLEET_LIST_STALE_TIME_MS, FanHeroCard, FanInlineControl, FanPanel, FilterBar, FloatingEventStream, FloatingLogStream, FloatingPanel, FormField$1 as FormField, GRID_GAP, GRID_PAIRED, GRID_QUICK_STATS, GateBadge, GateControl, GripTrack, GroupedModelSelector, HOST_WIDGETS, HUB_SESSION_RUN_MS, HlsVideo, HoverZoomImage, HubSessionTestCard, HumidifierHeroCard, HumidifierInlineControl, INPUT_COMPACT, INPUT_SHELL, IconAction, IconButton, IconPicker, ImageHeroCard, ImageInlineControl, ImageSelector, InferenceConfigSelector, Input, KebabMenu, KeyValueList, LIST_ROW, Label, LawnMowerHeroCard, LawnMowerInlineControl, LayeredSettingsForm, LightHeroCard, LightInlineControl, LockHeroCard, LockInlineControl, LockPanel, LogStream, LoginForm, MODE_COLOR, MaskShapeCanvas, MediaPlayerHeroCard, MediaPlayerInlineControl, MediaPlayerPanel, MobileDrawer, ModelPicker, MotionZonesSettings, NAVIGATION_DRIVE_INTERVAL_MS, NatResultCard, NavigationPanel, NetworkLinkBadge, NodeMultiSelectField, NodePicker, NodeSelectField, NotificationTargetSelectField, NotificationTargetsField, OPTION_SELECT_SEARCH_MIN_OPTIONS, OfflineBadge, OptionSelect, PHASE_CONFIG, PICKER_CHIP_LIMIT, PICKER_DEFAULT_GROUP_BY, PICKER_GROUP_BY_MODES, PICKER_GROUP_COLLAPSE_AT, PICKER_NONE_KEY, PICKER_NOUN_PLURAL, PICKER_NO_FILTERS, PICKER_PAGE_SIZE, PICKER_SEARCH_DEBOUNCE_MS, PICKER_WINDOW, PRIORITY, PTZOverlay, PageHeader, PhaseIcon, PipelineBuilder, PipelineRuntimeSelector, PipelineStep, PlaceholderChipField, PlayerOverlaysProvider, Popover, PopoverContent, PopoverRowAction, PopoverTrigger, PrimaryChildPicker, PrivacyMaskSettings, ProviderBadge, PtzPanel, QrCode, RECONNECT_POLICY, RECORDED_PLAYBACK_MODES, RIGHT, ROI_AREA_WARN_FRACTION, ROLE_DESCRIPTOR, RadialGauge, RecordedPlaybackProvider, RecordingPanel, ResponseLog, RoleDisplayDefaultsFromServer, RoleDisplayDefaultsProvider, RootModelSourceControl, RootSuppliedModelNote, RunReport, SCENE_CAPTURE_VARIANTS, SECTION_BODY, SECTION_CARD, SECTION_HEADER, SETTING_ROW, SETTING_ROW_LABEL, SETTING_ROW_STACK_BREAKPOINT, SETTING_ROW_VALUE, SETTING_ROW_VALUE_TEXT, SNAPSHOT_MEDIA_PATH, SPLIT_PANEL_OUTER, SPLIT_PANEL_SIDE, STACK_GAP, STATE_COLOR, STEP_DOCK_WIDTH_PX, SceneMonitorEditor, ScopePicker, ScriptHeroCard, ScriptInlineControl, ScrollArea, SectionCard, SegmentedChoice, Select, SelectedChip, SemanticBadge, SensorHeroCard, SensorInlineControl, SensorValueAtom, Separator, SettingRow, Sidebar, SidebarItem, Skeleton, SlideToggle, SnapshotButton, SortHeaderButton, StatCard, StateValuesStream, StatusBadge, StepDetailDock, StepInspectorPanel, StepModelRow, StepTimings, Stepper, StreamBrokerSelector, StreamDebugOverlay, StreamPanel, Switch, SwitchHeroCard, SwitchInlineControl, SwitchPanel, SystemProvider, TABLE_SCROLL_MAX_H, TEXT_FIELD_LABEL, TEXT_HINT, TEXT_METRIC, TEXT_SECTION_LABEL, TEXT_VALUE, TIMEZONES, Tabs, TabsContent, TabsList, TabsTrigger, TapToggle, ThemeProvider, ThermostatHeroCard, ThermostatInlineControl, TimezoneSelector, Tooltip, TooltipContent, TooltipTrigger, UnitPicker, VacuumHeroCard, VacuumInlineControl, ValueReadout, ValveHeroCard, ValveInlineControl, VersionBadge, VodPlaybackProvider, WaterHeaterHeroCard, WaterHeaterInlineControl, WeatherHeroCard, WeatherInlineControl, WidgetMetricCard, WidgetPanel, WidgetRegistryProvider, WidgetSlot, ZoneEditingProvider, MicOff as a, acceleratorLabel, acceleratorShortLabel, agentColumnKey, allDeviceTypeFilterOptions, applyFleetQueryDefaults, applyPickerFilters, ariaSortForColumn, badgeFor, bindsToModel, buildPeerConnectionConfig, buildStepTreeFromSchema, EyeOff as c, catalogHasDraft, childEntityId, childListName, chipOverflow, classifyAddressScope, classifyCapability, classifySessionVerdict, clearPickerGroup, cn, columnsForContext, compareSrflxMappings, containerChildToRef, countableDevices, coverHighlight, coverageLine, createSharedContext, createTheme, cursorFractionFor, darkColors, dataTableFacets, defaultOfField, defaultTheme, deriveDeviceKind, deriveWebrtcDebugStats, describeDeviceSelector, deviceIntegrationResolver, deviceListStateOf, deviceMatchesFilter, deviceOptionLabel, deviceRoleMeta, deviceRoleMetaOf, deviceTypeLabel, deviceTypeMeta, deviceTypeMetaOf, devicesToOptions, dockBox, draftFromQuery, emptyDevicesWidens, emptySessionRun, ensureMfHostInit, eventKindLabel, filterDataTableRows, filterDeviceOptions, filterOptions as filterOptionSelectOptions, filterPickerDevices, finalizeSessionRun, findTimezone, flattenPickerGrouping, flattenPickerRows, fleetViewOf, formatControlDateTime, formatLastSeen, formatNumeric, formatSettingValue, freezeVerdict, fuzzyMatch, getClassColor, getPhaseVisual, groupAgentColumns, groupChildrenByLayout, groupPickerDevices, groupPickerDevicesBy, hardwareLabel, hubOrigin, hubPath, hubUrl, hubWsUrl, humanDuration, humidifierTint, Mic as i, initialScrubState, insertAtSelection, isAbsentProvider, isDataTableFilterActive, isFieldVisible, isGroupExpanded, isValueField, Camera as l, lawnMowerActivityMeta, lightColors, loadRemoteBundle, makeScrubBridge, metadataEntries, metadataString, mirror, mountAddonPage, mountPath, Square as n, nextGridPosition, nextReconnectAction, nextSort, nextSortDirection, nextTableSort, normalizeForSearch, ImageOff as o, offListSelections, openTopLayer, optionSearchText as optionSelectSearchText, orphanDeviceLabel, overrideEntityIdFromLink, pageRows, parentDetailOf, parseIceCandidate, parsePickerGroupBy, parseRecordedServerMessage, partitionSelected as partitionOptionSelectSelected, partitionSuggested, pickerFacetFilterShown, pickerFacetKey, pickerFacetOptions, pickerFiltersActive, pickerGroupKey, pickerHiddenSelectedCount, pickerLocationKey, pickerQueryTokens, pickerRowFacts, pickerSearchText, pickerZoneFilterSuspended, pinnedStreamChoices, providerIcons, RotateCcw as r, readStoredGroupBy, reduceSessionRun, resetHubMountForTests, resetPickerFilters, resolveContainerPrimary, resolveControlAlign, resolveDeviceControl, resolveDeviceIntegration, resolveDisplayIcon, resolveEffectiveDefaultModel, resolveEffectiveStepModel, resolveEventKindIcon, resolveSearchable as resolveOptionSelectSearchable, resolveParentNames, resolvePrimaryChild, resolveSelectedDevices, resolveSensorDisplay, resolveStepDefaultModel, resolveTableLayout, roiTooLarge, rootSourceState, routerBasename, Grid2x2 as s, sameLocationSuggestions, scrubReducer, searchSteps, selectPickerGroup, selectedDeviceOptions, serializeRecordedCommand, settingsModelIdFor, shouldCommit, shouldEmit, shouldShowAddNewFooter, shouldShowUseQueryRow, shouldUseSingleNode, showsNoCamerasHint, sortRows, sortRowsByColumn, statusIcons, statusLine, stepFieldDomId, stepHasModelForFormat, stepLocalFields, stepModelOptions, stripParentNamePrefix, summarizeHubCandidates, Trash2 as t, tabForSelector, tankAlert, themeToCss, toStationaryOverlayBox, toggleDataTableFacet, togglePickerDevice, togglePickerKey, trpc, typeLabel, createLucideIcon as u, useAccessoriesGetStatus, useAccessoriesSetChildHidden, useAddonPagesListPages, useAddonSettingsGetDeviceSettings, useAddonSettingsGetGlobalSettings, useAddonSettingsGetIntegrationSettings, 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, useAlert, useAlertsDismiss, useAlertsEmit, useAlertsGetUnreadCount, useAlertsList, useAlertsMarkAllRead, useAlertsMarkRead, useAlertsUpdate, useAllWidgets, useAmbientLightSensorGetStatus, useAudioAnalysisApplyDeviceSettingsPatch, useAudioAnalysisGetDeviceLiveContribution, useAudioAnalysisGetDeviceSettingsContribution, useAudioAnalysisResolveDeviceSettings, useAudioAnalyzerAnalyseChunk, useAudioAnalyzerAttachDevice, useAudioAnalyzerClassify, useAudioAnalyzerDetachDevice, useAudioAnalyzerDispose, useAudioAnalyzerIsReady, useAudioAnalyzerReprobeAudioEngine, useAudioCodecCanHandle, useAudioCodecCloseSession, useAudioCodecCreateDecodeSession, useAudioCodecCreateEncodeSession, useAudioCodecFlushEncode, useAudioCodecListActiveSessions, useAudioCodecListSupportedCodecs, useAudioCodecPullEncoded, useAudioCodecPullPcm, useAudioCodecPushEncodedFrame, useAudioCodecPushPcm, useAudioMetricsGetCurrentSnapshot, useAudioMetricsGetHistory, useAutomationControlDisable, useAutomationControlEnable, useAutomationControlGetStatus, useAutomationControlTrigger, useBackupCancel, useBackupDelete, useBackupDeleteSchedule, useBackupGetEntries, useBackupList, useBackupListArchives, useBackupListDestinations, useBackupListLocations, useBackupListRuns, 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, useCalendarsGetPreferences, useCalendarsListCalendars, useCalendarsListEvents, useCalendarsSetCalendarPreference, useCameraCredentialsGetCredentials, useCameraCredentialsGetStatus, useCameraGridLayoutApplyDeviceSettingsPatch, useCameraGridLayoutGetDeviceLiveContribution, useCameraGridLayoutGetDeviceSettingsContribution, useCameraGridLayoutGetLayout, useCameraGridLayoutSaveLayout, useCameraPipelineConfigApplyDeviceSettingsPatch, useCameraPipelineConfigGetDeviceLiveContribution, useCameraPipelineConfigGetDeviceSettingsContribution, useCameraStreamsGetBrokerStreams, useCameraStreamsGetCameraStreams, useCameraStreamsGetProfileRtspEntries, useCameraStreamsGetRtspEntries, useCameraStreamsPickStream, useCapabilityPresence, useCarbonMonoxideGetStatus, useClimateControlGetStatus, useClimateControlSetFanMode, useClimateControlSetMode, useClimateControlSetPreset, useClimateControlSetSwingHorizontal, useClimateControlSetSwingVertical, useClimateControlSetTarget, useClimateControlSetTargetHumidity, useClimateControlSetTargetRange, useClusterNodes, useClusterTopology, useColorGetStatus, useColorSetColor, useConfirm, useConnectionTestDescribeTest, useConnectionTestTestSettings, useConnectivityGetStatus, useConsumablesGetStatus, useConsumablesReset, useContactGetStatus, useContainerChildren, useControlGetStatus, useControlSetValue, useCoreBlocksCompile, useCoreBlocksCreate, useCoreBlocksCreateComposition, useCoreBlocksDelete, useCoreBlocksGet, useCoreBlocksGetBlockSettings, useCoreBlocksGetComposition, useCoreBlocksGetCustomization, useCoreBlocksGetTypeDefs, useCoreBlocksList, useCoreBlocksListComposableCaps, useCoreBlocksListCompositions, useCoreBlocksRestart, useCoreBlocksSetEnabled, useCoreBlocksUpdate, useCoreBlocksUpdateBlockSettings, useCoreBlocksUpdateComposition, useCoreBlocksValidateComposition, useCoverClose, useCoverGetStatus, useCoverOpen, useCoverSetPosition, useCoverSetTiltPosition, useCoverStop, useCustomFieldRenderer, useDataTableFilter, useDayNightGetOptions, useDayNightGetStatus, useDayNightSetSettings, useDebouncedString, useDecoderGetInfo, useDecoderReprobeHwaccel, useDetectionPipelineApplyDeviceSettingsPatch, useDetectionPipelineGetDeviceLiveContribution, useDetectionPipelineGetDeviceSettingsContribution, useDevShell, useDevice, useDeviceAdminLink, useDeviceAdminLinkGetAdminLink, 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, useDeviceExtensionListCandidates, useDeviceExtensionListSlots, useDeviceExtensionListSources, useDeviceExtensionSetSlot, useDeviceId, useDeviceListPageSize, useDeviceManagerAddLocation, useDeviceManagerAdoptDevice, useDeviceManagerAdoptionAdopt, useDeviceManagerAdoptionCancelJob, useDeviceManagerAdoptionListCandidateFilters, useDeviceManagerAdoptionListCandidates, useDeviceManagerAdoptionListJobs, useDeviceManagerAdoptionRefresh, useDeviceManagerAdoptionRelease, useDeviceManagerAdoptionResync, useDeviceManagerAdoptionStartJob, useDeviceManagerAllocateDeviceId, useDeviceManagerApplyInitialMeta, useDeviceManagerCreateDevice, useDeviceManagerDisable, useDeviceManagerDiscoverAllProviders, useDeviceManagerDiscoverDevices, useDeviceManagerDiscoverProvider, useDeviceManagerDiscoveryProviders, useDeviceManagerEnable, useDeviceManagerGetAllBindings, useDeviceManagerGetBindings, useDeviceManagerGetBindingsBatch, useDeviceManagerGetChildren, useDeviceManagerGetChildrenBatch, useDeviceManagerGetConfigSchema, useDeviceManagerGetCreationSchema, useDeviceManagerGetDevice, useDeviceManagerGetDeviceAggregate, useDeviceManagerGetDeviceLiveInfoAggregate, useDeviceManagerGetDeviceSettingsAggregate, useDeviceManagerGetDeviceStatusAggregate, useDeviceManagerGetDeviceStatusAggregateBatch, useDeviceManagerGetLinkedDevices, useDeviceManagerGetLinkedDevicesBatch, useDeviceManagerGetRoleDisplayDefaults, useDeviceManagerGetSettingsSchema, useDeviceManagerGetStreamProfileMap, useDeviceManagerGetStreamSources, useDeviceManagerGetWireableFields, useDeviceManagerGetWrapperActivation, useDeviceManagerListAll, useDeviceManagerListBindableCapsForDeviceType, useDeviceManagerListDeviceIdsByCaps, useDeviceManagerListLocationDescriptions, useDeviceManagerListLocationIcons, useDeviceManagerListLocations, useDeviceManagerListPersistedByAddon, useDeviceManagerListSiteZones, useDeviceManagerListWrappersForCap, useDeviceManagerLoadConfig, useDeviceManagerLoadMeta, useDeviceManagerLoadRuntimeState, useDeviceManagerMigrateDevice, useDeviceManagerPersistConfig, useDeviceManagerProbeStreams, useDeviceManagerProviderCreationType, useDeviceManagerProviderDiscoveryParamsSchema, useDeviceManagerRegisterDevice, useDeviceManagerRemove, useDeviceManagerRemoveByIntegration, useDeviceManagerRemoveDevice, useDeviceManagerRemoveLocation, useDeviceManagerRemoveSiteZone, useDeviceManagerRenameLocation, useDeviceManagerRenameSiteZone, useDeviceManagerRunDeviceAction, useDeviceManagerSetChildLayout, useDeviceManagerSetDisabled, useDeviceManagerSetDisplay, useDeviceManagerSetIntegrationId, useDeviceManagerSetLinkDeviceId, useDeviceManagerSetLocation, useDeviceManagerSetLocationDescription, useDeviceManagerSetLocationIcon, useDeviceManagerSetLocationZone, useDeviceManagerSetMetadata, useDeviceManagerSetName, useDeviceManagerSetPrimaryChildEntityId, useDeviceManagerSetRole, useDeviceManagerSetRoleDisplayDefaults, useDeviceManagerSetSiteZone, useDeviceManagerSetStreamProfileMap, useDeviceManagerSetType, useDeviceManagerSetWrapperActive, useDeviceManagerTestCreationField, useDeviceManagerTestField, useDeviceManagerUpdateConfig, useDeviceManagerUpdateDeviceField, useDeviceManagerUpdateDeviceFieldsBatch, useDeviceNetworkLink, useDeviceOpsGetConfigEntries, useDeviceOpsGetRawState, useDeviceOpsGetSettingsSchema, useDeviceOpsGetStreamSources, useDeviceOpsRemoveDevice, useDeviceOpsRunAction, useDeviceOpsSetConfig, useDeviceProviderAdoptDiscoveredDevice, useDeviceProviderCreateDevice, useDeviceProviderDiscoverDevices, useDeviceProviderGetChildCreationSchema, useDeviceProviderGetDevices, useDeviceProviderGetDiscoveryParamsSchema, useDeviceProviderGetManualCreationType, useDeviceProviderGetStatus, useDeviceProviderReloadDevice, useDeviceProviderStart, useDeviceProviderStop, useDeviceProviderSupportsDiscovery, useDeviceProviderSupportsManualCreation, useDeviceProviderTestCreationField, useDeviceProxy, useDeviceQuickDetailOpen, useDeviceSnapshot, useDeviceSnapshotImage, useDeviceState, useDeviceStateClaimFields, useDeviceStateGetAllSnapshots, useDeviceStateGetCapSlice, useDeviceStateGetNativeCapSlice, useDeviceStateGetSnapshot, useDeviceStateListClaims, useDeviceStatePatchOwnedFields, useDeviceStateReleaseClaim, useDeviceStateSetCapSlice, useDeviceStateSlice, useDeviceStatusGetStatus, useDeviceWebrtc, useDevices, useDoorbellEvents, useDoorbellGetStatus, useEnumSensorGetStatus, useEventEmitterGetStatus, useEventInvalidation, useEventStreamLatest, useEventStreamMap, useFaceGalleryAssignFace, useFaceGalleryAssignFaces, useFaceGalleryAuditIdentitySamples, useFaceGalleryCreateIdentity, useFaceGalleryDeleteFace, useFaceGalleryDeleteIdentity, useFaceGalleryGetFaceByTrack, useFaceGalleryGetFaceMedia, useFaceGalleryListIdentities, useFaceGalleryListIdentitySamples, useFaceGalleryListRecentFaces, useFaceGalleryRemoveSample, useFaceGalleryRenameIdentity, useFaceGallerySuggestFaceClusters, useFaceGalleryUnassignFace, useFaceGalleryUnassignFaces, useFanControlGetStatus, useFanControlSetDirection, useFanControlSetOscillating, useFanControlSetPercentage, useFanControlSetPreset, useFeatureProbeGetStatus, useFloodGetStatus, useGasGetStatus, useHumidifierGetStatus, useHumidifierSetMode, useHumidifierSetOn, useHumidifierSetTargetHumidity, useHumiditySensorGetStatus, useImageGetStatus, useImageSettingsGetOptions, useImageSettingsGetStatus, useImageSettingsSetSettings, useIntegrationsCreate, useIntegrationsDelete, useIntegrationsGet, useIntegrationsGetAvailableTypes, useIntegrationsGetByAddonId, useIntegrationsGetSettings, useIntegrationsList, useIntegrationsSetSettings, useIntegrationsTestConnection, useIntegrationsUpdate, useIntercomEndTalkSession, useIntercomGetStatus, useIntercomHandleAnswer, useIntercomPushTalkAudio, useIntercomStartSession, useIntercomStartTalkSession, useIntercomStopSession, useIsMidWidth, useIsMobile, useLawnMowerControlDock, useLawnMowerControlGetStatus, useLawnMowerControlPause, useLawnMowerControlStartMowing, useLiveBuffer, useLiveEvent, useLlmCancel, useLlmDeleteModel, useLlmDeleteProfile, useLlmGenerate, useLlmGenerateVision, useLlmGetDefaults, useLlmGetRuntimeStatus, useLlmGetUsage, useLlmInstallModel, useLlmListModelCatalog, useLlmListModels, useLlmListNodeModels, useLlmListProfileKinds, useLlmListProfiles, useLlmListRuntimeNodes, useLlmResolveModelRef, useLlmSetDefault, useLlmStartRuntime, useLlmStopRuntime, useLlmTestProfile, useLlmUpsertProfile, useLocalNetworkAddCustomAddress, useLocalNetworkDownloadCa, useLocalNetworkGetAddresses, useLocalNetworkGetAllowedAddresses, useLocalNetworkGetConnectionEndpoints, useLocalNetworkGetHubAddresses, useLocalNetworkGetNotificationEndpoint, useLocalNetworkGetPreferred, useLocalNetworkGetTlsStatus, useLocalNetworkGetViewerEndpoints, useLocalNetworkList, useLocalNetworkRegenerateCertificate, useLocalNetworkRemoveCustomAddress, useLocalNetworkResetAllowlistToBestMatch, useLocalNetworkRevertToGeneratedCertificate, useLocalNetworkSetAddressRole, useLocalNetworkSetAllowedAddresses, useLocalNetworkSetNotificationEndpoint, useLocalNetworkSetViewerEndpoints, useLocalNetworkUploadCertificate, useLockControlGetStatus, useLockControlLock, useLockControlOpen, useLockControlUnlock, useMediaPlayerGetStatus, useMediaPlayerNext, useMediaPlayerPause, useMediaPlayerPlay, useMediaPlayerPlayMedia, useMediaPlayerPrevious, useMediaPlayerSeek, useMediaPlayerSelectSource, useMediaPlayerSetMute, useMediaPlayerSetRepeat, useMediaPlayerSetShuffle, useMediaPlayerSetVolume, useMediaPlayerStop, useMeshNetworkGetStatus, useMeshNetworkJoin, useMeshNetworkLeave, useMeshNetworkListPeers, useMeshNetworkLogout, useMeshNetworkStartLogin, useMeshNetworkTestConnection, useMetricsProviderCollectSnapshot, useMetricsProviderGetAddonStats, useMetricsProviderGetCached, useMetricsProviderGetCpuTemperature, useMetricsProviderGetCurrent, useMetricsProviderGetDiskSpace, useMetricsProviderGetGpuInfo, useMetricsProviderGetLoadSeries, useMetricsProviderGetProcessStats, useMetricsProviderListAddonInstances, useMetricsProviderListNodeProcesses, useMotionDetectionAnalyze, useMotionDetectionApplyDeviceSettingsPatch, useMotionDetectionGetDeviceLiveContribution, useMotionDetectionGetDeviceSettingsContribution, useMotionDetectionRemoveCamera, useMotionDetectionReset, useMotionGetStatus, useMotionIsDetected, useMotionTriggerGetStatus, useMotionTriggerSetMotionTrigger, useMotionZonesGetOptions, useMotionZonesGetStatus, useMotionZonesSetZone, useMqttBrokerAddBroker, useMqttBrokerGetBrokerConfig, useMqttBrokerGetStatus, useMqttBrokerListBrokers, useMqttBrokerRemoveBroker, useMqttBrokerStartEmbeddedBroker, useMqttBrokerStopEmbeddedBroker, useMqttBrokerTestConnection, useNativeObjectDetectionGetOptions, useNativeObjectDetectionGetStatus, useNativeObjectDetectionSetEnabled, useNativeObjectDetectionSetSettings, useNavigation, useNavigationGetFeatures, useNavigationGetStatus, useNavigationGoToPoint, useNavigationListActions, useNavigationMove, useNavigationPlaySound, useNavigationRunAction, useNavigationSetLightLevel, useNavigationSetLightMode, useNavigationSetLightOn, useNavigationStop, useNetworkAccessGetEndpoint, useNetworkAccessGetStatus, useNetworkAccessListEndpoints, useNetworkAccessStart, useNetworkAccessStop, useNetworkLinkGetStatus, useNetworkQualityGetAllStats, useNetworkQualityGetDeviceStats, useNetworkQualityReportClientStats, useNodesClusterAddonStatus, useNodesDeployAddon, useNodesDirectory, useNodesExecuteQuery, useNodesGetCapUsageGraph, useNodesGetNodeAddons, useNodesRenameNode, useNodesRestartAddon, useNodesRestartNode, useNodesRestartProcess, useNodesSetProcessLogLevel, useNodesShutdownNode, useNodesTopology, useNodesUndeployAddon, useNotificationOutputDeleteTarget, useNotificationOutputDiscoverTargets, useNotificationOutputGetTarget, useNotificationOutputListTargetKinds, useNotificationOutputListTargets, useNotificationOutputProbeTargetConfig, useNotificationOutputSend, useNotificationOutputSetTargetEnabled, useNotificationOutputTestTarget, useNotificationOutputUpsertTarget, useNotificationRulesActivateAlarmProfile, useNotificationRulesCancelSnooze, useNotificationRulesCreateAlarmProfile, useNotificationRulesCreateRule, useNotificationRulesCreateSequence, useNotificationRulesCreateSnooze, useNotificationRulesDeleteAlarmProfile, useNotificationRulesDeleteRule, useNotificationRulesDeleteSequence, useNotificationRulesGetAlarmConfig, useNotificationRulesGetAlarmSensors, useNotificationRulesGetClipRetentionAsks, useNotificationRulesGetConditionCatalog, useNotificationRulesGetHistory, useNotificationRulesGetRule, useNotificationRulesGetRuleLastRuns, useNotificationRulesGetSequence, useNotificationRulesGetTemplateCatalog, useNotificationRulesListDeviceMutes, useNotificationRulesListRules, useNotificationRulesListSequences, useNotificationRulesListSnoozes, useNotificationRulesPreviewStateSummary, useNotificationRulesPreviewTemplate, useNotificationRulesRenameAlarmProfile, useNotificationRulesResolveArtifactUrl, useNotificationRulesSetAlarmConfig, useNotificationRulesSetDeviceMuted, useNotificationRulesSetRuleEnabled, useNotificationRulesTestRule, useNotificationRulesUpdateRule, useNotificationRulesUpdateSequence, useNotifierCancel, useNotifierGetStatus, useNotifierSend, useNumericSensorGetStatus, useOptimisticSlice, useOptionalSystem, useOptionalWidgetRegistry, useOsdGetStatus, useOsdManagerClearSlotBinding, useOsdManagerCopyDeviceConfiguration, useOsdManagerDeleteTemplate, useOsdManagerGetConditionSupport, useOsdManagerGetDeviceOsd, useOsdManagerGetSourceCatalog, useOsdManagerListTemplates, useOsdManagerPreviewSlot, useOsdManagerRenderDevice, useOsdManagerSetSlotBinding, useOsdManagerUpsertTemplate, useOsdSetOverlay, usePTZ, usePetFeederCallPet, usePetFeederCancelFeed, usePetFeederFeed, usePetFeederGetStatus, usePetFeederMarkFoodReplenished, usePetFeederPlaySound, usePetFeederResetDesiccant, usePetFeederSetChildLock, usePetFeederSetFeedSound, usePetFeederSetIndicatorLight, usePetFeederSetVolume, usePickerSiteZones, usePipelineAnalyticsApplyDeviceSettingsPatch, usePipelineAnalyticsCancelRelocateMedia, usePipelineAnalyticsCancelStorageMigrationMove, usePipelineAnalyticsClearTrackRelation, usePipelineAnalyticsClearTracks, usePipelineAnalyticsCompleteRetrainTrack, usePipelineAnalyticsCountRelocatableMedia, usePipelineAnalyticsCountUnstampedEventMedia, usePipelineAnalyticsDeleteDeviceEvents, usePipelineAnalyticsDeleteTracks, usePipelineAnalyticsDeselectRetrainFrame, usePipelineAnalyticsGetActiveTracks, usePipelineAnalyticsGetAudioEvents, usePipelineAnalyticsGetDeviceLiveContribution, usePipelineAnalyticsGetDeviceSettingsContribution, usePipelineAnalyticsGetEventDensity, usePipelineAnalyticsGetEventDensityBatch, usePipelineAnalyticsGetEventMedia, usePipelineAnalyticsGetEventMediaFootprintByKind, usePipelineAnalyticsGetEventStoreFootprint, usePipelineAnalyticsGetKeyEvents, usePipelineAnalyticsGetKeyEventsBatch, usePipelineAnalyticsGetMediaReclaimStatus, usePipelineAnalyticsGetMotionEvents, usePipelineAnalyticsGetObjectEmbeddingRebuildStatus, usePipelineAnalyticsGetObjectEvents, usePipelineAnalyticsGetRetrainExportUrl, usePipelineAnalyticsGetRetrainFrameImage, usePipelineAnalyticsGetSensorEvents, usePipelineAnalyticsGetStorageMigrationMoveStatus, usePipelineAnalyticsGetTrack, usePipelineAnalyticsGetTrackMedia, usePipelineAnalyticsGetTrainingExportSummary, usePipelineAnalyticsGetTrainingExportUrl, usePipelineAnalyticsListArchivedDebugNotes, usePipelineAnalyticsListBirthDecisions, usePipelineAnalyticsListEventKinds, usePipelineAnalyticsListEventKindsBatch, usePipelineAnalyticsListEventMedia, usePipelineAnalyticsListOpsLog, usePipelineAnalyticsListRecentTracks, usePipelineAnalyticsListRelocateMediaJobs, usePipelineAnalyticsListRetrainAnnotations, usePipelineAnalyticsListRetrainFrames, usePipelineAnalyticsListRetrainStaging, usePipelineAnalyticsListTrackMedia, usePipelineAnalyticsListTrackRelations, usePipelineAnalyticsListTracks, usePipelineAnalyticsOwnersWithMedia, usePipelineAnalyticsPauseForStorageMigration, usePipelineAnalyticsProposeRetrainAnnotations, usePipelineAnalyticsPruneEvents, usePipelineAnalyticsPruneEventsBefore, usePipelineAnalyticsPruneTracksBefore, usePipelineAnalyticsReadLongTermSeries, usePipelineAnalyticsRebuildObjectEmbeddings, usePipelineAnalyticsReclaimDebugMedia, usePipelineAnalyticsReconcileFromDisk, usePipelineAnalyticsRefreshStorageLocationsForMigration, usePipelineAnalyticsRelocateMedia, usePipelineAnalyticsRestageRetrainTrack, usePipelineAnalyticsResumeForStorageMigration, usePipelineAnalyticsSaveRetrainAnnotations, usePipelineAnalyticsSearchObjectEvents, usePipelineAnalyticsSelectRetrainFrames, usePipelineAnalyticsSetTrackFlags, usePipelineAnalyticsSetTrackPurity, usePipelineAnalyticsSetTrackRelation, usePipelineAnalyticsStartStorageMigrationMove, usePipelineAnalyticsWipeAllAnalytics, usePipelineAnalyticsWipeObjectEmbeddings, usePipelineExecutorCacheFrameInPool, usePipelineExecutorClearDeviceOverrides, usePipelineExecutorClearModelBoundDeviceOverrides, usePipelineExecutorDeleteModel, usePipelineExecutorDownloadModel, usePipelineExecutorGetAddonModels, usePipelineExecutorGetAudioCapabilities, usePipelineExecutorGetAvailableEngines, usePipelineExecutorGetCapabilities, usePipelineExecutorGetDefaultSteps, usePipelineExecutorGetDetectionConfigSchema, usePipelineExecutorGetEffectiveTuning, usePipelineExecutorGetEngineProvisioning, usePipelineExecutorGetGlobalPipelineConfig, usePipelineExecutorGetGlobalSteps, usePipelineExecutorGetInferenceDeviceHealth, usePipelineExecutorGetOrchestratorConfigSchema, usePipelineExecutorGetReferenceAudio, usePipelineExecutorGetReferenceAudioFiles, usePipelineExecutorGetReferenceImage, usePipelineExecutorGetSchema, usePipelineExecutorGetSelectedEngine, usePipelineExecutorGetVideoPipelineSteps, usePipelineExecutorInferCached, usePipelineExecutorKillEngine, usePipelineExecutorListLoadedEngines, usePipelineExecutorListReferenceImages, usePipelineExecutorRearmInferenceDevice, usePipelineExecutorRunAudioTest, usePipelineExecutorRunPipeline, usePipelineExecutorRunPipelineBatch, usePipelineExecutorSetVideoPipelineSteps, usePipelineExecutorSpinEngine, usePipelineExecutorUncacheFrame, usePipelineExecutorValidatePipeline, usePipelineOrchestratorApplyAutoTune, usePipelineOrchestratorApplyDeviceSettingsPatch, usePipelineOrchestratorAssignAudio, usePipelineOrchestratorAssignPipeline, usePipelineOrchestratorGetAgentLoad, usePipelineOrchestratorGetAgentSettings, usePipelineOrchestratorGetAudioAssignment, usePipelineOrchestratorGetAudioAssignments, usePipelineOrchestratorGetAudioNodeLoad, usePipelineOrchestratorGetCameraMetrics, usePipelineOrchestratorGetCameraSettings, usePipelineOrchestratorGetCameraStatus, usePipelineOrchestratorGetCameraStatuses, usePipelineOrchestratorGetCameraStepOverrides, usePipelineOrchestratorGetCameraSwitches, usePipelineOrchestratorGetCapabilityBindings, usePipelineOrchestratorGetClusterModelChoice, usePipelineOrchestratorGetDeviceLiveContribution, usePipelineOrchestratorGetDeviceSettingsContribution, usePipelineOrchestratorGetEffectiveShares, usePipelineOrchestratorGetGlobalMetrics, usePipelineOrchestratorGetIngestOwner, usePipelineOrchestratorGetNodeInferenceDevices, usePipelineOrchestratorGetPipelineAssignment, usePipelineOrchestratorGetPipelineAssignments, usePipelineOrchestratorGetPipelineDevicePin, usePipelineOrchestratorGetPlacementStats, usePipelineOrchestratorGetReconcileFromDiskStatus, usePipelineOrchestratorListAgentSettings, usePipelineOrchestratorPauseForStorageMigration, usePipelineOrchestratorPlanAutoTune, usePipelineOrchestratorRebalance, usePipelineOrchestratorReconcileFromDisk, usePipelineOrchestratorRemoveAgentSettings, usePipelineOrchestratorRequestOccupancyLook, usePipelineOrchestratorResetNodePipelineDefaults, usePipelineOrchestratorResolvePipeline, usePipelineOrchestratorResumeForStorageMigration, usePipelineOrchestratorSetAgentCapabilities, usePipelineOrchestratorSetAgentDecodeLimits, usePipelineOrchestratorSetAgentInferenceDevices, usePipelineOrchestratorSetAgentMaxCameras, usePipelineOrchestratorSetAgentReachableHost, usePipelineOrchestratorSetCameraPipelineForAgent, usePipelineOrchestratorSetCameraSensors, usePipelineOrchestratorSetCameraStepOverride, usePipelineOrchestratorSetCameraStepSettings, usePipelineOrchestratorSetCameraStepToggle, usePipelineOrchestratorSetCameraSwitch, usePipelineOrchestratorSetCapabilityBinding, usePipelineOrchestratorSetLoadBalancingShares, usePipelineOrchestratorSetPipelineDevicePin, usePipelineOrchestratorSetShareSource, usePipelineOrchestratorSuggestShares, usePipelineOrchestratorUnassignAudio, usePipelineOrchestratorUnassignPipeline, usePipelineRunnerAttachCamera, usePipelineRunnerDetachCamera, usePipelineRunnerGetAllCameraMetrics, usePipelineRunnerGetCameraMetrics, usePipelineRunnerGetLocalCameras, usePipelineRunnerGetLocalLoad, usePipelineRunnerGetLocalMetrics, usePipelineRunnerGetNativeCrop, usePipelineRunnerGetParkedTrackFrame, usePipelineRunnerParkTrackFrame, usePipelineRunnerReleaseParkedTrackFrames, usePipelineRunnerReportMotion, usePipelineRunnerRequestOccupancyBurst, 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, usePrompt, usePtzAutotrackGetSettings, usePtzAutotrackGetStatus, usePtzAutotrackSetEnabled, usePtzAutotrackSetSettings, usePtzCaptureHomeHere, usePtzContinuousMove, usePtzDeletePreset, usePtzGetHomePreset, usePtzGetHomeReturn, usePtzGetOptions, usePtzGetPosition, usePtzGetPresets, usePtzGetStatus, usePtzGoHome, usePtzGoToPreset, usePtzMove, usePtzSavePreset, usePtzSetAutofocus, usePtzSetHomePreset, usePtzSetHomeReturn, usePtzStop, useRebootReboot, useRecordedPlayback, useRecordingArchiveApplyDeviceSettingsPatch, useRecordingArchiveCancelRelocateJob, useRecordingArchiveCancelStorageMigrationMove, useRecordingArchiveDeleteFootprint, useRecordingArchiveGetAvailabilityBatch, useRecordingArchiveGetDaysWithRecordingsBatch, useRecordingArchiveGetDeviceConfig, useRecordingArchiveGetDeviceLiveContribution, useRecordingArchiveGetDeviceSettingsContribution, useRecordingArchiveGetPlacement, useRecordingArchiveGetRelocateResidue, useRecordingArchiveGetStatus, useRecordingArchiveGetStorageMigrationMoveStatus, useRecordingArchiveGetStorageUsage, useRecordingArchiveListOpsLog, useRecordingArchiveListRelocateJobs, useRecordingArchiveLocateSegment, useRecordingArchivePauseForStorageMigration, useRecordingArchivePlanStorageRebalance, useRecordingArchivePruneFootage, useRecordingArchiveReadGopBytes, useRecordingArchiveReadSegmentBytes, useRecordingArchiveReadWindowBytes, useRecordingArchiveReconcileLedgerAgainstDisk, useRecordingArchiveRefreshStorageLocationsForMigration, useRecordingArchiveRelocateFootage, useRecordingArchiveRenderClip, useRecordingArchiveRenderGif, useRecordingArchiveRescanStorage, useRecordingArchiveResumeForStorageMigration, useRecordingArchiveSetDeviceConfig, useRecordingArchiveSetDevicePlacement, useRecordingArchiveStartStorageMigrationMove, useRecordingArchiveStartStorageRebalance, useRecordingExportCancelExport, useRecordingExportCreateExport, useRecordingExportDeleteExport, useRecordingExportGetDownloadUrl, useRecordingExportGetExport, useRecordingExportListExports, useRecordingExportReadExportBytes, useRecordingGetAvailability, useRecordingGetDaysWithRecordings, useRecordingGetPlayback, useRecordingGetPlaybackOptions, useRecordingListSources, useRecordingOnboardGetOptions, useRecordingOnboardGetStatus, useRecordingOnboardSetSettings, useRecordingSignalGetStatus, useRemoteComponent, useRoleDisplayDefaults, useSceneMonitorCaptureReference, useSceneMonitorCreateScene, useSceneMonitorDeleteReference, useSceneMonitorDeleteScene, useSceneMonitorGetStatus, useSceneMonitorListScenes, useSceneMonitorListScenesBatch, useSceneMonitorRecheckNow, useSceneMonitorResetScene, useSceneMonitorUpdateScene, useScriptRunnerGetStatus, useScriptRunnerRun, useScriptRunnerStop, useScrubController, useServerManagementApplyServerUpdate, useServerManagementCheckServerUpdate, useServerManagementGetServerPackageStatus, useServerManagementRestartServer, useServerManagementRollbackServerUpdate, useSettingsStoreAggregate, useSettingsStoreCount, useSettingsStoreDeclareCollection, useSettingsStoreDelete, useSettingsStoreDeleteWhere, useSettingsStoreGet, useSettingsStoreHistogram, useSettingsStoreInsert, useSettingsStoreInsertMany, useSettingsStoreIsEmpty, useSettingsStoreQuery, useSettingsStoreSet, useSettingsStoreUpdate, useSettingsStoreUpdateWhere, useSettingsStoreUpsert, useSmokeGetStatus, useSnapshotApplyDeviceSettingsPatch, useSnapshotGetDebugState, useSnapshotGetDeviceLiveContribution, useSnapshotGetDeviceSettingsContribution, useSnapshotGetSnapshot, useSnapshotGetSnapshotLinks, useSnapshotGetSnapshotOverview, useSnapshotGetStatus, useSnapshotInvalidateCache, useStationaryOverlay, useStorageAbortUpload, useStorageBeginDownload, useStorageBeginUpload, useStorageDelete, useStorageDeleteLocation, useStorageEndDownload, useStorageExists, useStorageFinalizeUpload, useStorageGetAvailableSpace, useStorageList, useStorageListDrainProgress, useStorageListLocationDeclarations, useStorageListLocations, useStorageListProviders, useStorageMigrationCancel, useStorageMigrationCleanupCancel, useStorageMigrationCleanupStart, useStorageMigrationCleanupStatus, useStorageMigrationDrain, useStorageMigrationHistory, useStorageMigrationMovers, useStorageMigrationPlan, useStorageMigrationResidue, useStorageMigrationStart, useStorageMigrationStatus, useStorageRead, useStorageReadChunk, useStorageResolve, useStorageTestConfig, useStorageTestLocation, useStorageUpsertLocation, useStorageWrite, useStorageWriteChunk, useStoredGroupBy, useStreamBrokerAcquireEgressTranscode, useStreamBrokerApplyDeviceSettingsPatch, useStreamBrokerAssignProfile, useStreamBrokerFetchEventMedia, useStreamBrokerForgetDeviceHardware, useStreamBrokerGetAllRtspEntries, useStreamBrokerGetBrokerStats, useStreamBrokerGetDeviceAudioMute, useStreamBrokerGetDeviceLiveContribution, useStreamBrokerGetDeviceSettingsContribution, useStreamBrokerGetPreBufferInfo, useStreamBrokerGetRtspEntry, useStreamBrokerGetRtspPort, useStreamBrokerGetStreamUrl, useStreamBrokerGetStreamWithCodec, useStreamBrokerIsRtspEnabled, useStreamBrokerKillClient, useStreamBrokerListAllCameraStreams, useStreamBrokerListAllProfileSlots, useStreamBrokerListClients, useStreamBrokerProbeStream, useStreamBrokerProduceEventMedia, useStreamBrokerPublishCameraStream, useStreamBrokerPullAudioChunks, useStreamBrokerRegenerateRtspToken, useStreamBrokerReleaseEgressTranscode, useStreamBrokerReleaseStreamWithCodec, useStreamBrokerRenderPreBufferClip, useStreamBrokerReportStreamSignal, useStreamBrokerRestartProfile, useStreamBrokerRetractCameraStream, useStreamBrokerSetDeviceAudioMute, useStreamBrokerSetPreBufferDuration, useStreamBrokerSetRtspEnabled, useStreamBrokerSubscribeAudioChunks, useStreamBrokerUnassignProfile, useStreamBrokerUnsubscribeAudioChunks, useStreamCatalogGetCatalog, useStreamParamsGetConfigSchema, useStreamParamsGetOptions, useStreamParamsGetStatus, useStreamParamsSetProfile, useStreamSignalsListSignals, useSwitchGetStatus, useSwitchSetState, useSystem, useSystemDetectSiteLocation, useSystemFeatureFlags, useSystemForceRetentionCleanup, useSystemGetFailureContributions, useSystemGetLoadContributions, useSystemGetLoggingSettings, useSystemGetRequestCensus, useSystemGetRetentionConfig, useSystemGetSiteLocation, useSystemHealth, useSystemInfo, useSystemMutation, useSystemNetworkAddresses, useSystemQuery, useSystemSetLoggingSettings, useSystemSetRetentionConfig, useSystemSetSiteLocation, useTamperGetStatus, useTemperatureSensorGetStatus, useTerminalSessionAdoptLegacyMonitor, useTerminalSessionClose, useTerminalSessionCreateInstance, useTerminalSessionDeleteInstance, useTerminalSessionListInstances, useTerminalSessionListLegacyCameras, useTerminalSessionListProfiles, useTerminalSessionListSessions, useTerminalSessionOpenSession, useTerminalSessionPullOutput, useTerminalSessionResize, useTerminalSessionSetInstanceEnabled, useTerminalSessionUpdateInstance, useTerminalSessionWriteInput, useThemeMode, useToastOnToast, useTurnProviderGetTurnServers, useUpdateGetStatus, useUpdateInstallUpdate, useUrlQueryParam, 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, useVideoclipsDialClipStream, useVideoclipsGetClipPlayback, useVideoclipsGetPlaybackOptions, useVideoclipsListClips, useVideoclipsListSources, useVideoclipsOfferClipBytes, useVideoclipsReadClipBytes, useVodPlayback, useWaterHeaterGetStatus, useWaterHeaterSetAway, useWaterHeaterSetOperationMode, useWaterHeaterSetTargetTemp, useWeatherGetStatus, useWebrtcSessionAddIceCandidate, useWebrtcSessionApplyDownlinkProbe, useWebrtcSessionCloseSession, useWebrtcSessionCreateSession, useWebrtcSessionGetIceCandidates, useWebrtcSessionGetSessionDebug, useWebrtcSessionGetSessionState, useWebrtcSessionHandleAnswer, useWebrtcSessionHandleOffer, useWebrtcSessionHasAdaptiveBitrate, useWebrtcSessionListStreams, useWidget, useWidgetMetadata, useWidgetRegistry, useZoneAnalyticsGetCameraHistory, useZoneAnalyticsGetCurrentSnapshot, useZoneAnalyticsGetCurrentSnapshotBatch, useZoneAnalyticsGetUnzonedHistory, useZoneAnalyticsGetZoneHistory, useZoneEditing, useZoneRulesListRules, useZoneRulesSetRules, useZonesAddZone, useZonesListZones, useZonesRemoveZone, useZonesUpdateZone, vacuumStateMeta, validateScopes, valveStateMeta, variantLabel, waterHeaterPhase, waterHeaterTint, weatherConditionMeta, weatherTint, withResolvedParentDetail, withUseRootModel, writeStoredGroupBy };
|