@camstack/ui-library 0.1.47 → 0.1.49

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -15744,6 +15744,10 @@ var useBatteryGetStatus = trpc.battery.getStatus.useQuery;
15744
15744
  var useBrightnessSetBrightness = trpc.brightness.setBrightness.useMutation;
15745
15745
  /** Generated alias around `trpc.brightness.getStatus.useQuery`. */
15746
15746
  var useBrightnessGetStatus = trpc.brightness.getStatus.useQuery;
15747
+ /** Generated alias around `trpc.cameraCredentials.getCredentials.useQuery`. */
15748
+ var useCameraCredentialsGetCredentials = trpc.cameraCredentials.getCredentials.useQuery;
15749
+ /** Generated alias around `trpc.cameraCredentials.getStatus.useQuery`. */
15750
+ var useCameraCredentialsGetStatus = trpc.cameraCredentials.getStatus.useQuery;
15747
15751
  /** Generated alias around `trpc.cameraStreams.getCameraStreams.useQuery`. */
15748
15752
  var useCameraStreamsGetCameraStreams = trpc.cameraStreams.getCameraStreams.useQuery;
15749
15753
  /** Generated alias around `trpc.cameraStreams.getBrokerStreams.useQuery`. */
@@ -15788,6 +15792,22 @@ var useDeviceDiscoveryAdoptDevice = trpc.deviceDiscovery.adoptDevice.useMutation
15788
15792
  var useDeviceDiscoveryReleaseDevice = trpc.deviceDiscovery.releaseDevice.useMutation;
15789
15793
  /** Generated alias around `trpc.deviceDiscovery.getStatus.useQuery`. */
15790
15794
  var useDeviceDiscoveryGetStatus = trpc.deviceDiscovery.getStatus.useQuery;
15795
+ /** Generated alias around `trpc.deviceExport.getStatus.useQuery`. */
15796
+ var useDeviceExportGetStatus = trpc.deviceExport.getStatus.useQuery;
15797
+ /** Generated alias around `trpc.deviceExport.listSupportedDeviceKinds.useQuery`. */
15798
+ var useDeviceExportListSupportedDeviceKinds = trpc.deviceExport.listSupportedDeviceKinds.useQuery;
15799
+ /** Generated alias around `trpc.deviceExport.listExposedDevices.useQuery`. */
15800
+ var useDeviceExportListExposedDevices = trpc.deviceExport.listExposedDevices.useQuery;
15801
+ /** Generated alias around `trpc.deviceExport.exposeDevice.useMutation`. */
15802
+ var useDeviceExportExposeDevice = trpc.deviceExport.exposeDevice.useMutation;
15803
+ /** Generated alias around `trpc.deviceExport.unexposeDevice.useMutation`. */
15804
+ var useDeviceExportUnexposeDevice = trpc.deviceExport.unexposeDevice.useMutation;
15805
+ /** Generated alias around `trpc.deviceExport.getDeviceSettingsContribution.useQuery`. */
15806
+ var useDeviceExportGetDeviceSettingsContribution = trpc.deviceExport.getDeviceSettingsContribution.useQuery;
15807
+ /** Generated alias around `trpc.deviceExport.getDeviceLiveContribution.useQuery`. */
15808
+ var useDeviceExportGetDeviceLiveContribution = trpc.deviceExport.getDeviceLiveContribution.useQuery;
15809
+ /** Generated alias around `trpc.deviceExport.applyDeviceSettingsPatch.useMutation`. */
15810
+ var useDeviceExportApplyDeviceSettingsPatch = trpc.deviceExport.applyDeviceSettingsPatch.useMutation;
15791
15811
  /** Generated alias around `trpc.deviceManager.allocateDeviceId.useMutation`. */
15792
15812
  var useDeviceManagerAllocateDeviceId = trpc.deviceManager.allocateDeviceId.useMutation;
15793
15813
  /** Generated alias around `trpc.deviceManager.registerDevice.useMutation`. */
@@ -15918,6 +15938,8 @@ var useDeviceStateGetCapSlice = trpc.deviceState.getCapSlice.useQuery;
15918
15938
  var useDeviceStateGetAllSnapshots = trpc.deviceState.getAllSnapshots.useQuery;
15919
15939
  /** Generated alias around `trpc.deviceState.setCapSlice.useMutation`. */
15920
15940
  var useDeviceStateSetCapSlice = trpc.deviceState.setCapSlice.useMutation;
15941
+ /** Generated alias around `trpc.deviceStatus.getStatus.useQuery`. */
15942
+ var useDeviceStatusGetStatus = trpc.deviceStatus.getStatus.useQuery;
15921
15943
  /** Generated alias around `trpc.doorbell.getStatus.useQuery`. */
15922
15944
  var useDoorbellGetStatus = trpc.doorbell.getStatus.useQuery;
15923
15945
  /** Generated alias around `trpc.events.getEvents.useQuery`. */
@@ -15926,6 +15948,8 @@ var useEventsGetEvents = trpc.events.getEvents.useQuery;
15926
15948
  var useEventsGetEventThumbnail = trpc.events.getEventThumbnail.useQuery;
15927
15949
  /** Generated alias around `trpc.events.getEventClipUrl.useQuery`. */
15928
15950
  var useEventsGetEventClipUrl = trpc.events.getEventClipUrl.useQuery;
15951
+ /** Generated alias around `trpc.featureProbe.getStatus.useQuery`. */
15952
+ var useFeatureProbeGetStatus = trpc.featureProbe.getStatus.useQuery;
15929
15953
  /** Generated alias around `trpc.integrations.list.useQuery`. */
15930
15954
  var useIntegrationsList = trpc.integrations.list.useQuery;
15931
15955
  /** Generated alias around `trpc.integrations.get.useQuery`. */
@@ -15952,6 +15976,12 @@ var useIntercomStartSession = trpc.intercom.startSession.useMutation;
15952
15976
  var useIntercomHandleAnswer = trpc.intercom.handleAnswer.useMutation;
15953
15977
  /** Generated alias around `trpc.intercom.stopSession.useMutation`. */
15954
15978
  var useIntercomStopSession = trpc.intercom.stopSession.useMutation;
15979
+ /** Generated alias around `trpc.intercom.startTalkSession.useMutation`. */
15980
+ var useIntercomStartTalkSession = trpc.intercom.startTalkSession.useMutation;
15981
+ /** Generated alias around `trpc.intercom.pushTalkPcm.useMutation`. */
15982
+ var useIntercomPushTalkPcm = trpc.intercom.pushTalkPcm.useMutation;
15983
+ /** Generated alias around `trpc.intercom.endTalkSession.useMutation`. */
15984
+ var useIntercomEndTalkSession = trpc.intercom.endTalkSession.useMutation;
15955
15985
  /** Generated alias around `trpc.intercom.getStatus.useQuery`. */
15956
15986
  var useIntercomGetStatus = trpc.intercom.getStatus.useQuery;
15957
15987
  /** Generated alias around `trpc.localNetwork.list.useQuery`. */
@@ -15966,6 +15996,18 @@ var useLocalNetworkGetAllowedAddresses = trpc.localNetwork.getAllowedAddresses.u
15966
15996
  var useLocalNetworkSetAllowedAddresses = trpc.localNetwork.setAllowedAddresses.useMutation;
15967
15997
  /** Generated alias around `trpc.localNetwork.resetAllowlistToBestMatch.useMutation`. */
15968
15998
  var useLocalNetworkResetAllowlistToBestMatch = trpc.localNetwork.resetAllowlistToBestMatch.useMutation;
15999
+ /** Generated alias around `trpc.meshNetwork.getStatus.useQuery`. */
16000
+ var useMeshNetworkGetStatus = trpc.meshNetwork.getStatus.useQuery;
16001
+ /** Generated alias around `trpc.meshNetwork.join.useMutation`. */
16002
+ var useMeshNetworkJoin = trpc.meshNetwork.join.useMutation;
16003
+ /** Generated alias around `trpc.meshNetwork.startLogin.useMutation`. */
16004
+ var useMeshNetworkStartLogin = trpc.meshNetwork.startLogin.useMutation;
16005
+ /** Generated alias around `trpc.meshNetwork.leave.useMutation`. */
16006
+ var useMeshNetworkLeave = trpc.meshNetwork.leave.useMutation;
16007
+ /** Generated alias around `trpc.meshNetwork.listPeers.useQuery`. */
16008
+ var useMeshNetworkListPeers = trpc.meshNetwork.listPeers.useQuery;
16009
+ /** Generated alias around `trpc.meshNetwork.testConnection.useMutation`. */
16010
+ var useMeshNetworkTestConnection = trpc.meshNetwork.testConnection.useMutation;
15969
16011
  /** Generated alias around `trpc.meshOrchestrator.listProviders.useQuery`. */
15970
16012
  var useMeshOrchestratorListProviders = trpc.meshOrchestrator.listProviders.useQuery;
15971
16013
  /** Generated alias around `trpc.meshOrchestrator.joinProvider.useMutation`. */
@@ -16014,6 +16056,22 @@ var useMotionDetectionApplyDeviceSettingsPatch = trpc.motionDetection.applyDevic
16014
16056
  var useMotionTriggerSetMotionTrigger = trpc.motionTrigger.setMotionTrigger.useMutation;
16015
16057
  /** Generated alias around `trpc.motionTrigger.getStatus.useQuery`. */
16016
16058
  var useMotionTriggerGetStatus = trpc.motionTrigger.getStatus.useQuery;
