@camstack/addon-model-studio 1.1.326 → 1.1.327

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.
Files changed (20) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/dist/{MotionZonesSettings-oMmkwRPD.mjs → MotionZonesSettings-3MG9zvaA.mjs} +2 -2
  3. package/dist/{PrivacyMaskSettings-DHuD6yBb.mjs → PrivacyMaskSettings-BA58yuWC.mjs} +4 -4
  4. package/dist/{SceneMonitorEditor-CVG3p4fk.mjs → SceneMonitorEditor-BEf_PNcV.mjs} +3 -3
  5. package/dist/_stub.js +238 -199
  6. package/dist/{_virtual_mf-localSharedImportMap___mfe_internal__addon_model_studio_page-C8W7iGsN.mjs → _virtual_mf-localSharedImportMap___mfe_internal__addon_model_studio_page-BP5KTsDn.mjs} +3 -3
  7. package/dist/_virtual_mf___mfe_internal__addon_model_studio_page__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-Bfyumm6x.mjs +26 -0
  8. package/dist/addon-model-studio.css +1 -1
  9. package/dist/{hostInit-tkqlW3Ri.mjs → hostInit-DZPtjh_2.mjs} +2 -2
  10. package/dist/model-studio.addon.js +901 -115
  11. package/dist/model-studio.addon.mjs +901 -115
  12. package/dist/{player-overlays-DLAI6Bot.mjs → player-overlays-BzTF5DiJ.mjs} +1 -1
  13. package/dist/remoteEntry.js +1 -1
  14. package/dist/{responsive-C-jr4jBc.mjs → responsive-BmfFp5be.mjs} +1 -1
  15. package/dist/{scene-monitor-copy-DQx7y4Y7.mjs → scene-monitor-copy-BQA2BQQq.mjs} +1 -1
  16. package/dist/{square-Bt9f6ijX.mjs → square-MPgKEZFC.mjs} +1 -1
  17. package/dist/{trash-2-u3B-GxOc.mjs → trash-2-C3CU6OqE.mjs} +1 -1
  18. package/dist/{virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_model_studio_page__remoteEntry_js-T6H-vsb9.mjs → virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_model_studio_page__remoteEntry_js-DXGb6Oaj.mjs} +1 -1
  19. package/package.json +1 -1
  20. package/dist/_virtual_mf___mfe_internal__addon_model_studio_page__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-YuArysha.mjs +0 -26
package/dist/_stub.js CHANGED
@@ -1,14 +1,14 @@
1
1
  import "./virtualExposes-CWSi4E_g.mjs";
2
- import "./virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_model_studio_page__remoteEntry_js-T6H-vsb9.mjs";
2
+ import "./virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_model_studio_page__remoteEntry_js-DXGb6Oaj.mjs";
3
3
  import { S as e, _ as t, a as n, b as r, d as i, f as a, g as o, h as s, i as c, l, m as u, n as d, p as f, r as p, t as m, u as h, v as g, y as _ } from "./_virtual_mf___mfe_internal__addon_model_studio_page__loadShare__react__loadShare__.js-DMBKVIH7.mjs";
4
4
  import { n as v, r as y, t as b } from "./_virtual_mf___mfe_internal__addon_model_studio_page__loadShare__react_mf_1_jsx_mf_2_runtime__loadShare__.js-ds_Ehzaa.mjs";
5
5
  import { n as x, r as S, t as C } from "./ui-text-BqZa5BNK.mjs";
6
- import { $ as w, A as T, B as E, C as D, D as ee, E as te, F as O, G as ne, H as k, I as re, J as ie, K as ae, L as A, M as oe, N as se, O as ce, P as le, Q as j, R as ue, T as de, U as fe, V as pe, W as me, X as he, Y as ge, Z as _e, _ as ve, a as ye, at as be, b as xe, c as Se, ct as Ce, d as we, dt as M, et as Te, f as Ee, g as De, h as Oe, i as ke, it as Ae, j as je, k as Me, l as Ne, lt as N, m as Pe, n as Fe, nt as Ie, o as Le, ot as Re, p as ze, q as Be, r as Ve, rt as He, s as Ue, st as We, t as Ge, tt as Ke, u as qe, ut as P, v as Je, w as Ye, x as Xe, y as Ze, z as Qe } from "./_virtual_mf___mfe_internal__addon_model_studio_page__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-YuArysha.mjs";
7
- import { _ as F, a as $e, c as et, f as tt, g as nt, h as rt, i as it, l as at, m as ot, o as st, p as ct, r as lt, s as ut, t as dt, u as ft } from "./responsive-C-jr4jBc.mjs";
8
- import { d as pt, f as mt, l as ht, u as gt } from "./scene-monitor-copy-DQx7y4Y7.mjs";
9
- import { i as _t, r as vt } from "./player-overlays-DLAI6Bot.mjs";
10
- import { r as yt, t as bt } from "./square-Bt9f6ijX.mjs";
11
- import { t as xt } from "./trash-2-u3B-GxOc.mjs";
6
+ import { $ as w, A as T, B as E, C as D, D as ee, E as te, F as O, G as ne, H as k, I as re, J as ie, K as ae, L as A, M as oe, N as se, O as ce, P as le, Q as j, R as ue, T as de, U as fe, V as pe, W as me, X as he, Y as ge, Z as _e, _ as ve, a as ye, at as be, b as xe, c as Se, ct as Ce, d as we, dt as M, et as Te, f as Ee, g as De, h as Oe, i as ke, it as Ae, j as je, k as Me, l as Ne, lt as N, m as Pe, n as Fe, nt as Ie, o as Le, ot as Re, p as ze, q as Be, r as Ve, rt as He, s as Ue, st as We, t as Ge, tt as Ke, u as qe, ut as P, v as Je, w as Ye, x as Xe, y as Ze, z as Qe } from "./_virtual_mf___mfe_internal__addon_model_studio_page__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-Bfyumm6x.mjs";
7
+ import { _ as F, a as $e, c as et, f as tt, g as nt, h as rt, i as it, l as at, m as ot, o as st, p as ct, r as lt, s as ut, t as dt, u as ft } from "./responsive-BmfFp5be.mjs";
8
+ import { d as pt, f as mt, l as ht, u as gt } from "./scene-monitor-copy-BQA2BQQq.mjs";
9
+ import { i as _t, r as vt } from "./player-overlays-BzTF5DiJ.mjs";
10
+ import { r as yt, t as bt } from "./square-MPgKEZFC.mjs";
11
+ import { t as xt } from "./trash-2-C3CU6OqE.mjs";
12
12
  import { t as St } from "./_virtual_mf___mfe_internal__addon_model_studio_page__loadShare___mf_0_trpc_mf_1_react_mf_2_query__loadShare__.js-BvzT760A.mjs";
13
13
  import "./_virtual_mf___mfe_internal__addon_model_studio_page__loadShare__react_mf_2_dom__loadShare__.js-C8Ar0nzL.mjs";
14
14
  import "./_virtual_mf___mfe_internal__addon_model_studio_page__loadShare___mf_0_tanstack_mf_1_react_mf_2_query__loadShare__.js-B-9Pn2K0.mjs";
@@ -2489,11 +2489,11 @@ function oi(e, t) {
2489
2489
  //#region ../ui-library/src/hooks/use-cluster-nodes.ts
2490
2490
  e();
2491
2491
  function si() {
2492
- let { data: e, isLoading: t, isError: n } = I.nodes.topology.useQuery(void 0, { staleTime: Infinity });
2492
+ let { data: e, dataUpdatedAt: t, isLoading: n, isError: r } = I.nodes.topology.useQuery(void 0, { staleTime: Infinity }), i = oi("cluster.topology-snapshot"), a = o(() => i === null ? 0 : Date.now(), [i]);
2493
2493
  return {
2494
- nodes: oi("cluster.topology-snapshot")?.nodes ?? e,
2495
- isLoading: t,
2496
- isError: n
2494
+ nodes: i !== null && !(e !== void 0 && t > a) ? i.nodes : e,
2495
+ isLoading: n,
2496
+ isError: r
2497
2497
  };
2498
2498
  }
2499
2499
  function ci() {
@@ -5040,13 +5040,13 @@ var mo = c(({ className: e, options: t, disabled: n, ...r }, i) => /* @__PURE__
5040
5040
  children: /* @__PURE__ */ v(_t, { className: "h-3.5 w-3.5" })
5041
5041
  })]
5042
5042
  }));
5043
- mo.displayName = "Select", e(), nt("camstack:secret-reveal", null), I.accessories.setChildHidden.useMutation, I.accessories.getStatus.useQuery, I.actions.list.useQuery, I.actions.get.useQuery, I.actions.run.useMutation, I.actions.stop.useMutation, I.actions.getTraces.useQuery, I.actions.create.useMutation, I.actions.update.useMutation, I.actions.delete.useMutation, I.actions.listForCamera.useQuery, I.actions.getLinks.useQuery, I.actions.setLinks.useMutation, I.actionSource.listActions.useQuery, I.actionSource.runAction.useMutation, I.actionSource.stopAction.useMutation, I.addonPages.listPages.useQuery, I.addons.list.useQuery, I.addons.getLogs.useQuery, I.addons.listPackages.useQuery, I.addons.installPackage.useMutation, I.addons.installFromWorkspace.useMutation, I.addons.isWorkspaceAvailable.useQuery, I.addons.listWorkspacePackages.useQuery, I.addons.uninstallPackage.useMutation, I.addons.listInstallations.useQuery, I.addons.reloadPackages.useMutation, I.addons.searchAvailable.useQuery, I.addons.listUpdates.useQuery, I.addons.updatePackage.useMutation, I.addons.rollbackPackage.useMutation, I.addons.forceRefresh.useMutation, I.addons.restartServer.useMutation, I.addons.getLastRestart.useQuery, I.addons.listFrameworkPackages.useQuery, I.addons.listCapabilityProviders.useQuery, I.addons.setCapabilityProviderEnabled.useMutation, I.addons.getVersions.useQuery, I.addons.getPackageDocs.useQuery, I.addons.restartAddon.useMutation, I.addons.retryLoad.useMutation, I.addons.getAutoUpdateSettings.useQuery, I.addons.setAutoUpdateSettings.useMutation, I.addons.getAddonAutoUpdate.useQuery, I.addons.setAddonAutoUpdate.useMutation, I.addons.applyAutoUpdateToAll.useMutation, I.addons.custom.useMutation, I.addons.startJob.useMutation, I.addons.getJob.useQuery, I.addons.listJobs.useQuery, I.addons.cancelJob.useMutation, I.addons.onAddonLogs.useSubscription, I.addonSettings.getGlobalSettings.useQuery, I.addonSettings.updateGlobalSettings.useMutation, I.addonSettings.getIntegrationSettings.useQuery, I.addonSettings.getDeviceSettings.useQuery, I.addonSettings.updateDeviceSettings.useMutation, I.addonWidgets.listWidgets.useQuery, I.airQualitySensor.getStatus.useQuery, I.alarmPanel.arm.useMutation, I.alarmPanel.disarm.useMutation, I.alarmPanel.trigger.useMutation, I.alarmPanel.getStatus.useQuery, I.alerts.emit.useMutation, I.alerts.update.useMutation, I.alerts.list.useQuery, I.alerts.getUnreadCount.useQuery, I.alerts.markRead.useMutation, I.alerts.markAllRead.useMutation, I.alerts.dismiss.useMutation, I.ambientLightSensor.getStatus.useQuery, I.audioAnalysis.resolveDeviceSettings.useQuery, I.audioAnalysis.getDeviceSettingsContribution.useQuery, I.audioAnalysis.getDeviceLiveContribution.useQuery, I.audioAnalysis.applyDeviceSettingsPatch.useMutation, I.audioAnalyzer.analyseChunk.useMutation, I.audioAnalyzer.classify.useQuery, I.audioAnalyzer.attachDevice.useMutation, I.audioAnalyzer.detachDevice.useMutation, I.audioAnalyzer.isReady.useQuery, I.audioAnalyzer.dispose.useMutation, I.audioAnalyzer.reprobeAudioEngine.useMutation, I.audioCodec.listSupportedCodecs.useQuery, I.audioCodec.canHandle.useQuery, I.audioCodec.createDecodeSession.useMutation, I.audioCodec.createEncodeSession.useMutation, I.audioCodec.closeSession.useMutation, I.audioCodec.pushEncodedFrame.useMutation, I.audioCodec.pullPcm.useQuery, I.audioCodec.pushPcm.useMutation, I.audioCodec.pullEncoded.useQuery, I.audioCodec.flushEncode.useMutation, I.audioCodec.listActiveSessions.useQuery, I.audioMetrics.getCurrentSnapshot.useQuery, I.audioMetrics.getHistory.useQuery, I.automationControl.enable.useMutation, I.automationControl.disable.useMutation, I.automationControl.trigger.useMutation, I.automationControl.getStatus.useQuery, I.backup.listDestinations.useQuery, I.backup.trigger.useMutation, I.backup.listRuns.useQuery, I.backup.cancel.useMutation, I.backup.list.useQuery, I.backup.listLocations.useQuery, I.backup.getEntries.useQuery, I.backup.restore.useMutation, I.backup.getEncryption.useQuery, I.backup.setupEncryption.useMutation, I.backup.disableEncryption.useMutation, I.backup.checkBackupKey.useMutation, I.backup.delete.useMutation, I.backup.listArchives.useQuery, I.backup.upsertDestinationPolicy.useMutation, I.backup.previewSchedule.useQuery, I.backup.listSchedules.useQuery, I.backup.listAvailableDatabases.useQuery, I.backup.upsertSchedule.useMutation, I.backup.deleteSchedule.useMutation, I.battery.wakeForStream.useMutation, I.battery.getStatus.useQuery, I.binary.getStatus.useQuery, I.brightness.setBrightness.useMutation, I.brightness.getStatus.useQuery, I.broker.list.useQuery, I.broker.get.useQuery, I.broker.listProviders.useQuery, I.broker.add.useMutation, I.broker.remove.useMutation, I.broker.testConnection.useMutation, I.broker.getSettings.useQuery, I.broker.setSettings.useMutation, I.broker.getBrokerConfig.useQuery, I.broker.getSettingsSchema.useQuery, I.broker.testSettings.useMutation, I.broker.publish.useMutation, I.broker.subscribe.useMutation, I.broker.unsubscribe.useMutation, I.broker.getState.useQuery, I.broker.getStatus.useQuery, I.button.press.useMutation, I.calendars.listCalendars.useQuery, I.calendars.listEvents.useQuery, I.calendars.getPreferences.useQuery, I.calendars.setCalendarPreference.useMutation, I.cameraCredentials.getCredentials.useQuery, I.cameraCredentials.getStatus.useQuery, I.cameraGridLayout.getLayout.useQuery, I.cameraGridLayout.saveLayout.useMutation, I.cameraGridLayout.getDeviceSettingsContribution.useQuery, I.cameraGridLayout.getDeviceLiveContribution.useQuery, I.cameraGridLayout.applyDeviceSettingsPatch.useMutation, I.cameraPipelineConfig.getDeviceSettingsContribution.useQuery, I.cameraPipelineConfig.getDeviceLiveContribution.useQuery, I.cameraPipelineConfig.applyDeviceSettingsPatch.useMutation, I.cameraStreams.getCameraStreams.useQuery, I.cameraStreams.getBrokerStreams.useQuery, I.cameraStreams.getRtspEntries.useQuery, I.cameraStreams.getProfileRtspEntries.useQuery, I.cameraStreams.pickStream.useQuery, I.carbonMonoxide.getStatus.useQuery, I.climateControl.setMode.useMutation, I.climateControl.setFanMode.useMutation, I.climateControl.setPreset.useMutation, I.climateControl.setTarget.useMutation, I.climateControl.setTargetRange.useMutation, I.climateControl.setTargetHumidity.useMutation, I.climateControl.setSwingVertical.useMutation, I.climateControl.setSwingHorizontal.useMutation, I.climateControl.getStatus.useQuery, I.color.setColor.useMutation, I.color.getStatus.useQuery, I.connectionTest.testSettings.useMutation, I.connectionTest.describeTest.useQuery, I.connectivity.getStatus.useQuery, I.consumables.reset.useMutation, I.consumables.getStatus.useQuery, I.contact.getStatus.useQuery, I.control.setValue.useMutation, I.control.getStatus.useQuery, I.coreBlocks.list.useQuery, I.coreBlocks.get.useQuery, I.coreBlocks.create.useMutation, I.coreBlocks.update.useMutation, I.coreBlocks.delete.useMutation, I.coreBlocks.setEnabled.useMutation, I.coreBlocks.restart.useMutation, I.coreBlocks.compile.useMutation, I.coreBlocks.getBlockSettings.useQuery, I.coreBlocks.updateBlockSettings.useMutation, I.coreBlocks.migrateRawSecrets.useMutation, I.coreBlocks.getTypeDefs.useQuery, I.coreBlocks.createComposition.useMutation, I.coreBlocks.updateComposition.useMutation, I.coreBlocks.getComposition.useQuery, I.coreBlocks.listCompositions.useQuery, I.coreBlocks.getCustomization.useQuery, I.coreBlocks.listComposableCaps.useQuery, I.coreBlocks.validateComposition.useMutation, I.coreBlocks.reportAutomationRun.useMutation, I.coreBlocks.getAutomationRunState.useQuery, I.coreBlocks.getTraces.useQuery, I.cover.open.useMutation, I.cover.close.useMutation, I.cover.stop.useMutation, I.cover.setPosition.useMutation, I.cover.setTiltPosition.useMutation, I.cover.getStatus.useQuery, I.dayNight.getOptions.useQuery, I.dayNight.setSettings.useMutation, I.dayNight.getStatus.useQuery, I.decoder.getInfo.useQuery, I.decoder.reprobeHwaccel.useMutation, I.detectionPipeline.getDeviceSettingsContribution.useQuery, I.detectionPipeline.getDeviceLiveContribution.useQuery, I.detectionPipeline.applyDeviceSettingsPatch.useMutation, I.deviceAdminLink.getAdminLink.useQuery, I.deviceAdoption.listCandidateFilters.useQuery, I.deviceAdoption.listCandidates.useQuery, I.deviceAdoption.getCandidate.useQuery, I.deviceAdoption.refresh.useMutation, I.deviceAdoption.adopt.useMutation, I.deviceAdoption.release.useMutation, I.deviceAdoption.resync.useMutation, I.deviceAdoption.getStatus.useQuery, I.deviceCredentials.listDeviceCredentials.useQuery, I.deviceCredentials.startEnrollment.useMutation, I.deviceCredentials.revokeDeviceCredential.useMutation, I.deviceCredentials.getDeviceCertificateSettings.useQuery, I.deviceCredentials.setDeviceCertificateSettings.useMutation, I.deviceCredentials.deleteDeviceCredential.useMutation, I.deviceCredentials.getDeviceCaStatus.useQuery, I.deviceCredentials.renameDeviceCredential.useMutation, I.deviceDiscovery.listDiscovered.useQuery, I.deviceDiscovery.refreshDiscovery.useMutation, I.deviceDiscovery.adoptDevice.useMutation, I.deviceDiscovery.releaseDevice.useMutation, I.deviceDiscovery.getStatus.useQuery, I.deviceExport.getStatus.useQuery, I.deviceExport.listSupportedDeviceKinds.useQuery, I.deviceExport.listExposedDevices.useQuery, I.deviceExport.exposeDevice.useMutation, I.deviceExport.unexposeDevice.useMutation, I.deviceExport.listSupportedEntityKinds.useQuery, I.deviceExport.listExposedEntities.useQuery, I.deviceExport.exposeEntity.useMutation, I.deviceExport.unexposeEntity.useMutation, I.deviceExport.getDeviceSettingsContribution.useQuery, I.deviceExport.getDeviceLiveContribution.useQuery, I.deviceExport.applyDeviceSettingsPatch.useMutation, I.deviceExtension.listSources.useQuery, I.deviceExtension.listSlots.useQuery, I.deviceExtension.listCandidates.useQuery, I.deviceExtension.setSlot.useMutation, I.deviceHistory.listSeries.useQuery, I.deviceHistory.listNodeSeries.useQuery, I.deviceHistory.query.useQuery, I.deviceHistory.queryNode.useQuery, I.deviceHistory.queryMany.useQuery, I.deviceHistory.declareSeries.useMutation, I.deviceHistory.record.useMutation, I.deviceHistory.recordBuckets.useMutation, I.deviceHistory.getDeviceEnabled.useQuery, I.deviceHistory.setDeviceEnabled.useMutation, I.deviceHistory.getStatus.useQuery, I.deviceHistory.listOrphanSeries.useQuery, I.deviceHistory.deleteOrphanSeries.useMutation, I.deviceManager.allocateDeviceId.useMutation, I.deviceManager.migrateDevice.useMutation, I.deviceManager.registerDevice.useMutation, I.deviceManager.removeDevice.useMutation, I.deviceManager.persistConfig.useMutation, I.deviceManager.loadConfig.useQuery, I.deviceManager.loadRuntimeState.useQuery, I.deviceManager.loadMeta.useQuery, I.deviceManager.setName.useMutation, I.deviceManager.setLocation.useMutation, I.deviceManager.setType.useMutation, I.deviceManager.setIntegrationId.useMutation, I.deviceManager.setLinkDeviceId.useMutation, I.deviceManager.setPrimaryChildEntityId.useMutation, I.deviceManager.setChildLayout.useMutation, I.deviceManager.setDisplay.useMutation;
5043
+ mo.displayName = "Select", e(), nt("camstack:secret-reveal", null), I.accessories.setChildHidden.useMutation, I.accessories.getStatus.useQuery, I.actions.list.useQuery, I.actions.get.useQuery, I.actions.run.useMutation, I.actions.stop.useMutation, I.actions.getTraces.useQuery, I.actions.create.useMutation, I.actions.update.useMutation, I.actions.delete.useMutation, I.actions.listForCamera.useQuery, I.actions.getLinks.useQuery, I.actions.setLinks.useMutation, I.actionSource.listActions.useQuery, I.actionSource.runAction.useMutation, I.actionSource.stopAction.useMutation, I.addonPages.listPages.useQuery, I.addons.list.useQuery, I.addons.getLogs.useQuery, I.addons.listPackages.useQuery, I.addons.installPackage.useMutation, I.addons.installFromWorkspace.useMutation, I.addons.isWorkspaceAvailable.useQuery, I.addons.listWorkspacePackages.useQuery, I.addons.uninstallPackage.useMutation, I.addons.listInstallations.useQuery, I.addons.reloadPackages.useMutation, I.addons.searchAvailable.useQuery, I.addons.listUpdates.useQuery, I.addons.updatePackage.useMutation, I.addons.rollbackPackage.useMutation, I.addons.forceRefresh.useMutation, I.addons.restartServer.useMutation, I.addons.getLastRestart.useQuery, I.addons.listFrameworkPackages.useQuery, I.addons.listCapabilityProviders.useQuery, I.addons.setCapabilityProviderEnabled.useMutation, I.addons.getVersions.useQuery, I.addons.getPackageDocs.useQuery, I.addons.restartAddon.useMutation, I.addons.retryLoad.useMutation, I.addons.getAutoUpdateSettings.useQuery, I.addons.setAutoUpdateSettings.useMutation, I.addons.getAddonAutoUpdate.useQuery, I.addons.setAddonAutoUpdate.useMutation, I.addons.applyAutoUpdateToAll.useMutation, I.addons.custom.useMutation, I.addons.startJob.useMutation, I.addons.getJob.useQuery, I.addons.listJobs.useQuery, I.addons.cancelJob.useMutation, I.addons.onAddonLogs.useSubscription, I.addonSettings.getGlobalSettings.useQuery, I.addonSettings.updateGlobalSettings.useMutation, I.addonSettings.getIntegrationSettings.useQuery, I.addonSettings.getDeclaredSettingsKeys.useQuery, I.addonSettings.unsetStoredSettingsKeys.useMutation, I.addonSettings.getDeviceSettings.useQuery, I.addonSettings.updateDeviceSettings.useMutation, I.addonWidgets.listWidgets.useQuery, I.airQualitySensor.getStatus.useQuery, I.alarmPanel.arm.useMutation, I.alarmPanel.disarm.useMutation, I.alarmPanel.trigger.useMutation, I.alarmPanel.getStatus.useQuery, I.alerts.emit.useMutation, I.alerts.update.useMutation, I.alerts.list.useQuery, I.alerts.getUnreadCount.useQuery, I.alerts.markRead.useMutation, I.alerts.markAllRead.useMutation, I.alerts.dismiss.useMutation, I.ambientLightSensor.getStatus.useQuery, I.audioAnalysis.resolveDeviceSettings.useQuery, I.audioAnalysis.getDeviceSettingsContribution.useQuery, I.audioAnalysis.getDeviceLiveContribution.useQuery, I.audioAnalysis.applyDeviceSettingsPatch.useMutation, I.audioAnalyzer.analyseChunk.useMutation, I.audioAnalyzer.classify.useQuery, I.audioAnalyzer.attachDevice.useMutation, I.audioAnalyzer.detachDevice.useMutation, I.audioAnalyzer.isReady.useQuery, I.audioAnalyzer.dispose.useMutation, I.audioAnalyzer.reprobeAudioEngine.useMutation, I.audioCodec.listSupportedCodecs.useQuery, I.audioCodec.canHandle.useQuery, I.audioCodec.createDecodeSession.useMutation, I.audioCodec.createEncodeSession.useMutation, I.audioCodec.closeSession.useMutation, I.audioCodec.pushEncodedFrame.useMutation, I.audioCodec.pullPcm.useQuery, I.audioCodec.pushPcm.useMutation, I.audioCodec.pullEncoded.useQuery, I.audioCodec.flushEncode.useMutation, I.audioCodec.listActiveSessions.useQuery, I.audioMetrics.getCurrentSnapshot.useQuery, I.audioMetrics.getHistory.useQuery, I.automationControl.enable.useMutation, I.automationControl.disable.useMutation, I.automationControl.trigger.useMutation, I.automationControl.getStatus.useQuery, I.backup.listDestinations.useQuery, I.backup.trigger.useMutation, I.backup.listRuns.useQuery, I.backup.cancel.useMutation, I.backup.list.useQuery, I.backup.listLocations.useQuery, I.backup.getEntries.useQuery, I.backup.restore.useMutation, I.backup.getEncryption.useQuery, I.backup.setupEncryption.useMutation, I.backup.disableEncryption.useMutation, I.backup.checkBackupKey.useMutation, I.backup.delete.useMutation, I.backup.listArchives.useQuery, I.backup.upsertDestinationPolicy.useMutation, I.backup.previewSchedule.useQuery, I.backup.listSchedules.useQuery, I.backup.listAvailableDatabases.useQuery, I.backup.upsertSchedule.useMutation, I.backup.deleteSchedule.useMutation, I.battery.wakeForStream.useMutation, I.battery.getStatus.useQuery, I.binary.getStatus.useQuery, I.brightness.setBrightness.useMutation, I.brightness.getStatus.useQuery, I.broker.list.useQuery, I.broker.get.useQuery, I.broker.listProviders.useQuery, I.broker.add.useMutation, I.broker.remove.useMutation, I.broker.testConnection.useMutation, I.broker.getSettings.useQuery, I.broker.setSettings.useMutation, I.broker.getBrokerConfig.useQuery, I.broker.getSettingsSchema.useQuery, I.broker.testSettings.useMutation, I.broker.publish.useMutation, I.broker.subscribe.useMutation, I.broker.unsubscribe.useMutation, I.broker.getState.useQuery, I.broker.getStatus.useQuery, I.button.press.useMutation, I.calendars.listCalendars.useQuery, I.calendars.listEvents.useQuery, I.calendars.getPreferences.useQuery, I.calendars.setCalendarPreference.useMutation, I.cameraCredentials.getCredentials.useQuery, I.cameraCredentials.getStatus.useQuery, I.cameraGridLayout.getLayout.useQuery, I.cameraGridLayout.saveLayout.useMutation, I.cameraGridLayout.getDeviceSettingsContribution.useQuery, I.cameraGridLayout.getDeviceLiveContribution.useQuery, I.cameraGridLayout.applyDeviceSettingsPatch.useMutation, I.cameraPipelineConfig.getDeviceSettingsContribution.useQuery, I.cameraPipelineConfig.getDeviceLiveContribution.useQuery, I.cameraPipelineConfig.applyDeviceSettingsPatch.useMutation, I.cameraStreams.getCameraStreams.useQuery, I.cameraStreams.getBrokerStreams.useQuery, I.cameraStreams.getRtspEntries.useQuery, I.cameraStreams.getProfileRtspEntries.useQuery, I.cameraStreams.pickStream.useQuery, I.carbonMonoxide.getStatus.useQuery, I.climateControl.setMode.useMutation, I.climateControl.setFanMode.useMutation, I.climateControl.setPreset.useMutation, I.climateControl.setTarget.useMutation, I.climateControl.setTargetRange.useMutation, I.climateControl.setTargetHumidity.useMutation, I.climateControl.setSwingVertical.useMutation, I.climateControl.setSwingHorizontal.useMutation, I.climateControl.getStatus.useQuery, I.color.setColor.useMutation, I.color.getStatus.useQuery, I.connectionTest.testSettings.useMutation, I.connectionTest.describeTest.useQuery, I.connectivity.getStatus.useQuery, I.consumables.reset.useMutation, I.consumables.getStatus.useQuery, I.contact.getStatus.useQuery, I.control.setValue.useMutation, I.control.getStatus.useQuery, I.coreBlocks.list.useQuery, I.coreBlocks.get.useQuery, I.coreBlocks.create.useMutation, I.coreBlocks.update.useMutation, I.coreBlocks.delete.useMutation, I.coreBlocks.setEnabled.useMutation, I.coreBlocks.restart.useMutation, I.coreBlocks.compile.useMutation, I.coreBlocks.getBlockSettings.useQuery, I.coreBlocks.updateBlockSettings.useMutation, I.coreBlocks.migrateRawSecrets.useMutation, I.coreBlocks.getTypeDefs.useQuery, I.coreBlocks.createComposition.useMutation, I.coreBlocks.updateComposition.useMutation, I.coreBlocks.getComposition.useQuery, I.coreBlocks.listCompositions.useQuery, I.coreBlocks.getCustomization.useQuery, I.coreBlocks.listComposableCaps.useQuery, I.coreBlocks.validateComposition.useMutation, I.coreBlocks.reportAutomationRun.useMutation, I.coreBlocks.getAutomationRunState.useQuery, I.coreBlocks.getTraces.useQuery, I.cover.open.useMutation, I.cover.close.useMutation, I.cover.stop.useMutation, I.cover.setPosition.useMutation, I.cover.setTiltPosition.useMutation, I.cover.getStatus.useQuery, I.dayNight.getOptions.useQuery, I.dayNight.setSettings.useMutation, I.dayNight.getStatus.useQuery, I.decoder.getInfo.useQuery, I.decoder.reprobeHwaccel.useMutation, I.detectionPipeline.getDeviceSettingsContribution.useQuery, I.detectionPipeline.getDeviceLiveContribution.useQuery, I.detectionPipeline.applyDeviceSettingsPatch.useMutation, I.deviceAdminLink.getAdminLink.useQuery, I.deviceAdoption.listCandidateFilters.useQuery, I.deviceAdoption.listCandidates.useQuery, I.deviceAdoption.getCandidate.useQuery, I.deviceAdoption.refresh.useMutation, I.deviceAdoption.adopt.useMutation, I.deviceAdoption.release.useMutation, I.deviceAdoption.resync.useMutation, I.deviceAdoption.getStatus.useQuery, I.deviceCredentials.listDeviceCredentials.useQuery, I.deviceCredentials.startEnrollment.useMutation, I.deviceCredentials.revokeDeviceCredential.useMutation, I.deviceCredentials.getDeviceCertificateSettings.useQuery, I.deviceCredentials.setDeviceCertificateSettings.useMutation, I.deviceCredentials.deleteDeviceCredential.useMutation, I.deviceCredentials.getDeviceCaStatus.useQuery, I.deviceCredentials.renameDeviceCredential.useMutation, I.deviceDiscovery.listDiscovered.useQuery, I.deviceDiscovery.refreshDiscovery.useMutation, I.deviceDiscovery.adoptDevice.useMutation, I.deviceDiscovery.releaseDevice.useMutation, I.deviceDiscovery.getStatus.useQuery, I.deviceExport.getStatus.useQuery, I.deviceExport.listSupportedDeviceKinds.useQuery, I.deviceExport.listExposedDevices.useQuery, I.deviceExport.exposeDevice.useMutation, I.deviceExport.unexposeDevice.useMutation, I.deviceExport.listSupportedEntityKinds.useQuery, I.deviceExport.listExposedEntities.useQuery, I.deviceExport.exposeEntity.useMutation, I.deviceExport.unexposeEntity.useMutation, I.deviceExport.getDeviceSettingsContribution.useQuery, I.deviceExport.getDeviceLiveContribution.useQuery, I.deviceExport.applyDeviceSettingsPatch.useMutation, I.deviceExtension.listSources.useQuery, I.deviceExtension.listSlots.useQuery, I.deviceExtension.listCandidates.useQuery, I.deviceExtension.setSlot.useMutation, I.deviceHistory.listSeries.useQuery, I.deviceHistory.listNodeSeries.useQuery, I.deviceHistory.query.useQuery, I.deviceHistory.queryNode.useQuery, I.deviceHistory.queryMany.useQuery, I.deviceHistory.declareSeries.useMutation, I.deviceHistory.record.useMutation, I.deviceHistory.recordBuckets.useMutation, I.deviceHistory.getDeviceEnabled.useQuery, I.deviceHistory.setDeviceEnabled.useMutation, I.deviceHistory.getStatus.useQuery, I.deviceHistory.listOrphanSeries.useQuery, I.deviceHistory.deleteOrphanSeries.useMutation, I.deviceManager.allocateDeviceId.useMutation, I.deviceManager.migrateDevice.useMutation, I.deviceManager.registerDevice.useMutation, I.deviceManager.removeDevice.useMutation, I.deviceManager.persistConfig.useMutation, I.deviceManager.loadConfig.useQuery, I.deviceManager.loadRuntimeState.useQuery, I.deviceManager.loadMeta.useQuery, I.deviceManager.setName.useMutation, I.deviceManager.setLocation.useMutation, I.deviceManager.setType.useMutation, I.deviceManager.setIntegrationId.useMutation, I.deviceManager.setLinkDeviceId.useMutation, I.deviceManager.setPrimaryChildEntityId.useMutation, I.deviceManager.setChildLayout.useMutation, I.deviceManager.setDisplay.useMutation;
5044
5044
  var ho = I.deviceManager.getRoleDisplayDefaults.useQuery;
