@camstack/addon-model-studio 1.1.326 → 1.1.328

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 +12 -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 +572 -533
  6. package/dist/{_virtual_mf-localSharedImportMap___mfe_internal__addon_model_studio_page-C8W7iGsN.mjs → _virtual_mf-localSharedImportMap___mfe_internal__addon_model_studio_page-DBwBRZfG.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-B4ki_WkK.mjs} +2 -2
  10. package/dist/model-studio.addon.js +909 -115
  11. package/dist/model-studio.addon.mjs +909 -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-Ct9GIyeI.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-Ct9GIyeI.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,
@@ -30770,13 +30770,23 @@ var $y = r.forwardRef(function(e, t) {
30770
30770
  }), x);
30771
30771
  });
30772
30772
  //#endregion
30773
+ //#region ../ui-library/src/hooks/use-debounced-string.ts
30774
+ $y.displayName = "QRCodeSVG", e(), nt("camstack:broker-picker-slot", null), e();
30775
+ function eb(e, t) {
30776
+ let [n, r] = g(e);
30777
+ return i(() => {
30778
+ let n = setTimeout(() => r(e), t);
30779
+ return () => clearTimeout(n);
30780
+ }, [e, t]), n;
30781
+ }
30782
+ //#endregion
30773
30783
  //#region ../ui-library/src/composites/addon-global-settings-form.tsx
30774
- $y.displayName = "QRCodeSVG", e(), e(), e();
30784
+ e(), e(), e(), e();
30775
30785
  //#endregion
30776
30786
  //#region ../ui-library/src/composites/accelerator-label.ts