16059
+ /** Generated alias around `trpc.mqttBroker.listBrokers.useQuery`. */
16060
+ var useMqttBrokerListBrokers = trpc.mqttBroker.listBrokers.useQuery;
16061
+ /** Generated alias around `trpc.mqttBroker.getBrokerConfig.useQuery`. */
16062
+ var useMqttBrokerGetBrokerConfig = trpc.mqttBroker.getBrokerConfig.useQuery;
16063
+ /** Generated alias around `trpc.mqttBroker.addBroker.useMutation`. */
16064
+ var useMqttBrokerAddBroker = trpc.mqttBroker.addBroker.useMutation;
16065
+ /** Generated alias around `trpc.mqttBroker.removeBroker.useMutation`. */
16066
+ var useMqttBrokerRemoveBroker = trpc.mqttBroker.removeBroker.useMutation;
16067
+ /** Generated alias around `trpc.mqttBroker.testConnection.useMutation`. */
16068
+ var useMqttBrokerTestConnection = trpc.mqttBroker.testConnection.useMutation;
16069
+ /** Generated alias around `trpc.mqttBroker.startEmbeddedBroker.useMutation`. */
16070
+ var useMqttBrokerStartEmbeddedBroker = trpc.mqttBroker.startEmbeddedBroker.useMutation;
16071
+ /** Generated alias around `trpc.mqttBroker.stopEmbeddedBroker.useMutation`. */
16072
+ var useMqttBrokerStopEmbeddedBroker = trpc.mqttBroker.stopEmbeddedBroker.useMutation;
16073
+ /** Generated alias around `trpc.mqttBroker.getStatus.useQuery`. */
16074
+ var useMqttBrokerGetStatus = trpc.mqttBroker.getStatus.useQuery;
16017
16075
  /** Generated alias around `trpc.nativeObjectDetection.getStatus.useQuery`. */
16018
16076
  var useNativeObjectDetectionGetStatus = trpc.nativeObjectDetection.getStatus.useQuery;
16019
16077
  /** Generated alias around `trpc.networkQuality.getDeviceStats.useQuery`. */
@@ -16242,6 +16300,10 @@ var usePlatformProbeGetHardware = trpc.platformProbe.getHardware.useQuery;
16242
16300
  var usePlatformProbeResolveInferenceConfig = trpc.platformProbe.resolveInferenceConfig.useQuery;
16243
16301
  /** Generated alias around `trpc.platformProbe.resolveHwAccel.useQuery`. */
16244
16302
  var usePlatformProbeResolveHwAccel = trpc.platformProbe.resolveHwAccel.useQuery;
16303
+ /** Generated alias around `trpc.platformProbe.getHardwareEncoders.useQuery`. */
16304
+ var usePlatformProbeGetHardwareEncoders = trpc.platformProbe.getHardwareEncoders.useQuery;
16305
+ /** Generated alias around `trpc.platformProbe.refreshHardwareEncoders.useMutation`. */
16306
+ var usePlatformProbeRefreshHardwareEncoders = trpc.platformProbe.refreshHardwareEncoders.useMutation;
16245
16307
  /** Generated alias around `trpc.ptz.move.useMutation`. */
16246
16308
  var usePtzMove = trpc.ptz.move.useMutation;
16247
16309
  /** Generated alias around `trpc.ptz.continuousMove.useMutation`. */
@@ -16414,6 +16476,10 @@ var useStreamBrokerKillClient = trpc.streamBroker.killClient.useMutation;
16414
16476
  var useStreamBrokerRestartProfile = trpc.streamBroker.restartProfile.useMutation;
16415
16477
  /** Generated alias around `trpc.streamBroker.getStreamUrl.useQuery`. */
16416
16478
  var useStreamBrokerGetStreamUrl = trpc.streamBroker.getStreamUrl.useQuery;
16479
+ /** Generated alias around `trpc.streamBroker.getStreamWithCodec.useMutation`. */
16480
+ var useStreamBrokerGetStreamWithCodec = trpc.streamBroker.getStreamWithCodec.useMutation;
16481
+ /** Generated alias around `trpc.streamBroker.releaseStreamWithCodec.useMutation`. */
16482
+ var useStreamBrokerReleaseStreamWithCodec = trpc.streamBroker.releaseStreamWithCodec.useMutation;
16417
16483
  /** Generated alias around `trpc.streamBroker.getBroker.useQuery`. */
16418
16484
  var useStreamBrokerGetBroker = trpc.streamBroker.getBroker.useQuery;
16419
16485
  /** Generated alias around `trpc.streamBroker.setPreBufferDuration.useMutation`. */
@@ -16496,10 +16562,22 @@ var useUserManagementRevokeScopedToken = trpc.userManagement.revokeScopedToken.u
16496
16562
  var useUserManagementValidateScopedToken = trpc.userManagement.validateScopedToken.useQuery;
16497
16563
  /** Generated alias around `trpc.userManagement.listScopedTokens.useQuery`. */
16498
16564
  var useUserManagementListScopedTokens = trpc.userManagement.listScopedTokens.useQuery;
16565
+ /** Generated alias around `trpc.userManagement.setupTotp.useMutation`. */
16566
+ var useUserManagementSetupTotp = trpc.userManagement.setupTotp.useMutation;
16567
+ /** Generated alias around `trpc.userManagement.confirmTotp.useMutation`. */
16568
+ var useUserManagementConfirmTotp = trpc.userManagement.confirmTotp.useMutation;
16569
+ /** Generated alias around `trpc.userManagement.disableTotp.useMutation`. */
16570
+ var useUserManagementDisableTotp = trpc.userManagement.disableTotp.useMutation;
16571
+ /** Generated alias around `trpc.userManagement.getTotpStatus.useQuery`. */
16572
+ var useUserManagementGetTotpStatus = trpc.userManagement.getTotpStatus.useQuery;
16573
+ /** Generated alias around `trpc.userManagement.verifyTotp.useMutation`. */
16574
+ var useUserManagementVerifyTotp = trpc.userManagement.verifyTotp.useMutation;
16499
16575
  /** Generated alias around `trpc.webrtcSession.listStreams.useQuery`. */
16500
16576
  var useWebrtcSessionListStreams = trpc.webrtcSession.listStreams.useQuery;
16501
16577
  /** Generated alias around `trpc.webrtcSession.createSession.useMutation`. */
16502
16578
  var useWebrtcSessionCreateSession = trpc.webrtcSession.createSession.useMutation;
16579
+ /** Generated alias around `trpc.webrtcSession.handleOffer.useMutation`. */
16580
+ var useWebrtcSessionHandleOffer = trpc.webrtcSession.handleOffer.useMutation;
16503
16581
  /** Generated alias around `trpc.webrtcSession.handleAnswer.useMutation`. */
16504
16582
  var useWebrtcSessionHandleAnswer = trpc.webrtcSession.handleAnswer.useMutation;
16505
16583
  /** Generated alias around `trpc.webrtcSession.closeSession.useMutation`. */
@@ -19916,6 +19994,79 @@ function SnapshotPreview({ src, isLoading, onPlay, onRetry, extraOverlay, suppre
19916
19994
  });
19917
19995
  }
19918
19996
  //#endregion
19997
+ //#region src/composites/stream-broker-selector.tsx
19998
+ /**
19999
+ * StreamBrokerSelector — reusable per-device "preferred stream" picker.
20000
+ *
20001
+ * Renders a single `<Select>` with options sourced from the device's
20002
+ * camera-streams cap (`getRtspEntries`). The first option is always
20003
+ * "Auto (best available)"; remaining options are one per enabled
20004
+ * RTSP restream entry, labelled by stream profile (`High` / `Mid` /
20005
+ * `Low` …) and tagged with codec + resolution when the broker reports
20006
+ * them.
20007
+ *
20008
+ * Used by addon-built panels that don't flow through the form-builder
20009
+ * `ConfigUISchema` aggregator (the cap-driven aggregator already
20010
+ * embeds an equivalent `select` field with server-resolved options —
20011
+ * the addons return the same list inline). Reach for this composite
20012
+ * when you need an out-of-form selector in a bespoke React tree (e.g.
20013
+ * an addon's wizard page, a debug panel, etc.).
20014
+ *
20015
+ * Loading / empty / error states all render a degraded select rather
20016
+ * than vanishing — the operator can always pick `Auto` even if the
20017
+ * device's broker is currently unreachable.
20018
+ */
20019
+ var AUTO_OPTION = {
20020
+ value: "auto",
20021
+ label: "Auto (best available)"
20022
+ };
20023
+ /** Friendly profile label — "high" → "High", "mid" → "Mid", etc. */
20024
+ function profileLabel(streamId) {
20025
+ return streamId.charAt(0).toUpperCase() + streamId.slice(1);
20026
+ }
20027
+ function StreamBrokerSelector({ deviceId, value, onChange, disabled, label, className }) {
20028
+ const labelId = useId();
20029
+ const query = useCameraStreamsGetRtspEntries({ deviceId }, { refetchOnWindowFocus: false });
20030
+ const [options, setOptions] = useState([AUTO_OPTION]);
20031
+ useEffect(() => {
20032
+ if (!query.data) return;
20033
+ const prefix = `${deviceId}/`;
20034
+ const next = [AUTO_OPTION];
20035
+ for (const entry of query.data) {
20036
+ if (!entry.enabled) continue;
20037
+ const streamId = entry.brokerId.startsWith(prefix) ? entry.brokerId.slice(prefix.length) : entry.brokerId;
20038
+ next.push({
20039
+ value: streamId,
20040
+ label: profileLabel(streamId)
20041
+ });
20042
+ }
20043
+ setOptions(next);
20044
+ }, [query.data, deviceId]);
20045
+ const resolvedLabel = label ?? "Preferred stream";
20046
+ const helperText = query.isLoading ? "Loading available streams…" : query.isError ? "Could not load streams — only Auto available." : options.length === 1 ? "No enabled streams found — only Auto available." : null;
20047
+ return /* @__PURE__ */ jsxs("div", {
20048
+ className,
20049
+ children: [
20050
+ /* @__PURE__ */ jsx("label", {
20051
+ id: labelId,
20052
+ className: "text-xs font-medium text-foreground-muted block mb-1",
20053
+ children: resolvedLabel
20054
+ }),
20055
+ /* @__PURE__ */ jsx(Select, {
20056
+ "aria-labelledby": labelId,
20057
+ options,
20058
+ value,
20059
+ disabled,
20060
+ onChange: (e) => onChange(e.target.value)
20061
+ }),
20062
+ helperText !== null && /* @__PURE__ */ jsx("p", {
20063
+ className: "text-foreground-subtle text-[10px] mt-1",
20064
+ children: helperText
20065
+ })
20066
+ ]
20067
+ });
20068
+ }
20069
+ //#endregion
19919
20070
  //#region src/composites/audio-waveform.tsx