5045
5045
  I.deviceManager.setRoleDisplayDefaults.useMutation, I.deviceManager.getWireableFields.useQuery, I.deviceManager.setRole.useMutation, I.deviceManager.applyInitialMeta.useMutation, I.deviceManager.setMetadata.useMutation, I.deviceManager.listLocations.useQuery, I.deviceManager.addLocation.useMutation, I.deviceManager.removeLocation.useMutation, I.deviceManager.renameLocation.useMutation, I.deviceManager.listLocationIcons.useQuery, I.deviceManager.setLocationIcon.useMutation, I.deviceManager.listLocationDescriptions.useQuery, I.deviceManager.setLocationDescription.useMutation, I.deviceManager.listSiteZones.useQuery, I.deviceManager.setSiteZone.useMutation, I.deviceManager.removeSiteZone.useMutation, I.deviceManager.renameSiteZone.useMutation, I.deviceManager.setLocationZone.useMutation, I.deviceManager.setDisabled.useMutation, I.deviceManager.listPersistedByAddon.useQuery, I.deviceManager.listAll.useQuery;
5046
5046
  var go = I.deviceManager.getDevice.useQuery;
5047
- I.deviceManager.getChildren.useQuery, I.deviceManager.getChildrenBatch.useQuery, I.deviceManager.getLinkedDevices.useQuery, I.deviceManager.getLinkedDevicesBatch.useQuery, I.deviceManager.getStreamSources.useQuery, I.deviceManager.getConfigSchema.useQuery, I.deviceManager.getSettingsSchema.useQuery, I.deviceManager.updateConfig.useMutation, I.deviceManager.enable.useMutation, I.deviceManager.disable.useMutation, I.deviceManager.remove.useMutation, I.deviceManager.listDeletedSince.useQuery, I.deviceManager.cleanupDeletedDevicesData.useMutation, I.deviceManager.removeByIntegration.useMutation, I.deviceManager.getStreamProfileMap.useQuery, I.deviceManager.setStreamProfileMap.useMutation, I.deviceManager.probeStreams.useMutation, I.deviceManager.getBindings.useQuery, I.deviceManager.getBindingsBatch.useQuery, I.deviceManager.getAllBindings.useQuery, I.deviceManager.listDeviceIdsByCaps.useQuery, I.deviceManager.setWrapperActive.useMutation, I.deviceManager.getWrapperActivation.useQuery, I.deviceManager.listWrappersForCap.useQuery, I.deviceManager.listBindableCapsForDeviceType.useQuery, I.deviceManager.getDeviceSettingsAggregate.useQuery, I.deviceManager.getDeviceLiveInfoAggregate.useQuery, I.deviceManager.getDeviceAggregate.useQuery, I.deviceManager.runDeviceAction.useMutation, I.deviceManager.updateDeviceField.useMutation, I.deviceManager.updateDeviceFieldsBatch.useMutation, I.deviceManager.discoverDevices.useMutation, I.deviceManager.adoptDevice.useMutation, I.deviceManager.getCreationSchema.useQuery, I.deviceManager.createDevice.useMutation, I.deviceManager.testCreationField.useMutation, I.deviceManager.adoptionListCandidateFilters.useQuery, I.deviceManager.adoptionListCandidates.useQuery, I.deviceManager.adoptionRefresh.useMutation, I.deviceManager.adoptionAdopt.useMutation, I.deviceManager.adoptionRelease.useMutation, I.deviceManager.adoptionStartJob.useMutation, I.deviceManager.adoptionListJobs.useQuery, I.deviceManager.adoptionCancelJob.useMutation, I.deviceManager.adoptionResync.useMutation, I.deviceManager.discoveryProviders.useQuery, I.deviceManager.discoverAllProviders.useMutation, I.deviceManager.discoverProvider.useMutation, I.deviceManager.providerCreationType.useQuery, I.deviceManager.providerDiscoveryParamsSchema.useQuery, I.deviceManager.testField.useMutation, I.deviceManager.getDeviceStatusAggregate.useQuery, I.deviceManager.getDeviceStatusAggregateBatch.useQuery, I.deviceOps.getStreamSources.useQuery, I.deviceOps.getConfigEntries.useQuery, I.deviceOps.setConfig.useMutation, I.deviceOps.runAction.useMutation, I.deviceOps.removeDevice.useMutation, I.deviceOps.getSettingsSchema.useQuery, I.deviceOps.getRawState.useQuery, I.deviceProvider.start.useMutation, I.deviceProvider.stop.useMutation, I.deviceProvider.getStatus.useQuery, I.deviceProvider.getDevices.useQuery, I.deviceProvider.reloadDevice.useMutation, I.deviceProvider.supportsDiscovery.useQuery, I.deviceProvider.discoverDevices.useMutation, I.deviceProvider.getDiscoveryParamsSchema.useQuery, I.deviceProvider.getManualCreationType.useQuery, I.deviceProvider.adoptDiscoveredDevice.useMutation, I.deviceProvider.supportsManualCreation.useQuery, I.deviceProvider.getChildCreationSchema.useQuery, I.deviceProvider.createDevice.useMutation, I.deviceProvider.testCreationField.useMutation;
5047
+ I.deviceManager.getChildren.useQuery, I.deviceManager.getChildrenBatch.useQuery, I.deviceManager.getLinkedDevices.useQuery, I.deviceManager.getLinkedDevicesBatch.useQuery, I.deviceManager.getStreamSources.useQuery, I.deviceManager.getConfigSchema.useQuery, I.deviceManager.getSettingsSchema.useQuery, I.deviceManager.updateConfig.useMutation, I.deviceManager.enable.useMutation, I.deviceManager.disable.useMutation, I.deviceManager.remove.useMutation, I.deviceManager.listDeletedSince.useQuery, I.deviceManager.cleanupDeletedDevicesData.useMutation, I.deviceManager.removeByIntegration.useMutation, I.deviceManager.getStreamProfileMap.useQuery, I.deviceManager.setStreamProfileMap.useMutation, I.deviceManager.probeStreams.useMutation, I.deviceManager.getBindings.useQuery, I.deviceManager.getBindingsBatch.useQuery, I.deviceManager.getAllBindings.useQuery, I.deviceManager.listDeviceIdsByCaps.useQuery, I.deviceManager.setWrapperActive.useMutation, I.deviceManager.getWrapperActivation.useQuery, I.deviceManager.listWrappersForCap.useQuery, I.deviceManager.listBindableCapsForDeviceType.useQuery, I.deviceManager.getDeviceSettingsAggregate.useQuery, I.deviceManager.getDeviceLiveInfoAggregate.useQuery, I.deviceManager.getDeviceAggregate.useQuery, I.deviceManager.runDeviceAction.useMutation, I.deviceManager.updateDeviceField.useMutation, I.deviceManager.updateDeviceFieldsBatch.useMutation, I.deviceManager.discoverDevices.useMutation, I.deviceManager.adoptDevice.useMutation, I.deviceManager.getCreationSchema.useQuery, I.deviceManager.createDevice.useMutation, I.deviceManager.testCreationField.useMutation, I.deviceManager.adoptionListCandidateFilters.useQuery, I.deviceManager.adoptionListCandidates.useQuery, I.deviceManager.adoptionRefresh.useMutation, I.deviceManager.adoptionAdopt.useMutation, I.deviceManager.adoptionRelease.useMutation, I.deviceManager.adoptionStartJob.useMutation, I.deviceManager.adoptionListJobs.useQuery, I.deviceManager.adoptionCancelJob.useMutation, I.deviceManager.adoptionResync.useMutation, I.deviceManager.discoveryProviders.useQuery, I.deviceManager.discoverAllProviders.useMutation, I.deviceManager.discoverProvider.useMutation, I.deviceManager.providerCreationType.useQuery, I.deviceManager.providerDiscoveryParamsSchema.useQuery, I.deviceManager.testField.useMutation, I.deviceManager.getDeviceStatusAggregate.useQuery, I.deviceManager.getDeviceStatusAggregateBatch.useQuery, I.deviceOps.getStreamSources.useQuery, I.deviceOps.getConfigEntries.useQuery, I.deviceOps.setConfig.useMutation, I.deviceOps.runAction.useMutation, I.deviceOps.removeDevice.useMutation, I.deviceOps.getSettingsSchema.useQuery, I.deviceOps.getRawState.useQuery, I.deviceProvider.start.useMutation, I.deviceProvider.stop.useMutation, I.deviceProvider.getStatus.useQuery, I.deviceProvider.getDevices.useQuery, I.deviceProvider.reloadDevice.useMutation, I.deviceProvider.supportsDiscovery.useQuery, I.deviceProvider.discoverDevices.useMutation, I.deviceProvider.getDiscoveryModes.useQuery, I.deviceProvider.classifyDiscoveryHits.useMutation, I.deviceProvider.getDiscoveryParamsSchema.useQuery, I.deviceProvider.getManualCreationType.useQuery, I.deviceProvider.adoptDiscoveredDevice.useMutation, I.deviceProvider.supportsManualCreation.useQuery, I.deviceProvider.getChildCreationSchema.useQuery, I.deviceProvider.createDevice.useMutation, I.deviceProvider.testCreationField.useMutation;
5048
5048
  var _o = I.deviceState.getSnapshot.useQuery;