30777
- var eb = /^(usb|pci)(?::(\d+))?$/;
30778
- function tb(e) {
30779
- let t = eb.exec(e);
30787
+ var tb = /^(usb|pci)(?::(\d+))?$/;
30788
+ function nb(e) {
30789
+ let t = tb.exec(e);
30780
30790
  if (t === null || t[1] === "usb" && t[2] === void 0) return {
30781
30791
  label: "Coral Edge TPU",
30782
30792
  short: "Coral"
@@ -30787,7 +30797,7 @@ function tb(e) {
30787
30797
  short: `Coral ${r}`
30788
30798
  };
30789
30799
  }
30790
- function nb(e) {
30800
+ function rb(e) {
30791
30801
  let t = e.backend.toLowerCase(), n = e.device.toLowerCase();
30792
30802
  if (e.key === "cpu" || n === "cpu" || t === "cpu") return {
30793
30803
  label: "CPU",
@@ -30801,7 +30811,7 @@ function nb(e) {
30801
30811
  label: "Intel iGPU",
30802
30812
  short: "iGPU"
30803
30813
  };
30804
- if (t === "edgetpu") return tb(n);
30814
+ if (t === "edgetpu") return nb(n);
30805
30815
  if (t === "coreml") return {
30806
30816
  label: "Apple Neural Engine",
30807
30817
  short: "ANE"
@@ -30812,15 +30822,15 @@ function nb(e) {
30812
30822
  short: e.backend || e.key
30813
30823
  };
30814
30824
  }
30815
- function rb(e) {
30816
- return nb(e).label;
30817
- }
30818
30825
  function ib(e) {
30819
- return nb(e).short;
30826
+ return rb(e).label;
30827
+ }
30828
+ function ab(e) {
30829
+ return rb(e).short;
30820
30830
  }
30821
30831
  //#endregion
30822
30832
  //#region ../ui-library/src/composites/grouped-model-selector.tsx
30823
- function ab({ active: e, onClick: t, disabled: n, children: r, title: i }) {
30833
+ function ob({ active: e, onClick: t, disabled: n, children: r, title: i }) {
30824
30834
  return /* @__PURE__ */ v("button", {
30825
30835
  type: "button",
30826
30836
  onClick: t,
@@ -30830,8 +30840,8 @@ function ab({ active: e, onClick: t, disabled: n, children: r, title: i }) {
30830
30840
  children: r
30831
30841
  });
30832
30842
  }
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];
30843
+ function sb({ catalog: e, value: t, onChange: n, disabled: r }) {
30844
+ 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
30845
  if (!c) return null;
30836
30846
  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
30847
  if (!u) return null;
@@ -30861,7 +30871,7 @@ function ob({ catalog: e, value: t, onChange: n, disabled: r }) {
30861
30871
  }),
30862
30872
  /* @__PURE__ */ v("div", {
30863
30873
  className: "flex flex-wrap gap-1.5",
30864
- children: a.map((e) => /* @__PURE__ */ v(ab, {
30874
+ children: a.map((e) => /* @__PURE__ */ v(ob, {
30865
30875
  active: e.family === c.family,
30866
30876
  disabled: r,
30867
30877
  ...e.hint === void 0 ? {} : { title: e.hint },
@@ -30909,7 +30919,7 @@ function ob({ catalog: e, value: t, onChange: n, disabled: r }) {
30909
30919
  children: i("uiLibrary.groupedModelSelector.resolution", "Resolution")
30910
30920
  }), /* @__PURE__ */ v("div", {
30911
30921
  className: "flex flex-wrap gap-1.5",
30912
- children: d.map((e) => /* @__PURE__ */ v(ab, {
30922
+ children: d.map((e) => /* @__PURE__ */ v(ob, {
30913
30923
  active: e === f,
30914
30924
  disabled: r,
30915
30925
  title: e === void 0 ? i("uiLibrary.groupedModelSelector.nativeTitle", "native (best accuracy)") : i("uiLibrary.groupedModelSelector.fasterTitle", "{{size}}×{{size}} (faster)", { size: e }),
@@ -30922,7 +30932,7 @@ function ob({ catalog: e, value: t, onChange: n, disabled: r }) {
30922
30932
  children: i("uiLibrary.groupedModelSelector.variant", "Variant")
30923
30933
  }), /* @__PURE__ */ v("div", {
30924
30934
  className: "flex flex-wrap gap-1.5",
30925
- children: p.map((e) => /* @__PURE__ */ v(ab, {
30935
+ children: p.map((e) => /* @__PURE__ */ v(ob, {
30926
30936
  active: e.modelId === t,
30927
30937
  disabled: r,
30928
30938
  title: e.sizeMB > 0 ? i("uiLibrary.groupedModelSelector.formatsSize", "{{formats}} · ~{{size}} MB", {
@@ -30957,26 +30967,26 @@ function ob({ catalog: e, value: t, onChange: n, disabled: r }) {
30957
30967
  //#endregion
30958
30968
  //#region ../ui-library/src/composites/model-picker.tsx
30959
30969
  e();
30960
- var sb = {
30970
+ var cb = {
30961
30971
  camstack: "CamStack",
30962
30972
  frigate: "plus catalog",
30963
30973
  scrypted: "plugin catalog",
30964
30974
  custom: "Custom"
30965
30975
  };
30966
- function cb(e) {
30976
+ function lb(e) {
30967
30977
  return e.provider ?? "camstack";
30968
30978
  }
30969
- function lb({ models: e, value: t, onChange: n, disabled: r, defaultModelId: a }) {
30979
+ function ub({ models: e, value: t, onChange: n, disabled: r, defaultModelId: a }) {
30970
30980
  let s = S(), c = o(() => {
30971
30981
  let t = /* @__PURE__ */ new Map();
30972
30982
  for (let n of e) {
30973
- let e = cb(n), r = t.get(e);
30983
+ let e = lb(n), r = t.get(e);
30974
30984
  r ? r.push(n) : t.set(e, [n]);
30975
30985
  }
30976
30986
  return t;
30977
30987
  }, [e]), l = o(() => Fe.filter((e) => (c.get(e)?.length ?? 0) > 0), [c]), u = o(() => {
30978
30988
  let n = e.find((e) => e.id === t);
30979
- return n ? cb(n) : void 0;
30989
+ return n ? lb(n) : void 0;
30980
30990
  }, [e, t]) ?? (l.includes("camstack") ? "camstack" : l[0] ?? "camstack"), [d, f] = g(u);
30981
30991
  i(() => {
30982
30992
  f(u);
@@ -31015,10 +31025,10 @@ function lb({ models: e, value: t, onChange: n, disabled: r, defaultModelId: a }
31015
31025
  disabled: r,
31016
31026
  onClick: () => f(e),
31017
31027
  className: B("rounded-full px-3 py-1 text-[11px] font-medium border transition-colors", e === d ? "border-primary bg-primary/10 text-primary" : "border-border bg-background text-foreground-subtle hover:text-foreground hover:border-foreground-subtle/40", r ? "opacity-50 cursor-not-allowed" : "cursor-pointer"),
31018
- children: sb[e]
31028
+ children: cb[e]
31019
31029
  }, e))
31020
31030
  })] }),
31021
- b.length > 0 && /* @__PURE__ */ v(ob, {
31031
+ b.length > 0 && /* @__PURE__ */ v(sb, {
31022
31032
  catalog: b,
31023
31033
  value: t,
31024
31034
  onChange: n,
@@ -31047,62 +31057,62 @@ function lb({ models: e, value: t, onChange: n, disabled: r, defaultModelId: a }
31047
31057
  }
31048
31058
  //#endregion
31049
31059
  //#region ../ui-library/src/composites/resolve-step-default-model.ts
31050
- function ub(e, t) {
31060
+ function db(e, t) {
31051
31061
  let n = (n) => e.models.find((e) => e.id === n)?.formats[t] !== void 0, r = e.defaultModelIdByFormat?.[t];
31052
31062
  if (r !== void 0 && n(r)) return r;
31053
31063
  if (n(e.defaultModelId)) return e.defaultModelId;
31054
31064
  let i = e.models.filter((e) => e.formats[t] !== void 0 && e.legacy !== !0);
31055
31065
  return i.length === 0 ? e.defaultModelId : [...i].toSorted((e, n) => (e.formats[t]?.sizeMB ?? Infinity) - (n.formats[t]?.sizeMB ?? Infinity))[0].id;
31056
31066
  }
31057
- function db(e, t) {
31067
+ function fb(e, t) {
31058
31068
  let n = t?.format;
31059
31069
  if (n === void 0) return;
31060
31070
  let r = t?.defaultModelId;
31061
- return e.slot === "detector" && r !== void 0 && e.models.some((e) => e.id === r) ? r : ub(e, n);
31071
+ return e.slot === "detector" && r !== void 0 && e.models.some((e) => e.id === r) ? r : db(e, n);
31062
31072
  }
31063
- function fb(e, t) {
31073
+ function pb(e, t) {
31064
31074
  return t === void 0 ? [] : e.filter((e) => e.formats[t] !== void 0);
31065
31075
  }
31066
- function pb(e, t) {
31067
- return fb(e, t).length > 0;
31076
+ function mb(e, t) {
31077
+ return pb(e, t).length > 0;
31068
31078
  }
31069
- function mb(e) {
31070
- return e.base ?? db(e.catalog, e.device);
31079
+ function hb(e) {
31080
+ return e.base ?? fb(e.catalog, e.device);
31071
31081
  }
31072
31082
  //#endregion
31073
31083
  //#region ../ui-library/src/composites/root-model-source.tsx
31074
- function hb(e, t, n) {
31084
+ function gb(e, t, n) {
31075
31085
  return ue(e) ? ie(e, t, n?.supplies) : null;
31076
31086
  }
31077
- function gb(e, t) {
31087
+ function _b(e, t) {
31078
31088
  return {
31079
31089
  ...e,
31080
31090
  [we]: t
31081
31091
  };
31082
31092
  }
31083
- function _b(e, t = x) {
31093
+ function vb(e, t = x) {
31084
31094
  if (e.kind === "label") {
31085
31095
  let n = e.uncovered.length > 0 ? [t("uiLibrary.rootModelSource.notProduced", "Not produced by this model: {{classes}}.", { classes: e.uncovered.join(", ") })] : [];
31086
31096
  return e.stepId === "package-detection" ? [...n, t("uiLibrary.rootModelSource.packageNote", "The root model's own package boxes become the package result at this step's threshold; this step's zone-crop view is not used, so small parcels the full-frame model misses stay missed.")] : [...n, t("uiLibrary.rootModelSource.labelNote", "This step's class list decides which of the root's labels become the fine class; a switched-off class stays at its macro.")];
31087
31097
  }
31088
31098
  return e.kind === "mask" ? [t("uiLibrary.rootModelSource.maskNote", "Masks come from the root model: each detection carries the root's own instance mask, so this step's model does not run. A root mask follows the model's mask grid (a quarter of its input), coarser than this step's own per-crop mask.")] : e.stepId === "face-detection" ? [t("uiLibrary.rootModelSource.faceNote", "Face boxes come from the root model. Each is re-found by this step's face detector in a square around it before recognition, so only a face it finds is recognised; a box with no face in it is dropped.")] : [t("uiLibrary.rootModelSource.plateNote", "Plate boxes come from the root model and the plate reader reads them. The crop margin around a root plate box has not been measured for this model yet.")];
31089
31099
  }
31090
- function vb(e, t, n) {
31100
+ function yb(e, t, n) {
31091
31101
  switch (e.inactiveReason) {
31092
31102
  case "root-input-too-small": return n("uiLibrary.rootModelSource.inactiveTooSmall", "the current root model ({{name}}) sees the frame too small to find faces reliably (it needs an input of 640 px or more).", { name: t.name });
31093
31103
  case "root-does-not-declare":
31094
31104
  case void 0: return n("uiLibrary.rootModelSource.inactiveCannot", "the current root model ({{name}}) cannot supply this.", { name: t.name });
31095
31105
  }
31096
31106
  }
31097
- function yb({ stepId: e, settings: t, rootModel: n, disabled: r, onChange: i }) {
31107
+ function bb({ stepId: e, settings: t, rootModel: n, disabled: r, onChange: i }) {
31098
31108
  let a = S();
31099
31109
  if (n === void 0) return null;
31100
- let o = hb(e, t, n);
31110
+ let o = gb(e, t, n);
31101
31111
  if (o === null) return null;
31102
31112
  let s = o.inactive ? /* @__PURE__ */ v("div", {
31103
31113
  className: "rounded bg-muted/40 px-3 py-2 text-[11px] text-foreground-subtle",
31104
31114
  "data-testid": "root-model-inactive",
31105
- children: a("uiLibrary.rootModelSource.inactive", "Use the root model: inactive — {{reason}} The step runs its own model.", { reason: vb(o, n, a) })
31115
+ children: a("uiLibrary.rootModelSource.inactive", "Use the root model: inactive — {{reason}} The step runs its own model.", { reason: yb(o, n, a) })
31106
31116
  }) : null;
31107
31117
  if (o.supply === void 0) return s;
31108
31118
  let c = o.intent;
@@ -31120,7 +31130,7 @@ function yb({ stepId: e, settings: t, rootModel: n, disabled: r, onChange: i })
31120
31130
  }), a("uiLibrary.rootModelSource.use", "Use the root model ({{name}})", { name: n.name })]
31121
31131
  }),
31122
31132
  s,
31123
- o.effective && _b(o.supply, a).map((e) => /* @__PURE__ */ v("p", {
31133
+ o.effective && vb(o.supply, a).map((e) => /* @__PURE__ */ v("p", {
31124
31134
  className: "text-[10px] leading-snug text-foreground-subtle",
31125
31135
  children: e
31126
31136
  }, e))
@@ -31129,17 +31139,17 @@ function yb({ stepId: e, settings: t, rootModel: n, disabled: r, onChange: i })
31129
31139
  }
31130
31140
  //#endregion
31131
31141
  //#region ../ui-library/src/composites/model-bound-slider.tsx
31132
- function bb(e, t) {
31142
+ function xb(e, t) {
31133
31143
  switch (e) {
31134
31144
  case "override": return t("uiLibrary.modelBoundSlider.sourceOverride", "Override for this model");
31135
31145
  case "model-default": return t("uiLibrary.modelBoundSlider.sourceModelDefault", "Model default");
31136
31146
  case "global-default": return t("uiLibrary.modelBoundSlider.sourceGlobalDefault", "Default — not tuned for this model");
31137
31147
  }
31138
31148
  }
31139
- function xb(e, t) {
31149
+ function Sb(e, t) {
31140
31150
  return (t === void 0 ? e : e / t).toFixed(2).replace(/\.?0+$/, "");
31141
31151
  }
31142
- function Sb({ field: e, modelId: t, settings: n, disabled: r, onChangeSettings: i, hideSourceRow: a = !1 }) {
31152
+ function Cb({ field: e, modelId: t, settings: n, disabled: r, onChangeSettings: i, hideSourceRow: a = !1 }) {
31143
31153
  let o = S(), s = e.modelApplicability?.defaultByModel?.[t], c = Be(n, e.key, t.length > 0 ? t : void 0, s, e.default), l = typeof e.default == "number" ? e.default : e.min ?? 0, u = typeof c.value == "number" ? c.value : l, d = e.type === "slider" ? e.displayScale : void 0, f = "unit" in e ? e.unit : void 0, p = c.inapplicableOverride, m = n?.[e.key] !== void 0, h = (r) => {
31144
31154
  i(t.length > 0 ? Ke(n, e.key, r, t) : {
31145
31155
  ...n,
@@ -31154,7 +31164,7 @@ function Sb({ field: e, modelId: t, settings: n, disabled: r, onChangeSettings:
31154
31164
  children: e.label
31155
31165
  }), /* @__PURE__ */ y("span", {
31156
31166
  className: "text-xs font-medium text-foreground tabular-nums",
31157
- children: [xb(u, d), f ? ` ${f}` : ""]
31167
+ children: [Sb(u, d), f ? ` ${f}` : ""]
31158
31168
  })]
31159
31169
  }),
31160
31170
  e.description && /* @__PURE__ */ v("p", {
@@ -31176,7 +31186,7 @@ function Sb({ field: e, modelId: t, settings: n, disabled: r, onChangeSettings:
31176
31186
  children: [/* @__PURE__ */ v("span", {
31177
31187
  "data-testid": "model-bound-source",
31178
31188
  className: c.source === "override" ? "text-primary font-medium" : "text-foreground-subtle",
31179
- children: bb(c.source, o)
31189
+ children: xb(c.source, o)
31180
31190
  }), m && /* @__PURE__ */ v("button", {
31181
31191
  type: "button",
31182
31192
  disabled: r,
@@ -31188,17 +31198,17 @@ function Sb({ field: e, modelId: t, settings: n, disabled: r, onChangeSettings:
31188
31198
  p !== void 0 && typeof p.value == "number" && /* @__PURE__ */ v("p", {
31189
31199
  className: "mt-1 text-[10px] text-amber-400/90",
31190
31200
  children: o("uiLibrary.modelBoundSlider.staleOverride", "The override {{value}} was set for {{modelId}} and does not apply to this model.", {
31191
- value: xb(p.value, d),
31201
+ value: Sb(p.value, d),
31192
31202
  modelId: p.modelId
31193
31203
  })
31194
31204
  })
31195
31205
  ] });
31196
31206
  }
31197
- function Cb(e) {
31198
- return e.flatMap((e) => e.type === "group" ? Cb(e.fields) : "key" in e && "bindsToModel" in e && e.bindsToModel === !0 ? [e.key] : []);
31207
+ function wb(e) {
31208
+ return e.flatMap((e) => e.type === "group" ? wb(e.fields) : "key" in e && "bindsToModel" in e && e.bindsToModel === !0 ? [e.key] : []);
31199
31209
  }
31200
- function wb({ fields: e, modelId: t, settings: n, disabled: r, onReset: i }) {
31201
- let a = S(), o = Cb(e), s = t.length > 0 ? t : void 0;
31210
+ function Tb({ fields: e, modelId: t, settings: n, disabled: r, onReset: i }) {
31211
+ let a = S(), o = wb(e), s = t.length > 0 ? t : void 0;
31202
31212
  return o.length === 0 || !se(n, o, s) ? null : /* @__PURE__ */ v("button", {
31203
31213
  type: "button",
31204
31214
  disabled: r,
@@ -31210,7 +31220,7 @@ function wb({ fields: e, modelId: t, settings: n, disabled: r, onReset: i }) {
31210
31220
  //#endregion
31211
31221
  //#region ../ui-library/src/composites/pipeline-step.tsx
31212
31222
  e();
31213
- function Tb({ label: e, value: t, options: n, disabled: r, onChange: i }) {
31223
+ function Eb({ label: e, value: t, options: n, disabled: r, onChange: i }) {
31214
31224
  let a = S();
31215
31225
  return /* @__PURE__ */ y("div", { children: [/* @__PURE__ */ v("label", {
31216
31226
  className: "block text-[10px] font-medium text-foreground-subtle uppercase tracking-wide mb-1.5",
@@ -31230,7 +31240,7 @@ function Tb({ label: e, value: t, options: n, disabled: r, onChange: i }) {
31230
31240
  }, e.value))]
31231
31241
  })] });
31232
31242
  }
31233
- function Eb({ label: e, description: t, value: n, options: r, disabled: i, onChange: a }) {
31243
+ function Db({ label: e, description: t, value: n, options: r, disabled: i, onChange: a }) {
31234
31244
  function o(e) {
31235
31245
  i || a(n.includes(e) ? n.filter((t) => t !== e) : [...n, e]);
31236
31246
  }
@@ -31258,14 +31268,14 @@ function Eb({ label: e, description: t, value: n, options: r, disabled: i, onCha
31258
31268
  })
31259
31269
  ] });
31260
31270
  }
31261
- function Db(e, t, n) {
31271
+ function Ob(e, t, n) {
31262
31272
  let r = t.settings?.[e];
31263
31273
  if (r !== void 0) return r;
31264
31274
  let i = n.find((t) => "key" in t && t.key === e);
31265
31275
  return i && "default" in i ? i.default : void 0;
31266
31276
  }
31267
- function Ob({ field: e, allFields: t, step: n, disabled: r, onChange: i, hideModelBoundSourceRow: a }) {
31268
- let o = S(), s = "modelApplicability" in e ? e.modelApplicability : void 0, c = s?.inapplicable?.[n.modelId], l = /* @__PURE__ */ v(kb, {
31277
+ function kb({ field: e, allFields: t, step: n, disabled: r, onChange: i, hideModelBoundSourceRow: a }) {
31278
+ let o = S(), s = "modelApplicability" in e ? e.modelApplicability : void 0, c = s?.inapplicable?.[n.modelId], l = /* @__PURE__ */ v(Ab, {
31269
31279
  field: e,
31270
31280
  allFields: t,
31271
31281
  step: n,
@@ -31282,10 +31292,10 @@ function Ob({ field: e, allFields: t, step: n, disabled: r, onChange: i, hideMod
31282
31292
  })]
31283
31293
  });
31284
31294
  }
31285
- function kb({ field: e, allFields: t, step: n, disabled: r, modelScopedOptions: i, onChange: a, hideModelBoundSourceRow: o }) {
31295
+ function Ab({ field: e, allFields: t, step: n, disabled: r, modelScopedOptions: i, onChange: a, hideModelBoundSourceRow: o }) {
31286
31296
  let s = e.type !== "separator" && e.type !== "info" ? e.showWhen : void 0;
31287
31297
  if (s) {
31288
- let { field: e, equals: r, notEquals: i, in: a, notIn: o } = s, c = Db(e, n, t);
31298
+ let { field: e, equals: r, notEquals: i, in: a, notIn: o } = s, c = Ob(e, n, t);
31289
31299
  if (r !== void 0 && c !== r || i !== void 0 && c === i || a !== void 0 && !a.includes(c) || o !== void 0 && o.includes(c)) return null;
31290
31300
  }
31291
31301
  function c(t) {
@@ -31299,7 +31309,7 @@ function kb({ field: e, allFields: t, step: n, disabled: r, modelScopedOptions:
31299
31309
  }
31300
31310
  if (e.type === "select") {
31301
31311
  let t = n.settings?.[e.key], a = typeof t == "string" ? t : e.default ?? "";
31302
- return /* @__PURE__ */ v(Tb, {
31312
+ return /* @__PURE__ */ v(Eb, {
31303
31313
  label: e.label,
31304
31314
  value: a,
31305
31315
  disabled: r || e.disabled,
@@ -31309,7 +31319,7 @@ function kb({ field: e, allFields: t, step: n, disabled: r, modelScopedOptions:
31309
31319
  }
31310
31320
  if (e.type === "multiselect") {
31311
31321
  let t = n.settings?.[e.key], a = Array.isArray(t) ? t : Array.isArray(e.default) ? e.default : [];
31312
- return /* @__PURE__ */ v(Eb, {
31322
+ return /* @__PURE__ */ v(Db, {
31313
31323
  label: e.label,
31314
31324
  description: e.description,
31315
31325
  value: a,
@@ -31318,7 +31328,7 @@ function kb({ field: e, allFields: t, step: n, disabled: r, modelScopedOptions:
31318
31328
  onChange: c
31319
31329
  });
31320
31330
  }
31321
- if ((e.type === "slider" || e.type === "number") && e.bindsToModel === !0) return /* @__PURE__ */ v(Sb, {
31331
+ if ((e.type === "slider" || e.type === "number") && e.bindsToModel === !0) return /* @__PURE__ */ v(Cb, {
31322
31332
  field: e,
31323
31333
  modelId: n.modelId,
31324
31334
  settings: n.settings,
@@ -31402,28 +31412,28 @@ function kb({ field: e, allFields: t, step: n, disabled: r, modelScopedOptions:
31402
31412
  }
31403
31413
  //#endregion
31404
31414
  //#region ../ui-library/src/composites/step-inspector/setting-values.ts
31405
- function Ab(e) {
31415
+ function jb(e) {
31406
31416
  return e.type !== "separator" && e.type !== "info" && e.type !== "group";
31407
31417
  }
31408
- function jb(e) {
31418
+ function Mb(e) {
31409
31419
  return "bindsToModel" in e && e.bindsToModel === !0 ? !0 : "key" in e && re(e.key);
31410
31420
  }
31411
- function Mb(e) {
31421
+ function Nb(e) {
31412
31422
  return e.flatMap((e) => {
31413
31423
  if (e.type === "group") {
31414
- let t = Mb(e.fields);
31424
+ let t = Nb(e.fields);
31415
31425
  return t.length > 0 ? [{
31416
31426
  ...e,
31417
31427
  fields: [...t]
31418
31428
  }] : [];
31419
31429
  }
31420
- return jb(e) ? [] : [e];
31430
+ return Mb(e) ? [] : [e];
31421
31431
  });
31422
31432
  }
31423
- function Nb(e) {
31433
+ function Pb(e) {
31424
31434
  return (e.type === "slider" || e.type === "number") && e.bindsToModel === !0;
31425
31435
  }
31426
- function Pb(e, t) {
31436
+ function Fb(e, t) {
31427
31437
  let n = "modelApplicability" in e ? e.modelApplicability?.defaultByModel?.[t] : void 0;
31428
31438
  return n === void 0 ? {
31429
31439
  value: "default" in e ? e.default : void 0,
@@ -31433,15 +31443,15 @@ function Pb(e, t) {
31433
31443
  fromModel: !0
31434
31444
  };
31435
31445
  }
31436
- function Fb(e) {
31446
+ function Ib(e) {
31437
31447
  return e.toFixed(2).replace(/\.?0+$/, "");
31438
31448
  }
31439
- function Ib(e, t) {
31449
+ function Lb(e, t) {
31440
31450
  if (t == null) return "—";
31441
31451
  if (typeof t == "boolean") return t ? "on" : "off";
31442
31452
  if (typeof t == "number") {
31443
31453
  let n = e.type === "slider" ? e.displayScale : void 0, r = "unit" in e && typeof e.unit == "string" ? ` ${e.unit}` : "";
31444
- return `${Fb(n === void 0 ? t : t / n)}${r}`;
31454
+ return `${Ib(n === void 0 ? t : t / n)}${r}`;
31445
31455
  }
31446
31456
  let n = "options" in e && Array.isArray(e.options) ? e.options : [], r = (e) => {
31447
31457
  let t = n.find((t) => t.value === e);
@@ -31451,15 +31461,15 @@ function Ib(e, t) {
31451
31461
  }
31452
31462
  //#endregion
31453
31463
  //#region ../ui-library/src/composites/step-inspector/layered-settings-form.tsx
31454
- var Lb = {
31464
+ var Rb = {
31455
31465
  camera: "border-primary/40 bg-primary/10 text-primary",
31456
31466
  node: "border-border bg-muted/40 text-foreground",
31457
31467
  default: "border-border/60 text-foreground-subtle"
31458
31468
  };
31459
- function Rb(e) {
31469
+ function zb(e) {
31460
31470
  return `step-field-${e}`;
31461
31471
  }
31462
- function zb(e, t, n) {
31472
+ function Bb(e, t, n) {
31463
31473
  return {
31464
31474
  addonId: e.id,
31465
31475
  addonName: e.name,
@@ -31472,21 +31482,21 @@ function zb(e, t, n) {
31472
31482
  settings: { ...n }
31473
31483
  };
31474
31484
  }
31475
- var Bb = ["camera", "node"];
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) => {
31485
+ var Vb = ["camera", "node"];
31486
+ function Hb({ field: e, layers: t, target: n, labels: r, boundKeys: i, modelId: a, pinned: o, disabled: s, onReset: c, action: l }) {
31487
+ let u = S(), d = T(t), f = Fb(e, a), p = f.fromModel ? u("uiLibrary.layeredSettings.modelDefault", "model default") : u("uiLibrary.layeredSettings.default", "default"), m = _e(t, e.key, i), h = Pb(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 = Vb.filter((e) => e !== _ && r[e] !== void 0).filter((n) => t[n]?.[e.key] !== void 0).map((n) => {
31478
31488
  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
- 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({
31489
+ return `${r[n]} ${Lb(e, t[n]?.[e.key])}${o}`;
31490
+ }), C = _ === "default" ? x : [...x, `${p} ${Lb(e, f.value)}`], w = _e({ [n]: t[n] }, e.key, i) !== "default", E = Vb.slice(Vb.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
31491
  ...t,
31482
31492
  [m]: void 0
31483
- }, e.key, i), ee = D === "default" ? p : r[D] ?? D;
31493
+ }, e.key, i), te = ee === "default" ? p : r[ee] ?? ee;
31484
31494
  return /* @__PURE__ */ y("div", {
31485
31495
  className: "mt-1 flex flex-wrap items-center gap-x-2 gap-y-1 text-[10px]",
31486
31496
  children: [
31487
31497
  /* @__PURE__ */ v("span", {
31488
31498
  "data-testid": "setting-source",
31489
- className: B("rounded border px-1.5 py-px font-medium", Lb[_]),
31499
+ className: B("rounded border px-1.5 py-px font-medium", Rb[_]),
31490
31500
  children: b
31491
31501
  }),
31492
31502
  C.length > 0 && /* @__PURE__ */ v("span", {
@@ -31497,7 +31507,7 @@ function Vb({ field: e, layers: t, target: n, labels: r, boundKeys: i, modelId:
31497
31507
  o && /* @__PURE__ */ v("span", {
31498
31508
  className: "rounded border border-warning/40 px-1.5 py-px text-warning",
31499
31509
  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() })
31510
+ children: u("uiLibrary.layeredSettings.pinned", "pinned at the {{source}} value", { source: te.toLowerCase() })
31501
31511
  }),
31502
31512
  /* @__PURE__ */ y("span", {
31503
31513
  className: "ml-auto flex items-center gap-2",
@@ -31506,14 +31516,14 @@ function Vb({ field: e, layers: t, target: n, labels: r, boundKeys: i, modelId:
31506
31516
  disabled: s,
31507
31517
  onClick: c,
31508
31518
  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() })
31519
+ children: u("uiLibrary.layeredSettings.resetTo", "Reset to {{target}}", { target: D.toLowerCase() })
31510
31520
  })]
31511
31521
  })
31512
31522
  ]
31513
31523
  });
31514
31524
  }
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);
31525
+ function Ub({ 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 }) {
31526
+ let p = S(), m = r === "camera" ? Nb(t) : t, h = Xe(m), g = T(n), _ = n[r], b = Bb(e, a, g), x = gb(e.id, g, s);
31517
31527
  return /* @__PURE__ */ y("div", {
31518
31528
  className: "space-y-2 text-xs",
31519
31529
  children: [
@@ -31530,7 +31540,7 @@ function Hb({ addon: e, fields: t, layers: n, target: r, labels: i, modelId: a,
31530
31540
  }),
31531
31541
  /* @__PURE__ */ y("span", {
31532
31542
  className: "ml-auto flex flex-wrap items-center gap-3",
31533
- children: [u, /* @__PURE__ */ v(wb, {
31543
+ children: [u, /* @__PURE__ */ v(Tb, {
31534
31544
  fields: m,
31535
31545
  modelId: a,
31536
31546
  settings: _,
@@ -31540,15 +31550,15 @@ function Hb({ addon: e, fields: t, layers: n, target: r, labels: i, modelId: a,
31540
31550
  })
31541
31551
  ]
31542
31552
  }),
31543
- x !== null && /* @__PURE__ */ v(yb, {
31553
+ x !== null && /* @__PURE__ */ v(bb, {
31544
31554
  stepId: e.id,
31545
31555
  settings: g,
31546
31556
  rootModel: s,
31547
31557
  disabled: f,
31548
- onChange: (e) => o(w(_, we, gb(g, e), []))
31558
+ onChange: (e) => o(w(_, we, _b(g, e), []))
31549
31559
  }),
31550
31560
  m.map((e) => {
31551
- if (!Ab(e)) return /* @__PURE__ */ v(Ob, {
31561
+ if (!jb(e)) return /* @__PURE__ */ v(kb, {
31552
31562
  field: e,
31553
31563
  allFields: m,
31554
31564
  step: b,
@@ -31557,17 +31567,17 @@ function Hb({ addon: e, fields: t, layers: n, target: r, labels: i, modelId: a,
31557
31567
  }, e.key);
31558
31568
  let t = d === e.key;
31559
31569
  return /* @__PURE__ */ y("div", {
31560
- id: Rb(e.key),
31570
+ id: zb(e.key),
31561
31571
  "data-field-key": e.key,
31562
31572
  className: B("rounded-md border border-transparent px-2 py-1 -mx-2", t && "border-primary/50 bg-primary/5"),
31563
- children: [/* @__PURE__ */ v(Ob, {
31573
+ children: [/* @__PURE__ */ v(kb, {
31564
31574
  field: e,
31565
31575
  allFields: m,
31566
31576
  step: b,
31567
31577
  disabled: f,
31568
31578
  hideModelBoundSourceRow: !0,
31569
31579
  onChange: (t) => o(w(_, e.key, t.settings ?? {}, h))
31570
- }), /* @__PURE__ */ v(Vb, {
31580
+ }), /* @__PURE__ */ v(Hb, {
31571
31581
  field: e,
31572
31582
  layers: n,
31573
31583
  target: r,
@@ -31587,21 +31597,21 @@ function Hb({ addon: e, fields: t, layers: n, target: r, labels: i, modelId: a,
31587
31597
  //#endregion
31588
31598
  //#region ../ui-library/src/composites/agent-step-editor.tsx
31589
31599
  e();
31590
- function Ub(e) {
31600
+ function Wb(e) {
31591
31601
  let t = new Set(xe(e.id).map((e) => e.key));
31592
31602
  return (e.configSchema ?? []).filter((e) => !t.has(e.key));
31593
31603
  }
31594
- function Wb(e, t, n, r) {
31595
- return r !== void 0 && hb(e.id, n, r)?.effective ? r.modelId : t ?? e.defaultModelId;
31604
+ function Gb(e, t, n, r) {
31605
+ return r !== void 0 && gb(e.id, n, r)?.effective ? r.modelId : t ?? e.defaultModelId;
31596
31606
  }
31597
- function Gb({ addonId: e }) {
31607
+ function Kb({ addonId: e }) {
31598
31608
  let t = S();
31599
31609
  return xe(e).length === 0 ? null : /* @__PURE__ */ v("p", {
31600
31610
  className: "text-[10px] leading-snug text-foreground-subtle",
31601
31611
  children: t("uiLibrary.agentStepEditor.clusterHint", "Admission knobs for this step live in Pipeline → Cluster → Settings → Enrichment models. They apply to every camera — a per-device copy would fill the shared index from two policies.")
31602
31612
  });
31603
31613
  }
31604
- function Kb({ rootModel: e, stepModelId: t }) {
31614
+ function qb({ rootModel: e, stepModelId: t }) {
31605
31615
  return /* @__PURE__ */ v("div", {
31606
31616
  className: "rounded bg-primary/10 px-3 py-2 text-[11px] text-foreground-subtle",
31607
31617
  "data-testid": "root-supplied-model",
@@ -31616,73 +31626,73 @@ function Kb({ rootModel: e, stepModelId: t }) {
31616
31626
  })
31617
31627
  });
31618
31628
  }
31619
- function qb({ addon: e, agentDefault: t, onChangeAgentConfig: n, engineFormat: r, effectiveModelId: i, rootModel: a }) {
31620
- let s = S(), c = o(() => fb(e.models, r), [e.models, r]), l = (e) => {
31629
+ function Jb({ addon: e, agentDefault: t, onChangeAgentConfig: n, engineFormat: r, effectiveModelId: i, rootModel: a }) {
31630
+ let s = S(), c = o(() => pb(e.models, r), [e.models, r]), l = (e) => {
31621
31631
  n?.({
31622
31632
  ...t,
31623
31633
  ...e
31624
31634
  });
31625
- }, u = Ub(e), d = e.defaultModelIdByFormat?.[r] ?? e.defaultModelId, f = t.settings ?? {}, p = hb(e.id, f, a)?.effective === !0, m = t.modelId ?? i;
31635
+ }, u = Wb(e), d = e.defaultModelIdByFormat?.[r] ?? e.defaultModelId, f = t.settings ?? {}, p = gb(e.id, f, a)?.effective === !0, m = t.modelId ?? i;
31626
31636
  return /* @__PURE__ */ y("div", {
31627
31637
  className: "space-y-4 text-xs",
31628
31638
  children: [
31629
- p && a !== void 0 ? /* @__PURE__ */ v(Kb, {
31639
+ p && a !== void 0 ? /* @__PURE__ */ v(qb, {
31630
31640
  rootModel: a,
31631
31641
  stepModelId: m
31632
31642
  }) : /* @__PURE__ */ y("div", { children: [/* @__PURE__ */ v("div", {
31633
31643
  className: "text-[10px] uppercase tracking-widest text-foreground-subtle mb-1",
31634
31644
  children: s("uiLibrary.agentStepEditor.model", "Model")
31635
- }), /* @__PURE__ */ v(lb, {
31645
+ }), /* @__PURE__ */ v(ub, {
31636
31646
  models: c,
31637
31647
  value: m ?? "",
31638
31648
  defaultModelId: d,
31639
31649
  onChange: (e) => l({ modelId: e })
31640
31650
  })] }),
31641
- (u.length > 0 || hb(e.id, f, a)) && /* @__PURE__ */ v("div", {
31651
+ (u.length > 0 || gb(e.id, f, a)) && /* @__PURE__ */ v("div", {
31642
31652
  className: "pt-2 border-t border-border/50",
31643
- children: /* @__PURE__ */ v(Hb, {
31653
+ children: /* @__PURE__ */ v(Ub, {
31644
31654
  addon: e,
31645
31655
  fields: u,
31646
31656
  layers: { node: f },
31647
31657
  target: "node",
31648
31658
  labels: { node: "This node" },
31649
- modelId: Wb(e, m, f, a),
31659
+ modelId: Gb(e, m, f, a),
31650
31660
  ...a === void 0 ? {} : { rootModel: a },
31651
31661
  onChangeLayer: (e) => l({ settings: e })
31652
31662
  })
31653
31663
  }),
31654
- /* @__PURE__ */ v(Gb, { addonId: e.id })
31664
+ /* @__PURE__ */ v(Kb, { addonId: e.id })
31655
31665
  ]
31656
31666
  });
31657
31667
  }
31658
31668
  //#endregion
31659
31669
  //#region ../ui-library/src/primitives/label.tsx
31660
31670
  e();
31661
- var Jb = c(({ className: e, ...t }, n) => /* @__PURE__ */ v("label", {
31671
+ var Yb = c(({ className: e, ...t }, n) => /* @__PURE__ */ v("label", {
31662
31672
  ref: n,
31663
31673
  className: B("text-[10px] uppercase tracking-wider text-foreground-muted font-medium", e),
31664
31674
  ...t
31665
31675
  }));
31666
31676
  //#endregion
31667
31677
  //#region ../ui-library/src/primitives/separator.tsx
31668
- Jb.displayName = "Label", e();
31669
- var Yb = to("", {
31678
+ Yb.displayName = "Label", e();
31679
+ var Xb = to("", {
31670
31680
  variants: { orientation: {
31671
31681
  horizontal: "h-px w-full bg-border-subtle",
31672
31682
  vertical: "w-px h-full bg-border-subtle"
31673
31683
  } },
31674
31684
  defaultVariants: { orientation: "horizontal" }
31675
- }), Xb = c(({ className: e, orientation: t, ...n }, r) => /* @__PURE__ */ v("div", {
31685
+ }), Zb = c(({ className: e, orientation: t, ...n }, r) => /* @__PURE__ */ v("div", {
31676
31686
  ref: r,
31677
31687
  role: "separator",
31678
31688
  "aria-orientation": t ?? "horizontal",
31679
- className: B(Yb({ orientation: t }), e),
31689
+ className: B(Xb({ orientation: t }), e),
31680
31690
  ...n
31681
31691
  }));
31682
31692
  //#endregion
31683
31693
  //#region ../ui-library/src/primitives/checkbox.tsx
31684
- Xb.displayName = "Separator", e();
31685
- var Zb = c(({ className: e, ...t }, n) => /* @__PURE__ */ v("input", {
31694
+ Zb.displayName = "Separator", e();
31695
+ var Qb = c(({ className: e, ...t }, n) => /* @__PURE__ */ v("input", {
31686
31696
  ref: n,
31687
31697
  type: "checkbox",
31688
31698
  className: B("w-3.5 h-3.5 rounded-sm border border-border accent-primary", e),
@@ -31690,8 +31700,8 @@ var Zb = c(({ className: e, ...t }, n) => /* @__PURE__ */ v("input", {
31690
31700
  }));
31691
31701
  //#endregion
31692
31702
  //#region ../ui-library/src/primitives/switch.tsx
31693
- Zb.displayName = "Checkbox", e();
31694
- var Qb = c(({ className: e, checked: t, onCheckedChange: n, label: r, ...i }, a) => /* @__PURE__ */ y("button", {
31703
+ Qb.displayName = "Checkbox", e();
31704
+ var $b = c(({ className: e, checked: t, onCheckedChange: n, label: r, ...i }, a) => /* @__PURE__ */ y("button", {
31695
31705
  ref: a,
31696
31706
  role: "switch",
31697
31707
  "aria-checked": t,
@@ -31709,27 +31719,27 @@ var Qb = c(({ className: e, checked: t, onCheckedChange: n, label: r, ...i }, a)
31709
31719
  }));
31710
31720
  //#endregion
31711
31721
  //#region ../ui-library/src/primitives/tabs-list-scroll.tsx
31712
- Qb.displayName = "Switch", e();
31713
- function $b(e) {
31722
+ $b.displayName = "Switch", e();
31723
+ function ex(e) {
31714
31724
  let { scrollLeft: t, scrollWidth: n, clientWidth: r } = e, i = n > r + 1;
31715
31725
  return {
31716
31726
  overflowLeft: i && t > 1,
31717
31727
  overflowRight: i && t + r < n - 1
31718
31728
  };
31719
31729
  }
31720
- function ex(e) {
31730
+ function tx(e) {
31721
31731
  typeof e.scrollIntoView == "function" && e.scrollIntoView({
31722
31732
  inline: "nearest",
31723
31733
  block: "nearest"
31724
31734
  });
31725
31735
  }
31726
- function tx(e, t) {
31736
+ function nx(e, t) {
31727
31737
  let n = e.querySelectorAll("[role=\"tab\"]");
31728
31738
  if (n.length === 0) return;
31729
31739
  let r = e.scrollLeft;
31730
31740
  if (t === "right") {
31731
31741
  for (let e of n) if (e.offsetLeft + e.offsetWidth > r + 1) {
31732
- ex(e);
31742
+ tx(e);
31733
31743
  return;
31734
31744
  }
31735
31745
  return;
@@ -31737,25 +31747,25 @@ function tx(e, t) {
31737
31747
  for (let e = n.length - 1; e >= 0; e--) {
31738
31748
  let t = n[e];
31739
31749
  if (t !== void 0 && t.offsetLeft < r - 1) {
31740
- ex(t);
31750
+ tx(t);
31741
31751
  return;
31742
31752
  }
31743
31753
  }
31744
31754
  }
31745
- function nx(e) {
31755
+ function rx(e) {
31746
31756
  let t = e.querySelector("[role=\"tab\"][aria-selected=\"true\"]");
31747
31757
  t !== null && typeof t.scrollIntoView == "function" && t.scrollIntoView({
31748
31758
  inline: "nearest",
31749
31759
  block: "nearest"
31750
31760
  });
31751
31761
  }
31752
- function rx({ activeTabKey: e, listClassName: n, className: r, children: a, ...o }) {
31762
+ function ix({ activeTabKey: e, listClassName: n, className: r, children: a, ...o }) {
31753
31763
  let s = t(null), [c, u] = g({
31754
31764
  overflowLeft: !1,
31755
31765
  overflowRight: !1
31756
31766
  }), [d, f] = g(!1), p = l(() => {
31757
31767
  let e = s.current;
31758
- e !== null && u($b(e));
31768
+ e !== null && u(ex(e));
31759
31769
  }, []);
31760
31770
  i(() => {
31761
31771
  p();
@@ -31776,11 +31786,11 @@ function rx({ activeTabKey: e, listClassName: n, className: r, children: a, ...o
31776
31786
  return t(), e.addEventListener("change", t), () => e.removeEventListener("change", t);
31777
31787
  }, []), i(() => {
31778
31788
  let t = s.current;
31779
- t === null || e === void 0 || (nx(t), p());
31789
+ t === null || e === void 0 || (rx(t), p());
31780
31790
  }, [e, p]);
31781
31791
  let m = (e) => {
31782
31792
  let t = s.current;
31783
- t !== null && tx(t, e);
31793
+ t !== null && nx(t, e);
31784
31794
  };
31785
31795
  return /* @__PURE__ */ y("div", {
31786
31796
  className: B("relative min-w-0", r),
@@ -31826,17 +31836,17 @@ function rx({ activeTabKey: e, listClassName: n, className: r, children: a, ...o
31826
31836
  //#endregion
31827
31837
  //#region ../ui-library/src/primitives/tabs.tsx
31828
31838
  e();
31829
- var ix = d(null);
31830
- function ax() {
31831
- let e = h(ix);
31839
+ var ax = d(null);
31840
+ function ox() {
31841
+ let e = h(ax);
31832
31842
  if (!e) throw Error("Tabs compound components must be used within <Tabs>");
31833
31843
  return e;
31834
31844
  }
31835
- function ox({ value: e, onValueChange: t, defaultValue: n = "", appearance: r = "underline", className: i, ...a }) {
31845
+ function sx({ value: e, onValueChange: t, defaultValue: n = "", appearance: r = "underline", className: i, ...a }) {
31836
31846
  let [o, s] = g(n), c = e ?? o, u = l((n) => {
31837
31847
  t?.(n), e === void 0 && s(n);
31838
31848
  }, [e, t]);
31839
- return /* @__PURE__ */ v(ix.Provider, {
31849
+ return /* @__PURE__ */ v(ax.Provider, {
31840
31850
  value: {
31841
31851
  value: c,
31842
31852
  setValue: u,
@@ -31848,16 +31858,16 @@ function ox({ value: e, onValueChange: t, defaultValue: n = "", appearance: r =
31848
31858
  })
31849
31859
  });
31850
31860
  }
31851
- function sx({ className: e, ...t }) {
31852
- let { appearance: n, value: r } = ax();
31853
- return /* @__PURE__ */ v(rx, {
31861
+ function cx({ className: e, ...t }) {
31862
+ let { appearance: n, value: r } = ox();
31863
+ return /* @__PURE__ */ v(ix, {
31854
31864
  activeTabKey: r,
31855
31865
  listClassName: B("flex flex-row overflow-x-auto overflow-y-hidden", n === "pills" ? "gap-1 border-b border-border-subtle py-1" : "border-b border-border-subtle", e),
31856
31866
  ...t
31857
31867
  });
31858
31868
  }
31859
- var cx = c(function({ value: e, className: t, ...n }, r) {
31860
- let { value: i, setValue: a, appearance: o } = ax(), s = e === i;
31869
+ var lx = c(function({ value: e, className: t, ...n }, r) {
31870
+ let { value: i, setValue: a, appearance: o } = ox(), s = e === i;
31861
31871
  return /* @__PURE__ */ v("button", {
31862
31872
  ref: r,
31863
31873
  type: "button",
@@ -31873,17 +31883,17 @@ var cx = c(function({ value: e, className: t, ...n }, r) {
31873
31883
  //#endregion
31874
31884
  //#region ../ui-library/src/primitives/scroll-area.tsx
31875
31885
  e();
31876
- var lx = c(({ className: e, ...t }, n) => /* @__PURE__ */ v("div", {
31886
+ var ux = c(({ className: e, ...t }, n) => /* @__PURE__ */ v("div", {
31877
31887
  ref: n,
31878
31888
  className: B("overflow-auto [&::-webkit-scrollbar]:w-1 [&::-webkit-scrollbar-track]:bg-transparent [&::-webkit-scrollbar-thumb]:bg-surface-hover [&::-webkit-scrollbar-thumb]:rounded-full", e),
31879
31889
  ...t
31880
31890
  }));
31881
31891
  //#endregion
31882
31892
  //#region ../ui-library/src/composites/audio-waveform.tsx
31883
- lx.displayName = "ScrollArea", e(), e(), e(), e(), e();
31893
+ ux.displayName = "ScrollArea", e(), e(), e(), e(), e();
31884
31894
  //#endregion
31885
31895
  //#region ../ui-library/src/composites/node-color.ts
31886
- var ux = {
31896
+ var dx = {
31887
31897
  "node-a": "text-node-a",
31888
31898
  "node-b": "text-node-b",
31889
31899
  "node-c": "text-node-c",
@@ -31892,7 +31902,7 @@ var ux = {
31892
31902
  "node-f": "text-node-f",
31893
31903
  "node-g": "text-node-g",
31894
31904
  "node-h": "text-node-h"
31895
- }, dx = {
31905
+ }, fx = {
31896
31906
  "node-a": "bg-node-a/15",
31897
31907
  "node-b": "bg-node-b/15",
31898
31908
  "node-c": "bg-node-c/15",
@@ -31902,26 +31912,26 @@ var ux = {
31902
31912
  "node-g": "bg-node-g/15",
31903
31913
  "node-h": "bg-node-h/15"
31904
31914
  };
31905
- function fx(e) {
31906
- return ux[e];
31907
- }
31908
31915
  function px(e) {
31909
31916
  return dx[e];
31910
31917
  }
31918
+ function mx(e) {
31919
+ return fx[e];
31920
+ }
31911
31921
  //#endregion
31912
31922
  //#region ../ui-library/src/composites/node-color-map.ts
31913
- function mx(e) {
31923
+ function hx(e) {
31914
31924
  for (let [t, n] of Object.entries(e)) if (t === "color") return n;
31915
31925
  }
31916
- function hx(e) {
31926
+ function gx(e) {
31917
31927
  let t = /* @__PURE__ */ new Map();
31918
31928
  for (let n of e ?? []) {
31919
- let e = Le.safeParse(mx(n.settings));
31929
+ let e = Le.safeParse(hx(n.settings));
31920
31930
  t.set(n.nodeId, e.success ? e.data : Ee(n.nodeId));
31921
31931
  }
31922
31932
  return t;
31923
31933
  }
31924
- function gx(e, t) {
31934
+ function _x(e, t) {
31925
31935
  return e.get(t) ?? Ee(t);
31926
31936
  }
31927
31937
  //#endregion
@@ -31929,7 +31939,7 @@ function gx(e, t) {
31929
31939
  e(), e(), e();
31930
31940
  //#endregion
31931
31941
  //#region ../ui-library/src/composites/data-table-pager.tsx
31932
- function _x({ page: e, labels: t, onPageChange: n }) {
31942
+ function vx({ page: e, labels: t, onPageChange: n }) {
31933
31943
  let r = e.page === 0, i = e.page >= e.pageCount - 1;
31934
31944
  return /* @__PURE__ */ y("nav", {
31935
31945
  "aria-label": t.navLabel,
@@ -31965,7 +31975,7 @@ function _x({ page: e, labels: t, onPageChange: n }) {
31965
31975
  }
31966
31976
  //#endregion
31967
31977
  //#region ../ui-library/src/composites/data-table-pagination.ts
31968
- function vx(e, t, n) {
31978
+ function yx(e, t, n) {
31969
31979
  let r = Math.max(1, Math.floor(n)), i = e.length, a = Math.max(1, Math.ceil(i / r)), o = Math.min(Math.max(0, Math.floor(t)), a - 1), s = o * r, c = e.slice(s, s + r);
31970
31980
  return {
31971
31981
  pageRows: c,
@@ -31976,7 +31986,7 @@ function vx(e, t, n) {
31976
31986
  total: i
31977
31987
  };
31978
31988
  }
31979
- var yx = {
31989
+ var bx = {
31980
31990
  navLabel: "Table pages",
31981
31991
  previous: "Previous page",
31982
31992
  next: "Next page",
@@ -31985,21 +31995,21 @@ var yx = {
31985
31995
  //#endregion
31986
31996
  //#region ../ui-library/src/composites/data-table-selection.tsx
31987
31997
  e();
31988
- var bx = "__select", xx = "cursor-pointer align-middle";
31989
- function Sx({ checked: e, indeterminate: n, disabled: r, label: a, onToggle: o }) {
31998
+ var xx = "__select", Sx = "cursor-pointer align-middle";
31999
+ function Cx({ checked: e, indeterminate: n, disabled: r, label: a, onToggle: o }) {
31990
32000
  let s = t(null);
31991
32001
  return i(() => {
31992
32002
  s.current !== null && (s.current.indeterminate = n);
31993
- }, [n]), /* @__PURE__ */ v(Zb, {
32003
+ }, [n]), /* @__PURE__ */ v(Qb, {
31994
32004
  ref: s,
31995
32005
  "aria-label": a,
31996
32006
  checked: e,
31997
32007
  disabled: r,
31998
32008
  onChange: o,
31999
- className: xx
32009
+ className: Sx
32000
32010
  });
32001
32011
  }
32002
- function Cx(e, t, n) {
32012
+ function wx(e, t, n) {
32003
32013
  let r = e.isSelectable ?? (() => !0), i = t.filter(r).map(n), a = i.filter((t) => e.selected.has(t)).length, o = i.length > 0 && a === i.length, s = () => {
32004
32014
  let t = new Set(e.selected);
32005
32015
  for (let e of i) o ? t.delete(e) : t.add(e);
@@ -32009,9 +32019,9 @@ function Cx(e, t, n) {
32009
32019
  n.has(t) ? n.delete(t) : n.add(t), e.onChange(n);
32010
32020
  };
32011
32021
  return {
32012
- key: bx,
32022
+ key: xx,
32013
32023
  width: "w-8",
32014
- headerRender: () => /* @__PURE__ */ v(Sx, {
32024
+ headerRender: () => /* @__PURE__ */ v(Cx, {
32015
32025
  checked: o,
32016
32026
  indeterminate: a > 0 && !o,
32017
32027
  disabled: i.length === 0,
@@ -32021,19 +32031,19 @@ function Cx(e, t, n) {
32021
32031
  render: (t) => {
32022
32032
  if (!r(t)) return null;
32023
32033
  let i = n(t);
32024
- return /* @__PURE__ */ v(Zb, {
32034
+ return /* @__PURE__ */ v(Qb, {
32025
32035
  "aria-label": e.rowLabel(t),
32026
32036
  checked: e.selected.has(i),
32027
32037
  onChange: () => c(i),
32028
32038
  onClick: (e) => e.stopPropagation(),
32029
- className: xx
32039
+ className: Sx
32030
32040
  });
32031
32041
  }
32032
32042
  };
32033
32043
  }
32034
32044
  //#endregion
32035
32045
  //#region ../ui-library/src/composites/sort-header-button.tsx
32036
- function wx({ label: e, active: t, dir: n, onSort: r }) {
32046
+ function Tx({ label: e, active: t, dir: n, onSort: r }) {
32037
32047
  return /* @__PURE__ */ y("button", {
32038
32048
  type: "button",
32039
32049
  onClick: r,
@@ -32043,52 +32053,52 @@ function wx({ label: e, active: t, dir: n, onSort: r }) {
32043
32053
  }
32044
32054
  //#endregion
32045
32055
  //#region ../ui-library/src/composites/table-sort.ts
32046
- function Tx(e, t) {
32056
+ function Ex(e, t) {
32047
32057
  return !e || t === null ? "asc" : t === "asc" ? "desc" : null;
32048
32058
  }
32049
- function Ex(e, t) {
32050
- let n = Tx(e !== null && e.columnKey === t, e === null ? null : e.dir);
32059
+ function Dx(e, t) {
32060
+ let n = Ex(e !== null && e.columnKey === t, e === null ? null : e.dir);
32051
32061
  return n === null ? null : {
32052
32062
  columnKey: t,
32053
32063
  dir: n
32054
32064
  };
32055
32065
  }
32056
- function Dx(e, t) {
32066
+ function Ox(e, t) {
32057
32067
  return typeof e == "number" && typeof t == "number" ? e - t : String(e).localeCompare(String(t));
32058
32068
  }
32059
- function Ox(e, t, n) {
32069
+ function kx(e, t, n) {
32060
32070
  if (t === null) return [...e];
32061
32071
  let r = t.dir === "asc" ? 1 : -1;
32062
32072
  return e.toSorted((e, t) => {
32063
32073
  let i = n(e), a = n(t);
32064
- return i === null || a === null ? i === a ? 0 : i === null ? 1 : -1 : r * Dx(i, a);
32074
+ return i === null || a === null ? i === a ? 0 : i === null ? 1 : -1 : r * Ox(i, a);
32065
32075
  });
32066
32076
  }
32067
- function kx(e, t) {
32077
+ function Ax(e, t) {
32068
32078
  return e === null || e.columnKey !== t ? "none" : e.dir === "asc" ? "ascending" : "descending";
32069
32079
  }
32070
32080
  //#endregion
32071
32081
  //#region ../ui-library/src/composites/data-table.tsx
32072
32082
  e();
32073
- var Ax = {
32083
+ var jx = {
32074
32084
  left: "text-left",
32075
32085
  right: "text-right",
32076
32086
  center: "text-center"
32077
32087
  };
32078
- function jx({ columns: e, rows: t, rowKey: n, onRowClick: r, minWidthPx: i = 480, emptyMessage: s, className: c, bordered: l = !0, rowClassName: u, maxBodyHeight: d, fill: f = !1, defaultSort: p, sort: m, onSortChange: h, pageSize: _, page: b, onPageChange: x, paginationLabels: S = yx, selection: C, renderExpanded: w, isExpanded: T }) {
32088
+ function Mx({ columns: e, rows: t, rowKey: n, onRowClick: r, minWidthPx: i = 480, emptyMessage: s, className: c, bordered: l = !0, rowClassName: u, maxBodyHeight: d, fill: f = !1, defaultSort: p, sort: m, onSortChange: h, pageSize: _, page: b, onPageChange: x, paginationLabels: S = bx, selection: C, renderExpanded: w, isExpanded: T }) {
32079
32089
  let [E, D] = g(p ?? null), [ee, te] = g(0), O = m === void 0 ? E : m, ne = (e) => {
32080
32090
  m === void 0 && D(e), h?.(e);
32081
32091
  }, k = (e) => {
32082
32092
  b === void 0 && te(e), x?.(e);
32083
- }, re = f || d !== void 0, ie = f ? "h-full min-h-0" : d ?? "", ae = o(() => O === null ? void 0 : e.find((e) => e.key === O.columnKey && e.sortValue !== void 0), [e, O]), A = ae?.sortValue, oe = o(() => A === void 0 ? t : Ox(t, O, A), [
32093
+ }, re = f || d !== void 0, ie = f ? "h-full min-h-0" : d ?? "", ae = o(() => O === null ? void 0 : e.find((e) => e.key === O.columnKey && e.sortValue !== void 0), [e, O]), A = ae?.sortValue, oe = o(() => A === void 0 ? t : kx(t, O, A), [
32084
32094
  t,
32085
32095
  O,
32086
32096
  A
32087
- ]), se = ae === void 0 ? null : O, ce = _ === void 0 ? null : vx(oe, b ?? ee, _), le = ce === null ? oe : ce.pageRows, j = ce !== null && ce.pageCount > 1 ? /* @__PURE__ */ v(_x, {
32097
+ ]), se = ae === void 0 ? null : O, ce = _ === void 0 ? null : yx(oe, b ?? ee, _), le = ce === null ? oe : ce.pageRows, j = ce !== null && ce.pageCount > 1 ? /* @__PURE__ */ v(vx, {
32088
32098
  page: ce,
32089
32099
  labels: S,
32090
32100
  onPageChange: k
32091
- }) : null, ue = C === void 0 ? e : [Cx(C, le, (e) => String(n ? n(e, t.indexOf(e)) : t.indexOf(e))), ...e];
32101
+ }) : null, ue = C === void 0 ? e : [wx(C, le, (e) => String(n ? n(e, t.indexOf(e)) : t.indexOf(e))), ...e];
32092
32102
  if (t.length === 0 && s) return /* @__PURE__ */ v("div", {
32093
32103
  className: `rounded-lg ${l ? "border border-border" : ""} bg-surface px-3 py-4 text-xs text-foreground-subtle text-center ${c ?? ""}`,
32094
32104
  children: s
@@ -32111,20 +32121,20 @@ function jx({ columns: e, rows: t, rowKey: n, onRowClick: r, minWidthPx: i = 480
32111
32121
  children: /* @__PURE__ */ v("tr", { children: ue.map((e) => {
32112
32122
  let t = e.align ?? "left", n = e.nowrap ?? !0, r = e.sortValue !== void 0, i = se !== null && se.columnKey === e.key;
32113
32123
  return /* @__PURE__ */ v("th", {
32114
- "aria-sort": r ? kx(se, e.key) : void 0,
32124
+ "aria-sort": r ? Ax(se, e.key) : void 0,
32115
32125
  title: r ? void 0 : e.notSortableReason,
32116
32126
  className: [
32117
32127
  "px-3 py-2 text-foreground-subtle font-medium bg-surface border-b border-border",
32118
32128
  re ? "sticky top-0 z-10" : "",
32119
- Ax[t],
32129
+ jx[t],
32120
32130
  n ? "whitespace-nowrap" : "",
32121
32131
  e.width ?? ""
32122
32132
  ].filter(Boolean).join(" "),
32123
- children: r ? /* @__PURE__ */ v(wx, {
32133
+ children: r ? /* @__PURE__ */ v(Tx, {
32124
32134
  label: e.headerRender ? e.headerRender() : e.header,
32125
32135
  active: i,
32126
32136
  dir: i && se !== null ? se.dir : "asc",
32127
- onSort: () => ne(Ex(O, e.key))
32137
+ onSort: () => ne(Dx(O, e.key))
32128
32138
  }) : e.headerRender ? e.headerRender() : e.header
32129
32139
  }, e.key);
32130
32140
  }) })
@@ -32139,7 +32149,7 @@ function jx({ columns: e, rows: t, rowKey: n, onRowClick: r, minWidthPx: i = 480
32139
32149
  "data-cell": n.key,
32140
32150
  className: [
32141
32151
  "px-3 py-2 text-foreground border-b border-border",
32142
- Ax[r],
32152
+ jx[r],
32143
32153
  i ? "whitespace-nowrap" : ""
32144
32154
  ].filter(Boolean).join(" "),
32145
32155
  children: n.render(e, t)
@@ -32170,8 +32180,8 @@ function jx({ columns: e, rows: t, rowKey: n, onRowClick: r, minWidthPx: i = 480
32170
32180
  e();
32171
32181
  //#endregion
32172
32182
  //#region ../ui-library/src/hooks/turn-server-cache.ts
32173
- var Mx = 5 * 6e4, Nx = 720 * 6e4, Px = "camstack:turn-servers:v1";
32174
- function Fx() {
32183
+ var Nx = 5 * 6e4, Px = 720 * 6e4, Fx = "camstack:turn-servers:v1";
32184
+ function Ix() {
32175
32185
  let e = globalThis;
32176
32186
  try {
32177
32187
  return e.localStorage ?? null;
@@ -32179,7 +32189,7 @@ function Fx() {
32179
32189
  return null;
32180
32190
  }
32181
32191
  }
32182
- function Ix(e) {
32192
+ function Lx(e) {
32183
32193
  if (typeof e != "object" || !e) return !1;
32184
32194
  let t = e;
32185
32195
  return typeof t.fetchedAt != "number" || !Array.isArray(t.servers) ? !1 : t.servers.every((e) => {
@@ -32188,7 +32198,7 @@ function Ix(e) {
32188
32198
  return !(!(typeof t.urls == "string" || Array.isArray(t.urls) && t.urls.every((e) => typeof e == "string")) || t.username !== void 0 && typeof t.username != "string" || t.credential !== void 0 && typeof t.credential != "string");
32189
32199
  });
32190
32200
  }
32191
- var Lx = class {
32201
+ var Rx = class {
32192
32202
  freshTtlMs;
32193
32203
  staleCapMs;
32194
32204
  storage;
@@ -32197,7 +32207,7 @@ var Lx = class {
32197
32207
  memory = /* @__PURE__ */ new WeakMap();
32198
32208
  inflight = /* @__PURE__ */ new WeakMap();
32199
32209
  constructor(e = {}) {
32200
- this.freshTtlMs = e.freshTtlMs ?? Mx, this.staleCapMs = e.staleCapMs ?? Nx, this.storage = "storage" in e ? e.storage ?? null : Fx(), this.now = e.now ?? (() => Date.now()), this.storageKey = e.storageKey ?? Px;
32210
+ this.freshTtlMs = e.freshTtlMs ?? Nx, this.staleCapMs = e.staleCapMs ?? Px, this.storage = "storage" in e ? e.storage ?? null : Ix(), this.now = e.now ?? (() => Date.now()), this.storageKey = e.storageKey ?? Fx;
32201
32211
  }
32202
32212
  async getOrFetch(e, t) {
32203
32213
  let n = this.now(), r = this.memory.get(e) ?? this.readStorage();
@@ -32235,7 +32245,7 @@ var Lx = class {
32235
32245
  let e = this.storage.getItem(this.storageKey);
32236
32246
  if (e === null) return;
32237
32247
  let t = JSON.parse(e);
32238
- return Ix(t) ? t : void 0;
32248
+ return Lx(t) ? t : void 0;
32239
32249
  } catch {
32240
32250
  return;
32241
32251
  }
@@ -32248,26 +32258,26 @@ var Lx = class {
32248
32258
  };
32249
32259
  //#endregion
32250
32260
  //#region ../ui-library/src/composites/use-data-table-filter.ts
32251
- e(), new Lx(), e(), e(), e(), e(), e(), e(), e();
32261
+ e(), new Rx(), e(), e(), e(), e(), e(), e(), e();
32252
32262
  //#endregion
32253
32263
  //#region ../ui-library/src/composites/detection-colors.ts
32254
- var Rx = Oe(), zx = new Set([
32264
+ var zx = Oe(), Bx = new Set([
32255
32265
  "live",
32256
32266
  "recording",
32257
32267
  "heatmapScrub"
32258
32268
  ]);
32259
- Object.freeze(Object.fromEntries(Ue.filter((e) => !zx.has(e)).map((e) => [e, pe(Rx.swatches, Rx.fallbacks, e)])));
32260
- function Bx(e) {
32269
+ Object.freeze(Object.fromEntries(Ue.filter((e) => !Bx.has(e)).map((e) => [e, pe(zx.swatches, zx.fallbacks, e)])));
32270
+ function Vx(e) {
32261
32271
  let t = e[0];
32262
32272
  if (t === void 0) throw Error("display palette has no fallback colour");
32263
32273
  return t;
32264
32274
  }
32265
32275
  //#endregion
32266
32276
  //#region ../ui-library/src/composites/detection-result-tree.tsx
32267
- Bx(Rx.fallbacks), e(), Oe(), d({ status: "absent" }), e(), e();
32277
+ Vx(zx.fallbacks), e(), Oe(), d({ status: "absent" }), e(), e();
32268
32278
  //#endregion
32269
32279
  //#region ../../node_modules/superjson/dist/double-indexed-kv.js
32270
- var Vx = class {
32280
+ var Hx = class {
32271
32281
  constructor() {
32272
32282
  this.keyToValue = /* @__PURE__ */ new Map(), this.valueToKey = /* @__PURE__ */ new Map();
32273
32283
  }
@@ -32283,9 +32293,9 @@ var Vx = class {
32283
32293
  clear() {
32284
32294
  this.keyToValue.clear(), this.valueToKey.clear();
32285
32295
  }
32286
- }, Hx = class {
32296
+ }, Ux = class {
32287
32297
  constructor(e) {
32288
- this.generateIdentifier = e, this.kv = new Vx();
32298
+ this.generateIdentifier = e, this.kv = new Hx();
32289
32299
  }
32290
32300
  register(e, t) {
32291
32301
  this.kv.getByValue(e) || (t ||= this.generateIdentifier(e), this.kv.set(t, e));
@@ -32299,7 +32309,7 @@ var Vx = class {
32299
32309
  getValue(e) {
32300
32310
  return this.kv.getByKey(e);
32301
32311
  }
32302
- }, Ux = class extends Hx {
32312
+ }, Wx = class extends Ux {
32303
32313
  constructor() {
32304
32314
  super((e) => e.name), this.classToAllowedProps = /* @__PURE__ */ new Map();
32305
32315
  }
@@ -32312,14 +32322,14 @@ var Vx = class {
32312
32322
  };
32313
32323
  //#endregion
32314
32324
  //#region ../../node_modules/superjson/dist/util.js
32315
- function Wx(e) {
32325
+ function Gx(e) {
32316
32326
  if ("values" in Object) return Object.values(e);
32317
32327
  let t = [];
32318
32328
  for (let n in e) e.hasOwnProperty(n) && t.push(e[n]);
32319
32329
  return t;
32320
32330
  }
32321
- function Gx(e, t) {
32322
- let n = Wx(e);
32331
+ function Kx(e, t) {
32332
+ let n = Gx(e);
32323
32333
  if ("find" in n) return n.find(t);
32324
32334
  let r = n;
32325
32335
  for (let e = 0; e < r.length; e++) {
@@ -32327,13 +32337,13 @@ function Gx(e, t) {
32327
32337
  if (t(n)) return n;
32328
32338
  }
32329
32339
  }
32330
- function Kx(e, t) {
32340
+ function qx(e, t) {
32331
32341
  Object.entries(e).forEach(([e, n]) => t(n, e));
32332
32342
  }
32333
- function qx(e, t) {
32343
+ function Jx(e, t) {
32334
32344
  return e.indexOf(t) !== -1;
32335
32345
  }
32336
- function Jx(e, t) {
32346
+ function Yx(e, t) {
32337
32347
  for (let n = 0; n < e.length; n++) {
32338
32348
  let r = e[n];
32339
32349
  if (t(r)) return r;
@@ -32341,7 +32351,7 @@ function Jx(e, t) {
32341
32351
  }
32342
32352
  //#endregion
32343
32353
  //#region ../../node_modules/superjson/dist/custom-transformer-registry.js
32344
- var Yx = class {
32354
+ var Xx = class {
32345
32355
  constructor() {
32346
32356
  this.transfomers = {};
32347
32357
  }
@@ -32349,12 +32359,12 @@ var Yx = class {
32349
32359
  this.transfomers[e.name] = e;
32350
32360
  }
32351
32361
  findApplicable(e) {
32352
- return Gx(this.transfomers, (t) => t.isApplicable(e));
32362
+ return Kx(this.transfomers, (t) => t.isApplicable(e));
32353
32363
  }
32354
32364
  findByName(e) {
32355
32365
  return this.transfomers[e];
32356
32366
  }
32357
- }, Xx = (e) => Object.prototype.toString.call(e).slice(8, -1), Zx = (e) => e === void 0, Qx = (e) => e === null, $x = (e) => typeof e != "object" || !e || e === Object.prototype ? !1 : Object.getPrototypeOf(e) === null ? !0 : Object.getPrototypeOf(e) === Object.prototype, eS = (e) => $x(e) && Object.keys(e).length === 0, tS = (e) => Array.isArray(e), nS = (e) => typeof e == "string", rS = (e) => typeof e == "number" && !isNaN(e), iS = (e) => typeof e == "boolean", aS = (e) => e instanceof RegExp, oS = (e) => e instanceof Map, sS = (e) => e instanceof Set, cS = (e) => Xx(e) === "Symbol", lS = (e) => e instanceof Date && !isNaN(e.valueOf()), uS = (e) => e instanceof Error, dS = (e) => typeof e == "number" && isNaN(e), fS = (e) => iS(e) || Qx(e) || Zx(e) || rS(e) || nS(e) || cS(e), pS = (e) => typeof e == "bigint", mS = (e) => e === Infinity || e === -Infinity, hS = (e) => ArrayBuffer.isView(e) && !(e instanceof DataView), gS = (e) => e instanceof URL, _S = (e) => e.replace(/\\/g, "\\\\").replace(/\./g, "\\."), vS = (e) => e.map(String).map(_S).join("."), yS = (e, t) => {
32367
+ }, Zx = (e) => Object.prototype.toString.call(e).slice(8, -1), Qx = (e) => e === void 0, $x = (e) => e === null, eS = (e) => typeof e != "object" || !e || e === Object.prototype ? !1 : Object.getPrototypeOf(e) === null ? !0 : Object.getPrototypeOf(e) === Object.prototype, tS = (e) => eS(e) && Object.keys(e).length === 0, nS = (e) => Array.isArray(e), rS = (e) => typeof e == "string", iS = (e) => typeof e == "number" && !isNaN(e), aS = (e) => typeof e == "boolean", oS = (e) => e instanceof RegExp, sS = (e) => e instanceof Map, cS = (e) => e instanceof Set, lS = (e) => Zx(e) === "Symbol", uS = (e) => e instanceof Date && !isNaN(e.valueOf()), dS = (e) => e instanceof Error, fS = (e) => typeof e == "number" && isNaN(e), pS = (e) => aS(e) || $x(e) || Qx(e) || iS(e) || rS(e) || lS(e), mS = (e) => typeof e == "bigint", hS = (e) => e === Infinity || e === -Infinity, gS = (e) => ArrayBuffer.isView(e) && !(e instanceof DataView), _S = (e) => e instanceof URL, vS = (e) => e.replace(/\\/g, "\\\\").replace(/\./g, "\\."), yS = (e) => e.map(String).map(vS).join("."), bS = (e, t) => {
32358
32368
  let n = [], r = "";
32359
32369
  for (let i = 0; i < e.length; i++) {
32360
32370
  let a = e.charAt(i);
@@ -32380,7 +32390,7 @@ var Yx = class {
32380
32390
  };
32381
32391
  //#endregion
32382
32392
  //#region ../../node_modules/superjson/dist/transformer.js
32383
- function bS(e, t, n, r) {
32393
+ function xS(e, t, n, r) {
32384
32394
  return {
32385
32395
  isApplicable: e,
32386
32396
  annotation: t,
@@ -32388,11 +32398,11 @@ function bS(e, t, n, r) {
32388
32398
  untransform: r
32389
32399
  };
32390
32400
  }
32391
- var xS = [
32392
- bS(Zx, "undefined", () => null, () => void 0),
32393
- bS(pS, "bigint", (e) => e.toString(), (e) => typeof BigInt < "u" ? BigInt(e) : (console.error("Please add a BigInt polyfill."), e)),
32394
- bS(lS, "Date", (e) => e.toISOString(), (e) => new Date(e)),
32395
- bS(uS, "Error", (e, t) => {
32401
+ var SS = [
32402
+ xS(Qx, "undefined", () => null, () => void 0),
32403
+ xS(mS, "bigint", (e) => e.toString(), (e) => typeof BigInt < "u" ? BigInt(e) : (console.error("Please add a BigInt polyfill."), e)),
32404
+ xS(uS, "Date", (e) => e.toISOString(), (e) => new Date(e)),
32405
+ xS(dS, "Error", (e, t) => {
32396
32406
  let n = {
32397
32407
  name: e.name,
32398
32408
  message: e.message
@@ -32406,17 +32416,17 @@ var xS = [
32406
32416
  n[t] = e[t];
32407
32417
  }), n;
32408
32418
  }),
32409
- bS(aS, "regexp", (e) => "" + e, (e) => {
32419
+ xS(oS, "regexp", (e) => "" + e, (e) => {
32410
32420
  let t = e.slice(1, e.lastIndexOf("/")), n = e.slice(e.lastIndexOf("/") + 1);
32411
32421
  return new RegExp(t, n);
32412
32422
  }),
32413
- bS(sS, "set", (e) => [...e.values()], (e) => new Set(e)),
32414
- bS(oS, "map", (e) => [...e.entries()], (e) => new Map(e)),
32415
- bS((e) => dS(e) || mS(e), "number", (e) => dS(e) ? "NaN" : e > 0 ? "Infinity" : "-Infinity", Number),
32416
- bS((e) => e === 0 && 1 / e == -Infinity, "number", () => "-0", Number),
32417
- bS(gS, "URL", (e) => e.toString(), (e) => new URL(e))
32423
+ xS(cS, "set", (e) => [...e.values()], (e) => new Set(e)),
32424
+ xS(sS, "map", (e) => [...e.entries()], (e) => new Map(e)),
32425
+ xS((e) => fS(e) || hS(e), "number", (e) => fS(e) ? "NaN" : e > 0 ? "Infinity" : "-Infinity", Number),
32426
+ xS((e) => e === 0 && 1 / e == -Infinity, "number", () => "-0", Number),
32427
+ xS(_S, "URL", (e) => e.toString(), (e) => new URL(e))
32418
32428
  ];
32419
- function SS(e, t, n, r) {
32429
+ function CS(e, t, n, r) {
32420
32430
  return {
32421
32431
  isApplicable: e,
32422
32432
  annotation: t,
@@ -32424,11 +32434,11 @@ function SS(e, t, n, r) {
32424
32434
  untransform: r
32425
32435
  };
32426
32436
  }
32427
- var CS = SS((e, t) => cS(e) ? !!t.symbolRegistry.getIdentifier(e) : !1, (e, t) => ["symbol", t.symbolRegistry.getIdentifier(e)], (e) => e.description, (e, t, n) => {
32437
+ var wS = CS((e, t) => lS(e) ? !!t.symbolRegistry.getIdentifier(e) : !1, (e, t) => ["symbol", t.symbolRegistry.getIdentifier(e)], (e) => e.description, (e, t, n) => {
32428
32438
  let r = n.symbolRegistry.getValue(t[1]);
32429
32439
  if (!r) throw Error("Trying to deserialize unknown symbol");
32430
32440
  return r;
32431
- }), wS = [
32441
+ }), TS = [
32432
32442
  Int8Array,
32433
32443
  Uint8Array,
32434
32444
  Int16Array,
@@ -32438,15 +32448,15 @@ var CS = SS((e, t) => cS(e) ? !!t.symbolRegistry.getIdentifier(e) : !1, (e, t) =
32438
32448
  Float32Array,
32439
32449
  Float64Array,
32440
32450
  Uint8ClampedArray
32441
- ].reduce((e, t) => (e[t.name] = t, e), {}), TS = SS(hS, (e) => ["typed-array", e.constructor.name], (e) => [...e], (e, t) => {
32442
- let n = wS[t[1]];
32451
+ ].reduce((e, t) => (e[t.name] = t, e), {}), ES = CS(gS, (e) => ["typed-array", e.constructor.name], (e) => [...e], (e, t) => {
32452
+ let n = TS[t[1]];
32443
32453
  if (!n) throw Error("Trying to deserialize unknown typed array");
32444
32454
  return new n(e);
32445
32455
  });
32446
- function ES(e, t) {
32456
+ function DS(e, t) {
32447
32457
  return e?.constructor ? !!t.classRegistry.getIdentifier(e.constructor) : !1;
32448
32458
  }
32449
- var DS = SS(ES, (e, t) => ["class", t.classRegistry.getIdentifier(e.constructor)], (e, t) => {
32459
+ var OS = CS(DS, (e, t) => ["class", t.classRegistry.getIdentifier(e.constructor)], (e, t) => {
32450
32460
  let n = t.classRegistry.getAllowedProps(e.constructor);
32451
32461
  if (!n) return { ...e };
32452
32462
  let r = {};
@@ -32457,61 +32467,61 @@ var DS = SS(ES, (e, t) => ["class", t.classRegistry.getIdentifier(e.constructor)
32457
32467
  let r = n.classRegistry.getValue(t[1]);
32458
32468
  if (!r) throw Error(`Trying to deserialize unknown class '${t[1]}' - check https://github.com/blitz-js/superjson/issues/116#issuecomment-773996564`);
32459
32469
  return Object.assign(Object.create(r.prototype), e);
32460
- }), OS = SS((e, t) => !!t.customTransformerRegistry.findApplicable(e), (e, t) => ["custom", t.customTransformerRegistry.findApplicable(e).name], (e, t) => t.customTransformerRegistry.findApplicable(e).serialize(e), (e, t, n) => {
32470
+ }), kS = CS((e, t) => !!t.customTransformerRegistry.findApplicable(e), (e, t) => ["custom", t.customTransformerRegistry.findApplicable(e).name], (e, t) => t.customTransformerRegistry.findApplicable(e).serialize(e), (e, t, n) => {
32461
32471
  let r = n.customTransformerRegistry.findByName(t[1]);
32462
32472
  if (!r) throw Error("Trying to deserialize unknown custom value");
32463
32473
  return r.deserialize(e);
32464
- }), kS = [
32465
- DS,
32466
- CS,
32474
+ }), AS = [
32467
32475
  OS,
32468
- TS
32469
- ], AS = (e, t) => {
32470
- let n = Jx(kS, (n) => n.isApplicable(e, t));
32476
+ wS,
32477
+ kS,
32478
+ ES
32479
+ ], jS = (e, t) => {
32480
+ let n = Yx(AS, (n) => n.isApplicable(e, t));
32471
32481
  if (n) return {
32472
32482
  value: n.transform(e, t),
32473
32483
  type: n.annotation(e, t)
32474
32484
  };
32475
- let r = Jx(xS, (n) => n.isApplicable(e, t));
32485
+ let r = Yx(SS, (n) => n.isApplicable(e, t));
32476
32486
  if (r) return {
32477
32487
  value: r.transform(e, t),
32478
32488
  type: r.annotation
32479
32489
  };
32480
- }, jS = {};
32481
- xS.forEach((e) => {
32482
- jS[e.annotation] = e;
32490
+ }, MS = {};
32491
+ SS.forEach((e) => {
32492
+ MS[e.annotation] = e;
32483
32493
  });
32484
- var MS = (e, t, n) => {
32485
- if (tS(t)) switch (t[0]) {
32486
- case "symbol": return CS.untransform(e, t, n);
32487
- case "class": return DS.untransform(e, t, n);
32488
- case "custom": return OS.untransform(e, t, n);
32489
- case "typed-array": return TS.untransform(e, t, n);
32494
+ var NS = (e, t, n) => {
32495
+ if (nS(t)) switch (t[0]) {
32496
+ case "symbol": return wS.untransform(e, t, n);
32497
+ case "class": return OS.untransform(e, t, n);
32498
+ case "custom": return kS.untransform(e, t, n);
32499
+ case "typed-array": return ES.untransform(e, t, n);
32490
32500
  default: throw Error("Unknown transformation: " + t);
32491
32501
  }
32492
32502
  else {
32493
- let r = jS[t];
32503
+ let r = MS[t];
32494
32504
  if (!r) throw Error("Unknown transformation: " + t);
32495
32505
  return r.untransform(e, n);
32496
32506
  }
32497
- }, NS = (e, t) => {
32507
+ }, PS = (e, t) => {
32498
32508
  if (t > e.size) throw Error("index out of bounds");
32499
32509
  let n = e.keys();
32500
32510
  for (; t > 0;) n.next(), t--;
32501
32511
  return n.next().value;
32502
32512
  };
32503
- function PS(e) {
32504
- if (qx(e, "__proto__")) throw Error("__proto__ is not allowed as a property");
32505
- if (qx(e, "prototype")) throw Error("prototype is not allowed as a property");
32506
- if (qx(e, "constructor")) throw Error("constructor is not allowed as a property");
32513
+ function FS(e) {
32514
+ if (Jx(e, "__proto__")) throw Error("__proto__ is not allowed as a property");
32515
+ if (Jx(e, "prototype")) throw Error("prototype is not allowed as a property");
32516
+ if (Jx(e, "constructor")) throw Error("constructor is not allowed as a property");
32507
32517
  }
32508
- var FS = (e, t) => {
32509
- PS(t);
32518
+ var IS = (e, t) => {
32519
+ FS(t);
32510
32520
  for (let n = 0; n < t.length; n++) {
32511
32521
  let r = t[n];
32512
- if (sS(e)) e = NS(e, +r);
32513
- else if (oS(e)) {
32514
- let i = +r, a = +t[++n] == 0 ? "key" : "value", o = NS(e, i);
32522
+ if (cS(e)) e = PS(e, +r);
32523
+ else if (sS(e)) {
32524
+ let i = +r, a = +t[++n] == 0 ? "key" : "value", o = PS(e, i);
32515
32525
  switch (a) {
32516
32526
  case "key":
32517
32527
  e = o;
@@ -32523,21 +32533,21 @@ var FS = (e, t) => {
32523
32533
  } else e = e[r];
32524
32534
  }
32525
32535
  return e;
32526
- }, IS = (e, t, n) => {
32527
- if (PS(t), t.length === 0) return n(e);
32536
+ }, LS = (e, t, n) => {
32537
+ if (FS(t), t.length === 0) return n(e);
32528
32538
  let r = e;
32529
32539
  for (let e = 0; e < t.length - 1; e++) {
32530
32540
  let n = t[e];
32531
- if (tS(r)) {
32541
+ if (nS(r)) {
32532
32542
  let e = +n;
32533
32543
  r = r[e];
32534
- } else if ($x(r)) r = r[n];
32535
- else if (sS(r)) {
32544
+ } else if (eS(r)) r = r[n];
32545
+ else if (cS(r)) {
32536
32546
  let e = +n;
32537
- r = NS(r, e);
32538
- } else if (oS(r)) {
32547
+ r = PS(r, e);
32548
+ } else if (sS(r)) {
32539
32549
  if (e === t.length - 2) break;
32540
- let i = +n, a = +t[++e] == 0 ? "key" : "value", o = NS(r, i);
32550
+ let i = +n, a = +t[++e] == 0 ? "key" : "value", o = PS(r, i);
32541
32551
  switch (a) {
32542
32552
  case "key":
32543
32553
  r = o;
@@ -32549,12 +32559,12 @@ var FS = (e, t) => {
32549
32559
  }
32550
32560
  }
32551
32561
  let i = t[t.length - 1];
32552
- if (tS(r) ? r[+i] = n(r[+i]) : $x(r) && (r[i] = n(r[i])), sS(r)) {
32553
- let e = NS(r, +i), t = n(e);
32562
+ if (nS(r) ? r[+i] = n(r[+i]) : eS(r) && (r[i] = n(r[i])), cS(r)) {
32563
+ let e = PS(r, +i), t = n(e);
32554
32564
  e !== t && (r.delete(e), r.add(t));
32555
32565
  }
32556
- if (oS(r)) {
32557
- let e = +t[t.length - 2], a = NS(r, e);
32566
+ if (sS(r)) {
32567
+ let e = +t[t.length - 2], a = PS(r, e);
32558
32568
  switch (+i == 0 ? "key" : "value") {
32559
32569
  case "key": {
32560
32570
  let e = n(a);
@@ -32567,78 +32577,78 @@ var FS = (e, t) => {
32567
32577
  }
32568
32578
  }
32569
32579
  return e;
32570
- }, LS = (e) => e < 1;
32571
- function RS(e, t, n, r = []) {
32580
+ }, RS = (e) => e < 1;
32581
+ function zS(e, t, n, r = []) {
32572
32582
  if (!e) return;
32573
- let i = LS(n);
32574
- if (!tS(e)) {
32575
- Kx(e, (e, a) => RS(e, t, n, [...r, ...yS(a, i)]));
32583
+ let i = RS(n);
32584
+ if (!nS(e)) {
32585
+ qx(e, (e, a) => zS(e, t, n, [...r, ...bS(a, i)]));
32576
32586
  return;
32577
32587
  }
32578
32588
  let [a, o] = e;
32579
- o && Kx(o, (e, a) => {
32580
- RS(e, t, n, [...r, ...yS(a, i)]);
32589
+ o && qx(o, (e, a) => {
32590
+ zS(e, t, n, [...r, ...bS(a, i)]);
32581
32591
  }), t(a, r);
32582
32592
  }
32583
- function zS(e, t, n, r) {
32584
- return RS(t, (t, n) => {
32585
- e = IS(e, n, (e) => MS(e, t, r));
32593
+ function BS(e, t, n, r) {
32594
+ return zS(t, (t, n) => {
32595
+ e = LS(e, n, (e) => NS(e, t, r));
32586
32596
  }, n), e;
32587
32597
  }
32588
- function BS(e, t, n) {
32589
- let r = LS(n);
32598
+ function VS(e, t, n) {
32599
+ let r = RS(n);
32590
32600
  function i(t, n) {
32591
- let i = FS(e, yS(n, r));
32592
- t.map((e) => yS(e, r)).forEach((t) => {
32593
- e = IS(e, t, () => i);
32601
+ let i = IS(e, bS(n, r));
32602
+ t.map((e) => bS(e, r)).forEach((t) => {
32603
+ e = LS(e, t, () => i);
32594
32604
  });
32595
32605
  }
32596
- if (tS(t)) {
32606
+ if (nS(t)) {
32597
32607
  let [n, a] = t;
32598
32608
  n.forEach((t) => {
32599
- e = IS(e, yS(t, r), () => e);
32600
- }), a && Kx(a, i);
32601
- } else Kx(t, i);
32609
+ e = LS(e, bS(t, r), () => e);
32610
+ }), a && qx(a, i);
32611
+ } else qx(t, i);
32602
32612
  return e;
32603
32613
  }
32604
- var VS = (e, t) => $x(e) || tS(e) || oS(e) || sS(e) || uS(e) || ES(e, t);
32605
- function HS(e, t, n) {
32614
+ var HS = (e, t) => eS(e) || nS(e) || sS(e) || cS(e) || dS(e) || DS(e, t);
32615
+ function US(e, t, n) {
32606
32616
  let r = n.get(e);
32607
32617
  r ? r.push(t) : n.set(e, [t]);
32608
32618
  }
32609
- function US(e, t) {
32619
+ function WS(e, t) {
32610
32620
  let n = {}, r;
32611
32621
  return e.forEach((e) => {
32612
32622
  if (e.length <= 1) return;
32613
32623
  t || (e = e.map((e) => e.map(String)).sort((e, t) => e.length - t.length));
32614
32624
  let [i, ...a] = e;
32615
- i.length === 0 ? r = a.map(vS) : n[vS(i)] = a.map(vS);
32616
- }), r ? eS(n) ? [r] : [r, n] : eS(n) ? void 0 : n;
32625
+ i.length === 0 ? r = a.map(yS) : n[yS(i)] = a.map(yS);
32626
+ }), r ? tS(n) ? [r] : [r, n] : tS(n) ? void 0 : n;
32617
32627
  }
32618
- var WS = (e, t, n, r, i = [], a = [], o = /* @__PURE__ */ new Map()) => {
32619
- let s = fS(e);
32628
+ var GS = (e, t, n, r, i = [], a = [], o = /* @__PURE__ */ new Map()) => {
32629
+ let s = pS(e);
32620
32630
  if (!s) {
32621
- HS(e, i, t);
32631
+ US(e, i, t);
32622
32632
  let n = o.get(e);
32623
32633
  if (n) return r ? { transformedValue: null } : n;
32624
32634
  }
32625
- if (!VS(e, n)) {
32626
- let t = AS(e, n), r = t ? {
32635
+ if (!HS(e, n)) {
32636
+ let t = jS(e, n), r = t ? {
32627
32637
  transformedValue: t.value,
32628
32638
  annotations: [t.type]
32629
32639
  } : { transformedValue: e };
32630
32640
  return s || o.set(e, r), r;
32631
32641
  }
32632
- if (qx(a, e)) return { transformedValue: null };
32633
- let c = AS(e, n), l = c?.value ?? e, u = tS(l) ? [] : {}, d = {};
32634
- Kx(l, (s, c) => {
32642
+ if (Jx(a, e)) return { transformedValue: null };
32643
+ let c = jS(e, n), l = c?.value ?? e, u = nS(l) ? [] : {}, d = {};
32644
+ qx(l, (s, c) => {
32635
32645
  if (c === "__proto__" || c === "constructor" || c === "prototype") throw Error(`Detected property ${c}. This is a prototype pollution risk, please remove it from your object.`);
32636
- let l = WS(s, t, n, r, [...i, c], [...a, e], o);
32637
- u[c] = l.transformedValue, tS(l.annotations) ? d[_S(c)] = l.annotations : $x(l.annotations) && Kx(l.annotations, (e, t) => {
32638
- d[_S(c) + "." + t] = e;
32646
+ let l = GS(s, t, n, r, [...i, c], [...a, e], o);
32647
+ u[c] = l.transformedValue, nS(l.annotations) ? d[vS(c)] = l.annotations : eS(l.annotations) && qx(l.annotations, (e, t) => {
32648
+ d[vS(c) + "." + t] = e;
32639
32649
  });
32640
32650
  });
32641
- let f = eS(d) ? {
32651
+ let f = tS(d) ? {
32642
32652
  transformedValue: u,
32643
32653
  annotations: c ? [c.type] : void 0
32644
32654
  } : {
@@ -32649,24 +32659,24 @@ var WS = (e, t, n, r, i = [], a = [], o = /* @__PURE__ */ new Map()) => {
32649
32659
  };
32650
32660
  //#endregion
32651
32661
  //#region ../../node_modules/is-what/dist/getType.js
32652
- function GS(e) {
32662
+ function KS(e) {
32653
32663
  return Object.prototype.toString.call(e).slice(8, -1);
32654
32664
  }
32655
32665
  //#endregion
32656
32666
  //#region ../../node_modules/is-what/dist/isArray.js
32657
- function KS(e) {
32658
- return GS(e) === "Array";
32667
+ function qS(e) {
32668
+ return KS(e) === "Array";
32659
32669
  }
32660
32670
  //#endregion
32661
32671
  //#region ../../node_modules/is-what/dist/isPlainObject.js
32662
- function qS(e) {
32663
- if (GS(e) !== "Object") return !1;
32672
+ function JS(e) {
32673
+ if (KS(e) !== "Object") return !1;
32664
32674
  let t = Object.getPrototypeOf(e);
32665
32675
  return !!t && t.constructor === Object && t === Object.prototype;
32666
32676
  }
32667
32677
  //#endregion
32668
32678
  //#region ../../node_modules/copy-anything/dist/index.js
32669
- function JS(e, t, n, r, i) {
32679
+ function YS(e, t, n, r, i) {
32670
32680
  let a = {}.propertyIsEnumerable.call(r, t) ? "enumerable" : "nonenumerable";
32671
32681
  a === "enumerable" && (e[t] = n), i && a === "nonenumerable" && Object.defineProperty(e, t, {
32672
32682
  value: n,
@@ -32675,37 +32685,37 @@ function JS(e, t, n, r, i) {
32675
32685
  configurable: !0
32676
32686
  });
32677
32687
  }
32678
- function YS(e, t = {}) {
32679
- if (KS(e)) return e.map((e) => YS(e, t));
32680
- if (!qS(e)) return e;
32688
+ function XS(e, t = {}) {
32689
+ if (qS(e)) return e.map((e) => XS(e, t));
32690
+ if (!JS(e)) return e;
32681
32691
  let n = Object.getOwnPropertyNames(e), r = Object.getOwnPropertySymbols(e);
32682
32692
  return [...n, ...r].reduce((n, r) => {
32683
- if (r === "__proto__" || KS(t.props) && !t.props.includes(r)) return n;
32693
+ if (r === "__proto__" || qS(t.props) && !t.props.includes(r)) return n;
32684
32694
  let i = e[r];
32685
- return JS(n, r, YS(i, t), e, t.nonenumerable), n;
32695
+ return YS(n, r, XS(i, t), e, t.nonenumerable), n;
32686
32696
  }, {});
32687
32697
  }
32688
32698
  //#endregion
32689
32699
  //#region ../../node_modules/superjson/dist/index.js
32690
- var XS = class {
32700
+ var ZS = class {
32691
32701
  constructor({ dedupe: e = !1 } = {}) {
32692
- this.classRegistry = new Ux(), this.symbolRegistry = new Hx((e) => e.description ?? ""), this.customTransformerRegistry = new Yx(), this.allowedErrorProps = [], this.dedupe = e;
32702
+ this.classRegistry = new Wx(), this.symbolRegistry = new Ux((e) => e.description ?? ""), this.customTransformerRegistry = new Xx(), this.allowedErrorProps = [], this.dedupe = e;
32693
32703
  }
32694
32704
  serialize(e) {
32695
- let t = /* @__PURE__ */ new Map(), n = WS(e, t, this, this.dedupe), r = { json: n.transformedValue };
32705
+ let t = /* @__PURE__ */ new Map(), n = GS(e, t, this, this.dedupe), r = { json: n.transformedValue };
32696
32706
  n.annotations && (r.meta = {
32697
32707
  ...r.meta,
32698
32708
  values: n.annotations
32699
32709
  });
32700
- let i = US(t, this.dedupe);
32710
+ let i = WS(t, this.dedupe);
32701
32711
  return i && (r.meta = {
32702
32712
  ...r.meta,
32703
32713
  referentialEqualities: i
32704
32714
  }), r.meta && (r.meta.v = 1), r;
32705
32715
  }
32706
32716
  deserialize(e, t) {
32707
- let { json: n, meta: r } = e, i = t?.inPlace ? n : YS(n);
32708
- return r?.values && (i = zS(i, r.values, r.v ?? 0, this)), r?.referentialEqualities && (i = BS(i, r.referentialEqualities, r.v ?? 0)), i;
32717
+ let { json: n, meta: r } = e, i = t?.inPlace ? n : XS(n);
32718
+ return r?.values && (i = BS(i, r.values, r.v ?? 0, this)), r?.referentialEqualities && (i = VS(i, r.referentialEqualities, r.v ?? 0)), i;
32709
32719
  }
32710
32720
  stringify(e) {
32711
32721
  return JSON.stringify(this.serialize(e));
@@ -32731,8 +32741,8 @@ var XS = class {
32731
32741
  };
32732
32742
  //#endregion
32733
32743
  //#region ../ui-library/src/hooks/use-live-buffer.ts
32734
- XS.defaultInstance = new XS(), XS.serialize = XS.defaultInstance.serialize.bind(XS.defaultInstance), XS.deserialize = XS.defaultInstance.deserialize.bind(XS.defaultInstance), XS.stringify = XS.defaultInstance.stringify.bind(XS.defaultInstance), XS.parse = XS.defaultInstance.parse.bind(XS.defaultInstance), XS.registerClass = XS.defaultInstance.registerClass.bind(XS.defaultInstance), XS.registerSymbol = XS.defaultInstance.registerSymbol.bind(XS.defaultInstance), XS.registerCustom = XS.defaultInstance.registerCustom.bind(XS.defaultInstance), XS.allowErrorProps = XS.defaultInstance.allowErrorProps.bind(XS.defaultInstance), XS.serialize, XS.deserialize, XS.stringify, XS.parse, XS.registerClass, XS.registerCustom, XS.registerSymbol, XS.allowErrorProps, e(), d(null), e(), e(), e(), d(null), e();
32735
- function ZS(e) {
32744
+ ZS.defaultInstance = new ZS(), ZS.serialize = ZS.defaultInstance.serialize.bind(ZS.defaultInstance), ZS.deserialize = ZS.defaultInstance.deserialize.bind(ZS.defaultInstance), ZS.stringify = ZS.defaultInstance.stringify.bind(ZS.defaultInstance), ZS.parse = ZS.defaultInstance.parse.bind(ZS.defaultInstance), ZS.registerClass = ZS.defaultInstance.registerClass.bind(ZS.defaultInstance), ZS.registerSymbol = ZS.defaultInstance.registerSymbol.bind(ZS.defaultInstance), ZS.registerCustom = ZS.defaultInstance.registerCustom.bind(ZS.defaultInstance), ZS.allowErrorProps = ZS.defaultInstance.allowErrorProps.bind(ZS.defaultInstance), ZS.serialize, ZS.deserialize, ZS.stringify, ZS.parse, ZS.registerClass, ZS.registerCustom, ZS.registerSymbol, ZS.allowErrorProps, e(), d(null), e(), e(), e(), d(null), e();
32745
+ function QS(e) {
32736
32746
  let [t, n] = g([]), r = l((t) => {
32737
32747
  n((n) => {
32738
32748
  let r = [...n, t];
@@ -32752,16 +32762,6 @@ function ZS(e) {
32752
32762
  ]);
32753
32763
  }
32754
32764
  //#endregion
32755
- //#region ../ui-library/src/hooks/use-debounced-string.ts
32756
- e();
32757
- function QS(e, t) {
32758
- let [n, r] = g(e);
32759
- return i(() => {
32760
- let n = setTimeout(() => r(e), t);
32761
- return () => clearTimeout(n);
32762
- }, [e, t]), n;
32763
- }
32764
- //#endregion
32765
32765
  //#region ../ui-library/src/composites/log-history-paging.ts
32766
32766
  async function $S(e) {
32767
32767
  let { fetchSlice: t, limit: n, signal: r, onProgress: i } = e, a = [], o = e.before, s = 0, c;
@@ -32954,11 +32954,11 @@ function fC({ agentId: e, addonId: n, deviceId: r, containerDeviceId: a, integra
32954
32954
  a,
32955
32955
  ce,
32956
32956
  le
32957
- ]), ue = ZS(cC), de = x ?? ue, fe = de.entries, [pe, me] = g(0), [he, ge] = g(!0), _e = t(!1), [ve, ye] = g(!1), [be, xe] = g(!1), [Se, Ce] = g(/* @__PURE__ */ new Set()), [we, M] = g(""), Te = t(null), Ee = `${A ?? ""}:${oe ?? ""}:${String(se ?? "")}:${String(a ?? "")}:${ce ?? ""}:${le ?? ""}`, De = t(Ee);
32957
+ ]), ue = QS(cC), de = x ?? ue, fe = de.entries, [pe, me] = g(0), [he, ge] = g(!0), _e = t(!1), [ve, ye] = g(!1), [be, xe] = g(!1), [Se, Ce] = g(/* @__PURE__ */ new Set()), [we, M] = g(""), Te = t(null), Ee = `${A ?? ""}:${oe ?? ""}:${String(se ?? "")}:${String(a ?? "")}:${ce ?? ""}:${le ?? ""}`, De = t(Ee);
32958
32958
  i(() => {
32959
32959
  De.current !== Ee && (De.current = Ee, de.reset(), me(0), Ce(/* @__PURE__ */ new Set()), ye(!1));
32960
32960
  }, [Ee, de]);
32961
- let Oe = QS(we, lC).trim(), ke = I.logs.sources.useQuery(void 0, { staleTime: 6e4 }), Ae = o(() => (ke.data ?? []).filter((e) => e.readable), [ke.data]), je = rC(o(() => ({
32961
+ let Oe = eb(we, lC).trim(), ke = I.logs.sources.useQuery(void 0, { staleTime: 6e4 }), Ae = o(() => (ke.data ?? []).filter((e) => e.readable), [ke.data]), je = rC(o(() => ({
32962
32962
  ...ie ? { source: ie } : {},
32963
32963
  level: k,
32964
32964
  ...Oe ? { text: Oe } : {},
@@ -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,
@@ -38639,7 +38639,7 @@ function sD({ trpc: e, deviceId: t, layout: n, optimistic: r }) {
38639
38639
  }),
38640
38640
  /* @__PURE__ */ v("span", {
38641
38641
  onClick: (e) => e.stopPropagation(),
38642
- children: /* @__PURE__ */ v(Qb, {
38642
+ children: /* @__PURE__ */ v($b, {
38643
38643
  checked: f,
38644
38644
  disabled: u,
38645
38645
  "aria-label": i("uiLibrary.petFountain.pump", "Pump"),
@@ -38867,7 +38867,7 @@ function fD({ icon: e, label: t, checked: n, disabled: r, onChange: i }) {
38867
38867
  className: "text-foreground-subtle",
38868
38868
  children: e
38869
38869
  }), t]
38870
- }), /* @__PURE__ */ v(Qb, {
38870
+ }), /* @__PURE__ */ v($b, {
38871
38871
  checked: n,
38872
38872
  disabled: r,
38873
38873
  "aria-label": t,
@@ -41963,7 +41963,7 @@ c(function({ tree: e, agents: n, getCellState: r, onCellClick: a, selectedCell:
41963
41963
  });
41964
41964
  }), e(), e(), e(), e(), e(), e(), e();
41965
41965
  function Gk({ selectedNodeId: e, onSelect: t, label: n = "Node", hideIcon: r = !1, alwaysShow: i = !1, allowOffline: a = !1 }) {
41966
- let s = S(), { nodes: c } = ci(), l = vo(void 0), u = o(() => hx(l.data), [l.data]);
41966
+ let s = S(), { nodes: c } = ci(), l = vo(void 0), u = o(() => gx(l.data), [l.data]);
41967
41967
  return !i && c.length <= 1 ? null : /* @__PURE__ */ y("div", {
41968
41968
  className: "flex h-7 items-center gap-1.5",
41969
41969
  children: [
@@ -41975,13 +41975,13 @@ function Gk({ selectedNodeId: e, onSelect: t, label: n = "Node", hideIcon: r = !
41975
41975
  /* @__PURE__ */ v("div", {
41976
41976
  className: "flex h-7 overflow-hidden rounded-md border border-border text-xs font-medium",
41977
41977
  children: c.map((n, r) => {
41978
- let i = e === n.id, o = gx(u, n.id), c = !a && !n.isOnline;
41978
+ let i = e === n.id, o = _x(u, n.id), c = !a && !n.isOnline;
41979
41979
  return /* @__PURE__ */ v("button", {
41980
41980
  type: "button",
41981
41981
  onClick: () => t(n.id),
41982
41982
  disabled: c,
41983
41983
  title: n.isOnline ? n.name : s("uiLibrary.nodePicker.offline", "{{name}} (offline)", { name: n.name }),
41984
- className: B("inline-flex h-7 items-center px-2.5 transition-colors", i ? B(px(o), fx(o)) : B("bg-transparent hover:bg-surface-hover", fx(o), !c && "opacity-70 hover:opacity-100"), r > 0 && "border-l border-border", c && "cursor-not-allowed opacity-50"),
41984
+ className: B("inline-flex h-7 items-center px-2.5 transition-colors", i ? B(mx(o), px(o)) : B("bg-transparent hover:bg-surface-hover", px(o), !c && "opacity-70 hover:opacity-100"), r > 0 && "border-l border-border", c && "cursor-not-allowed opacity-50"),
41985
41985
  children: n.shortName
41986
41986
  }, n.id);
41987
41987
  })
@@ -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}}",
@@ -44545,7 +44557,7 @@ function dN({ preSelectors: e = [], catalog: t, value: n, onChange: r, title: i,
44545
44557
  })]
44546
44558
  }),
44547
44559
  h ? a : null,
44548
- /* @__PURE__ */ v(ob, {
44560
+ /* @__PURE__ */ v(sb, {
44549
44561
  catalog: l,
44550
44562
  value: f,
44551
44563
  onChange: (t) => {
@@ -46094,7 +46106,7 @@ function pP({ seeds: e, nodeId: t, busyKey: n, selectedByFamily: r, onSelectFami
46094
46106
  children: s
46095
46107
  })]
46096
46108
  }),
46097
- /* @__PURE__ */ v(ob, {
46109
+ /* @__PURE__ */ v(sb, {
46098
46110
  catalog: o,
46099
46111
  value: s,
46100
46112
  onChange: (t) => i(e.family, t)
@@ -46864,13 +46876,13 @@ function NP({ trpc: e, onRegistered: t, initialPrefill: n = null, onPrefillConsu
46864
46876
  function PP(e, t, n, r, i) {
46865
46877
  if (r == null || O(t)) return [];
46866
46878
  let a = [];
46867
- for (let o of e) o.enabled && i.has(o.format) && pb(r.models, o.format) && mb({
46879
+ for (let o of e) o.enabled && i.has(o.format) && mb(r.models, o.format) && hb({
46868
46880
  catalog: r,
46869
46881
  device: o,
46870
46882
  base: o.steps?.[t]?.modelId
46871
46883
  }) === n && a.push({
46872
46884
  deviceKey: o.key,
46873
- label: ib(o),
46885
+ label: ab(o),
46874
46886
  format: o.format
46875
46887
  });
46876
46888
  return a;
@@ -46921,7 +46933,7 @@ function RP(e, t, n, r, i) {
46921
46933
  //#endregion
46922
46934
  //#region src/ui/installed-inventory.ts
46923
46935
  function zP(e) {
46924
- return ib(e);
46936
+ return ab(e);
46925
46937
  }
46926
46938
  function BP(e) {
46927
46939
  return e.map((e) => ({
@@ -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));
46942
46957
  }
46943
- var WP = new Set(["audio-classifier"]);
46944
- function GP(e, t, n) {
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
+ }];
46972
+ }
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: {}
@@ -47143,13 +47172,13 @@ function nF({ trpc: e, nodeId: t, stepId: n, modelId: r, modelName: a, devices:
47143
47172
  " ",
47144
47173
  /* @__PURE__ */ v("span", {
47145
47174
  className: "font-medium text-foreground",
47146
- children: rb(C)
47175
+ children: ib(C)
47147
47176
  })
47148
47177
  ]
47149
47178
  }), _ === null ? /* @__PURE__ */ v("p", {
47150
47179
  className: "text-xs text-foreground-subtle animate-pulse",
47151
47180
  children: d("settingsModal.loadingSchema")
47152
- }) : /* @__PURE__ */ v(qb, {
47181
+ }) : /* @__PURE__ */ v(Jb, {
47153
47182
  addon: _,
47154
47183
  agentDefault: x,
47155
47184
  engineFormat: C?.format ?? "onnx",
@@ -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,
@@ -47360,7 +47389,7 @@ function uF({ step: e, current: t, inputs: n, onChange: r }) {
47360
47389
  }),
47361
47390
  /* @__PURE__ */ v("div", {
47362
47391
  className: "p-2 sm:p-3",
47363
- children: /* @__PURE__ */ v(jx, {
47392
+ children: /* @__PURE__ */ v(Mx, {
47364
47393
  columns: s,
47365
47394
  rows: u,
47366
47395
  rowKey: (e) => e.key,
@@ -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();
@@ -47765,14 +47796,14 @@ function jF({ rows: e, emptyMessage: t, onRemove: n, onRename: r, onChip: i, onE
47765
47796
  }
47766
47797
  });
47767
47798
  };
47768
- return /* @__PURE__ */ v(jx, {
47799
+ return /* @__PURE__ */ v(Mx, {
47769
47800
  columns: [
47770
47801
  {
47771
47802
  key: "model",
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));
@@ -48225,26 +48264,26 @@ function YF({ trpc: e }) {
48225
48264
  return /* @__PURE__ */ v(BM, { children: /* @__PURE__ */ y(Kk, {
48226
48265
  icon: zt,
48227
48266
  title: n("page.title"),
48228
- children: [/* @__PURE__ */ v(ox, {
48267
+ children: [/* @__PURE__ */ v(sx, {
48229
48268
  value: c,
48230
48269
  onValueChange: (e) => {
48231
48270
  (e === "catalog" || e === "installed" || e === "import" || e === "logs") && b(e);
48232
48271
  },
48233
- children: /* @__PURE__ */ v(sx, {
48272
+ children: /* @__PURE__ */ v(cx, {
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(lx, {
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 };