19920
20071
  /**
19921
20072
  * Canvas-based audio waveform visualization.
@@ -22990,23 +23141,20 @@ function KebabMenu({ items, header, triggerClassName, title = "More actions" })
22990
23141
  * <ScopePicker> — operator-facing editor for a `TokenScope[]` value.
22991
23142
  *
22992
23143
  * Two consumers: the user-scope editor on `/system/users` (admin grants
22993
- * a baseline scope set to a viewer / agent / scoped user) and the
22994
- * scoped-token create modal on `/system/api-keys` (a caller carves
22995
- * out a subset of THEIR scopes for a `cst_*` token).
23144
+ * a baseline scope set to a non-admin user) and the scoped-token create
23145
+ * modal on `/system/api-keys` (a caller carves out a subset of THEIR
23146
+ * scopes for a `cst_*` token).
22996
23147
  *
22997
- * Each row is `{ type, target, access }`:
22998
- * - `type`: `addon` or `capability` (route-prefix retired in the
22999
- * caps-only refactor every endpoint lives behind a cap).
23000
- * - `target`: a known addon id (live from `useAddonsList`) or a known
23001
- * cap name (from `KNOWN_CAP_NAMES` emitted by codegen).
23002
- * - `access`: three independent checkboxes (`view` / `create` /
23003
- * `delete`). At least one must be selected; an empty grant is
23004
- * rejected by the server-side Zod schema (`access.min(1)`).
23148
+ * Row shapes per scope `type`:
23149
+ * - category → target: 'device' | 'system'
23150
+ * - capability target: cap name from `KNOWN_CAP_NAMES`
23151
+ * - addon → target: addon id from `useAddonsList`
23152
+ * - device targets: readonly deviceId[] (multi-select)
23153
+ *
23154
+ * `access` is always 3 independent checkboxes (view / create / delete).
23005
23155
  *
23006
23156
  * `clampToParent` narrows the target dropdown + access checkboxes to
23007
- * what the CALLER possesses this is the subset check rendered in
23008
- * the UI, mirroring the structural check in `createScopedToken`.
23009
- * Admins should pass `null` to allow everything.
23157
+ * what the CALLER possesses. Admins pass `null` to allow everything.
23010
23158
  */