5049
- I.deviceState.getCapSlice.useQuery, I.deviceState.getAllSnapshots.useQuery, I.deviceState.setCapSlice.useMutation, I.deviceState.claimFields.useMutation, I.deviceState.patchOwnedFields.useMutation, I.deviceState.releaseClaim.useMutation, I.deviceState.listClaims.useQuery, I.deviceState.getNativeCapSlice.useQuery, I.deviceStatus.getStatus.useQuery, I.dishwasher.start.useMutation, I.dishwasher.pause.useMutation, I.dishwasher.resume.useMutation, I.dishwasher.stop.useMutation, I.dishwasher.setProgram.useMutation, I.dishwasher.setPower.useMutation, I.dishwasher.setHalfLoad.useMutation, I.dishwasher.setHygienePlus.useMutation, I.dishwasher.setExtraDry.useMutation, I.dishwasher.setIntensiveZone.useMutation, I.dishwasher.setVarioSpeedPlus.useMutation, I.dishwasher.setChildLock.useMutation, I.dishwasher.setOption.useMutation, I.dishwasher.getOptions.useQuery, I.dishwasher.getStatus.useQuery, I.displayPalette.getPalette.useQuery, I.displayPalette.listPresets.useQuery, I.displayPalette.setPalette.useMutation, I.doorbell.getStatus.useQuery, I.enumSensor.getStatus.useQuery, I.eventEmitter.getStatus.useQuery, I.faceGallery.listIdentities.useQuery, I.faceGallery.createIdentity.useMutation, I.faceGallery.renameIdentity.useMutation, I.faceGallery.deleteIdentity.useMutation, I.faceGallery.listIdentitySamples.useQuery, I.faceGallery.auditIdentitySamples.useQuery, I.faceGallery.removeSample.useMutation, I.faceGallery.listRecentFaces.useQuery, I.faceGallery.getFaceByTrack.useQuery, I.faceGallery.getFaceMedia.useQuery, I.faceGallery.assignFace.useMutation, I.faceGallery.unassignFace.useMutation, I.faceGallery.deleteFace.useMutation, I.faceGallery.assignFaces.useMutation, I.faceGallery.unassignFaces.useMutation, I.faceGallery.suggestFaceClusters.useQuery, I.fanControl.setPercentage.useMutation, I.fanControl.setPreset.useMutation, I.fanControl.setDirection.useMutation, I.fanControl.setOscillating.useMutation, I.fanControl.getStatus.useQuery, I.featureProbe.getStatus.useQuery, I.flood.getStatus.useQuery, I.gas.getStatus.useQuery, I.groupActive.getStatus.useQuery, I.groupCommands.getStatus.useQuery, I.groupStatus.getStatus.useQuery, I.heatingValve.getStatus.useQuery, I.humidifier.setOn.useMutation, I.humidifier.setTargetHumidity.useMutation, I.humidifier.setMode.useMutation, I.humidifier.getStatus.useQuery, I.humiditySensor.getStatus.useQuery, I.image.getStatus.useQuery, I.imageSettings.getOptions.useQuery, I.imageSettings.setSettings.useMutation, I.imageSettings.getStatus.useQuery, I.integrations.list.useQuery, I.integrations.get.useQuery, I.integrations.getByAddonId.useQuery, I.integrations.create.useMutation, I.integrations.update.useMutation, I.integrations.delete.useMutation, I.integrations.getSettings.useQuery, I.integrations.setSettings.useMutation, I.integrations.getAvailableTypes.useQuery, I.integrations.testConnection.useMutation, I.intercom.startSession.useMutation, I.intercom.handleAnswer.useMutation, I.intercom.stopSession.useMutation, I.intercom.startTalkSession.useMutation, I.intercom.pushTalkAudio.useMutation, I.intercom.endTalkSession.useMutation, I.intercom.getStatus.useQuery, I.irTransmitter.send.useMutation, I.irTransmitter.getInfo.useQuery, I.keychainAdmin.status.useQuery, I.keychainAdmin.listSecrets.useQuery, I.keychainAdmin.listAudit.useQuery, I.keychainAdmin.reveal.useMutation, I.keychainAdmin.setSystemSecret.useMutation, I.keychainAdmin.importSecret.useMutation, I.keychainAdmin.deleteOrphans.useMutation, I.keychainAdmin.rotateMasterKey.useMutation, I.keychainAdmin.purgeRetiredKeys.useMutation, I.keychainAdmin.downloadRecoveryKey.useMutation, I.keychainAdmin.resetKeychain.useMutation, I.keychainAdmin.resetReport.useQuery, I.keychainAdmin.acknowledgeReset.useMutation, I.lawnMowerControl.startMowing.useMutation, I.lawnMowerControl.pause.useMutation, I.lawnMowerControl.dock.useMutation, I.lawnMowerControl.getStatus.useQuery, I.llm.generate.useMutation, I.llm.generateVision.useMutation, I.llm.cancel.useMutation, I.llm.listProfileKinds.useQuery, I.llm.listProfiles.useQuery, I.llm.upsertProfile.useMutation, I.llm.migrateRawSecrets.useMutation, I.llm.deleteProfile.useMutation, I.llm.testProfile.useMutation, I.llm.listModels.useMutation, I.llm.getDefaults.useQuery, I.llm.setDefault.useMutation, I.llm.getUsage.useQuery, I.llm.listModelCatalog.useQuery, I.llm.listRuntimeNodes.useQuery, I.llm.listNodeModels.useQuery, I.llm.resolveModelRef.useMutation, I.llm.installModel.useMutation, I.llm.deleteModel.useMutation, I.llm.getRuntimeStatus.useQuery, I.llm.startRuntime.useMutation, I.llm.stopRuntime.useMutation, I.localNetwork.list.useQuery, I.localNetwork.getPreferred.useQuery, I.localNetwork.getConnectionEndpoints.useQuery, I.localNetwork.getNotificationEndpoint.useQuery, I.localNetwork.setNotificationEndpoint.useMutation, I.localNetwork.getViewerEndpoints.useQuery, I.localNetwork.setViewerEndpoints.useMutation, I.localNetwork.getAddresses.useQuery, I.localNetwork.addCustomAddress.useMutation, I.localNetwork.removeCustomAddress.useMutation, I.localNetwork.setAddressRole.useMutation, I.localNetwork.getHubAddresses.useQuery, I.localNetwork.getAllowedAddresses.useQuery, I.localNetwork.setAllowedAddresses.useMutation, I.localNetwork.resetAllowlistToBestMatch.useMutation, I.localNetwork.getTlsStatus.useQuery, I.localNetwork.regenerateCertificate.useMutation, I.localNetwork.uploadCertificate.useMutation, I.localNetwork.downloadCa.useQuery, I.localNetwork.useStoredUploadedCertificate.useMutation, I.localNetwork.revertToGeneratedCertificate.useMutation, I.lockControl.lock.useMutation, I.lockControl.unlock.useMutation, I.lockControl.open.useMutation, I.lockControl.getStatus.useQuery, I.mediaPlayer.play.useMutation, I.mediaPlayer.pause.useMutation, I.mediaPlayer.stop.useMutation, I.mediaPlayer.next.useMutation, I.mediaPlayer.previous.useMutation, I.mediaPlayer.seek.useMutation, I.mediaPlayer.setVolume.useMutation, I.mediaPlayer.setMute.useMutation, I.mediaPlayer.setShuffle.useMutation, I.mediaPlayer.setRepeat.useMutation, I.mediaPlayer.selectSource.useMutation, I.mediaPlayer.playMedia.useMutation, I.mediaPlayer.getStatus.useQuery, I.meshNetwork.getStatus.useQuery, I.meshNetwork.join.useMutation, I.meshNetwork.startLogin.useMutation, I.meshNetwork.leave.useMutation, I.meshNetwork.logout.useMutation, I.meshNetwork.listPeers.useQuery, I.meshNetwork.testConnection.useMutation, I.meter.getStatus.useQuery, I.metricsProvider.collectSnapshot.useQuery, I.metricsProvider.getCached.useQuery, I.metricsProvider.getCurrent.useQuery, I.metricsProvider.getDiskSpace.useQuery, I.metricsProvider.getGpuInfo.useQuery, I.metricsProvider.getCpuTemperature.useQuery, I.metricsProvider.getProcessStats.useQuery, I.metricsProvider.listAddonInstances.useQuery, I.metricsProvider.getAddonStats.useQuery, I.metricsProvider.listNodeProcesses.useQuery, I.metricsProvider.getLoadSeries.useQuery, I.motion.isDetected.useQuery, I.motion.getStatus.useQuery, I.motionDetection.analyze.useMutation, I.motionDetection.removeCamera.useMutation, I.motionDetection.reset.useMutation, I.motionDetection.getDeviceSettingsContribution.useQuery, I.motionDetection.getDeviceLiveContribution.useQuery, I.motionDetection.applyDeviceSettingsPatch.useMutation, I.motionTrigger.setMotionTrigger.useMutation, I.motionTrigger.getStatus.useQuery, I.motionZones.getOptions.useQuery, I.motionZones.setZone.useMutation, I.motionZones.getStatus.useQuery, I.mqttBroker.listBrokers.useQuery, I.mqttBroker.getBrokerConfig.useQuery, I.mqttBroker.addBroker.useMutation, I.mqttBroker.removeBroker.useMutation, I.mqttBroker.testConnection.useMutation, I.mqttBroker.startEmbeddedBroker.useMutation, I.mqttBroker.stopEmbeddedBroker.useMutation, I.mqttBroker.getStatus.useQuery, I.nativeObjectDetection.getOptions.useQuery, I.nativeObjectDetection.setSettings.useMutation, I.nativeObjectDetection.setEnabled.useMutation, I.nativeObjectDetection.getStatus.useQuery, I.navigation.move.useMutation, I.navigation.stop.useMutation, I.navigation.goToPoint.useMutation, I.navigation.listActions.useQuery, I.navigation.runAction.useMutation, I.navigation.playSound.useMutation, I.navigation.setLightOn.useMutation, I.navigation.setLightMode.useMutation, I.navigation.setLightLevel.useMutation, I.navigation.getFeatures.useQuery, I.navigation.getStatus.useQuery, I.networkAccess.start.useMutation, I.networkAccess.stop.useMutation, I.networkAccess.getEndpoint.useQuery, I.networkAccess.getStatus.useQuery, I.networkAccess.listEndpoints.useQuery, I.networkLink.getStatus.useQuery, I.networkQuality.getDeviceStats.useQuery, I.networkQuality.getAllStats.useQuery, I.networkQuality.reportClientStats.useMutation, I.nodes.topology.useQuery, I.nodes.directory.useQuery, I.nodes.deployAddon.useMutation, I.nodes.undeployAddon.useMutation, I.nodes.restartAddon.useMutation, I.nodes.restartProcess.useMutation, I.nodes.restartNode.useMutation, I.nodes.shutdownNode.useMutation, I.nodes.renameNode.useMutation, I.nodes.clusterAddonStatus.useQuery, I.nodes.getCapUsageGraph.useQuery, I.nodes.getNodeAddons.useQuery, I.nodes.setProcessLogLevel.useMutation, I.nodes.executeQuery.useMutation, I.notificationOutput.listTargetKinds.useQuery, I.notificationOutput.listTargets.useQuery, I.notificationOutput.getTarget.useQuery, I.notificationOutput.discoverTargets.useQuery, I.notificationOutput.probeTargetConfig.useMutation, I.notificationOutput.send.useMutation, I.notificationOutput.testTarget.useMutation, I.notificationOutput.upsertTarget.useMutation, I.notificationOutput.deleteTarget.useMutation, I.notificationOutput.setTargetEnabled.useMutation, I.notificationRules.listRules.useQuery, I.notificationRules.getRule.useQuery, I.notificationRules.createRule.useMutation, I.notificationRules.updateRule.useMutation, I.notificationRules.deleteRule.useMutation, I.notificationRules.setRuleEnabled.useMutation, I.notificationRules.listSequences.useQuery, I.notificationRules.getSequence.useQuery, I.notificationRules.createSequence.useMutation, I.notificationRules.updateSequence.useMutation, I.notificationRules.deleteSequence.useMutation, I.notificationRules.getClipRetentionAsks.useQuery, I.notificationRules.listDeviceMutes.useQuery, I.notificationRules.setDeviceMuted.useMutation, I.notificationRules.testRule.useMutation, I.notificationRules.previewStateSummary.useMutation, I.notificationRules.getConditionCatalog.useQuery, I.notificationRules.getTemplateCatalog.useQuery, I.notificationRules.previewTemplate.useMutation, I.notificationRules.getHistory.useQuery, I.notificationRules.getRuleLastRuns.useQuery, I.notificationRules.resolveArtifactUrl.useQuery, I.notificationRules.listSnoozes.useQuery, I.notificationRules.createSnooze.useMutation, I.notificationRules.cancelSnooze.useMutation, I.notificationRules.getAlarmConfig.useQuery, I.notificationRules.setAlarmConfig.useMutation, I.notificationRules.createAlarmProfile.useMutation, I.notificationRules.renameAlarmProfile.useMutation, I.notificationRules.deleteAlarmProfile.useMutation, I.notificationRules.activateAlarmProfile.useMutation, I.notificationRules.getAlarmSensors.useQuery, I.notifier.send.useMutation, I.notifier.cancel.useMutation, I.notifier.getStatus.useQuery, I.numericSensor.getStatus.useQuery, I.oidcConnections.connectionFormSchema.useQuery, I.oidcConnections.listConnections.useQuery, I.oidcConnections.createConnection.useMutation, I.oidcConnections.updateConnection.useMutation, I.oidcConnections.deleteConnection.useMutation, I.osd.setOverlay.useMutation, I.osd.getStatus.useQuery, I.osdManager.getDeviceOsd.useQuery, I.osdManager.getSourceCatalog.useQuery, I.osdManager.getConditionSupport.useQuery, I.osdManager.setSlotBinding.useMutation, I.osdManager.clearSlotBinding.useMutation, I.osdManager.setSlotCameraEnabled.useMutation, I.osdManager.copyDeviceConfiguration.useMutation, I.osdManager.previewSlot.useMutation, I.osdManager.renderDevice.useMutation, I.osdManager.listTemplates.useQuery, I.osdManager.upsertTemplate.useMutation, I.osdManager.deleteTemplate.useMutation, I.petFeeder.feed.useMutation, I.petFeeder.cancelFeed.useMutation, I.petFeeder.resetDesiccant.useMutation, I.petFeeder.markFoodReplenished.useMutation, I.petFeeder.callPet.useMutation, I.petFeeder.playSound.useMutation, I.petFeeder.setChildLock.useMutation, I.petFeeder.setIndicatorLight.useMutation, I.petFeeder.setFeedSound.useMutation, I.petFeeder.setVolume.useMutation, I.petFeeder.getStatus.useQuery, I.petFountain.setPump.useMutation, I.petFountain.setPumpInterval.useMutation, I.petFountain.setPumpOnMinutes.useMutation, I.petFountain.setPumpOffMinutes.useMutation, I.petFountain.resetDailyConsumption.useMutation, I.petFountain.getStatus.useQuery, I.pipelineAnalytics.getActiveTracks.useQuery, I.pipelineAnalytics.getTrack.useQuery, I.pipelineAnalytics.listTracks.useQuery, I.pipelineAnalytics.listRecentTracks.useQuery, I.pipelineAnalytics.clearTracks.useMutation, I.pipelineAnalytics.getMotionEvents.useQuery, I.pipelineAnalytics.getObjectEvents.useQuery, I.pipelineAnalytics.getAudioEvents.useQuery, I.pipelineAnalytics.listEventKinds.useQuery, I.pipelineAnalytics.listEventKindsBatch.useQuery, I.pipelineAnalytics.getSensorEvents.useQuery, I.pipelineAnalytics.getKeyEvents.useQuery, I.pipelineAnalytics.getKeyEventsBatch.useQuery, I.pipelineAnalytics.readLongTermSeries.useQuery, I.pipelineAnalytics.getEventDensity.useQuery, I.pipelineAnalytics.getEventDensityBatch.useQuery, I.pipelineAnalytics.pruneEventsBefore.useMutation, I.pipelineAnalytics.pruneTracksBefore.useMutation, I.pipelineAnalytics.wipeAllAnalytics.useMutation, I.pipelineAnalytics.reconcileFromDisk.useMutation, I.pipelineAnalytics.deleteTracks.useMutation, I.pipelineAnalytics.setTrackFlags.useMutation, I.pipelineAnalytics.listArchivedDebugNotes.useQuery, I.pipelineAnalytics.setTrackRelation.useMutation, I.pipelineAnalytics.clearTrackRelation.useMutation, I.pipelineAnalytics.setTrackPurity.useMutation, I.pipelineAnalytics.listTrackRelations.useQuery, I.pipelineAnalytics.listBirthDecisions.useQuery, I.pipelineAnalytics.getEventStoreFootprint.useQuery, I.pipelineAnalytics.getEventMediaFootprintByKind.useQuery, I.pipelineAnalytics.pruneEvents.useMutation, I.pipelineAnalytics.deleteDeviceEvents.useMutation, I.pipelineAnalytics.pauseForStorageMigration.useMutation, I.pipelineAnalytics.resumeForStorageMigration.useMutation, I.pipelineAnalytics.refreshStorageLocationsForMigration.useMutation, I.pipelineAnalytics.startStorageMigrationMove.useMutation, I.pipelineAnalytics.getStorageMigrationMoveStatus.useQuery, I.pipelineAnalytics.cancelStorageMigrationMove.useMutation, I.pipelineAnalytics.relocateMedia.useMutation, I.pipelineAnalytics.countUnstampedEventMedia.useQuery, I.pipelineAnalytics.countRelocatableMedia.useQuery, I.pipelineAnalytics.listRelocateMediaJobs.useQuery, I.pipelineAnalytics.cancelRelocateMedia.useMutation, I.pipelineAnalytics.listOpsLog.useQuery, I.pipelineAnalytics.reclaimDebugMedia.useMutation, I.pipelineAnalytics.getMediaReclaimStatus.useQuery, I.pipelineAnalytics.getTrainingExportSummary.useQuery, I.pipelineAnalytics.getTrainingExportUrl.useQuery, I.pipelineAnalytics.listRetrainStaging.useQuery, I.pipelineAnalytics.listRetrainCorpusPage.useQuery, I.pipelineAnalytics.getRetrainCorpusKpi.useQuery, I.pipelineAnalytics.listRetrainFrames.useQuery, I.pipelineAnalytics.selectRetrainFrames.useMutation, I.pipelineAnalytics.deselectRetrainFrame.useMutation, I.pipelineAnalytics.getRetrainFrameImage.useQuery, I.pipelineAnalytics.proposeRetrainAnnotations.useMutation, I.pipelineAnalytics.listRetrainAnnotations.useQuery, I.pipelineAnalytics.saveRetrainAnnotations.useMutation, I.pipelineAnalytics.backfillRetrainOrigins.useMutation, I.pipelineAnalytics.completeRetrainTrack.useMutation, I.pipelineAnalytics.restageRetrainTrack.useMutation, I.pipelineAnalytics.getRetrainExportUrl.useQuery, I.pipelineAnalytics.setRetrainFrameComplete.useMutation, I.pipelineAnalytics.writeRetrainArchive.useMutation, I.pipelineAnalytics.offerRetrainArchive.useMutation, I.pipelineAnalytics.listRetrainAssistProfiles.useQuery, I.pipelineAnalytics.proposeRetrainAnnotationsWithLlm.useMutation, I.pipelineAnalytics.createRetrainCollection.useMutation, I.pipelineAnalytics.listRetrainCollections.useQuery, I.pipelineAnalytics.resolveRetrainTrainingCorpus.useQuery, I.pipelineAnalytics.renameRetrainCollection.useMutation, I.pipelineAnalytics.deleteRetrainCollection.useMutation, I.pipelineAnalytics.addRetrainFrameFromRecording.useMutation, I.pipelineAnalytics.addRetrainFramesToCollection.useMutation, I.pipelineAnalytics.removeRetrainFrameFromCollection.useMutation, I.pipelineAnalytics.listRetrainCollectionFrames.useQuery, I.pipelineAnalytics.getEventMedia.useQuery, I.pipelineAnalytics.getTrackMedia.useQuery, I.pipelineAnalytics.listTrackMedia.useQuery, I.pipelineAnalytics.listEventMedia.useQuery, I.pipelineAnalytics.ownersWithMedia.useQuery, I.pipelineAnalytics.searchObjectEvents.useQuery, I.pipelineAnalytics.wipeObjectEmbeddings.useMutation, I.pipelineAnalytics.rebuildObjectEmbeddings.useMutation, I.pipelineAnalytics.getObjectEmbeddingRebuildStatus.useQuery, I.pipelineAnalytics.getDeviceSettingsContribution.useQuery, I.pipelineAnalytics.getDeviceLiveContribution.useQuery, I.pipelineAnalytics.applyDeviceSettingsPatch.useMutation, I.pipelineExecutor.getAvailableEngines.useQuery, I.pipelineExecutor.getSelectedEngine.useQuery, I.pipelineExecutor.getEngineProvisioning.useQuery, I.pipelineExecutor.getVideoPipelineSteps.useQuery, I.pipelineExecutor.setVideoPipelineSteps.useMutation, I.pipelineExecutor.getInferenceDeviceHealth.useQuery, I.pipelineExecutor.rearmInferenceDevice.useMutation, I.pipelineExecutor.getSchema.useQuery, I.pipelineExecutor.getOrchestratorConfigSchema.useQuery, I.pipelineExecutor.validatePipeline.useQuery, I.pipelineExecutor.getCapabilities.useQuery, I.pipelineExecutor.getAddonModels.useQuery, I.pipelineExecutor.downloadModel.useMutation, I.pipelineExecutor.deleteModel.useMutation, I.pipelineExecutor.runPipeline.useMutation, I.pipelineExecutor.runPipelineBatch.useMutation, I.pipelineExecutor.cacheFrameInPool.useMutation, I.pipelineExecutor.inferCached.useMutation, I.pipelineExecutor.uncacheFrame.useMutation, I.pipelineExecutor.getEffectiveTuning.useQuery, I.pipelineExecutor.listLoadedEngines.useQuery, I.pipelineExecutor.spinEngine.useMutation, I.pipelineExecutor.killEngine.useMutation, I.pipelineExecutor.listReferenceImages.useQuery, I.pipelineExecutor.getReferenceImage.useQuery, I.pipelineExecutor.getReferenceAudioFiles.useQuery, I.pipelineExecutor.getReferenceAudio.useQuery, I.pipelineExecutor.getAudioCapabilities.useQuery, I.pipelineExecutor.runAudioTest.useMutation, I.pipelineExecutor.getDetectionConfigSchema.useQuery, I.pipelineOrchestrator.requestOccupancyLook.useMutation, I.pipelineOrchestrator.pauseForStorageMigration.useMutation, I.pipelineOrchestrator.resumeForStorageMigration.useMutation, I.pipelineOrchestrator.assignPipeline.useMutation, I.pipelineOrchestrator.unassignPipeline.useMutation, I.pipelineOrchestrator.setPipelineDevicePin.useMutation, I.pipelineOrchestrator.getPipelineDevicePin.useQuery, I.pipelineOrchestrator.rebalance.useMutation, I.pipelineOrchestrator.getPipelineAssignments.useQuery, I.pipelineOrchestrator.getPipelineAssignment.useQuery, I.pipelineOrchestrator.getAgentLoad.useQuery, I.pipelineOrchestrator.getClusterModelChoice.useQuery, I.pipelineOrchestrator.getGlobalMetrics.useQuery, I.pipelineOrchestrator.getCameraMetrics.useQuery, I.pipelineOrchestrator.getCapabilityBindings.useQuery, I.pipelineOrchestrator.setCapabilityBinding.useMutation, I.pipelineOrchestrator.getIngestOwner.useQuery, I.pipelineOrchestrator.assignAudio.useMutation, I.pipelineOrchestrator.unassignAudio.useMutation, I.pipelineOrchestrator.getAudioAssignment.useQuery, I.pipelineOrchestrator.getAudioNodeLoad.useQuery, I.pipelineOrchestrator.getAudioAssignments.useQuery, I.pipelineOrchestrator.getAgentSettings.useQuery;
5049
+ I.deviceState.getCapSlice.useQuery, I.deviceState.getAllSnapshots.useQuery, I.deviceState.setCapSlice.useMutation, I.deviceState.claimFields.useMutation, I.deviceState.patchOwnedFields.useMutation, I.deviceState.releaseClaim.useMutation, I.deviceState.listClaims.useQuery, I.deviceState.getNativeCapSlice.useQuery, I.deviceStatus.getStatus.useQuery, I.dishwasher.start.useMutation, I.dishwasher.pause.useMutation, I.dishwasher.resume.useMutation, I.dishwasher.stop.useMutation, I.dishwasher.setProgram.useMutation, I.dishwasher.setPower.useMutation, I.dishwasher.setHalfLoad.useMutation, I.dishwasher.setHygienePlus.useMutation, I.dishwasher.setExtraDry.useMutation, I.dishwasher.setIntensiveZone.useMutation, I.dishwasher.setVarioSpeedPlus.useMutation, I.dishwasher.setChildLock.useMutation, I.dishwasher.setOption.useMutation, I.dishwasher.getOptions.useQuery, I.dishwasher.getStatus.useQuery, I.displayPalette.getPalette.useQuery, I.displayPalette.listPresets.useQuery, I.displayPalette.setPalette.useMutation, I.doorbell.getStatus.useQuery, I.enumSensor.getStatus.useQuery, I.eventEmitter.getStatus.useQuery, I.faceGallery.listIdentities.useQuery, I.faceGallery.createIdentity.useMutation, I.faceGallery.renameIdentity.useMutation, I.faceGallery.deleteIdentity.useMutation, I.faceGallery.listIdentitySamples.useQuery, I.faceGallery.auditIdentitySamples.useQuery, I.faceGallery.removeSample.useMutation, I.faceGallery.listRecentFaces.useQuery, I.faceGallery.getFaceByTrack.useQuery, I.faceGallery.getFaceMedia.useQuery, I.faceGallery.assignFace.useMutation, I.faceGallery.unassignFace.useMutation, I.faceGallery.deleteFace.useMutation, I.faceGallery.assignFaces.useMutation, I.faceGallery.unassignFaces.useMutation, I.faceGallery.suggestFaceClusters.useQuery, I.fanControl.setPercentage.useMutation, I.fanControl.setPreset.useMutation, I.fanControl.setDirection.useMutation, I.fanControl.setOscillating.useMutation, I.fanControl.getStatus.useQuery, I.featureProbe.getStatus.useQuery, I.flood.getStatus.useQuery, I.gas.getStatus.useQuery, I.groupActive.getStatus.useQuery, I.groupCommands.getStatus.useQuery, I.groupStatus.getStatus.useQuery, I.heatingValve.getStatus.useQuery, I.humidifier.setOn.useMutation, I.humidifier.setTargetHumidity.useMutation, I.humidifier.setMode.useMutation, I.humidifier.getStatus.useQuery, I.humiditySensor.getStatus.useQuery, I.image.getStatus.useQuery, I.imageSettings.getOptions.useQuery, I.imageSettings.setSettings.useMutation, I.imageSettings.getStatus.useQuery, I.integrations.list.useQuery, I.integrations.get.useQuery, I.integrations.getByAddonId.useQuery, I.integrations.create.useMutation, I.integrations.update.useMutation, I.integrations.delete.useMutation, I.integrations.getSettings.useQuery, I.integrations.setSettings.useMutation, I.integrations.getAvailableTypes.useQuery, I.integrations.testConnection.useMutation, I.intercom.startSession.useMutation, I.intercom.handleAnswer.useMutation, I.intercom.stopSession.useMutation, I.intercom.startTalkSession.useMutation, I.intercom.pushTalkAudio.useMutation, I.intercom.endTalkSession.useMutation, I.intercom.getStatus.useQuery, I.irTransmitter.send.useMutation, I.irTransmitter.getInfo.useQuery, I.keychainAdmin.status.useQuery, I.keychainAdmin.listSecrets.useQuery, I.keychainAdmin.listAudit.useQuery, I.keychainAdmin.reveal.useMutation, I.keychainAdmin.setSystemSecret.useMutation, I.keychainAdmin.importSecret.useMutation, I.keychainAdmin.deleteOrphans.useMutation, I.keychainAdmin.rotateMasterKey.useMutation, I.keychainAdmin.purgeRetiredKeys.useMutation, I.keychainAdmin.downloadRecoveryKey.useMutation, I.keychainAdmin.resetKeychain.useMutation, I.keychainAdmin.resetReport.useQuery, I.keychainAdmin.acknowledgeReset.useMutation, I.lawnMowerControl.startMowing.useMutation, I.lawnMowerControl.pause.useMutation, I.lawnMowerControl.dock.useMutation, I.lawnMowerControl.getStatus.useQuery, I.llm.generate.useMutation, I.llm.generateVision.useMutation, I.llm.cancel.useMutation, I.llm.listProfileKinds.useQuery, I.llm.listProfiles.useQuery, I.llm.upsertProfile.useMutation, I.llm.migrateRawSecrets.useMutation, I.llm.deleteProfile.useMutation, I.llm.testProfile.useMutation, I.llm.listModels.useMutation, I.llm.getDefaults.useQuery, I.llm.setDefault.useMutation, I.llm.getUsage.useQuery, I.llm.listModelCatalog.useQuery, I.llm.listRuntimeNodes.useQuery, I.llm.listNodeModels.useQuery, I.llm.resolveModelRef.useMutation, I.llm.installModel.useMutation, I.llm.deleteModel.useMutation, I.llm.getRuntimeStatus.useQuery, I.llm.startRuntime.useMutation, I.llm.stopRuntime.useMutation, I.localNetwork.list.useQuery, I.localNetwork.getPreferred.useQuery, I.localNetwork.getConnectionEndpoints.useQuery, I.localNetwork.getNotificationEndpoint.useQuery, I.localNetwork.setNotificationEndpoint.useMutation, I.localNetwork.getViewerEndpoints.useQuery, I.localNetwork.setViewerEndpoints.useMutation, I.localNetwork.getAddresses.useQuery, I.localNetwork.addCustomAddress.useMutation, I.localNetwork.removeCustomAddress.useMutation, I.localNetwork.setAddressRole.useMutation, I.localNetwork.getHubAddresses.useQuery, I.localNetwork.getAllowedAddresses.useQuery, I.localNetwork.setAllowedAddresses.useMutation, I.localNetwork.resetAllowlistToBestMatch.useMutation, I.localNetwork.getTlsStatus.useQuery, I.localNetwork.regenerateCertificate.useMutation, I.localNetwork.uploadCertificate.useMutation, I.localNetwork.downloadCa.useQuery, I.localNetwork.useStoredUploadedCertificate.useMutation, I.localNetwork.scanNetwork.useMutation, I.localNetwork.getScanSubnets.useQuery, I.localNetwork.setScanSubnets.useMutation, I.localNetwork.revertToGeneratedCertificate.useMutation, I.lockControl.lock.useMutation, I.lockControl.unlock.useMutation, I.lockControl.open.useMutation, I.lockControl.getStatus.useQuery, I.mediaPlayer.play.useMutation, I.mediaPlayer.pause.useMutation, I.mediaPlayer.stop.useMutation, I.mediaPlayer.next.useMutation, I.mediaPlayer.previous.useMutation, I.mediaPlayer.seek.useMutation, I.mediaPlayer.setVolume.useMutation, I.mediaPlayer.setMute.useMutation, I.mediaPlayer.setShuffle.useMutation, I.mediaPlayer.setRepeat.useMutation, I.mediaPlayer.selectSource.useMutation, I.mediaPlayer.playMedia.useMutation, I.mediaPlayer.getStatus.useQuery, I.meshNetwork.getStatus.useQuery, I.meshNetwork.join.useMutation, I.meshNetwork.startLogin.useMutation, I.meshNetwork.leave.useMutation, I.meshNetwork.logout.useMutation, I.meshNetwork.listPeers.useQuery, I.meshNetwork.testConnection.useMutation, I.meter.getStatus.useQuery, I.metricsProvider.collectSnapshot.useQuery, I.metricsProvider.getCached.useQuery, I.metricsProvider.getCurrent.useQuery, I.metricsProvider.getDiskSpace.useQuery, I.metricsProvider.getGpuInfo.useQuery, I.metricsProvider.getCpuTemperature.useQuery, I.metricsProvider.getProcessStats.useQuery, I.metricsProvider.listAddonInstances.useQuery, I.metricsProvider.getAddonStats.useQuery, I.metricsProvider.listNodeProcesses.useQuery, I.metricsProvider.getLoadSeries.useQuery, I.motion.isDetected.useQuery, I.motion.getStatus.useQuery, I.motionDetection.analyze.useMutation, I.motionDetection.removeCamera.useMutation, I.motionDetection.reset.useMutation, I.motionDetection.getDeviceSettingsContribution.useQuery, I.motionDetection.getDeviceLiveContribution.useQuery, I.motionDetection.applyDeviceSettingsPatch.useMutation, I.motionTrigger.setMotionTrigger.useMutation, I.motionTrigger.getStatus.useQuery, I.motionZones.getOptions.useQuery, I.motionZones.setZone.useMutation, I.motionZones.getStatus.useQuery, I.mqttBroker.listBrokers.useQuery, I.mqttBroker.getBrokerConfig.useQuery, I.mqttBroker.addBroker.useMutation, I.mqttBroker.removeBroker.useMutation, I.mqttBroker.testConnection.useMutation, I.mqttBroker.startEmbeddedBroker.useMutation, I.mqttBroker.stopEmbeddedBroker.useMutation, I.mqttBroker.getStatus.useQuery, I.nativeObjectDetection.getOptions.useQuery, I.nativeObjectDetection.setSettings.useMutation, I.nativeObjectDetection.setEnabled.useMutation, I.nativeObjectDetection.getStatus.useQuery, I.navigation.move.useMutation, I.navigation.stop.useMutation, I.navigation.goToPoint.useMutation, I.navigation.listActions.useQuery, I.navigation.runAction.useMutation, I.navigation.playSound.useMutation, I.navigation.setLightOn.useMutation, I.navigation.setLightMode.useMutation, I.navigation.setLightLevel.useMutation, I.navigation.getFeatures.useQuery, I.navigation.getStatus.useQuery, I.networkAccess.start.useMutation, I.networkAccess.stop.useMutation, I.networkAccess.getEndpoint.useQuery, I.networkAccess.getStatus.useQuery, I.networkAccess.listEndpoints.useQuery, I.networkLink.getStatus.useQuery, I.networkQuality.getDeviceStats.useQuery, I.networkQuality.getAllStats.useQuery, I.networkQuality.reportClientStats.useMutation, I.nodes.topology.useQuery, I.nodes.directory.useQuery, I.nodes.deployAddon.useMutation, I.nodes.undeployAddon.useMutation, I.nodes.restartAddon.useMutation, I.nodes.restartProcess.useMutation, I.nodes.restartNode.useMutation, I.nodes.shutdownNode.useMutation, I.nodes.renameNode.useMutation, I.nodes.clusterAddonStatus.useQuery, I.nodes.getCapUsageGraph.useQuery, I.nodes.getNodeAddons.useQuery, I.nodes.setProcessLogLevel.useMutation, I.nodes.executeQuery.useMutation, I.notificationOutput.listTargetKinds.useQuery, I.notificationOutput.listTargets.useQuery, I.notificationOutput.getTarget.useQuery, I.notificationOutput.discoverTargets.useQuery, I.notificationOutput.probeTargetConfig.useMutation, I.notificationOutput.send.useMutation, I.notificationOutput.testTarget.useMutation, I.notificationOutput.upsertTarget.useMutation, I.notificationOutput.deleteTarget.useMutation, I.notificationOutput.setTargetEnabled.useMutation, I.notificationRules.listRules.useQuery, I.notificationRules.getRule.useQuery, I.notificationRules.createRule.useMutation, I.notificationRules.updateRule.useMutation, I.notificationRules.deleteRule.useMutation, I.notificationRules.setRuleEnabled.useMutation, I.notificationRules.listSequences.useQuery, I.notificationRules.getSequence.useQuery, I.notificationRules.createSequence.useMutation, I.notificationRules.updateSequence.useMutation, I.notificationRules.deleteSequence.useMutation, I.notificationRules.getClipRetentionAsks.useQuery, I.notificationRules.listDeviceMutes.useQuery, I.notificationRules.setDeviceMuted.useMutation, I.notificationRules.testRule.useMutation, I.notificationRules.previewStateSummary.useMutation, I.notificationRules.getConditionCatalog.useQuery, I.notificationRules.getTemplateCatalog.useQuery, I.notificationRules.previewTemplate.useMutation, I.notificationRules.getHistory.useQuery, I.notificationRules.getRuleLastRuns.useQuery, I.notificationRules.resolveArtifactUrl.useQuery, I.notificationRules.listSnoozes.useQuery, I.notificationRules.createSnooze.useMutation, I.notificationRules.cancelSnooze.useMutation, I.notificationRules.getAlarmConfig.useQuery, I.notificationRules.setAlarmConfig.useMutation, I.notificationRules.createAlarmProfile.useMutation, I.notificationRules.renameAlarmProfile.useMutation, I.notificationRules.deleteAlarmProfile.useMutation, I.notificationRules.activateAlarmProfile.useMutation, I.notificationRules.getAlarmSensors.useQuery, I.notifier.send.useMutation, I.notifier.cancel.useMutation, I.notifier.getStatus.useQuery, I.numericSensor.getStatus.useQuery, I.oidcConnections.connectionFormSchema.useQuery, I.oidcConnections.listConnections.useQuery, I.oidcConnections.createConnection.useMutation, I.oidcConnections.updateConnection.useMutation, I.oidcConnections.deleteConnection.useMutation, I.osd.setOverlay.useMutation, I.osd.getStatus.useQuery, I.osdManager.getDeviceOsd.useQuery, I.osdManager.getSourceCatalog.useQuery, I.osdManager.getConditionSupport.useQuery, I.osdManager.setSlotBinding.useMutation, I.osdManager.clearSlotBinding.useMutation, I.osdManager.setSlotCameraEnabled.useMutation, I.osdManager.copyDeviceConfiguration.useMutation, I.osdManager.previewSlot.useMutation, I.osdManager.renderDevice.useMutation, I.osdManager.listTemplates.useQuery, I.osdManager.upsertTemplate.useMutation, I.osdManager.deleteTemplate.useMutation, I.petFeeder.feed.useMutation, I.petFeeder.cancelFeed.useMutation, I.petFeeder.resetDesiccant.useMutation, I.petFeeder.markFoodReplenished.useMutation, I.petFeeder.callPet.useMutation, I.petFeeder.playSound.useMutation, I.petFeeder.setChildLock.useMutation, I.petFeeder.setIndicatorLight.useMutation, I.petFeeder.setFeedSound.useMutation, I.petFeeder.setVolume.useMutation, I.petFeeder.getStatus.useQuery, I.petFountain.setPump.useMutation, I.petFountain.setPumpInterval.useMutation, I.petFountain.setPumpOnMinutes.useMutation, I.petFountain.setPumpOffMinutes.useMutation, I.petFountain.resetDailyConsumption.useMutation, I.petFountain.getStatus.useQuery, I.pipelineAnalytics.getActiveTracks.useQuery, I.pipelineAnalytics.getTrack.useQuery, I.pipelineAnalytics.listTracks.useQuery, I.pipelineAnalytics.listRecentTracks.useQuery, I.pipelineAnalytics.clearTracks.useMutation, I.pipelineAnalytics.getMotionEvents.useQuery, I.pipelineAnalytics.getObjectEvents.useQuery, I.pipelineAnalytics.getAudioEvents.useQuery, I.pipelineAnalytics.listEventKinds.useQuery, I.pipelineAnalytics.listEventKindsBatch.useQuery, I.pipelineAnalytics.getSensorEvents.useQuery, I.pipelineAnalytics.getKeyEvents.useQuery, I.pipelineAnalytics.getKeyEventsBatch.useQuery, I.pipelineAnalytics.readLongTermSeries.useQuery, I.pipelineAnalytics.getEventDensity.useQuery, I.pipelineAnalytics.getEventDensityBatch.useQuery, I.pipelineAnalytics.pruneEventsBefore.useMutation, I.pipelineAnalytics.pruneTracksBefore.useMutation, I.pipelineAnalytics.wipeAllAnalytics.useMutation, I.pipelineAnalytics.reconcileFromDisk.useMutation, I.pipelineAnalytics.deleteTracks.useMutation, I.pipelineAnalytics.setTrackFlags.useMutation, I.pipelineAnalytics.listArchivedDebugNotes.useQuery, I.pipelineAnalytics.setTrackRelation.useMutation, I.pipelineAnalytics.clearTrackRelation.useMutation, I.pipelineAnalytics.setTrackPurity.useMutation, I.pipelineAnalytics.listTrackRelations.useQuery, I.pipelineAnalytics.listBirthDecisions.useQuery, I.pipelineAnalytics.getEventStoreFootprint.useQuery, I.pipelineAnalytics.getEventMediaFootprintByKind.useQuery, I.pipelineAnalytics.pruneEvents.useMutation, I.pipelineAnalytics.deleteDeviceEvents.useMutation, I.pipelineAnalytics.pauseForStorageMigration.useMutation, I.pipelineAnalytics.resumeForStorageMigration.useMutation, I.pipelineAnalytics.refreshStorageLocationsForMigration.useMutation, I.pipelineAnalytics.startStorageMigrationMove.useMutation, I.pipelineAnalytics.getStorageMigrationMoveStatus.useQuery, I.pipelineAnalytics.cancelStorageMigrationMove.useMutation, I.pipelineAnalytics.relocateMedia.useMutation, I.pipelineAnalytics.countUnstampedEventMedia.useQuery, I.pipelineAnalytics.countRelocatableMedia.useQuery, I.pipelineAnalytics.listRelocateMediaJobs.useQuery, I.pipelineAnalytics.cancelRelocateMedia.useMutation, I.pipelineAnalytics.listOpsLog.useQuery, I.pipelineAnalytics.reclaimDebugMedia.useMutation, I.pipelineAnalytics.getMediaReclaimStatus.useQuery, I.pipelineAnalytics.getTrainingExportSummary.useQuery, I.pipelineAnalytics.getTrainingExportUrl.useQuery, I.pipelineAnalytics.listRetrainStaging.useQuery, I.pipelineAnalytics.listRetrainCorpusPage.useQuery, I.pipelineAnalytics.getRetrainCorpusKpi.useQuery, I.pipelineAnalytics.listRetrainFrames.useQuery, I.pipelineAnalytics.selectRetrainFrames.useMutation, I.pipelineAnalytics.deselectRetrainFrame.useMutation, I.pipelineAnalytics.getRetrainFrameImage.useQuery, I.pipelineAnalytics.proposeRetrainAnnotations.useMutation, I.pipelineAnalytics.listRetrainAnnotations.useQuery, I.pipelineAnalytics.saveRetrainAnnotations.useMutation, I.pipelineAnalytics.backfillRetrainOrigins.useMutation, I.pipelineAnalytics.completeRetrainTrack.useMutation, I.pipelineAnalytics.restageRetrainTrack.useMutation, I.pipelineAnalytics.getRetrainExportUrl.useQuery, I.pipelineAnalytics.setRetrainFrameComplete.useMutation, I.pipelineAnalytics.writeRetrainArchive.useMutation, I.pipelineAnalytics.offerRetrainArchive.useMutation, I.pipelineAnalytics.listRetrainAssistProfiles.useQuery, I.pipelineAnalytics.proposeRetrainAnnotationsWithLlm.useMutation, I.pipelineAnalytics.createRetrainCollection.useMutation, I.pipelineAnalytics.listRetrainCollections.useQuery, I.pipelineAnalytics.resolveRetrainTrainingCorpus.useQuery, I.pipelineAnalytics.renameRetrainCollection.useMutation, I.pipelineAnalytics.deleteRetrainCollection.useMutation, I.pipelineAnalytics.addRetrainFrameFromRecording.useMutation, I.pipelineAnalytics.addRetrainFramesToCollection.useMutation, I.pipelineAnalytics.removeRetrainFrameFromCollection.useMutation, I.pipelineAnalytics.listRetrainCollectionFrames.useQuery, I.pipelineAnalytics.getEventMedia.useQuery, I.pipelineAnalytics.getTrackMedia.useQuery, I.pipelineAnalytics.listTrackMedia.useQuery, I.pipelineAnalytics.listEventMedia.useQuery, I.pipelineAnalytics.ownersWithMedia.useQuery, I.pipelineAnalytics.searchObjectEvents.useQuery, I.pipelineAnalytics.wipeObjectEmbeddings.useMutation, I.pipelineAnalytics.rebuildObjectEmbeddings.useMutation, I.pipelineAnalytics.getObjectEmbeddingRebuildStatus.useQuery, I.pipelineAnalytics.getDeviceSettingsContribution.useQuery, I.pipelineAnalytics.getDeviceLiveContribution.useQuery, I.pipelineAnalytics.applyDeviceSettingsPatch.useMutation, I.pipelineExecutor.getAvailableEngines.useQuery, I.pipelineExecutor.getSelectedEngine.useQuery, I.pipelineExecutor.getEngineProvisioning.useQuery, I.pipelineExecutor.getVideoPipelineSteps.useQuery, I.pipelineExecutor.setVideoPipelineSteps.useMutation, I.pipelineExecutor.getInferenceDeviceHealth.useQuery, I.pipelineExecutor.rearmInferenceDevice.useMutation, I.pipelineExecutor.getSchema.useQuery, I.pipelineExecutor.getOrchestratorConfigSchema.useQuery, I.pipelineExecutor.validatePipeline.useQuery, I.pipelineExecutor.getCapabilities.useQuery, I.pipelineExecutor.getAddonModels.useQuery, I.pipelineExecutor.downloadModel.useMutation, I.pipelineExecutor.deleteModel.useMutation, I.pipelineExecutor.runPipeline.useMutation, I.pipelineExecutor.runPipelineBatch.useMutation, I.pipelineExecutor.cacheFrameInPool.useMutation, I.pipelineExecutor.inferCached.useMutation, I.pipelineExecutor.uncacheFrame.useMutation, I.pipelineExecutor.getEffectiveTuning.useQuery, I.pipelineExecutor.listLoadedEngines.useQuery, I.pipelineExecutor.spinEngine.useMutation, I.pipelineExecutor.killEngine.useMutation, I.pipelineExecutor.listReferenceImages.useQuery, I.pipelineExecutor.getReferenceImage.useQuery, I.pipelineExecutor.getReferenceAudioFiles.useQuery, I.pipelineExecutor.getReferenceAudio.useQuery, I.pipelineExecutor.getAudioCapabilities.useQuery, I.pipelineExecutor.runAudioTest.useMutation, I.pipelineExecutor.getDetectionConfigSchema.useQuery, I.pipelineOrchestrator.requestOccupancyLook.useMutation, I.pipelineOrchestrator.pauseForStorageMigration.useMutation, I.pipelineOrchestrator.resumeForStorageMigration.useMutation, I.pipelineOrchestrator.assignPipeline.useMutation, I.pipelineOrchestrator.unassignPipeline.useMutation, I.pipelineOrchestrator.setPipelineDevicePin.useMutation, I.pipelineOrchestrator.getPipelineDevicePin.useQuery, I.pipelineOrchestrator.rebalance.useMutation, I.pipelineOrchestrator.getPipelineAssignments.useQuery, I.pipelineOrchestrator.getPipelineAssignment.useQuery, I.pipelineOrchestrator.getAgentLoad.useQuery, I.pipelineOrchestrator.getClusterModelChoice.useQuery, I.pipelineOrchestrator.getGlobalMetrics.useQuery, I.pipelineOrchestrator.getCameraMetrics.useQuery, I.pipelineOrchestrator.getCapabilityBindings.useQuery, I.pipelineOrchestrator.setCapabilityBinding.useMutation, I.pipelineOrchestrator.getIngestOwner.useQuery, I.pipelineOrchestrator.assignAudio.useMutation, I.pipelineOrchestrator.unassignAudio.useMutation, I.pipelineOrchestrator.getAudioAssignment.useQuery, I.pipelineOrchestrator.getAudioNodeLoad.useQuery, I.pipelineOrchestrator.getAudioAssignments.useQuery, I.pipelineOrchestrator.getAgentSettings.useQuery;
5050
5050
  var vo = I.pipelineOrchestrator.listAgentSettings.useQuery;
