@camstack/ui-library 1.2.180 → 1.2.182
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/camera-stream-player.d.ts +15 -2
- package/dist/composites/cap-settings/camera-grid-layout.d.ts +8 -0
- package/dist/composites/index.d.ts +4 -0
- package/dist/composites/stream-debug/stream-debug-overlay.d.ts +34 -0
- package/dist/composites/stream-debug/webrtc-debug-stats.d.ts +129 -0
- package/dist/generated/system-hooks.d.ts +2 -0
- package/dist/hooks/use-device-webrtc.d.ts +15 -1
- package/dist/index.cjs +688 -55
- package/dist/index.js +685 -56
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -7189,6 +7189,8 @@ var useWebrtcSessionCloseSession = trpc.webrtcSession.closeSession.useMutation;
|
|
|
7189
7189
|
var useWebrtcSessionHasAdaptiveBitrate = trpc.webrtcSession.hasAdaptiveBitrate.useQuery;
|
|
7190
7190
|
/** Generated alias around `trpc.webrtcSession.getSessionState.useQuery`. */
|
|
7191
7191
|
var useWebrtcSessionGetSessionState = trpc.webrtcSession.getSessionState.useQuery;
|
|
7192
|
+
/** Generated alias around `trpc.webrtcSession.getSessionDebug.useQuery`. */
|
|
7193
|
+
var useWebrtcSessionGetSessionDebug = trpc.webrtcSession.getSessionDebug.useQuery;
|
|
7192
7194
|
/** Generated alias around `trpc.zoneAnalytics.getCurrentSnapshot.useQuery`. */
|
|
7193
7195
|
var useZoneAnalyticsGetCurrentSnapshot = trpc.zoneAnalytics.getCurrentSnapshot.useQuery;
|
|
7194
7196
|
/** Generated alias around `trpc.zoneAnalytics.getCurrentSnapshotBatch.useQuery`. */
|
|
@@ -16618,7 +16620,8 @@ function readProfileOffer(value) {
|
|
|
16618
16620
|
profile,
|
|
16619
16621
|
offered,
|
|
16620
16622
|
missingSources,
|
|
16621
|
-
canvas: typeof value["canvas"] === "string" ? value["canvas"] : ""
|
|
16623
|
+
canvas: typeof value["canvas"] === "string" ? value["canvas"] : "",
|
|
16624
|
+
published: typeof value["published"] === "boolean" ? value["published"] : offered
|
|
16622
16625
|
};
|
|
16623
16626
|
}
|
|
16624
16627
|
/**
|
|
@@ -16863,7 +16866,7 @@ function CameraGridLayoutEditor({ deviceId }) {
|
|
|
16863
16866
|
setLoaded("unreadable");
|
|
16864
16867
|
});
|
|
16865
16868
|
}, [dev, reload]);
|
|
16866
|
-
const save = useCallback(async () => {
|
|
16869
|
+
const save = useCallback(async (extra) => {
|
|
16867
16870
|
const layout = dev?.cameraGridLayout;
|
|
16868
16871
|
if (draft === null || !layout) return;
|
|
16869
16872
|
setSaving(true);
|
|
@@ -16872,7 +16875,8 @@ function CameraGridLayoutEditor({ deviceId }) {
|
|
|
16872
16875
|
const outcome = parseGridView(await layout.saveLayout({
|
|
16873
16876
|
name: draft.name,
|
|
16874
16877
|
fps: draft.fps,
|
|
16875
|
-
cells: draft.cells.map((cell) => ({ ...cell }))
|
|
16878
|
+
cells: draft.cells.map((cell) => ({ ...cell })),
|
|
16879
|
+
...extra?.publishedProfiles !== void 0 ? { publishedProfiles: [...extra.publishedProfiles] } : {}
|
|
16876
16880
|
}));
|
|
16877
16881
|
if (outcome !== null && outcome !== "unreadable") {
|
|
16878
16882
|
setLoaded(outcome);
|
|
@@ -17060,7 +17064,12 @@ function CameraGridLayoutEditor({ deviceId }) {
|
|
|
17060
17064
|
}),
|
|
17061
17065
|
/* @__PURE__ */ jsx(GridProfileReport, {
|
|
17062
17066
|
offers: loaded.profiles,
|
|
17063
|
-
cameras
|
|
17067
|
+
cameras,
|
|
17068
|
+
onToggle: (profile) => {
|
|
17069
|
+
if (draft === null) return;
|
|
17070
|
+
const current = loaded.profiles.filter((row) => row.published).map((row) => row.profile);
|
|
17071
|
+
save({ publishedProfiles: current.includes(profile) ? current.filter((entry) => entry !== profile) : [...current, profile] });
|
|
17072
|
+
}
|
|
17064
17073
|
}),
|
|
17065
17074
|
draft.cells[selected] !== void 0 && /* @__PURE__ */ jsx(CellInspector, {
|
|
17066
17075
|
cell: draft.cells[selected],
|
|
@@ -17090,7 +17099,7 @@ function CameraGridLayoutEditor({ deviceId }) {
|
|
|
17090
17099
|
* Read-only on purpose: what is on offer is decided by the source cameras'
|
|
17091
17100
|
* assignments, and a control here would be a switch that writes nothing (D62).
|
|
17092
17101
|
*/
|
|
17093
|
-
function GridProfileReport({ offers, cameras }) {
|
|
17102
|
+
function GridProfileReport({ offers, cameras, onToggle }) {
|
|
17094
17103
|
const nameOf = (deviceId) => cameras.find((camera) => camera.id === deviceId)?.name ?? `#${String(deviceId)}`;
|
|
17095
17104
|
return /* @__PURE__ */ jsxs("div", {
|
|
17096
17105
|
className: "flex flex-col gap-1 rounded border border-border p-2 text-[10.5px]",
|
|
@@ -17099,20 +17108,33 @@ function GridProfileReport({ offers, cameras }) {
|
|
|
17099
17108
|
children: "Published profiles"
|
|
17100
17109
|
}), offers.map((offer) => /* @__PURE__ */ jsxs("div", {
|
|
17101
17110
|
className: "flex items-baseline gap-2",
|
|
17102
|
-
children: [
|
|
17103
|
-
|
|
17104
|
-
|
|
17105
|
-
|
|
17106
|
-
|
|
17107
|
-
|
|
17108
|
-
|
|
17109
|
-
|
|
17110
|
-
|
|
17111
|
-
|
|
17112
|
-
|
|
17113
|
-
|
|
17114
|
-
|
|
17115
|
-
|
|
17111
|
+
children: [
|
|
17112
|
+
/* @__PURE__ */ jsx("input", {
|
|
17113
|
+
type: "checkbox",
|
|
17114
|
+
checked: offer.published,
|
|
17115
|
+
disabled: !offer.offered,
|
|
17116
|
+
"aria-label": `publish ${offer.profile}`,
|
|
17117
|
+
onChange: () => {
|
|
17118
|
+
onToggle(offer.profile);
|
|
17119
|
+
}
|
|
17120
|
+
}),
|
|
17121
|
+
/* @__PURE__ */ jsx("span", {
|
|
17122
|
+
className: "w-10 uppercase",
|
|
17123
|
+
children: offer.profile
|
|
17124
|
+
}),
|
|
17125
|
+
offer.offered ? /* @__PURE__ */ jsxs("span", {
|
|
17126
|
+
className: "text-foreground-subtle",
|
|
17127
|
+
children: [
|
|
17128
|
+
offer.canvas,
|
|
17129
|
+
" —",
|
|
17130
|
+
" ",
|
|
17131
|
+
offer.published ? `composed from every source’s ${offer.profile}` : "serviceable, not published"
|
|
17132
|
+
]
|
|
17133
|
+
}) : /* @__PURE__ */ jsx("span", {
|
|
17134
|
+
className: "text-danger",
|
|
17135
|
+
children: offer.missingSources.length === 0 ? "not offered — this grid has no cells yet" : `not offered — no ${offer.profile} on ${offer.missingSources.map(nameOf).join(", ")}`
|
|
17136
|
+
})
|
|
17137
|
+
]
|
|
17116
17138
|
}, offer.profile))]
|
|
17117
17139
|
});
|
|
17118
17140
|
}
|
|
@@ -26932,6 +26954,580 @@ async function measureDownlinkMbps(origin, deps) {
|
|
|
26932
26954
|
}
|
|
26933
26955
|
}
|
|
26934
26956
|
//#endregion
|
|
26957
|
+
//#region src/composites/stream-debug/webrtc-debug-stats.ts
|
|
26958
|
+
/** Beyond this the log is a scroll, not a signal. */
|
|
26959
|
+
var RESOLUTION_LOG_MAX = 8;
|
|
26960
|
+
function num(value) {
|
|
26961
|
+
return typeof value === "number" && Number.isFinite(value) ? value : null;
|
|
26962
|
+
}
|
|
26963
|
+
function str(value) {
|
|
26964
|
+
return typeof value === "string" && value.length > 0 ? value : null;
|
|
26965
|
+
}
|
|
26966
|
+
/** Δ of two cumulative counters. Null unless BOTH ends were measured; a
|
|
26967
|
+
* counter that went backwards (a reset) yields null rather than a negative. */
|
|
26968
|
+
function delta(now, before) {
|
|
26969
|
+
if (now === null || before === null) return null;
|
|
26970
|
+
const d = now - before;
|
|
26971
|
+
return d < 0 ? null : d;
|
|
26972
|
+
}
|
|
26973
|
+
function lossPercentOf(lost, received) {
|
|
26974
|
+
if (lost === null || received === null) return null;
|
|
26975
|
+
const total = lost + received;
|
|
26976
|
+
if (total <= 0) return null;
|
|
26977
|
+
return lost / total * 100;
|
|
26978
|
+
}
|
|
26979
|
+
function profileLevelIdOf(fmtp) {
|
|
26980
|
+
if (fmtp === null) return null;
|
|
26981
|
+
return /profile-level-id=([0-9a-fA-F]+)/.exec(fmtp)?.[1] ?? null;
|
|
26982
|
+
}
|
|
26983
|
+
function collect(report) {
|
|
26984
|
+
const out = {
|
|
26985
|
+
inbound: null,
|
|
26986
|
+
codecs: /* @__PURE__ */ new Map(),
|
|
26987
|
+
candidates: /* @__PURE__ */ new Map(),
|
|
26988
|
+
pair: null,
|
|
26989
|
+
selectedPairId: null
|
|
26990
|
+
};
|
|
26991
|
+
const pairs = [];
|
|
26992
|
+
report.forEach((raw) => {
|
|
26993
|
+
const s = raw;
|
|
26994
|
+
const id = str(s.id);
|
|
26995
|
+
switch (s.type) {
|
|
26996
|
+
case "inbound-rtp":
|
|
26997
|
+
if ((s.kind ?? s.mediaType) === "video") out.inbound = s;
|
|
26998
|
+
break;
|
|
26999
|
+
case "codec":
|
|
27000
|
+
if (id !== null) out.codecs.set(id, s);
|
|
27001
|
+
break;
|
|
27002
|
+
case "local-candidate":
|
|
27003
|
+
case "remote-candidate":
|
|
27004
|
+
if (id !== null) out.candidates.set(id, s);
|
|
27005
|
+
break;
|
|
27006
|
+
case "candidate-pair":
|
|
27007
|
+
pairs.push(s);
|
|
27008
|
+
break;
|
|
27009
|
+
case "transport":
|
|
27010
|
+
out.selectedPairId = str(s.selectedCandidatePairId);
|
|
27011
|
+
break;
|
|
27012
|
+
default: break;
|
|
27013
|
+
}
|
|
27014
|
+
});
|
|
27015
|
+
const byId = out.selectedPairId;
|
|
27016
|
+
out.pair = pairs.find((p) => str(p.id) === byId) ?? pairs.find((p) => p.selected === true) ?? pairs.find((p) => p.nominated === true && p.state === "succeeded") ?? pairs.find((p) => p.nominated === true) ?? pairs.find((p) => p.state === "succeeded") ?? null;
|
|
27017
|
+
return out;
|
|
27018
|
+
}
|
|
27019
|
+
function readCounters(inbound) {
|
|
27020
|
+
if (inbound === null) return {
|
|
27021
|
+
timestamp: null,
|
|
27022
|
+
bytesReceived: null,
|
|
27023
|
+
packetsReceived: null,
|
|
27024
|
+
packetsLost: null,
|
|
27025
|
+
framesDecoded: null,
|
|
27026
|
+
framesDropped: null,
|
|
27027
|
+
freezeCount: null,
|
|
27028
|
+
totalFreezesDurationS: null,
|
|
27029
|
+
totalDecodeTimeS: null,
|
|
27030
|
+
nackCount: null,
|
|
27031
|
+
pliCount: null
|
|
27032
|
+
};
|
|
27033
|
+
return {
|
|
27034
|
+
timestamp: num(inbound.timestamp),
|
|
27035
|
+
bytesReceived: num(inbound.bytesReceived),
|
|
27036
|
+
packetsReceived: num(inbound.packetsReceived),
|
|
27037
|
+
packetsLost: num(inbound.packetsLost),
|
|
27038
|
+
framesDecoded: num(inbound.framesDecoded),
|
|
27039
|
+
framesDropped: num(inbound.framesDropped),
|
|
27040
|
+
freezeCount: num(inbound.freezeCount),
|
|
27041
|
+
totalFreezesDurationS: num(inbound.totalFreezesDuration),
|
|
27042
|
+
totalDecodeTimeS: num(inbound.totalDecodeTime),
|
|
27043
|
+
nackCount: num(inbound.nackCount),
|
|
27044
|
+
pliCount: num(inbound.pliCount)
|
|
27045
|
+
};
|
|
27046
|
+
}
|
|
27047
|
+
var EMPTY_WINDOW = {
|
|
27048
|
+
spanMs: null,
|
|
27049
|
+
kbps: null,
|
|
27050
|
+
packetsReceived: null,
|
|
27051
|
+
packetsLost: null,
|
|
27052
|
+
lossPercent: null,
|
|
27053
|
+
framesDecoded: null,
|
|
27054
|
+
framesDropped: null,
|
|
27055
|
+
freezeCount: null,
|
|
27056
|
+
freezeMs: null,
|
|
27057
|
+
nackCount: null,
|
|
27058
|
+
pliCount: null,
|
|
27059
|
+
decodeMs: null
|
|
27060
|
+
};
|
|
27061
|
+
function windowOf(now, before) {
|
|
27062
|
+
if (before === null) return EMPTY_WINDOW;
|
|
27063
|
+
const spanMs = delta(now.timestamp, before.timestamp);
|
|
27064
|
+
if (spanMs === null || spanMs <= 0) return EMPTY_WINDOW;
|
|
27065
|
+
const bytes = delta(now.bytesReceived, before.bytesReceived);
|
|
27066
|
+
const lost = delta(now.packetsLost, before.packetsLost);
|
|
27067
|
+
const received = delta(now.packetsReceived, before.packetsReceived);
|
|
27068
|
+
const decoded = delta(now.framesDecoded, before.framesDecoded);
|
|
27069
|
+
const decodeS = delta(now.totalDecodeTimeS, before.totalDecodeTimeS);
|
|
27070
|
+
const freezeS = delta(now.totalFreezesDurationS, before.totalFreezesDurationS);
|
|
27071
|
+
return {
|
|
27072
|
+
spanMs,
|
|
27073
|
+
kbps: bytes === null ? null : Math.round(bytes * 8 / spanMs),
|
|
27074
|
+
packetsReceived: received,
|
|
27075
|
+
packetsLost: lost,
|
|
27076
|
+
lossPercent: lossPercentOf(lost, received),
|
|
27077
|
+
framesDecoded: decoded,
|
|
27078
|
+
framesDropped: delta(now.framesDropped, before.framesDropped),
|
|
27079
|
+
freezeCount: delta(now.freezeCount, before.freezeCount),
|
|
27080
|
+
freezeMs: freezeS === null ? null : Math.round(freezeS * 1e3),
|
|
27081
|
+
nackCount: delta(now.nackCount, before.nackCount),
|
|
27082
|
+
pliCount: delta(now.pliCount, before.pliCount),
|
|
27083
|
+
decodeMs: decodeS === null || decoded === null || decoded <= 0 ? null : decodeS / decoded * 1e3
|
|
27084
|
+
};
|
|
27085
|
+
}
|
|
27086
|
+
function resolutionLogOf(prev, width, height, at) {
|
|
27087
|
+
if (width === null || height === null) return prev;
|
|
27088
|
+
const last = prev.at(-1);
|
|
27089
|
+
if (last !== void 0 && last.width === width && last.height === height) return prev;
|
|
27090
|
+
const next = [...prev, {
|
|
27091
|
+
width,
|
|
27092
|
+
height,
|
|
27093
|
+
at
|
|
27094
|
+
}];
|
|
27095
|
+
return next.length > RESOLUTION_LOG_MAX ? next.slice(next.length - RESOLUTION_LOG_MAX) : next;
|
|
27096
|
+
}
|
|
27097
|
+
/**
|
|
27098
|
+
* Derive one debug sample. Immutable: `prev` is read, never mutated, and the
|
|
27099
|
+
* returned object is the input for the next call.
|
|
27100
|
+
*/
|
|
27101
|
+
function deriveWebrtcDebugStats(input) {
|
|
27102
|
+
const { inbound, codecs, candidates, pair } = collect(input.report);
|
|
27103
|
+
const raw = readCounters(inbound);
|
|
27104
|
+
const codecStat = inbound !== null ? codecs.get(str(inbound.codecId) ?? "") : void 0;
|
|
27105
|
+
const mime = str(codecStat?.mimeType);
|
|
27106
|
+
const fmtp = str(codecStat?.sdpFmtpLine);
|
|
27107
|
+
const localCand = pair !== null ? candidates.get(str(pair.localCandidateId) ?? "") : void 0;
|
|
27108
|
+
const remoteCand = pair !== null ? candidates.get(str(pair.remoteCandidateId) ?? "") : void 0;
|
|
27109
|
+
const localType = str(localCand?.candidateType);
|
|
27110
|
+
const remoteType = str(remoteCand?.candidateType);
|
|
27111
|
+
const width = num(inbound?.frameWidth);
|
|
27112
|
+
const height = num(inbound?.frameHeight);
|
|
27113
|
+
const totalFreezeS = raw.totalFreezesDurationS;
|
|
27114
|
+
const decodeS = raw.totalDecodeTimeS;
|
|
27115
|
+
const decodedTotal = raw.framesDecoded;
|
|
27116
|
+
return {
|
|
27117
|
+
at: input.now,
|
|
27118
|
+
hasInboundVideo: inbound !== null,
|
|
27119
|
+
width,
|
|
27120
|
+
height,
|
|
27121
|
+
fps: num(inbound?.framesPerSecond),
|
|
27122
|
+
codec: mime === null ? null : mime.split("/")[1] ?? mime,
|
|
27123
|
+
codecProfileLevelId: profileLevelIdOf(fmtp),
|
|
27124
|
+
jitterMs: jitterMsOf(inbound),
|
|
27125
|
+
packetsReceived: raw.packetsReceived,
|
|
27126
|
+
packetsLost: raw.packetsLost,
|
|
27127
|
+
lossPercent: lossPercentOf(raw.packetsLost, raw.packetsReceived),
|
|
27128
|
+
nackCount: raw.nackCount,
|
|
27129
|
+
pliCount: raw.pliCount,
|
|
27130
|
+
framesDecoded: decodedTotal,
|
|
27131
|
+
framesDropped: raw.framesDropped,
|
|
27132
|
+
freezeCount: raw.freezeCount,
|
|
27133
|
+
totalFreezeMs: totalFreezeS === null ? null : Math.round(totalFreezeS * 1e3),
|
|
27134
|
+
avgDecodeMs: decodeS === null || decodedTotal === null || decodedTotal <= 0 ? null : decodeS / decodedTotal * 1e3,
|
|
27135
|
+
rttMs: rttMsOf(pair),
|
|
27136
|
+
availableIncomingKbps: availableKbpsOf(pair),
|
|
27137
|
+
localCandidateType: localType,
|
|
27138
|
+
remoteCandidateType: remoteType,
|
|
27139
|
+
candidatePairType: localType === null && remoteType === null ? null : `${localType ?? "?"}/${remoteType ?? "?"}`,
|
|
27140
|
+
candidateProtocol: str(localCand?.protocol),
|
|
27141
|
+
iceConnectionState: input.iceConnectionState,
|
|
27142
|
+
dtlsState: input.dtlsState,
|
|
27143
|
+
window: windowOf(raw, input.prev?.raw ?? null),
|
|
27144
|
+
resolutionLog: resolutionLogOf(input.prev?.resolutionLog ?? [], width, height, input.now),
|
|
27145
|
+
raw
|
|
27146
|
+
};
|
|
27147
|
+
}
|
|
27148
|
+
function jitterMsOf(inbound) {
|
|
27149
|
+
const jitter = num(inbound?.jitter);
|
|
27150
|
+
return jitter === null ? null : jitter * 1e3;
|
|
27151
|
+
}
|
|
27152
|
+
function rttMsOf(pair) {
|
|
27153
|
+
const rtt = num(pair?.currentRoundTripTime);
|
|
27154
|
+
return rtt === null ? null : rtt * 1e3;
|
|
27155
|
+
}
|
|
27156
|
+
function availableKbpsOf(pair) {
|
|
27157
|
+
const bps = num(pair?.availableIncomingBitrate);
|
|
27158
|
+
return bps === null ? null : Math.round(bps / 1e3);
|
|
27159
|
+
}
|
|
27160
|
+
var VERDICTS = {
|
|
27161
|
+
unknown: "no window yet",
|
|
27162
|
+
decoding: "decoding",
|
|
27163
|
+
"decoder-stall": "DECODER STALL — bytes arriving, no frames out",
|
|
27164
|
+
"transport-stall": "TRANSPORT STALL — nothing arriving",
|
|
27165
|
+
"frozen-unknown": "frames stopped — byte rate unknown"
|
|
27166
|
+
};
|
|
27167
|
+
function freezeVerdict(stats) {
|
|
27168
|
+
const kind = freezeVerdictKind(stats);
|
|
27169
|
+
return {
|
|
27170
|
+
kind,
|
|
27171
|
+
label: VERDICTS[kind]
|
|
27172
|
+
};
|
|
27173
|
+
}
|
|
27174
|
+
function freezeVerdictKind(stats) {
|
|
27175
|
+
if (stats === null || !stats.hasInboundVideo) return "unknown";
|
|
27176
|
+
const decoded = stats.window.framesDecoded;
|
|
27177
|
+
if (decoded === null) return "unknown";
|
|
27178
|
+
if (decoded > 0) return "decoding";
|
|
27179
|
+
const kbps = stats.window.kbps;
|
|
27180
|
+
if (kbps === null) return "frozen-unknown";
|
|
27181
|
+
return kbps > 0 ? "decoder-stall" : "transport-stall";
|
|
27182
|
+
}
|
|
27183
|
+
//#endregion
|
|
27184
|
+
//#region src/composites/stream-debug/stream-debug-overlay.tsx
|
|
27185
|
+
/** `—` is the ONLY rendering of unknown. Never an empty cell, never 0. */
|
|
27186
|
+
var UNKNOWN = "—";
|
|
27187
|
+
function n(value, opts) {
|
|
27188
|
+
if (value === null || value === void 0 || !Number.isFinite(value)) return UNKNOWN;
|
|
27189
|
+
const digits = opts?.digits ?? 0;
|
|
27190
|
+
return `${value.toFixed(digits)}${opts?.suffix ?? ""}`;
|
|
27191
|
+
}
|
|
27192
|
+
function s(value) {
|
|
27193
|
+
return value === null || value === void 0 || value === "" ? UNKNOWN : value;
|
|
27194
|
+
}
|
|
27195
|
+
function b(value) {
|
|
27196
|
+
return value === null || value === void 0 ? UNKNOWN : value ? "yes" : "no";
|
|
27197
|
+
}
|
|
27198
|
+
/** Age of a measurement, in the form an operator reads at a glance. */
|
|
27199
|
+
function age(at, now) {
|
|
27200
|
+
if (at === null) return UNKNOWN;
|
|
27201
|
+
const ms = Math.max(0, now - at);
|
|
27202
|
+
if (ms < 1e3) return `${ms}ms ago`;
|
|
27203
|
+
if (ms < 6e4) return `${(ms / 1e3).toFixed(1)}s ago`;
|
|
27204
|
+
return `${Math.floor(ms / 6e4)}m${Math.floor(ms % 6e4 / 1e3)}s ago`;
|
|
27205
|
+
}
|
|
27206
|
+
/** A measurement older than this is NOT live, and is said to be. */
|
|
27207
|
+
var STALE_AFTER_MS = 3e3;
|
|
27208
|
+
var VERDICT_CLASS = {
|
|
27209
|
+
unknown: "bg-white/15 text-white/70",
|
|
27210
|
+
decoding: "bg-emerald-500/25 text-emerald-200",
|
|
27211
|
+
"decoder-stall": "bg-amber-500/30 text-amber-100",
|
|
27212
|
+
"transport-stall": "bg-rose-500/30 text-rose-100",
|
|
27213
|
+
"frozen-unknown": "bg-white/15 text-white/70"
|
|
27214
|
+
};
|
|
27215
|
+
function Row({ label, value, strong = false }) {
|
|
27216
|
+
return /* @__PURE__ */ jsxs("div", {
|
|
27217
|
+
className: "flex items-baseline justify-between gap-3 leading-tight",
|
|
27218
|
+
children: [/* @__PURE__ */ jsx("span", {
|
|
27219
|
+
className: "text-white/55 shrink-0",
|
|
27220
|
+
children: label
|
|
27221
|
+
}), /* @__PURE__ */ jsx("span", {
|
|
27222
|
+
className: strong ? "text-white font-semibold tabular-nums" : "text-white/90 tabular-nums",
|
|
27223
|
+
children: value
|
|
27224
|
+
})]
|
|
27225
|
+
});
|
|
27226
|
+
}
|
|
27227
|
+
function SectionHeader({ title, measuredAt, now }) {
|
|
27228
|
+
const stale = measuredAt !== null && now - measuredAt > STALE_AFTER_MS;
|
|
27229
|
+
return /* @__PURE__ */ jsxs("div", {
|
|
27230
|
+
className: "flex items-baseline justify-between gap-3 mt-2 first:mt-0 pb-0.5 border-b border-white/20",
|
|
27231
|
+
children: [/* @__PURE__ */ jsx("span", {
|
|
27232
|
+
className: "text-white/80 font-semibold tracking-wide uppercase text-[9px]",
|
|
27233
|
+
children: title
|
|
27234
|
+
}), /* @__PURE__ */ jsxs("span", {
|
|
27235
|
+
className: stale ? "text-amber-300 text-[9px]" : "text-white/45 text-[9px]",
|
|
27236
|
+
children: [stale ? "STALE · " : "", age(measuredAt, now)]
|
|
27237
|
+
})]
|
|
27238
|
+
});
|
|
27239
|
+
}
|
|
27240
|
+
function StreamDebugOverlay(props) {
|
|
27241
|
+
const { stats, server, serverError, serverWired, now, sessionId } = props;
|
|
27242
|
+
const verdict = freezeVerdict(stats);
|
|
27243
|
+
const win = stats?.window;
|
|
27244
|
+
return /* @__PURE__ */ jsxs("div", {
|
|
27245
|
+
className: "absolute top-2 right-2 z-20 transform-gpu w-[15.5rem] max-h-[calc(100%-1rem)] overflow-y-auto rounded-md bg-neutral-950/95 ring-1 ring-white/25 shadow-lg px-2 py-1.5 text-[10px] font-mono text-white/90 select-text",
|
|
27246
|
+
"data-testid": "stream-debug-overlay",
|
|
27247
|
+
children: [
|
|
27248
|
+
/* @__PURE__ */ jsx("div", {
|
|
27249
|
+
className: `rounded px-1.5 py-1 mb-1 text-[10px] font-semibold ${VERDICT_CLASS[verdict.kind]}`,
|
|
27250
|
+
children: verdict.label
|
|
27251
|
+
}),
|
|
27252
|
+
/* @__PURE__ */ jsx(SectionHeader, {
|
|
27253
|
+
title: "decode",
|
|
27254
|
+
measuredAt: stats?.at ?? null,
|
|
27255
|
+
now
|
|
27256
|
+
}),
|
|
27257
|
+
/* @__PURE__ */ jsx(Row, {
|
|
27258
|
+
label: "framesDecoded",
|
|
27259
|
+
value: n(stats?.framesDecoded),
|
|
27260
|
+
strong: true
|
|
27261
|
+
}),
|
|
27262
|
+
/* @__PURE__ */ jsx(Row, {
|
|
27263
|
+
label: "· this window",
|
|
27264
|
+
value: n(win?.framesDecoded),
|
|
27265
|
+
strong: true
|
|
27266
|
+
}),
|
|
27267
|
+
/* @__PURE__ */ jsx(Row, {
|
|
27268
|
+
label: "freezeCount",
|
|
27269
|
+
value: n(stats?.freezeCount),
|
|
27270
|
+
strong: true
|
|
27271
|
+
}),
|
|
27272
|
+
/* @__PURE__ */ jsx(Row, {
|
|
27273
|
+
label: "· total frozen",
|
|
27274
|
+
value: n(stats?.totalFreezeMs, { suffix: "ms" }),
|
|
27275
|
+
strong: true
|
|
27276
|
+
}),
|
|
27277
|
+
/* @__PURE__ */ jsx(Row, {
|
|
27278
|
+
label: "· this window",
|
|
27279
|
+
value: n(win?.freezeMs, { suffix: "ms" })
|
|
27280
|
+
}),
|
|
27281
|
+
/* @__PURE__ */ jsx(Row, {
|
|
27282
|
+
label: "pliCount",
|
|
27283
|
+
value: n(stats?.pliCount),
|
|
27284
|
+
strong: true
|
|
27285
|
+
}),
|
|
27286
|
+
/* @__PURE__ */ jsx(Row, {
|
|
27287
|
+
label: "· this window",
|
|
27288
|
+
value: n(win?.pliCount)
|
|
27289
|
+
}),
|
|
27290
|
+
/* @__PURE__ */ jsx(Row, {
|
|
27291
|
+
label: "framesDropped",
|
|
27292
|
+
value: n(stats?.framesDropped)
|
|
27293
|
+
}),
|
|
27294
|
+
/* @__PURE__ */ jsx(Row, {
|
|
27295
|
+
label: "decode time",
|
|
27296
|
+
value: n(stats?.avgDecodeMs, {
|
|
27297
|
+
digits: 1,
|
|
27298
|
+
suffix: "ms"
|
|
27299
|
+
})
|
|
27300
|
+
}),
|
|
27301
|
+
/* @__PURE__ */ jsx(Row, {
|
|
27302
|
+
label: "· this window",
|
|
27303
|
+
value: n(win?.decodeMs, {
|
|
27304
|
+
digits: 1,
|
|
27305
|
+
suffix: "ms"
|
|
27306
|
+
})
|
|
27307
|
+
}),
|
|
27308
|
+
/* @__PURE__ */ jsx(SectionHeader, {
|
|
27309
|
+
title: "picture",
|
|
27310
|
+
measuredAt: stats?.at ?? null,
|
|
27311
|
+
now
|
|
27312
|
+
}),
|
|
27313
|
+
/* @__PURE__ */ jsx(Row, {
|
|
27314
|
+
label: "resolution",
|
|
27315
|
+
value: stats?.width !== null && stats?.width !== void 0 && stats.height !== null ? `${stats.width}×${stats.height}` : UNKNOWN
|
|
27316
|
+
}),
|
|
27317
|
+
/* @__PURE__ */ jsx(Row, {
|
|
27318
|
+
label: "fps",
|
|
27319
|
+
value: n(stats?.fps)
|
|
27320
|
+
}),
|
|
27321
|
+
/* @__PURE__ */ jsx(Row, {
|
|
27322
|
+
label: "codec",
|
|
27323
|
+
value: stats?.codec === null || stats?.codec === void 0 ? UNKNOWN : `${stats.codec}${stats.codecProfileLevelId !== null ? ` ${stats.codecProfileLevelId}` : ""}`
|
|
27324
|
+
}),
|
|
27325
|
+
(stats?.resolutionLog.length ?? 0) > 1 && /* @__PURE__ */ jsx("div", {
|
|
27326
|
+
className: "mt-0.5 text-white/60 leading-tight",
|
|
27327
|
+
children: stats?.resolutionLog.map((mark) => /* @__PURE__ */ jsxs("div", {
|
|
27328
|
+
className: "flex justify-between",
|
|
27329
|
+
children: [/* @__PURE__ */ jsxs("span", { children: [
|
|
27330
|
+
mark.width,
|
|
27331
|
+
"×",
|
|
27332
|
+
mark.height
|
|
27333
|
+
] }), /* @__PURE__ */ jsx("span", {
|
|
27334
|
+
className: "text-white/40",
|
|
27335
|
+
children: age(mark.at, now)
|
|
27336
|
+
})]
|
|
27337
|
+
}, `${mark.at}-${mark.width}x${mark.height}`))
|
|
27338
|
+
}),
|
|
27339
|
+
/* @__PURE__ */ jsx(SectionHeader, {
|
|
27340
|
+
title: "transport",
|
|
27341
|
+
measuredAt: stats?.at ?? null,
|
|
27342
|
+
now
|
|
27343
|
+
}),
|
|
27344
|
+
/* @__PURE__ */ jsx(Row, {
|
|
27345
|
+
label: "bitrate",
|
|
27346
|
+
value: n(win?.kbps, { suffix: " kbps" })
|
|
27347
|
+
}),
|
|
27348
|
+
/* @__PURE__ */ jsx(Row, {
|
|
27349
|
+
label: "rtt",
|
|
27350
|
+
value: n(stats?.rttMs, {
|
|
27351
|
+
digits: 0,
|
|
27352
|
+
suffix: "ms"
|
|
27353
|
+
})
|
|
27354
|
+
}),
|
|
27355
|
+
/* @__PURE__ */ jsx(Row, {
|
|
27356
|
+
label: "jitter",
|
|
27357
|
+
value: n(stats?.jitterMs, {
|
|
27358
|
+
digits: 1,
|
|
27359
|
+
suffix: "ms"
|
|
27360
|
+
})
|
|
27361
|
+
}),
|
|
27362
|
+
/* @__PURE__ */ jsx(Row, {
|
|
27363
|
+
label: "packetsLost",
|
|
27364
|
+
value: n(stats?.packetsLost)
|
|
27365
|
+
}),
|
|
27366
|
+
/* @__PURE__ */ jsx(Row, {
|
|
27367
|
+
label: "· this window",
|
|
27368
|
+
value: n(win?.packetsLost)
|
|
27369
|
+
}),
|
|
27370
|
+
/* @__PURE__ */ jsx(Row, {
|
|
27371
|
+
label: "loss",
|
|
27372
|
+
value: n(stats?.lossPercent, {
|
|
27373
|
+
digits: 2,
|
|
27374
|
+
suffix: "%"
|
|
27375
|
+
})
|
|
27376
|
+
}),
|
|
27377
|
+
/* @__PURE__ */ jsx(Row, {
|
|
27378
|
+
label: "· this window",
|
|
27379
|
+
value: n(win?.lossPercent, {
|
|
27380
|
+
digits: 2,
|
|
27381
|
+
suffix: "%"
|
|
27382
|
+
})
|
|
27383
|
+
}),
|
|
27384
|
+
/* @__PURE__ */ jsx(Row, {
|
|
27385
|
+
label: "nackCount",
|
|
27386
|
+
value: n(stats?.nackCount)
|
|
27387
|
+
}),
|
|
27388
|
+
/* @__PURE__ */ jsx(Row, {
|
|
27389
|
+
label: "· this window",
|
|
27390
|
+
value: n(win?.nackCount)
|
|
27391
|
+
}),
|
|
27392
|
+
/* @__PURE__ */ jsx(Row, {
|
|
27393
|
+
label: "candidate pair",
|
|
27394
|
+
value: s(stats?.candidatePairType)
|
|
27395
|
+
}),
|
|
27396
|
+
/* @__PURE__ */ jsx(Row, {
|
|
27397
|
+
label: "protocol",
|
|
27398
|
+
value: s(stats?.candidateProtocol)
|
|
27399
|
+
}),
|
|
27400
|
+
/* @__PURE__ */ jsx(Row, {
|
|
27401
|
+
label: "ice",
|
|
27402
|
+
value: s(stats?.iceConnectionState)
|
|
27403
|
+
}),
|
|
27404
|
+
/* @__PURE__ */ jsx(Row, {
|
|
27405
|
+
label: "dtls",
|
|
27406
|
+
value: s(stats?.dtlsState)
|
|
27407
|
+
}),
|
|
27408
|
+
/* @__PURE__ */ jsx(SectionHeader, {
|
|
27409
|
+
title: "server",
|
|
27410
|
+
measuredAt: server?.observedAt ?? null,
|
|
27411
|
+
now
|
|
27412
|
+
}),
|
|
27413
|
+
!serverWired ? /* @__PURE__ */ jsx("div", {
|
|
27414
|
+
className: "text-white/50 leading-tight py-0.5",
|
|
27415
|
+
children: "not wired on this host"
|
|
27416
|
+
}) : serverError !== null ? /* @__PURE__ */ jsx("div", {
|
|
27417
|
+
className: "text-rose-300 leading-tight py-0.5 break-words",
|
|
27418
|
+
children: serverError
|
|
27419
|
+
}) : server === null ? /* @__PURE__ */ jsx("div", {
|
|
27420
|
+
className: "text-white/50 leading-tight py-0.5",
|
|
27421
|
+
children: "waiting for the first answer…"
|
|
27422
|
+
}) : !server.alive ? /* @__PURE__ */ jsx("div", {
|
|
27423
|
+
className: "text-amber-300 leading-tight py-0.5",
|
|
27424
|
+
children: "session not found on the server — it ended, or this node never had it"
|
|
27425
|
+
}) : /* @__PURE__ */ jsxs(Fragment$1, { children: [
|
|
27426
|
+
/* @__PURE__ */ jsx(Row, {
|
|
27427
|
+
label: "served rung",
|
|
27428
|
+
value: s(server.servedTier),
|
|
27429
|
+
strong: true
|
|
27430
|
+
}),
|
|
27431
|
+
/* @__PURE__ */ jsx(Row, {
|
|
27432
|
+
label: "adaptive",
|
|
27433
|
+
value: b(server.adaptive)
|
|
27434
|
+
}),
|
|
27435
|
+
/* @__PURE__ */ jsx(Row, {
|
|
27436
|
+
label: "source",
|
|
27437
|
+
value: s(server.camStreamId)
|
|
27438
|
+
}),
|
|
27439
|
+
/* @__PURE__ */ jsx(Row, {
|
|
27440
|
+
label: "source kind",
|
|
27441
|
+
value: server.sourceKind
|
|
27442
|
+
}),
|
|
27443
|
+
/* @__PURE__ */ jsx(Row, {
|
|
27444
|
+
label: "ingest node",
|
|
27445
|
+
value: s(server.ingestNodeId)
|
|
27446
|
+
}),
|
|
27447
|
+
/* @__PURE__ */ jsx(Row, {
|
|
27448
|
+
label: "· remote",
|
|
27449
|
+
value: b(server.ingestIsRemote)
|
|
27450
|
+
}),
|
|
27451
|
+
/* @__PURE__ */ jsx(Row, {
|
|
27452
|
+
label: "egress leg",
|
|
27453
|
+
value: server.egressLeg,
|
|
27454
|
+
strong: true
|
|
27455
|
+
}),
|
|
27456
|
+
/* @__PURE__ */ jsx(Row, {
|
|
27457
|
+
label: "codec src→out",
|
|
27458
|
+
value: `${s(server.sourceCodec)}→${s(server.negotiatedCodec)}`
|
|
27459
|
+
}),
|
|
27460
|
+
/* @__PURE__ */ jsx(Row, {
|
|
27461
|
+
label: "broker",
|
|
27462
|
+
value: s(server.brokerStatus)
|
|
27463
|
+
}),
|
|
27464
|
+
/* @__PURE__ */ jsx(Row, {
|
|
27465
|
+
label: "· bitrate",
|
|
27466
|
+
value: n(server.brokerBitrateKbps, { suffix: " kbps" })
|
|
27467
|
+
}),
|
|
27468
|
+
/* @__PURE__ */ jsx(Row, {
|
|
27469
|
+
label: "· input fps",
|
|
27470
|
+
value: n(server.brokerInputFps)
|
|
27471
|
+
}),
|
|
27472
|
+
/* @__PURE__ */ jsx(Row, {
|
|
27473
|
+
label: "rtp sent",
|
|
27474
|
+
value: n(server.rtpPacketsSent)
|
|
27475
|
+
}),
|
|
27476
|
+
/* @__PURE__ */ jsx(Row, {
|
|
27477
|
+
label: "track mode",
|
|
27478
|
+
value: s(server.trackMode)
|
|
27479
|
+
}),
|
|
27480
|
+
server.lastDecision === null ? /* @__PURE__ */ jsx(Row, {
|
|
27481
|
+
label: "ladder",
|
|
27482
|
+
value: "never moved"
|
|
27483
|
+
}) : /* @__PURE__ */ jsxs(Fragment$1, { children: [
|
|
27484
|
+
/* @__PURE__ */ jsx(Row, {
|
|
27485
|
+
label: "ladder move",
|
|
27486
|
+
value: `${server.lastDecision.cause}${server.lastDecision.tier !== null ? ` → ${server.lastDecision.tier}` : ""}`,
|
|
27487
|
+
strong: true
|
|
27488
|
+
}),
|
|
27489
|
+
/* @__PURE__ */ jsx(Row, {
|
|
27490
|
+
label: "· when",
|
|
27491
|
+
value: age(server.lastDecision.at, now)
|
|
27492
|
+
}),
|
|
27493
|
+
/* @__PURE__ */ jsx(Row, {
|
|
27494
|
+
label: "· lossRatio",
|
|
27495
|
+
value: n(server.lastDecision.lossRatio, { digits: 4 })
|
|
27496
|
+
}),
|
|
27497
|
+
/* @__PURE__ */ jsx(Row, {
|
|
27498
|
+
label: "· clientKbps",
|
|
27499
|
+
value: n(server.lastDecision.clientKbps, { suffix: " kbps" })
|
|
27500
|
+
}),
|
|
27501
|
+
/* @__PURE__ */ jsx(Row, {
|
|
27502
|
+
label: "· stalledFor",
|
|
27503
|
+
value: n(server.lastDecision.stalledForMs, { suffix: "ms" })
|
|
27504
|
+
}),
|
|
27505
|
+
/* @__PURE__ */ jsx(Row, {
|
|
27506
|
+
label: "· serverSending",
|
|
27507
|
+
value: b(server.lastDecision.serverSending)
|
|
27508
|
+
}),
|
|
27509
|
+
/* @__PURE__ */ jsx(Row, {
|
|
27510
|
+
label: "· transcode-down",
|
|
27511
|
+
value: b(server.lastDecision.forcedTranscodeDown)
|
|
27512
|
+
})
|
|
27513
|
+
] }),
|
|
27514
|
+
/* @__PURE__ */ jsx(Row, {
|
|
27515
|
+
label: "promotions",
|
|
27516
|
+
value: n(server.upgradeCount)
|
|
27517
|
+
}),
|
|
27518
|
+
server.tierFailures.length > 0 && /* @__PURE__ */ jsx(Row, {
|
|
27519
|
+
label: "tier failures",
|
|
27520
|
+
value: server.tierFailures.map((f) => `${f.tier}:${f.failures}`).join(" ")
|
|
27521
|
+
})
|
|
27522
|
+
] }),
|
|
27523
|
+
sessionId !== null && /* @__PURE__ */ jsx("div", {
|
|
27524
|
+
className: "mt-1 pt-0.5 border-t border-white/15 text-white/40 break-all leading-tight",
|
|
27525
|
+
children: sessionId
|
|
27526
|
+
})
|
|
27527
|
+
]
|
|
27528
|
+
});
|
|
27529
|
+
}
|
|
27530
|
+
//#endregion
|
|
26935
27531
|
//#region src/composites/camera-stream-player.tsx
|
|
26936
27532
|
/**
|
|
26937
27533
|
* Silence (or restore) a live WebRTC stream FOR REAL.
|
|
@@ -27030,7 +27626,7 @@ function mergePlayerHints(autoHints, override, downlinkMbps, coldStart) {
|
|
|
27030
27626
|
return coldStart ? stripDownlinkForColdStart(merged) : merged;
|
|
27031
27627
|
}
|
|
27032
27628
|
var FIRST_FRAME_TIMEOUT_MS = 8e3;
|
|
27033
|
-
function CameraStreamPlayer({ serverUrl, streamKey, label, autoPlay = true, muted: initialMuted = true, showControls = true, showStats = false, onPlaybackStats, onClientNetworkSample, onConnectTiming, className = "", onStateChange, onError, onReconnectAttempt, overlay, createSession, sendAnswer, handleOffer, getIceServers, addIceCandidate, getIceCandidates, closeSession, getSessionState, reoffer, posterUrl, hintsOverride, onAdaptiveHints, reconnectSignal, onControlChannel, onVideoElement }) {
|
|
27629
|
+
function CameraStreamPlayer({ serverUrl, streamKey, label, autoPlay = true, muted: initialMuted = true, showControls = true, showStats = false, onPlaybackStats, onClientNetworkSample, onConnectTiming, className = "", onStateChange, onError, onReconnectAttempt, overlay, createSession, sendAnswer, handleOffer, getIceServers, addIceCandidate, getIceCandidates, closeSession, getSessionState, getSessionDebug, reoffer, posterUrl, hintsOverride, onAdaptiveHints, reconnectSignal, onControlChannel, onVideoElement }) {
|
|
27034
27630
|
const videoRef = useRef(null);
|
|
27035
27631
|
const containerRef = useRef(null);
|
|
27036
27632
|
const pcRef = useRef(null);
|
|
@@ -27927,55 +28523,77 @@ function CameraStreamPlayer({ serverUrl, streamKey, label, autoPlay = true, mute
|
|
|
27927
28523
|
const webkit = video !== null && typeof video.webkitSetPresentationMode === "function";
|
|
27928
28524
|
setIsPipSupported(standard || webkit);
|
|
27929
28525
|
}, []);
|
|
27930
|
-
const [
|
|
27931
|
-
const
|
|
28526
|
+
const [debugStats, setDebugStats] = useState(null);
|
|
28527
|
+
const [serverDebug, setServerDebug] = useState(null);
|
|
28528
|
+
const [serverDebugError, setServerDebugError] = useState(null);
|
|
28529
|
+
const [debugNow, setDebugNow] = useState(() => Date.now());
|
|
28530
|
+
useEffect(() => {
|
|
28531
|
+
if (!showStats) return;
|
|
28532
|
+
const id = setInterval(() => setDebugNow(Date.now()), 500);
|
|
28533
|
+
return () => clearInterval(id);
|
|
28534
|
+
}, [showStats]);
|
|
27932
28535
|
useEffect(() => {
|
|
27933
28536
|
if (!showStats) {
|
|
27934
|
-
|
|
27935
|
-
statsPrev.current = null;
|
|
28537
|
+
setDebugStats(null);
|
|
27936
28538
|
return;
|
|
27937
28539
|
}
|
|
28540
|
+
const prev = { current: null };
|
|
28541
|
+
let cancelled = false;
|
|
27938
28542
|
const tick = async () => {
|
|
27939
28543
|
const pc = pcRef.current;
|
|
27940
28544
|
if (!pc) return;
|
|
27941
28545
|
try {
|
|
27942
28546
|
const report = await pc.getStats();
|
|
27943
|
-
|
|
27944
|
-
|
|
27945
|
-
|
|
27946
|
-
|
|
27947
|
-
|
|
27948
|
-
|
|
27949
|
-
|
|
27950
|
-
const s = raw;
|
|
27951
|
-
if (s.type === "inbound-rtp" && (s.kind ?? s.mediaType) === "video") {
|
|
27952
|
-
bytes = s.bytesReceived ?? 0;
|
|
27953
|
-
ts = s.timestamp;
|
|
27954
|
-
fps = s.framesPerSecond ?? 0;
|
|
27955
|
-
w = s.frameWidth ?? 0;
|
|
27956
|
-
h = s.frameHeight ?? 0;
|
|
27957
|
-
} else if (s.type === "candidate-pair" && s.nominated && typeof s.currentRoundTripTime === "number") rtt = s.currentRoundTripTime;
|
|
28547
|
+
if (cancelled) return;
|
|
28548
|
+
const next = deriveWebrtcDebugStats({
|
|
28549
|
+
report,
|
|
28550
|
+
prev: prev.current,
|
|
28551
|
+
now: Date.now(),
|
|
28552
|
+
iceConnectionState: pc.iceConnectionState,
|
|
28553
|
+
dtlsState: pc.connectionState
|
|
27958
28554
|
});
|
|
27959
|
-
|
|
27960
|
-
|
|
27961
|
-
statsPrev.current = {
|
|
27962
|
-
bytes,
|
|
27963
|
-
ts
|
|
27964
|
-
};
|
|
27965
|
-
const parts = [];
|
|
27966
|
-
if (w && h) parts.push(`${w}×${h}`);
|
|
27967
|
-
if (fps) parts.push(`${Math.round(fps)}fps`);
|
|
27968
|
-
if (kbps > 0) parts.push(`${kbps} kbps`);
|
|
27969
|
-
if (rtt) parts.push(`${Math.round(rtt * 1e3)}ms`);
|
|
27970
|
-
setStatsText(parts.join(" · "));
|
|
28555
|
+
prev.current = next;
|
|
28556
|
+
setDebugStats(next);
|
|
27971
28557
|
} catch {}
|
|
27972
28558
|
};
|
|
27973
28559
|
tick();
|
|
27974
28560
|
const id = setInterval(() => {
|
|
27975
28561
|
tick();
|
|
27976
28562
|
}, 1e3);
|
|
27977
|
-
return () =>
|
|
28563
|
+
return () => {
|
|
28564
|
+
cancelled = true;
|
|
28565
|
+
clearInterval(id);
|
|
28566
|
+
};
|
|
27978
28567
|
}, [showStats]);
|
|
28568
|
+
useEffect(() => {
|
|
28569
|
+
if (!showStats || !getSessionDebug) {
|
|
28570
|
+
setServerDebug(null);
|
|
28571
|
+
setServerDebugError(null);
|
|
28572
|
+
return;
|
|
28573
|
+
}
|
|
28574
|
+
let cancelled = false;
|
|
28575
|
+
const tick = async () => {
|
|
28576
|
+
const sid = activeSessionIdRef.current;
|
|
28577
|
+
if (sid === null) return;
|
|
28578
|
+
try {
|
|
28579
|
+
const answer = await getSessionDebug(sid);
|
|
28580
|
+
if (cancelled) return;
|
|
28581
|
+
setServerDebug(answer);
|
|
28582
|
+
setServerDebugError(null);
|
|
28583
|
+
} catch (err) {
|
|
28584
|
+
if (cancelled) return;
|
|
28585
|
+
setServerDebugError(err instanceof Error ? err.message : String(err));
|
|
28586
|
+
}
|
|
28587
|
+
};
|
|
28588
|
+
tick();
|
|
28589
|
+
const id = setInterval(() => {
|
|
28590
|
+
tick();
|
|
28591
|
+
}, 1e3);
|
|
28592
|
+
return () => {
|
|
28593
|
+
cancelled = true;
|
|
28594
|
+
clearInterval(id);
|
|
28595
|
+
};
|
|
28596
|
+
}, [showStats, getSessionDebug]);
|
|
27979
28597
|
const netPrev = useRef(null);
|
|
27980
28598
|
useEffect(() => {
|
|
27981
28599
|
if (!onClientNetworkSample) {
|
|
@@ -28162,9 +28780,13 @@ function CameraStreamPlayer({ serverUrl, streamKey, label, autoPlay = true, mute
|
|
|
28162
28780
|
className: "absolute top-2 left-2 z-10 transform-gpu px-2 py-0.5 rounded bg-black/60 text-[10px] text-white font-medium",
|
|
28163
28781
|
children: label
|
|
28164
28782
|
}),
|
|
28165
|
-
showStats &&
|
|
28166
|
-
|
|
28167
|
-
|
|
28783
|
+
showStats && /* @__PURE__ */ jsx(StreamDebugOverlay, {
|
|
28784
|
+
stats: debugStats,
|
|
28785
|
+
server: serverDebug,
|
|
28786
|
+
serverError: serverDebugError,
|
|
28787
|
+
serverWired: getSessionDebug !== void 0,
|
|
28788
|
+
now: debugNow,
|
|
28789
|
+
sessionId: activeSessionIdRef.current
|
|
28168
28790
|
}),
|
|
28169
28791
|
overlay,
|
|
28170
28792
|
showControls && !stillImg && state === "connecting" && /* @__PURE__ */ jsxs("div", {
|
|
@@ -51517,6 +52139,13 @@ function useDeviceWebrtc(trpc, deviceId, pollIntervalMs = 5e3) {
|
|
|
51517
52139
|
} catch {
|
|
51518
52140
|
return { pendingRenegotiation: null };
|
|
51519
52141
|
}
|
|
52142
|
+
}, [trpc, deviceId]),
|
|
52143
|
+
getSessionDebug: useCallback(async (sessionId) => {
|
|
52144
|
+
if (deviceId === null) throw new Error("getSessionDebug: no device bound to this player");
|
|
52145
|
+
return trpc.webrtcSession.getSessionDebug.query({
|
|
52146
|
+
deviceId,
|
|
52147
|
+
sessionId
|
|
52148
|
+
});
|
|
51520
52149
|
}, [trpc, deviceId])
|
|
51521
52150
|
};
|
|
51522
52151
|
}
|
|
@@ -51793,4 +52422,4 @@ var SceneMonitorEditor = lazy(() => import("./SceneMonitorEditor-BvDy3x3k.js").t
|
|
|
51793
52422
|
/** Lazy-wrapped `PrivacyMaskSettings` — code-split off the main bundle. */
|
|
51794
52423
|
var PrivacyMaskSettings = lazy(() => import("./PrivacyMaskSettings-PkYs077O.js").then((m) => ({ default: m.PrivacyMaskSettings })));
|
|
51795
52424
|
//#endregion
|
|
51796
|
-
export { AddonGlobalSettingsForm, AgentStepEditor, AlarmHeroCard, AlarmInlineControl as AlarmPanelInlineControl, AppShell, ArcKnob, AudioClassificationList, AudioLevelWaveform, AudioWaveform, AutomationHeroCard, AutomationInlineControl, AutotrackSection, BTN_COMPACT, BTN_COMPACT_DANGER, BTN_COMPACT_PRIMARY, BTN_COMPACT_WARNING, Badge, BatteryBadge, BottomSheet, Breadcrumb, BrightnessPanel, Button, ButtonControl, ButtonHeroCard, CARD_MODE_MIN_COLUMNS, CENTER, CHIP_ACTIVE, CHIP_BASE, CHIP_INACTIVE, CLASS_COLORS, COLUMN_BREAKPOINT_CLASS, COLUMN_PRIORITY, COMMIT_DEDUPE_TOLERANCE_MS, COMMIT_DEDUPE_WINDOW_MS, CONTROL_CAP_NAMES, CONTROL_FILLS, CameraStreamPlayer, Card, Checkbox, ChildSectionAccordion, ClimatePanel, CodeBlock, CollapsibleCard, ConfigFormBuilder, FormField as ConfigFormField, ConfigSchemaField, ConfirmActionButton, ConfirmDialogProvider, ConsumablesPanel, ContainerChildrenProvider, ContainerPrimaryHero, ControlColumn, ControlHeroCard, ControlInlineControl, ControlPanel, CopyButton, CoverHeroCard, CoverInlineControl, CoverPanel, CustomFieldRenderersProvider, DEFAULT_COLOR, DEVICE_COLUMNS, DEVICE_LIST_PAGE_SIZE_KEY, DEVICE_LIST_PAGE_SIZE_OPTIONS, DEVICE_ROLE_META, DEVICE_TYPE_CONTROL, DEVICE_TYPE_META, DISPLAY_ICON_REGISTRY, DataTable, DetectionCanvas, DetectionOverlay, DetectionResultTree, DevShell, DeviceActivityPanel, DeviceBatchToolbar, DeviceCard, DeviceContextProvider, DeviceExportPanel, DeviceGrid, DeviceItem, DeviceList, DeviceMultiSelectField, DeviceSelectField, DeviceSelectorPicker, DeviceStepMatrix, Dialog, DialogBody, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, DialogTrigger, DiscoveryPanel, DoorbellRecentPanel, Dropdown, DropdownContent, DropdownItem, DropdownTrigger, DummyHeroCard, DummyInline, EVENT_KIND_ICONS, EmptyState, ErrorBox, EventKindGlyph, EventStream, FILL, 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, GripTrack, GroupedModelSelector, HOST_WIDGETS, HlsVideo, HoverZoomImage, HumidifierHeroCard, HumidifierInlineControl, INPUT_COMPACT, IconAction, IconButton, ImageHeroCard, ImageInlineControl, ImageSelector, InferenceConfigSelector, Input, KebabMenu, KeyValueList, LIST_ROW, Label, LawnMowerHeroCard, LawnMowerInlineControl, LightHeroCard, LightInlineControl, LockHeroCard, LockInlineControl, LockPanel, LogStream, LoginForm, MODE_COLOR, MaskShapeCanvas, MediaPlayerHeroCard, MediaPlayerInlineControl, MediaPlayerPanel, MobileDrawer, ModelPicker, MotionZonesSettings, NAVIGATION_DRIVE_INTERVAL_MS, NavigationPanel, NetworkLinkBadge, NodeMultiSelectField, NodePicker, NodeSelectField, OfflineBadge, PHASE_CONFIG, PRIORITY, PTZOverlay, PageHeader, PhaseIcon, PipelineBuilder, PipelineRuntimeSelector, PipelineStep, PipelineTreeMatrix, PlayerOverlaysProvider, Popover, PopoverContent, PopoverRowAction, PopoverTrigger, PrimaryChildPicker, PrivacyMaskSettings, ProviderBadge, PtzPanel, QrCode, RECONNECT_POLICY, RECORDED_PLAYBACK_MODES, RIGHT, ROI_AREA_WARN_FRACTION, ROLE_DESCRIPTOR, RadialGauge, RecordedPlaybackProvider, RecordingPanel, ResponseLog, SCENE_CAPTURE_VARIANTS, SECTION_BODY, SECTION_CARD, SECTION_HEADER, SETTING_ROW, SETTING_ROW_LABEL, SETTING_ROW_STACK_BREAKPOINT, SETTING_ROW_VALUE, SETTING_ROW_VALUE_TEXT, SNAPSHOT_MEDIA_PATH, SPLIT_PANEL_OUTER, SPLIT_PANEL_SIDE, STACK_GAP, STATE_COLOR, SceneMonitorEditor, ScopePicker, ScriptHeroCard, ScriptInlineControl, ScrollArea, Select, SemanticBadge, SensorHeroCard, SensorInlineControl, SensorValueAtom, Separator, SettingRow, Sidebar, SidebarItem, Skeleton, SlideOverPanel, SlideToggle, SnapshotButton, SortHeaderButton, StatCard, StateValuesStream, StatusBadge, StepTimings, StepTreeMaster, Stepper, StreamBrokerSelector, StreamPanel, Switch, SwitchHeroCard, SwitchInlineControl, SwitchPanel, SystemProvider, TABLE_SCROLL_MAX_H, TEXT_FIELD_LABEL, TEXT_HINT, TEXT_METRIC, TEXT_SECTION_LABEL, TEXT_VALUE, TIMEZONES, Tabs, TabsContent, TabsList, TabsTrigger, TapToggle, ThemeProvider, ThermostatHeroCard, ThermostatInlineControl, TimezoneSelector, Tooltip, TooltipContent, TooltipTrigger, VacuumHeroCard, VacuumInlineControl, ValueReadout, ValveHeroCard, ValveInlineControl, VersionBadge, VodPlaybackProvider, WaterHeaterHeroCard, WaterHeaterInlineControl, WeatherHeroCard, WeatherInlineControl, WidgetMetricCard, WidgetPanel, WidgetRegistryProvider, WidgetSlot, ZoneEditingProvider, ImageOff as a, agentColumnKey, allDeviceTypeFilterOptions, applyFleetQueryDefaults, ariaSortForColumn, badgeFor, buildStepTreeFromSchema, Camera as c, childEntityId, childListName, cn, columnsForContext, containerChildToRef, countableDevices, coverHighlight, coverageLine, createSharedContext, createTheme, cursorFractionFor, darkColors, defaultTheme, deriveDeviceKind, describeDeviceSelector, deviceMatchesFilter, deviceOptionLabel, deviceRoleMeta, deviceRoleMetaOf, deviceTypeLabel, deviceTypeMeta, deviceTypeMetaOf, devicesToOptions, ensureMfHostInit, eventKindLabel, filterDeviceOptions, findTimezone, formatControlDateTime, formatLastSeen, formatNumeric, fuzzyMatch, getClassColor, getPhaseVisual, groupAgentColumns, groupChildrenByLayout, hardwareLabel, hubOrigin, hubPath, hubUrl, hubWsUrl, humanDuration, humidifierTint, Mic as i, initialScrubState, isAbsentProvider, isFieldVisible, createLucideIcon as l, lawnMowerActivityMeta, lightColors, loadRemoteBundle, makeScrubBridge, metadataEntries, metadataString, mirror, mountAddonPage, mountPath, Square as n, nextReconnectAction, nextSort, nextSortDirection, nextTableSort, normalizeForSearch, Grid2x2 as o, openTopLayer, overrideEntityIdFromLink, parseRecordedServerMessage, providerIcons, RotateCcw as r, resetHubMountForTests, resolveContainerPrimary, resolveControlAlign, resolveDeviceControl, resolveDisplayIcon, resolveEffectiveDefaultModel, resolveEffectiveStepModel, resolveEventKindIcon, resolvePrimaryChild, resolveSensorDisplay, resolveStepDefaultModel, resolveTableLayout, roiTooLarge, routerBasename, EyeOff as s, scrubReducer, selectedDeviceOptions, serializeRecordedCommand, shouldCommit, shouldEmit, shouldUseSingleNode, sortRows, sortRowsByColumn, statusIcons, statusLine, stepHasModelForFormat, stepModelOptions, stripParentNamePrefix, Trash2 as t, tabForSelector, tankAlert, themeToCss, toStationaryOverlayBox, trpc, 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, useCameraCredentialsGetCredentials, useCameraCredentialsGetStatus, useCameraGridLayoutApplyDeviceSettingsPatch, useCameraGridLayoutGetDeviceLiveContribution, useCameraGridLayoutGetDeviceSettingsContribution, useCameraGridLayoutGetLayout, useCameraGridLayoutSaveLayout, useCameraPipelineConfigApplyDeviceSettingsPatch, useCameraPipelineConfigGetDeviceLiveContribution, useCameraPipelineConfigGetDeviceSettingsContribution, useCameraStreamsGetBrokerStreams, useCameraStreamsGetCameraStreams, useCameraStreamsGetProfileRtspEntries, useCameraStreamsGetRtspEntries, useCameraStreamsPickStream, 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, useCoreBlocksDelete, useCoreBlocksGet, useCoreBlocksGetTypeDefs, useCoreBlocksList, useCoreBlocksRestart, useCoreBlocksSetEnabled, useCoreBlocksUpdate, useCoverClose, useCoverGetStatus, useCoverOpen, useCoverSetPosition, useCoverSetTiltPosition, useCoverStop, useCustomFieldRenderer, useDayNightGetOptions, useDayNightGetStatus, useDayNightSetSettings, useDebouncedString, useDecoderCreateSession, useDecoderDestroySession, useDecoderGetFrame, useDecoderGetInfo, useDecoderGetShmStats, useDecoderGetStats, useDecoderListActiveSessions, useDecoderOpenStream, useDecoderPullFrames, useDecoderPullHandles, useDecoderPushPacket, useDecoderReprobeHwaccel, useDecoderSupportsCodec, useDecoderUpdateConfig, useDetectionPipelineApplyDeviceSettingsPatch, useDetectionPipelineGetDeviceLiveContribution, useDetectionPipelineGetDeviceSettingsContribution, useDevShell, useDevice, useDeviceAdoptionAdopt, useDeviceAdoptionGetCandidate, useDeviceAdoptionGetStatus, useDeviceAdoptionListCandidateFilters, useDeviceAdoptionListCandidates, useDeviceAdoptionRefresh, useDeviceAdoptionRelease, useDeviceAdoptionResync, useDeviceAutotrack, useDeviceBattery, useDeviceCapSlice, useDeviceCapability, useDeviceDetections, useDeviceDiscoveryAdoptDevice, useDeviceDiscoveryGetStatus, useDeviceDiscoveryListDiscovered, useDeviceDiscoveryRefreshDiscovery, useDeviceDiscoveryReleaseDevice, useDeviceExportApplyDeviceSettingsPatch, useDeviceExportExposeDevice, useDeviceExportGetDeviceLiveContribution, useDeviceExportGetDeviceSettingsContribution, useDeviceExportGetStatus, useDeviceExportListExposedDevices, useDeviceExportListSupportedDeviceKinds, useDeviceExportUnexposeDevice, useDeviceId, useDeviceListPageSize, useDeviceManagerAddLocation, useDeviceManagerAdoptDevice, useDeviceManagerAdoptionAdopt, useDeviceManagerAdoptionCancelJob, useDeviceManagerAdoptionListCandidateFilters, useDeviceManagerAdoptionListCandidates, useDeviceManagerAdoptionListJobs, useDeviceManagerAdoptionRefresh, useDeviceManagerAdoptionRelease, useDeviceManagerAdoptionResync, useDeviceManagerAdoptionStartJob, useDeviceManagerAllocateDeviceId, useDeviceManagerApplyDeviceSettingsPatch, useDeviceManagerApplyInitialMeta, useDeviceManagerCreateDevice, useDeviceManagerDisable, useDeviceManagerDiscoverAllProviders, useDeviceManagerDiscoverDevices, useDeviceManagerDiscoverProvider, useDeviceManagerDiscoveryProviders, useDeviceManagerEnable, useDeviceManagerGetAllBindings, useDeviceManagerGetBindings, useDeviceManagerGetBindingsBatch, useDeviceManagerGetChildren, useDeviceManagerGetChildrenBatch, useDeviceManagerGetConfigSchema, useDeviceManagerGetCreationSchema, useDeviceManagerGetDevice, useDeviceManagerGetDeviceAggregate, useDeviceManagerGetDeviceLiveContribution, useDeviceManagerGetDeviceLiveInfoAggregate, useDeviceManagerGetDeviceSettingsAggregate, useDeviceManagerGetDeviceSettingsContribution, useDeviceManagerGetDeviceStatusAggregate, useDeviceManagerGetDeviceStatusAggregateBatch, useDeviceManagerGetLinkedDevices, useDeviceManagerGetLinkedDevicesBatch, useDeviceManagerGetRoleDisplayDefaults, useDeviceManagerGetSettingsSchema, useDeviceManagerGetStreamProfileMap, useDeviceManagerGetStreamSources, useDeviceManagerGetWireableFields, useDeviceManagerListAll, useDeviceManagerListBindableCapsForDeviceType, 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, useDeviceSnapshot, useDeviceSnapshotImage, useDeviceState, useDeviceStateGetAllSnapshots, useDeviceStateGetCapSlice, useDeviceStateGetSnapshot, useDeviceStateSetCapSlice, useDeviceStateSlice, useDeviceStatusGetStatus, useDeviceWebrtc, useDevices, useDoorbellApplyDeviceSettingsPatch, useDoorbellEvents, useDoorbellGetDeviceLiveContribution, useDoorbellGetDeviceSettingsContribution, useDoorbellGetStatus, useEnumSensorGetStatus, useEventEmitterGetStatus, useEventInvalidation, useEventStreamLatest, useEventStreamMap, useEventsGetEventClipUrl, useEventsGetEventThumbnail, useEventsGetEvents, useFaceGalleryAssignFace, useFaceGalleryAssignFaces, 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, useLocalNetworkDownloadCa, useLocalNetworkGetAllowedAddresses, useLocalNetworkGetConnectionEndpoints, useLocalNetworkGetNotificationEndpoint, useLocalNetworkGetPreferred, useLocalNetworkGetTlsStatus, useLocalNetworkGetViewerEndpoints, useLocalNetworkList, useLocalNetworkRegenerateCertificate, useLocalNetworkResetAllowlistToBestMatch, useLocalNetworkRevertToGeneratedCertificate, useLocalNetworkSetAllowedAddresses, useLocalNetworkSetNotificationEndpoint, useLocalNetworkSetViewerEndpoints, useLocalNetworkUploadCertificate, useLockControlGetStatus, useLockControlLock, useLockControlOpen, useLockControlUnlock, useMediaPlayerGetStatus, useMediaPlayerNext, useMediaPlayerPause, useMediaPlayerPlay, useMediaPlayerPlayMedia, useMediaPlayerPrevious, useMediaPlayerSeek, useMediaPlayerSelectSource, useMediaPlayerSetMute, useMediaPlayerSetRepeat, useMediaPlayerSetShuffle, useMediaPlayerSetVolume, useMediaPlayerStop, useMeshNetworkGetStatus, useMeshNetworkJoin, useMeshNetworkLeave, useMeshNetworkListPeers, useMeshNetworkLogout, useMeshNetworkStartLogin, useMeshNetworkTestConnection, useMetricsProviderCollectSnapshot, 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, useNodesExecuteQuery, useNodesGetCapUsageGraph, useNodesGetNodeAddons, useNodesRenameNode, useNodesRestartAddon, useNodesRestartNode, useNodesRestartProcess, useNodesSetProcessLogLevel, useNodesShutdownNode, useNodesTopology, useNodesUndeployAddon, useNotificationOutputDeleteTarget, useNotificationOutputDiscoverTargets, useNotificationOutputListTargetKinds, useNotificationOutputListTargets, useNotificationOutputSend, useNotificationOutputSetTargetEnabled, useNotificationOutputTestTarget, useNotificationOutputUpsertTarget, useNotificationRulesCancelSnooze, useNotificationRulesCreateRule, useNotificationRulesCreateSnooze, useNotificationRulesDeleteRule, useNotificationRulesGetAlarmConfig, useNotificationRulesGetClipRetentionAsks, useNotificationRulesGetConditionCatalog, useNotificationRulesGetHistory, useNotificationRulesGetRule, useNotificationRulesListDeviceMutes, useNotificationRulesListRules, useNotificationRulesListSnoozes, useNotificationRulesResolveArtifactUrl, useNotificationRulesSetAlarmConfig, useNotificationRulesSetDeviceMuted, useNotificationRulesSetRuleEnabled, useNotificationRulesTestRule, useNotificationRulesUpdateRule, useNotifierCancel, useNotifierGetStatus, useNotifierSend, useNumericSensorGetStatus, useOptimisticSlice, useOptionalSystem, useOptionalWidgetRegistry, useOsdGetStatus, useOsdManagerClearSlotBinding, useOsdManagerCopyDeviceConfiguration, useOsdManagerGetConditionSupport, useOsdManagerGetDeviceOsd, useOsdManagerGetSourceCatalog, useOsdManagerPreviewSlot, useOsdManagerRenderDevice, useOsdManagerSetSlotBinding, useOsdSetOverlay, usePTZ, usePetFeederCallPet, usePetFeederCancelFeed, usePetFeederFeed, usePetFeederGetStatus, usePetFeederMarkFoodReplenished, usePetFeederPlaySound, usePetFeederResetDesiccant, usePetFeederSetChildLock, usePetFeederSetFeedSound, usePetFeederSetIndicatorLight, usePetFeederSetVolume, usePipelineAnalyticsApplyDeviceSettingsPatch, usePipelineAnalyticsCancelRelocateMedia, usePipelineAnalyticsCancelStorageMigrationMove, 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, usePipelineAnalyticsGetSummary, usePipelineAnalyticsGetTrack, usePipelineAnalyticsGetTrackMedia, usePipelineAnalyticsGetTrainingExportSummary, usePipelineAnalyticsGetTrainingExportUrl, usePipelineAnalyticsListArchivedDebugNotes, usePipelineAnalyticsListBirthDecisions, usePipelineAnalyticsListEventKinds, usePipelineAnalyticsListEventKindsBatch, usePipelineAnalyticsListEventMedia, usePipelineAnalyticsListOpsLog, usePipelineAnalyticsListRecentSummaries, usePipelineAnalyticsListRecentTracks, usePipelineAnalyticsListRelocateMediaJobs, usePipelineAnalyticsListRetrainAnnotations, usePipelineAnalyticsListRetrainFrames, usePipelineAnalyticsListRetrainStaging, usePipelineAnalyticsListSummaries, usePipelineAnalyticsListTrackMedia, usePipelineAnalyticsListTracks, usePipelineAnalyticsPauseForStorageMigration, usePipelineAnalyticsProposeRetrainAnnotations, usePipelineAnalyticsPruneEvents, usePipelineAnalyticsPruneEventsBefore, usePipelineAnalyticsPruneTracksBefore, usePipelineAnalyticsReadLongTermSeries, usePipelineAnalyticsRebuildObjectEmbeddings, usePipelineAnalyticsReclaimDebugMedia, usePipelineAnalyticsReconcileFromDisk, usePipelineAnalyticsRefreshStorageLocationsForMigration, usePipelineAnalyticsRelocateMedia, usePipelineAnalyticsRestageRetrainTrack, usePipelineAnalyticsResumeForStorageMigration, usePipelineAnalyticsRunReplayFrameProcessor, usePipelineAnalyticsSaveRetrainAnnotations, usePipelineAnalyticsSearchObjectEvents, usePipelineAnalyticsSelectRetrainFrames, usePipelineAnalyticsSetTrackFlags, usePipelineAnalyticsStartStorageMigrationMove, usePipelineAnalyticsWipeAllAnalytics, usePipelineAnalyticsWipeObjectEmbeddings, usePipelineExecutorCacheFrameInPool, usePipelineExecutorClearDeviceOverrides, 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, usePipelineOrchestratorApplyDeviceSettingsPatch, usePipelineOrchestratorAssignAudio, usePipelineOrchestratorAssignPipeline, usePipelineOrchestratorDeleteTemplate, usePipelineOrchestratorGetAgentLoad, usePipelineOrchestratorGetAgentSettings, usePipelineOrchestratorGetAudioAssignment, usePipelineOrchestratorGetAudioAssignments, usePipelineOrchestratorGetAudioNodeLoad, usePipelineOrchestratorGetCameraMetrics, usePipelineOrchestratorGetCameraSettings, usePipelineOrchestratorGetCameraStatus, usePipelineOrchestratorGetCameraStatuses, usePipelineOrchestratorGetCameraStepOverrides, usePipelineOrchestratorGetCameraSwitches, usePipelineOrchestratorGetCapabilityBindings, usePipelineOrchestratorGetDeviceLiveContribution, usePipelineOrchestratorGetDeviceSettingsContribution, usePipelineOrchestratorGetGlobalMetrics, usePipelineOrchestratorGetIngestOwner, usePipelineOrchestratorGetNodeInferenceDevices, usePipelineOrchestratorGetPipelineAssignment, usePipelineOrchestratorGetPipelineAssignments, usePipelineOrchestratorGetPipelineDevicePin, usePipelineOrchestratorGetReconcileFromDiskStatus, usePipelineOrchestratorListAgentSettings, usePipelineOrchestratorListTemplates, usePipelineOrchestratorPauseForStorageMigration, usePipelineOrchestratorRebalance, usePipelineOrchestratorReconcileFromDisk, usePipelineOrchestratorRemoveAgentSettings, usePipelineOrchestratorResetNodePipelineDefaults, usePipelineOrchestratorResolvePipeline, usePipelineOrchestratorResumeForStorageMigration, usePipelineOrchestratorSaveTemplate, usePipelineOrchestratorSetAgentCapabilities, usePipelineOrchestratorSetAgentDecodeLimits, usePipelineOrchestratorSetAgentDetectWeight, usePipelineOrchestratorSetAgentInferenceDevices, usePipelineOrchestratorSetAgentMaxCameras, usePipelineOrchestratorSetAgentReachableHost, usePipelineOrchestratorSetCameraPipelineForAgent, usePipelineOrchestratorSetCameraStepOverride, usePipelineOrchestratorSetCameraStepToggle, usePipelineOrchestratorSetCameraSwitch, usePipelineOrchestratorSetCapabilityBinding, usePipelineOrchestratorSetPipelineDevicePin, 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, useRecordingApplyDeviceSettingsPatch, useRecordingCancelRelocateJob, useRecordingCancelStorageMigrationMove, useRecordingDeleteFootprint, useRecordingExportCancelExport, useRecordingExportCreateExport, useRecordingExportDeleteExport, useRecordingExportGetDownloadUrl, useRecordingExportGetExport, useRecordingExportListExports, useRecordingExportReadExportBytes, useRecordingGetAvailability, useRecordingGetAvailabilityBatch, useRecordingGetDaysWithRecordings, useRecordingGetDaysWithRecordingsBatch, useRecordingGetDeviceConfig, useRecordingGetDeviceLiveContribution, useRecordingGetDeviceSettingsContribution, useRecordingGetPlacement, useRecordingGetPlaybackManifest, useRecordingGetRelocateResidue, useRecordingGetStatus, useRecordingGetStorageMigrationMoveStatus, useRecordingGetStorageUsage, useRecordingListOpsLog, useRecordingListRelocateJobs, useRecordingLocateSegment, useRecordingPauseForStorageMigration, useRecordingPlanStorageRebalance, useRecordingPruneFootage, useRecordingReadGopBytes, useRecordingReadSegmentBytes, useRecordingReadWindowBytes, useRecordingReconcileLedgerAgainstDisk, useRecordingRefreshStorageLocationsForMigration, useRecordingRelocateFootage, useRecordingRenderClip, useRecordingRenderGif, useRecordingRescanStorage, useRecordingResumeForStorageMigration, useRecordingSetDeviceConfig, useRecordingSetDevicePlacement, useRecordingSignalGetStatus, useRecordingStartStorageMigrationMove, useRecordingStartStorageRebalance, useRemoteComponent, 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, 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, useUserManagementConfirmTotp, useUserManagementCreateApiKey, useUserManagementCreateScopedToken, useUserManagementCreateUser, useUserManagementDeleteUser, useUserManagementDisableTotp, useUserManagementGetTotpStatus, useUserManagementListApiKeys, useUserManagementListOauthSessions, useUserManagementListScopedTokens, useUserManagementListUsers, useUserManagementOauthExchangeCode, useUserManagementOauthIssueCode, useUserManagementOauthRefresh, useUserManagementOauthVerifyAccessToken, useUserManagementResetPassword, useUserManagementRevokeApiKey, useUserManagementRevokeOauthSession, useUserManagementRevokeScopedToken, useUserManagementSetUserScopes, useUserManagementSetupTotp, useUserManagementUpdateUser, useUserManagementValidateApiKey, useUserManagementValidateCredentials, useUserManagementValidateScopedToken, useUserManagementVerifyTotp, useVacuumControlGetStatus, useVacuumControlLocate, useVacuumControlPause, useVacuumControlReturnToBase, useVacuumControlSetFanSpeed, useVacuumControlStart, useVacuumControlStop, useValveClose, useValveGetStatus, useValveOpen, useValveSetPosition, useValveStop, useVibrationGetStatus, useVideoclipsGetClipPlayback, useVideoclipsListClips, useVodPlayback, useWaterHeaterGetStatus, useWaterHeaterSetAway, useWaterHeaterSetOperationMode, useWaterHeaterSetTargetTemp, useWeatherGetStatus, useWebrtcSessionAddIceCandidate, useWebrtcSessionCloseSession, useWebrtcSessionCreateSession, useWebrtcSessionGetIceCandidates, useWebrtcSessionGetSessionState, useWebrtcSessionHandleAnswer, useWebrtcSessionHandleOffer, useWebrtcSessionHasAdaptiveBitrate, useWebrtcSessionListStreams, useWidget, useWidgetMetadata, useWidgetRegistry, useZoneAnalyticsGetCameraHistory, useZoneAnalyticsGetCurrentSnapshot, useZoneAnalyticsGetCurrentSnapshotBatch, useZoneAnalyticsGetUnzonedHistory, useZoneAnalyticsGetZoneHistory, useZoneEditing, useZoneRulesListRules, useZoneRulesSetRules, useZonesAddZone, useZonesListZones, useZonesRemoveZone, useZonesUpdateZone, vacuumStateMeta, validateScopes, valveStateMeta, variantLabel, waterHeaterPhase, waterHeaterTint, weatherConditionMeta, weatherTint };
|
|
52425
|
+
export { AddonGlobalSettingsForm, AgentStepEditor, AlarmHeroCard, AlarmInlineControl as AlarmPanelInlineControl, AppShell, ArcKnob, AudioClassificationList, AudioLevelWaveform, AudioWaveform, AutomationHeroCard, AutomationInlineControl, AutotrackSection, BTN_COMPACT, BTN_COMPACT_DANGER, BTN_COMPACT_PRIMARY, BTN_COMPACT_WARNING, Badge, BatteryBadge, BottomSheet, Breadcrumb, BrightnessPanel, Button, ButtonControl, ButtonHeroCard, CARD_MODE_MIN_COLUMNS, CENTER, CHIP_ACTIVE, CHIP_BASE, CHIP_INACTIVE, CLASS_COLORS, COLUMN_BREAKPOINT_CLASS, COLUMN_PRIORITY, COMMIT_DEDUPE_TOLERANCE_MS, COMMIT_DEDUPE_WINDOW_MS, CONTROL_CAP_NAMES, CONTROL_FILLS, CameraStreamPlayer, Card, Checkbox, ChildSectionAccordion, ClimatePanel, CodeBlock, CollapsibleCard, ConfigFormBuilder, FormField as ConfigFormField, ConfigSchemaField, ConfirmActionButton, ConfirmDialogProvider, ConsumablesPanel, ContainerChildrenProvider, ContainerPrimaryHero, ControlColumn, ControlHeroCard, ControlInlineControl, ControlPanel, CopyButton, CoverHeroCard, CoverInlineControl, CoverPanel, CustomFieldRenderersProvider, DEFAULT_COLOR, DEVICE_COLUMNS, DEVICE_LIST_PAGE_SIZE_KEY, DEVICE_LIST_PAGE_SIZE_OPTIONS, DEVICE_ROLE_META, DEVICE_TYPE_CONTROL, DEVICE_TYPE_META, DISPLAY_ICON_REGISTRY, DataTable, DetectionCanvas, DetectionOverlay, DetectionResultTree, DevShell, DeviceActivityPanel, DeviceBatchToolbar, DeviceCard, DeviceContextProvider, DeviceExportPanel, DeviceGrid, DeviceItem, DeviceList, DeviceMultiSelectField, DeviceSelectField, DeviceSelectorPicker, DeviceStepMatrix, Dialog, DialogBody, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, DialogTrigger, DiscoveryPanel, DoorbellRecentPanel, Dropdown, DropdownContent, DropdownItem, DropdownTrigger, DummyHeroCard, DummyInline, EVENT_KIND_ICONS, EmptyState, ErrorBox, EventKindGlyph, EventStream, FILL, 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, GripTrack, GroupedModelSelector, HOST_WIDGETS, HlsVideo, HoverZoomImage, HumidifierHeroCard, HumidifierInlineControl, INPUT_COMPACT, IconAction, IconButton, ImageHeroCard, ImageInlineControl, ImageSelector, InferenceConfigSelector, Input, KebabMenu, KeyValueList, LIST_ROW, Label, LawnMowerHeroCard, LawnMowerInlineControl, LightHeroCard, LightInlineControl, LockHeroCard, LockInlineControl, LockPanel, LogStream, LoginForm, MODE_COLOR, MaskShapeCanvas, MediaPlayerHeroCard, MediaPlayerInlineControl, MediaPlayerPanel, MobileDrawer, ModelPicker, MotionZonesSettings, NAVIGATION_DRIVE_INTERVAL_MS, NavigationPanel, NetworkLinkBadge, NodeMultiSelectField, NodePicker, NodeSelectField, OfflineBadge, PHASE_CONFIG, PRIORITY, PTZOverlay, PageHeader, PhaseIcon, PipelineBuilder, PipelineRuntimeSelector, PipelineStep, PipelineTreeMatrix, PlayerOverlaysProvider, Popover, PopoverContent, PopoverRowAction, PopoverTrigger, PrimaryChildPicker, PrivacyMaskSettings, ProviderBadge, PtzPanel, QrCode, RECONNECT_POLICY, RECORDED_PLAYBACK_MODES, RIGHT, ROI_AREA_WARN_FRACTION, ROLE_DESCRIPTOR, RadialGauge, RecordedPlaybackProvider, RecordingPanel, ResponseLog, SCENE_CAPTURE_VARIANTS, SECTION_BODY, SECTION_CARD, SECTION_HEADER, SETTING_ROW, SETTING_ROW_LABEL, SETTING_ROW_STACK_BREAKPOINT, SETTING_ROW_VALUE, SETTING_ROW_VALUE_TEXT, SNAPSHOT_MEDIA_PATH, SPLIT_PANEL_OUTER, SPLIT_PANEL_SIDE, STACK_GAP, STATE_COLOR, SceneMonitorEditor, ScopePicker, ScriptHeroCard, ScriptInlineControl, ScrollArea, Select, SemanticBadge, SensorHeroCard, SensorInlineControl, SensorValueAtom, Separator, SettingRow, Sidebar, SidebarItem, Skeleton, SlideOverPanel, SlideToggle, SnapshotButton, SortHeaderButton, StatCard, StateValuesStream, StatusBadge, StepTimings, StepTreeMaster, 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, VacuumHeroCard, VacuumInlineControl, ValueReadout, ValveHeroCard, ValveInlineControl, VersionBadge, VodPlaybackProvider, WaterHeaterHeroCard, WaterHeaterInlineControl, WeatherHeroCard, WeatherInlineControl, WidgetMetricCard, WidgetPanel, WidgetRegistryProvider, WidgetSlot, ZoneEditingProvider, ImageOff as a, agentColumnKey, allDeviceTypeFilterOptions, applyFleetQueryDefaults, ariaSortForColumn, badgeFor, buildStepTreeFromSchema, Camera as c, childEntityId, childListName, cn, columnsForContext, containerChildToRef, countableDevices, coverHighlight, coverageLine, createSharedContext, createTheme, cursorFractionFor, darkColors, defaultTheme, deriveDeviceKind, deriveWebrtcDebugStats, describeDeviceSelector, deviceMatchesFilter, deviceOptionLabel, deviceRoleMeta, deviceRoleMetaOf, deviceTypeLabel, deviceTypeMeta, deviceTypeMetaOf, devicesToOptions, ensureMfHostInit, eventKindLabel, filterDeviceOptions, findTimezone, formatControlDateTime, formatLastSeen, formatNumeric, freezeVerdict, fuzzyMatch, getClassColor, getPhaseVisual, groupAgentColumns, groupChildrenByLayout, hardwareLabel, hubOrigin, hubPath, hubUrl, hubWsUrl, humanDuration, humidifierTint, Mic as i, initialScrubState, isAbsentProvider, isFieldVisible, createLucideIcon as l, lawnMowerActivityMeta, lightColors, loadRemoteBundle, makeScrubBridge, metadataEntries, metadataString, mirror, mountAddonPage, mountPath, Square as n, nextReconnectAction, nextSort, nextSortDirection, nextTableSort, normalizeForSearch, Grid2x2 as o, openTopLayer, overrideEntityIdFromLink, parseRecordedServerMessage, providerIcons, RotateCcw as r, resetHubMountForTests, resolveContainerPrimary, resolveControlAlign, resolveDeviceControl, resolveDisplayIcon, resolveEffectiveDefaultModel, resolveEffectiveStepModel, resolveEventKindIcon, resolvePrimaryChild, resolveSensorDisplay, resolveStepDefaultModel, resolveTableLayout, roiTooLarge, routerBasename, EyeOff as s, scrubReducer, selectedDeviceOptions, serializeRecordedCommand, shouldCommit, shouldEmit, shouldUseSingleNode, sortRows, sortRowsByColumn, statusIcons, statusLine, stepHasModelForFormat, stepModelOptions, stripParentNamePrefix, Trash2 as t, tabForSelector, tankAlert, themeToCss, toStationaryOverlayBox, trpc, 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, useCameraCredentialsGetCredentials, useCameraCredentialsGetStatus, useCameraGridLayoutApplyDeviceSettingsPatch, useCameraGridLayoutGetDeviceLiveContribution, useCameraGridLayoutGetDeviceSettingsContribution, useCameraGridLayoutGetLayout, useCameraGridLayoutSaveLayout, useCameraPipelineConfigApplyDeviceSettingsPatch, useCameraPipelineConfigGetDeviceLiveContribution, useCameraPipelineConfigGetDeviceSettingsContribution, useCameraStreamsGetBrokerStreams, useCameraStreamsGetCameraStreams, useCameraStreamsGetProfileRtspEntries, useCameraStreamsGetRtspEntries, useCameraStreamsPickStream, 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, useCoreBlocksDelete, useCoreBlocksGet, useCoreBlocksGetTypeDefs, useCoreBlocksList, useCoreBlocksRestart, useCoreBlocksSetEnabled, useCoreBlocksUpdate, useCoverClose, useCoverGetStatus, useCoverOpen, useCoverSetPosition, useCoverSetTiltPosition, useCoverStop, useCustomFieldRenderer, useDayNightGetOptions, useDayNightGetStatus, useDayNightSetSettings, useDebouncedString, useDecoderCreateSession, useDecoderDestroySession, useDecoderGetFrame, useDecoderGetInfo, useDecoderGetShmStats, useDecoderGetStats, useDecoderListActiveSessions, useDecoderOpenStream, useDecoderPullFrames, useDecoderPullHandles, useDecoderPushPacket, useDecoderReprobeHwaccel, useDecoderSupportsCodec, useDecoderUpdateConfig, useDetectionPipelineApplyDeviceSettingsPatch, useDetectionPipelineGetDeviceLiveContribution, useDetectionPipelineGetDeviceSettingsContribution, useDevShell, useDevice, useDeviceAdoptionAdopt, useDeviceAdoptionGetCandidate, useDeviceAdoptionGetStatus, useDeviceAdoptionListCandidateFilters, useDeviceAdoptionListCandidates, useDeviceAdoptionRefresh, useDeviceAdoptionRelease, useDeviceAdoptionResync, useDeviceAutotrack, useDeviceBattery, useDeviceCapSlice, useDeviceCapability, useDeviceDetections, useDeviceDiscoveryAdoptDevice, useDeviceDiscoveryGetStatus, useDeviceDiscoveryListDiscovered, useDeviceDiscoveryRefreshDiscovery, useDeviceDiscoveryReleaseDevice, useDeviceExportApplyDeviceSettingsPatch, useDeviceExportExposeDevice, useDeviceExportGetDeviceLiveContribution, useDeviceExportGetDeviceSettingsContribution, useDeviceExportGetStatus, useDeviceExportListExposedDevices, useDeviceExportListSupportedDeviceKinds, useDeviceExportUnexposeDevice, useDeviceId, useDeviceListPageSize, useDeviceManagerAddLocation, useDeviceManagerAdoptDevice, useDeviceManagerAdoptionAdopt, useDeviceManagerAdoptionCancelJob, useDeviceManagerAdoptionListCandidateFilters, useDeviceManagerAdoptionListCandidates, useDeviceManagerAdoptionListJobs, useDeviceManagerAdoptionRefresh, useDeviceManagerAdoptionRelease, useDeviceManagerAdoptionResync, useDeviceManagerAdoptionStartJob, useDeviceManagerAllocateDeviceId, useDeviceManagerApplyDeviceSettingsPatch, useDeviceManagerApplyInitialMeta, useDeviceManagerCreateDevice, useDeviceManagerDisable, useDeviceManagerDiscoverAllProviders, useDeviceManagerDiscoverDevices, useDeviceManagerDiscoverProvider, useDeviceManagerDiscoveryProviders, useDeviceManagerEnable, useDeviceManagerGetAllBindings, useDeviceManagerGetBindings, useDeviceManagerGetBindingsBatch, useDeviceManagerGetChildren, useDeviceManagerGetChildrenBatch, useDeviceManagerGetConfigSchema, useDeviceManagerGetCreationSchema, useDeviceManagerGetDevice, useDeviceManagerGetDeviceAggregate, useDeviceManagerGetDeviceLiveContribution, useDeviceManagerGetDeviceLiveInfoAggregate, useDeviceManagerGetDeviceSettingsAggregate, useDeviceManagerGetDeviceSettingsContribution, useDeviceManagerGetDeviceStatusAggregate, useDeviceManagerGetDeviceStatusAggregateBatch, useDeviceManagerGetLinkedDevices, useDeviceManagerGetLinkedDevicesBatch, useDeviceManagerGetRoleDisplayDefaults, useDeviceManagerGetSettingsSchema, useDeviceManagerGetStreamProfileMap, useDeviceManagerGetStreamSources, useDeviceManagerGetWireableFields, useDeviceManagerListAll, useDeviceManagerListBindableCapsForDeviceType, 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, useDeviceSnapshot, useDeviceSnapshotImage, useDeviceState, useDeviceStateGetAllSnapshots, useDeviceStateGetCapSlice, useDeviceStateGetSnapshot, useDeviceStateSetCapSlice, useDeviceStateSlice, useDeviceStatusGetStatus, useDeviceWebrtc, useDevices, useDoorbellApplyDeviceSettingsPatch, useDoorbellEvents, useDoorbellGetDeviceLiveContribution, useDoorbellGetDeviceSettingsContribution, useDoorbellGetStatus, useEnumSensorGetStatus, useEventEmitterGetStatus, useEventInvalidation, useEventStreamLatest, useEventStreamMap, useEventsGetEventClipUrl, useEventsGetEventThumbnail, useEventsGetEvents, useFaceGalleryAssignFace, useFaceGalleryAssignFaces, 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, useLocalNetworkDownloadCa, useLocalNetworkGetAllowedAddresses, useLocalNetworkGetConnectionEndpoints, useLocalNetworkGetNotificationEndpoint, useLocalNetworkGetPreferred, useLocalNetworkGetTlsStatus, useLocalNetworkGetViewerEndpoints, useLocalNetworkList, useLocalNetworkRegenerateCertificate, useLocalNetworkResetAllowlistToBestMatch, useLocalNetworkRevertToGeneratedCertificate, useLocalNetworkSetAllowedAddresses, useLocalNetworkSetNotificationEndpoint, useLocalNetworkSetViewerEndpoints, useLocalNetworkUploadCertificate, useLockControlGetStatus, useLockControlLock, useLockControlOpen, useLockControlUnlock, useMediaPlayerGetStatus, useMediaPlayerNext, useMediaPlayerPause, useMediaPlayerPlay, useMediaPlayerPlayMedia, useMediaPlayerPrevious, useMediaPlayerSeek, useMediaPlayerSelectSource, useMediaPlayerSetMute, useMediaPlayerSetRepeat, useMediaPlayerSetShuffle, useMediaPlayerSetVolume, useMediaPlayerStop, useMeshNetworkGetStatus, useMeshNetworkJoin, useMeshNetworkLeave, useMeshNetworkListPeers, useMeshNetworkLogout, useMeshNetworkStartLogin, useMeshNetworkTestConnection, useMetricsProviderCollectSnapshot, 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, useNodesExecuteQuery, useNodesGetCapUsageGraph, useNodesGetNodeAddons, useNodesRenameNode, useNodesRestartAddon, useNodesRestartNode, useNodesRestartProcess, useNodesSetProcessLogLevel, useNodesShutdownNode, useNodesTopology, useNodesUndeployAddon, useNotificationOutputDeleteTarget, useNotificationOutputDiscoverTargets, useNotificationOutputListTargetKinds, useNotificationOutputListTargets, useNotificationOutputSend, useNotificationOutputSetTargetEnabled, useNotificationOutputTestTarget, useNotificationOutputUpsertTarget, useNotificationRulesCancelSnooze, useNotificationRulesCreateRule, useNotificationRulesCreateSnooze, useNotificationRulesDeleteRule, useNotificationRulesGetAlarmConfig, useNotificationRulesGetClipRetentionAsks, useNotificationRulesGetConditionCatalog, useNotificationRulesGetHistory, useNotificationRulesGetRule, useNotificationRulesListDeviceMutes, useNotificationRulesListRules, useNotificationRulesListSnoozes, useNotificationRulesResolveArtifactUrl, useNotificationRulesSetAlarmConfig, useNotificationRulesSetDeviceMuted, useNotificationRulesSetRuleEnabled, useNotificationRulesTestRule, useNotificationRulesUpdateRule, useNotifierCancel, useNotifierGetStatus, useNotifierSend, useNumericSensorGetStatus, useOptimisticSlice, useOptionalSystem, useOptionalWidgetRegistry, useOsdGetStatus, useOsdManagerClearSlotBinding, useOsdManagerCopyDeviceConfiguration, useOsdManagerGetConditionSupport, useOsdManagerGetDeviceOsd, useOsdManagerGetSourceCatalog, useOsdManagerPreviewSlot, useOsdManagerRenderDevice, useOsdManagerSetSlotBinding, useOsdSetOverlay, usePTZ, usePetFeederCallPet, usePetFeederCancelFeed, usePetFeederFeed, usePetFeederGetStatus, usePetFeederMarkFoodReplenished, usePetFeederPlaySound, usePetFeederResetDesiccant, usePetFeederSetChildLock, usePetFeederSetFeedSound, usePetFeederSetIndicatorLight, usePetFeederSetVolume, usePipelineAnalyticsApplyDeviceSettingsPatch, usePipelineAnalyticsCancelRelocateMedia, usePipelineAnalyticsCancelStorageMigrationMove, 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, usePipelineAnalyticsGetSummary, usePipelineAnalyticsGetTrack, usePipelineAnalyticsGetTrackMedia, usePipelineAnalyticsGetTrainingExportSummary, usePipelineAnalyticsGetTrainingExportUrl, usePipelineAnalyticsListArchivedDebugNotes, usePipelineAnalyticsListBirthDecisions, usePipelineAnalyticsListEventKinds, usePipelineAnalyticsListEventKindsBatch, usePipelineAnalyticsListEventMedia, usePipelineAnalyticsListOpsLog, usePipelineAnalyticsListRecentSummaries, usePipelineAnalyticsListRecentTracks, usePipelineAnalyticsListRelocateMediaJobs, usePipelineAnalyticsListRetrainAnnotations, usePipelineAnalyticsListRetrainFrames, usePipelineAnalyticsListRetrainStaging, usePipelineAnalyticsListSummaries, usePipelineAnalyticsListTrackMedia, usePipelineAnalyticsListTracks, usePipelineAnalyticsPauseForStorageMigration, usePipelineAnalyticsProposeRetrainAnnotations, usePipelineAnalyticsPruneEvents, usePipelineAnalyticsPruneEventsBefore, usePipelineAnalyticsPruneTracksBefore, usePipelineAnalyticsReadLongTermSeries, usePipelineAnalyticsRebuildObjectEmbeddings, usePipelineAnalyticsReclaimDebugMedia, usePipelineAnalyticsReconcileFromDisk, usePipelineAnalyticsRefreshStorageLocationsForMigration, usePipelineAnalyticsRelocateMedia, usePipelineAnalyticsRestageRetrainTrack, usePipelineAnalyticsResumeForStorageMigration, usePipelineAnalyticsRunReplayFrameProcessor, usePipelineAnalyticsSaveRetrainAnnotations, usePipelineAnalyticsSearchObjectEvents, usePipelineAnalyticsSelectRetrainFrames, usePipelineAnalyticsSetTrackFlags, usePipelineAnalyticsStartStorageMigrationMove, usePipelineAnalyticsWipeAllAnalytics, usePipelineAnalyticsWipeObjectEmbeddings, usePipelineExecutorCacheFrameInPool, usePipelineExecutorClearDeviceOverrides, 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, usePipelineOrchestratorApplyDeviceSettingsPatch, usePipelineOrchestratorAssignAudio, usePipelineOrchestratorAssignPipeline, usePipelineOrchestratorDeleteTemplate, usePipelineOrchestratorGetAgentLoad, usePipelineOrchestratorGetAgentSettings, usePipelineOrchestratorGetAudioAssignment, usePipelineOrchestratorGetAudioAssignments, usePipelineOrchestratorGetAudioNodeLoad, usePipelineOrchestratorGetCameraMetrics, usePipelineOrchestratorGetCameraSettings, usePipelineOrchestratorGetCameraStatus, usePipelineOrchestratorGetCameraStatuses, usePipelineOrchestratorGetCameraStepOverrides, usePipelineOrchestratorGetCameraSwitches, usePipelineOrchestratorGetCapabilityBindings, usePipelineOrchestratorGetDeviceLiveContribution, usePipelineOrchestratorGetDeviceSettingsContribution, usePipelineOrchestratorGetGlobalMetrics, usePipelineOrchestratorGetIngestOwner, usePipelineOrchestratorGetNodeInferenceDevices, usePipelineOrchestratorGetPipelineAssignment, usePipelineOrchestratorGetPipelineAssignments, usePipelineOrchestratorGetPipelineDevicePin, usePipelineOrchestratorGetReconcileFromDiskStatus, usePipelineOrchestratorListAgentSettings, usePipelineOrchestratorListTemplates, usePipelineOrchestratorPauseForStorageMigration, usePipelineOrchestratorRebalance, usePipelineOrchestratorReconcileFromDisk, usePipelineOrchestratorRemoveAgentSettings, usePipelineOrchestratorResetNodePipelineDefaults, usePipelineOrchestratorResolvePipeline, usePipelineOrchestratorResumeForStorageMigration, usePipelineOrchestratorSaveTemplate, usePipelineOrchestratorSetAgentCapabilities, usePipelineOrchestratorSetAgentDecodeLimits, usePipelineOrchestratorSetAgentDetectWeight, usePipelineOrchestratorSetAgentInferenceDevices, usePipelineOrchestratorSetAgentMaxCameras, usePipelineOrchestratorSetAgentReachableHost, usePipelineOrchestratorSetCameraPipelineForAgent, usePipelineOrchestratorSetCameraStepOverride, usePipelineOrchestratorSetCameraStepToggle, usePipelineOrchestratorSetCameraSwitch, usePipelineOrchestratorSetCapabilityBinding, usePipelineOrchestratorSetPipelineDevicePin, 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, useRecordingApplyDeviceSettingsPatch, useRecordingCancelRelocateJob, useRecordingCancelStorageMigrationMove, useRecordingDeleteFootprint, useRecordingExportCancelExport, useRecordingExportCreateExport, useRecordingExportDeleteExport, useRecordingExportGetDownloadUrl, useRecordingExportGetExport, useRecordingExportListExports, useRecordingExportReadExportBytes, useRecordingGetAvailability, useRecordingGetAvailabilityBatch, useRecordingGetDaysWithRecordings, useRecordingGetDaysWithRecordingsBatch, useRecordingGetDeviceConfig, useRecordingGetDeviceLiveContribution, useRecordingGetDeviceSettingsContribution, useRecordingGetPlacement, useRecordingGetPlaybackManifest, useRecordingGetRelocateResidue, useRecordingGetStatus, useRecordingGetStorageMigrationMoveStatus, useRecordingGetStorageUsage, useRecordingListOpsLog, useRecordingListRelocateJobs, useRecordingLocateSegment, useRecordingPauseForStorageMigration, useRecordingPlanStorageRebalance, useRecordingPruneFootage, useRecordingReadGopBytes, useRecordingReadSegmentBytes, useRecordingReadWindowBytes, useRecordingReconcileLedgerAgainstDisk, useRecordingRefreshStorageLocationsForMigration, useRecordingRelocateFootage, useRecordingRenderClip, useRecordingRenderGif, useRecordingRescanStorage, useRecordingResumeForStorageMigration, useRecordingSetDeviceConfig, useRecordingSetDevicePlacement, useRecordingSignalGetStatus, useRecordingStartStorageMigrationMove, useRecordingStartStorageRebalance, useRemoteComponent, 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, 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, useUserManagementConfirmTotp, useUserManagementCreateApiKey, useUserManagementCreateScopedToken, useUserManagementCreateUser, useUserManagementDeleteUser, useUserManagementDisableTotp, useUserManagementGetTotpStatus, useUserManagementListApiKeys, useUserManagementListOauthSessions, useUserManagementListScopedTokens, useUserManagementListUsers, useUserManagementOauthExchangeCode, useUserManagementOauthIssueCode, useUserManagementOauthRefresh, useUserManagementOauthVerifyAccessToken, useUserManagementResetPassword, useUserManagementRevokeApiKey, useUserManagementRevokeOauthSession, useUserManagementRevokeScopedToken, useUserManagementSetUserScopes, useUserManagementSetupTotp, useUserManagementUpdateUser, useUserManagementValidateApiKey, useUserManagementValidateCredentials, useUserManagementValidateScopedToken, useUserManagementVerifyTotp, useVacuumControlGetStatus, useVacuumControlLocate, useVacuumControlPause, useVacuumControlReturnToBase, useVacuumControlSetFanSpeed, useVacuumControlStart, useVacuumControlStop, useValveClose, useValveGetStatus, useValveOpen, useValveSetPosition, useValveStop, useVibrationGetStatus, useVideoclipsGetClipPlayback, useVideoclipsListClips, useVodPlayback, useWaterHeaterGetStatus, useWaterHeaterSetAway, useWaterHeaterSetOperationMode, useWaterHeaterSetTargetTemp, useWeatherGetStatus, useWebrtcSessionAddIceCandidate, useWebrtcSessionCloseSession, useWebrtcSessionCreateSession, useWebrtcSessionGetIceCandidates, 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 };
|