23011
23159
  var ACCESS_OPTIONS = [
23012
23160
  {
@@ -23028,6 +23176,8 @@ var ACCESS_OPTIONS = [
23028
23176
  hint: "Destructive ops (delete/revoke/reset/…)"
23029
23177
  }
23030
23178
  ];
23179
+ /** Static targets for the `category` scope type (auto-grow categories). */
23180
+ var CATEGORY_CHOICES = ["device", "system"];
23031
23181
  function defaultRow() {
23032
23182
  return {
23033
23183
  type: "capability",
@@ -23035,11 +23185,36 @@ function defaultRow() {
23035
23185
  access: ["view"]
23036
23186
  };
23037
23187
  }
23038
- function clampedTargetsForType(type, parent, addonChoices, capChoices) {
23039
- const universe = type === "addon" ? addonChoices : capChoices;
23188
+ /**
23189
+ * Collect the union of device targets a parent grants. Used to clamp
23190
+ * the device picker so a child grant can't refer to a deviceId the
23191
+ * caller themselves doesn't have.
23192
+ */
23193
+ function parentDeviceTargets(parent) {
23194
+ if (parent == null) return [];
23195
+ const out = /* @__PURE__ */ new Set();
23196
+ for (const s of parent) if (s.type === "device") for (const t of s.targets) out.add(t);
23197
+ return [...out];
23198
+ }
23199
+ function clampedSingleTargets(type, parent, addonChoices, capChoices) {
23200
+ let universe;
23201
+ switch (type) {
23202
+ case "addon":
23203
+ universe = addonChoices;
23204
+ break;
23205
+ case "capability":
23206
+ universe = capChoices;
23207
+ break;
23208
+ case "category":
23209
+ universe = CATEGORY_CHOICES.map((c) => ({
23210
+ value: c,
23211
+ label: c
23212
+ }));
23213
+ break;
23214
+ }
23040
23215
  if (parent == null) return universe;
23041
- const allowed = new Set(parent.filter((s) => s.type === type).map((s) => s.target));
23042
- return universe.filter((t) => allowed.has(t));
23216
+ const allowed = new Set(parent.filter((s) => s.type !== "device" && s.type === type).map((s) => s.target));
23217
+ return universe.filter((t) => allowed.has(t.value));
23043
23218
  }
23044
23219
  function clampedAccessForRow(row, parent) {
23045
23220
  if (parent == null) return [
@@ -23047,7 +23222,12 @@ function clampedAccessForRow(row, parent) {
23047
23222
  "create",
23048
23223
  "delete"
23049
23224
  ];
23050
- const matches = parent.filter((s) => s.type === row.type && s.target === row.target);
23225
+ const matches = parent.filter((s) => {
23226
+ if (s.type !== row.type) return false;
23227
+ if (s.type === "device" && row.type === "device") return s.targets.some((t) => row.targets.includes(t));
23228
+ if (s.type !== "device" && row.type !== "device") return s.target === row.target;
23229
+ return false;
23230
+ });
23051
23231
  if (matches.length === 0) return [];
23052
23232
  const out = /* @__PURE__ */ new Set();
23053
23233
  for (const m of matches) for (const a of m.access) out.add(a);
@@ -23055,17 +23235,75 @@ function clampedAccessForRow(row, parent) {
23055
23235
  }
23056
23236
  function ScopePicker({ value, onChange, clampToParent, emptyHint }) {
23057
23237
  const { data: addons } = useAddonsList();
23058
- const addonChoices = useMemo(() => (addons ?? []).map((a) => a.manifest.id).sort(), [addons]);
23059
- const capChoices = useMemo(() => [...KNOWN_CAP_NAMES].sort(), []);
23238
+ const { data: devices } = useDeviceManagerListAll({});
23239
+ const addonChoices = useMemo(() => (addons ?? []).map((a) => ({
23240
+ value: a.manifest.id,
23241
+ label: a.manifest.id
23242
+ })).sort((a, b) => a.label.localeCompare(b.label)), [addons]);
23243
+ const capChoices = useMemo(() => [...KNOWN_CAP_NAMES].sort().map((c) => ({
23244
+ value: c,
23245
+ label: c
23246
+ })), []);
23247
+ const deviceChoices = useMemo(() => (devices ?? []).map((d) => ({
23248
+ value: String(d.id),
23249
+ label: `${d.name} (#${d.id} · ${d.addonId})`
23250
+ })).sort((a, b) => a.label.localeCompare(b.label)), [devices]);
23251
+ const parentDeviceClamp = useMemo(() => clampToParent == null ? null : parentDeviceTargets(clampToParent), [clampToParent]);
23252
+ /**
23253
+ * Build a fresh scope row when `type` changes. The discriminated union
23254
+ * forces us to re-construct the object per variant so the resulting
23255
+ * shape matches one of the four union members exactly.
23256
+ */
23257
+ const rebuildForType = (next, access) => {
23258
+ const accessArr = [...access];
23259
+ switch (next) {
23260
+ case "category": return {
23261
+ type: "category",
23262
+ target: "device",
23263
+ access: accessArr
23264
+ };
23265
+ case "capability": return {
23266
+ type: "capability",
23267
+ target: "",
23268
+ access: accessArr
23269
+ };
23270
+ case "addon": return {
23271
+ type: "addon",
23272
+ target: "",
23273
+ access: accessArr
23274
+ };
23275
+ case "device": return {
23276
+ type: "device",
23277
+ targets: [],
23278
+ access: accessArr
23279
+ };
23280
+ }
23281
+ };
23060
23282
  const update = (idx, patch) => {
23061
23283
  onChange(value.map((s, i) => {
23062
23284
  if (i !== idx) return s;
23063
- const next = {
23064
- ...s,
23065
- ...patch
23285
+ if (patch.type !== void 0 && patch.type !== s.type) return rebuildForType(patch.type, patch.access ?? s.access);
23286
+ const access = [...patch.access ?? s.access];
23287
+ if (s.type === "device") return {
23288
+ type: "device",
23289
+ targets: [...patch.targets ?? s.targets],
23290
+ access
23291
+ };
23292
+ if (s.type === "category") return {
23293
+ type: "category",
23294
+ target: patch.target ?? s.target,
23295
+ access
23296
+ };
23297
+ if (s.type === "capability") return {
23298
+ type: "capability",
23299
+ target: patch.target ?? s.target,
23300
+ access
23301
+ };
23302
+ return {
23303
+ type: "addon",
23304
+ target: patch.target ?? s.target,
23305
+ access
23066
23306
  };
23067
- if (patch.type !== void 0 && patch.type !== s.type) next.target = "";
23068
- return next;
23069
23307
  }));
23070
23308
  };
23071
23309
  const removeAt = (idx) => {
@@ -23082,24 +23320,39 @@ function ScopePicker({ value, onChange, clampToParent, emptyHint }) {
23082
23320
  children: emptyHint
23083
23321
  }),
23084
23322
  value.map((row, idx) => {
23085
- const targetChoices = clampedTargetsForType(row.type, clampToParent, addonChoices, capChoices);
23086
23323
  const allowedAccess = clampedAccessForRow(row, clampToParent);
23087
23324
  return /* @__PURE__ */ jsxs("div", {
23088
- className: "flex flex-wrap items-center gap-1.5 rounded border border-border bg-surface px-2 py-1.5",
23325
+ className: "flex flex-wrap items-start gap-1.5 rounded border border-border bg-surface px-2 py-1.5",
23089
23326
  children: [
23090
23327
  /* @__PURE__ */ jsxs("select", {
23091
23328
  value: row.type,
23092
23329
  onChange: (e) => update(idx, { type: e.target.value }),
23093
23330
  className: "rounded border border-border bg-background px-2 py-1 text-[11px] focus:outline-none focus:ring-1 focus:ring-primary",
23094
- children: [/* @__PURE__ */ jsx("option", {
23095
- value: "capability",
23096
- children: "capability"
23097
- }), /* @__PURE__ */ jsx("option", {
23098
- value: "addon",
23099
- children: "addon"
23100
- })]
23331
+ children: [
23332
+ /* @__PURE__ */ jsx("option", {
23333
+ value: "category",
23334
+ children: "category"
23335
+ }),
23336
+ /* @__PURE__ */ jsx("option", {
23337
+ value: "capability",
23338
+ children: "capability"
23339
+ }),
23340
+ /* @__PURE__ */ jsx("option", {
23341
+ value: "addon",
23342
+ children: "addon"
23343
+ }),
23344
+ /* @__PURE__ */ jsx("option", {
23345
+ value: "device",
23346
+ children: "device"
23347
+ })
23348
+ ]
23101
23349
  }),
23102
- /* @__PURE__ */ jsxs("select", {
23350
+ row.type === "device" ? /* @__PURE__ */ jsx(DeviceTargetPicker, {
23351
+ value: row.targets,
23352
+ choices: deviceChoices,
23353
+ clampToParent: parentDeviceClamp,
23354
+ onChange: (targets) => update(idx, { targets })
23355
+ }) : /* @__PURE__ */ jsxs("select", {
23103
23356
  value: row.target,
23104
23357
  onChange: (e) => update(idx, { target: e.target.value }),
23105
23358
  className: "flex-1 min-w-[160px] rounded border border-border bg-background px-2 py-1 text-[11px] font-mono focus:outline-none focus:ring-1 focus:ring-primary",
@@ -23110,10 +23363,10 @@ function ScopePicker({ value, onChange, clampToParent, emptyHint }) {
23110
23363
  row.type,
23111
23364
  " —"
23112
23365
  ]
23113
- }), targetChoices.map((t) => /* @__PURE__ */ jsx("option", {
23114
- value: t,
23115
- children: t
23116
- }, t))]
23366
+ }), clampedSingleTargets(row.type, clampToParent, addonChoices, capChoices).map((t) => /* @__PURE__ */ jsx("option", {
23367
+ value: t.value,
23368
+ children: t.label
23369
+ }, t.value))]
23117
23370
  }),
23118
23371
  /* @__PURE__ */ jsx("div", {
23119
23372
  className: "flex items-center gap-1",
@@ -23161,16 +23414,73 @@ function ScopePicker({ value, onChange, clampToParent, emptyHint }) {
23161
23414
  ]
23162
23415
  });
23163
23416
  }
23417
+ function DeviceTargetPicker({ value, choices, clampToParent, onChange }) {
23418
+ const [pendingAdd, setPendingAdd] = useState("");
23419
+ const visibleChoices = useMemo(() => {
23420
+ const filtered = clampToParent == null ? choices : choices.filter((c) => clampToParent.includes(c.value));
23421
+ const taken = new Set(value);
23422
+ return filtered.filter((c) => !taken.has(c.value));
23423
+ }, [
23424
+ choices,
23425
+ clampToParent,
23426
+ value
23427
+ ]);
23428
+ const labelFor = (id) => choices.find((c) => c.value === id)?.label ?? `#${id}`;
23429
+ const handleAdd = (id) => {
23430
+ if (!id) return;
23431
+ onChange([...value, id]);
23432
+ setPendingAdd("");
23433
+ };
23434
+ const handleRemove = (id) => {
23435
+ onChange(value.filter((v) => v !== id));
23436
+ };
23437
+ return /* @__PURE__ */ jsxs("div", {
23438
+ className: "flex-1 min-w-[160px] flex flex-wrap items-center gap-1",
23439
+ children: [
23440
+ value.length === 0 && /* @__PURE__ */ jsx("span", {
23441
+ className: "text-[10px] text-foreground-subtle italic px-1",
23442
+ children: "no devices selected"
23443
+ }),
23444
+ value.map((id) => /* @__PURE__ */ jsxs("span", {
23445
+ className: "inline-flex items-center gap-1 rounded bg-primary/10 px-1.5 py-0.5 text-[10px] font-mono text-primary",
23446
+ children: [labelFor(id), /* @__PURE__ */ jsx("button", {
23447
+ type: "button",
23448
+ onClick: () => handleRemove(id),
23449
+ className: "hover:text-danger transition-colors",
23450
+ title: "Remove device",
23451
+ children: /* @__PURE__ */ jsx(X, { className: "h-2.5 w-2.5" })
23452
+ })]
23453
+ }, id)),
23454
+ visibleChoices.length > 0 && /* @__PURE__ */ jsxs("select", {
23455
+ value: pendingAdd,
23456
+ onChange: (e) => handleAdd(e.target.value),
23457
+ className: "rounded border border-border bg-background px-1.5 py-0.5 text-[10px] focus:outline-none focus:ring-1 focus:ring-primary",
23458
+ children: [/* @__PURE__ */ jsx("option", {
23459
+ value: "",
23460
+ children: "+ add device…"
23461
+ }), visibleChoices.map((c) => /* @__PURE__ */ jsx("option", {
23462
+ value: c.value,
23463
+ children: c.label
23464
+ }, c.value))]
23465
+ })
23466
+ ]
23467
+ });
23468
+ }
23164
23469
  /**
23165
23470
  * Validation helper. The wire schema (`TokenScopeSchema`) requires every
23166
- * scope to carry a non-empty target and `access.length >= 1`. Use this
23167
- * before passing the picker output to a mutate call so the user sees a
23168
- * clean inline error instead of a tRPC ZodError.
23471
+ * scope to carry a non-empty target/targets and `access.length >= 1`.
23472
+ * Use this before passing the picker output to a mutate call so the
23473
+ * user sees a clean inline error instead of a tRPC ZodError.
23169
23474
  */
23170
23475
  function validateScopes(scopes) {
23171
23476
  for (const s of scopes) {
23172
- if (s.target.trim().length === 0) return `Scope ${s.type}: pick a target`;
23173
- if (s.access.length === 0) return `Scope ${s.type}:${s.target}: pick at least one access`;
23477
+ if (s.type === "device") {
23478
+ if (s.targets.length === 0) return `Scope device: pick at least one device`;
23479
+ } else if (s.target.trim().length === 0) return `Scope ${s.type}: pick a target`;
23480
+ if (s.access.length === 0) {
23481
+ const targetDesc = s.type === "device" ? `[${s.targets.join(",")}]` : s.target;
23482
+ return `Scope ${s.type}:${targetDesc}: pick at least one access`;
23483
+ }
23174
23484
  }
23175
23485
  return null;
23176
23486
  }
@@ -23904,6 +24214,6 @@ function useEventInvalidation(queryKey, categories) {
23904
24214
  ]);
23905
24215
  }
23906
24216
  //#endregion
23907
- export { AddonGlobalSettingsForm, AgentStepEditor, AppShell, AudioClassificationList, AudioLevelWaveform, AudioWaveform, BTN_COMPACT, BTN_COMPACT_DANGER, BTN_COMPACT_PRIMARY, BTN_COMPACT_WARNING, Badge, BatteryBadge, BottomSheet, Breadcrumb, Button, CHIP_ACTIVE, CHIP_BASE, CHIP_INACTIVE, CLASS_COLORS, CameraStreamPlayer, Card, Checkbox, CodeBlock, CollapsibleCard, ConfigFormBuilder, FormField as ConfigFormField, ConfigSchemaField, ConfirmActionButton, ConfirmDialogProvider, CustomFieldRenderersProvider, DEFAULT_COLOR, DataTable, DetectionCanvas, DetectionOverlay, DetectionResultTree, DevShell, DeviceActivityPanel, DeviceCard, DeviceContextProvider, DeviceGrid, DeviceItem, DeviceList, Dialog, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, DialogTrigger, DiscoveryPanel, DoorbellRecentPanel, Dropdown, DropdownContent, DropdownItem, DropdownTrigger, EmptyState, EventStream, FilterBar, FloatingEventStream, FloatingLogStream, FloatingPanel, FormField$1 as FormField, GRID_GAP, GRID_PAIRED, GRID_QUICK_STATS, INPUT_COMPACT, IconButton, ImageSelector, InferenceConfigSelector, Input, KebabMenu, KeyValueList, LIST_ROW, Label, LogStream, LoginForm, MobileDrawer, NodeMultiSelectField, NodePicker, NodeSelectField, PHASE_CONFIG, PTZOverlay, PageHeader, PhaseIcon, PipelineBuilder, PipelineRuntimeSelector, PipelineStep, PipelineTreeMatrix, PlayerOverlaysProvider, Popover, PopoverContent, PopoverTrigger, ProviderBadge, ResponseLog, SECTION_BODY, SECTION_CARD, SECTION_HEADER, SPLIT_PANEL_OUTER, SPLIT_PANEL_SIDE, STACK_GAP, ScopePicker, ScrollArea, Select, SemanticBadge, Separator, Sidebar, SidebarItem, Skeleton, SlideOverPanel, SnapshotButton, StatCard, StateValuesStream, StatusBadge, StepTimings, StepTreeMaster, StreamPanel, Switch, SystemProvider, TEXT_FIELD_LABEL, TEXT_HINT, TEXT_METRIC, TEXT_SECTION_LABEL, TEXT_VALUE, Tabs, TabsContent, TabsList, TabsTrigger, ThemeProvider, Tooltip, TooltipContent, TooltipTrigger, VersionBadge, WidgetRegistryProvider, WidgetSlot, ZoneEditingProvider, buildStepTreeFromSchema, cn, createSharedContext, createTheme, darkColors, defaultTheme, deriveDeviceKind, ensureMfHostInit, getClassColor, getPhaseVisual, isFieldVisible, lightColors, mirror, mountAddonPage, providerIcons, statusIcons, themeToCss, trpc, useAccessoriesGetStatus, useAddonPagesListPages, useAddonSettingsGetDeviceSettings, useAddonSettingsGetGlobalSettings, useAddonSettingsUpdateDeviceSettings, useAddonSettingsUpdateGlobalSettings, useAddonWidgetsListWidgets, useAddonsApplyAutoUpdateToAll, useAddonsCustom, useAddonsForceRefresh, useAddonsGetAddonAutoUpdate, useAddonsGetAutoUpdateSettings, useAddonsGetLogs, useAddonsGetVersions, useAddonsInstallFromWorkspace, useAddonsInstallPackage, useAddonsIsWorkspaceAvailable, useAddonsList, useAddonsListPackages, useAddonsListUpdates, useAddonsListWorkspacePackages, useAddonsOnAddonLogs, useAddonsReloadPackages, useAddonsRestartAddon, useAddonsRestartServer, useAddonsRetryLoad, useAddonsRollbackPackage, useAddonsSearchAvailable, useAddonsSetAddonAutoUpdate, useAddonsSetAutoUpdateSettings, useAddonsUninstallPackage, useAddonsUpdatePackage, useAlertsDismiss, useAlertsEmit, useAlertsGetUnreadCount, useAlertsList, useAlertsMarkAllRead, useAlertsMarkRead, useAlertsUpdate, useAllWidgets, useAudioAnalysisApplyDeviceSettingsPatch, useAudioAnalysisGetDeviceLiveContribution, useAudioAnalysisGetDeviceSettingsContribution, useAudioAnalysisResolveDeviceSettings, useAudioAnalyzerAnalyseChunk, useAudioAnalyzerClassify, useAudioAnalyzerDispose, useAudioAnalyzerIsReady, useAudioAnalyzerReprobeAudioEngine, useAudioCodecCanHandle, useAudioCodecCloseSession, useAudioCodecCreateDecodeSession, useAudioCodecCreateEncodeSession, useAudioCodecFlushEncode, useAudioCodecListActiveSessions, useAudioCodecListSupportedCodecs, useAudioCodecPullEncoded, useAudioCodecPullPcm, useAudioCodecPushEncodedFrame, useAudioCodecPushPcm, useAudioMetricsGetCurrentSnapshot, useAudioMetricsGetHistory, useAuthenticationListProviders, useAuthenticationSetProviderEnabled, useBackupDelete, useBackupGetEntries, useBackupList, useBackupListArchives, useBackupListDestinations, useBackupListLocations, useBackupPreviewSchedule, useBackupRestore, useBackupTrigger, useBackupUpsertDestinationPolicy, useBatteryGetStatus, useBrightnessGetStatus, useBrightnessSetBrightness, useCameraStreamsGetBrokerStreams, useCameraStreamsGetCameraStreams, useCameraStreamsGetRtspEntries, useClusterNodes, useConfirm, useCustomFieldRenderer, useDebouncedString, useDecoderCreateSession, useDecoderDestroySession, useDecoderGetInfo, useDecoderGetStats, useDecoderListActiveSessions, useDecoderOpenStream, useDecoderPullFrames, useDecoderPushPacket, useDecoderReprobeHwaccel, useDecoderSupportsCodec, useDecoderUpdateConfig, useDetectionPipelineApplyDeviceSettingsPatch, useDetectionPipelineGetDeviceLiveContribution, useDetectionPipelineGetDeviceSettingsContribution, useDevShell, useDevice, useDeviceBattery, useDeviceCapability, useDeviceDetections, useDeviceDiscoveryAdoptDevice, useDeviceDiscoveryGetStatus, useDeviceDiscoveryListDiscovered, useDeviceDiscoveryRefreshDiscovery, useDeviceDiscoveryReleaseDevice, useDeviceId, useDeviceManagerAddLocation, useDeviceManagerAdoptDevice, useDeviceManagerAllocateDeviceId, useDeviceManagerCreateDevice, useDeviceManagerDisable, useDeviceManagerDiscoverDevices, useDeviceManagerEnable, useDeviceManagerGetAllBindings, useDeviceManagerGetBindings, useDeviceManagerGetChildren, useDeviceManagerGetConfigSchema, useDeviceManagerGetCreationSchema, useDeviceManagerGetDevice, useDeviceManagerGetDeviceAggregate, useDeviceManagerGetDeviceLiveInfoAggregate, useDeviceManagerGetDeviceSettingsAggregate, useDeviceManagerGetDeviceStatusAggregate, useDeviceManagerGetSettingsSchema, useDeviceManagerGetStreamProfileMap, useDeviceManagerGetStreamSources, useDeviceManagerListAll, useDeviceManagerListBindableCapsForDeviceType, useDeviceManagerListLocations, useDeviceManagerListPersistedByAddon, useDeviceManagerListWrappersForCap, useDeviceManagerLoadConfig, useDeviceManagerLoadMeta, useDeviceManagerLoadRuntimeState, useDeviceManagerPersistConfig, useDeviceManagerProbeStreams, useDeviceManagerRegisterDevice, useDeviceManagerRemove, useDeviceManagerRemoveDevice, useDeviceManagerRemoveLocation, useDeviceManagerSetDisabled, useDeviceManagerSetLocation, useDeviceManagerSetMetadata, useDeviceManagerSetName, useDeviceManagerSetStreamProfileMap, useDeviceManagerSetWrapperActive, useDeviceManagerTestCreationField, useDeviceManagerTestField, useDeviceManagerUpdateConfig, useDeviceManagerUpdateDeviceField, useDeviceManagerUpdateDeviceFieldsBatch, useDeviceOpsGetConfigEntries, useDeviceOpsGetSettingsSchema, useDeviceOpsGetStreamSources, useDeviceOpsRemoveDevice, useDeviceOpsSetConfig, useDeviceProviderAdoptDiscoveredDevice, useDeviceProviderCreateDevice, useDeviceProviderDiscoverDevices, useDeviceProviderGetChildCreationSchema, useDeviceProviderGetDevices, useDeviceProviderGetStatus, useDeviceProviderStart, useDeviceProviderStop, useDeviceProviderSupportsDiscovery, useDeviceProviderSupportsManualCreation, useDeviceProviderTestCreationField, useDeviceProxy, useDeviceSnapshot, useDeviceSnapshotImage, useDeviceState, useDeviceStateGetAllSnapshots, useDeviceStateGetCapSlice, useDeviceStateGetSnapshot, useDeviceStateSetCapSlice, useDeviceStateSlice, useDeviceWebrtc, useDevices, useDoorbellEvents, useDoorbellGetStatus, useEventInvalidation, useEventStreamLatest, useEventStreamMap, useEventsGetEventClipUrl, useEventsGetEventThumbnail, useEventsGetEvents, useIntegrationsCreate, useIntegrationsDelete, useIntegrationsGet, useIntegrationsGetAvailableTypes, useIntegrationsGetByAddonId, useIntegrationsGetSettings, useIntegrationsList, useIntegrationsSetSettings, useIntegrationsTestConnection, useIntegrationsUpdate, useIntercomGetStatus, useIntercomHandleAnswer, useIntercomStartSession, useIntercomStopSession, useIsMidWidth, useIsMobile, useLiveBuffer, useLiveEvent, useLocalNetworkGetAllowedAddresses, useLocalNetworkGetConnectionEndpoints, useLocalNetworkGetPreferred, useLocalNetworkList, useLocalNetworkResetAllowlistToBestMatch, useLocalNetworkSetAllowedAddresses, useMeshOrchestratorJoinProvider, useMeshOrchestratorLeaveProvider, useMeshOrchestratorListProviders, useMetricsProviderCollectSnapshot, useMetricsProviderGetAddonStats, useMetricsProviderGetCached, useMetricsProviderGetCpuTemperature, useMetricsProviderGetCurrent, useMetricsProviderGetDiskSpace, useMetricsProviderGetGpuInfo, useMetricsProviderGetProcessStats, useMetricsProviderKillProcess, useMetricsProviderListAddonInstances, useMetricsProviderListNodeProcesses, useMotionDetectionAnalyze, useMotionDetectionApplyDeviceSettingsPatch, useMotionDetectionGetDeviceLiveContribution, useMotionDetectionGetDeviceSettingsContribution, useMotionDetectionRemoveCamera, useMotionDetectionReset, useMotionGetStatus, useMotionIsDetected, useMotionTriggerGetStatus, useMotionTriggerSetMotionTrigger, useNativeObjectDetectionGetStatus, useNetworkQualityGetAllStats, useNetworkQualityGetDeviceStats, useNetworkQualityReportClientStats, useNodesClusterAddonStatus, useNodesDeployAddon, useNodesExecuteQuery, useNodesRenameNode, useNodesRestartAddon, useNodesRestartNode, useNodesRestartProcess, useNodesSetProcessLogLevel, useNodesShutdownNode, useNodesTopology, useNodesUndeployAddon, useNotificationOutputSend, useNotificationOutputSendTest, useOptionalSystem, useOptionalWidgetRegistry, useOsdGetStatus, useOsdSetOverlay, usePTZ, usePipelineAnalyticsApplyDeviceSettingsPatch, usePipelineAnalyticsClearTracks, usePipelineAnalyticsGetActiveTracks, usePipelineAnalyticsGetAudioEvents, usePipelineAnalyticsGetDeviceLiveContribution, usePipelineAnalyticsGetDeviceSettingsContribution, usePipelineAnalyticsGetEventMedia, usePipelineAnalyticsGetMotionEvents, usePipelineAnalyticsGetObjectEvents, usePipelineAnalyticsGetTrack, usePipelineAnalyticsGetTrackMedia, usePipelineAnalyticsListTracks, usePipelineExecutorCacheFrameInPool, usePipelineExecutorDeleteModel, usePipelineExecutorDeleteTemplate, usePipelineExecutorDetect, usePipelineExecutorDownloadModel, usePipelineExecutorGetAddonModels, usePipelineExecutorGetAudioCapabilities, usePipelineExecutorGetAvailableEngines, usePipelineExecutorGetCapabilities, usePipelineExecutorGetDefaultSteps, usePipelineExecutorGetDetectionConfigSchema, usePipelineExecutorGetEffectiveTuning, usePipelineExecutorGetGlobalPipelineConfig, usePipelineExecutorGetGlobalSteps, usePipelineExecutorGetOrchestratorConfigSchema, usePipelineExecutorGetReferenceAudio, usePipelineExecutorGetReferenceAudioFiles, usePipelineExecutorGetReferenceImage, usePipelineExecutorGetSchema, usePipelineExecutorGetSelectedEngine, usePipelineExecutorGetVideoPipelineSteps, usePipelineExecutorInferCached, usePipelineExecutorKillEngine, usePipelineExecutorListLoadedEngines, usePipelineExecutorListReferenceImages, usePipelineExecutorListTemplates, usePipelineExecutorReprobeEngine, usePipelineExecutorRunAudioTest, usePipelineExecutorRunPipeline, usePipelineExecutorRunPipelineBatch, usePipelineExecutorSaveTemplate, usePipelineExecutorSetVideoPipelineSteps, usePipelineExecutorSpinEngine, usePipelineExecutorUncacheFrame, usePipelineExecutorUpdateTemplate, usePipelineOrchestratorApplyDeviceSettingsPatch, usePipelineOrchestratorAssignAudio, usePipelineOrchestratorAssignDecoder, usePipelineOrchestratorAssignPipeline, usePipelineOrchestratorDeleteTemplate, usePipelineOrchestratorGetAgentLoad, usePipelineOrchestratorGetAgentSettings, usePipelineOrchestratorGetAudioAssignment, usePipelineOrchestratorGetAudioAssignments, usePipelineOrchestratorGetAudioNodeLoad, usePipelineOrchestratorGetCameraMetrics, usePipelineOrchestratorGetCameraSettings, usePipelineOrchestratorGetCameraStepOverrides, usePipelineOrchestratorGetCapabilityBindings, usePipelineOrchestratorGetDecoderAssignment, usePipelineOrchestratorGetDecoderAssignments, usePipelineOrchestratorGetDeviceLiveContribution, usePipelineOrchestratorGetDeviceSettingsContribution, usePipelineOrchestratorGetGlobalMetrics, usePipelineOrchestratorGetPipelineAssignment, usePipelineOrchestratorGetPipelineAssignments, usePipelineOrchestratorListAgentSettings, usePipelineOrchestratorListTemplates, usePipelineOrchestratorRebalance, usePipelineOrchestratorRemoveAgentSettings, usePipelineOrchestratorResolvePipeline, usePipelineOrchestratorSaveTemplate, usePipelineOrchestratorSetAgentAddonDefaults, usePipelineOrchestratorSetCameraPipelineForAgent, usePipelineOrchestratorSetCameraStepOverride, usePipelineOrchestratorSetCameraStepToggle, usePipelineOrchestratorSetCapabilityBinding, usePipelineOrchestratorUnassignAudio, usePipelineOrchestratorUnassignDecoder, usePipelineOrchestratorUnassignPipeline, usePipelineOrchestratorUpdateTemplate, usePipelineRunnerAttachCamera, usePipelineRunnerDetachCamera, usePipelineRunnerGetAllCameraMetrics, usePipelineRunnerGetCameraMetrics, usePipelineRunnerGetLocalCameras, usePipelineRunnerGetLocalLoad, usePipelineRunnerGetLocalMetrics, usePipelineRunnerReportMotion, usePlatformProbeGetCapabilities, usePlatformProbeGetHardware, usePlatformProbeResolveHwAccel, usePlatformProbeResolveInferenceConfig, usePlayerOverlayLayer, usePlayerOverlayLayers, usePlayerToolbarButton, usePlayerToolbarButtons, usePtzAutotrackGetSettings, usePtzAutotrackGetStatus, usePtzAutotrackSetEnabled, usePtzAutotrackSetSettings, usePtzContinuousMove, usePtzGetPosition, usePtzGetPresets, usePtzGetStatus, usePtzGoHome, usePtzGoToPreset, usePtzMove, usePtzStop, useRebootReboot, useRecordingEngineDisable, useRecordingEngineEnable, useRecordingEngineEstimateGlobalStorage, useRecordingEngineEstimateStorage, useRecordingEngineGetAvailability, useRecordingEngineGetConfig, useRecordingEngineGetMotionStats, useRecordingEngineGetPlaylist, useRecordingEngineGetPolicy, useRecordingEngineGetPolicyStatus, useRecordingEngineGetRetentionConfig, useRecordingEngineGetSegments, useRecordingEngineGetStatus, useRecordingEngineGetStorageUsage, useRecordingEngineGetThumbnail, useRecordingEngineSetPolicy, useRecordingEngineUpdateConfig, useRecordingEngineUpdateRetentionConfig, useRecordingGetPlaybackUrl, useRecordingGetSegments, useRecordingGetThumbnailAt, useRemoteAccessListProviders, useRemoteAccessStartProvider, useRemoteAccessStopProvider, useSettingsStoreCount, useSettingsStoreDeclareCollection, useSettingsStoreDelete, useSettingsStoreGet, useSettingsStoreInsert, useSettingsStoreIsEmpty, useSettingsStoreQuery, useSettingsStoreSet, useSettingsStoreUpdate, useSnapshotApplyDeviceSettingsPatch, useSnapshotGetDeviceLiveContribution, useSnapshotGetDeviceSettingsContribution, useSnapshotGetSnapshot, useSnapshotGetStatus, useSnapshotInvalidateCache, useSnapshotProviderGetSnapshot, useSnapshotProviderSupportsDevice, useStorageAbortUpload, useStorageBeginDownload, useStorageBeginUpload, useStorageDelete, useStorageDeleteLocation, useStorageEndDownload, useStorageExists, useStorageFinalizeUpload, useStorageGetAvailableSpace, useStorageGetDefaultLocation, useStorageList, useStorageListLocations, useStorageListProviders, useStorageRead, useStorageReadChunk, useStorageResolve, useStorageTestConfig, useStorageTestLocation, useStorageUpsertLocation, useStorageWrite, useStorageWriteChunk, useStreamBrokerApplyDeviceSettingsPatch, useStreamBrokerAssignProfile, useStreamBrokerGetAllRtspEntries, useStreamBrokerGetBroker, useStreamBrokerGetBrokerStats, useStreamBrokerGetDeviceLiveContribution, useStreamBrokerGetDeviceSettingsContribution, useStreamBrokerGetPreBufferInfo, useStreamBrokerGetRtspEntry, useStreamBrokerGetRtspPort, useStreamBrokerGetStreamUrl, useStreamBrokerIsRtspEnabled, useStreamBrokerKillClient, useStreamBrokerListAllCameraStreams, useStreamBrokerListAllProfileSlots, useStreamBrokerListClients, useStreamBrokerPublishCameraStream, useStreamBrokerRegenerateRtspToken, useStreamBrokerRestartProfile, useStreamBrokerRetractCameraStream, useStreamBrokerSetPreBufferDuration, useStreamBrokerSetRtspEnabled, useStreamBrokerUnassignProfile, useSwitchGetStatus, useSwitchSetState, useSystem, useSystemFeatureFlags, useSystemForceRetentionCleanup, useSystemGetRetentionConfig, useSystemHealth, useSystemInfo, useSystemMutation, useSystemNetworkAddresses, useSystemQuery, useSystemSetRetentionConfig, useThemeMode, useToastOnToast, useTurnOrchestratorGetAllServers, useTurnOrchestratorListProviders, useTurnOrchestratorSetProviderEnabled, useTurnProviderGetTurnServers, useUserManagementCreateApiKey, useUserManagementCreateScopedToken, useUserManagementCreateUser, useUserManagementDeleteUser, useUserManagementListApiKeys, useUserManagementListScopedTokens, useUserManagementListUsers, useUserManagementResetPassword, useUserManagementRevokeApiKey, useUserManagementRevokeScopedToken, useUserManagementSetUserScopes, useUserManagementUpdateUser, useUserManagementValidateApiKey, useUserManagementValidateCredentials, useUserManagementValidateScopedToken, useWebrtcSessionCloseSession, useWebrtcSessionCreateSession, useWebrtcSessionHandleAnswer, useWebrtcSessionHasAdaptiveBitrate, useWebrtcSessionListStreams, useWidget, useWidgetMetadata, useWidgetRegistry, useZoneAnalyticsGetCameraHistory, useZoneAnalyticsGetCurrentSnapshot, useZoneAnalyticsGetUnzonedHistory, useZoneAnalyticsGetZoneHistory, useZoneEditing, useZoneRulesListRules, useZoneRulesSetRules, useZonesAddZone, useZonesListZones, useZonesRemoveZone, useZonesUpdateZone, validateScopes };
24217
+ export { AddonGlobalSettingsForm, AgentStepEditor, AppShell, AudioClassificationList, AudioLevelWaveform, AudioWaveform, BTN_COMPACT, BTN_COMPACT_DANGER, BTN_COMPACT_PRIMARY, BTN_COMPACT_WARNING, Badge, BatteryBadge, BottomSheet, Breadcrumb, Button, CHIP_ACTIVE, CHIP_BASE, CHIP_INACTIVE, CLASS_COLORS, CameraStreamPlayer, Card, Checkbox, CodeBlock, CollapsibleCard, ConfigFormBuilder, FormField as ConfigFormField, ConfigSchemaField, ConfirmActionButton, ConfirmDialogProvider, CustomFieldRenderersProvider, DEFAULT_COLOR, DataTable, DetectionCanvas, DetectionOverlay, DetectionResultTree, DevShell, DeviceActivityPanel, DeviceCard, DeviceContextProvider, DeviceGrid, DeviceItem, DeviceList, Dialog, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, DialogTrigger, DiscoveryPanel, DoorbellRecentPanel, Dropdown, DropdownContent, DropdownItem, DropdownTrigger, EmptyState, EventStream, FilterBar, FloatingEventStream, FloatingLogStream, FloatingPanel, FormField$1 as FormField, GRID_GAP, GRID_PAIRED, GRID_QUICK_STATS, INPUT_COMPACT, IconButton, ImageSelector, InferenceConfigSelector, Input, KebabMenu, KeyValueList, LIST_ROW, Label, LogStream, LoginForm, MobileDrawer, NodeMultiSelectField, NodePicker, NodeSelectField, PHASE_CONFIG, PTZOverlay, PageHeader, PhaseIcon, PipelineBuilder, PipelineRuntimeSelector, PipelineStep, PipelineTreeMatrix, PlayerOverlaysProvider, Popover, PopoverContent, PopoverTrigger, ProviderBadge, ResponseLog, SECTION_BODY, SECTION_CARD, SECTION_HEADER, SPLIT_PANEL_OUTER, SPLIT_PANEL_SIDE, STACK_GAP, ScopePicker, ScrollArea, Select, SemanticBadge, Separator, Sidebar, SidebarItem, Skeleton, SlideOverPanel, SnapshotButton, StatCard, StateValuesStream, StatusBadge, StepTimings, StepTreeMaster, StreamBrokerSelector, StreamPanel, Switch, SystemProvider, TEXT_FIELD_LABEL, TEXT_HINT, TEXT_METRIC, TEXT_SECTION_LABEL, TEXT_VALUE, Tabs, TabsContent, TabsList, TabsTrigger, ThemeProvider, Tooltip, TooltipContent, TooltipTrigger, VersionBadge, WidgetRegistryProvider, WidgetSlot, ZoneEditingProvider, buildStepTreeFromSchema, cn, createSharedContext, createTheme, darkColors, defaultTheme, deriveDeviceKind, ensureMfHostInit, getClassColor, getPhaseVisual, isFieldVisible, lightColors, mirror, mountAddonPage, providerIcons, statusIcons, themeToCss, trpc, useAccessoriesGetStatus, useAddonPagesListPages, useAddonSettingsGetDeviceSettings, useAddonSettingsGetGlobalSettings, useAddonSettingsUpdateDeviceSettings, useAddonSettingsUpdateGlobalSettings, useAddonWidgetsListWidgets, useAddonsApplyAutoUpdateToAll, useAddonsCustom, useAddonsForceRefresh, useAddonsGetAddonAutoUpdate, useAddonsGetAutoUpdateSettings, useAddonsGetLogs, useAddonsGetVersions, useAddonsInstallFromWorkspace, useAddonsInstallPackage, useAddonsIsWorkspaceAvailable, useAddonsList, useAddonsListPackages, useAddonsListUpdates, useAddonsListWorkspacePackages, useAddonsOnAddonLogs, useAddonsReloadPackages, useAddonsRestartAddon, useAddonsRestartServer, useAddonsRetryLoad, useAddonsRollbackPackage, useAddonsSearchAvailable, useAddonsSetAddonAutoUpdate, useAddonsSetAutoUpdateSettings, useAddonsUninstallPackage, useAddonsUpdatePackage, useAlertsDismiss, useAlertsEmit, useAlertsGetUnreadCount, useAlertsList, useAlertsMarkAllRead, useAlertsMarkRead, useAlertsUpdate, useAllWidgets, useAudioAnalysisApplyDeviceSettingsPatch, useAudioAnalysisGetDeviceLiveContribution, useAudioAnalysisGetDeviceSettingsContribution, useAudioAnalysisResolveDeviceSettings, useAudioAnalyzerAnalyseChunk, useAudioAnalyzerClassify, useAudioAnalyzerDispose, useAudioAnalyzerIsReady, useAudioAnalyzerReprobeAudioEngine, useAudioCodecCanHandle, useAudioCodecCloseSession, useAudioCodecCreateDecodeSession, useAudioCodecCreateEncodeSession, useAudioCodecFlushEncode, useAudioCodecListActiveSessions, useAudioCodecListSupportedCodecs, useAudioCodecPullEncoded, useAudioCodecPullPcm, useAudioCodecPushEncodedFrame, useAudioCodecPushPcm, useAudioMetricsGetCurrentSnapshot, useAudioMetricsGetHistory, useAuthenticationListProviders, useAuthenticationSetProviderEnabled, useBackupDelete, useBackupGetEntries, useBackupList, useBackupListArchives, useBackupListDestinations, useBackupListLocations, useBackupPreviewSchedule, useBackupRestore, useBackupTrigger, useBackupUpsertDestinationPolicy, useBatteryGetStatus, useBrightnessGetStatus, useBrightnessSetBrightness, useCameraCredentialsGetCredentials, useCameraCredentialsGetStatus, useCameraStreamsGetBrokerStreams, useCameraStreamsGetCameraStreams, useCameraStreamsGetRtspEntries, useClusterNodes, useConfirm, useCustomFieldRenderer, useDebouncedString, useDecoderCreateSession, useDecoderDestroySession, useDecoderGetInfo, useDecoderGetStats, useDecoderListActiveSessions, useDecoderOpenStream, useDecoderPullFrames, useDecoderPushPacket, useDecoderReprobeHwaccel, useDecoderSupportsCodec, useDecoderUpdateConfig, useDetectionPipelineApplyDeviceSettingsPatch, useDetectionPipelineGetDeviceLiveContribution, useDetectionPipelineGetDeviceSettingsContribution, useDevShell, useDevice, useDeviceBattery, useDeviceCapability, useDeviceDetections, useDeviceDiscoveryAdoptDevice, useDeviceDiscoveryGetStatus, useDeviceDiscoveryListDiscovered, useDeviceDiscoveryRefreshDiscovery, useDeviceDiscoveryReleaseDevice, useDeviceExportApplyDeviceSettingsPatch, useDeviceExportExposeDevice, useDeviceExportGetDeviceLiveContribution, useDeviceExportGetDeviceSettingsContribution, useDeviceExportGetStatus, useDeviceExportListExposedDevices, useDeviceExportListSupportedDeviceKinds, useDeviceExportUnexposeDevice, useDeviceId, useDeviceManagerAddLocation, useDeviceManagerAdoptDevice, useDeviceManagerAllocateDeviceId, useDeviceManagerCreateDevice, useDeviceManagerDisable, useDeviceManagerDiscoverDevices, useDeviceManagerEnable, useDeviceManagerGetAllBindings, useDeviceManagerGetBindings, useDeviceManagerGetChildren, useDeviceManagerGetConfigSchema, useDeviceManagerGetCreationSchema, useDeviceManagerGetDevice, useDeviceManagerGetDeviceAggregate, useDeviceManagerGetDeviceLiveInfoAggregate, useDeviceManagerGetDeviceSettingsAggregate, useDeviceManagerGetDeviceStatusAggregate, useDeviceManagerGetSettingsSchema, useDeviceManagerGetStreamProfileMap, useDeviceManagerGetStreamSources, useDeviceManagerListAll, useDeviceManagerListBindableCapsForDeviceType, useDeviceManagerListLocations, useDeviceManagerListPersistedByAddon, useDeviceManagerListWrappersForCap, useDeviceManagerLoadConfig, useDeviceManagerLoadMeta, useDeviceManagerLoadRuntimeState, useDeviceManagerPersistConfig, useDeviceManagerProbeStreams, useDeviceManagerRegisterDevice, useDeviceManagerRemove, useDeviceManagerRemoveDevice, useDeviceManagerRemoveLocation, useDeviceManagerSetDisabled, useDeviceManagerSetLocation, useDeviceManagerSetMetadata, useDeviceManagerSetName, useDeviceManagerSetStreamProfileMap, useDeviceManagerSetWrapperActive, useDeviceManagerTestCreationField, useDeviceManagerTestField, useDeviceManagerUpdateConfig, useDeviceManagerUpdateDeviceField, useDeviceManagerUpdateDeviceFieldsBatch, useDeviceOpsGetConfigEntries, useDeviceOpsGetSettingsSchema, useDeviceOpsGetStreamSources, useDeviceOpsRemoveDevice, useDeviceOpsSetConfig, useDeviceProviderAdoptDiscoveredDevice, useDeviceProviderCreateDevice, useDeviceProviderDiscoverDevices, useDeviceProviderGetChildCreationSchema, useDeviceProviderGetDevices, useDeviceProviderGetStatus, useDeviceProviderStart, useDeviceProviderStop, useDeviceProviderSupportsDiscovery, useDeviceProviderSupportsManualCreation, useDeviceProviderTestCreationField, useDeviceProxy, useDeviceSnapshot, useDeviceSnapshotImage, useDeviceState, useDeviceStateGetAllSnapshots, useDeviceStateGetCapSlice, useDeviceStateGetSnapshot, useDeviceStateSetCapSlice, useDeviceStateSlice, useDeviceStatusGetStatus, useDeviceWebrtc, useDevices, useDoorbellEvents, useDoorbellGetStatus, useEventInvalidation, useEventStreamLatest, useEventStreamMap, useEventsGetEventClipUrl, useEventsGetEventThumbnail, useEventsGetEvents, useFeatureProbeGetStatus, useIntegrationsCreate, useIntegrationsDelete, useIntegrationsGet, useIntegrationsGetAvailableTypes, useIntegrationsGetByAddonId, useIntegrationsGetSettings, useIntegrationsList, useIntegrationsSetSettings, useIntegrationsTestConnection, useIntegrationsUpdate, useIntercomEndTalkSession, useIntercomGetStatus, useIntercomHandleAnswer, useIntercomPushTalkPcm, useIntercomStartSession, useIntercomStartTalkSession, useIntercomStopSession, useIsMidWidth, useIsMobile, useLiveBuffer, useLiveEvent, useLocalNetworkGetAllowedAddresses, useLocalNetworkGetConnectionEndpoints, useLocalNetworkGetPreferred, useLocalNetworkList, useLocalNetworkResetAllowlistToBestMatch, useLocalNetworkSetAllowedAddresses, useMeshNetworkGetStatus, useMeshNetworkJoin, useMeshNetworkLeave, useMeshNetworkListPeers, useMeshNetworkStartLogin, useMeshNetworkTestConnection, useMeshOrchestratorJoinProvider, useMeshOrchestratorLeaveProvider, useMeshOrchestratorListProviders, useMetricsProviderCollectSnapshot, useMetricsProviderGetAddonStats, useMetricsProviderGetCached, useMetricsProviderGetCpuTemperature, useMetricsProviderGetCurrent, useMetricsProviderGetDiskSpace, useMetricsProviderGetGpuInfo, useMetricsProviderGetProcessStats, useMetricsProviderKillProcess, useMetricsProviderListAddonInstances, useMetricsProviderListNodeProcesses, useMotionDetectionAnalyze, useMotionDetectionApplyDeviceSettingsPatch, useMotionDetectionGetDeviceLiveContribution, useMotionDetectionGetDeviceSettingsContribution, useMotionDetectionRemoveCamera, useMotionDetectionReset, useMotionGetStatus, useMotionIsDetected, useMotionTriggerGetStatus, useMotionTriggerSetMotionTrigger, useMqttBrokerAddBroker, useMqttBrokerGetBrokerConfig, useMqttBrokerGetStatus, useMqttBrokerListBrokers, useMqttBrokerRemoveBroker, useMqttBrokerStartEmbeddedBroker, useMqttBrokerStopEmbeddedBroker, useMqttBrokerTestConnection, useNativeObjectDetectionGetStatus, useNetworkQualityGetAllStats, useNetworkQualityGetDeviceStats, useNetworkQualityReportClientStats, useNodesClusterAddonStatus, useNodesDeployAddon, useNodesExecuteQuery, useNodesRenameNode, useNodesRestartAddon, useNodesRestartNode, useNodesRestartProcess, useNodesSetProcessLogLevel, useNodesShutdownNode, useNodesTopology, useNodesUndeployAddon, useNotificationOutputSend, useNotificationOutputSendTest, useOptionalSystem, useOptionalWidgetRegistry, useOsdGetStatus, useOsdSetOverlay, usePTZ, usePipelineAnalyticsApplyDeviceSettingsPatch, usePipelineAnalyticsClearTracks, usePipelineAnalyticsGetActiveTracks, usePipelineAnalyticsGetAudioEvents, usePipelineAnalyticsGetDeviceLiveContribution, usePipelineAnalyticsGetDeviceSettingsContribution, usePipelineAnalyticsGetEventMedia, usePipelineAnalyticsGetMotionEvents, usePipelineAnalyticsGetObjectEvents, usePipelineAnalyticsGetTrack, usePipelineAnalyticsGetTrackMedia, usePipelineAnalyticsListTracks, usePipelineExecutorCacheFrameInPool, usePipelineExecutorDeleteModel, usePipelineExecutorDeleteTemplate, usePipelineExecutorDetect, usePipelineExecutorDownloadModel, usePipelineExecutorGetAddonModels, usePipelineExecutorGetAudioCapabilities, usePipelineExecutorGetAvailableEngines, usePipelineExecutorGetCapabilities, usePipelineExecutorGetDefaultSteps, usePipelineExecutorGetDetectionConfigSchema, usePipelineExecutorGetEffectiveTuning, usePipelineExecutorGetGlobalPipelineConfig, usePipelineExecutorGetGlobalSteps, usePipelineExecutorGetOrchestratorConfigSchema, usePipelineExecutorGetReferenceAudio, usePipelineExecutorGetReferenceAudioFiles, usePipelineExecutorGetReferenceImage, usePipelineExecutorGetSchema, usePipelineExecutorGetSelectedEngine, usePipelineExecutorGetVideoPipelineSteps, usePipelineExecutorInferCached, usePipelineExecutorKillEngine, usePipelineExecutorListLoadedEngines, usePipelineExecutorListReferenceImages, usePipelineExecutorListTemplates, usePipelineExecutorReprobeEngine, usePipelineExecutorRunAudioTest, usePipelineExecutorRunPipeline, usePipelineExecutorRunPipelineBatch, usePipelineExecutorSaveTemplate, usePipelineExecutorSetVideoPipelineSteps, usePipelineExecutorSpinEngine, usePipelineExecutorUncacheFrame, usePipelineExecutorUpdateTemplate, usePipelineOrchestratorApplyDeviceSettingsPatch, usePipelineOrchestratorAssignAudio, usePipelineOrchestratorAssignDecoder, usePipelineOrchestratorAssignPipeline, usePipelineOrchestratorDeleteTemplate, usePipelineOrchestratorGetAgentLoad, usePipelineOrchestratorGetAgentSettings, usePipelineOrchestratorGetAudioAssignment, usePipelineOrchestratorGetAudioAssignments, usePipelineOrchestratorGetAudioNodeLoad, usePipelineOrchestratorGetCameraMetrics, usePipelineOrchestratorGetCameraSettings, usePipelineOrchestratorGetCameraStepOverrides, usePipelineOrchestratorGetCapabilityBindings, usePipelineOrchestratorGetDecoderAssignment, usePipelineOrchestratorGetDecoderAssignments, usePipelineOrchestratorGetDeviceLiveContribution, usePipelineOrchestratorGetDeviceSettingsContribution, usePipelineOrchestratorGetGlobalMetrics, usePipelineOrchestratorGetPipelineAssignment, usePipelineOrchestratorGetPipelineAssignments, usePipelineOrchestratorListAgentSettings, usePipelineOrchestratorListTemplates, usePipelineOrchestratorRebalance, usePipelineOrchestratorRemoveAgentSettings, usePipelineOrchestratorResolvePipeline, usePipelineOrchestratorSaveTemplate, usePipelineOrchestratorSetAgentAddonDefaults, usePipelineOrchestratorSetCameraPipelineForAgent, usePipelineOrchestratorSetCameraStepOverride, usePipelineOrchestratorSetCameraStepToggle, usePipelineOrchestratorSetCapabilityBinding, usePipelineOrchestratorUnassignAudio, usePipelineOrchestratorUnassignDecoder, usePipelineOrchestratorUnassignPipeline, usePipelineOrchestratorUpdateTemplate, usePipelineRunnerAttachCamera, usePipelineRunnerDetachCamera, usePipelineRunnerGetAllCameraMetrics, usePipelineRunnerGetCameraMetrics, usePipelineRunnerGetLocalCameras, usePipelineRunnerGetLocalLoad, usePipelineRunnerGetLocalMetrics, usePipelineRunnerReportMotion, usePlatformProbeGetCapabilities, usePlatformProbeGetHardware, usePlatformProbeGetHardwareEncoders, usePlatformProbeRefreshHardwareEncoders, usePlatformProbeResolveHwAccel, usePlatformProbeResolveInferenceConfig, usePlayerOverlayLayer, usePlayerOverlayLayers, usePlayerToolbarButton, usePlayerToolbarButtons, usePtzAutotrackGetSettings, usePtzAutotrackGetStatus, usePtzAutotrackSetEnabled, usePtzAutotrackSetSettings, usePtzContinuousMove, usePtzGetPosition, usePtzGetPresets, usePtzGetStatus, usePtzGoHome, usePtzGoToPreset, usePtzMove, usePtzStop, useRebootReboot, useRecordingEngineDisable, useRecordingEngineEnable, useRecordingEngineEstimateGlobalStorage, useRecordingEngineEstimateStorage, useRecordingEngineGetAvailability, useRecordingEngineGetConfig, useRecordingEngineGetMotionStats, useRecordingEngineGetPlaylist, useRecordingEngineGetPolicy, useRecordingEngineGetPolicyStatus, useRecordingEngineGetRetentionConfig, useRecordingEngineGetSegments, useRecordingEngineGetStatus, useRecordingEngineGetStorageUsage, useRecordingEngineGetThumbnail, useRecordingEngineSetPolicy, useRecordingEngineUpdateConfig, useRecordingEngineUpdateRetentionConfig, useRecordingGetPlaybackUrl, useRecordingGetSegments, useRecordingGetThumbnailAt, useRemoteAccessListProviders, useRemoteAccessStartProvider, useRemoteAccessStopProvider, useSettingsStoreCount, useSettingsStoreDeclareCollection, useSettingsStoreDelete, useSettingsStoreGet, useSettingsStoreInsert, useSettingsStoreIsEmpty, useSettingsStoreQuery, useSettingsStoreSet, useSettingsStoreUpdate, useSnapshotApplyDeviceSettingsPatch, useSnapshotGetDeviceLiveContribution, useSnapshotGetDeviceSettingsContribution, useSnapshotGetSnapshot, useSnapshotGetStatus, useSnapshotInvalidateCache, useSnapshotProviderGetSnapshot, useSnapshotProviderSupportsDevice, useStorageAbortUpload, useStorageBeginDownload, useStorageBeginUpload, useStorageDelete, useStorageDeleteLocation, useStorageEndDownload, useStorageExists, useStorageFinalizeUpload, useStorageGetAvailableSpace, useStorageGetDefaultLocation, useStorageList, useStorageListLocations, useStorageListProviders, useStorageRead, useStorageReadChunk, useStorageResolve, useStorageTestConfig, useStorageTestLocation, useStorageUpsertLocation, useStorageWrite, useStorageWriteChunk, useStreamBrokerApplyDeviceSettingsPatch, useStreamBrokerAssignProfile, useStreamBrokerGetAllRtspEntries, useStreamBrokerGetBroker, useStreamBrokerGetBrokerStats, useStreamBrokerGetDeviceLiveContribution, useStreamBrokerGetDeviceSettingsContribution, useStreamBrokerGetPreBufferInfo, useStreamBrokerGetRtspEntry, useStreamBrokerGetRtspPort, useStreamBrokerGetStreamUrl, useStreamBrokerGetStreamWithCodec, useStreamBrokerIsRtspEnabled, useStreamBrokerKillClient, useStreamBrokerListAllCameraStreams, useStreamBrokerListAllProfileSlots, useStreamBrokerListClients, useStreamBrokerPublishCameraStream, useStreamBrokerRegenerateRtspToken, useStreamBrokerReleaseStreamWithCodec, useStreamBrokerRestartProfile, useStreamBrokerRetractCameraStream, useStreamBrokerSetPreBufferDuration, useStreamBrokerSetRtspEnabled, useStreamBrokerUnassignProfile, useSwitchGetStatus, useSwitchSetState, useSystem, useSystemFeatureFlags, useSystemForceRetentionCleanup, useSystemGetRetentionConfig, useSystemHealth, useSystemInfo, useSystemMutation, useSystemNetworkAddresses, useSystemQuery, useSystemSetRetentionConfig, useThemeMode, useToastOnToast, useTurnOrchestratorGetAllServers, useTurnOrchestratorListProviders, useTurnOrchestratorSetProviderEnabled, useTurnProviderGetTurnServers, useUserManagementConfirmTotp, useUserManagementCreateApiKey, useUserManagementCreateScopedToken, useUserManagementCreateUser, useUserManagementDeleteUser, useUserManagementDisableTotp, useUserManagementGetTotpStatus, useUserManagementListApiKeys, useUserManagementListScopedTokens, useUserManagementListUsers, useUserManagementResetPassword, useUserManagementRevokeApiKey, useUserManagementRevokeScopedToken, useUserManagementSetUserScopes, useUserManagementSetupTotp, useUserManagementUpdateUser, useUserManagementValidateApiKey, useUserManagementValidateCredentials, useUserManagementValidateScopedToken, useUserManagementVerifyTotp, useWebrtcSessionCloseSession, useWebrtcSessionCreateSession, useWebrtcSessionHandleAnswer, useWebrtcSessionHandleOffer, useWebrtcSessionHasAdaptiveBitrate, useWebrtcSessionListStreams, useWidget, useWidgetMetadata, useWidgetRegistry, useZoneAnalyticsGetCameraHistory, useZoneAnalyticsGetCurrentSnapshot, useZoneAnalyticsGetUnzonedHistory, useZoneAnalyticsGetZoneHistory, useZoneEditing, useZoneRulesListRules, useZoneRulesSetRules, useZonesAddZone, useZonesListZones, useZonesRemoveZone, useZonesUpdateZone, validateScopes };
23908
24218
 
23909
24219
  //# sourceMappingURL=index.js.map