5051
5051
  //#endregion
5052
5052
  //#region ../ui-library/src/primitives/badge.tsx
@@ -29704,7 +29704,7 @@ function by({ children: e, open: t, onOpenChange: n }) {
29704
29704
  children: e
29705
29705
  });
29706
29706
  }
29707
- var xy = to("relative fixed left-1/2 top-1/2 -translate-x-1/2 -translate-y-1/2 m-0 w-[calc(100vw-2rem)] bg-background-elevated text-foreground border border-border rounded-lg p-4 backdrop:bg-black/50 backdrop:backdrop-blur-sm max-h-[calc(100dvh-2rem-2*max(env(safe-area-inset-top),env(safe-area-inset-bottom)))] [&:not([open])]:hidden", {
29707
+ var xy = to("relative fixed left-1/2 top-1/2 -translate-x-1/2 -translate-y-1/2 m-0 w-[calc(100vw-2rem)] whitespace-normal bg-background-elevated text-foreground border border-border rounded-lg p-4 backdrop:bg-black/50 backdrop:backdrop-blur-sm max-h-[calc(100dvh-2rem-2*max(env(safe-area-inset-top),env(safe-area-inset-bottom)))] [&:not([open])]:hidden", {
29708
29708
  variants: {
29709
29709
  width: {
29710
29710
  sm: "max-w-sm",
@@ -29816,7 +29816,7 @@ function Ey({ className: e, ...t }) {
29816
29816
  }
29817
29817
  //#endregion
29818
29818
  //#region ../../node_modules/qrcode.react/lib/esm/index.js
29819
- e(), e(), e(), e(), e(), e(), e(), n(() => import("./MotionZonesSettings-oMmkwRPD.mjs").then((e) => ({ default: e.MotionZonesSettings }))), n(() => import("./PrivacyMaskSettings-DHuD6yBb.mjs").then((e) => ({ default: e.PrivacyMaskSettings }))), e(), e();
29819
+ e(), e(), e(), e(), e(), e(), e(), n(() => import("./MotionZonesSettings-3MG9zvaA.mjs").then((e) => ({ default: e.MotionZonesSettings }))), n(() => import("./PrivacyMaskSettings-BA58yuWC.mjs").then((e) => ({ default: e.PrivacyMaskSettings }))), e(), e();
29820
29820
  var Dy = Object.defineProperty, Oy = Object.getOwnPropertySymbols, ky = Object.prototype.hasOwnProperty, Ay = Object.prototype.propertyIsEnumerable, jy = (e, t, n) => t in e ? Dy(e, t, {
29821
29821
  enumerable: !0,
29822
29822
  configurable: !0,
@@ -30831,7 +30831,7 @@ function ab({ active: e, onClick: t, disabled: n, children: r, title: i }) {
30831
30831
  });
30832
30832
  }
30833
30833
  function ob({ catalog: e, value: t, onChange: n, disabled: r }) {
30834
- let i = S(), a = Pe(e), o = de(e, t), s = a.find((e) => e.family === o?.family)?.family ?? a[0]?.family ?? "", c = a.find((e) => e.family === s) ?? a[0];
30834
+ let i = S(), a = Pe(e), o = te(e, t), s = a.find((e) => e.family === o?.family)?.family ?? a[0]?.family ?? "", c = a.find((e) => e.family === s) ?? a[0];
30835
30835
  if (!c) return null;
30836
30836
  let l = c.tiers.find((e) => e.tier === o?.tier)?.tier ?? c.tiers[0]?.tier ?? "", u = c.tiers.find((e) => e.tier === l) ?? c.tiers[0];
30837
30837
  if (!u) return null;
@@ -31474,13 +31474,13 @@ function zb(e, t, n) {
31474
31474
  }
31475
31475
  var Bb = ["camera", "node"];
31476
31476
  function Vb({ field: e, layers: t, target: n, labels: r, boundKeys: i, modelId: a, pinned: o, disabled: s, onReset: c, action: l }) {
31477
- let u = S(), d = Me(t), f = Pb(e, a), p = f.fromModel ? u("uiLibrary.layeredSettings.modelDefault", "model default") : u("uiLibrary.layeredSettings.default", "default"), m = _e(t, e.key, i), h = Nb(e), g = h ? Be(d, e.key, a, f.value, f.value) : null, _ = g === null || g.source === "override" ? m : "default", b = _ === "default" ? p : r[_] ?? _, x = Bb.filter((e) => e !== _ && r[e] !== void 0).filter((n) => t[n]?.[e.key] !== void 0).map((n) => {
31477
+ let u = S(), d = T(t), f = Pb(e, a), p = f.fromModel ? u("uiLibrary.layeredSettings.modelDefault", "model default") : u("uiLibrary.layeredSettings.default", "default"), m = _e(t, e.key, i), h = Nb(e), g = h ? Be(d, e.key, a, f.value, f.value) : null, _ = g === null || g.source === "override" ? m : "default", b = _ === "default" ? p : r[_] ?? _, x = Bb.filter((e) => e !== _ && r[e] !== void 0).filter((n) => t[n]?.[e.key] !== void 0).map((n) => {
31478
31478
  let i = h ? t[n]?.[Qe(e.key)] : void 0, o = typeof i == "string" && i !== a ? u("uiLibrary.layeredSettings.forModel", " (for {{model}})", { model: i }) : "";
31479
31479
  return `${r[n]} ${Ib(e, t[n]?.[e.key])}${o}`;
31480
- }), C = _ === "default" ? x : [...x, `${p} ${Ib(e, f.value)}`], w = _e({ [n]: t[n] }, e.key, i) !== "default", T = Bb.slice(Bb.indexOf(n) + 1).find((n) => r[n] !== void 0 && t[n]?.[e.key] !== void 0), E = T === void 0 ? p : r[T] ?? T, D = m === "default" ? "default" : _e({
31480
+ }), C = _ === "default" ? x : [...x, `${p} ${Ib(e, f.value)}`], w = _e({ [n]: t[n] }, e.key, i) !== "default", E = Bb.slice(Bb.indexOf(n) + 1).find((n) => r[n] !== void 0 && t[n]?.[e.key] !== void 0), D = E === void 0 ? p : r[E] ?? E, ee = m === "default" ? "default" : _e({
31481
31481
  ...t,
31482
31482
  [m]: void 0
31483
- }, e.key, i), ee = D === "default" ? p : r[D] ?? D;
31483
+ }, e.key, i), te = ee === "default" ? p : r[ee] ?? ee;
31484
31484
  return /* @__PURE__ */ y("div", {
31485
31485
  className: "mt-1 flex flex-wrap items-center gap-x-2 gap-y-1 text-[10px]",
31486
31486
  children: [
@@ -31497,7 +31497,7 @@ function Vb({ field: e, layers: t, target: n, labels: r, boundKeys: i, modelId:
31497
31497
  o && /* @__PURE__ */ v("span", {
31498
31498
  className: "rounded border border-warning/40 px-1.5 py-px text-warning",
31499
31499
  title: u("uiLibrary.layeredSettings.pinnedHint", "Stored by an older editor as a copy of the value below. It changes nothing today, but it stops later changes below from reaching this camera."),
31500
- children: u("uiLibrary.layeredSettings.pinned", "pinned at the {{source}} value", { source: ee.toLowerCase() })
31500
+ children: u("uiLibrary.layeredSettings.pinned", "pinned at the {{source}} value", { source: te.toLowerCase() })
31501
31501
  }),
31502
31502
  /* @__PURE__ */ y("span", {
31503
31503
  className: "ml-auto flex items-center gap-2",
@@ -31506,14 +31506,14 @@ function Vb({ field: e, layers: t, target: n, labels: r, boundKeys: i, modelId:
31506
31506
  disabled: s,
31507
31507
  onClick: c,
31508
31508
  className: "rounded px-1 text-foreground-subtle hover:bg-muted hover:text-foreground disabled:opacity-50",
31509
- children: u("uiLibrary.layeredSettings.resetTo", "Reset to {{target}}", { target: E.toLowerCase() })
31509
+ children: u("uiLibrary.layeredSettings.resetTo", "Reset to {{target}}", { target: D.toLowerCase() })
31510
31510
  })]
31511
31511
  })
31512
31512
  ]
31513
31513
  });
31514
31514
  }
31515
31515
  function Hb({ addon: e, fields: t, layers: n, target: r, labels: i, modelId: a, onChangeLayer: o, rootModel: s, pinnedKeys: c = [], fieldActions: l, headerActions: u, highlightKey: d = null, disabled: f = !1 }) {
31516
- let p = S(), m = r === "camera" ? Mb(t) : t, h = Xe(m), g = Me(n), _ = n[r], b = zb(e, a, g), x = hb(e.id, g, s);
31516
+ let p = S(), m = r === "camera" ? Mb(t) : t, h = Xe(m), g = T(n), _ = n[r], b = zb(e, a, g), x = hb(e.id, g, s);
31517
31517
  return /* @__PURE__ */ y("div", {
31518
31518
  className: "space-y-2 text-xs",
31519
31519
  children: [
@@ -34273,7 +34273,7 @@ function uw({ trpc: e, deviceId: t, features: n, layout: r, optimistic: i }) {
34273
34273
  e.stopPropagation(), !d && (f === "play" ? (u({ state: "playing" }), o?.play({})) : (u({ state: "paused" }), o?.pause({})));
34274
34274
  },
34275
34275
  className: B("inline-flex h-5 w-5 items-center justify-center rounded text-foreground-subtle hover:text-foreground hover:bg-surface-hover transition-colors text-xs", d && "opacity-40 cursor-not-allowed"),
34276
- children: f === "play" ? "▶" : "⏸"
34276
+ children: v(f === "play" ? ir : Qn, { className: "h-3 w-3" })
34277
34277
  })]
34278
34278
  }), r === "full" && /* @__PURE__ */ y(b, { children: [
34279
34279
  /* @__PURE__ */ y("div", {
@@ -34424,7 +34424,7 @@ function _w(e) {
34424
34424
  }
34425
34425
  }
34426
34426
  function vw(e) {
34427
- let t = e.capName === void 0 ? void 0 : e.display?.perCap?.[e.capName], n = t?.precision ?? e.display?.precision ?? e.roleDefault?.precision ?? e.declarationPrecision, r = _w(e), i = e.preference ?? (e.unitPreferences === void 0 ? Re : pw(e.unitPreferences, r)), a = r === void 0 ? void 0 : ze(r), o = r === void 0 ? void 0 : ce(r, i), s = gw(t?.unit ?? e.display?.unit ?? e.roleDefault?.unit), c = s !== void 0 && a !== void 0 && s !== a && De(a, s), l = c ? s : o ?? "", u = r === "duration" || r === "information" || r === "duration-ms", d = (e) => u || a === void 0 || l.length === 0 || l === a ? e : j(e, a, l) ?? e;
34427
+ let t = e.capName === void 0 ? void 0 : e.display?.perCap?.[e.capName], n = t?.precision ?? e.display?.precision ?? e.roleDefault?.precision ?? e.declarationPrecision, r = _w(e), i = e.preference ?? (e.unitPreferences === void 0 ? Re : pw(e.unitPreferences, r)), a = r === void 0 ? void 0 : ze(r), o = r === void 0 ? void 0 : Me(r, i), s = gw(t?.unit ?? e.display?.unit ?? e.roleDefault?.unit), c = s !== void 0 && a !== void 0 && s !== a && De(a, s), l = c ? s : o ?? "", u = r === "duration" || r === "information" || r === "duration-ms", d = (e) => u || a === void 0 || l.length === 0 || l === a ? e : j(e, a, l) ?? e;
34428
34428
  return {
34429
34429
  unit: l,
34430
34430
  precision: n,
@@ -42327,7 +42327,7 @@ function DA(e, t) {
42327
42327
  translate: (t, n) => xA(e, fA(), t, n)
42328
42328
  };
42329
42329
  }
42330
- e(), n(() => import("./MaskShapeCanvas-CrWutXSb.mjs").then((e) => ({ default: e.MaskShapeCanvas }))), n(() => import("./MotionZonesSettings-oMmkwRPD.mjs").then((e) => ({ default: e.MotionZonesSettings }))), n(() => import("./SceneMonitorEditor-CVG3p4fk.mjs").then((e) => ({ default: e.SceneMonitorEditor }))), n(() => import("./PrivacyMaskSettings-DHuD6yBb.mjs").then((e) => ({ default: e.PrivacyMaskSettings })));
42330
+ e(), n(() => import("./MaskShapeCanvas-CrWutXSb.mjs").then((e) => ({ default: e.MaskShapeCanvas }))), n(() => import("./MotionZonesSettings-3MG9zvaA.mjs").then((e) => ({ default: e.MotionZonesSettings }))), n(() => import("./SceneMonitorEditor-BEf_PNcV.mjs").then((e) => ({ default: e.SceneMonitorEditor }))), n(() => import("./PrivacyMaskSettings-BA58yuWC.mjs").then((e) => ({ default: e.PrivacyMaskSettings })));
42331
42331
  //#endregion
42332
42332
  //#region src/plugin-catalog/plugin-catalog-yolo-manifest-data.json
42333
42333
  var OA = /*#__PURE__*/ JSON.parse("[{\"id\":\"scrypted-yolov9t-relu-coreml\",\"label\":\"plugin catalog YOLOv9T ReLU CoreML\",\"family\":\"yolov9t\",\"variant\":\"relu\",\"format\":\"coreml\",\"precision\":\"fp16\",\"files\":[{\"relativePath\":\"coreml/scrypted_yolov9t_relu/scrypted_yolov9t_relu.mlpackage/Manifest.json\",\"size\":617,\"sha256\":\"0a8733949d77e3204dba6418e81a11a8cc177015711457ce2c171266f23382d6\"},{\"relativePath\":\"coreml/scrypted_yolov9t_relu/scrypted_yolov9t_relu.mlpackage/Data/com.apple.CoreML/model.mlmodel\",\"size\":322229,\"sha256\":\"f5a62f196f1e72a84efa1637119dffb6501621af9cf6f867bc76b4b59c9242a0\"},{\"relativePath\":\"coreml/scrypted_yolov9t_relu/scrypted_yolov9t_relu.mlpackage/Data/com.apple.CoreML/weights/weight.bin\",\"size\":3797160,\"sha256\":\"b994419b8b68cfd6b89c3c6f3fe6b37458c86cc1d87fcca3df5034476a99dd38\"}],\"sizeMB\":4.12},{\"id\":\"scrypted-yolov9t-relu-onnx\",\"label\":\"plugin catalog YOLOv9T ReLU ONNX\",\"family\":\"yolov9t\",\"variant\":\"relu\",\"format\":\"onnx\",\"precision\":\"fp32\",\"files\":[{\"relativePath\":\"onnx/scrypted_yolov9t_relu/scrypted_yolov9t_relu.onnx\",\"size\":8499266,\"sha256\":\"3f11ea2071b27c285b58c16636a44d6a0a27bdd1ca8b64112dfadabd39cfea47\"}],\"sizeMB\":8.5},{\"id\":\"scrypted-yolov9t-relu-test-coreml\",\"label\":\"plugin catalog YOLOv9T ReLU test CoreML\",\"family\":\"yolov9t\",\"variant\":\"relu_test\",\"format\":\"coreml\",\"precision\":\"fp16\",\"files\":[{\"relativePath\":\"coreml/scrypted_yolov9t_relu_test/scrypted_yolov9t_relu_test.mlpackage/Manifest.json\",\"size\":617,\"sha256\":\"a5e0128b643f1a66f3e07d4b332f9ccbca97ccab75651c794f0b9f1fb41c8491\"},{\"relativePath\":\"coreml/scrypted_yolov9t_relu_test/scrypted_yolov9t_relu_test.mlpackage/Data/com.apple.CoreML/model.mlmodel\",\"size\":322229,\"sha256\":\"79f4f647f2a0c79db3b560c84251b48c7ba7cbe9c1fecc9674d1a603a389dfa3\"},{\"relativePath\":\"coreml/scrypted_yolov9t_relu_test/scrypted_yolov9t_relu_test.mlpackage/Data/com.apple.CoreML/weights/weight.bin\",\"size\":3797160,\"sha256\":\"72efc9dc6af9241b5e5ee7de24a4f55741f6425d0e279d797f0f223e3d355f84\"}],\"sizeMB\":4.12},{\"id\":\"scrypted-yolov9t-relu-test-onnx\",\"label\":\"plugin catalog YOLOv9T ReLU test ONNX\",\"family\":\"yolov9t\",\"variant\":\"relu_test\",\"format\":\"onnx\",\"precision\":\"fp32\",\"files\":[{\"relativePath\":\"onnx/scrypted_yolov9t_relu_test/scrypted_yolov9t_relu_test.onnx\",\"size\":8499266,\"sha256\":\"d20aa0e6923a3af7f5e84e3a6d28fb00e8ecd592e3225f986f93bd34b634e2f8\"}],\"sizeMB\":8.5},{\"id\":\"scrypted-yolov9s-relu-coreml\",\"label\":\"plugin catalog YOLOv9S ReLU CoreML\",\"family\":\"yolov9s\",\"variant\":\"relu\",\"format\":\"coreml\",\"precision\":\"fp16\",\"files\":[{\"relativePath\":\"coreml/scrypted_yolov9s_relu/scrypted_yolov9s_relu.mlpackage/Manifest.json\",\"size\":617,\"sha256\":\"3bcdb820b82f1e89266f2d11bae1604d3ee4ca6d11dc5bd5c57055ff4157e9f3\"},{\"relativePath\":\"coreml/scrypted_yolov9s_relu/scrypted_yolov9s_relu.mlpackage/Data/com.apple.CoreML/model.mlmodel\",\"size\":322664,\"sha256\":\"9a9c3c9cbca406ec2f0418ec867ed6b878ec6d02c16636d30e0bbd83d2ff7c40\"},{\"relativePath\":\"coreml/scrypted_yolov9s_relu/scrypted_yolov9s_relu.mlpackage/Data/com.apple.CoreML/weights/weight.bin\",\"size\":14190120,\"sha256\":\"fd51eda58a993997268f6a2e424b536ba173207ad7974ab8bee2a8ff76d52dab\"}],\"sizeMB\":14.51},{\"id\":\"scrypted-yolov9s-relu-onnx\",\"label\":\"plugin catalog YOLOv9S ReLU ONNX\",\"family\":\"yolov9s\",\"variant\":\"relu\",\"format\":\"onnx\",\"precision\":\"fp32\",\"files\":[{\"relativePath\":\"onnx/scrypted_yolov9s_relu/scrypted_yolov9s_relu.onnx\",\"size\":29287339,\"sha256\":\"ca0b5bd98d5f59eb2029c6cb5129d53af59873f62a317a028beda463bbb96399\"}],\"sizeMB\":29.29},{\"id\":\"scrypted-yolov9s-relu-test-coreml\",\"label\":\"plugin catalog YOLOv9S ReLU test CoreML\",\"family\":\"yolov9s\",\"variant\":\"relu_test\",\"format\":\"coreml\",\"precision\":\"fp16\",\"files\":[{\"relativePath\":\"coreml/scrypted_yolov9s_relu_test/scrypted_yolov9s_relu_test.mlpackage/Manifest.json\",\"size\":617,\"sha256\":\"e2d24de0ce7e8573f19572029765e55abc714f36a85175ad7fcb95c001a76653\"},{\"relativePath\":\"coreml/scrypted_yolov9s_relu_test/scrypted_yolov9s_relu_test.mlpackage/Data/com.apple.CoreML/model.mlmodel\",\"size\":322664,\"sha256\":\"186b147cdfd15c5ed7a381ec3a426a22cee0b5c52d56f14efd26da06357f5cb0\"},{\"relativePath\":\"coreml/scrypted_yolov9s_relu_test/scrypted_yolov9s_relu_test.mlpackage/Data/com.apple.CoreML/weights/weight.bin\",\"size\":14190120,\"sha256\":\"e50651924c2cbffd56008a8953569e66c3de69f21807fcf7d825390ce30f21f8\"}],\"sizeMB\":14.51},{\"id\":\"scrypted-yolov9s-relu-test-onnx\",\"label\":\"plugin catalog YOLOv9S ReLU test ONNX\",\"family\":\"yolov9s\",\"variant\":\"relu_test\",\"format\":\"onnx\",\"precision\":\"fp32\",\"files\":[{\"relativePath\":\"onnx/scrypted_yolov9s_relu_test/scrypted_yolov9s_relu_test.onnx\",\"size\":29287339,\"sha256\":\"115ddb83333762a0f2599421335678696454a5c3571ade5df9bac8e9cb5fb4cf\"}],\"sizeMB\":29.29},{\"id\":\"scrypted-yolov9m-relu-coreml\",\"label\":\"plugin catalog YOLOv9M ReLU CoreML\",\"family\":\"yolov9m\",\"variant\":\"relu\",\"format\":\"coreml\",\"precision\":\"fp16\",\"files\":[{\"relativePath\":\"coreml/scrypted_yolov9m_relu/scrypted_yolov9m_relu.mlpackage/Manifest.json\",\"size\":617,\"sha256\":\"c548c6e1ff768b2b01bd71e230aa712a1635ae2baa30e0369557a42fc531ecbf\"},{\"relativePath\":\"coreml/scrypted_yolov9m_relu/scrypted_yolov9m_relu.mlpackage/Data/com.apple.CoreML/model.mlmodel\",\"size\":247061,\"sha256\":\"1c40e02fc2a2559cb906ea6cd9da9c730d4a78f5019290cbb38d2fcaae379fe7\"},{\"relativePath\":\"coreml/scrypted_yolov9m_relu/scrypted_yolov9m_relu.mlpackage/Data/com.apple.CoreML/weights/weight.bin\",\"size\":39880616,\"sha256\":\"4cf938e5bfcc3ee1644813e4eb4702a7de450cc0581df94c719cf43d0ed2e408\"}],\"sizeMB\":40.13},{\"id\":\"scrypted-yolov9m-relu-onnx\",\"label\":\"plugin catalog YOLOv9M ReLU ONNX\",\"family\":\"yolov9m\",\"variant\":\"relu\",\"format\":\"onnx\",\"precision\":\"fp32\",\"files\":[{\"relativePath\":\"onnx/scrypted_yolov9m_relu/scrypted_yolov9m_relu.onnx\",\"size\":80380404,\"sha256\":\"e7a81fb33224a0105d2a0a594c3fa43c398c361de623f1d14156ae826e7312d5\"}],\"sizeMB\":80.38},{\"id\":\"scrypted-yolov9m-relu-test-coreml\",\"label\":\"plugin catalog YOLOv9M ReLU test CoreML\",\"family\":\"yolov9m\",\"variant\":\"relu_test\",\"format\":\"coreml\",\"precision\":\"fp16\",\"files\":[{\"relativePath\":\"coreml/scrypted_yolov9m_relu_test/scrypted_yolov9m_relu_test.mlpackage/Manifest.json\",\"size\":617,\"sha256\":\"8e2684b286d02b4bdf9db1027c84cb89bf8e4830cfb58269f3ec457c5a010650\"},{\"relativePath\":\"coreml/scrypted_yolov9m_relu_test/scrypted_yolov9m_relu_test.mlpackage/Data/com.apple.CoreML/model.mlmodel\",\"size\":247061,\"sha256\":\"53d5946e74b13b15c5f8616081c9f15e8a95a5df3d5b45b830fc5a7f49561c16\"},{\"relativePath\":\"coreml/scrypted_yolov9m_relu_test/scrypted_yolov9m_relu_test.mlpackage/Data/com.apple.CoreML/weights/weight.bin\",\"size\":39880616,\"sha256\":\"69774bf0032c37707601b8cdc1e1820dbd9f8288eb5d6f3879618a5d34ff5199\"}],\"sizeMB\":40.13},{\"id\":\"scrypted-yolov9m-relu-test-onnx\",\"label\":\"plugin catalog YOLOv9M ReLU test ONNX\",\"family\":\"yolov9m\",\"variant\":\"relu_test\",\"format\":\"onnx\",\"precision\":\"fp32\",\"files\":[{\"relativePath\":\"onnx/scrypted_yolov9m_relu_test/scrypted_yolov9m_relu_test.onnx\",\"size\":80380404,\"sha256\":\"8bb054f099295909ec518e2a6598d63db24d3f90edc8105a0f016903f2a205a2\"}],\"sizeMB\":80.38},{\"id\":\"scrypted-yolov9c-relu-coreml\",\"label\":\"plugin catalog YOLOv9C ReLU CoreML\",\"family\":\"yolov9c\",\"variant\":\"relu\",\"format\":\"coreml\",\"precision\":\"fp16\",\"files\":[{\"relativePath\":\"coreml/scrypted_yolov9c_relu/scrypted_yolov9c_relu.mlpackage/Manifest.json\",\"size\":617,\"sha256\":\"813a306ebd69cabfd31f00434f5a961feeca7d237833f3e11805dcf4ad120ba9\"},{\"relativePath\":\"coreml/scrypted_yolov9c_relu/scrypted_yolov9c_relu.mlpackage/Data/com.apple.CoreML/model.mlmodel\",\"size\":263210,\"sha256\":\"862f082619075e470738306b0ff0a37ae70a7d08e684ca6a6dfa1971d404e0c3\"},{\"relativePath\":\"coreml/scrypted_yolov9c_relu/scrypted_yolov9c_relu.mlpackage/Data/com.apple.CoreML/weights/weight.bin\",\"size\":50489960,\"sha256\":\"ed89747e58943758e2a87221d1d404f6a4466cbc039c3c6f96e327cadc403d27\"}],\"sizeMB\":50.75},{\"id\":\"scrypted-yolov9c-relu-onnx\",\"label\":\"plugin catalog YOLOv9C ReLU ONNX\",\"family\":\"yolov9c\",\"variant\":\"relu\",\"format\":\"onnx\",\"precision\":\"fp32\",\"files\":[{\"relativePath\":\"onnx/scrypted_yolov9c_relu/scrypted_yolov9c_relu.onnx\",\"size\":101631962,\"sha256\":\"b9372c4428daf4cd944c114b1e80d1a9ff0487d743e53a77216a051cfbef7116\"}],\"sizeMB\":101.63},{\"id\":\"scrypted-yolov9c-relu-test-coreml\",\"label\":\"plugin catalog YOLOv9C ReLU test CoreML\",\"family\":\"yolov9c\",\"variant\":\"relu_test\",\"format\":\"coreml\",\"precision\":\"fp16\",\"files\":[{\"relativePath\":\"coreml/scrypted_yolov9c_relu_test/scrypted_yolov9c_relu_test.mlpackage/Manifest.json\",\"size\":617,\"sha256\":\"966ef82a93cb0ccf1036a8c9729c065fd372fa9590a97d0945e581cc674f7ad2\"},{\"relativePath\":\"coreml/scrypted_yolov9c_relu_test/scrypted_yolov9c_relu_test.mlpackage/Data/com.apple.CoreML/model.mlmodel\",\"size\":263210,\"sha256\":\"08718ecd3e9552d21a702bd8df60911cad0eec7b2ae382466809550f14634711\"},{\"relativePath\":\"coreml/scrypted_yolov9c_relu_test/scrypted_yolov9c_relu_test.mlpackage/Data/com.apple.CoreML/weights/weight.bin\",\"size\":50489960,\"sha256\":\"fe5936b9430ab4c87f30b148220131d6ec998b2377223d033e2fa2a00e60aada\"}],\"sizeMB\":50.75},{\"id\":\"scrypted-yolov9c-relu-test-onnx\",\"label\":\"plugin catalog YOLOv9C ReLU test ONNX\",\"family\":\"yolov9c\",\"variant\":\"relu_test\",\"format\":\"onnx\",\"precision\":\"fp32\",\"files\":[{\"relativePath\":\"onnx/scrypted_yolov9c_relu_test/scrypted_yolov9c_relu_test.onnx\",\"size\":101631962,\"sha256\":\"2f4e2031e8efb4cbc871594338b2e875d78ab4af3ee0258d253273b1aac84742\"}],\"sizeMB\":101.63},{\"id\":\"scrypted-yolov9t-relu-openvino-fp32\",\"label\":\"plugin catalog YOLOv9T ReLU OpenVINO FP32\",\"family\":\"yolov9t\",\"variant\":\"relu\",\"format\":\"openvino\",\"precision\":\"fp32\",\"files\":[{\"relativePath\":\"openvino/scrypted_yolov9t_relu/best-converted.xml\",\"size\":628222,\"sha256\":\"01b5a9d02a0f281e1aaf4860e1b0ed3a7f16b9d78975be8ff985ae0ee283d877\"},{\"relativePath\":\"openvino/scrypted_yolov9t_relu/best-converted.bin\",\"size\":7542204,\"sha256\":\"4fe9ce8dbdf94514fdd450cbfc907f257153e4898a0c1489a44e4912d8e32cc7\"}],\"sizeMB\":8.17},{\"id\":\"scrypted-yolov9s-relu-openvino-fp32\",\"label\":\"plugin catalog YOLOv9S ReLU OpenVINO FP32\",\"family\":\"yolov9s\",\"variant\":\"relu\",\"format\":\"openvino\",\"precision\":\"fp32\",\"files\":[{\"relativePath\":\"openvino/scrypted_yolov9s_relu/best-converted.xml\",\"size\":629249,\"sha256\":\"5b4a229bf7229425698b63bd065a403e440a6151a6ddff0034867659cc4a480d\"},{\"relativePath\":\"openvino/scrypted_yolov9s_relu/best-converted.bin\",\"size\":28329724,\"sha256\":\"c030bd219208ea94082578c81f383d4ef9ec45d7150eec1c2c2ff2569cf49b35\"}],\"sizeMB\":28.96},{\"id\":\"scrypted-yolov9m-relu-openvino-fp32\",\"label\":\"plugin catalog YOLOv9M ReLU OpenVINO FP32\",\"family\":\"yolov9m\",\"variant\":\"relu\",\"format\":\"openvino\",\"precision\":\"fp32\",\"files\":[{\"relativePath\":\"openvino/scrypted_yolov9m_relu/best-converted.xml\",\"size\":485439,\"sha256\":\"c66f9f1965bf70fd3635d4dfc3cb94c72c06b344c256713237d77706725b9a0c\"},{\"relativePath\":\"openvino/scrypted_yolov9m_relu/best-converted.bin\",\"size\":79717372,\"sha256\":\"dfc2d8952bbca9ad0e116168e3fd5c754e601c327d78c4f4d0d4cae12f0e1d2a\"}],\"sizeMB\":80.2},{\"id\":\"scrypted-yolov9c-relu-openvino-fp32\",\"label\":\"plugin catalog YOLOv9C ReLU OpenVINO FP32\",\"family\":\"yolov9c\",\"variant\":\"relu\",\"format\":\"openvino\",\"precision\":\"fp32\",\"files\":[{\"relativePath\":\"openvino/scrypted_yolov9c_relu/best-converted.xml\",\"size\":535047,\"sha256\":\"836c1e998ebf76108ff64d554fdfa07aa72c42624f1a5448701bb409f27b8d68\"},{\"relativePath\":\"openvino/scrypted_yolov9c_relu/best-converted.bin\",\"size\":100942972,\"sha256\":\"11a1b330ac9843b349927977b3c7c7f17bb42af73a7ff102969132f27ab81814\"}],\"sizeMB\":101.48},{\"id\":\"scrypted-yolov9t-relu-openvino-int8\",\"label\":\"plugin catalog YOLOv9T ReLU OpenVINO INT8\",\"family\":\"yolov9t\",\"variant\":\"relu\",\"format\":\"openvino\",\"precision\":\"int8\",\"files\":[{\"relativePath\":\"openvino/scrypted_yolov9t_relu_int8/best-converted.xml\",\"size\":1380379,\"sha256\":\"e5a76bf88ac69fc0ebc50c04b61ff91550dd9c2349af1f6d7e4cac949c640cec\"},{\"relativePath\":\"openvino/scrypted_yolov9t_relu_int8/best-converted.bin\",\"size\":1954956,\"sha256\":\"98fb5b6826d7c6697a585f69ba96754873772d9d61fbed8335aab761e8248659\"}],\"sizeMB\":3.34},{\"id\":\"scrypted-yolov9t-relu-test-openvino-int8\",\"label\":\"plugin catalog YOLOv9T ReLU test OpenVINO INT8\",\"family\":\"yolov9t\",\"variant\":\"relu_test\",\"format\":\"openvino\",\"precision\":\"int8\",\"files\":[{\"relativePath\":\"openvino/scrypted_yolov9t_relu_test_int8/best-converted.xml\",\"size\":1380383,\"sha256\":\"9e4119284e923e08c9929e78fd31e2552e602a552ac538ae99bf34a50dd4d172\"},{\"relativePath\":\"openvino/scrypted_yolov9t_relu_test_int8/best-converted.bin\",\"size\":1954960,\"sha256\":\"efe5b0a2fd2f5ddef5923eeb9e592a7ef14719061bb7605c86e05b35c2c58ea9\"}],\"sizeMB\":3.34},{\"id\":\"scrypted-yolov9s-relu-openvino-int8\",\"label\":\"plugin catalog YOLOv9S ReLU OpenVINO INT8\",\"family\":\"yolov9s\",\"variant\":\"relu\",\"format\":\"openvino\",\"precision\":\"int8\",\"files\":[{\"relativePath\":\"openvino/scrypted_yolov9s_relu_int8/best-converted.xml\",\"size\":1382088,\"sha256\":\"4e6c24cf24afbab21462f7e1a15bd05b1cbbe5915046000e03c2435d8110bbbf\"},{\"relativePath\":\"openvino/scrypted_yolov9s_relu_int8/best-converted.bin\",\"size\":7197308,\"sha256\":\"23fd3d666a938c41db232d9c6239baec1134716cfb4ed4ddd3d602dd20eb8ac0\"}],\"sizeMB\":8.58},{\"id\":\"scrypted-yolov9s-relu-test-openvino-int8\",\"label\":\"plugin catalog YOLOv9S ReLU test OpenVINO INT8\",\"family\":\"yolov9s\",\"variant\":\"relu_test\",\"format\":\"openvino\",\"precision\":\"int8\",\"files\":[{\"relativePath\":\"openvino/scrypted_yolov9s_relu_test_int8/best-converted.xml\",\"size\":1382092,\"sha256\":\"49865bfeafe7576afce089ba6f5c3e25a9192c8b514eb96265c90fe877795641\"},{\"relativePath\":\"openvino/scrypted_yolov9s_relu_test_int8/best-converted.bin\",\"size\":7197312,\"sha256\":\"78e9d36e6b74754db2b624ea3ec0b3ff57ed6dfed59a4f2225e1a271054597de\"}],\"sizeMB\":8.58},{\"id\":\"scrypted-yolov9m-relu-openvino-int8\",\"label\":\"plugin catalog YOLOv9M ReLU OpenVINO INT8\",\"family\":\"yolov9m\",\"variant\":\"relu\",\"format\":\"openvino\",\"precision\":\"int8\",\"files\":[{\"relativePath\":\"openvino/scrypted_yolov9m_relu_int8/best-converted.xml\",\"size\":1024595,\"sha256\":\"1242ab8d8c73b2e80c5dd541177ade6e102a2684114b059136acb4cad6efb034\"},{\"relativePath\":\"openvino/scrypted_yolov9m_relu_int8/best-converted.bin\",\"size\":20090516,\"sha256\":\"da8e44af8bee66478e6f359e9504bfb13ab4b76f4bd8a2f1b10cfbc22febcf6e\"}],\"sizeMB\":21.12},{\"id\":\"scrypted-yolov9m-relu-test-openvino-int8\",\"label\":\"plugin catalog YOLOv9M ReLU test OpenVINO INT8\",\"family\":\"yolov9m\",\"variant\":\"relu_test\",\"format\":\"openvino\",\"precision\":\"int8\",\"files\":[{\"relativePath\":\"openvino/scrypted_yolov9m_relu_test_int8/best-converted.xml\",\"size\":1024601,\"sha256\":\"24395ae5fdbb321304c865372cd2b905cdc55abb7610520f3963702e2371decb\"},{\"relativePath\":\"openvino/scrypted_yolov9m_relu_test_int8/best-converted.bin\",\"size\":20090520,\"sha256\":\"4360fe0312067f92c49f180c7b8a10271f14d58b8909aa9b96b13af4ab9289aa\"}],\"sizeMB\":21.12},{\"id\":\"scrypted-yolov9c-relu-openvino-int8\",\"label\":\"plugin catalog YOLOv9C ReLU OpenVINO INT8\",\"family\":\"yolov9c\",\"variant\":\"relu\",\"format\":\"openvino\",\"precision\":\"int8\",\"files\":[{\"relativePath\":\"openvino/scrypted_yolov9c_relu_int8/best-converted.xml\",\"size\":1092695,\"sha256\":\"a45c62940120c4301d8fff9fb3b275c29e3618f403ea68a785f2f3220cefec7a\"},{\"relativePath\":\"openvino/scrypted_yolov9c_relu_int8/best-converted.bin\",\"size\":25428280,\"sha256\":\"0643403a56178c3ed1e066c7884458d8ea6780115d662bdc38d10754d7a11c79\"}],\"sizeMB\":26.52},{\"id\":\"scrypted-yolov9c-relu-test-openvino-int8\",\"label\":\"plugin catalog YOLOv9C ReLU test OpenVINO INT8\",\"family\":\"yolov9c\",\"variant\":\"relu_test\",\"format\":\"openvino\",\"precision\":\"int8\",\"files\":[{\"relativePath\":\"openvino/scrypted_yolov9c_relu_test_int8/best-converted.xml\",\"size\":1092695,\"sha256\":\"a8a1899848ebd060af2326d3c8d3c09ea83354f0bedff6cce6fa08b284ea5519\"},{\"relativePath\":\"openvino/scrypted_yolov9c_relu_test_int8/best-converted.bin\",\"size\":25428280,\"sha256\":\"2eb6bb3d0a03a9b239b6f623f9e7bced62eea61fbe4d8ff89c1b3e2e2b7978a2\"}],\"sizeMB\":26.52},{\"id\":\"scrypted-yolov9s-relu-sep-320-tflite-float16\",\"label\":\"plugin catalog YOLOv9s ReLU sep 320 TFLite float16\",\"family\":\"yolov9s\",\"variant\":\"relu\",\"format\":\"tflite\",\"precision\":\"float16\",\"files\":[{\"relativePath\":\"tflite/scrypted_yolov9s_relu_sep_320/best_float16.tflite\",\"size\":14482836,\"sha256\":\"04889db3b81af361c361e41ffa99327330d37b71d680a2f889e6cdf1e94c0d8c\"}],\"sizeMB\":14.48},{\"id\":\"scrypted-yolov9s-relu-sep-320-tflite-float32\",\"label\":\"plugin catalog YOLOv9s ReLU sep 320 TFLite float32\",\"family\":\"yolov9s\",\"variant\":\"relu\",\"format\":\"tflite\",\"precision\":\"float32\",\"files\":[{\"relativePath\":\"tflite/scrypted_yolov9s_relu_sep_320/best_float32.tflite\",\"size\":28777068,\"sha256\":\"f5d7d08fc1d8f2262633d2df4391638e0481740331aaa1837880a47c33001a96\"}],\"sizeMB\":28.78},{\"id\":\"scrypted-yolov9s-relu-sep-320-tflite-int8\",\"label\":\"plugin catalog YOLOv9s ReLU sep 320 TFLite int8\",\"family\":\"yolov9s\",\"variant\":\"relu\",\"format\":\"tflite\",\"precision\":\"int8\",\"files\":[{\"relativePath\":\"tflite/scrypted_yolov9s_relu_sep_320/best_int8.tflite\",\"size\":7325616,\"sha256\":\"1e9866b16fe80931383bf3c94dc629fe93a37ba3dc1465ea019eb0a50bd428df\"}],\"sizeMB\":7.33},{\"id\":\"scrypted-yolov9s-relu-sep-320-tflite-integer_quant\",\"label\":\"plugin catalog YOLOv9s ReLU sep 320 TFLite integer_quant\",\"family\":\"yolov9s\",\"variant\":\"relu\",\"format\":\"tflite\",\"precision\":\"integer_quant\",\"files\":[{\"relativePath\":\"tflite/scrypted_yolov9s_relu_sep_320/best_integer_quant.tflite\",\"size\":7342552,\"sha256\":\"bc1c902e9a9865637ee2403f70c6bf5c29c695d9163e58ad658feb29bb097ebc\"}],\"sizeMB\":7.34},{\"id\":\"scrypted-yolov9s-relu-sep-320-tflite-full_integer_quant\",\"label\":\"plugin catalog YOLOv9s ReLU sep 320 TFLite full_integer_quant\",\"family\":\"yolov9s\",\"variant\":\"relu\",\"format\":\"tflite\",\"precision\":\"full_integer_quant\",\"files\":[{\"relativePath\":\"tflite/scrypted_yolov9s_relu_sep_320/best_full_integer_quant.tflite\",\"size\":7341704,\"sha256\":\"483ce38dbe33ee5a35f40a82f56c77629a44fa5d95efd8ade9fa97e4d2a261fd\"}],\"sizeMB\":7.34},{\"id\":\"scrypted-yolov9s-relu-sep-320-tflite-edgetpu\",\"label\":\"plugin catalog YOLOv9s ReLU sep 320 TFLite edgetpu\",\"family\":\"yolov9s\",\"variant\":\"relu\",\"format\":\"tflite\",\"precision\":\"edgetpu\",\"files\":[{\"relativePath\":\"tflite/scrypted_yolov9s_relu_sep_320/best_full_integer_quant_edgetpu.tflite\",\"size\":8164480,\"sha256\":\"e1e6b074a3b9fdf19a171baf615553ad375a046aa7de2a3fef9a1950175fab22\"}],\"sizeMB\":8.16}]"), kA = {
@@ -42765,7 +42765,7 @@ var sj = "object-detection";
42765
42765
  function cj(e) {
42766
42766
  return e.stepId === sj ? he(e.entry, {
42767
42767
  labels: [],
42768
- classMap: T
42768
+ classMap: ce
42769
42769
  }) : [];
42770
42770
  }
42771
42771
  var lj = [
@@ -43399,7 +43399,8 @@ var { useT: $, Trans: TM, translate: EM } = DA("model-studio", {
43399
43399
  loaded: "loaded",
43400
43400
  configuredNotLoaded: "configured, not loaded",
43401
43401
  unknown: "load state unknown",
43402
- notUsed: "not used"
43402
+ notUsed: "not used",
43403
+ fixed: "runs here, outside the device pools"
43403
43404
  },
43404
43405
  chipLabel: "{{label}} ({{deviceKey}}): {{state}}",
43405
43406
  title: "{{deviceKey}} — {{state}}",
@@ -43473,7 +43474,12 @@ var { useT: $, Trans: TM, translate: EM } = DA("model-studio", {
43473
43474
  },
43474
43475
  removeUnused: "Remove unused ({{count}})",
43475
43476
  emptyNode: "No model files on {{nodeId}}.",
43476
- emptyFiltered: "No files match these filters."
43477
+ emptyFiltered: "No files match these filters.",
43478
+ devicesNotice: {
43479
+ allDisabled: "All inference devices are disabled on this node. Enable one in the node's inference devices to run models here.",
43480
+ unknown: "The inference devices of this node could not be read.",
43481
+ none: "This node reports no inference device."
43482
+ }
43477
43483
  },
43478
43484
  catalog: {
43479
43485
  onNode: "on {{nodeId}}",
@@ -43827,7 +43833,8 @@ var { useT: $, Trans: TM, translate: EM } = DA("model-studio", {
43827
43833
  loaded: "caricato",
43828
43834
  configuredNotLoaded: "configurato, non caricato",
43829
43835
  unknown: "stato di caricamento sconosciuto",
43830
- notUsed: "non usato"
43836
+ notUsed: "non usato",
43837
+ fixed: "gira qui, fuori dai pool dei dispositivi"
43831
43838
  },
43832
43839
  chipLabel: "{{label}} ({{deviceKey}}): {{state}}",
43833
43840
  title: "{{deviceKey}} — {{state}}",
@@ -43901,7 +43908,12 @@ var { useT: $, Trans: TM, translate: EM } = DA("model-studio", {
43901
43908
  },
43902
43909
  removeUnused: "Rimuovi inutilizzati ({{count}})",
43903
43910
  emptyNode: "Nessun file di modello su {{nodeId}}.",
43904
- emptyFiltered: "Nessun file corrisponde a questi filtri."
43911
+ emptyFiltered: "Nessun file corrisponde a questi filtri.",
43912
+ devicesNotice: {
43913
+ allDisabled: "Tutti i dispositivi di inferenza di questo nodo sono disabilitati. Abilitane uno nei dispositivi di inferenza del nodo per eseguire modelli qui.",
43914
+ unknown: "Impossibile leggere i dispositivi di inferenza di questo nodo.",
43915
+ none: "Questo nodo non riporta nessun dispositivo di inferenza."
43916
+ }
43905
43917
  },
43906
43918
  catalog: {
43907
43919
  onNode: "su {{nodeId}}",
@@ -46930,47 +46942,64 @@ function BP(e) {
46930
46942
  enabled: e.enabled
46931
46943
  }));
46932
46944
  }
46933
- var VP = /\[([^\]]+)\]\s*$/;
46934
- function HP(e, t) {
46935
- let n = VP.exec(e.engineKey)?.[1];
46945
+ function VP(e, t) {
46946
+ return t ? e.length === 0 ? "none" : e.every((e) => !e.enabled) ? "all-disabled" : null : "unknown";
46947
+ }
46948
+ var HP = /\[([^\]]+)\]\s*$/;
46949
+ function UP(e, t) {
46950
+ let n = HP.exec(e.engineKey)?.[1];
46936
46951
  return n === void 0 ? e.engine.format === t.format ? e.engine.backend === t.backend ? e.engine.device === t.device : t.key === "cpu" && e.engine.device === "cpu" : !1 : n === t.key;
46937
46952
  }
46938
- function UP(e, t, n, r) {
46953
+ function WP(e, t, n, r) {
46939
46954
  if (e === null) return null;
46940
46955
  let i = `${n}/${r}`;
46941
- return e.some((e) => HP(e, t) && e.modelsLoaded.includes(i));
46956
+ return e.some((e) => UP(e, t) && e.modelsLoaded.includes(i));
46957
+ }
46958
+ var GP = new Set(["audio-classifier"]), KP = {
46959
+ backend: "cpu",
46960
+ device: "cpu",
46961
+ key: "cpu"
46962
+ };
46963
+ function qP() {
46964
+ return [{
46965
+ deviceKey: KP.key,
46966
+ label: zP(KP),
46967
+ enabled: !0,
46968
+ loaded: null,
46969
+ configured: !1,
46970
+ fixed: !0
46971
+ }];
46942
46972
  }
46943
- var WP = new Set(["audio-classifier"]);
46944
- function GP(e, t, n) {
46973
+ function JP(e, t, n) {
46945
46974
  return t?.[e] ?? n?.defaultModelId;
46946
46975
  }
46947
- function KP(e, t) {
46976
+ function YP(e, t) {
46948
46977
  if (e.onDisk !== "current") return /* @__PURE__ */ new Set();
46949
46978
  let n = t.stepCatalogs[e.stepId], r = new Set([e.format]);
46950
- return O(e.stepId) ? GP(e.stepId, t.clusterModels, n) === e.modelId ? new Set(t.devices.filter((t) => t.enabled && t.format === e.format).map((e) => e.key)) : /* @__PURE__ */ new Set() : new Set(PP(t.devices, e.stepId, e.modelId, n, r).map((e) => e.deviceKey));
46979
+ return O(e.stepId) ? JP(e.stepId, t.clusterModels, n) === e.modelId ? new Set(t.devices.filter((t) => t.enabled && t.format === e.format).map((e) => e.key)) : /* @__PURE__ */ new Set() : new Set(PP(t.devices, e.stepId, e.modelId, n, r).map((e) => e.deviceKey));
46951
46980
  }
46952
- function qP(e, t, n) {
46981
+ function XP(e, t, n) {
46953
46982
  return t ? "outside-pools" : e.some((e) => e.loaded === !0) ? "in-use" : e.some((e) => e.configured) ? "configured" : e.some((e) => e.enabled) ? n ? "idle" : "unknown" : "unused";
46954
46983
  }
46955
- function JP(e, t) {
46956
- let n = KP(e, t), r = t.devices.filter((t) => t.format === e.format).map((r) => ({
46984
+ function ZP(e, t) {
46985
+ let n = YP(e, t), r = t.stepCatalogs[e.stepId]?.slot, i = r !== void 0 && GP.has(r), a = i ? qP() : t.devices.filter((t) => t.format === e.format).map((r) => ({
46957
46986
  deviceKey: r.key,
46958
46987
  label: zP(r),
46959
46988
  enabled: r.enabled,
46960
- loaded: UP(t.engines, r, e.stepId, e.modelId),
46989
+ loaded: WP(t.engines, r, e.stepId, e.modelId),
46961
46990
  configured: n.has(r.key)
46962
- })).toSorted((e, t) => e.label.localeCompare(t.label)), i = t.stepCatalogs[e.stepId]?.slot, a = qP(r, i !== void 0 && WP.has(i), t.engines !== null);
46991
+ })).toSorted((e, t) => e.label.localeCompare(t.label)), o = XP(a, i, t.engines !== null);
46963
46992
  return {
46964
46993
  ...e,
46965
46994
  key: `${e.stepId}::${e.modelId}::${e.format}`,
46966
46995
  renameable: e.origin === "registry",
46967
46996
  clusterScoped: O(e.stepId),
46968
- chips: r,
46969
- usage: a,
46970
- removable: a === "idle" || a === "unused"
46997
+ chips: a,
46998
+ usage: o,
46999
+ removable: o === "idle" || o === "unused"
46971
47000
  };
46972
47001
  }
46973
- function YP(e, t, n) {
47002
+ function QP(e, t, n) {
46974
47003
  return t.onDisk === "missing" ? null : {
46975
47004
  stepId: e.stepId,
46976
47005
  modelId: e.modelId,
@@ -46985,7 +47014,7 @@ function YP(e, t, n) {
46985
47014
  ..._j(e.supplies)
46986
47015
  };
46987
47016
  }
46988
- function XP(e, t) {
47017
+ function $P(e, t) {
46989
47018
  let n = [];
46990
47019
  for (let r of e.registry) {
46991
47020
  let i = r.entry.id, a = e.availability[i]?.[e.nodeId];
@@ -47008,28 +47037,28 @@ function XP(e, t) {
47008
47037
  }
47009
47038
  return n;
47010
47039
  }
47011
- function ZP(e) {
47012
- let t = new Set(e.registry.map((e) => e.entry.id)), n = e.seeds.flatMap((e) => e.formats.flatMap((n) => {
47013
- let r = YP(e, n, t);
47040
+ function eF(e) {
47041
+ let t = new Set(e.registry.map((e) => e.entry.id)), n = e.nodeId === "hub", r = e.seeds.flatMap((e) => e.formats.flatMap((n) => {
47042
+ let r = QP(e, n, t);
47014
47043
  return r === null ? [] : [r];
47015
- })), r = new Set(n.map((e) => `${e.stepId}::${e.modelId}::${e.format}`)), i = new Map(e.registry.map((e) => [e.entry.id, e.entry.description]));
47016
- return [...n, ...XP(e, r)].map((e) => ({
47044
+ })), i = new Set(r.map((e) => `${e.stepId}::${e.modelId}::${e.format}`)), a = new Map(e.registry.map((e) => [e.entry.id, e.entry.description]));
47045
+ return [...r, ...$P(e, i)].filter((e) => n || !O(e.stepId)).map((e) => ({
47017
47046
  ...e,
47018
- description: i.get(e.modelId) ?? e.description
47019
- })).map((t) => JP(t, e)).toSorted((e, t) => e.name.localeCompare(t.name) || e.format.localeCompare(t.format));
47047
+ description: a.get(e.modelId) ?? e.description
47048
+ })).map((t) => ZP(t, e)).toSorted((e, t) => e.name.localeCompare(t.name) || e.format.localeCompare(t.format));
47020
47049
  }
47021
- function QP(e, t, n) {
47050
+ function tF(e, t, n) {
47022
47051
  let r = n.device === "all" ? void 0 : t.find((e) => e.key === n.device)?.format;
47023
47052
  return e.filter((e) => !(n.provider !== "all" && e.provider !== n.provider || n.step !== "all" && e.stepId !== n.step || n.device !== "all" && e.format !== r));
47024
47053
  }
47025
- function $P(e) {
47054
+ function nF(e) {
47026
47055
  return e.filter((e) => e.removable).reduce((e, t) => e + t.sizeMB, 0);
47027
47056
  }
47028
- function eF(e, t, n, r) {
47057
+ function rF(e, t, n, r) {
47029
47058
  let i = e.devices.filter((e) => e.enabled && e.format === r).map((r) => ({
47030
47059
  deviceKey: r.key,
47031
47060
  label: zP(r),
47032
- loaded: UP(e.engines, r, t, n)
47061
+ loaded: WP(e.engines, r, t, n)
47033
47062
  })).toSorted((e, t) => e.label.localeCompare(t.label)), a = e.stepCatalogs[t]?.models.find((e) => e.id === n), o = e.seeds.find((e) => e.stepId === t && e.modelId === n)?.formats.find((e) => e.format === r)?.onDisk ?? "missing";
47034
47063
  return {
47035
47064
  format: r,
@@ -47038,7 +47067,7 @@ function eF(e, t, n, r) {
47038
47067
  onDisk: o
47039
47068
  };
47040
47069
  }
47041
- function tF(e, t, n) {
47070
+ function iF(e, t, n) {
47042
47071
  return {
47043
47072
  stepId: e,
47044
47073
  modelId: t,
@@ -47051,7 +47080,7 @@ function tF(e, t, n) {
47051
47080
  let r = [...new Set(n.devices.filter((e) => e.enabled).map((e) => e.format))];
47052
47081
  return {
47053
47082
  nodeId: n.nodeId,
47054
- entries: r.map((r) => eF(n, e, t, r))
47083
+ entries: r.map((r) => rF(n, e, t, r))
47055
47084
  };
47056
47085
  })
47057
47086
  };
@@ -47059,7 +47088,7 @@ function tF(e, t, n) {
47059
47088
  //#endregion
47060
47089
  //#region src/components/InstalledSettingsModal.tsx
47061
47090
  e();
47062
- function nF({ trpc: e, nodeId: t, stepId: n, modelId: r, modelName: a, devices: o, deviceKey: s, onClose: c, onDone: u }) {
47091
+ function aF({ trpc: e, nodeId: t, stepId: n, modelId: r, modelName: a, devices: o, deviceKey: s, onClose: c, onDone: u }) {
47063
47092
  let { t: d } = $(), [f, p] = g(!1), [m, h] = g(null), [_, b] = g(null), [x, S] = g({
47064
47093
  modelId: r,
47065
47094
  settings: {}
@@ -47180,7 +47209,7 @@ function nF({ trpc: e, nodeId: t, stepId: n, modelId: r, modelName: a, devices:
47180
47209
  //#endregion
47181
47210
  //#region src/components/installed/use-cluster-placement.ts
47182
47211
  e();
47183
- async function rF(e, t) {
47212
+ async function oF(e, t) {
47184
47213
  try {
47185
47214
  let [n, r, i] = await Promise.all([
47186
47215
  Yj(e, t),
@@ -47201,11 +47230,11 @@ async function rF(e, t) {
47201
47230
  };
47202
47231
  }
47203
47232
  }
47204
- function iF(e, t, n) {
47233
+ function sF(e, t, n) {
47205
47234
  let [r, a] = g(null), o = t.join("\n");
47206
47235
  return i(() => {
47207
47236
  let t = !1, n = o.length === 0 ? [] : o.split("\n");
47208
- return Promise.all(n.map((t) => rF(e, t))).then((e) => {
47237
+ return Promise.all(n.map((t) => oF(e, t))).then((e) => {
47209
47238
  t || a(e);
47210
47239
  }), () => {
47211
47240
  t = !0;
@@ -47219,14 +47248,14 @@ function iF(e, t, n) {
47219
47248
  //#endregion
47220
47249
  //#region src/components/installed/use-online-node-ids.ts
47221
47250
  e();
47222
- function aF() {
47251
+ function cF() {
47223
47252
  let { nodes: e } = ci();
47224
47253
  return o(() => e.filter((e) => e.isOnline).map((e) => e.id), [e]);
47225
47254
  }
47226
47255
  //#endregion
47227
47256
  //#region src/components/installed/ClusterModelsSection.tsx
47228
47257
  e();
47229
- function oF({ row: e }) {
47258
+ function lF({ row: e }) {
47230
47259
  let { t } = $();
47231
47260
  if (e.entry === null) return /* @__PURE__ */ v(bo, {
47232
47261
  variant: "danger",
@@ -47253,7 +47282,7 @@ function oF({ row: e }) {
47253
47282
  })]
47254
47283
  });
47255
47284
  }
47256
- var sF = (e) => [
47285
+ var uF = (e) => [
47257
47286
  {
47258
47287
  key: "node",
47259
47288
  header: e("cluster.cols.node"),
@@ -47282,11 +47311,11 @@ var sF = (e) => [
47282
47311
  {
47283
47312
  key: "state",
47284
47313
  header: e("cluster.cols.state"),
47285
- render: (e) => /* @__PURE__ */ v(oF, { row: e })
47314
+ render: (e) => /* @__PURE__ */ v(lF, { row: e })
47286
47315
  }
47287
47316
  ];
47288
- function cF(e, t, n) {
47289
- return tF(e.stepId, t, n).nodes.flatMap((e) => e.entries.length === 0 ? [{
47317
+ function dF(e, t, n) {
47318
+ return iF(e.stepId, t, n).nodes.flatMap((e) => e.entries.length === 0 ? [{
47290
47319
  key: e.nodeId,
47291
47320
  nodeId: e.nodeId,
47292
47321
  entry: null,
@@ -47297,7 +47326,7 @@ function cF(e, t, n) {
47297
47326
  entry: t
47298
47327
  })));
47299
47328
  }
47300
- function lF(e, t) {
47329
+ function fF(e, t) {
47301
47330
  let n = new Map(e.options.map((e) => [e.id, e.label]));
47302
47331
  for (let r of t ?? []) if (r.error === void 0) for (let t of r.seeds) t.stepId === e.stepId && !n.has(t.modelId) && n.set(t.modelId, t.name);
47303
47332
  return [...n].map(([e, t]) => ({
@@ -47305,14 +47334,14 @@ function lF(e, t) {
47305
47334
  label: t
47306
47335
  }));
47307
47336
  }
47308
- function uF({ step: e, current: t, inputs: n, onChange: r }) {
47309
- let { t: a } = $(), s = o(() => sF(a), [a]), [c, l] = g(t);
47337
+ function pF({ step: e, current: t, inputs: n, onChange: r }) {
47338
+ let { t: a } = $(), s = o(() => uF(a), [a]), [c, l] = g(t);
47310
47339
  i(() => l(t), [t]);
47311
- let u = o(() => n === null ? [] : cF(e, t, n), [
47340
+ let u = o(() => n === null ? [] : dF(e, t, n), [
47312
47341
  e,
47313
47342
  t,
47314
47343
  n
47315
- ]), d = o(() => lF(e, n), [e, n]), f = (e) => d.find((t) => t.id === e)?.label ?? e;
47344
+ ]), d = o(() => fF(e, n), [e, n]), f = (e) => d.find((t) => t.id === e)?.label ?? e;
47316
47345
  return /* @__PURE__ */ y("section", {
47317
47346
  "aria-labelledby": `cluster-${e.stepId}`,
47318
47347
  className: st,
@@ -47372,8 +47401,8 @@ function uF({ step: e, current: t, inputs: n, onChange: r }) {
47372
47401
  ]
47373
47402
  });
47374
47403
  }
47375
- function dF({ trpc: e, refreshKey: t, clusterModels: n, onChanged: r, onError: i }) {
47376
- let { t: a } = $(), o = ht(), s = iF(e, aF(), t), c = async (t, n, s) => {
47404
+ function mF({ trpc: e, refreshKey: t, clusterModels: n, onChanged: r, onError: i }) {
47405
+ let { t: a } = $(), o = ht(), s = sF(e, cF(), t), c = async (t, n, s) => {
47377
47406
  if (await o({
47378
47407
  title: a("cluster.confirmTitle"),
47379
47408
  message: a("cluster.confirmMessage", {
@@ -47396,7 +47425,7 @@ function dF({ trpc: e, refreshKey: t, clusterModels: n, onChanged: r, onError: i
47396
47425
  id: "installed-cluster-models",
47397
47426
  className: ft,
47398
47427
  children: a("cluster.title")
47399
- }), ee.map((e) => /* @__PURE__ */ v(uF, {
47428
+ }), de.map((e) => /* @__PURE__ */ v(pF, {
47400
47429
  step: e,
47401
47430
  current: n?.[e.stepId] ?? e.defaultModelId,
47402
47431
  inputs: s,
@@ -47406,7 +47435,7 @@ function dF({ trpc: e, refreshKey: t, clusterModels: n, onChanged: r, onError: i
47406
47435
  }
47407
47436
  //#endregion
47408
47437
  //#region src/components/FillBadges.tsx
47409
- function fF(e, t) {
47438
+ function hF(e, t) {
47410
47439
  if (e.kind === "mask") return t("fillBadges.mask");
47411
47440
  if (e.kind === "crop") return e.stepId === "face-detection" ? t("fillBadges.cropFace") : t("fillBadges.cropPlate");
47412
47441
  let n = qe[e.stepId], r = {
@@ -47415,22 +47444,22 @@ function fF(e, t) {
47415
47444
  };
47416
47445
  return e.uncovered.length > 0 ? t(n ? "fillBadges.labelsDefaultUncovered" : "fillBadges.labelsOptionalUncovered", r) : t(n ? "fillBadges.labelsDefaultAll" : "fillBadges.labelsOptionalAll", r);
47417
47446
  }
47418
- function pF({ supplies: e }) {
47447
+ function gF({ supplies: e }) {
47419
47448
  let { t } = $();
47420
47449
  return e === void 0 || e.length === 0 ? null : /* @__PURE__ */ v("span", {
47421
47450
  className: "flex flex-wrap gap-1",
47422
47451
  "data-testid": "fill-badges",
47423
47452
  children: e.map((e) => /* @__PURE__ */ v("span", {
47424
47453
  className: "inline-flex items-center px-1.5 py-0.5 rounded text-[10px] font-medium border bg-primary/10 text-primary border-primary/30",
47425
- title: fF(e, t),
47426
- children: te(e)
47454
+ title: hF(e, t),
47455
+ children: ee(e)
47427
47456
  }, e.stepId))
47428
47457
  });
47429
47458
  }
47430
47459
  //#endregion
47431
47460
  //#region src/components/InlineRename.tsx
47432
47461
  e();
47433
- function mF({ name: e, modelId: t, onRename: n, onError: r }) {
47462
+ function _F({ name: e, modelId: t, onRename: n, onError: r }) {
47434
47463
  let { t: i } = $(), [a, o] = g(null), [s, c] = g(!1);
47435
47464
  if (a === null) return /* @__PURE__ */ y("span", {
47436
47465
  className: "flex items-center gap-1 min-w-0",
@@ -47527,27 +47556,28 @@ function mF({ name: e, modelId: t, onRename: n, onError: r }) {
47527
47556
  }
47528
47557
  //#endregion
47529
47558
  //#region src/components/installed/DeviceChips.tsx
47530
- var hF = {
47559
+ var vF = {
47531
47560
  off: "off",
47532
47561
  loadedConfigured: "loaded, configured",
47533
47562
  loaded: "loaded",
47534
47563
  configuredNotLoaded: "configured, not loaded",
47535
47564
  unknown: "load state unknown",
47536
- notUsed: "not used"
47565
+ notUsed: "not used",
47566
+ fixed: "runs here"
47537
47567
  };
47538
- function gF(e) {
47539
- return e.enabled ? e.loaded === !0 ? e.configured ? "loadedConfigured" : "loaded" : e.configured ? "configuredNotLoaded" : e.loaded === null ? "unknown" : "notUsed" : "off";
47568
+ function yF(e) {
47569
+ return e.fixed === !0 ? "fixed" : e.enabled ? e.loaded === !0 ? e.configured ? "loadedConfigured" : "loaded" : e.configured ? "configuredNotLoaded" : e.loaded === null ? "unknown" : "notUsed" : "off";
47540
47570
  }
47541
- function _F(e) {
47542
- return e.enabled ? e.loaded === !0 ? "border-success/40 bg-success/10 text-success" : e.configured ? "border-primary/50 bg-primary/10 text-primary" : "border-border bg-surface text-foreground-subtle" : "border-border bg-foreground-subtle/35";
47571
+ function bF(e) {
47572
+ return e.fixed === !0 ? "border-border bg-surface text-foreground" : e.enabled ? e.loaded === !0 ? "border-success/40 bg-success/10 text-success" : e.configured ? "border-primary/50 bg-primary/10 text-primary" : "border-border bg-surface text-foreground-subtle" : "border-border bg-surface text-foreground-disabled";
47543
47573
  }
47544
- function vF({ chip: e }) {
47574
+ function xF({ chip: e }) {
47545
47575
  return /* @__PURE__ */ v("span", {
47546
47576
  "aria-hidden": !0,
47547
47577
  className: B("h-1.5 w-1.5 rounded-full", e.loaded === !0 ? "bg-success" : e.configured ? "border border-primary" : "border border-foreground-subtle/60")
47548
47578
  });
47549
47579
  }
47550
- function yF({ chips: e, onChip: t, disabled: n = !1 }) {
47580
+ function SF({ chips: e, onChip: t, disabled: n = !1 }) {
47551
47581
  let { t: r } = $();
47552
47582
  return e.length === 0 ? /* @__PURE__ */ v("span", {
47553
47583
  className: "text-[10px] text-foreground-subtle",
@@ -47556,7 +47586,7 @@ function yF({ chips: e, onChip: t, disabled: n = !1 }) {
47556
47586
  className: "flex flex-wrap gap-1",
47557
47587
  "data-testid": "installed-device-chips",
47558
47588
  children: e.map((e) => {
47559
- let i = gF(e), a = r(`deviceChips.state.${i}`), o = r("deviceChips.chipLabel", {
47589
+ let i = yF(e), a = r(`deviceChips.state.${i}`), o = r("deviceChips.chipLabel", {
47560
47590
  label: e.label,
47561
47591
  deviceKey: e.deviceKey,
47562
47592
  state: a
@@ -47565,19 +47595,20 @@ function yF({ chips: e, onChip: t, disabled: n = !1 }) {
47565
47595
  state: a
47566
47596
  });
47567
47597
  if (!e.enabled) return /* @__PURE__ */ v("span", {
47568
- className: B(it, _F(e), "min-w-[1.75rem] justify-center px-1.5"),
47598
+ className: B(it, bF(e)),
47569
47599
  "data-device-key": e.deviceKey,
47570
- "data-state": hF[i],
47600
+ "data-state": vF[i],
47571
47601
  "aria-label": o,
47572
- title: s
47602
+ title: s,
47603
+ children: e.label
47573
47604
  }, e.deviceKey);
47574
- let c = t !== void 0 && !n, l = B(it, _F(e), c && "hover:border-primary/60"), u = /* @__PURE__ */ y(b, { children: [/* @__PURE__ */ v(vF, { chip: e }), e.label] });
47605
+ let c = t !== void 0 && !n, l = B(it, bF(e), c && "hover:border-primary/60"), u = /* @__PURE__ */ y(b, { children: [/* @__PURE__ */ v(xF, { chip: e }), e.label] });
47575
47606
  return c ? /* @__PURE__ */ v("button", {
47576
47607
  type: "button",
47577
47608
  className: l,
47578
47609
  onClick: () => t(e),
47579
47610
  "data-device-key": e.deviceKey,
47580
- "data-state": hF[i],
47611
+ "data-state": vF[i],
47581
47612
  "aria-label": o,
47582
47613
  title: e.configured ? r("deviceChips.titleOpenSettings", {
47583
47614
  deviceKey: e.deviceKey,
@@ -47590,7 +47621,7 @@ function yF({ chips: e, onChip: t, disabled: n = !1 }) {
47590
47621
  }, e.deviceKey) : /* @__PURE__ */ v("span", {
47591
47622
  className: l,
47592
47623
  "data-device-key": e.deviceKey,
47593
- "data-state": hF[i],
47624
+ "data-state": vF[i],
47594
47625
  "aria-label": o,
47595
47626
  title: s,
47596
47627
  children: u
@@ -47600,7 +47631,7 @@ function yF({ chips: e, onChip: t, disabled: n = !1 }) {
47600
47631
  }
47601
47632
  //#endregion
47602
47633
  //#region src/components/installed/UsageBadge.tsx
47603
- var bF = {
47634
+ var CF = {
47604
47635
  "in-use": {
47605
47636
  key: "inUse",
47606
47637
  variant: "success"
@@ -47625,50 +47656,50 @@ var bF = {
47625
47656
  key: "unknown",
47626
47657
  variant: "default"
47627
47658
  }
47628
- }, xF = "text-[10px] px-1.5 py-0";
47629
- function SF({ usage: e }) {
47630
- let { t } = $(), n = bF[e];
47659
+ }, wF = "text-[10px] px-1.5 py-0";
47660
+ function TF({ usage: e }) {
47661
+ let { t } = $(), n = CF[e];
47631
47662
  return /* @__PURE__ */ v(bo, {
47632
47663
  variant: n.variant,
47633
- className: xF,
47664
+ className: wF,
47634
47665
  title: t(`usage.${n.key}.title`),
47635
47666
  "data-usage": e,
47636
47667
  children: t(`usage.${n.key}.label`)
47637
47668
  });
47638
47669
  }
47639
- function CF() {
47670
+ function EF() {
47640
47671
  let { t: e } = $();
47641
47672
  return /* @__PURE__ */ v(bo, {
47642
47673
  variant: "warning",
47643
47674
  style: "outline",
47644
- className: `${xF} border-warning/40`,
47675
+ className: `${wF} border-warning/40`,
47645
47676
  title: e("usage.stale.title"),
47646
47677
  children: e("usage.stale.label")
47647
47678
  });
47648
47679
  }
47649
- function wF({ precision: e }) {
47680
+ function DF({ precision: e }) {
47650
47681
  let { t } = $();
47651
47682
  return /* @__PURE__ */ v(bo, {
47652
47683
  style: "outline",
47653
- className: `${xF} border-border text-foreground-subtle uppercase`,
47684
+ className: `${wF} border-border text-foreground-subtle uppercase`,
47654
47685
  title: t("usage.precisionTitle"),
47655
47686
  children: e
47656
47687
  });
47657
47688
  }
47658
47689
  //#endregion
47659
47690
  //#region src/components/installed/provider-label.ts
47660
- var TF = {
47691
+ var OF = {
47661
47692
  camstack: "CamStack",
47662
47693
  scrypted: "plugin catalog",
47663
47694
  frigate: "plus catalog"
47664
47695
  };
47665
- function EF(e, t) {
47666
- return e === "custom" ? t("providers.custom") : TF[e] ?? e;
47696
+ function kF(e, t) {
47697
+ return e === "custom" ? t("providers.custom") : OF[e] ?? e;
47667
47698
  }
47668
47699
  //#endregion
47669
47700
  //#region src/components/installed/InstalledFilesTable.tsx
47670
47701
  e();
47671
- function DF({ row: e, onRename: t, onError: n }) {
47702
+ function AF({ row: e, onRename: t, onError: n }) {
47672
47703
  let { t: r } = $();
47673
47704
  return /* @__PURE__ */ y("div", {
47674
47705
  className: "flex min-w-0 flex-col gap-0.5 whitespace-normal",
@@ -47677,7 +47708,7 @@ function DF({ row: e, onRename: t, onError: n }) {
47677
47708
  "data-usage": e.usage,
47678
47709
  "data-removable": e.removable ? "true" : "false",
47679
47710
  children: [
47680
- e.renameable ? /* @__PURE__ */ v(mF, {
47711
+ e.renameable ? /* @__PURE__ */ v(_F, {
47681
47712
  name: e.name,
47682
47713
  modelId: e.modelId,
47683
47714
  onRename: t,
@@ -47698,16 +47729,16 @@ function DF({ row: e, onRename: t, onError: n }) {
47698
47729
  children: [
47699
47730
  e.stepId,
47700
47731
  " · ",
47701
- EF(e.provider, r),
47732
+ kF(e.provider, r),
47702
47733
  e.clusterScoped ? r("filesTable.clusterModel") : "",
47703
47734
  e.description ? ` · ${e.description}` : ""
47704
47735
  ]
47705
47736
  }),
47706
- /* @__PURE__ */ v(pF, { supplies: e.supplies })
47737
+ /* @__PURE__ */ v(gF, { supplies: e.supplies })
47707
47738
  ]
47708
47739
  });
47709
47740
  }
47710
- function OF({ row: e }) {
47741
+ function jF({ row: e }) {
47711
47742
  return /* @__PURE__ */ y("span", {
47712
47743
  className: "inline-flex flex-wrap items-center gap-1",
47713
47744
  children: [
@@ -47715,12 +47746,12 @@ function OF({ row: e }) {
47715
47746
  className: "font-mono text-[11px] text-foreground",
47716
47747
  children: e.format
47717
47748
  }),
47718
- e.precision !== void 0 && /* @__PURE__ */ v(wF, { precision: e.precision }),
47719
- e.onDisk === "stale" && /* @__PURE__ */ v(CF, {})
47749
+ e.precision !== void 0 && /* @__PURE__ */ v(DF, { precision: e.precision }),
47750
+ e.onDisk === "stale" && /* @__PURE__ */ v(EF, {})
47720
47751
  ]
47721
47752
  });
47722
47753
  }
47723
- function kF({ row: e, busy: t, onRemove: n }) {
47754
+ function MF({ row: e, busy: t, onRemove: n }) {
47724
47755
  let { t: r } = $();
47725
47756
  return e.removable ? /* @__PURE__ */ y("button", {
47726
47757
  type: "button",
@@ -47741,7 +47772,7 @@ function kF({ row: e, busy: t, onRemove: n }) {
47741
47772
  }), r("filesTable.remove")]
47742
47773
  }) : null;
47743
47774
  }
47744
- function AF() {
47775
+ function NF() {
47745
47776
  let [e, t] = g(/* @__PURE__ */ new Set());
47746
47777
  return {
47747
47778
  busy: e,
@@ -47755,8 +47786,8 @@ function AF() {
47755
47786
  }
47756
47787
  };
47757
47788
  }
47758
- function jF({ rows: e, emptyMessage: t, onRemove: n, onRename: r, onChip: i, onError: a }) {
47759
- let { t: o } = $(), { busy: s, run: c } = AF(), l = (e, t) => {
47789
+ function PF({ rows: e, emptyMessage: t, onRemove: n, onRename: r, onChip: i, onError: a }) {
47790
+ let { t: o } = $(), { busy: s, run: c } = NF(), l = (e, t) => {
47760
47791
  c(e.key, async () => {
47761
47792
  try {
47762
47793
  await t();
@@ -47772,7 +47803,7 @@ function jF({ rows: e, emptyMessage: t, onRemove: n, onRename: r, onChip: i, onE
47772
47803
  header: o("filesTable.cols.model"),
47773
47804
  nowrap: !1,
47774
47805
  sortValue: (e) => e.name,
47775
- render: (e) => /* @__PURE__ */ v(DF, {
47806
+ render: (e) => /* @__PURE__ */ v(AF, {
47776
47807
  row: e,
47777
47808
  onRename: (t) => r(e, t),
47778
47809
  onError: a
@@ -47782,7 +47813,7 @@ function jF({ rows: e, emptyMessage: t, onRemove: n, onRename: r, onChip: i, onE
47782
47813
  key: "format",
47783
47814
  header: o("filesTable.cols.format"),
47784
47815
  sortValue: (e) => e.format,
47785
- render: (e) => /* @__PURE__ */ v(OF, { row: e })
47816
+ render: (e) => /* @__PURE__ */ v(jF, { row: e })
47786
47817
  },
47787
47818
  {
47788
47819
  key: "size",
@@ -47799,7 +47830,7 @@ function jF({ rows: e, emptyMessage: t, onRemove: n, onRename: r, onChip: i, onE
47799
47830
  header: o("filesTable.cols.devices"),
47800
47831
  nowrap: !1,
47801
47832
  notSortableReason: o("filesTable.devicesNotSortable"),
47802
- render: (e) => /* @__PURE__ */ v(yF, {
47833
+ render: (e) => /* @__PURE__ */ v(SF, {
47803
47834
  chips: e.chips,
47804
47835
  disabled: s.has(e.key),
47805
47836
  onChip: e.clusterScoped || e.origin !== "pipeline" || e.usage === "outside-pools" ? void 0 : (t) => l(e, () => i(e, t))
@@ -47809,12 +47840,12 @@ function jF({ rows: e, emptyMessage: t, onRemove: n, onRename: r, onChip: i, onE
47809
47840
  key: "status",
47810
47841
  header: o("filesTable.cols.status"),
47811
47842
  sortValue: (e) => e.usage,
47812
- render: (e) => /* @__PURE__ */ v(SF, { usage: e.usage })
47843
+ render: (e) => /* @__PURE__ */ v(TF, { usage: e.usage })
47813
47844
  },
47814
47845
  {
47815
47846
  key: "actions",
47816
47847
  align: "right",
47817
- render: (e) => /* @__PURE__ */ v(kF, {
47848
+ render: (e) => /* @__PURE__ */ v(MF, {
47818
47849
  row: e,
47819
47850
  busy: s.has(e.key),
47820
47851
  onRemove: () => l(e, () => n(e))
@@ -47834,19 +47865,19 @@ function jF({ rows: e, emptyMessage: t, onRemove: n, onRename: r, onChip: i, onE
47834
47865
  }
47835
47866
  //#endregion
47836
47867
  //#region src/components/installed/InstalledFilters.tsx
47837
- var MF = [
47868
+ var FF = [
47838
47869
  "camstack",
47839
47870
  "scrypted",
47840
47871
  "frigate",
47841
47872
  "custom"
47842
47873
  ];
47843
- function NF(e) {
47874
+ function IF(e) {
47844
47875
  let { t } = $(), n = [{
47845
47876
  value: "all",
47846
47877
  label: t("installedFilters.all")
47847
- }, ...MF.map((e) => ({
47878
+ }, ...FF.map((e) => ({
47848
47879
  value: e,
47849
- label: EF(e, t)
47880
+ label: kF(e, t)
47850
47881
  }))], r = [{
47851
47882
  value: "all",
47852
47883
  label: t("installedFilters.allDevices")
@@ -47913,25 +47944,25 @@ function NF(e) {
47913
47944
  //#endregion
47914
47945
  //#region src/tabs/InstalledTab.tsx
47915
47946
  e();
47916
- function PF(e) {
47947
+ function LF(e) {
47917
47948
  return e === "camstack" || e === "scrypted" || e === "frigate" || e === "custom" ? e : "all";
47918
47949
  }
47919
- function FF(e) {
47950
+ function RF(e) {
47920
47951
  return e === null || e.length === 0 || e === "all" ? "all" : e;
47921
47952
  }
47922
- var IF = FF, LF = FF;
47923
- function RF(e) {
47953
+ var zF = RF, BF = RF;
47954
+ function VF(e) {
47924
47955
  return e === null || e.length === 0 ? "hub" : e;
47925
47956
  }
47926
- function zF(e) {
47957
+ function HF(e) {
47927
47958
  return Ge.some((t) => t === e);
47928
47959
  }
47929
- async function BF(e, t) {
47960
+ async function UF(e, t) {
47930
47961
  let [n, r, i, a, o, s] = await Promise.all([
47931
47962
  Lj(e),
47932
47963
  Rj(e),
47933
47964
  Yj(e, t),
47934
- dM(e, t).catch(() => []),
47965
+ dM(e, t).catch(() => null),
47935
47966
  fM(e, t).catch(() => null),
47936
47967
  mM(e).catch(() => null)
47937
47968
  ]);
@@ -47940,20 +47971,21 @@ async function BF(e, t) {
47940
47971
  availability: r,
47941
47972
  seeds: i.seeds,
47942
47973
  stepCatalogs: i.stepCatalogs,
47943
- devices: a,
47974
+ devices: a ?? [],
47975
+ devicesAnswered: a !== null,
47944
47976
  engines: o,
47945
47977
  clusterModels: s
47946
47978
  };
47947
47979
  }
47948
- function VF(e, t, n) {
47980
+ function WF(e, t, n) {
47949
47981
  let [r, i] = eA(e), a = l((e) => i(e === n ? null : e), [i, n]);
47950
47982
  return [t(r), a];
47951
47983
  }
47952
- function HF({ trpc: e, refreshKey: t }) {
47953
- let { t: n } = $(), [r, a] = eA("provider"), s = PF(r), c = l((e) => a(e === "all" ? null : e), [a]), [u, d] = VF("type", IF, "all"), [f, p] = VF("device", LF, "all"), [m, h] = VF("node", RF, "hub"), _ = ht(), [x, S] = g(null), [C, w] = g(null), [T, E] = g(0), [D, ee] = g(null), te = l(async () => {
47984
+ function GF({ trpc: e, refreshKey: t }) {
47985
+ let { t: n } = $(), [r, a] = eA("provider"), s = LF(r), c = l((e) => a(e === "all" ? null : e), [a]), [u, d] = WF("type", zF, "all"), [f, p] = WF("device", BF, "all"), [m, h] = WF("node", VF, "hub"), _ = ht(), [x, S] = g(null), [C, w] = g(null), [T, E] = g(0), [D, ee] = g(null), te = l(async () => {
47954
47986
  w(null);
47955
47987
  try {
47956
- S(await BF(e, m));
47988
+ S(await UF(e, m));
47957
47989
  } catch (e) {
47958
47990
  w(e instanceof Error ? e.message : n("installed.loadFailed"));
47959
47991
  }
@@ -47967,7 +47999,7 @@ function HF({ trpc: e, refreshKey: t }) {
47967
47999
  }, [te, t]);
47968
48000
  let O = l(async () => {
47969
48001
  await te(), E((e) => e + 1);
47970
- }, [te]), ne = o(() => x === null ? [] : ZP({
48002
+ }, [te]), ne = o(() => x === null ? [] : eF({
47971
48003
  nodeId: m,
47972
48004
  seeds: x.seeds,
47973
48005
  stepCatalogs: x.stepCatalogs,
@@ -47976,7 +48008,7 @@ function HF({ trpc: e, refreshKey: t }) {
47976
48008
  clusterModels: x.clusterModels,
47977
48009
  registry: x.models,
47978
48010
  availability: x.availability
47979
- }), [x, m]), k = x?.devices ?? [], re = o(() => QP(ne, k, {
48011
+ }), [x, m]), k = x?.devices ?? [], re = x === null ? null : VP(x.devices, x.devicesAnswered), ie = o(() => tF(ne, k, {
47980
48012
  provider: s,
47981
48013
  step: u,
47982
48014
  device: f
@@ -47986,11 +48018,11 @@ function HF({ trpc: e, refreshKey: t }) {
47986
48018
  s,
47987
48019
  u,
47988
48020
  f
47989
- ]), ie = o(() => {
48021
+ ]), ae = o(() => {
47990
48022
  let e = new Set(ne.map((e) => e.stepId));
47991
48023
  return u !== "all" && e.add(u), [...e].toSorted((e, t) => e.localeCompare(t));
47992
- }, [ne, u]), ae = l(async (t) => {
47993
- if (!t.removable || !zF(t.format)) return;
48024
+ }, [ne, u]), A = l(async (t) => {
48025
+ if (!t.removable || !HF(t.format)) return;
47994
48026
  let n = {
47995
48027
  modelId: t.modelId,
47996
48028
  format: t.format,
@@ -48000,8 +48032,8 @@ function HF({ trpc: e, refreshKey: t }) {
48000
48032
  ...n,
48001
48033
  addonId: t.stepId
48002
48034
  });
48003
- }, [m, e]), A = l(async (e) => {
48004
- !e.removable || !zF(e.format) || await _({
48035
+ }, [m, e]), oe = l(async (e) => {
48036
+ !e.removable || !HF(e.format) || await _({
48005
48037
  title: n("installed.deleteFile.title"),
48006
48038
  message: n("installed.deleteFile.message", {
48007
48039
  format: e.format,
@@ -48013,20 +48045,20 @@ function HF({ trpc: e, refreshKey: t }) {
48013
48045
  confirmLabel: n("installed.deleteFile.confirm"),
48014
48046
  cancelLabel: n("common.cancel"),
48015
48047
  variant: "danger"
48016
- }) && (await ae(e), await O());
48048
+ }) && (await A(e), await O());
48017
48049
  }, [
48018
48050
  _,
48019
- ae,
48051
+ A,
48020
48052
  m,
48021
48053
  O,
48022
48054
  n
48023
- ]), oe = o(() => re.filter((e) => e.removable), [re]), se = l(async () => {
48024
- if (oe.length === 0) return;
48025
- let e = oe.reduce((e, t) => e + t.sizeMB, 0);
48055
+ ]), se = o(() => ie.filter((e) => e.removable), [ie]), ce = l(async () => {
48056
+ if (se.length === 0) return;
48057
+ let e = se.reduce((e, t) => e + t.sizeMB, 0);
48026
48058
  if (await _({
48027
48059
  title: n("installed.deleteUnused.title"),
48028
48060
  message: n("installed.deleteUnused.message", {
48029
- count: oe.length,
48061
+ count: se.length,
48030
48062
  size: Tj(e),
48031
48063
  nodeId: m
48032
48064
  }),
@@ -48034,22 +48066,22 @@ function HF({ trpc: e, refreshKey: t }) {
48034
48066
  cancelLabel: n("common.cancel"),
48035
48067
  variant: "danger"
48036
48068
  })) {
48037
- for (let e of oe) await ae(e);
48069
+ for (let e of se) await A(e);
48038
48070
  await O();
48039
48071
  }
48040
48072
  }, [
48041
48073
  _,
48042
- ae,
48074
+ A,
48043
48075
  m,
48044
48076
  O,
48045
- oe,
48077
+ se,
48046
48078
  n
48047
- ]), ce = l(async (t, n) => {
48079
+ ]), le = l(async (t, n) => {
48048
48080
  await Vj(e, {
48049
48081
  modelId: t.modelId,
48050
48082
  name: n
48051
48083
  }), await O();
48052
- }, [e, O]), le = l(async (t, r) => {
48084
+ }, [e, O]), j = l(async (t, r) => {
48053
48085
  if (r.configured) {
48054
48086
  ee({
48055
48087
  row: t,
@@ -48079,7 +48111,7 @@ function HF({ trpc: e, refreshKey: t }) {
48079
48111
  k,
48080
48112
  O,
48081
48113
  n
48082
- ]), j = ne.reduce((e, t) => e + t.sizeMB, 0), ue = s !== "all" || u !== "all" || f !== "all";
48114
+ ]), ue = ne.reduce((e, t) => e + t.sizeMB, 0), de = s !== "all" || u !== "all" || f !== "all";
48083
48115
  return /* @__PURE__ */ y("div", {
48084
48116
  className: et,
48085
48117
  "data-testid": "installed-tab",
@@ -48088,11 +48120,11 @@ function HF({ trpc: e, refreshKey: t }) {
48088
48120
  className: "rounded-md border border-danger/30 bg-danger/10 px-3 py-2 text-xs text-danger",
48089
48121
  children: C
48090
48122
  }),
48091
- /* @__PURE__ */ v(NF, {
48123
+ /* @__PURE__ */ v(IF, {
48092
48124
  provider: s,
48093
48125
  onProvider: c,
48094
48126
  step: u,
48095
- stepOptions: ie,
48127
+ stepOptions: ae,
48096
48128
  onStep: d,
48097
48129
  device: f,
48098
48130
  deviceOptions: BP(k),
@@ -48111,35 +48143,42 @@ function HF({ trpc: e, refreshKey: t }) {
48111
48143
  "data-testid": "installed-summary",
48112
48144
  children: [
48113
48145
  n("installed.summary.files", {
48114
- count: re.length,
48146
+ count: ie.length,
48115
48147
  nodeId: m
48116
48148
  }),
48117
- ue ? ` ${n("installed.summary.ofTotal", { total: ne.length })}` : "",
48149
+ de ? ` ${n("installed.summary.ofTotal", { total: ne.length })}` : "",
48118
48150
  " ·",
48119
48151
  " ",
48120
- n("installed.summary.onDisk", { size: Tj(j) }),
48152
+ n("installed.summary.onDisk", { size: Tj(ue) }),
48121
48153
  " ·",
48122
48154
  " ",
48123
- n("installed.summary.reclaimable", { size: Tj($P(ne)) }),
48155
+ n("installed.summary.reclaimable", { size: Tj(nF(ne)) }),
48124
48156
  x?.engines === null ? ` · ${n("installed.summary.loadedUnavailable")}` : ""
48125
48157
  ]
48126
- }), oe.length > 0 && /* @__PURE__ */ v("button", {
48158
+ }), se.length > 0 && /* @__PURE__ */ v("button", {
48127
48159
  type: "button",
48128
48160
  className: "inline-flex items-center justify-center gap-1 rounded border border-danger/40 bg-danger/10 px-1.5 py-0.5 sm:px-2 sm:py-1 text-[10px] sm:text-[11px] font-medium text-danger hover:bg-danger/20 transition-colors disabled:opacity-40",
48129
48161
  "data-testid": "installed-remove-unused-bulk",
48130
- onClick: () => void se(),
48131
- children: n("installed.removeUnused", { count: oe.length })
48162
+ onClick: () => void ce(),
48163
+ children: n("installed.removeUnused", { count: se.length })
48132
48164
  })]
48133
48165
  }),
48134
- /* @__PURE__ */ v(jF, {
48135
- rows: re,
48166
+ re !== null && /* @__PURE__ */ v("p", {
48167
+ role: "status",
48168
+ className: "rounded-md border border-warning/30 bg-warning/10 px-3 py-2 text-xs text-warning",
48169
+ "data-testid": "installed-devices-notice",
48170
+ "data-kind": re,
48171
+ children: n(`installed.devicesNotice.${re === "all-disabled" ? "allDisabled" : re}`)
48172
+ }),
48173
+ /* @__PURE__ */ v(PF, {
48174
+ rows: ie,
48136
48175
  emptyMessage: ne.length === 0 ? n("installed.emptyNode", { nodeId: m }) : n("installed.emptyFiltered"),
48137
- onRemove: A,
48138
- onRename: ce,
48139
- onChip: le,
48176
+ onRemove: oe,
48177
+ onRename: le,
48178
+ onChip: j,
48140
48179
  onError: w
48141
48180
  }),
48142
- /* @__PURE__ */ v(dF, {
48181
+ /* @__PURE__ */ v(mF, {
48143
48182
  trpc: e,
48144
48183
  refreshKey: t + T,
48145
48184
  clusterModels: x?.clusterModels ?? null,
@@ -48147,7 +48186,7 @@ function HF({ trpc: e, refreshKey: t }) {
48147
48186
  onError: w
48148
48187
  })
48149
48188
  ] }),
48150
- D && /* @__PURE__ */ v(nF, {
48189
+ D && /* @__PURE__ */ v(aF, {
48151
48190
  trpc: e,
48152
48191
  nodeId: m,
48153
48192
  stepId: D.row.stepId,
@@ -48163,13 +48202,13 @@ function HF({ trpc: e, refreshKey: t }) {
48163
48202
  }
48164
48203
  //#endregion
48165
48204
  //#region src/tabs/LogsTab.tsx
48166
- var UF = "model-studio";
48167
- function WF() {
48205
+ var KF = "model-studio";
48206
+ function qF() {
48168
48207
  return /* @__PURE__ */ v("div", {
48169
48208
  className: "space-y-3",
48170
48209
  "data-testid": "logs-tab",
48171
48210
  children: /* @__PURE__ */ v(fC, {
48172
- addonId: UF,
48211
+ addonId: KF,
48173
48212
  limit: 200,
48174
48213
  maxHeight: "max-h-[70vh]",
48175
48214
  showFilters: !0,
@@ -48180,23 +48219,23 @@ function WF() {
48180
48219
  //#endregion
48181
48220
  //#region src/page.tsx
48182
48221
  e();
48183
- var GF = [
48222
+ var JF = [
48184
48223
  { id: "catalog" },
48185
48224
  { id: "installed" },
48186
48225
  { id: "import" },
48187
48226
  { id: "logs" }
48188
48227
  ];
48189
- function KF(e) {
48228
+ function YF(e) {
48190
48229
  return e === "library" ? "installed" : e === "convert" || e === "settings" ? "catalog" : e === "import" || e === "catalog" || e === "installed" || e === "logs" ? e : "catalog";
48191
48230
  }
48192
- function qF(e) {
48231
+ function XF(e) {
48193
48232
  return `model-studio-tab-${e}`;
48194
48233
  }
48195
- function JF(e) {
48234
+ function ZF(e) {
48196
48235
  return `model-studio-panel-${e}`;
48197
48236
  }
48198
- function YF({ trpc: e }) {
48199
- let { t: n } = $(), [r, a] = eA("tab"), [o, s] = eA("source"), c = KF(r), u = cP(o), [d, f] = g(0), [p, m] = g(null), h = t(!1), _ = l(() => f((e) => e + 1), []), b = l((e, t = !1) => {
48237
+ function QF({ trpc: e }) {
48238
+ let { t: n } = $(), [r, a] = eA("tab"), [o, s] = eA("source"), c = YF(r), u = cP(o), [d, f] = g(0), [p, m] = g(null), h = t(!1), _ = l(() => f((e) => e + 1), []), b = l((e, t = !1) => {
48200
48239
  a(e === "catalog" ? null : e), e !== "catalog" && o !== null && (e === "import" || e === "logs" || e === "installed") && s(null), t && (h.current = !0);
48201
48240
  }, [
48202
48241
  a,
@@ -48206,7 +48245,7 @@ function YF({ trpc: e }) {
48206
48245
  s(e === "camstack" ? null : e);
48207
48246
  }, [s]);
48208
48247
  i(() => {
48209
- h.current && (h.current = !1, document.getElementById(qF(c))?.focus());
48248
+ h.current && (h.current = !1, document.getElementById(XF(c))?.focus());
48210
48249
  }, [c]), i(() => {
48211
48250
  r === "convert" && a(null), r === "library" && a("installed"), r === "settings" && (a(null), s("frigate")), c !== "catalog" && o !== null && s(null), c === "catalog" && o === "custom" && (a("import"), s(null));
48212
48251
  }, [
@@ -48217,7 +48256,7 @@ function YF({ trpc: e }) {
48217
48256
  s
48218
48257
  ]);
48219
48258
  let S = l((e) => {
48220
- let t = GF.map((e) => e.id), n = t.indexOf(c);
48259
+ let t = JF.map((e) => e.id), n = t.indexOf(c);
48221
48260
  if (n < 0) return;
48222
48261
  let r;
48223
48262
  e.key === "ArrowRight" ? r = t[(n + 1) % t.length] : e.key === "ArrowLeft" ? r = t[(n - 1 + t.length) % t.length] : e.key === "Home" ? r = t[0] : e.key === "End" && (r = t[t.length - 1]), r !== void 0 && (e.preventDefault(), b(r, !0));
@@ -48233,18 +48272,18 @@ function YF({ trpc: e }) {
48233
48272
  children: /* @__PURE__ */ v(sx, {
48234
48273
  "aria-label": n("page.sections"),
48235
48274
  onKeyDown: S,
48236
- children: GF.map((e) => /* @__PURE__ */ v(cx, {
48237
- id: qF(e.id),
48275
+ children: JF.map((e) => /* @__PURE__ */ v(cx, {
48276
+ id: XF(e.id),
48238
48277
  value: e.id,
48239
- "aria-controls": JF(e.id),
48278
+ "aria-controls": ZF(e.id),
48240
48279
  children: n(`page.tabs.${e.id}`)
48241
48280
  }, e.id))
48242
48281
  })
48243
48282
  }), /* @__PURE__ */ y("div", {
48244
48283
  className: "min-h-[400px]",
48245
48284
  role: "tabpanel",
48246
- id: JF(c),
48247
- "aria-labelledby": qF(c),
48285
+ id: ZF(c),
48286
+ "aria-labelledby": XF(c),
48248
48287
  children: [
48249
48288
  c === "catalog" && /* @__PURE__ */ v(hP, {
48250
48289
  trpc: e,
@@ -48256,7 +48295,7 @@ function YF({ trpc: e }) {
48256
48295
  m(e), b("import");
48257
48296
  }
48258
48297
  }),
48259
- c === "installed" && /* @__PURE__ */ v(HF, {
48298
+ c === "installed" && /* @__PURE__ */ v(GF, {
48260
48299
  trpc: e,
48261
48300
  refreshKey: d
48262
48301
  }),
@@ -48266,10 +48305,10 @@ function YF({ trpc: e }) {
48266
48305
  initialPrefill: p,
48267
48306
  onPrefillConsumed: () => m(null)
48268
48307
  }),
48269
- c === "logs" && /* @__PURE__ */ v(WF, {})
48308
+ c === "logs" && /* @__PURE__ */ v(qF, {})
48270
48309
  ]
48271
48310
  })]
48272
48311
  }) });
48273
48312
  }
48274
48313
  //#endregion
48275
- export { YF as default };
48314
+ export { QF as default };