@camstack/ui-library 1.2.245 → 1.2.246
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 -3
- package/dist/composites/step-inspector/step-detail-dock.d.ts +33 -0
- package/dist/composites/step-inspector/step-search.d.ts +18 -0
- package/dist/generated/system-hooks.d.ts +0 -16
- package/dist/index.cjs +445 -620
- package/dist/index.js +440 -609
- package/package.json +1 -1
- 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/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",
|
|
@@ -7890,14 +7855,6 @@ var usePipelineExecutorGetGlobalPipelineConfig = trpc.pipelineExecutor.getGlobal
|
|
|
7890
7855
|
var usePipelineExecutorGetOrchestratorConfigSchema = trpc.pipelineExecutor.getOrchestratorConfigSchema.useQuery;
|
|
7891
7856
|
/** Generated alias around `trpc.pipelineExecutor.validatePipeline.useQuery`. */
|
|
7892
7857
|
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
7858
|
/** Generated alias around `trpc.pipelineExecutor.getCapabilities.useQuery`. */
|
|
7902
7859
|
var usePipelineExecutorGetCapabilities = trpc.pipelineExecutor.getCapabilities.useQuery;
|
|
7903
7860
|
/** Generated alias around `trpc.pipelineExecutor.getAddonModels.useQuery`. */
|
|
@@ -8044,14 +8001,6 @@ var usePipelineOrchestratorSetCameraSensors = trpc.pipelineOrchestrator.setCamer
|
|
|
8044
8001
|
var usePipelineOrchestratorReconcileFromDisk = trpc.pipelineOrchestrator.reconcileFromDisk.useMutation;
|
|
8045
8002
|
/** Generated alias around `trpc.pipelineOrchestrator.getReconcileFromDiskStatus.useQuery`. */
|
|
8046
8003
|
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
8004
|
/** Generated alias around `trpc.pipelineOrchestrator.getDeviceSettingsContribution.useQuery`. */
|
|
8056
8005
|
var usePipelineOrchestratorGetDeviceSettingsContribution = trpc.pipelineOrchestrator.getDeviceSettingsContribution.useQuery;
|
|
8057
8006
|
/** Generated alias around `trpc.pipelineOrchestrator.getDeviceLiveContribution.useQuery`. */
|
|
@@ -28722,6 +28671,45 @@ function AddonGlobalSettingsForm({ trpc, addonId, nodeId, title, disabled, onAft
|
|
|
28722
28671
|
});
|
|
28723
28672
|
}
|
|
28724
28673
|
//#endregion
|
|
28674
|
+
//#region src/composites/accelerator-label.ts
|
|
28675
|
+
function names(device) {
|
|
28676
|
+
const backend = device.backend.toLowerCase();
|
|
28677
|
+
const dev = device.device.toLowerCase();
|
|
28678
|
+
if (device.key === "cpu" || dev === "cpu" || backend === "cpu") return {
|
|
28679
|
+
label: "CPU",
|
|
28680
|
+
short: "CPU"
|
|
28681
|
+
};
|
|
28682
|
+
if (dev === "npu") return {
|
|
28683
|
+
label: "Intel NPU",
|
|
28684
|
+
short: "NPU"
|
|
28685
|
+
};
|
|
28686
|
+
if (dev === "gpu" || dev === "igpu") return {
|
|
28687
|
+
label: "Intel iGPU",
|
|
28688
|
+
short: "iGPU"
|
|
28689
|
+
};
|
|
28690
|
+
if (backend === "edgetpu") return {
|
|
28691
|
+
label: "Coral Edge TPU",
|
|
28692
|
+
short: "Coral"
|
|
28693
|
+
};
|
|
28694
|
+
if (backend === "coreml") return {
|
|
28695
|
+
label: "Apple Neural Engine",
|
|
28696
|
+
short: "ANE"
|
|
28697
|
+
};
|
|
28698
|
+
const pretty = `${device.backend} ${device.device}`.trim().replace(/\b\w/g, (c) => c.toUpperCase());
|
|
28699
|
+
return {
|
|
28700
|
+
label: pretty.length > 0 ? pretty : device.key,
|
|
28701
|
+
short: device.backend || device.key
|
|
28702
|
+
};
|
|
28703
|
+
}
|
|
28704
|
+
/** "Intel NPU", "Apple Neural Engine", "Coral Edge TPU", "CPU" — Auto tune's names too. */
|
|
28705
|
+
function acceleratorLabel(device) {
|
|
28706
|
+
return names(device).label;
|
|
28707
|
+
}
|
|
28708
|
+
/** "NPU", "ANE", "Coral", "CPU" — chips and tabs. */
|
|
28709
|
+
function acceleratorShortLabel(device) {
|
|
28710
|
+
return names(device).short;
|
|
28711
|
+
}
|
|
28712
|
+
//#endregion
|
|
28725
28713
|
//#region src/composites/grouped-model-selector.tsx
|
|
28726
28714
|
/**
|
|
28727
28715
|
* GroupedModelSelector — the shared Family → Tier → Variant model picker.
|
|
@@ -29949,9 +29937,9 @@ function RootSuppliedModelNote({ rootModel, stepModelId }) {
|
|
|
29949
29937
|
/**
|
|
29950
29938
|
* AgentStepEditor — one step on ONE accelerator: its model and its settings,
|
|
29951
29939
|
* 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
|
|
29940
|
+
* model" dialog uses it. The pipeline pages use the step matrix's panel, which lays
|
|
29941
|
+
* the same parts out across accelerators and layers (D754/D757); the settings
|
|
29942
|
+
* form here is that panel's `LayeredSettingsForm` with one layer.
|
|
29955
29943
|
*/
|
|
29956
29944
|
function AgentStepEditor({ addon, agentDefault, onChangeAgentConfig, engineFormat, effectiveModelId, rootModel }) {
|
|
29957
29945
|
const modelsForFormat = useMemo(() => stepModelOptions(addon.models, engineFormat), [addon.models, engineFormat]);
|
|
@@ -55381,25 +55369,46 @@ function ClassChips({ inputs, outputs }) {
|
|
|
55381
55369
|
* the first column; each device's real format is shown per sub-column instead
|
|
55382
55370
|
* ("Coral Edge TPU · tflite").
|
|
55383
55371
|
*/
|
|
55372
|
+
/** The per-accelerator lines of a column header: name, format, model, off. */
|
|
55373
|
+
function AgentColumnLines({ column }) {
|
|
55374
|
+
const name = column.deviceLabel ?? column.deviceKey;
|
|
55375
|
+
return /* @__PURE__ */ jsxs(Fragment$1, { children: [
|
|
55376
|
+
(name !== void 0 || column.disabled === true) && /* @__PURE__ */ jsxs("div", {
|
|
55377
|
+
className: "flex min-w-0 items-center gap-1",
|
|
55378
|
+
children: [name !== void 0 && /* @__PURE__ */ jsx("span", {
|
|
55379
|
+
className: "truncate text-[10px] font-medium text-foreground/90",
|
|
55380
|
+
children: name
|
|
55381
|
+
}), column.disabled === true && /* @__PURE__ */ jsx("span", {
|
|
55382
|
+
className: "shrink-0 rounded bg-muted px-1 text-[8px] font-semibold uppercase text-foreground-subtle",
|
|
55383
|
+
children: "off"
|
|
55384
|
+
})]
|
|
55385
|
+
}),
|
|
55386
|
+
/* @__PURE__ */ jsx("div", {
|
|
55387
|
+
className: "truncate text-[9px] text-foreground-subtle",
|
|
55388
|
+
children: column.engineLabel
|
|
55389
|
+
}),
|
|
55390
|
+
column.detail !== void 0 && /* @__PURE__ */ jsx("div", {
|
|
55391
|
+
className: "truncate font-mono text-[9px] text-foreground-subtle",
|
|
55392
|
+
title: column.detail,
|
|
55393
|
+
children: column.detail
|
|
55394
|
+
})
|
|
55395
|
+
] });
|
|
55396
|
+
}
|
|
55384
55397
|
function GroupedAgentHeader({ group }) {
|
|
55398
|
+
const nodeLabel = group.columns[0]?.nodeLabel ?? group.agentNodeId;
|
|
55385
55399
|
return /* @__PURE__ */ jsxs("div", {
|
|
55400
|
+
role: "columnheader",
|
|
55386
55401
|
className: "sticky top-0 z-10 min-w-0 border-b border-l border-border bg-muted/60",
|
|
55387
55402
|
style: { gridColumn: `span ${group.columns.length}` },
|
|
55388
55403
|
children: [/* @__PURE__ */ jsx("div", {
|
|
55389
55404
|
className: "truncate px-3 pt-2 pb-1 text-xs font-semibold text-foreground",
|
|
55390
|
-
children:
|
|
55405
|
+
children: nodeLabel
|
|
55391
55406
|
}), /* @__PURE__ */ jsx("div", {
|
|
55392
55407
|
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
|
-
})]
|
|
55408
|
+
children: group.columns.map((c, i) => /* @__PURE__ */ jsx("div", {
|
|
55409
|
+
className: cn("min-w-0 flex-1 px-3 py-1", i > 0 && "border-l border-border/50", c.disabled === true && "opacity-70"),
|
|
55410
|
+
title: `${c.deviceLabel ?? c.deviceKey} · ${c.engineLabel}${c.detail ? ` · ${c.detail}` : ""}`,
|
|
55411
|
+
children: /* @__PURE__ */ jsx(AgentColumnLines, { column: c })
|
|
55403
55412
|
}, agentColumnKey(c)))
|
|
55404
55413
|
})]
|
|
55405
55414
|
});
|
|
@@ -55503,25 +55512,30 @@ function cellButtonClass(state, isSelected, extra) {
|
|
|
55503
55512
|
//#endregion
|
|
55504
55513
|
//#region src/composites/device-step-matrix.tsx
|
|
55505
55514
|
/**
|
|
55506
|
-
* DeviceStepMatrix — the
|
|
55507
|
-
* (
|
|
55508
|
-
*
|
|
55509
|
-
*
|
|
55510
|
-
*
|
|
55511
|
-
*
|
|
55512
|
-
*
|
|
55513
|
-
*
|
|
55514
|
-
*
|
|
55515
|
-
*
|
|
55516
|
-
*
|
|
55517
|
-
*
|
|
55518
|
-
*
|
|
55519
|
-
*
|
|
55520
|
-
*
|
|
55521
|
-
*
|
|
55522
|
-
*
|
|
55523
|
-
*
|
|
55524
|
-
*
|
|
55515
|
+
* DeviceStepMatrix — the step × accelerator TABLE of a detection pipeline
|
|
55516
|
+
* (D757): the node's Pipeline tab and the camera's Detection pipeline → Steps
|
|
55517
|
+
* are this matrix, and a click on a cell (or a step's header) opens that step's
|
|
55518
|
+
* settings in a docked panel (`StepDetailDock`) that overlays the page instead
|
|
55519
|
+
* of reflowing the matrix.
|
|
55520
|
+
*
|
|
55521
|
+
* Column 1 (STICKY): the indented step tree — slot, name, class-flow chips,
|
|
55522
|
+
* and an optional badge (the camera's gate). The header is a button: it
|
|
55523
|
+
* opens the step on the selected accelerator.
|
|
55524
|
+
* Columns 2..N: one per accelerator, grouped under their node; the header
|
|
55525
|
+
* names the accelerator, its format, the model it elects, and "off" for a
|
|
55526
|
+
* switched-off one. A cell shows the model that runs there, or "⚠ skip",
|
|
55527
|
+
* "→ iGPU", "root", "cluster", "ovr", "—".
|
|
55528
|
+
*
|
|
55529
|
+
* Keyboard: ONE Tab stop (a roving tabindex over the step headers and cells);
|
|
55530
|
+
* arrows move, Home / End go to the row's ends, Enter or Space opens.
|
|
55531
|
+
*
|
|
55532
|
+
* `reserveRightPx`: the width a docked panel covers at the right of the
|
|
55533
|
+
* viewport. The matrix adds a trailing spacer that wide (so any column can
|
|
55534
|
+
* scroll clear of it) and scrolls the selected cell into the uncovered part —
|
|
55535
|
+
* it never shrinks, so nothing reflows when the panel opens.
|
|
55536
|
+
*
|
|
55537
|
+
* Responsive, container-measured: narrower than the step column plus two
|
|
55538
|
+
* columns, the matrix shows ONE node at a time with a node selector.
|
|
55525
55539
|
*/
|
|
55526
55540
|
/** The sticky step column. */
|
|
55527
55541
|
var STEP_COL_REM = 18;
|
|
@@ -55532,11 +55546,41 @@ var STEP_COL_PX = STEP_COL_REM * 16;
|
|
|
55532
55546
|
* step column and lets the device columns scroll horizontally beside it.
|
|
55533
55547
|
*/
|
|
55534
55548
|
var STEP_COL_SINGLE_REM = 11;
|
|
55535
|
-
|
|
55549
|
+
/** Where a key press moves the roving focus in a `rows × cols` grid. */
|
|
55550
|
+
function nextGridPosition(key, pos, rows, cols) {
|
|
55551
|
+
const clamp = (r, c) => ({
|
|
55552
|
+
r: Math.max(0, Math.min(rows - 1, r)),
|
|
55553
|
+
c: Math.max(0, Math.min(cols - 1, c))
|
|
55554
|
+
});
|
|
55555
|
+
switch (key) {
|
|
55556
|
+
case "ArrowRight": return clamp(pos.r, pos.c + 1);
|
|
55557
|
+
case "ArrowLeft": return clamp(pos.r, pos.c - 1);
|
|
55558
|
+
case "ArrowDown": return clamp(pos.r + 1, pos.c);
|
|
55559
|
+
case "ArrowUp": return clamp(pos.r - 1, pos.c);
|
|
55560
|
+
case "Home": return clamp(pos.r, 0);
|
|
55561
|
+
case "End": return clamp(pos.r, cols - 1);
|
|
55562
|
+
case "PageDown": return clamp(rows - 1, pos.c);
|
|
55563
|
+
case "PageUp": return clamp(0, pos.c);
|
|
55564
|
+
default: return null;
|
|
55565
|
+
}
|
|
55566
|
+
}
|
|
55567
|
+
function StepCell({ node, depth, r, tabbable, selected, badge, onClick, sticky }) {
|
|
55536
55568
|
return /* @__PURE__ */ jsx("div", {
|
|
55537
|
-
|
|
55538
|
-
|
|
55539
|
-
children: /* @__PURE__ */
|
|
55569
|
+
role: "rowheader",
|
|
55570
|
+
className: cn("min-w-0 border-b border-border bg-surface", sticky && "sticky left-0 z-10"),
|
|
55571
|
+
children: /* @__PURE__ */ jsxs("button", {
|
|
55572
|
+
type: "button",
|
|
55573
|
+
"data-r": r,
|
|
55574
|
+
"data-c": 0,
|
|
55575
|
+
"data-step": node.addonId,
|
|
55576
|
+
"data-col": "",
|
|
55577
|
+
tabIndex: tabbable ? 0 : -1,
|
|
55578
|
+
"aria-current": selected ? "true" : void 0,
|
|
55579
|
+
onClick: onClick ? (e) => onClick(e.detail === 0) : void 0,
|
|
55580
|
+
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)]"),
|
|
55581
|
+
style: { paddingLeft: `${12 + depth * 14}px` },
|
|
55582
|
+
children: [/* @__PURE__ */ jsx(StepLabel, { node }), badge]
|
|
55583
|
+
})
|
|
55540
55584
|
});
|
|
55541
55585
|
}
|
|
55542
55586
|
/**
|
|
@@ -55566,68 +55610,179 @@ function NodeSelectorBar({ nodes, selected, onSelect }) {
|
|
|
55566
55610
|
role: "tab",
|
|
55567
55611
|
"aria-selected": isSelected,
|
|
55568
55612
|
onClick: () => onSelect(a.agentNodeId),
|
|
55569
|
-
title: `${a.agentNodeId} · ${a.engineLabel}`,
|
|
55613
|
+
title: `${a.columns[0]?.nodeLabel ?? a.agentNodeId} · ${a.engineLabel}`,
|
|
55570
55614
|
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
|
|
55615
|
+
children: a.columns[0]?.nodeLabel ?? a.agentNodeId
|
|
55572
55616
|
}, a.agentNodeId);
|
|
55573
55617
|
})
|
|
55574
55618
|
})
|
|
55575
55619
|
]
|
|
55576
55620
|
});
|
|
55577
55621
|
}
|
|
55578
|
-
function MatrixGrid({ tree, agents, getCellState, onCellClick, selectedCell, single }) {
|
|
55622
|
+
var MatrixGrid = forwardRef(function MatrixGrid({ tree, agents, getCellState, onCellClick, onStepClick, stepBadge, selectedCell, single, reserveRightPx, label }, ref) {
|
|
55579
55623
|
const rows = useMemo(() => flattenTree(tree), [tree]);
|
|
55580
55624
|
const groups = useMemo(() => groupAgentColumns(agents), [agents]);
|
|
55625
|
+
const boxRef = useRef(null);
|
|
55626
|
+
const stepColRem = single ? STEP_COL_SINGLE_REM : STEP_COL_REM;
|
|
55627
|
+
const gridTemplate = `${stepColRem}rem repeat(${agents.length}, 13rem)`;
|
|
55628
|
+
const cols = agents.length + 1;
|
|
55629
|
+
const [stickySteps, setStickySteps] = useState(true);
|
|
55630
|
+
useLayoutEffect(() => {
|
|
55631
|
+
const box = boxRef.current;
|
|
55632
|
+
if (!box || reserveRightPx <= 0) {
|
|
55633
|
+
setStickySteps(true);
|
|
55634
|
+
return;
|
|
55635
|
+
}
|
|
55636
|
+
const measure = () => {
|
|
55637
|
+
const left = box.getBoundingClientRect().left;
|
|
55638
|
+
setStickySteps(window.innerWidth - reserveRightPx - left >= stepColRem * 16 + 208 + 24);
|
|
55639
|
+
};
|
|
55640
|
+
measure();
|
|
55641
|
+
window.addEventListener("resize", measure);
|
|
55642
|
+
return () => window.removeEventListener("resize", measure);
|
|
55643
|
+
}, [reserveRightPx, stepColRem]);
|
|
55644
|
+
const selectedPos = useMemo(() => {
|
|
55645
|
+
if (selectedCell === null) return null;
|
|
55646
|
+
const r = rows.findIndex((row) => row.node.addonId === selectedCell.addonId);
|
|
55647
|
+
if (r < 0) return null;
|
|
55648
|
+
const c = agents.findIndex((a) => agentColumnKey(a) === agentColumnKey(selectedCell));
|
|
55649
|
+
return {
|
|
55650
|
+
r,
|
|
55651
|
+
c: c < 0 ? 0 : c + 1
|
|
55652
|
+
};
|
|
55653
|
+
}, [
|
|
55654
|
+
selectedCell,
|
|
55655
|
+
rows,
|
|
55656
|
+
agents
|
|
55657
|
+
]);
|
|
55658
|
+
const [focusPos, setFocusPos] = useState({
|
|
55659
|
+
r: 0,
|
|
55660
|
+
c: 0
|
|
55661
|
+
});
|
|
55662
|
+
useEffect(() => {
|
|
55663
|
+
if (selectedPos !== null) setFocusPos(selectedPos);
|
|
55664
|
+
}, [selectedPos]);
|
|
55665
|
+
const tab = focusPos.r < rows.length && focusPos.c < cols ? focusPos : {
|
|
55666
|
+
r: 0,
|
|
55667
|
+
c: 0
|
|
55668
|
+
};
|
|
55669
|
+
const focusAt = (r, c) => {
|
|
55670
|
+
boxRef.current?.querySelector(`[data-r="${r}"][data-c="${c}"]`)?.focus();
|
|
55671
|
+
};
|
|
55672
|
+
useImperativeHandle(ref, () => ({ focusCell: (addonId, columnKey) => {
|
|
55673
|
+
const r = rows.findIndex((row) => row.node.addonId === addonId);
|
|
55674
|
+
if (r < 0) return;
|
|
55675
|
+
const index = columnKey === null ? -1 : agents.findIndex((a) => agentColumnKey(a) === columnKey);
|
|
55676
|
+
const c = index < 0 ? 0 : index + 1;
|
|
55677
|
+
setFocusPos({
|
|
55678
|
+
r,
|
|
55679
|
+
c
|
|
55680
|
+
});
|
|
55681
|
+
focusAt(r, c);
|
|
55682
|
+
} }), [rows, agents]);
|
|
55683
|
+
useLayoutEffect(() => {
|
|
55684
|
+
if (selectedPos === null) return;
|
|
55685
|
+
const box = boxRef.current;
|
|
55686
|
+
const el = box?.querySelector(`[data-r="${selectedPos.r}"][data-c="${selectedPos.c}"]`);
|
|
55687
|
+
if (!box || !el) return;
|
|
55688
|
+
if (typeof el.scrollIntoView === "function") el.scrollIntoView({
|
|
55689
|
+
block: "nearest",
|
|
55690
|
+
inline: "nearest"
|
|
55691
|
+
});
|
|
55692
|
+
if (reserveRightPx <= 0) return;
|
|
55693
|
+
const limit = window.innerWidth - reserveRightPx - 12;
|
|
55694
|
+
const right = el.getBoundingClientRect().right;
|
|
55695
|
+
if (right > limit) box.scrollLeft += right - limit;
|
|
55696
|
+
}, [
|
|
55697
|
+
selectedPos,
|
|
55698
|
+
reserveRightPx,
|
|
55699
|
+
stickySteps
|
|
55700
|
+
]);
|
|
55701
|
+
const onKeyDown = (e) => {
|
|
55702
|
+
if (!(e.target instanceof HTMLElement) || e.target.dataset.r === void 0) return;
|
|
55703
|
+
const pos = {
|
|
55704
|
+
r: Number(e.target.dataset.r),
|
|
55705
|
+
c: Number(e.target.dataset.c)
|
|
55706
|
+
};
|
|
55707
|
+
const next = nextGridPosition(e.key, pos, rows.length, cols);
|
|
55708
|
+
if (next === null) return;
|
|
55709
|
+
e.preventDefault();
|
|
55710
|
+
setFocusPos(next);
|
|
55711
|
+
focusAt(next.r, next.c);
|
|
55712
|
+
};
|
|
55581
55713
|
return /* @__PURE__ */ jsx("div", {
|
|
55714
|
+
ref: boxRef,
|
|
55582
55715
|
className: "overflow-auto rounded border border-border",
|
|
55583
55716
|
children: /* @__PURE__ */ jsxs("div", {
|
|
55584
|
-
className: "
|
|
55585
|
-
|
|
55586
|
-
|
|
55587
|
-
|
|
55588
|
-
|
|
55589
|
-
|
|
55590
|
-
}
|
|
55591
|
-
|
|
55592
|
-
|
|
55717
|
+
className: "flex w-max",
|
|
55718
|
+
children: [/* @__PURE__ */ jsxs("div", {
|
|
55719
|
+
role: "grid",
|
|
55720
|
+
"aria-label": label,
|
|
55721
|
+
"aria-rowcount": rows.length + 1,
|
|
55722
|
+
className: "grid w-max",
|
|
55723
|
+
style: { gridTemplateColumns: gridTemplate },
|
|
55724
|
+
onKeyDown,
|
|
55725
|
+
children: [/* @__PURE__ */ jsxs("div", {
|
|
55726
|
+
role: "row",
|
|
55727
|
+
className: "contents",
|
|
55593
55728
|
children: [/* @__PURE__ */ jsx("div", {
|
|
55594
|
-
|
|
55595
|
-
|
|
55596
|
-
|
|
55597
|
-
|
|
55598
|
-
|
|
55729
|
+
role: "columnheader",
|
|
55730
|
+
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"),
|
|
55731
|
+
children: "Step"
|
|
55732
|
+
}), groups.map((group) => group.grouped ? /* @__PURE__ */ jsx(GroupedAgentHeader, { group }, group.agentNodeId) : group.columns.map((col) => /* @__PURE__ */ jsxs("div", {
|
|
55733
|
+
role: "columnheader",
|
|
55734
|
+
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"),
|
|
55735
|
+
children: [/* @__PURE__ */ jsx("div", {
|
|
55736
|
+
className: "truncate text-xs font-semibold text-foreground",
|
|
55737
|
+
children: col.nodeLabel ?? col.agentNodeId
|
|
55738
|
+
}), /* @__PURE__ */ jsx(AgentColumnLines, { column: col })]
|
|
55739
|
+
}, agentColumnKey(col))))]
|
|
55740
|
+
}), rows.map(({ node, depth }, r) => /* @__PURE__ */ jsxs("div", {
|
|
55741
|
+
role: "row",
|
|
55742
|
+
className: "contents",
|
|
55743
|
+
children: [/* @__PURE__ */ jsx(StepCell, {
|
|
55744
|
+
node,
|
|
55745
|
+
depth,
|
|
55746
|
+
r,
|
|
55747
|
+
tabbable: tab.r === r && tab.c === 0,
|
|
55748
|
+
selected: selectedCell?.addonId === node.addonId,
|
|
55749
|
+
badge: stepBadge?.(node.addonId),
|
|
55750
|
+
onClick: onStepClick ? (kb) => onStepClick(node.addonId, kb) : void 0,
|
|
55751
|
+
sticky: stickySteps
|
|
55752
|
+
}), agents.map((a, i) => {
|
|
55753
|
+
const state = getCellState(node.addonId, a);
|
|
55754
|
+
const isSelected = selectedCell !== null && selectedCell.addonId === node.addonId && agentColumnKey(selectedCell) === agentColumnKey(a);
|
|
55755
|
+
const actionable = state.kind === "enabled" || state.kind === "skip";
|
|
55756
|
+
return /* @__PURE__ */ jsx("div", {
|
|
55757
|
+
role: "gridcell",
|
|
55758
|
+
className: "min-w-0 border-b border-l border-border",
|
|
55759
|
+
children: /* @__PURE__ */ jsx("button", {
|
|
55760
|
+
type: "button",
|
|
55761
|
+
"data-r": r,
|
|
55762
|
+
"data-c": i + 1,
|
|
55763
|
+
"data-step": node.addonId,
|
|
55764
|
+
"data-col": agentColumnKey(a),
|
|
55765
|
+
tabIndex: tab.r === r && tab.c === i + 1 ? 0 : -1,
|
|
55766
|
+
"aria-disabled": !actionable,
|
|
55767
|
+
"aria-selected": isSelected,
|
|
55768
|
+
onClick: (e) => {
|
|
55769
|
+
if (actionable) onCellClick(node.addonId, a, e.detail === 0);
|
|
55770
|
+
},
|
|
55771
|
+
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")),
|
|
55772
|
+
children: renderCellContent(state)
|
|
55773
|
+
})
|
|
55774
|
+
}, agentColumnKey(a));
|
|
55599
55775
|
})]
|
|
55600
|
-
},
|
|
55601
|
-
|
|
55602
|
-
|
|
55603
|
-
|
|
55604
|
-
|
|
55605
|
-
|
|
55606
|
-
onCellClick,
|
|
55607
|
-
selectedCell
|
|
55608
|
-
}, node.addonId))
|
|
55609
|
-
]
|
|
55776
|
+
}, node.addonId))]
|
|
55777
|
+
}), reserveRightPx > 0 && /* @__PURE__ */ jsx("div", {
|
|
55778
|
+
"aria-hidden": true,
|
|
55779
|
+
style: { width: reserveRightPx },
|
|
55780
|
+
className: "shrink-0"
|
|
55781
|
+
})]
|
|
55610
55782
|
})
|
|
55611
55783
|
});
|
|
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 }) {
|
|
55784
|
+
});
|
|
55785
|
+
var DeviceStepMatrix = forwardRef(function DeviceStepMatrix({ tree, agents, getCellState, onCellClick, selectedCell, fallbackNodeId, onFallbackNodeChange, onStepClick, stepBadge, reserveRightPx = 0, label = "Detection steps" }, ref) {
|
|
55631
55786
|
const containerRef = useRef(null);
|
|
55632
55787
|
const [width, setWidth] = useState(0);
|
|
55633
55788
|
useLayoutEffect(() => {
|
|
@@ -55645,6 +55800,15 @@ function DeviceStepMatrix({ tree, agents, getCellState, onCellClick, selectedCel
|
|
|
55645
55800
|
if (nodes.length === 0) return null;
|
|
55646
55801
|
return nodes.find((n) => n.agentNodeId === fallbackNodeId) ?? nodes[0] ?? null;
|
|
55647
55802
|
}, [nodes, fallbackNodeId]);
|
|
55803
|
+
const selectedNodeId = selectedCell?.agentNodeId;
|
|
55804
|
+
useEffect(() => {
|
|
55805
|
+
if (single && selectedNodeId !== void 0 && selectedNodeId !== fallbackNodeId) onFallbackNodeChange(selectedNodeId);
|
|
55806
|
+
}, [
|
|
55807
|
+
single,
|
|
55808
|
+
selectedNodeId,
|
|
55809
|
+
fallbackNodeId,
|
|
55810
|
+
onFallbackNodeChange
|
|
55811
|
+
]);
|
|
55648
55812
|
const shownAgents = single && selectedNode ? selectedNode.columns : agents;
|
|
55649
55813
|
return /* @__PURE__ */ jsxs("div", {
|
|
55650
55814
|
ref: containerRef,
|
|
@@ -55654,15 +55818,20 @@ function DeviceStepMatrix({ tree, agents, getCellState, onCellClick, selectedCel
|
|
|
55654
55818
|
selected: selectedNode.agentNodeId,
|
|
55655
55819
|
onSelect: onFallbackNodeChange
|
|
55656
55820
|
}), /* @__PURE__ */ jsx(MatrixGrid, {
|
|
55821
|
+
ref,
|
|
55657
55822
|
tree,
|
|
55658
55823
|
agents: shownAgents,
|
|
55659
55824
|
getCellState,
|
|
55660
55825
|
onCellClick,
|
|
55826
|
+
onStepClick,
|
|
55827
|
+
stepBadge,
|
|
55661
55828
|
selectedCell,
|
|
55662
|
-
single: single && selectedNode !== null
|
|
55829
|
+
single: single && selectedNode !== null,
|
|
55830
|
+
reserveRightPx,
|
|
55831
|
+
label
|
|
55663
55832
|
})]
|
|
55664
55833
|
});
|
|
55665
|
-
}
|
|
55834
|
+
});
|
|
55666
55835
|
//#endregion
|
|
55667
55836
|
//#region src/composites/discovery-panel.tsx
|
|
55668
55837
|
function DiscoveryPanel({ deviceId, className = "", onOpenChild }) {
|
|
@@ -56601,43 +56770,13 @@ function PhaseIcon({ phase, ...props }) {
|
|
|
56601
56770
|
return /* @__PURE__ */ jsx(Icon, { ...props });
|
|
56602
56771
|
}
|
|
56603
56772
|
//#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
56773
|
//#region src/composites/pipeline-builder.tsx
|
|
56636
56774
|
/**
|
|
56637
|
-
* PipelineBuilder — orchestrates the pipeline step tree
|
|
56775
|
+
* PipelineBuilder — orchestrates the pipeline step tree.
|
|
56638
56776
|
*
|
|
56639
|
-
* Renders
|
|
56640
|
-
*
|
|
56777
|
+
* Renders the step tree from schema with nested children and placeholder steps
|
|
56778
|
+
* for disabled addons, all driven by API schema. There are no saved pipeline
|
|
56779
|
+
* templates (D759): the tree is the caller's state.
|
|
56641
56780
|
*/
|
|
56642
56781
|
function buildSchemaMap(schema) {
|
|
56643
56782
|
const map = /* @__PURE__ */ new Map();
|
|
@@ -56689,31 +56828,9 @@ function PlaceholderStep({ addon, onClick }) {
|
|
|
56689
56828
|
})
|
|
56690
56829
|
});
|
|
56691
56830
|
}
|
|
56692
|
-
function PipelineBuilder({ schema, steps, onChange,
|
|
56831
|
+
function PipelineBuilder({ schema, steps, onChange, readOnly = false, excludeAddons = [], showOnlyEnabled = false, showSlotLabels = false }) {
|
|
56693
56832
|
const excluded = useMemo(() => new Set(excludeAddons), [excludeAddons]);
|
|
56694
56833
|
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
56834
|
/**
|
|
56718
56835
|
* When a step is updated, auto-enable the entire ancestor chain if a
|
|
56719
56836
|
* child/grandchild was just enabled. This ensures enabling face-recognition
|
|
@@ -56883,104 +57000,42 @@ function PipelineBuilder({ schema, steps, onChange, templates, selectedTemplateI
|
|
|
56883
57000
|
})]
|
|
56884
57001
|
}, step.addonId);
|
|
56885
57002
|
}
|
|
56886
|
-
|
|
56887
|
-
return /* @__PURE__ */ jsxs("div", {
|
|
57003
|
+
return /* @__PURE__ */ jsx("div", {
|
|
56888
57004
|
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
|
-
]
|
|
57005
|
+
children: schema.slots.filter((s) => s.parentSlot === null).toSorted((a, b) => a.priority - b.priority).map((slot) => {
|
|
57006
|
+
const allSlotSteps = steps.filter((s) => s.slot === slot.id && !excluded.has(s.addonId));
|
|
57007
|
+
const slotSteps = showOnlyEnabled ? allSlotSteps.filter((s) => s.enabled) : allSlotSteps;
|
|
57008
|
+
const missingRootAddons = showOnlyEnabled ? [] : slot.addons.filter((a) => !existingIds.has(a.id) && !excluded.has(a.id));
|
|
57009
|
+
const groups = /* @__PURE__ */ new Map();
|
|
57010
|
+
const ungrouped = [];
|
|
57011
|
+
for (const step of slotSteps) if (step.group) {
|
|
57012
|
+
if (!groups.has(step.group)) groups.set(step.group, []);
|
|
57013
|
+
groups.get(step.group).push(step);
|
|
57014
|
+
} else ungrouped.push(step);
|
|
57015
|
+
return /* @__PURE__ */ jsxs("div", {
|
|
57016
|
+
className: "space-y-2",
|
|
57017
|
+
children: [
|
|
57018
|
+
showSlotLabels && /* @__PURE__ */ jsxs("span", {
|
|
57019
|
+
className: "text-[10px] font-semibold uppercase tracking-widest text-foreground-subtle/50",
|
|
57020
|
+
children: ["Slot: ", slot.label]
|
|
57021
|
+
}),
|
|
57022
|
+
ungrouped.map((step) => renderStep(step)),
|
|
57023
|
+
[...groups.entries()].map(([groupName, groupSteps]) => /* @__PURE__ */ jsxs("div", {
|
|
57024
|
+
className: "space-y-2 rounded-lg border border-border/40 p-2",
|
|
57025
|
+
children: [/* @__PURE__ */ jsx("span", {
|
|
57026
|
+
className: "text-[10px] font-semibold uppercase tracking-widest text-foreground-subtle/50 px-1",
|
|
57027
|
+
children: groupName
|
|
57028
|
+
}), groupSteps.map((step) => renderStep(step))]
|
|
57029
|
+
}, groupName)),
|
|
57030
|
+
!readOnly && missingRootAddons.map((addon) => /* @__PURE__ */ jsx(PlaceholderStep, {
|
|
57031
|
+
addon,
|
|
57032
|
+
onClick: () => {
|
|
57033
|
+
onChange([...steps, createDefaultStep(addon)]);
|
|
57034
|
+
}
|
|
57035
|
+
}, addon.id))
|
|
57036
|
+
]
|
|
57037
|
+
}, slot.id);
|
|
57038
|
+
})
|
|
56984
57039
|
});
|
|
56985
57040
|
}
|
|
56986
57041
|
//#endregion
|
|
@@ -57769,166 +57824,104 @@ function SegmentedChoice({ label, options, value, onChange }) {
|
|
|
57769
57824
|
});
|
|
57770
57825
|
}
|
|
57771
57826
|
//#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
|
|
57827
|
+
//#region src/composites/step-inspector/step-detail-dock.tsx
|
|
57834
57828
|
/**
|
|
57835
|
-
*
|
|
57829
|
+
* StepDetailDock — where a step's settings open from the step matrix
|
|
57830
|
+
* (D757): docked to the page's scroll container, never inside the scrolling
|
|
57831
|
+
* content.
|
|
57836
57832
|
*
|
|
57837
|
-
* Desktop:
|
|
57838
|
-
*
|
|
57839
|
-
*
|
|
57840
|
-
* save bar are always on screen
|
|
57841
|
-
*
|
|
57842
|
-
* matrix
|
|
57843
|
-
*
|
|
57844
|
-
*
|
|
57833
|
+
* Desktop: a side panel `position: fixed` over the RIGHT edge of the nearest
|
|
57834
|
+
* scroll container (its top, bottom and right are measured from that box), so
|
|
57835
|
+
* it stays where it is while the matrix scrolls under it, and its header and
|
|
57836
|
+
* save bar are always on screen. It overlays — it never reserves width, so the
|
|
57837
|
+
* matrix does not reflow (the slide-over before D756 reserved 360 px, the
|
|
57838
|
+
* matrix re-measured into a single-node layout, and the clicked cell slid
|
|
57839
|
+
* under the panel). The matrix uses {@link STEP_DOCK_WIDTH_PX} to scroll the
|
|
57840
|
+
* selected column clear of it.
|
|
57845
57841
|
*
|
|
57846
|
-
* Phone:
|
|
57847
|
-
* sheet with "‹ Steps" to go back.
|
|
57842
|
+
* Phone: a full-screen `Dialog` sheet.
|
|
57848
57843
|
*/
|
|
57849
|
-
/**
|
|
57850
|
-
|
|
57851
|
-
|
|
57852
|
-
|
|
57844
|
+
/** Width of the desktop dock — what the matrix keeps clear of it. */
|
|
57845
|
+
var STEP_DOCK_WIDTH_PX = 432;
|
|
57846
|
+
/** The dock's viewport box, from its scroll container's box. */
|
|
57847
|
+
function dockBox(input) {
|
|
57848
|
+
const right = Math.max(0, input.viewportWidth - input.scroller.right);
|
|
57849
|
+
const width = Math.min(input.widthPx, input.scroller.right);
|
|
57850
|
+
return {
|
|
57851
|
+
top: Math.max(0, input.scroller.top),
|
|
57852
|
+
height: Math.max(0, input.scroller.bottom - Math.max(0, input.scroller.top)),
|
|
57853
|
+
right,
|
|
57854
|
+
width
|
|
57855
|
+
};
|
|
57853
57856
|
}
|
|
57854
57857
|
function scrollParentOf(el) {
|
|
57855
|
-
for (let p = el
|
|
57858
|
+
for (let p = el?.parentElement ?? null; p !== null; p = p.parentElement) {
|
|
57856
57859
|
const { overflowY } = getComputedStyle(p);
|
|
57857
57860
|
if (overflowY === "auto" || overflowY === "scroll") return p;
|
|
57858
57861
|
}
|
|
57859
57862
|
return null;
|
|
57860
57863
|
}
|
|
57861
|
-
|
|
57862
|
-
|
|
57863
|
-
const ref = useRef(null);
|
|
57864
|
-
const [height, setHeight] = useState(null);
|
|
57864
|
+
function useDockBox(anchor, enabled) {
|
|
57865
|
+
const [box, setBox] = useState(null);
|
|
57865
57866
|
useLayoutEffect(() => {
|
|
57866
|
-
|
|
57867
|
-
|
|
57868
|
-
const scroller = scrollParentOf(el);
|
|
57867
|
+
if (!enabled) return;
|
|
57868
|
+
const scroller = scrollParentOf(anchor.current);
|
|
57869
57869
|
const measure = () => {
|
|
57870
|
-
|
|
57871
|
-
|
|
57872
|
-
|
|
57873
|
-
|
|
57874
|
-
|
|
57875
|
-
|
|
57876
|
-
|
|
57877
|
-
|
|
57878
|
-
minPx
|
|
57870
|
+
setBox(dockBox({
|
|
57871
|
+
scroller: scroller?.getBoundingClientRect() ?? {
|
|
57872
|
+
top: 0,
|
|
57873
|
+
bottom: window.innerHeight,
|
|
57874
|
+
right: window.innerWidth
|
|
57875
|
+
},
|
|
57876
|
+
viewportWidth: window.innerWidth,
|
|
57877
|
+
widthPx: 432
|
|
57879
57878
|
}));
|
|
57880
57879
|
};
|
|
57881
57880
|
measure();
|
|
57882
57881
|
const RO = typeof ResizeObserver === "undefined" ? null : new ResizeObserver(measure);
|
|
57883
57882
|
if (scroller) RO?.observe(scroller);
|
|
57884
|
-
if (el.parentElement) RO?.observe(el.parentElement);
|
|
57885
57883
|
window.addEventListener("resize", measure);
|
|
57886
57884
|
return () => {
|
|
57887
57885
|
RO?.disconnect();
|
|
57888
57886
|
window.removeEventListener("resize", measure);
|
|
57889
57887
|
};
|
|
57890
|
-
}, [
|
|
57891
|
-
return
|
|
57892
|
-
ref,
|
|
57893
|
-
height
|
|
57894
|
-
};
|
|
57888
|
+
}, [anchor, enabled]);
|
|
57889
|
+
return box;
|
|
57895
57890
|
}
|
|
57896
|
-
function
|
|
57891
|
+
function StepDetailDock({ open, anchor, onClose, label, children }) {
|
|
57897
57892
|
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
|
-
})]
|
|
57893
|
+
const box = useDockBox(anchor, open && !isMobile);
|
|
57894
|
+
if (isMobile) return /* @__PURE__ */ jsx(Dialog, {
|
|
57895
|
+
open,
|
|
57896
|
+
onOpenChange: (next) => !next && onClose(),
|
|
57897
|
+
children: /* @__PURE__ */ jsx(DialogContent, {
|
|
57898
|
+
placement: "sheet-on-mobile",
|
|
57899
|
+
scroll: "body",
|
|
57900
|
+
"aria-label": label,
|
|
57901
|
+
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)]",
|
|
57902
|
+
children: open && children
|
|
57928
57903
|
})
|
|
57929
57904
|
});
|
|
57905
|
+
if (!open) return null;
|
|
57906
|
+
return /* @__PURE__ */ jsx("aside", {
|
|
57907
|
+
"aria-label": label,
|
|
57908
|
+
"data-step-dock": true,
|
|
57909
|
+
className: "fixed z-30 flex flex-col border-l border-border bg-surface shadow-2xl",
|
|
57910
|
+
style: box !== null ? {
|
|
57911
|
+
top: box.top,
|
|
57912
|
+
height: box.height,
|
|
57913
|
+
right: box.right,
|
|
57914
|
+
width: box.width
|
|
57915
|
+
} : {
|
|
57916
|
+
top: 0,
|
|
57917
|
+
bottom: 0,
|
|
57918
|
+
right: 0,
|
|
57919
|
+
width: 432
|
|
57920
|
+
},
|
|
57921
|
+
children
|
|
57922
|
+
});
|
|
57930
57923
|
}
|
|
57931
|
-
/** "‹ Steps" — the phone sheet's way back to the
|
|
57924
|
+
/** "‹ Steps" — the phone sheet's way back to the matrix. */
|
|
57932
57925
|
function BackToStepsButton({ onClick }) {
|
|
57933
57926
|
return /* @__PURE__ */ jsxs("button", {
|
|
57934
57927
|
type: "button",
|
|
@@ -58021,192 +58014,6 @@ var StepInspectorPanel = forwardRef(function StepInspectorPanel({ title, subtitl
|
|
|
58021
58014
|
});
|
|
58022
58015
|
});
|
|
58023
58016
|
//#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
58017
|
//#region src/composites/step-inspector/step-model-row.tsx
|
|
58211
58018
|
var SOURCE_TONE = {
|
|
58212
58019
|
camera: "border-primary/40 bg-primary/10 text-primary",
|
|
@@ -58362,6 +58169,30 @@ function StepModelList({ rows }) {
|
|
|
58362
58169
|
});
|
|
58363
58170
|
}
|
|
58364
58171
|
//#endregion
|
|
58172
|
+
//#region src/composites/step-inspector/step-search.ts
|
|
58173
|
+
function matches(text, tokens) {
|
|
58174
|
+
const lower = text.toLowerCase();
|
|
58175
|
+
return tokens.every((t) => lower.includes(t));
|
|
58176
|
+
}
|
|
58177
|
+
/** Steps matching `query` (all tokens in the name, or all in one field label). Empty query = all. */
|
|
58178
|
+
function searchSteps(rows, query) {
|
|
58179
|
+
const tokens = query.trim().toLowerCase().split(/\s+/).filter(Boolean);
|
|
58180
|
+
if (tokens.length === 0) return rows.map((row) => ({ addonId: row.addonId }));
|
|
58181
|
+
const hits = [];
|
|
58182
|
+
for (const row of rows) {
|
|
58183
|
+
if (matches(row.name, tokens)) {
|
|
58184
|
+
hits.push({ addonId: row.addonId });
|
|
58185
|
+
continue;
|
|
58186
|
+
}
|
|
58187
|
+
const field = row.fieldLabels.find((l) => matches(l, tokens));
|
|
58188
|
+
if (field !== void 0) hits.push({
|
|
58189
|
+
addonId: row.addonId,
|
|
58190
|
+
matchedField: field
|
|
58191
|
+
});
|
|
58192
|
+
}
|
|
58193
|
+
return hits;
|
|
58194
|
+
}
|
|
58195
|
+
//#endregion
|
|
58365
58196
|
//#region src/composites/step-tree.ts
|
|
58366
58197
|
/**
|
|
58367
58198
|
* Helper: build a StepTreeNode[] from a `PipelineSchema` by chaining on
|
|
@@ -61307,4 +61138,4 @@ var SceneMonitorEditor = lazy(() => import("./SceneMonitorEditor-vfWTm6qv.js").t
|
|
|
61307
61138
|
/** Lazy-wrapped `PrivacyMaskSettings` — code-split off the main bundle. */
|
|
61308
61139
|
var PrivacyMaskSettings = lazy(() => import("./PrivacyMaskSettings-DMkchqO1.js").then((m) => ({ default: m.PrivacyMaskSettings })));
|
|
61309
61140
|
//#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 };
|
|
61141
|
+
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, 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, 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, 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, modelRowsAreFoldable, 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, 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, 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, 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 };
|