@camstack/ui-library 1.2.99 → 1.2.101
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.
|
@@ -18,6 +18,57 @@ export declare function stripDownlinkForColdStart<T extends {
|
|
|
18
18
|
}>(hints: T): Omit<T, 'downlinkMbps'>;
|
|
19
19
|
/** After a probe, only mid/high justify a make-before-break climb. */
|
|
20
20
|
export declare function shouldUpgradeAfterProbe(mbps: number): boolean;
|
|
21
|
+
/**
|
|
22
|
+
* The origin `/adaptive-probe` must be fetched from — the HUB, not the page.
|
|
23
|
+
*
|
|
24
|
+
* The page origin was the original assumption ("same-origin as the player",
|
|
25
|
+
* `adaptive-probe.routes.ts`) and it is only true for the web viewer and the
|
|
26
|
+
* iframe embed, both served by the hub. The NATIVE viewer loads this same
|
|
27
|
+
* player from an asset bundled with the app (`useNativeEmbedSource` resolves
|
|
28
|
+
* `assets/embed/camstack-embed.html` through `Image.resolveAssetSource`), so
|
|
29
|
+
* inside the WKWebView `window.location.origin` is `file://` — and
|
|
30
|
+
* `file:///adaptive-probe` is not a request any hub can answer. The probe
|
|
31
|
+
* therefore returned null on EVERY native connect, `downlinkMbps` was never
|
|
32
|
+
* sent, `pickAdaptiveTier` scored every session `default-low`, and
|
|
33
|
+
* `shouldUpgradeAfterProbe` was never even reached — so the make-before-break
|
|
34
|
+
* climb that the cold-start default depends on could not run. That is the
|
|
35
|
+
* whole of "the automatic quality always drops to low" on the app.
|
|
36
|
+
*
|
|
37
|
+
* The hub the player is already talking to is the `serverUrl` prop, so it
|
|
38
|
+
* wins; the page origin remains as the fallback for a host that passes a
|
|
39
|
+
* relative/empty `serverUrl`. Null means no probe is possible and the caller
|
|
40
|
+
* must skip it rather than fetch a URL that cannot exist.
|
|
41
|
+
*/
|
|
42
|
+
export declare function resolveProbeOrigin(serverUrl: string | undefined, pageOrigin: string | undefined): string | null;
|
|
43
|
+
/** Which offer composed the hints. A climb and a cold start read identically
|
|
44
|
+
* in the hub's log; only the client knows which one it just sent. */
|
|
45
|
+
export type AdaptiveOfferPhase = 'cold-start' | 'probe-climb' | 'renegotiate';
|
|
46
|
+
/**
|
|
47
|
+
* What the CLIENT sent for one adaptive decision. Deliberately not the hub's
|
|
48
|
+
* verdict — the hub already logs its own pick, and a client line that repeated
|
|
49
|
+
* it would prove nothing about the client. This is the other half of that
|
|
50
|
+
* join: the inputs the hub scored, plus whether the downlink probe had an
|
|
51
|
+
* origin it could even reach.
|
|
52
|
+
*/
|
|
53
|
+
export interface AdaptiveHintsReport {
|
|
54
|
+
readonly phase: AdaptiveOfferPhase;
|
|
55
|
+
/** Null when no http(s) origin resolved — the probe did not run at all. */
|
|
56
|
+
readonly probeOrigin: string | null;
|
|
57
|
+
readonly viewportWidth?: number;
|
|
58
|
+
readonly viewportHeight?: number;
|
|
59
|
+
readonly devicePixelRatio?: number;
|
|
60
|
+
readonly downlinkMbps?: number;
|
|
61
|
+
readonly prefersTier?: string;
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Identity of a decision, for "log once per CHANGE, not per tick".
|
|
65
|
+
*
|
|
66
|
+
* `downlinkMbps` is a fresh measurement on every probe and would otherwise
|
|
67
|
+
* make every offer look like a new decision. What the ladder actually consumes
|
|
68
|
+
* is the RUNG it maps to (`suggestedAdaptiveTier`), so two measurements that
|
|
69
|
+
* pick the same rung are the same decision and must collapse to one line.
|
|
70
|
+
*/
|
|
71
|
+
export declare function adaptiveHintsKey(report: AdaptiveHintsReport): string;
|
|
21
72
|
export declare function measureDownlinkMbps(origin: string, deps: {
|
|
22
73
|
readonly fetchImpl: (url: string, init: {
|
|
23
74
|
signal: AbortSignal;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { ReactNode } from 'react';
|
|
2
2
|
import { CamProfile } from '@camstack/types';
|
|
3
3
|
import { ReconnectAction } from './reconnect-schedule';
|
|
4
|
+
import { AdaptiveHintsReport } from './adaptive-downlink';
|
|
4
5
|
type WebkitPresentationMode = 'inline' | 'picture-in-picture' | 'fullscreen';
|
|
5
6
|
declare global {
|
|
6
7
|
interface HTMLVideoElement {
|
|
@@ -227,6 +228,21 @@ export interface CameraStreamPlayerProps {
|
|
|
227
228
|
* Use for network simulation (benchmark) or manual tier forcing.
|
|
228
229
|
*/
|
|
229
230
|
hintsOverride?: Partial<ClientStreamHints>;
|
|
231
|
+
/**
|
|
232
|
+
* Observer of the ADAPTIVE decision this client just made — fired once per
|
|
233
|
+
* decision CHANGE (see `adaptiveHintsKey`), never per tick.
|
|
234
|
+
*
|
|
235
|
+
* Deliberately the client's half only: the viewport it measured, the pixel
|
|
236
|
+
* ratio, the downlink it managed to measure (and the origin it probed, null
|
|
237
|
+
* when none was reachable), and the phase of the offer that carried them.
|
|
238
|
+
* The hub logs its own pick from the same inputs; duplicating that here
|
|
239
|
+
* would be a second opinion on someone else's decision. Hosts join the two
|
|
240
|
+
* halves — the RN viewer forwards this over the embed log bridge so a
|
|
241
|
+
* "quality is stuck on low" report carries what the app actually SENT.
|
|
242
|
+
*
|
|
243
|
+
* Inert unless wired.
|
|
244
|
+
*/
|
|
245
|
+
onAdaptiveHints?: (report: AdaptiveHintsReport) => void;
|
|
230
246
|
/**
|
|
231
247
|
* Host-driven fast reconnect. Bump this number (monotonic) to force a
|
|
232
248
|
* full reconnect WITHOUT remounting the player — used by the embed when
|
|
@@ -258,5 +274,5 @@ export interface CameraStreamPlayerProps {
|
|
|
258
274
|
*/
|
|
259
275
|
onVideoElement?: (el: HTMLVideoElement | null) => void;
|
|
260
276
|
}
|
|
261
|
-
export declare function CameraStreamPlayer({ serverUrl, streamKey, label, autoPlay, muted: initialMuted, showControls, showStats, onPlaybackStats, onClientNetworkSample, onConnectTiming, className, onStateChange, onError, onReconnectAttempt, overlay, createSession, sendAnswer, handleOffer, getIceServers, addIceCandidate, getIceCandidates, closeSession, getSessionState, reoffer, posterUrl, hintsOverride, reconnectSignal, onControlChannel, onVideoElement, }: CameraStreamPlayerProps): import("react").JSX.Element;
|
|
277
|
+
export declare function CameraStreamPlayer({ serverUrl, streamKey, label, autoPlay, muted: initialMuted, showControls, showStats, onPlaybackStats, onClientNetworkSample, onConnectTiming, className, onStateChange, onError, onReconnectAttempt, overlay, createSession, sendAnswer, handleOffer, getIceServers, addIceCandidate, getIceCandidates, closeSession, getSessionState, reoffer, posterUrl, hintsOverride, onAdaptiveHints, reconnectSignal, onControlChannel, onVideoElement, }: CameraStreamPlayerProps): import("react").JSX.Element;
|
|
262
278
|
export {};
|
|
@@ -12,6 +12,7 @@ export { AudioWaveform } from './audio-waveform';
|
|
|
12
12
|
export type { BatteryBadgeProps, BatteryStatusLike } from './battery-badge';
|
|
13
13
|
export { BatteryBadge } from './battery-badge';
|
|
14
14
|
export * from './breadcrumb';
|
|
15
|
+
export type { AdaptiveHintsReport, AdaptiveOfferPhase, } from './adaptive-downlink';
|
|
15
16
|
export type { CameraStreamPlayerProps, ClientOfferResult, ClientStreamHints, PlayerConnectionState, PlayerWebrtcTarget, SessionSignalingState, SignalingResult, } from './camera-stream-player';
|
|
16
17
|
export { CameraStreamPlayer } from './camera-stream-player';
|
|
17
18
|
export { AutotrackSection } from './cap-settings/AutotrackSection';
|
|
@@ -1099,6 +1099,8 @@ export declare const usePipelineAnalyticsGetKeyEvents: typeof trpc.pipelineAnaly
|
|
|
1099
1099
|
export declare const usePipelineAnalyticsGetKeyEventsBatch: typeof trpc.pipelineAnalytics.getKeyEventsBatch.useQuery;
|
|
1100
1100
|
/** Generated alias around `trpc.pipelineAnalytics.getEventDensity.useQuery`. */
|
|
1101
1101
|
export declare const usePipelineAnalyticsGetEventDensity: typeof trpc.pipelineAnalytics.getEventDensity.useQuery;
|
|
1102
|
+
/** Generated alias around `trpc.pipelineAnalytics.getEventDensityBatch.useQuery`. */
|
|
1103
|
+
export declare const usePipelineAnalyticsGetEventDensityBatch: typeof trpc.pipelineAnalytics.getEventDensityBatch.useQuery;
|
|
1102
1104
|
/** Generated alias around `trpc.pipelineAnalytics.pruneEventsBefore.useMutation`. */
|
|
1103
1105
|
export declare const usePipelineAnalyticsPruneEventsBefore: typeof trpc.pipelineAnalytics.pruneEventsBefore.useMutation;
|
|
1104
1106
|
/** Generated alias around `trpc.pipelineAnalytics.pruneTracksBefore.useMutation`. */
|
|
@@ -1477,8 +1479,12 @@ export declare const usePtzAutotrackSetSettings: typeof trpc.ptzAutotrack.setSet
|
|
|
1477
1479
|
export declare const useRebootReboot: typeof trpc.reboot.reboot.useMutation;
|
|
1478
1480
|
/** Generated alias around `trpc.recording.getAvailability.useQuery`. */
|
|
1479
1481
|
export declare const useRecordingGetAvailability: typeof trpc.recording.getAvailability.useQuery;
|
|
1482
|
+
/** Generated alias around `trpc.recording.getAvailabilityBatch.useQuery`. */
|
|
1483
|
+
export declare const useRecordingGetAvailabilityBatch: typeof trpc.recording.getAvailabilityBatch.useQuery;
|
|
1480
1484
|
/** Generated alias around `trpc.recording.getDaysWithRecordings.useQuery`. */
|
|
1481
1485
|
export declare const useRecordingGetDaysWithRecordings: typeof trpc.recording.getDaysWithRecordings.useQuery;
|
|
1486
|
+
/** Generated alias around `trpc.recording.getDaysWithRecordingsBatch.useQuery`. */
|
|
1487
|
+
export declare const useRecordingGetDaysWithRecordingsBatch: typeof trpc.recording.getDaysWithRecordingsBatch.useQuery;
|
|
1482
1488
|
/** Generated alias around `trpc.recording.getPlaybackManifest.useQuery`. */
|
|
1483
1489
|
export declare const useRecordingGetPlaybackManifest: typeof trpc.recording.getPlaybackManifest.useQuery;
|
|
1484
1490
|
/** Generated alias around `trpc.recording.getStorageUsage.useQuery`. */
|
package/dist/index.cjs
CHANGED
|
@@ -6019,6 +6019,8 @@ var usePipelineAnalyticsGetKeyEvents = trpc.pipelineAnalytics.getKeyEvents.useQu
|
|
|
6019
6019
|
var usePipelineAnalyticsGetKeyEventsBatch = trpc.pipelineAnalytics.getKeyEventsBatch.useQuery;
|
|
6020
6020
|
/** Generated alias around `trpc.pipelineAnalytics.getEventDensity.useQuery`. */
|
|
6021
6021
|
var usePipelineAnalyticsGetEventDensity = trpc.pipelineAnalytics.getEventDensity.useQuery;
|
|
6022
|
+
/** Generated alias around `trpc.pipelineAnalytics.getEventDensityBatch.useQuery`. */
|
|
6023
|
+
var usePipelineAnalyticsGetEventDensityBatch = trpc.pipelineAnalytics.getEventDensityBatch.useQuery;
|
|
6022
6024
|
/** Generated alias around `trpc.pipelineAnalytics.pruneEventsBefore.useMutation`. */
|
|
6023
6025
|
var usePipelineAnalyticsPruneEventsBefore = trpc.pipelineAnalytics.pruneEventsBefore.useMutation;
|
|
6024
6026
|
/** Generated alias around `trpc.pipelineAnalytics.pruneTracksBefore.useMutation`. */
|
|
@@ -6397,8 +6399,12 @@ var usePtzAutotrackSetSettings = trpc.ptzAutotrack.setSettings.useMutation;
|
|
|
6397
6399
|
var useRebootReboot = trpc.reboot.reboot.useMutation;
|
|
6398
6400
|
/** Generated alias around `trpc.recording.getAvailability.useQuery`. */
|
|
6399
6401
|
var useRecordingGetAvailability = trpc.recording.getAvailability.useQuery;
|
|
6402
|
+
/** Generated alias around `trpc.recording.getAvailabilityBatch.useQuery`. */
|
|
6403
|
+
var useRecordingGetAvailabilityBatch = trpc.recording.getAvailabilityBatch.useQuery;
|
|
6400
6404
|
/** Generated alias around `trpc.recording.getDaysWithRecordings.useQuery`. */
|
|
6401
6405
|
var useRecordingGetDaysWithRecordings = trpc.recording.getDaysWithRecordings.useQuery;
|
|
6406
|
+
/** Generated alias around `trpc.recording.getDaysWithRecordingsBatch.useQuery`. */
|
|
6407
|
+
var useRecordingGetDaysWithRecordingsBatch = trpc.recording.getDaysWithRecordingsBatch.useQuery;
|
|
6402
6408
|
/** Generated alias around `trpc.recording.getPlaybackManifest.useQuery`. */
|
|
6403
6409
|
var useRecordingGetPlaybackManifest = trpc.recording.getPlaybackManifest.useQuery;
|
|
6404
6410
|
/** Generated alias around `trpc.recording.getStorageUsage.useQuery`. */
|
|
@@ -24367,6 +24373,62 @@ function stripDownlinkForColdStart(hints) {
|
|
|
24367
24373
|
function shouldUpgradeAfterProbe(mbps) {
|
|
24368
24374
|
return suggestedAdaptiveTier(mbps) !== "low";
|
|
24369
24375
|
}
|
|
24376
|
+
/** An http(s) origin, or null for anything that cannot serve the probe. */
|
|
24377
|
+
function httpOrigin(value) {
|
|
24378
|
+
if (value === void 0 || value === "") return null;
|
|
24379
|
+
let parsed;
|
|
24380
|
+
try {
|
|
24381
|
+
parsed = new URL(value);
|
|
24382
|
+
} catch {
|
|
24383
|
+
return null;
|
|
24384
|
+
}
|
|
24385
|
+
if (parsed.protocol !== "http:" && parsed.protocol !== "https:") return null;
|
|
24386
|
+
return parsed.origin;
|
|
24387
|
+
}
|
|
24388
|
+
/**
|
|
24389
|
+
* The origin `/adaptive-probe` must be fetched from — the HUB, not the page.
|
|
24390
|
+
*
|
|
24391
|
+
* The page origin was the original assumption ("same-origin as the player",
|
|
24392
|
+
* `adaptive-probe.routes.ts`) and it is only true for the web viewer and the
|
|
24393
|
+
* iframe embed, both served by the hub. The NATIVE viewer loads this same
|
|
24394
|
+
* player from an asset bundled with the app (`useNativeEmbedSource` resolves
|
|
24395
|
+
* `assets/embed/camstack-embed.html` through `Image.resolveAssetSource`), so
|
|
24396
|
+
* inside the WKWebView `window.location.origin` is `file://` — and
|
|
24397
|
+
* `file:///adaptive-probe` is not a request any hub can answer. The probe
|
|
24398
|
+
* therefore returned null on EVERY native connect, `downlinkMbps` was never
|
|
24399
|
+
* sent, `pickAdaptiveTier` scored every session `default-low`, and
|
|
24400
|
+
* `shouldUpgradeAfterProbe` was never even reached — so the make-before-break
|
|
24401
|
+
* climb that the cold-start default depends on could not run. That is the
|
|
24402
|
+
* whole of "the automatic quality always drops to low" on the app.
|
|
24403
|
+
*
|
|
24404
|
+
* The hub the player is already talking to is the `serverUrl` prop, so it
|
|
24405
|
+
* wins; the page origin remains as the fallback for a host that passes a
|
|
24406
|
+
* relative/empty `serverUrl`. Null means no probe is possible and the caller
|
|
24407
|
+
* must skip it rather than fetch a URL that cannot exist.
|
|
24408
|
+
*/
|
|
24409
|
+
function resolveProbeOrigin(serverUrl, pageOrigin) {
|
|
24410
|
+
return httpOrigin(serverUrl) ?? httpOrigin(pageOrigin);
|
|
24411
|
+
}
|
|
24412
|
+
/**
|
|
24413
|
+
* Identity of a decision, for "log once per CHANGE, not per tick".
|
|
24414
|
+
*
|
|
24415
|
+
* `downlinkMbps` is a fresh measurement on every probe and would otherwise
|
|
24416
|
+
* make every offer look like a new decision. What the ladder actually consumes
|
|
24417
|
+
* is the RUNG it maps to (`suggestedAdaptiveTier`), so two measurements that
|
|
24418
|
+
* pick the same rung are the same decision and must collapse to one line.
|
|
24419
|
+
*/
|
|
24420
|
+
function adaptiveHintsKey(report) {
|
|
24421
|
+
const rung = report.downlinkMbps === void 0 ? "none" : suggestedAdaptiveTier(report.downlinkMbps);
|
|
24422
|
+
return [
|
|
24423
|
+
report.phase,
|
|
24424
|
+
report.viewportWidth ?? "-",
|
|
24425
|
+
report.viewportHeight ?? "-",
|
|
24426
|
+
report.devicePixelRatio ?? "-",
|
|
24427
|
+
rung,
|
|
24428
|
+
report.prefersTier ?? "-",
|
|
24429
|
+
report.probeOrigin ?? "unreachable"
|
|
24430
|
+
].join("|");
|
|
24431
|
+
}
|
|
24370
24432
|
async function measureDownlinkMbps(origin, deps) {
|
|
24371
24433
|
const base = origin.replace(/\/+$/, "");
|
|
24372
24434
|
const ctrl = new AbortController();
|
|
@@ -24449,9 +24511,19 @@ function computeClientHints(container) {
|
|
|
24449
24511
|
}
|
|
24450
24512
|
var downlinkCache = null;
|
|
24451
24513
|
var DOWNLINK_TTL_MS = 3e4;
|
|
24452
|
-
|
|
24453
|
-
|
|
24454
|
-
|
|
24514
|
+
/**
|
|
24515
|
+
* Measure the downlink against the HUB, not the page. `serverUrl` is the hub
|
|
24516
|
+
* this player is already signalling to; the page origin is only a fallback,
|
|
24517
|
+
* and inside the native WKWebView it is `file://` — see `resolveProbeOrigin`
|
|
24518
|
+
* for the full account of what that cost.
|
|
24519
|
+
*/
|
|
24520
|
+
/** The origin the probe WILL use, for the client's own decision log. */
|
|
24521
|
+
function probeOriginFor(serverUrl) {
|
|
24522
|
+
return resolveProbeOrigin(serverUrl, typeof window !== "undefined" ? window.location.origin : void 0);
|
|
24523
|
+
}
|
|
24524
|
+
async function measuredDownlinkMbps(serverUrl) {
|
|
24525
|
+
const origin = probeOriginFor(serverUrl);
|
|
24526
|
+
if (origin === null) return void 0;
|
|
24455
24527
|
if (downlinkCache && downlinkCache.origin === origin && Date.now() - downlinkCache.at < DOWNLINK_TTL_MS) return downlinkCache.mbps;
|
|
24456
24528
|
const mbps = await measureDownlinkMbps(origin, {
|
|
24457
24529
|
fetchImpl: (url, init) => fetch(url, init),
|
|
@@ -24474,7 +24546,7 @@ function mergePlayerHints(autoHints, override, downlinkMbps, coldStart) {
|
|
|
24474
24546
|
return coldStart ? stripDownlinkForColdStart(merged) : merged;
|
|
24475
24547
|
}
|
|
24476
24548
|
var FIRST_FRAME_TIMEOUT_MS = 8e3;
|
|
24477
|
-
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, reconnectSignal, onControlChannel, onVideoElement }) {
|
|
24549
|
+
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 }) {
|
|
24478
24550
|
const videoRef = (0, react$1.useRef)(null);
|
|
24479
24551
|
const containerRef = (0, react$1.useRef)(null);
|
|
24480
24552
|
const pcRef = (0, react$1.useRef)(null);
|
|
@@ -24498,6 +24570,30 @@ function CameraStreamPlayer({ serverUrl, streamKey, label, autoPlay = true, mute
|
|
|
24498
24570
|
onVideoElementRef.current?.(videoRef.current);
|
|
24499
24571
|
return () => onVideoElementRef.current?.(null);
|
|
24500
24572
|
}, []);
|
|
24573
|
+
/** Same pattern for the adaptive-decision observer — a ref so wiring it does
|
|
24574
|
+
* not re-create the mount-stable connect callbacks. */
|
|
24575
|
+
const onAdaptiveHintsRef = (0, react$1.useRef)(onAdaptiveHints);
|
|
24576
|
+
onAdaptiveHintsRef.current = onAdaptiveHints;
|
|
24577
|
+
/** Last reported decision key — the "once per CHANGE, not per tick" latch. */
|
|
24578
|
+
const lastAdaptiveKeyRef = (0, react$1.useRef)(null);
|
|
24579
|
+
/**
|
|
24580
|
+
* Report the hints THIS offer carried, when they differ from the last
|
|
24581
|
+
* reported decision. Mount-stable (`[]` deps by contract) so the connect
|
|
24582
|
+
* callbacks can call it without gaining a dependency.
|
|
24583
|
+
*/
|
|
24584
|
+
const reportAdaptiveHints = (0, react$1.useCallback)((phase, hints, probeOrigin) => {
|
|
24585
|
+
const cb = onAdaptiveHintsRef.current;
|
|
24586
|
+
if (!cb) return;
|
|
24587
|
+
const report = {
|
|
24588
|
+
phase,
|
|
24589
|
+
probeOrigin,
|
|
24590
|
+
...hints
|
|
24591
|
+
};
|
|
24592
|
+
const key = adaptiveHintsKey(report);
|
|
24593
|
+
if (key === lastAdaptiveKeyRef.current) return;
|
|
24594
|
+
lastAdaptiveKeyRef.current = key;
|
|
24595
|
+
cb(report);
|
|
24596
|
+
}, []);
|
|
24501
24597
|
/** The live session being polled for `pendingRenegotiation` (client-offer). */
|
|
24502
24598
|
const activeSessionIdRef = (0, react$1.useRef)(null);
|
|
24503
24599
|
/** Timer for the session-state (renegotiation) poll loop. */
|
|
@@ -24630,8 +24726,10 @@ function CameraStreamPlayer({ serverUrl, streamKey, label, autoPlay = true, mute
|
|
|
24630
24726
|
const abort = new AbortController();
|
|
24631
24727
|
connectAbortRef.current = abort;
|
|
24632
24728
|
try {
|
|
24633
|
-
const probePromise = !withDownlink ? measuredDownlinkMbps() : void 0;
|
|
24634
|
-
const
|
|
24729
|
+
const probePromise = !withDownlink ? measuredDownlinkMbps(serverUrl) : void 0;
|
|
24730
|
+
const mergedHints = mergePlayerHints(computeClientHints(containerRef.current), hintsOverride, withDownlink ? await measuredDownlinkMbps(serverUrl) : void 0, !withDownlink);
|
|
24731
|
+
reportAdaptiveHints(withDownlink ? "probe-climb" : "cold-start", mergedHints, probeOriginFor(serverUrl));
|
|
24732
|
+
const { sessionId, sdpOffer, iceServers } = await createSession(mergedHints);
|
|
24635
24733
|
sessionIdsRef.current.add(sessionId);
|
|
24636
24734
|
if (probePromise !== void 0) probePromise.then((mbps) => {
|
|
24637
24735
|
if (mbps === void 0 || !shouldUpgradeAfterProbe(mbps)) return;
|
|
@@ -24746,7 +24844,8 @@ function CameraStreamPlayer({ serverUrl, streamKey, label, autoPlay = true, mute
|
|
|
24746
24844
|
closeSession,
|
|
24747
24845
|
updateState,
|
|
24748
24846
|
onError,
|
|
24749
|
-
hintsOverride
|
|
24847
|
+
hintsOverride,
|
|
24848
|
+
reportAdaptiveHints
|
|
24750
24849
|
]);
|
|
24751
24850
|
const connectWhep = (0, react$1.useCallback)(async () => {
|
|
24752
24851
|
if (!mountedRef.current) return;
|
|
@@ -24822,7 +24921,7 @@ function CameraStreamPlayer({ serverUrl, streamKey, label, autoPlay = true, mute
|
|
|
24822
24921
|
const ms = () => Math.round(performance.now() - t0);
|
|
24823
24922
|
const timing = {};
|
|
24824
24923
|
try {
|
|
24825
|
-
const probePromise = !withDownlink ? measuredDownlinkMbps() : void 0;
|
|
24924
|
+
const probePromise = !withDownlink ? measuredDownlinkMbps(serverUrl) : void 0;
|
|
24826
24925
|
const iceServers = await getIceServers?.();
|
|
24827
24926
|
timing.iceServersMs = ms();
|
|
24828
24927
|
if (!mountedRef.current || abort.signal.aborted) return;
|
|
@@ -24930,8 +25029,9 @@ function CameraStreamPlayer({ serverUrl, streamKey, label, autoPlay = true, mute
|
|
|
24930
25029
|
await pc.setLocalDescription(offer);
|
|
24931
25030
|
timing.localSetMs = ms();
|
|
24932
25031
|
if (!mountedRef.current || abort.signal.aborted) return;
|
|
24933
|
-
const downlinkMbps = withDownlink ? await measuredDownlinkMbps() : void 0;
|
|
25032
|
+
const downlinkMbps = withDownlink ? await measuredDownlinkMbps(serverUrl) : void 0;
|
|
24934
25033
|
const clientOfferHints = mergePlayerHints(computeClientHints(containerRef.current), hintsOverride, downlinkMbps, !withDownlink);
|
|
25034
|
+
reportAdaptiveHints(withDownlink ? "probe-climb" : "cold-start", clientOfferHints, probeOriginFor(serverUrl));
|
|
24935
25035
|
const signalingStart = ms();
|
|
24936
25036
|
const { sessionId: sid, sdpAnswer } = await handleOffer(pc.localDescription?.sdp ?? offer.sdp ?? "", void 0, clientOfferHints);
|
|
24937
25037
|
timing.signalingRttMs = ms() - signalingStart;
|
|
@@ -24992,6 +25092,7 @@ function CameraStreamPlayer({ serverUrl, streamKey, label, autoPlay = true, mute
|
|
|
24992
25092
|
scheduleReconnect();
|
|
24993
25093
|
}
|
|
24994
25094
|
}, [
|
|
25095
|
+
serverUrl,
|
|
24995
25096
|
handleOffer,
|
|
24996
25097
|
getIceServers,
|
|
24997
25098
|
addIceCandidate,
|
|
@@ -25002,7 +25103,8 @@ function CameraStreamPlayer({ serverUrl, streamKey, label, autoPlay = true, mute
|
|
|
25002
25103
|
updateState,
|
|
25003
25104
|
onError,
|
|
25004
25105
|
startSessionStatePoll,
|
|
25005
|
-
hintsOverride
|
|
25106
|
+
hintsOverride,
|
|
25107
|
+
reportAdaptiveHints
|
|
25006
25108
|
]);
|
|
25007
25109
|
renegotiateRef.current = (0, react$1.useCallback)(async (sessionId, target) => {
|
|
25008
25110
|
const reofferFn = reoffer;
|
|
@@ -25109,12 +25211,13 @@ function CameraStreamPlayer({ serverUrl, streamKey, label, autoPlay = true, mute
|
|
|
25109
25211
|
pc.close();
|
|
25110
25212
|
return;
|
|
25111
25213
|
}
|
|
25112
|
-
const downlinkMbps = await measuredDownlinkMbps();
|
|
25214
|
+
const downlinkMbps = await measuredDownlinkMbps(serverUrl);
|
|
25113
25215
|
const reofferHints = {
|
|
25114
25216
|
...computeClientHints(containerRef.current),
|
|
25115
25217
|
...downlinkMbps !== void 0 ? { downlinkMbps } : {},
|
|
25116
25218
|
...hintsOverride
|
|
25117
25219
|
};
|
|
25220
|
+
reportAdaptiveHints("renegotiate", reofferHints, probeOriginFor(serverUrl));
|
|
25118
25221
|
const { sessionId: sid, sdpAnswer } = await reofferFn(sessionId, pc.localDescription?.sdp ?? offer.sdp ?? "", target, reofferHints);
|
|
25119
25222
|
if (!mountedRef.current) {
|
|
25120
25223
|
pc.close();
|
|
@@ -25161,13 +25264,15 @@ function CameraStreamPlayer({ serverUrl, streamKey, label, autoPlay = true, mute
|
|
|
25161
25264
|
renegotiatingRef.current = false;
|
|
25162
25265
|
}
|
|
25163
25266
|
}, [
|
|
25267
|
+
serverUrl,
|
|
25164
25268
|
reoffer,
|
|
25165
25269
|
getIceServers,
|
|
25166
25270
|
addIceCandidate,
|
|
25167
25271
|
getIceCandidates,
|
|
25168
25272
|
updateState,
|
|
25169
25273
|
startSessionStatePoll,
|
|
25170
|
-
hintsOverride
|
|
25274
|
+
hintsOverride,
|
|
25275
|
+
reportAdaptiveHints
|
|
25171
25276
|
]);
|
|
25172
25277
|
const connect = useClientOffer ? connectClientOffer : useServerOffer ? connectServerOffer : connectWhep;
|
|
25173
25278
|
const connectRef = (0, react$1.useRef)(() => {});
|
|
@@ -50038,6 +50143,7 @@ exports.usePipelineAnalyticsGetAudioEvents = usePipelineAnalyticsGetAudioEvents;
|
|
|
50038
50143
|
exports.usePipelineAnalyticsGetDeviceLiveContribution = usePipelineAnalyticsGetDeviceLiveContribution;
|
|
50039
50144
|
exports.usePipelineAnalyticsGetDeviceSettingsContribution = usePipelineAnalyticsGetDeviceSettingsContribution;
|
|
50040
50145
|
exports.usePipelineAnalyticsGetEventDensity = usePipelineAnalyticsGetEventDensity;
|
|
50146
|
+
exports.usePipelineAnalyticsGetEventDensityBatch = usePipelineAnalyticsGetEventDensityBatch;
|
|
50041
50147
|
exports.usePipelineAnalyticsGetEventMedia = usePipelineAnalyticsGetEventMedia;
|
|
50042
50148
|
exports.usePipelineAnalyticsGetEventMediaFootprintByKind = usePipelineAnalyticsGetEventMediaFootprintByKind;
|
|
50043
50149
|
exports.usePipelineAnalyticsGetEventStoreFootprint = usePipelineAnalyticsGetEventStoreFootprint;
|
|
@@ -50242,7 +50348,9 @@ exports.useRecordingExportGetExport = useRecordingExportGetExport;
|
|
|
50242
50348
|
exports.useRecordingExportListExports = useRecordingExportListExports;
|
|
50243
50349
|
exports.useRecordingExportReadExportBytes = useRecordingExportReadExportBytes;
|
|
50244
50350
|
exports.useRecordingGetAvailability = useRecordingGetAvailability;
|
|
50351
|
+
exports.useRecordingGetAvailabilityBatch = useRecordingGetAvailabilityBatch;
|
|
50245
50352
|
exports.useRecordingGetDaysWithRecordings = useRecordingGetDaysWithRecordings;
|
|
50353
|
+
exports.useRecordingGetDaysWithRecordingsBatch = useRecordingGetDaysWithRecordingsBatch;
|
|
50246
50354
|
exports.useRecordingGetDeviceConfig = useRecordingGetDeviceConfig;
|
|
50247
50355
|
exports.useRecordingGetDeviceLiveContribution = useRecordingGetDeviceLiveContribution;
|
|
50248
50356
|
exports.useRecordingGetDeviceSettingsContribution = useRecordingGetDeviceSettingsContribution;
|
package/dist/index.js
CHANGED
|
@@ -5995,6 +5995,8 @@ var usePipelineAnalyticsGetKeyEvents = trpc.pipelineAnalytics.getKeyEvents.useQu
|
|
|
5995
5995
|
var usePipelineAnalyticsGetKeyEventsBatch = trpc.pipelineAnalytics.getKeyEventsBatch.useQuery;
|
|
5996
5996
|
/** Generated alias around `trpc.pipelineAnalytics.getEventDensity.useQuery`. */
|
|
5997
5997
|
var usePipelineAnalyticsGetEventDensity = trpc.pipelineAnalytics.getEventDensity.useQuery;
|
|
5998
|
+
/** Generated alias around `trpc.pipelineAnalytics.getEventDensityBatch.useQuery`. */
|
|
5999
|
+
var usePipelineAnalyticsGetEventDensityBatch = trpc.pipelineAnalytics.getEventDensityBatch.useQuery;
|
|
5998
6000
|
/** Generated alias around `trpc.pipelineAnalytics.pruneEventsBefore.useMutation`. */
|
|
5999
6001
|
var usePipelineAnalyticsPruneEventsBefore = trpc.pipelineAnalytics.pruneEventsBefore.useMutation;
|
|
6000
6002
|
/** Generated alias around `trpc.pipelineAnalytics.pruneTracksBefore.useMutation`. */
|
|
@@ -6373,8 +6375,12 @@ var usePtzAutotrackSetSettings = trpc.ptzAutotrack.setSettings.useMutation;
|
|
|
6373
6375
|
var useRebootReboot = trpc.reboot.reboot.useMutation;
|
|
6374
6376
|
/** Generated alias around `trpc.recording.getAvailability.useQuery`. */
|
|
6375
6377
|
var useRecordingGetAvailability = trpc.recording.getAvailability.useQuery;
|
|
6378
|
+
/** Generated alias around `trpc.recording.getAvailabilityBatch.useQuery`. */
|
|
6379
|
+
var useRecordingGetAvailabilityBatch = trpc.recording.getAvailabilityBatch.useQuery;
|
|
6376
6380
|
/** Generated alias around `trpc.recording.getDaysWithRecordings.useQuery`. */
|
|
6377
6381
|
var useRecordingGetDaysWithRecordings = trpc.recording.getDaysWithRecordings.useQuery;
|
|
6382
|
+
/** Generated alias around `trpc.recording.getDaysWithRecordingsBatch.useQuery`. */
|
|
6383
|
+
var useRecordingGetDaysWithRecordingsBatch = trpc.recording.getDaysWithRecordingsBatch.useQuery;
|
|
6378
6384
|
/** Generated alias around `trpc.recording.getPlaybackManifest.useQuery`. */
|
|
6379
6385
|
var useRecordingGetPlaybackManifest = trpc.recording.getPlaybackManifest.useQuery;
|
|
6380
6386
|
/** Generated alias around `trpc.recording.getStorageUsage.useQuery`. */
|
|
@@ -24343,6 +24349,62 @@ function stripDownlinkForColdStart(hints) {
|
|
|
24343
24349
|
function shouldUpgradeAfterProbe(mbps) {
|
|
24344
24350
|
return suggestedAdaptiveTier(mbps) !== "low";
|
|
24345
24351
|
}
|
|
24352
|
+
/** An http(s) origin, or null for anything that cannot serve the probe. */
|
|
24353
|
+
function httpOrigin(value) {
|
|
24354
|
+
if (value === void 0 || value === "") return null;
|
|
24355
|
+
let parsed;
|
|
24356
|
+
try {
|
|
24357
|
+
parsed = new URL(value);
|
|
24358
|
+
} catch {
|
|
24359
|
+
return null;
|
|
24360
|
+
}
|
|
24361
|
+
if (parsed.protocol !== "http:" && parsed.protocol !== "https:") return null;
|
|
24362
|
+
return parsed.origin;
|
|
24363
|
+
}
|
|
24364
|
+
/**
|
|
24365
|
+
* The origin `/adaptive-probe` must be fetched from — the HUB, not the page.
|
|
24366
|
+
*
|
|
24367
|
+
* The page origin was the original assumption ("same-origin as the player",
|
|
24368
|
+
* `adaptive-probe.routes.ts`) and it is only true for the web viewer and the
|
|
24369
|
+
* iframe embed, both served by the hub. The NATIVE viewer loads this same
|
|
24370
|
+
* player from an asset bundled with the app (`useNativeEmbedSource` resolves
|
|
24371
|
+
* `assets/embed/camstack-embed.html` through `Image.resolveAssetSource`), so
|
|
24372
|
+
* inside the WKWebView `window.location.origin` is `file://` — and
|
|
24373
|
+
* `file:///adaptive-probe` is not a request any hub can answer. The probe
|
|
24374
|
+
* therefore returned null on EVERY native connect, `downlinkMbps` was never
|
|
24375
|
+
* sent, `pickAdaptiveTier` scored every session `default-low`, and
|
|
24376
|
+
* `shouldUpgradeAfterProbe` was never even reached — so the make-before-break
|
|
24377
|
+
* climb that the cold-start default depends on could not run. That is the
|
|
24378
|
+
* whole of "the automatic quality always drops to low" on the app.
|
|
24379
|
+
*
|
|
24380
|
+
* The hub the player is already talking to is the `serverUrl` prop, so it
|
|
24381
|
+
* wins; the page origin remains as the fallback for a host that passes a
|
|
24382
|
+
* relative/empty `serverUrl`. Null means no probe is possible and the caller
|
|
24383
|
+
* must skip it rather than fetch a URL that cannot exist.
|
|
24384
|
+
*/
|
|
24385
|
+
function resolveProbeOrigin(serverUrl, pageOrigin) {
|
|
24386
|
+
return httpOrigin(serverUrl) ?? httpOrigin(pageOrigin);
|
|
24387
|
+
}
|
|
24388
|
+
/**
|
|
24389
|
+
* Identity of a decision, for "log once per CHANGE, not per tick".
|
|
24390
|
+
*
|
|
24391
|
+
* `downlinkMbps` is a fresh measurement on every probe and would otherwise
|
|
24392
|
+
* make every offer look like a new decision. What the ladder actually consumes
|
|
24393
|
+
* is the RUNG it maps to (`suggestedAdaptiveTier`), so two measurements that
|
|
24394
|
+
* pick the same rung are the same decision and must collapse to one line.
|
|
24395
|
+
*/
|
|
24396
|
+
function adaptiveHintsKey(report) {
|
|
24397
|
+
const rung = report.downlinkMbps === void 0 ? "none" : suggestedAdaptiveTier(report.downlinkMbps);
|
|
24398
|
+
return [
|
|
24399
|
+
report.phase,
|
|
24400
|
+
report.viewportWidth ?? "-",
|
|
24401
|
+
report.viewportHeight ?? "-",
|
|
24402
|
+
report.devicePixelRatio ?? "-",
|
|
24403
|
+
rung,
|
|
24404
|
+
report.prefersTier ?? "-",
|
|
24405
|
+
report.probeOrigin ?? "unreachable"
|
|
24406
|
+
].join("|");
|
|
24407
|
+
}
|
|
24346
24408
|
async function measureDownlinkMbps(origin, deps) {
|
|
24347
24409
|
const base = origin.replace(/\/+$/, "");
|
|
24348
24410
|
const ctrl = new AbortController();
|
|
@@ -24425,9 +24487,19 @@ function computeClientHints(container) {
|
|
|
24425
24487
|
}
|
|
24426
24488
|
var downlinkCache = null;
|
|
24427
24489
|
var DOWNLINK_TTL_MS = 3e4;
|
|
24428
|
-
|
|
24429
|
-
|
|
24430
|
-
|
|
24490
|
+
/**
|
|
24491
|
+
* Measure the downlink against the HUB, not the page. `serverUrl` is the hub
|
|
24492
|
+
* this player is already signalling to; the page origin is only a fallback,
|
|
24493
|
+
* and inside the native WKWebView it is `file://` — see `resolveProbeOrigin`
|
|
24494
|
+
* for the full account of what that cost.
|
|
24495
|
+
*/
|
|
24496
|
+
/** The origin the probe WILL use, for the client's own decision log. */
|
|
24497
|
+
function probeOriginFor(serverUrl) {
|
|
24498
|
+
return resolveProbeOrigin(serverUrl, typeof window !== "undefined" ? window.location.origin : void 0);
|
|
24499
|
+
}
|
|
24500
|
+
async function measuredDownlinkMbps(serverUrl) {
|
|
24501
|
+
const origin = probeOriginFor(serverUrl);
|
|
24502
|
+
if (origin === null) return void 0;
|
|
24431
24503
|
if (downlinkCache && downlinkCache.origin === origin && Date.now() - downlinkCache.at < DOWNLINK_TTL_MS) return downlinkCache.mbps;
|
|
24432
24504
|
const mbps = await measureDownlinkMbps(origin, {
|
|
24433
24505
|
fetchImpl: (url, init) => fetch(url, init),
|
|
@@ -24450,7 +24522,7 @@ function mergePlayerHints(autoHints, override, downlinkMbps, coldStart) {
|
|
|
24450
24522
|
return coldStart ? stripDownlinkForColdStart(merged) : merged;
|
|
24451
24523
|
}
|
|
24452
24524
|
var FIRST_FRAME_TIMEOUT_MS = 8e3;
|
|
24453
|
-
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, reconnectSignal, onControlChannel, onVideoElement }) {
|
|
24525
|
+
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 }) {
|
|
24454
24526
|
const videoRef = useRef(null);
|
|
24455
24527
|
const containerRef = useRef(null);
|
|
24456
24528
|
const pcRef = useRef(null);
|
|
@@ -24474,6 +24546,30 @@ function CameraStreamPlayer({ serverUrl, streamKey, label, autoPlay = true, mute
|
|
|
24474
24546
|
onVideoElementRef.current?.(videoRef.current);
|
|
24475
24547
|
return () => onVideoElementRef.current?.(null);
|
|
24476
24548
|
}, []);
|
|
24549
|
+
/** Same pattern for the adaptive-decision observer — a ref so wiring it does
|
|
24550
|
+
* not re-create the mount-stable connect callbacks. */
|
|
24551
|
+
const onAdaptiveHintsRef = useRef(onAdaptiveHints);
|
|
24552
|
+
onAdaptiveHintsRef.current = onAdaptiveHints;
|
|
24553
|
+
/** Last reported decision key — the "once per CHANGE, not per tick" latch. */
|
|
24554
|
+
const lastAdaptiveKeyRef = useRef(null);
|
|
24555
|
+
/**
|
|
24556
|
+
* Report the hints THIS offer carried, when they differ from the last
|
|
24557
|
+
* reported decision. Mount-stable (`[]` deps by contract) so the connect
|
|
24558
|
+
* callbacks can call it without gaining a dependency.
|
|
24559
|
+
*/
|
|
24560
|
+
const reportAdaptiveHints = useCallback((phase, hints, probeOrigin) => {
|
|
24561
|
+
const cb = onAdaptiveHintsRef.current;
|
|
24562
|
+
if (!cb) return;
|
|
24563
|
+
const report = {
|
|
24564
|
+
phase,
|
|
24565
|
+
probeOrigin,
|
|
24566
|
+
...hints
|
|
24567
|
+
};
|
|
24568
|
+
const key = adaptiveHintsKey(report);
|
|
24569
|
+
if (key === lastAdaptiveKeyRef.current) return;
|
|
24570
|
+
lastAdaptiveKeyRef.current = key;
|
|
24571
|
+
cb(report);
|
|
24572
|
+
}, []);
|
|
24477
24573
|
/** The live session being polled for `pendingRenegotiation` (client-offer). */
|
|
24478
24574
|
const activeSessionIdRef = useRef(null);
|
|
24479
24575
|
/** Timer for the session-state (renegotiation) poll loop. */
|
|
@@ -24606,8 +24702,10 @@ function CameraStreamPlayer({ serverUrl, streamKey, label, autoPlay = true, mute
|
|
|
24606
24702
|
const abort = new AbortController();
|
|
24607
24703
|
connectAbortRef.current = abort;
|
|
24608
24704
|
try {
|
|
24609
|
-
const probePromise = !withDownlink ? measuredDownlinkMbps() : void 0;
|
|
24610
|
-
const
|
|
24705
|
+
const probePromise = !withDownlink ? measuredDownlinkMbps(serverUrl) : void 0;
|
|
24706
|
+
const mergedHints = mergePlayerHints(computeClientHints(containerRef.current), hintsOverride, withDownlink ? await measuredDownlinkMbps(serverUrl) : void 0, !withDownlink);
|
|
24707
|
+
reportAdaptiveHints(withDownlink ? "probe-climb" : "cold-start", mergedHints, probeOriginFor(serverUrl));
|
|
24708
|
+
const { sessionId, sdpOffer, iceServers } = await createSession(mergedHints);
|
|
24611
24709
|
sessionIdsRef.current.add(sessionId);
|
|
24612
24710
|
if (probePromise !== void 0) probePromise.then((mbps) => {
|
|
24613
24711
|
if (mbps === void 0 || !shouldUpgradeAfterProbe(mbps)) return;
|
|
@@ -24722,7 +24820,8 @@ function CameraStreamPlayer({ serverUrl, streamKey, label, autoPlay = true, mute
|
|
|
24722
24820
|
closeSession,
|
|
24723
24821
|
updateState,
|
|
24724
24822
|
onError,
|
|
24725
|
-
hintsOverride
|
|
24823
|
+
hintsOverride,
|
|
24824
|
+
reportAdaptiveHints
|
|
24726
24825
|
]);
|
|
24727
24826
|
const connectWhep = useCallback(async () => {
|
|
24728
24827
|
if (!mountedRef.current) return;
|
|
@@ -24798,7 +24897,7 @@ function CameraStreamPlayer({ serverUrl, streamKey, label, autoPlay = true, mute
|
|
|
24798
24897
|
const ms = () => Math.round(performance.now() - t0);
|
|
24799
24898
|
const timing = {};
|
|
24800
24899
|
try {
|
|
24801
|
-
const probePromise = !withDownlink ? measuredDownlinkMbps() : void 0;
|
|
24900
|
+
const probePromise = !withDownlink ? measuredDownlinkMbps(serverUrl) : void 0;
|
|
24802
24901
|
const iceServers = await getIceServers?.();
|
|
24803
24902
|
timing.iceServersMs = ms();
|
|
24804
24903
|
if (!mountedRef.current || abort.signal.aborted) return;
|
|
@@ -24906,8 +25005,9 @@ function CameraStreamPlayer({ serverUrl, streamKey, label, autoPlay = true, mute
|
|
|
24906
25005
|
await pc.setLocalDescription(offer);
|
|
24907
25006
|
timing.localSetMs = ms();
|
|
24908
25007
|
if (!mountedRef.current || abort.signal.aborted) return;
|
|
24909
|
-
const downlinkMbps = withDownlink ? await measuredDownlinkMbps() : void 0;
|
|
25008
|
+
const downlinkMbps = withDownlink ? await measuredDownlinkMbps(serverUrl) : void 0;
|
|
24910
25009
|
const clientOfferHints = mergePlayerHints(computeClientHints(containerRef.current), hintsOverride, downlinkMbps, !withDownlink);
|
|
25010
|
+
reportAdaptiveHints(withDownlink ? "probe-climb" : "cold-start", clientOfferHints, probeOriginFor(serverUrl));
|
|
24911
25011
|
const signalingStart = ms();
|
|
24912
25012
|
const { sessionId: sid, sdpAnswer } = await handleOffer(pc.localDescription?.sdp ?? offer.sdp ?? "", void 0, clientOfferHints);
|
|
24913
25013
|
timing.signalingRttMs = ms() - signalingStart;
|
|
@@ -24968,6 +25068,7 @@ function CameraStreamPlayer({ serverUrl, streamKey, label, autoPlay = true, mute
|
|
|
24968
25068
|
scheduleReconnect();
|
|
24969
25069
|
}
|
|
24970
25070
|
}, [
|
|
25071
|
+
serverUrl,
|
|
24971
25072
|
handleOffer,
|
|
24972
25073
|
getIceServers,
|
|
24973
25074
|
addIceCandidate,
|
|
@@ -24978,7 +25079,8 @@ function CameraStreamPlayer({ serverUrl, streamKey, label, autoPlay = true, mute
|
|
|
24978
25079
|
updateState,
|
|
24979
25080
|
onError,
|
|
24980
25081
|
startSessionStatePoll,
|
|
24981
|
-
hintsOverride
|
|
25082
|
+
hintsOverride,
|
|
25083
|
+
reportAdaptiveHints
|
|
24982
25084
|
]);
|
|
24983
25085
|
renegotiateRef.current = useCallback(async (sessionId, target) => {
|
|
24984
25086
|
const reofferFn = reoffer;
|
|
@@ -25085,12 +25187,13 @@ function CameraStreamPlayer({ serverUrl, streamKey, label, autoPlay = true, mute
|
|
|
25085
25187
|
pc.close();
|
|
25086
25188
|
return;
|
|
25087
25189
|
}
|
|
25088
|
-
const downlinkMbps = await measuredDownlinkMbps();
|
|
25190
|
+
const downlinkMbps = await measuredDownlinkMbps(serverUrl);
|
|
25089
25191
|
const reofferHints = {
|
|
25090
25192
|
...computeClientHints(containerRef.current),
|
|
25091
25193
|
...downlinkMbps !== void 0 ? { downlinkMbps } : {},
|
|
25092
25194
|
...hintsOverride
|
|
25093
25195
|
};
|
|
25196
|
+
reportAdaptiveHints("renegotiate", reofferHints, probeOriginFor(serverUrl));
|
|
25094
25197
|
const { sessionId: sid, sdpAnswer } = await reofferFn(sessionId, pc.localDescription?.sdp ?? offer.sdp ?? "", target, reofferHints);
|
|
25095
25198
|
if (!mountedRef.current) {
|
|
25096
25199
|
pc.close();
|
|
@@ -25137,13 +25240,15 @@ function CameraStreamPlayer({ serverUrl, streamKey, label, autoPlay = true, mute
|
|
|
25137
25240
|
renegotiatingRef.current = false;
|
|
25138
25241
|
}
|
|
25139
25242
|
}, [
|
|
25243
|
+
serverUrl,
|
|
25140
25244
|
reoffer,
|
|
25141
25245
|
getIceServers,
|
|
25142
25246
|
addIceCandidate,
|
|
25143
25247
|
getIceCandidates,
|
|
25144
25248
|
updateState,
|
|
25145
25249
|
startSessionStatePoll,
|
|
25146
|
-
hintsOverride
|
|
25250
|
+
hintsOverride,
|
|
25251
|
+
reportAdaptiveHints
|
|
25147
25252
|
]);
|
|
25148
25253
|
const connect = useClientOffer ? connectClientOffer : useServerOffer ? connectServerOffer : connectWhep;
|
|
25149
25254
|
const connectRef = useRef(() => {});
|
|
@@ -49049,4 +49154,4 @@ var SceneMonitorEditor = lazy(() => import("./SceneMonitorEditor-d_A4kO-M.js").t
|
|
|
49049
49154
|
/** Lazy-wrapped `PrivacyMaskSettings` — code-split off the main bundle. */
|
|
49050
49155
|
var PrivacyMaskSettings = lazy(() => import("./PrivacyMaskSettings-DNSLc6ww.js").then((m) => ({ default: m.PrivacyMaskSettings })));
|
|
49051
49156
|
//#endregion
|
|
49052
|
-
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, 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, createLucideIcon 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, humanDuration, humidifierTint, Mic as i, initialScrubState, isAbsentProvider, isFieldVisible, lawnMowerActivityMeta, lightColors, loadRemoteBundle, makeScrubBridge, metadataEntries, metadataString, mirror, mountAddonPage, Square as n, nextReconnectAction, nextSort, nextSortDirection, nextTableSort, normalizeForSearch, EyeOff as o, overrideEntityIdFromLink, parseRecordedServerMessage, providerIcons, RotateCcw as r, resolveContainerPrimary, resolveControlAlign, resolveDeviceControl, resolveDisplayIcon, resolveEffectiveDefaultModel, resolveEffectiveStepModel, resolveEventKindIcon, resolvePrimaryChild, resolveSensorDisplay, resolveStepDefaultModel, resolveTableLayout, roiTooLarge, Camera as s, scrubReducer, selectedDeviceOptions, serializeRecordedCommand, shouldCommit, shouldEmit, shouldUseSingleNode, sortRows, sortRowsByColumn, statusIcons, statusLine, stepHasModelForFormat, stepModelOptions, stripParentNamePrefix, Trash2 as t, tabForSelector, tankAlert, themeToCss, 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, useAlertsDismiss, useAlertsEmit, useAlertsGetUnreadCount, useAlertsList, useAlertsMarkAllRead, useAlertsMarkRead, useAlertsUpdate, useAllWidgets, useAmbientLightSensorGetStatus, useAudioAnalysisApplyDeviceSettingsPatch, useAudioAnalysisGetDeviceLiveContribution, useAudioAnalysisGetDeviceSettingsContribution, useAudioAnalysisResolveDeviceSettings, useAudioAnalyzerAnalyseChunk, useAudioAnalyzerClassify, useAudioAnalyzerDispose, useAudioAnalyzerIsReady, useAudioAnalyzerReprobeAudioEngine, useAudioCodecCanHandle, useAudioCodecCloseSession, useAudioCodecCreateDecodeSession, useAudioCodecCreateEncodeSession, useAudioCodecFlushEncode, useAudioCodecListActiveSessions, useAudioCodecListSupportedCodecs, useAudioCodecPullEncoded, useAudioCodecPullPcm, useAudioCodecPushEncodedFrame, useAudioCodecPushPcm, useAudioMetricsGetCurrentSnapshot, useAudioMetricsGetHistory, useAutomationControlDisable, useAutomationControlEnable, useAutomationControlGetStatus, useAutomationControlTrigger, useBackupDelete, useBackupDeleteSchedule, useBackupGetEntries, useBackupList, useBackupListArchives, useBackupListDestinations, useBackupListLocations, useBackupListSchedules, useBackupPreviewSchedule, useBackupRestore, useBackupTrigger, useBackupUpsertDestinationPolicy, useBackupUpsertSchedule, useBatteryGetStatus, useBatteryWakeForStream, useBinaryGetStatus, useBrightnessGetStatus, useBrightnessSetBrightness, useBrokerAdd, useBrokerGet, useBrokerGetBrokerConfig, useBrokerGetSettings, useBrokerGetSettingsSchema, useBrokerGetState, useBrokerGetStatus, useBrokerList, useBrokerListProviders, useBrokerPublish, useBrokerRemove, useBrokerSetSettings, useBrokerSubscribe, useBrokerTestConnection, useBrokerTestSettings, useBrokerUnsubscribe, useButtonPress, useCameraCredentialsGetCredentials, useCameraCredentialsGetStatus, useCameraPipelineConfigApplyDeviceSettingsPatch, useCameraPipelineConfigGetDeviceLiveContribution, useCameraPipelineConfigGetDeviceSettingsContribution, useCameraStreamsGetBrokerStreams, useCameraStreamsGetCameraStreams, useCameraStreamsGetProfileRtspEntries, useCameraStreamsGetRtspEntries, useCameraStreamsPickStream, useCarbonMonoxideGetStatus, useClimateControlGetStatus, useClimateControlSetFanMode, useClimateControlSetMode, useClimateControlSetPreset, useClimateControlSetSwingHorizontal, useClimateControlSetSwingVertical, useClimateControlSetTarget, useClimateControlSetTargetHumidity, useClimateControlSetTargetRange, useClusterNodes, 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, useDeviceManagerListLocations, useDeviceManagerListPersistedByAddon, useDeviceManagerListWrappersForCap, useDeviceManagerLoadConfig, useDeviceManagerLoadMeta, useDeviceManagerLoadRuntimeState, useDeviceManagerPersistConfig, useDeviceManagerProbeStreams, useDeviceManagerProviderCreationType, useDeviceManagerProviderDiscoveryParamsSchema, useDeviceManagerRegisterDevice, useDeviceManagerRemove, useDeviceManagerRemoveByIntegration, useDeviceManagerRemoveDevice, useDeviceManagerRemoveLocation, useDeviceManagerRenameLocation, useDeviceManagerRunDeviceAction, useDeviceManagerSetChildLayout, useDeviceManagerSetDisabled, useDeviceManagerSetDisplay, useDeviceManagerSetIntegrationId, useDeviceManagerSetLinkDeviceId, useDeviceManagerSetLocation, useDeviceManagerSetMetadata, useDeviceManagerSetName, useDeviceManagerSetPrimaryChildEntityId, useDeviceManagerSetRole, useDeviceManagerSetRoleDisplayDefaults, useDeviceManagerSetStreamProfileMap, useDeviceManagerSetType, useDeviceManagerSetWrapperActive, useDeviceManagerTestCreationField, useDeviceManagerTestField, useDeviceManagerUpdateConfig, useDeviceManagerUpdateDeviceField, useDeviceManagerUpdateDeviceFieldsBatch, useDeviceOpsGetConfigEntries, useDeviceOpsGetRawState, useDeviceOpsGetSettingsSchema, useDeviceOpsGetStreamSources, useDeviceOpsRemoveDevice, useDeviceOpsRunAction, useDeviceOpsSetConfig, useDeviceProviderAdoptDiscoveredDevice, useDeviceProviderCreateDevice, useDeviceProviderDiscoverDevices, useDeviceProviderGetChildCreationSchema, useDeviceProviderGetDevices, useDeviceProviderGetDiscoveryParamsSchema, useDeviceProviderGetManualCreationType, useDeviceProviderGetStatus, useDeviceProviderStart, useDeviceProviderStop, useDeviceProviderSupportsDiscovery, useDeviceProviderSupportsManualCreation, useDeviceProviderTestCreationField, useDeviceProxy, useDeviceSnapshot, useDeviceSnapshotImage, useDeviceState, useDeviceStateGetAllSnapshots, useDeviceStateGetCapSlice, useDeviceStateGetSnapshot, useDeviceStateSetCapSlice, useDeviceStateSlice, useDeviceStatusGetStatus, useDeviceWebrtc, useDevices, useDoorbellApplyDeviceSettingsPatch, useDoorbellEvents, useDoorbellGetDeviceLiveContribution, useDoorbellGetDeviceSettingsContribution, useDoorbellGetStatus, useEnumSensorGetStatus, useEventEmitterGetStatus, useEventInvalidation, useEventStreamLatest, useEventStreamMap, useEventsGetEventClipUrl, useEventsGetEventThumbnail, useEventsGetEvents, useFaceGalleryAssignFace, useFaceGalleryAssignFaces, useFaceGalleryCreateIdentity, useFaceGalleryDeleteFace, useFaceGalleryDeleteIdentity, useFaceGalleryGetFaceByTrack, useFaceGalleryGetFaceMedia, useFaceGalleryListIdentities, useFaceGalleryListIdentitySamples, useFaceGalleryListRecentFaces, useFaceGalleryRemoveSample, useFaceGalleryRenameIdentity, useFaceGallerySuggestFaceClusters, useFaceGalleryUnassignFace, useFaceGalleryUnassignFaces, useFanControlGetStatus, useFanControlSetDirection, useFanControlSetOscillating, useFanControlSetPercentage, useFanControlSetPreset, useFeatureProbeGetStatus, useFloodGetStatus, useGasGetStatus, useHumidifierGetStatus, useHumidifierSetMode, useHumidifierSetOn, useHumidifierSetTargetHumidity, useHumiditySensorGetStatus, useImageGetStatus, useImageSettingsGetOptions, useImageSettingsGetStatus, useImageSettingsSetSettings, useIntegrationsCreate, useIntegrationsDelete, useIntegrationsGet, useIntegrationsGetAvailableTypes, useIntegrationsGetByAddonId, useIntegrationsGetSettings, useIntegrationsList, useIntegrationsSetSettings, useIntegrationsTestConnection, useIntegrationsUpdate, useIntercomEndTalkSession, useIntercomGetStatus, useIntercomHandleAnswer, useIntercomPushTalkAudio, useIntercomStartSession, useIntercomStartTalkSession, useIntercomStopSession, useIsMidWidth, useIsMobile, useLawnMowerControlDock, useLawnMowerControlGetStatus, useLawnMowerControlPause, useLawnMowerControlStartMowing, useLiveBuffer, useLiveEvent, 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, useMetricsProviderDumpHeapSnapshot, 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, useNativeObjectDetectionGetStatus, useNativeObjectDetectionSetEnabled, useNetworkAccessGetEndpoint, useNetworkAccessGetStatus, useNetworkAccessListEndpoints, useNetworkAccessStart, useNetworkAccessStop, useNetworkQualityGetAllStats, useNetworkQualityGetDeviceStats, useNetworkQualityReportClientStats, useNodesClusterAddonStatus, useNodesDeployAddon, useNodesExecuteQuery, useNodesGetCapUsageGraph, useNodesGetNodeAddons, useNodesRenameNode, useNodesRestartAddon, useNodesRestartNode, useNodesRestartProcess, useNodesSetProcessLogLevel, useNodesShutdownNode, useNodesTopology, useNodesUndeployAddon, useNotificationOutputDeleteTarget, useNotificationOutputDiscoverTargets, useNotificationOutputListTargetKinds, useNotificationOutputListTargets, useNotificationOutputSend, useNotificationOutputSetTargetEnabled, useNotificationOutputTestTarget, useNotificationOutputUpsertTarget, useNotificationRulesCancelSnooze, useNotificationRulesCreateRule, useNotificationRulesCreateSnooze, useNotificationRulesDeleteRule, useNotificationRulesGetAlarmConfig, useNotificationRulesGetConditionCatalog, useNotificationRulesGetHistory, useNotificationRulesGetRule, useNotificationRulesListDeviceMutes, useNotificationRulesListRules, useNotificationRulesListSnoozes, 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, usePipelineAnalyticsGetEventMedia, usePipelineAnalyticsGetEventMediaFootprintByKind, usePipelineAnalyticsGetEventStoreFootprint, usePipelineAnalyticsGetKeyEvents, usePipelineAnalyticsGetKeyEventsBatch, usePipelineAnalyticsGetMediaReclaimStatus, usePipelineAnalyticsGetMotionEvents, usePipelineAnalyticsGetObjectEmbeddingRebuildStatus, usePipelineAnalyticsGetObjectEvents, usePipelineAnalyticsGetRetrainExportUrl, usePipelineAnalyticsGetRetrainFrameImage, usePipelineAnalyticsGetSensorEvents, usePipelineAnalyticsGetStorageMigrationMoveStatus, usePipelineAnalyticsGetTrack, usePipelineAnalyticsGetTrackMedia, usePipelineAnalyticsGetTrainingExportSummary, usePipelineAnalyticsGetTrainingExportUrl, usePipelineAnalyticsListEventKinds, usePipelineAnalyticsListEventKindsBatch, usePipelineAnalyticsListEventMedia, usePipelineAnalyticsListOpsLog, usePipelineAnalyticsListRecentTracks, usePipelineAnalyticsListRelocateMediaJobs, usePipelineAnalyticsListRetrainAnnotations, usePipelineAnalyticsListRetrainFrames, usePipelineAnalyticsListRetrainStaging, usePipelineAnalyticsListTrackMedia, usePipelineAnalyticsListTracks, usePipelineAnalyticsPauseForStorageMigration, usePipelineAnalyticsProposeRetrainAnnotations, usePipelineAnalyticsPruneEvents, usePipelineAnalyticsPruneEventsBefore, usePipelineAnalyticsPruneTracksBefore, 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, usePipelineOrchestratorSetAgentDetectWeight, usePipelineOrchestratorSetAgentInferenceDevices, usePipelineOrchestratorSetAgentMaxCameras, usePipelineOrchestratorSetAgentReachableHost, usePipelineOrchestratorSetCameraPipelineForAgent, usePipelineOrchestratorSetCameraStepOverride, usePipelineOrchestratorSetCameraStepToggle, usePipelineOrchestratorSetCameraSwitch, usePipelineOrchestratorSetCapabilityBinding, usePipelineOrchestratorSetPipelineDevicePin, usePipelineOrchestratorUnassignAudio, usePipelineOrchestratorUnassignPipeline, usePipelineOrchestratorUpdateTemplate, usePipelineRunnerAttachCamera, usePipelineRunnerDetachCamera, usePipelineRunnerGetAllCameraMetrics, usePipelineRunnerGetCameraMetrics, usePipelineRunnerGetLocalCameras, usePipelineRunnerGetLocalLoad, usePipelineRunnerGetLocalMetrics, usePipelineRunnerGetNativeCrop, usePipelineRunnerReportMotion, usePipelineRunnerRunDetailSubtree, usePipelineRunnerRunStatelessStep, usePlateGalleryAssignPlate, usePlateGalleryAssignPlates, usePlateGalleryCorrectPlateText, usePlateGalleryCreateVehicle, usePlateGalleryDeletePlate, usePlateGalleryDeleteVehicle, usePlateGalleryGetPlateByTrack, usePlateGalleryGetPlateMedia, usePlateGalleryListPlates, usePlateGalleryListVehicleSamples, usePlateGalleryListVehicles, usePlateGalleryRemoveVehicleSample, usePlateGalleryRenameVehicle, usePlateGallerySearchPlates, usePlateGallerySuggestPlateClusters, usePlateGalleryUnassignPlate, usePlateGalleryUnassignPlates, usePlayerOverlayLayer, usePlayerOverlayLayers, usePlayerToolbarButton, usePlayerToolbarButtons, usePowerMeterGetStatus, usePresenceGetStatus, usePressureSensorGetStatus, usePrivacyMaskGetOptions, usePrivacyMaskGetStatus, usePrivacyMaskSetAudioEnabled, usePrivacyMaskSetMask, usePtzAutotrackGetSettings, usePtzAutotrackGetStatus, usePtzAutotrackSetEnabled, usePtzAutotrackSetSettings, usePtzContinuousMove, usePtzDeletePreset, usePtzGetOptions, usePtzGetPosition, usePtzGetPresets, usePtzGetStatus, usePtzGoHome, usePtzGoToPreset, usePtzMove, usePtzSavePreset, usePtzSetAutofocus, usePtzStop, useRebootReboot, useRecordedPlayback, useRecordingApplyDeviceSettingsPatch, useRecordingCancelRelocateJob, useRecordingCancelStorageMigrationMove, useRecordingDeleteFootprint, useRecordingExportCancelExport, useRecordingExportCreateExport, useRecordingExportDeleteExport, useRecordingExportGetDownloadUrl, useRecordingExportGetExport, useRecordingExportListExports, useRecordingExportReadExportBytes, useRecordingGetAvailability, useRecordingGetDaysWithRecordings, 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, 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, useSmokeGetStatus, useSnapshotApplyDeviceSettingsPatch, useSnapshotGetDebugState, useSnapshotGetDeviceLiveContribution, useSnapshotGetDeviceSettingsContribution, useSnapshotGetSnapshot, useSnapshotGetSnapshotLinks, useSnapshotGetSnapshotOverview, useSnapshotGetStatus, useSnapshotInvalidateCache, useStorageAbortUpload, useStorageBeginDownload, useStorageBeginUpload, useStorageDelete, useStorageDeleteLocation, useStorageEndDownload, useStorageExists, useStorageFinalizeUpload, useStorageGetAvailableSpace, useStorageGetDefaultLocation, useStorageList, 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, useStreamBrokerGetAllRtspEntries, useStreamBrokerGetBrokerStats, useStreamBrokerGetDeviceAudioMute, useStreamBrokerGetDeviceLiveContribution, useStreamBrokerGetDeviceSettingsContribution, useStreamBrokerGetPreBufferInfo, useStreamBrokerGetRtspEntry, useStreamBrokerGetRtspPort, useStreamBrokerGetStreamUrl, useStreamBrokerGetStreamWithCodec, useStreamBrokerIsRtspEnabled, useStreamBrokerKillClient, useStreamBrokerListAllCameraStreams, useStreamBrokerListAllProfileSlots, useStreamBrokerListClients, useStreamBrokerProbeStream, useStreamBrokerProduceEventMedia, useStreamBrokerPublishCameraStream, useStreamBrokerPullAudioChunks, useStreamBrokerPullFrameHandles, useStreamBrokerRegenerateRtspToken, useStreamBrokerReleaseEgressTranscode, useStreamBrokerReleaseStreamWithCodec, useStreamBrokerRenderPreBufferClip, useStreamBrokerRestartProfile, useStreamBrokerRetractCameraStream, useStreamBrokerSetDeviceAudioMute, useStreamBrokerSetPreBufferDuration, useStreamBrokerSetRtspEnabled, useStreamBrokerSubscribeAudioChunks, useStreamBrokerSubscribeFrames, useStreamBrokerUnassignProfile, useStreamBrokerUnsubscribeAudioChunks, useStreamBrokerUnsubscribeFrames, useStreamCatalogGetCatalog, useStreamParamsGetConfigSchema, useStreamParamsGetOptions, useStreamParamsGetStatus, useStreamParamsSetProfile, useSwitchGetStatus, useSwitchSetState, useSystem, 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 };
|
|
49157
|
+
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, 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, createLucideIcon 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, humanDuration, humidifierTint, Mic as i, initialScrubState, isAbsentProvider, isFieldVisible, lawnMowerActivityMeta, lightColors, loadRemoteBundle, makeScrubBridge, metadataEntries, metadataString, mirror, mountAddonPage, Square as n, nextReconnectAction, nextSort, nextSortDirection, nextTableSort, normalizeForSearch, EyeOff as o, overrideEntityIdFromLink, parseRecordedServerMessage, providerIcons, RotateCcw as r, resolveContainerPrimary, resolveControlAlign, resolveDeviceControl, resolveDisplayIcon, resolveEffectiveDefaultModel, resolveEffectiveStepModel, resolveEventKindIcon, resolvePrimaryChild, resolveSensorDisplay, resolveStepDefaultModel, resolveTableLayout, roiTooLarge, Camera as s, scrubReducer, selectedDeviceOptions, serializeRecordedCommand, shouldCommit, shouldEmit, shouldUseSingleNode, sortRows, sortRowsByColumn, statusIcons, statusLine, stepHasModelForFormat, stepModelOptions, stripParentNamePrefix, Trash2 as t, tabForSelector, tankAlert, themeToCss, 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, useAlertsDismiss, useAlertsEmit, useAlertsGetUnreadCount, useAlertsList, useAlertsMarkAllRead, useAlertsMarkRead, useAlertsUpdate, useAllWidgets, useAmbientLightSensorGetStatus, useAudioAnalysisApplyDeviceSettingsPatch, useAudioAnalysisGetDeviceLiveContribution, useAudioAnalysisGetDeviceSettingsContribution, useAudioAnalysisResolveDeviceSettings, useAudioAnalyzerAnalyseChunk, useAudioAnalyzerClassify, useAudioAnalyzerDispose, useAudioAnalyzerIsReady, useAudioAnalyzerReprobeAudioEngine, useAudioCodecCanHandle, useAudioCodecCloseSession, useAudioCodecCreateDecodeSession, useAudioCodecCreateEncodeSession, useAudioCodecFlushEncode, useAudioCodecListActiveSessions, useAudioCodecListSupportedCodecs, useAudioCodecPullEncoded, useAudioCodecPullPcm, useAudioCodecPushEncodedFrame, useAudioCodecPushPcm, useAudioMetricsGetCurrentSnapshot, useAudioMetricsGetHistory, useAutomationControlDisable, useAutomationControlEnable, useAutomationControlGetStatus, useAutomationControlTrigger, useBackupDelete, useBackupDeleteSchedule, useBackupGetEntries, useBackupList, useBackupListArchives, useBackupListDestinations, useBackupListLocations, useBackupListSchedules, useBackupPreviewSchedule, useBackupRestore, useBackupTrigger, useBackupUpsertDestinationPolicy, useBackupUpsertSchedule, useBatteryGetStatus, useBatteryWakeForStream, useBinaryGetStatus, useBrightnessGetStatus, useBrightnessSetBrightness, useBrokerAdd, useBrokerGet, useBrokerGetBrokerConfig, useBrokerGetSettings, useBrokerGetSettingsSchema, useBrokerGetState, useBrokerGetStatus, useBrokerList, useBrokerListProviders, useBrokerPublish, useBrokerRemove, useBrokerSetSettings, useBrokerSubscribe, useBrokerTestConnection, useBrokerTestSettings, useBrokerUnsubscribe, useButtonPress, useCameraCredentialsGetCredentials, useCameraCredentialsGetStatus, useCameraPipelineConfigApplyDeviceSettingsPatch, useCameraPipelineConfigGetDeviceLiveContribution, useCameraPipelineConfigGetDeviceSettingsContribution, useCameraStreamsGetBrokerStreams, useCameraStreamsGetCameraStreams, useCameraStreamsGetProfileRtspEntries, useCameraStreamsGetRtspEntries, useCameraStreamsPickStream, useCarbonMonoxideGetStatus, useClimateControlGetStatus, useClimateControlSetFanMode, useClimateControlSetMode, useClimateControlSetPreset, useClimateControlSetSwingHorizontal, useClimateControlSetSwingVertical, useClimateControlSetTarget, useClimateControlSetTargetHumidity, useClimateControlSetTargetRange, useClusterNodes, 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, useDeviceManagerListLocations, useDeviceManagerListPersistedByAddon, useDeviceManagerListWrappersForCap, useDeviceManagerLoadConfig, useDeviceManagerLoadMeta, useDeviceManagerLoadRuntimeState, useDeviceManagerPersistConfig, useDeviceManagerProbeStreams, useDeviceManagerProviderCreationType, useDeviceManagerProviderDiscoveryParamsSchema, useDeviceManagerRegisterDevice, useDeviceManagerRemove, useDeviceManagerRemoveByIntegration, useDeviceManagerRemoveDevice, useDeviceManagerRemoveLocation, useDeviceManagerRenameLocation, useDeviceManagerRunDeviceAction, useDeviceManagerSetChildLayout, useDeviceManagerSetDisabled, useDeviceManagerSetDisplay, useDeviceManagerSetIntegrationId, useDeviceManagerSetLinkDeviceId, useDeviceManagerSetLocation, useDeviceManagerSetMetadata, useDeviceManagerSetName, useDeviceManagerSetPrimaryChildEntityId, useDeviceManagerSetRole, useDeviceManagerSetRoleDisplayDefaults, useDeviceManagerSetStreamProfileMap, useDeviceManagerSetType, useDeviceManagerSetWrapperActive, useDeviceManagerTestCreationField, useDeviceManagerTestField, useDeviceManagerUpdateConfig, useDeviceManagerUpdateDeviceField, useDeviceManagerUpdateDeviceFieldsBatch, useDeviceOpsGetConfigEntries, useDeviceOpsGetRawState, useDeviceOpsGetSettingsSchema, useDeviceOpsGetStreamSources, useDeviceOpsRemoveDevice, useDeviceOpsRunAction, useDeviceOpsSetConfig, useDeviceProviderAdoptDiscoveredDevice, useDeviceProviderCreateDevice, useDeviceProviderDiscoverDevices, useDeviceProviderGetChildCreationSchema, useDeviceProviderGetDevices, useDeviceProviderGetDiscoveryParamsSchema, useDeviceProviderGetManualCreationType, useDeviceProviderGetStatus, useDeviceProviderStart, useDeviceProviderStop, useDeviceProviderSupportsDiscovery, useDeviceProviderSupportsManualCreation, useDeviceProviderTestCreationField, useDeviceProxy, useDeviceSnapshot, useDeviceSnapshotImage, useDeviceState, useDeviceStateGetAllSnapshots, useDeviceStateGetCapSlice, useDeviceStateGetSnapshot, useDeviceStateSetCapSlice, useDeviceStateSlice, useDeviceStatusGetStatus, useDeviceWebrtc, useDevices, useDoorbellApplyDeviceSettingsPatch, useDoorbellEvents, useDoorbellGetDeviceLiveContribution, useDoorbellGetDeviceSettingsContribution, useDoorbellGetStatus, useEnumSensorGetStatus, useEventEmitterGetStatus, useEventInvalidation, useEventStreamLatest, useEventStreamMap, useEventsGetEventClipUrl, useEventsGetEventThumbnail, useEventsGetEvents, useFaceGalleryAssignFace, useFaceGalleryAssignFaces, useFaceGalleryCreateIdentity, useFaceGalleryDeleteFace, useFaceGalleryDeleteIdentity, useFaceGalleryGetFaceByTrack, useFaceGalleryGetFaceMedia, useFaceGalleryListIdentities, useFaceGalleryListIdentitySamples, useFaceGalleryListRecentFaces, useFaceGalleryRemoveSample, useFaceGalleryRenameIdentity, useFaceGallerySuggestFaceClusters, useFaceGalleryUnassignFace, useFaceGalleryUnassignFaces, useFanControlGetStatus, useFanControlSetDirection, useFanControlSetOscillating, useFanControlSetPercentage, useFanControlSetPreset, useFeatureProbeGetStatus, useFloodGetStatus, useGasGetStatus, useHumidifierGetStatus, useHumidifierSetMode, useHumidifierSetOn, useHumidifierSetTargetHumidity, useHumiditySensorGetStatus, useImageGetStatus, useImageSettingsGetOptions, useImageSettingsGetStatus, useImageSettingsSetSettings, useIntegrationsCreate, useIntegrationsDelete, useIntegrationsGet, useIntegrationsGetAvailableTypes, useIntegrationsGetByAddonId, useIntegrationsGetSettings, useIntegrationsList, useIntegrationsSetSettings, useIntegrationsTestConnection, useIntegrationsUpdate, useIntercomEndTalkSession, useIntercomGetStatus, useIntercomHandleAnswer, useIntercomPushTalkAudio, useIntercomStartSession, useIntercomStartTalkSession, useIntercomStopSession, useIsMidWidth, useIsMobile, useLawnMowerControlDock, useLawnMowerControlGetStatus, useLawnMowerControlPause, useLawnMowerControlStartMowing, useLiveBuffer, useLiveEvent, 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, useMetricsProviderDumpHeapSnapshot, 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, useNativeObjectDetectionGetStatus, useNativeObjectDetectionSetEnabled, useNetworkAccessGetEndpoint, useNetworkAccessGetStatus, useNetworkAccessListEndpoints, useNetworkAccessStart, useNetworkAccessStop, useNetworkQualityGetAllStats, useNetworkQualityGetDeviceStats, useNetworkQualityReportClientStats, useNodesClusterAddonStatus, useNodesDeployAddon, useNodesExecuteQuery, useNodesGetCapUsageGraph, useNodesGetNodeAddons, useNodesRenameNode, useNodesRestartAddon, useNodesRestartNode, useNodesRestartProcess, useNodesSetProcessLogLevel, useNodesShutdownNode, useNodesTopology, useNodesUndeployAddon, useNotificationOutputDeleteTarget, useNotificationOutputDiscoverTargets, useNotificationOutputListTargetKinds, useNotificationOutputListTargets, useNotificationOutputSend, useNotificationOutputSetTargetEnabled, useNotificationOutputTestTarget, useNotificationOutputUpsertTarget, useNotificationRulesCancelSnooze, useNotificationRulesCreateRule, useNotificationRulesCreateSnooze, useNotificationRulesDeleteRule, useNotificationRulesGetAlarmConfig, useNotificationRulesGetConditionCatalog, useNotificationRulesGetHistory, useNotificationRulesGetRule, useNotificationRulesListDeviceMutes, useNotificationRulesListRules, useNotificationRulesListSnoozes, 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, usePipelineAnalyticsGetTrack, usePipelineAnalyticsGetTrackMedia, usePipelineAnalyticsGetTrainingExportSummary, usePipelineAnalyticsGetTrainingExportUrl, usePipelineAnalyticsListEventKinds, usePipelineAnalyticsListEventKindsBatch, usePipelineAnalyticsListEventMedia, usePipelineAnalyticsListOpsLog, usePipelineAnalyticsListRecentTracks, usePipelineAnalyticsListRelocateMediaJobs, usePipelineAnalyticsListRetrainAnnotations, usePipelineAnalyticsListRetrainFrames, usePipelineAnalyticsListRetrainStaging, usePipelineAnalyticsListTrackMedia, usePipelineAnalyticsListTracks, usePipelineAnalyticsPauseForStorageMigration, usePipelineAnalyticsProposeRetrainAnnotations, usePipelineAnalyticsPruneEvents, usePipelineAnalyticsPruneEventsBefore, usePipelineAnalyticsPruneTracksBefore, 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, usePipelineOrchestratorSetAgentDetectWeight, usePipelineOrchestratorSetAgentInferenceDevices, usePipelineOrchestratorSetAgentMaxCameras, usePipelineOrchestratorSetAgentReachableHost, usePipelineOrchestratorSetCameraPipelineForAgent, usePipelineOrchestratorSetCameraStepOverride, usePipelineOrchestratorSetCameraStepToggle, usePipelineOrchestratorSetCameraSwitch, usePipelineOrchestratorSetCapabilityBinding, usePipelineOrchestratorSetPipelineDevicePin, usePipelineOrchestratorUnassignAudio, usePipelineOrchestratorUnassignPipeline, usePipelineOrchestratorUpdateTemplate, usePipelineRunnerAttachCamera, usePipelineRunnerDetachCamera, usePipelineRunnerGetAllCameraMetrics, usePipelineRunnerGetCameraMetrics, usePipelineRunnerGetLocalCameras, usePipelineRunnerGetLocalLoad, usePipelineRunnerGetLocalMetrics, usePipelineRunnerGetNativeCrop, usePipelineRunnerReportMotion, usePipelineRunnerRunDetailSubtree, usePipelineRunnerRunStatelessStep, usePlateGalleryAssignPlate, usePlateGalleryAssignPlates, usePlateGalleryCorrectPlateText, usePlateGalleryCreateVehicle, usePlateGalleryDeletePlate, usePlateGalleryDeleteVehicle, usePlateGalleryGetPlateByTrack, usePlateGalleryGetPlateMedia, usePlateGalleryListPlates, usePlateGalleryListVehicleSamples, usePlateGalleryListVehicles, usePlateGalleryRemoveVehicleSample, usePlateGalleryRenameVehicle, usePlateGallerySearchPlates, usePlateGallerySuggestPlateClusters, usePlateGalleryUnassignPlate, usePlateGalleryUnassignPlates, usePlayerOverlayLayer, usePlayerOverlayLayers, usePlayerToolbarButton, usePlayerToolbarButtons, usePowerMeterGetStatus, usePresenceGetStatus, usePressureSensorGetStatus, usePrivacyMaskGetOptions, usePrivacyMaskGetStatus, usePrivacyMaskSetAudioEnabled, usePrivacyMaskSetMask, usePtzAutotrackGetSettings, usePtzAutotrackGetStatus, usePtzAutotrackSetEnabled, usePtzAutotrackSetSettings, usePtzContinuousMove, usePtzDeletePreset, usePtzGetOptions, usePtzGetPosition, usePtzGetPresets, usePtzGetStatus, usePtzGoHome, usePtzGoToPreset, usePtzMove, usePtzSavePreset, usePtzSetAutofocus, usePtzStop, useRebootReboot, useRecordedPlayback, useRecordingApplyDeviceSettingsPatch, 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, 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, useSmokeGetStatus, useSnapshotApplyDeviceSettingsPatch, useSnapshotGetDebugState, useSnapshotGetDeviceLiveContribution, useSnapshotGetDeviceSettingsContribution, useSnapshotGetSnapshot, useSnapshotGetSnapshotLinks, useSnapshotGetSnapshotOverview, useSnapshotGetStatus, useSnapshotInvalidateCache, useStorageAbortUpload, useStorageBeginDownload, useStorageBeginUpload, useStorageDelete, useStorageDeleteLocation, useStorageEndDownload, useStorageExists, useStorageFinalizeUpload, useStorageGetAvailableSpace, useStorageGetDefaultLocation, useStorageList, 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, useStreamBrokerGetAllRtspEntries, useStreamBrokerGetBrokerStats, useStreamBrokerGetDeviceAudioMute, useStreamBrokerGetDeviceLiveContribution, useStreamBrokerGetDeviceSettingsContribution, useStreamBrokerGetPreBufferInfo, useStreamBrokerGetRtspEntry, useStreamBrokerGetRtspPort, useStreamBrokerGetStreamUrl, useStreamBrokerGetStreamWithCodec, useStreamBrokerIsRtspEnabled, useStreamBrokerKillClient, useStreamBrokerListAllCameraStreams, useStreamBrokerListAllProfileSlots, useStreamBrokerListClients, useStreamBrokerProbeStream, useStreamBrokerProduceEventMedia, useStreamBrokerPublishCameraStream, useStreamBrokerPullAudioChunks, useStreamBrokerPullFrameHandles, useStreamBrokerRegenerateRtspToken, useStreamBrokerReleaseEgressTranscode, useStreamBrokerReleaseStreamWithCodec, useStreamBrokerRenderPreBufferClip, useStreamBrokerRestartProfile, useStreamBrokerRetractCameraStream, useStreamBrokerSetDeviceAudioMute, useStreamBrokerSetPreBufferDuration, useStreamBrokerSetRtspEnabled, useStreamBrokerSubscribeAudioChunks, useStreamBrokerSubscribeFrames, useStreamBrokerUnassignProfile, useStreamBrokerUnsubscribeAudioChunks, useStreamBrokerUnsubscribeFrames, useStreamCatalogGetCatalog, useStreamParamsGetConfigSchema, useStreamParamsGetOptions, useStreamParamsGetStatus, useStreamParamsSetProfile, useSwitchGetStatus, useSwitchSetState, useSystem, 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 };
|