@camstack/addon-model-studio 1.1.287 → 1.1.289

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 (18) hide show
  1. package/dist/{MotionZonesSettings-D0BtqOwj.mjs → MotionZonesSettings-mlU-VSe5.mjs} +2 -2
  2. package/dist/{PrivacyMaskSettings-BYJj-5D1.mjs → PrivacyMaskSettings-Cx5oEsjP.mjs} +4 -4
  3. package/dist/{SceneMonitorEditor-D1kveRgB.mjs → SceneMonitorEditor-GMAcbbJ0.mjs} +3 -3
  4. package/dist/_stub.js +638 -641
  5. package/dist/{_virtual_mf-localSharedImportMap___mfe_internal__addon_model_studio_page-BzQpOYl5.mjs → _virtual_mf-localSharedImportMap___mfe_internal__addon_model_studio_page-DvHxq6CH.mjs} +4 -4
  6. package/dist/_virtual_mf___mfe_internal__addon_model_studio_page__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-BL63cAWe.mjs +26 -0
  7. package/dist/{hostInit-DRhSO1r5.mjs → hostInit-Beh8D27N.mjs} +3 -3
  8. package/dist/model-studio.addon.js +6881 -1634
  9. package/dist/model-studio.addon.mjs +6881 -1634
  10. package/dist/{player-overlays-D92X0xJg.mjs → player-overlays-BNm3QxNX.mjs} +1 -1
  11. package/dist/remoteEntry.js +1 -1
  12. package/dist/{responsive-D-jqRXmN.mjs → responsive-BBGHW8J6.mjs} +1 -1
  13. package/dist/{scene-monitor-copy-DMdZvxkb.mjs → scene-monitor-copy-BEIH363L.mjs} +1 -1
  14. package/dist/{square-epfZBUKr.mjs → square-DiTXshc8.mjs} +1 -1
  15. package/dist/{trash-2-Bc8klFfu.mjs → trash-2-BVSkUDtB.mjs} +1 -1
  16. package/dist/{virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_model_studio_page__remoteEntry_js-CPVxvHfW.mjs → virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_model_studio_page__remoteEntry_js-ohPGd04S.mjs} +1 -1
  17. package/package.json +1 -1
  18. package/dist/_virtual_mf___mfe_internal__addon_model_studio_page__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-MeghOR6t.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-CPVxvHfW.mjs";
2
+ import "./virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_model_studio_page__remoteEntry_js-ohPGd04S.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 ee, D as te, E as D, F as O, G as k, H as A, I as ne, J as j, K as re, L as M, M as ie, N as ae, O as N, P as oe, R as P, S as F, T as se, U as ce, V as le, W as ue, X as de, Y as I, Z as L, _ as R, a as fe, b as pe, c as me, d as he, et as ge, f as _e, h as ve, i as ye, j as be, k as xe, l as Se, m as Ce, n as we, nt as Te, o as Ee, p as De, q as Oe, r as ke, rt as Ae, s as je, t as Me, tt as Ne, u as Pe, v as Fe, w as Ie, x as Le, y as Re, z as ze } from "./_virtual_mf___mfe_internal__addon_model_studio_page__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-MeghOR6t.mjs";
7
- import { a as Be, c as Ve, f as He, g as z, h as Ue, i as We, l as Ge, m as Ke, o as qe, p as Je, r as Ye, s as Xe, t as Ze, u as Qe } from "./responsive-D-jqRXmN.mjs";
8
- import { d as $e, l as et, u as tt } from "./scene-monitor-copy-DMdZvxkb.mjs";
9
- import { i as nt, r as rt } from "./player-overlays-D92X0xJg.mjs";
10
- import { r as it, t as at } from "./square-epfZBUKr.mjs";
11
- import { t as ot } from "./trash-2-Bc8klFfu.mjs";
6
+ import { $ as w, A as T, B as E, C as ee, D as te, E as D, F as O, G as k, H as A, I as ne, J as j, K as re, L as M, M as ie, N as ae, O as N, P as oe, R as P, S as F, T as se, U as ce, V as le, W as ue, X as de, Y as I, Z as L, _ as R, a as fe, b as pe, c as me, d as he, et as ge, f as _e, h as ve, i as ye, j as be, k as xe, l as Se, m as Ce, n as we, nt as Te, o as Ee, p as De, q as Oe, r as ke, rt as Ae, s as je, t as Me, tt as Ne, u as Pe, v as Fe, w as Ie, x as Le, y as Re, z as ze } from "./_virtual_mf___mfe_internal__addon_model_studio_page__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-BL63cAWe.mjs";
7
+ import { a as Be, c as Ve, f as He, g as z, h as Ue, i as We, l as Ge, m as Ke, o as qe, p as Je, r as Ye, s as Xe, t as Ze, u as Qe } from "./responsive-BBGHW8J6.mjs";
8
+ import { d as $e, l as et, u as tt } from "./scene-monitor-copy-BEIH363L.mjs";
9
+ import { i as nt, r as rt } from "./player-overlays-BNm3QxNX.mjs";
10
+ import { r as it, t as at } from "./square-DiTXshc8.mjs";
11
+ import { t as ot } from "./trash-2-BVSkUDtB.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";
@@ -4849,11 +4849,11 @@ za.displayName = "Select", e(), Ue("camstack:secret-reveal", null), B.accessorie
4849
4849
  var Ba = B.deviceManager.getRoleDisplayDefaults.useQuery;
4850
4850
  B.deviceManager.setRoleDisplayDefaults.useMutation, B.deviceManager.getWireableFields.useQuery, B.deviceManager.setRole.useMutation, B.deviceManager.applyInitialMeta.useMutation, B.deviceManager.setMetadata.useMutation, B.deviceManager.listLocations.useQuery, B.deviceManager.addLocation.useMutation, B.deviceManager.removeLocation.useMutation, B.deviceManager.renameLocation.useMutation, B.deviceManager.listLocationIcons.useQuery, B.deviceManager.setLocationIcon.useMutation, B.deviceManager.listLocationDescriptions.useQuery, B.deviceManager.setLocationDescription.useMutation, B.deviceManager.listSiteZones.useQuery, B.deviceManager.setSiteZone.useMutation, B.deviceManager.removeSiteZone.useMutation, B.deviceManager.renameSiteZone.useMutation, B.deviceManager.setLocationZone.useMutation, B.deviceManager.setDisabled.useMutation, B.deviceManager.listPersistedByAddon.useQuery, B.deviceManager.listAll.useQuery;
4851
4851
  var Va = B.deviceManager.getDevice.useQuery;
4852
- B.deviceManager.getChildren.useQuery, B.deviceManager.getChildrenBatch.useQuery, B.deviceManager.getLinkedDevices.useQuery, B.deviceManager.getLinkedDevicesBatch.useQuery, B.deviceManager.getStreamSources.useQuery, B.deviceManager.getConfigSchema.useQuery, B.deviceManager.getSettingsSchema.useQuery, B.deviceManager.updateConfig.useMutation, B.deviceManager.enable.useMutation, B.deviceManager.disable.useMutation, B.deviceManager.remove.useMutation, B.deviceManager.listDeletedSince.useQuery, B.deviceManager.cleanupDeletedDevicesData.useMutation, B.deviceManager.removeByIntegration.useMutation, B.deviceManager.getStreamProfileMap.useQuery, B.deviceManager.setStreamProfileMap.useMutation, B.deviceManager.probeStreams.useMutation, B.deviceManager.getBindings.useQuery, B.deviceManager.getBindingsBatch.useQuery, B.deviceManager.getAllBindings.useQuery, B.deviceManager.listDeviceIdsByCaps.useQuery, B.deviceManager.setWrapperActive.useMutation, B.deviceManager.getWrapperActivation.useQuery, B.deviceManager.listWrappersForCap.useQuery, B.deviceManager.listBindableCapsForDeviceType.useQuery, B.deviceManager.getDeviceSettingsAggregate.useQuery, B.deviceManager.getDeviceLiveInfoAggregate.useQuery, B.deviceManager.getDeviceAggregate.useQuery, B.deviceManager.runDeviceAction.useMutation, B.deviceManager.updateDeviceField.useMutation, B.deviceManager.updateDeviceFieldsBatch.useMutation, B.deviceManager.discoverDevices.useMutation, B.deviceManager.adoptDevice.useMutation, B.deviceManager.getCreationSchema.useQuery, B.deviceManager.createDevice.useMutation, B.deviceManager.testCreationField.useMutation, B.deviceManager.adoptionListCandidateFilters.useQuery, B.deviceManager.adoptionListCandidates.useQuery, B.deviceManager.adoptionRefresh.useMutation, B.deviceManager.adoptionAdopt.useMutation, B.deviceManager.adoptionRelease.useMutation, B.deviceManager.adoptionStartJob.useMutation, B.deviceManager.adoptionListJobs.useQuery, B.deviceManager.adoptionCancelJob.useMutation, B.deviceManager.adoptionResync.useMutation, B.deviceManager.discoveryProviders.useQuery, B.deviceManager.discoverAllProviders.useMutation, B.deviceManager.discoverProvider.useMutation, B.deviceManager.providerCreationType.useQuery, B.deviceManager.providerDiscoveryParamsSchema.useQuery, B.deviceManager.testField.useMutation, B.deviceManager.getDeviceStatusAggregate.useQuery, B.deviceManager.getDeviceStatusAggregateBatch.useQuery, B.deviceOps.getStreamSources.useQuery, B.deviceOps.getConfigEntries.useQuery, B.deviceOps.setConfig.useMutation, B.deviceOps.runAction.useMutation, B.deviceOps.removeDevice.useMutation, B.deviceOps.getSettingsSchema.useQuery, B.deviceOps.getRawState.useQuery, B.deviceProvider.start.useMutation, B.deviceProvider.stop.useMutation, B.deviceProvider.getStatus.useQuery, B.deviceProvider.getDevices.useQuery, B.deviceProvider.reloadDevice.useMutation, B.deviceProvider.supportsDiscovery.useQuery, B.deviceProvider.discoverDevices.useMutation, B.deviceProvider.getDiscoveryParamsSchema.useQuery, B.deviceProvider.getManualCreationType.useQuery, B.deviceProvider.adoptDiscoveredDevice.useMutation, B.deviceProvider.supportsManualCreation.useQuery, B.deviceProvider.getChildCreationSchema.useQuery, B.deviceProvider.createDevice.useMutation, B.deviceProvider.testCreationField.useMutation, B.deviceState.getSnapshot.useQuery, B.deviceState.getCapSlice.useQuery, B.deviceState.getAllSnapshots.useQuery, B.deviceState.setCapSlice.useMutation, B.deviceState.claimFields.useMutation, B.deviceState.patchOwnedFields.useMutation, B.deviceState.releaseClaim.useMutation, B.deviceState.listClaims.useQuery, B.deviceState.getNativeCapSlice.useQuery, B.deviceStatus.getStatus.useQuery, B.dishwasher.start.useMutation, B.dishwasher.pause.useMutation, B.dishwasher.resume.useMutation, B.dishwasher.stop.useMutation, B.dishwasher.setProgram.useMutation, B.dishwasher.setPower.useMutation, B.dishwasher.setHalfLoad.useMutation, B.dishwasher.setHygienePlus.useMutation, B.dishwasher.setExtraDry.useMutation, B.dishwasher.setIntensiveZone.useMutation, B.dishwasher.setVarioSpeedPlus.useMutation, B.dishwasher.setChildLock.useMutation, B.dishwasher.setOption.useMutation, B.dishwasher.getOptions.useQuery, B.dishwasher.getStatus.useQuery, B.doorbell.getStatus.useQuery, B.enumSensor.getStatus.useQuery, B.eventEmitter.getStatus.useQuery, B.faceGallery.listIdentities.useQuery, B.faceGallery.createIdentity.useMutation, B.faceGallery.renameIdentity.useMutation, B.faceGallery.deleteIdentity.useMutation, B.faceGallery.listIdentitySamples.useQuery, B.faceGallery.auditIdentitySamples.useQuery, B.faceGallery.removeSample.useMutation, B.faceGallery.listRecentFaces.useQuery, B.faceGallery.getFaceByTrack.useQuery, B.faceGallery.getFaceMedia.useQuery, B.faceGallery.assignFace.useMutation, B.faceGallery.unassignFace.useMutation, B.faceGallery.deleteFace.useMutation, B.faceGallery.assignFaces.useMutation, B.faceGallery.unassignFaces.useMutation, B.faceGallery.suggestFaceClusters.useQuery, B.fanControl.setPercentage.useMutation, B.fanControl.setPreset.useMutation, B.fanControl.setDirection.useMutation, B.fanControl.setOscillating.useMutation, B.fanControl.getStatus.useQuery, B.featureProbe.getStatus.useQuery, B.flood.getStatus.useQuery, B.gas.getStatus.useQuery, B.heatingValve.getStatus.useQuery, B.humidifier.setOn.useMutation, B.humidifier.setTargetHumidity.useMutation, B.humidifier.setMode.useMutation, B.humidifier.getStatus.useQuery, B.humiditySensor.getStatus.useQuery, B.image.getStatus.useQuery, B.imageSettings.getOptions.useQuery, B.imageSettings.setSettings.useMutation, B.imageSettings.getStatus.useQuery, B.integrations.list.useQuery, B.integrations.get.useQuery, B.integrations.getByAddonId.useQuery, B.integrations.create.useMutation, B.integrations.update.useMutation, B.integrations.delete.useMutation, B.integrations.getSettings.useQuery, B.integrations.setSettings.useMutation, B.integrations.getAvailableTypes.useQuery, B.integrations.testConnection.useMutation, B.intercom.startSession.useMutation, B.intercom.handleAnswer.useMutation, B.intercom.stopSession.useMutation, B.intercom.startTalkSession.useMutation, B.intercom.pushTalkAudio.useMutation, B.intercom.endTalkSession.useMutation, B.intercom.getStatus.useQuery, B.keychainAdmin.status.useQuery, B.keychainAdmin.listSecrets.useQuery, B.keychainAdmin.listAudit.useQuery, B.keychainAdmin.reveal.useMutation, B.keychainAdmin.setSystemSecret.useMutation, B.keychainAdmin.importSecret.useMutation, B.keychainAdmin.deleteOrphans.useMutation, B.keychainAdmin.rotateMasterKey.useMutation, B.keychainAdmin.purgeRetiredKeys.useMutation, B.keychainAdmin.downloadRecoveryKey.useMutation, B.keychainAdmin.resetKeychain.useMutation, B.keychainAdmin.resetReport.useQuery, B.keychainAdmin.acknowledgeReset.useMutation, B.lawnMowerControl.startMowing.useMutation, B.lawnMowerControl.pause.useMutation, B.lawnMowerControl.dock.useMutation, B.lawnMowerControl.getStatus.useQuery, B.llm.generate.useMutation, B.llm.generateVision.useMutation, B.llm.cancel.useMutation, B.llm.listProfileKinds.useQuery, B.llm.listProfiles.useQuery, B.llm.upsertProfile.useMutation, B.llm.migrateRawSecrets.useMutation, B.llm.deleteProfile.useMutation, B.llm.testProfile.useMutation, B.llm.listModels.useMutation, B.llm.getDefaults.useQuery, B.llm.setDefault.useMutation, B.llm.getUsage.useQuery, B.llm.listModelCatalog.useQuery, B.llm.listRuntimeNodes.useQuery, B.llm.listNodeModels.useQuery, B.llm.resolveModelRef.useMutation, B.llm.installModel.useMutation, B.llm.deleteModel.useMutation, B.llm.getRuntimeStatus.useQuery, B.llm.startRuntime.useMutation, B.llm.stopRuntime.useMutation, B.localNetwork.list.useQuery, B.localNetwork.getPreferred.useQuery, B.localNetwork.getConnectionEndpoints.useQuery, B.localNetwork.getNotificationEndpoint.useQuery, B.localNetwork.setNotificationEndpoint.useMutation, B.localNetwork.getViewerEndpoints.useQuery, B.localNetwork.setViewerEndpoints.useMutation, B.localNetwork.getAddresses.useQuery, B.localNetwork.addCustomAddress.useMutation, B.localNetwork.removeCustomAddress.useMutation, B.localNetwork.setAddressRole.useMutation, B.localNetwork.getHubAddresses.useQuery, B.localNetwork.getAllowedAddresses.useQuery, B.localNetwork.setAllowedAddresses.useMutation, B.localNetwork.resetAllowlistToBestMatch.useMutation, B.localNetwork.getTlsStatus.useQuery, B.localNetwork.regenerateCertificate.useMutation, B.localNetwork.uploadCertificate.useMutation, B.localNetwork.downloadCa.useQuery, B.localNetwork.useStoredUploadedCertificate.useMutation, B.localNetwork.revertToGeneratedCertificate.useMutation, B.lockControl.lock.useMutation, B.lockControl.unlock.useMutation, B.lockControl.open.useMutation, B.lockControl.getStatus.useQuery, B.mediaPlayer.play.useMutation, B.mediaPlayer.pause.useMutation, B.mediaPlayer.stop.useMutation, B.mediaPlayer.next.useMutation, B.mediaPlayer.previous.useMutation, B.mediaPlayer.seek.useMutation, B.mediaPlayer.setVolume.useMutation, B.mediaPlayer.setMute.useMutation, B.mediaPlayer.setShuffle.useMutation, B.mediaPlayer.setRepeat.useMutation, B.mediaPlayer.selectSource.useMutation, B.mediaPlayer.playMedia.useMutation, B.mediaPlayer.getStatus.useQuery, B.meshNetwork.getStatus.useQuery, B.meshNetwork.join.useMutation, B.meshNetwork.startLogin.useMutation, B.meshNetwork.leave.useMutation, B.meshNetwork.logout.useMutation, B.meshNetwork.listPeers.useQuery, B.meshNetwork.testConnection.useMutation, B.metricsProvider.collectSnapshot.useQuery, B.metricsProvider.getCached.useQuery, B.metricsProvider.getCurrent.useQuery, B.metricsProvider.getDiskSpace.useQuery, B.metricsProvider.getGpuInfo.useQuery, B.metricsProvider.getCpuTemperature.useQuery, B.metricsProvider.getProcessStats.useQuery, B.metricsProvider.listAddonInstances.useQuery, B.metricsProvider.getAddonStats.useQuery, B.metricsProvider.listNodeProcesses.useQuery, B.metricsProvider.getLoadSeries.useQuery, B.motion.isDetected.useQuery, B.motion.getStatus.useQuery, B.motionDetection.analyze.useMutation, B.motionDetection.removeCamera.useMutation, B.motionDetection.reset.useMutation, B.motionDetection.getDeviceSettingsContribution.useQuery, B.motionDetection.getDeviceLiveContribution.useQuery, B.motionDetection.applyDeviceSettingsPatch.useMutation, B.motionTrigger.setMotionTrigger.useMutation, B.motionTrigger.getStatus.useQuery, B.motionZones.getOptions.useQuery, B.motionZones.setZone.useMutation, B.motionZones.getStatus.useQuery, B.mqttBroker.listBrokers.useQuery, B.mqttBroker.getBrokerConfig.useQuery, B.mqttBroker.addBroker.useMutation, B.mqttBroker.removeBroker.useMutation, B.mqttBroker.testConnection.useMutation, B.mqttBroker.startEmbeddedBroker.useMutation, B.mqttBroker.stopEmbeddedBroker.useMutation, B.mqttBroker.getStatus.useQuery, B.nativeObjectDetection.getOptions.useQuery, B.nativeObjectDetection.setSettings.useMutation, B.nativeObjectDetection.setEnabled.useMutation, B.nativeObjectDetection.getStatus.useQuery, B.navigation.move.useMutation, B.navigation.stop.useMutation, B.navigation.goToPoint.useMutation, B.navigation.listActions.useQuery, B.navigation.runAction.useMutation, B.navigation.playSound.useMutation, B.navigation.setLightOn.useMutation, B.navigation.setLightMode.useMutation, B.navigation.setLightLevel.useMutation, B.navigation.getFeatures.useQuery, B.navigation.getStatus.useQuery, B.networkAccess.start.useMutation, B.networkAccess.stop.useMutation, B.networkAccess.getEndpoint.useQuery, B.networkAccess.getStatus.useQuery, B.networkAccess.listEndpoints.useQuery, B.networkLink.getStatus.useQuery, B.networkQuality.getDeviceStats.useQuery, B.networkQuality.getAllStats.useQuery, B.networkQuality.reportClientStats.useMutation, B.nodes.topology.useQuery, B.nodes.directory.useQuery, B.nodes.deployAddon.useMutation, B.nodes.undeployAddon.useMutation, B.nodes.restartAddon.useMutation, B.nodes.restartProcess.useMutation, B.nodes.restartNode.useMutation, B.nodes.shutdownNode.useMutation, B.nodes.renameNode.useMutation, B.nodes.clusterAddonStatus.useQuery, B.nodes.getCapUsageGraph.useQuery, B.nodes.getNodeAddons.useQuery, B.nodes.setProcessLogLevel.useMutation, B.nodes.executeQuery.useMutation, B.notificationOutput.listTargetKinds.useQuery, B.notificationOutput.listTargets.useQuery, B.notificationOutput.getTarget.useQuery, B.notificationOutput.discoverTargets.useQuery, B.notificationOutput.probeTargetConfig.useMutation, B.notificationOutput.send.useMutation, B.notificationOutput.testTarget.useMutation, B.notificationOutput.upsertTarget.useMutation, B.notificationOutput.deleteTarget.useMutation, B.notificationOutput.setTargetEnabled.useMutation, B.notificationRules.listRules.useQuery, B.notificationRules.getRule.useQuery, B.notificationRules.createRule.useMutation, B.notificationRules.updateRule.useMutation, B.notificationRules.deleteRule.useMutation, B.notificationRules.setRuleEnabled.useMutation, B.notificationRules.listSequences.useQuery, B.notificationRules.getSequence.useQuery, B.notificationRules.createSequence.useMutation, B.notificationRules.updateSequence.useMutation, B.notificationRules.deleteSequence.useMutation, B.notificationRules.getClipRetentionAsks.useQuery, B.notificationRules.listDeviceMutes.useQuery, B.notificationRules.setDeviceMuted.useMutation, B.notificationRules.testRule.useMutation, B.notificationRules.previewStateSummary.useMutation, B.notificationRules.getConditionCatalog.useQuery, B.notificationRules.getTemplateCatalog.useQuery, B.notificationRules.previewTemplate.useMutation, B.notificationRules.getHistory.useQuery, B.notificationRules.getRuleLastRuns.useQuery, B.notificationRules.resolveArtifactUrl.useQuery, B.notificationRules.listSnoozes.useQuery, B.notificationRules.createSnooze.useMutation, B.notificationRules.cancelSnooze.useMutation, B.notificationRules.getAlarmConfig.useQuery, B.notificationRules.setAlarmConfig.useMutation, B.notificationRules.createAlarmProfile.useMutation, B.notificationRules.renameAlarmProfile.useMutation, B.notificationRules.deleteAlarmProfile.useMutation, B.notificationRules.activateAlarmProfile.useMutation, B.notificationRules.getAlarmSensors.useQuery, B.notifier.send.useMutation, B.notifier.cancel.useMutation, B.notifier.getStatus.useQuery, B.numericSensor.getStatus.useQuery, B.oidcConnections.connectionFormSchema.useQuery, B.oidcConnections.listConnections.useQuery, B.oidcConnections.createConnection.useMutation, B.oidcConnections.updateConnection.useMutation, B.oidcConnections.deleteConnection.useMutation, B.osd.setOverlay.useMutation, B.osd.getStatus.useQuery, B.osdManager.getDeviceOsd.useQuery, B.osdManager.getSourceCatalog.useQuery, B.osdManager.getConditionSupport.useQuery, B.osdManager.setSlotBinding.useMutation, B.osdManager.clearSlotBinding.useMutation, B.osdManager.setSlotCameraEnabled.useMutation, B.osdManager.copyDeviceConfiguration.useMutation, B.osdManager.previewSlot.useMutation, B.osdManager.renderDevice.useMutation, B.osdManager.listTemplates.useQuery, B.osdManager.upsertTemplate.useMutation, B.osdManager.deleteTemplate.useMutation, B.petFeeder.feed.useMutation, B.petFeeder.cancelFeed.useMutation, B.petFeeder.resetDesiccant.useMutation, B.petFeeder.markFoodReplenished.useMutation, B.petFeeder.callPet.useMutation, B.petFeeder.playSound.useMutation, B.petFeeder.setChildLock.useMutation, B.petFeeder.setIndicatorLight.useMutation, B.petFeeder.setFeedSound.useMutation, B.petFeeder.setVolume.useMutation, B.petFeeder.getStatus.useQuery, B.pipelineAnalytics.getActiveTracks.useQuery, B.pipelineAnalytics.getTrack.useQuery, B.pipelineAnalytics.listTracks.useQuery, B.pipelineAnalytics.listRecentTracks.useQuery, B.pipelineAnalytics.clearTracks.useMutation, B.pipelineAnalytics.getMotionEvents.useQuery, B.pipelineAnalytics.getObjectEvents.useQuery, B.pipelineAnalytics.getAudioEvents.useQuery, B.pipelineAnalytics.listEventKinds.useQuery, B.pipelineAnalytics.listEventKindsBatch.useQuery, B.pipelineAnalytics.getSensorEvents.useQuery, B.pipelineAnalytics.getKeyEvents.useQuery, B.pipelineAnalytics.getKeyEventsBatch.useQuery, B.pipelineAnalytics.readLongTermSeries.useQuery, B.pipelineAnalytics.getEventDensity.useQuery, B.pipelineAnalytics.getEventDensityBatch.useQuery, B.pipelineAnalytics.pruneEventsBefore.useMutation, B.pipelineAnalytics.pruneTracksBefore.useMutation, B.pipelineAnalytics.wipeAllAnalytics.useMutation, B.pipelineAnalytics.reconcileFromDisk.useMutation, B.pipelineAnalytics.deleteTracks.useMutation, B.pipelineAnalytics.setTrackFlags.useMutation, B.pipelineAnalytics.listArchivedDebugNotes.useQuery, B.pipelineAnalytics.setTrackRelation.useMutation, B.pipelineAnalytics.clearTrackRelation.useMutation, B.pipelineAnalytics.setTrackPurity.useMutation, B.pipelineAnalytics.listTrackRelations.useQuery, B.pipelineAnalytics.listBirthDecisions.useQuery, B.pipelineAnalytics.getEventStoreFootprint.useQuery, B.pipelineAnalytics.getEventMediaFootprintByKind.useQuery, B.pipelineAnalytics.pruneEvents.useMutation, B.pipelineAnalytics.deleteDeviceEvents.useMutation, B.pipelineAnalytics.pauseForStorageMigration.useMutation, B.pipelineAnalytics.resumeForStorageMigration.useMutation, B.pipelineAnalytics.refreshStorageLocationsForMigration.useMutation, B.pipelineAnalytics.startStorageMigrationMove.useMutation, B.pipelineAnalytics.getStorageMigrationMoveStatus.useQuery, B.pipelineAnalytics.cancelStorageMigrationMove.useMutation, B.pipelineAnalytics.relocateMedia.useMutation, B.pipelineAnalytics.countUnstampedEventMedia.useQuery, B.pipelineAnalytics.countRelocatableMedia.useQuery, B.pipelineAnalytics.listRelocateMediaJobs.useQuery, B.pipelineAnalytics.cancelRelocateMedia.useMutation, B.pipelineAnalytics.listOpsLog.useQuery, B.pipelineAnalytics.reclaimDebugMedia.useMutation, B.pipelineAnalytics.getMediaReclaimStatus.useQuery, B.pipelineAnalytics.getTrainingExportSummary.useQuery, B.pipelineAnalytics.getTrainingExportUrl.useQuery, B.pipelineAnalytics.listRetrainStaging.useQuery, B.pipelineAnalytics.listRetrainCorpusPage.useQuery, B.pipelineAnalytics.getRetrainCorpusKpi.useQuery, B.pipelineAnalytics.listRetrainFrames.useQuery, B.pipelineAnalytics.selectRetrainFrames.useMutation, B.pipelineAnalytics.deselectRetrainFrame.useMutation, B.pipelineAnalytics.getRetrainFrameImage.useQuery, B.pipelineAnalytics.proposeRetrainAnnotations.useMutation, B.pipelineAnalytics.listRetrainAnnotations.useQuery, B.pipelineAnalytics.saveRetrainAnnotations.useMutation, B.pipelineAnalytics.backfillRetrainOrigins.useMutation, B.pipelineAnalytics.completeRetrainTrack.useMutation, B.pipelineAnalytics.restageRetrainTrack.useMutation, B.pipelineAnalytics.getRetrainExportUrl.useQuery, B.pipelineAnalytics.setRetrainFrameComplete.useMutation, B.pipelineAnalytics.writeRetrainArchive.useMutation, B.pipelineAnalytics.offerRetrainArchive.useMutation, B.pipelineAnalytics.listRetrainAssistProfiles.useQuery, B.pipelineAnalytics.proposeRetrainAnnotationsWithLlm.useMutation, B.pipelineAnalytics.createRetrainCollection.useMutation, B.pipelineAnalytics.listRetrainCollections.useQuery, B.pipelineAnalytics.resolveRetrainTrainingCorpus.useQuery, B.pipelineAnalytics.renameRetrainCollection.useMutation, B.pipelineAnalytics.deleteRetrainCollection.useMutation, B.pipelineAnalytics.addRetrainFrameFromRecording.useMutation, B.pipelineAnalytics.addRetrainFramesToCollection.useMutation, B.pipelineAnalytics.removeRetrainFrameFromCollection.useMutation, B.pipelineAnalytics.listRetrainCollectionFrames.useQuery, B.pipelineAnalytics.getEventMedia.useQuery, B.pipelineAnalytics.getTrackMedia.useQuery, B.pipelineAnalytics.listTrackMedia.useQuery, B.pipelineAnalytics.listEventMedia.useQuery, B.pipelineAnalytics.ownersWithMedia.useQuery, B.pipelineAnalytics.searchObjectEvents.useQuery, B.pipelineAnalytics.wipeObjectEmbeddings.useMutation, B.pipelineAnalytics.rebuildObjectEmbeddings.useMutation, B.pipelineAnalytics.getObjectEmbeddingRebuildStatus.useQuery, B.pipelineAnalytics.getDeviceSettingsContribution.useQuery, B.pipelineAnalytics.getDeviceLiveContribution.useQuery, B.pipelineAnalytics.applyDeviceSettingsPatch.useMutation, B.pipelineExecutor.getAvailableEngines.useQuery, B.pipelineExecutor.getSelectedEngine.useQuery, B.pipelineExecutor.getDefaultSteps.useQuery, B.pipelineExecutor.getEngineProvisioning.useQuery, B.pipelineExecutor.getVideoPipelineSteps.useQuery, B.pipelineExecutor.setVideoPipelineSteps.useMutation, B.pipelineExecutor.clearDeviceOverrides.useMutation, B.pipelineExecutor.clearModelBoundDeviceOverrides.useMutation, B.pipelineExecutor.getInferenceDeviceHealth.useQuery, B.pipelineExecutor.rearmInferenceDevice.useMutation, B.pipelineExecutor.getSchema.useQuery, B.pipelineExecutor.getGlobalSteps.useQuery, B.pipelineExecutor.getGlobalPipelineConfig.useQuery, B.pipelineExecutor.getOrchestratorConfigSchema.useQuery, B.pipelineExecutor.validatePipeline.useQuery, B.pipelineExecutor.getCapabilities.useQuery, B.pipelineExecutor.getAddonModels.useQuery, B.pipelineExecutor.downloadModel.useMutation, B.pipelineExecutor.deleteModel.useMutation, B.pipelineExecutor.runPipeline.useMutation, B.pipelineExecutor.runPipelineBatch.useMutation, B.pipelineExecutor.cacheFrameInPool.useMutation, B.pipelineExecutor.inferCached.useMutation, B.pipelineExecutor.uncacheFrame.useMutation, B.pipelineExecutor.getEffectiveTuning.useQuery, B.pipelineExecutor.listLoadedEngines.useQuery, B.pipelineExecutor.spinEngine.useMutation, B.pipelineExecutor.killEngine.useMutation, B.pipelineExecutor.listReferenceImages.useQuery, B.pipelineExecutor.getReferenceImage.useQuery, B.pipelineExecutor.getReferenceAudioFiles.useQuery, B.pipelineExecutor.getReferenceAudio.useQuery, B.pipelineExecutor.getAudioCapabilities.useQuery, B.pipelineExecutor.runAudioTest.useMutation, B.pipelineExecutor.getDetectionConfigSchema.useQuery, B.pipelineOrchestrator.requestOccupancyLook.useMutation, B.pipelineOrchestrator.pauseForStorageMigration.useMutation, B.pipelineOrchestrator.resumeForStorageMigration.useMutation, B.pipelineOrchestrator.assignPipeline.useMutation, B.pipelineOrchestrator.unassignPipeline.useMutation, B.pipelineOrchestrator.setPipelineDevicePin.useMutation, B.pipelineOrchestrator.getPipelineDevicePin.useQuery, B.pipelineOrchestrator.rebalance.useMutation, B.pipelineOrchestrator.getPipelineAssignments.useQuery, B.pipelineOrchestrator.getPipelineAssignment.useQuery, B.pipelineOrchestrator.getAgentLoad.useQuery, B.pipelineOrchestrator.getClusterModelChoice.useQuery, B.pipelineOrchestrator.getGlobalMetrics.useQuery, B.pipelineOrchestrator.getCameraMetrics.useQuery, B.pipelineOrchestrator.getCapabilityBindings.useQuery, B.pipelineOrchestrator.setCapabilityBinding.useMutation, B.pipelineOrchestrator.getIngestOwner.useQuery, B.pipelineOrchestrator.assignAudio.useMutation, B.pipelineOrchestrator.unassignAudio.useMutation, B.pipelineOrchestrator.getAudioAssignment.useQuery, B.pipelineOrchestrator.getAudioNodeLoad.useQuery, B.pipelineOrchestrator.getAudioAssignments.useQuery, B.pipelineOrchestrator.getAgentSettings.useQuery;
4852
+ B.deviceManager.getChildren.useQuery, B.deviceManager.getChildrenBatch.useQuery, B.deviceManager.getLinkedDevices.useQuery, B.deviceManager.getLinkedDevicesBatch.useQuery, B.deviceManager.getStreamSources.useQuery, B.deviceManager.getConfigSchema.useQuery, B.deviceManager.getSettingsSchema.useQuery, B.deviceManager.updateConfig.useMutation, B.deviceManager.enable.useMutation, B.deviceManager.disable.useMutation, B.deviceManager.remove.useMutation, B.deviceManager.listDeletedSince.useQuery, B.deviceManager.cleanupDeletedDevicesData.useMutation, B.deviceManager.removeByIntegration.useMutation, B.deviceManager.getStreamProfileMap.useQuery, B.deviceManager.setStreamProfileMap.useMutation, B.deviceManager.probeStreams.useMutation, B.deviceManager.getBindings.useQuery, B.deviceManager.getBindingsBatch.useQuery, B.deviceManager.getAllBindings.useQuery, B.deviceManager.listDeviceIdsByCaps.useQuery, B.deviceManager.setWrapperActive.useMutation, B.deviceManager.getWrapperActivation.useQuery, B.deviceManager.listWrappersForCap.useQuery, B.deviceManager.listBindableCapsForDeviceType.useQuery, B.deviceManager.getDeviceSettingsAggregate.useQuery, B.deviceManager.getDeviceLiveInfoAggregate.useQuery, B.deviceManager.getDeviceAggregate.useQuery, B.deviceManager.runDeviceAction.useMutation, B.deviceManager.updateDeviceField.useMutation, B.deviceManager.updateDeviceFieldsBatch.useMutation, B.deviceManager.discoverDevices.useMutation, B.deviceManager.adoptDevice.useMutation, B.deviceManager.getCreationSchema.useQuery, B.deviceManager.createDevice.useMutation, B.deviceManager.testCreationField.useMutation, B.deviceManager.adoptionListCandidateFilters.useQuery, B.deviceManager.adoptionListCandidates.useQuery, B.deviceManager.adoptionRefresh.useMutation, B.deviceManager.adoptionAdopt.useMutation, B.deviceManager.adoptionRelease.useMutation, B.deviceManager.adoptionStartJob.useMutation, B.deviceManager.adoptionListJobs.useQuery, B.deviceManager.adoptionCancelJob.useMutation, B.deviceManager.adoptionResync.useMutation, B.deviceManager.discoveryProviders.useQuery, B.deviceManager.discoverAllProviders.useMutation, B.deviceManager.discoverProvider.useMutation, B.deviceManager.providerCreationType.useQuery, B.deviceManager.providerDiscoveryParamsSchema.useQuery, B.deviceManager.testField.useMutation, B.deviceManager.getDeviceStatusAggregate.useQuery, B.deviceManager.getDeviceStatusAggregateBatch.useQuery, B.deviceOps.getStreamSources.useQuery, B.deviceOps.getConfigEntries.useQuery, B.deviceOps.setConfig.useMutation, B.deviceOps.runAction.useMutation, B.deviceOps.removeDevice.useMutation, B.deviceOps.getSettingsSchema.useQuery, B.deviceOps.getRawState.useQuery, B.deviceProvider.start.useMutation, B.deviceProvider.stop.useMutation, B.deviceProvider.getStatus.useQuery, B.deviceProvider.getDevices.useQuery, B.deviceProvider.reloadDevice.useMutation, B.deviceProvider.supportsDiscovery.useQuery, B.deviceProvider.discoverDevices.useMutation, B.deviceProvider.getDiscoveryParamsSchema.useQuery, B.deviceProvider.getManualCreationType.useQuery, B.deviceProvider.adoptDiscoveredDevice.useMutation, B.deviceProvider.supportsManualCreation.useQuery, B.deviceProvider.getChildCreationSchema.useQuery, B.deviceProvider.createDevice.useMutation, B.deviceProvider.testCreationField.useMutation, B.deviceState.getSnapshot.useQuery, B.deviceState.getCapSlice.useQuery, B.deviceState.getAllSnapshots.useQuery, B.deviceState.setCapSlice.useMutation, B.deviceState.claimFields.useMutation, B.deviceState.patchOwnedFields.useMutation, B.deviceState.releaseClaim.useMutation, B.deviceState.listClaims.useQuery, B.deviceState.getNativeCapSlice.useQuery, B.deviceStatus.getStatus.useQuery, B.dishwasher.start.useMutation, B.dishwasher.pause.useMutation, B.dishwasher.resume.useMutation, B.dishwasher.stop.useMutation, B.dishwasher.setProgram.useMutation, B.dishwasher.setPower.useMutation, B.dishwasher.setHalfLoad.useMutation, B.dishwasher.setHygienePlus.useMutation, B.dishwasher.setExtraDry.useMutation, B.dishwasher.setIntensiveZone.useMutation, B.dishwasher.setVarioSpeedPlus.useMutation, B.dishwasher.setChildLock.useMutation, B.dishwasher.setOption.useMutation, B.dishwasher.getOptions.useQuery, B.dishwasher.getStatus.useQuery, B.doorbell.getStatus.useQuery, B.enumSensor.getStatus.useQuery, B.eventEmitter.getStatus.useQuery, B.faceGallery.listIdentities.useQuery, B.faceGallery.createIdentity.useMutation, B.faceGallery.renameIdentity.useMutation, B.faceGallery.deleteIdentity.useMutation, B.faceGallery.listIdentitySamples.useQuery, B.faceGallery.auditIdentitySamples.useQuery, B.faceGallery.removeSample.useMutation, B.faceGallery.listRecentFaces.useQuery, B.faceGallery.getFaceByTrack.useQuery, B.faceGallery.getFaceMedia.useQuery, B.faceGallery.assignFace.useMutation, B.faceGallery.unassignFace.useMutation, B.faceGallery.deleteFace.useMutation, B.faceGallery.assignFaces.useMutation, B.faceGallery.unassignFaces.useMutation, B.faceGallery.suggestFaceClusters.useQuery, B.fanControl.setPercentage.useMutation, B.fanControl.setPreset.useMutation, B.fanControl.setDirection.useMutation, B.fanControl.setOscillating.useMutation, B.fanControl.getStatus.useQuery, B.featureProbe.getStatus.useQuery, B.flood.getStatus.useQuery, B.gas.getStatus.useQuery, B.heatingValve.getStatus.useQuery, B.humidifier.setOn.useMutation, B.humidifier.setTargetHumidity.useMutation, B.humidifier.setMode.useMutation, B.humidifier.getStatus.useQuery, B.humiditySensor.getStatus.useQuery, B.image.getStatus.useQuery, B.imageSettings.getOptions.useQuery, B.imageSettings.setSettings.useMutation, B.imageSettings.getStatus.useQuery, B.integrations.list.useQuery, B.integrations.get.useQuery, B.integrations.getByAddonId.useQuery, B.integrations.create.useMutation, B.integrations.update.useMutation, B.integrations.delete.useMutation, B.integrations.getSettings.useQuery, B.integrations.setSettings.useMutation, B.integrations.getAvailableTypes.useQuery, B.integrations.testConnection.useMutation, B.intercom.startSession.useMutation, B.intercom.handleAnswer.useMutation, B.intercom.stopSession.useMutation, B.intercom.startTalkSession.useMutation, B.intercom.pushTalkAudio.useMutation, B.intercom.endTalkSession.useMutation, B.intercom.getStatus.useQuery, B.keychainAdmin.status.useQuery, B.keychainAdmin.listSecrets.useQuery, B.keychainAdmin.listAudit.useQuery, B.keychainAdmin.reveal.useMutation, B.keychainAdmin.setSystemSecret.useMutation, B.keychainAdmin.importSecret.useMutation, B.keychainAdmin.deleteOrphans.useMutation, B.keychainAdmin.rotateMasterKey.useMutation, B.keychainAdmin.purgeRetiredKeys.useMutation, B.keychainAdmin.downloadRecoveryKey.useMutation, B.keychainAdmin.resetKeychain.useMutation, B.keychainAdmin.resetReport.useQuery, B.keychainAdmin.acknowledgeReset.useMutation, B.lawnMowerControl.startMowing.useMutation, B.lawnMowerControl.pause.useMutation, B.lawnMowerControl.dock.useMutation, B.lawnMowerControl.getStatus.useQuery, B.llm.generate.useMutation, B.llm.generateVision.useMutation, B.llm.cancel.useMutation, B.llm.listProfileKinds.useQuery, B.llm.listProfiles.useQuery, B.llm.upsertProfile.useMutation, B.llm.migrateRawSecrets.useMutation, B.llm.deleteProfile.useMutation, B.llm.testProfile.useMutation, B.llm.listModels.useMutation, B.llm.getDefaults.useQuery, B.llm.setDefault.useMutation, B.llm.getUsage.useQuery, B.llm.listModelCatalog.useQuery, B.llm.listRuntimeNodes.useQuery, B.llm.listNodeModels.useQuery, B.llm.resolveModelRef.useMutation, B.llm.installModel.useMutation, B.llm.deleteModel.useMutation, B.llm.getRuntimeStatus.useQuery, B.llm.startRuntime.useMutation, B.llm.stopRuntime.useMutation, B.localNetwork.list.useQuery, B.localNetwork.getPreferred.useQuery, B.localNetwork.getConnectionEndpoints.useQuery, B.localNetwork.getNotificationEndpoint.useQuery, B.localNetwork.setNotificationEndpoint.useMutation, B.localNetwork.getViewerEndpoints.useQuery, B.localNetwork.setViewerEndpoints.useMutation, B.localNetwork.getAddresses.useQuery, B.localNetwork.addCustomAddress.useMutation, B.localNetwork.removeCustomAddress.useMutation, B.localNetwork.setAddressRole.useMutation, B.localNetwork.getHubAddresses.useQuery, B.localNetwork.getAllowedAddresses.useQuery, B.localNetwork.setAllowedAddresses.useMutation, B.localNetwork.resetAllowlistToBestMatch.useMutation, B.localNetwork.getTlsStatus.useQuery, B.localNetwork.regenerateCertificate.useMutation, B.localNetwork.uploadCertificate.useMutation, B.localNetwork.downloadCa.useQuery, B.localNetwork.useStoredUploadedCertificate.useMutation, B.localNetwork.revertToGeneratedCertificate.useMutation, B.lockControl.lock.useMutation, B.lockControl.unlock.useMutation, B.lockControl.open.useMutation, B.lockControl.getStatus.useQuery, B.mediaPlayer.play.useMutation, B.mediaPlayer.pause.useMutation, B.mediaPlayer.stop.useMutation, B.mediaPlayer.next.useMutation, B.mediaPlayer.previous.useMutation, B.mediaPlayer.seek.useMutation, B.mediaPlayer.setVolume.useMutation, B.mediaPlayer.setMute.useMutation, B.mediaPlayer.setShuffle.useMutation, B.mediaPlayer.setRepeat.useMutation, B.mediaPlayer.selectSource.useMutation, B.mediaPlayer.playMedia.useMutation, B.mediaPlayer.getStatus.useQuery, B.meshNetwork.getStatus.useQuery, B.meshNetwork.join.useMutation, B.meshNetwork.startLogin.useMutation, B.meshNetwork.leave.useMutation, B.meshNetwork.logout.useMutation, B.meshNetwork.listPeers.useQuery, B.meshNetwork.testConnection.useMutation, B.metricsProvider.collectSnapshot.useQuery, B.metricsProvider.getCached.useQuery, B.metricsProvider.getCurrent.useQuery, B.metricsProvider.getDiskSpace.useQuery, B.metricsProvider.getGpuInfo.useQuery, B.metricsProvider.getCpuTemperature.useQuery, B.metricsProvider.getProcessStats.useQuery, B.metricsProvider.listAddonInstances.useQuery, B.metricsProvider.getAddonStats.useQuery, B.metricsProvider.listNodeProcesses.useQuery, B.metricsProvider.getLoadSeries.useQuery, B.motion.isDetected.useQuery, B.motion.getStatus.useQuery, B.motionDetection.analyze.useMutation, B.motionDetection.removeCamera.useMutation, B.motionDetection.reset.useMutation, B.motionDetection.getDeviceSettingsContribution.useQuery, B.motionDetection.getDeviceLiveContribution.useQuery, B.motionDetection.applyDeviceSettingsPatch.useMutation, B.motionTrigger.setMotionTrigger.useMutation, B.motionTrigger.getStatus.useQuery, B.motionZones.getOptions.useQuery, B.motionZones.setZone.useMutation, B.motionZones.getStatus.useQuery, B.mqttBroker.listBrokers.useQuery, B.mqttBroker.getBrokerConfig.useQuery, B.mqttBroker.addBroker.useMutation, B.mqttBroker.removeBroker.useMutation, B.mqttBroker.testConnection.useMutation, B.mqttBroker.startEmbeddedBroker.useMutation, B.mqttBroker.stopEmbeddedBroker.useMutation, B.mqttBroker.getStatus.useQuery, B.nativeObjectDetection.getOptions.useQuery, B.nativeObjectDetection.setSettings.useMutation, B.nativeObjectDetection.setEnabled.useMutation, B.nativeObjectDetection.getStatus.useQuery, B.navigation.move.useMutation, B.navigation.stop.useMutation, B.navigation.goToPoint.useMutation, B.navigation.listActions.useQuery, B.navigation.runAction.useMutation, B.navigation.playSound.useMutation, B.navigation.setLightOn.useMutation, B.navigation.setLightMode.useMutation, B.navigation.setLightLevel.useMutation, B.navigation.getFeatures.useQuery, B.navigation.getStatus.useQuery, B.networkAccess.start.useMutation, B.networkAccess.stop.useMutation, B.networkAccess.getEndpoint.useQuery, B.networkAccess.getStatus.useQuery, B.networkAccess.listEndpoints.useQuery, B.networkLink.getStatus.useQuery, B.networkQuality.getDeviceStats.useQuery, B.networkQuality.getAllStats.useQuery, B.networkQuality.reportClientStats.useMutation, B.nodes.topology.useQuery, B.nodes.directory.useQuery, B.nodes.deployAddon.useMutation, B.nodes.undeployAddon.useMutation, B.nodes.restartAddon.useMutation, B.nodes.restartProcess.useMutation, B.nodes.restartNode.useMutation, B.nodes.shutdownNode.useMutation, B.nodes.renameNode.useMutation, B.nodes.clusterAddonStatus.useQuery, B.nodes.getCapUsageGraph.useQuery, B.nodes.getNodeAddons.useQuery, B.nodes.setProcessLogLevel.useMutation, B.nodes.executeQuery.useMutation, B.notificationOutput.listTargetKinds.useQuery, B.notificationOutput.listTargets.useQuery, B.notificationOutput.getTarget.useQuery, B.notificationOutput.discoverTargets.useQuery, B.notificationOutput.probeTargetConfig.useMutation, B.notificationOutput.send.useMutation, B.notificationOutput.testTarget.useMutation, B.notificationOutput.upsertTarget.useMutation, B.notificationOutput.deleteTarget.useMutation, B.notificationOutput.setTargetEnabled.useMutation, B.notificationRules.listRules.useQuery, B.notificationRules.getRule.useQuery, B.notificationRules.createRule.useMutation, B.notificationRules.updateRule.useMutation, B.notificationRules.deleteRule.useMutation, B.notificationRules.setRuleEnabled.useMutation, B.notificationRules.listSequences.useQuery, B.notificationRules.getSequence.useQuery, B.notificationRules.createSequence.useMutation, B.notificationRules.updateSequence.useMutation, B.notificationRules.deleteSequence.useMutation, B.notificationRules.getClipRetentionAsks.useQuery, B.notificationRules.listDeviceMutes.useQuery, B.notificationRules.setDeviceMuted.useMutation, B.notificationRules.testRule.useMutation, B.notificationRules.previewStateSummary.useMutation, B.notificationRules.getConditionCatalog.useQuery, B.notificationRules.getTemplateCatalog.useQuery, B.notificationRules.previewTemplate.useMutation, B.notificationRules.getHistory.useQuery, B.notificationRules.getRuleLastRuns.useQuery, B.notificationRules.resolveArtifactUrl.useQuery, B.notificationRules.listSnoozes.useQuery, B.notificationRules.createSnooze.useMutation, B.notificationRules.cancelSnooze.useMutation, B.notificationRules.getAlarmConfig.useQuery, B.notificationRules.setAlarmConfig.useMutation, B.notificationRules.createAlarmProfile.useMutation, B.notificationRules.renameAlarmProfile.useMutation, B.notificationRules.deleteAlarmProfile.useMutation, B.notificationRules.activateAlarmProfile.useMutation, B.notificationRules.getAlarmSensors.useQuery, B.notifier.send.useMutation, B.notifier.cancel.useMutation, B.notifier.getStatus.useQuery, B.numericSensor.getStatus.useQuery, B.oidcConnections.connectionFormSchema.useQuery, B.oidcConnections.listConnections.useQuery, B.oidcConnections.createConnection.useMutation, B.oidcConnections.updateConnection.useMutation, B.oidcConnections.deleteConnection.useMutation, B.osd.setOverlay.useMutation, B.osd.getStatus.useQuery, B.osdManager.getDeviceOsd.useQuery, B.osdManager.getSourceCatalog.useQuery, B.osdManager.getConditionSupport.useQuery, B.osdManager.setSlotBinding.useMutation, B.osdManager.clearSlotBinding.useMutation, B.osdManager.setSlotCameraEnabled.useMutation, B.osdManager.copyDeviceConfiguration.useMutation, B.osdManager.previewSlot.useMutation, B.osdManager.renderDevice.useMutation, B.osdManager.listTemplates.useQuery, B.osdManager.upsertTemplate.useMutation, B.osdManager.deleteTemplate.useMutation, B.petFeeder.feed.useMutation, B.petFeeder.cancelFeed.useMutation, B.petFeeder.resetDesiccant.useMutation, B.petFeeder.markFoodReplenished.useMutation, B.petFeeder.callPet.useMutation, B.petFeeder.playSound.useMutation, B.petFeeder.setChildLock.useMutation, B.petFeeder.setIndicatorLight.useMutation, B.petFeeder.setFeedSound.useMutation, B.petFeeder.setVolume.useMutation, B.petFeeder.getStatus.useQuery, B.pipelineAnalytics.getActiveTracks.useQuery, B.pipelineAnalytics.getTrack.useQuery, B.pipelineAnalytics.listTracks.useQuery, B.pipelineAnalytics.listRecentTracks.useQuery, B.pipelineAnalytics.clearTracks.useMutation, B.pipelineAnalytics.getMotionEvents.useQuery, B.pipelineAnalytics.getObjectEvents.useQuery, B.pipelineAnalytics.getAudioEvents.useQuery, B.pipelineAnalytics.listEventKinds.useQuery, B.pipelineAnalytics.listEventKindsBatch.useQuery, B.pipelineAnalytics.getSensorEvents.useQuery, B.pipelineAnalytics.getKeyEvents.useQuery, B.pipelineAnalytics.getKeyEventsBatch.useQuery, B.pipelineAnalytics.readLongTermSeries.useQuery, B.pipelineAnalytics.getEventDensity.useQuery, B.pipelineAnalytics.getEventDensityBatch.useQuery, B.pipelineAnalytics.pruneEventsBefore.useMutation, B.pipelineAnalytics.pruneTracksBefore.useMutation, B.pipelineAnalytics.wipeAllAnalytics.useMutation, B.pipelineAnalytics.reconcileFromDisk.useMutation, B.pipelineAnalytics.deleteTracks.useMutation, B.pipelineAnalytics.setTrackFlags.useMutation, B.pipelineAnalytics.listArchivedDebugNotes.useQuery, B.pipelineAnalytics.setTrackRelation.useMutation, B.pipelineAnalytics.clearTrackRelation.useMutation, B.pipelineAnalytics.setTrackPurity.useMutation, B.pipelineAnalytics.listTrackRelations.useQuery, B.pipelineAnalytics.listBirthDecisions.useQuery, B.pipelineAnalytics.getEventStoreFootprint.useQuery, B.pipelineAnalytics.getEventMediaFootprintByKind.useQuery, B.pipelineAnalytics.pruneEvents.useMutation, B.pipelineAnalytics.deleteDeviceEvents.useMutation, B.pipelineAnalytics.pauseForStorageMigration.useMutation, B.pipelineAnalytics.resumeForStorageMigration.useMutation, B.pipelineAnalytics.refreshStorageLocationsForMigration.useMutation, B.pipelineAnalytics.startStorageMigrationMove.useMutation, B.pipelineAnalytics.getStorageMigrationMoveStatus.useQuery, B.pipelineAnalytics.cancelStorageMigrationMove.useMutation, B.pipelineAnalytics.relocateMedia.useMutation, B.pipelineAnalytics.countUnstampedEventMedia.useQuery, B.pipelineAnalytics.countRelocatableMedia.useQuery, B.pipelineAnalytics.listRelocateMediaJobs.useQuery, B.pipelineAnalytics.cancelRelocateMedia.useMutation, B.pipelineAnalytics.listOpsLog.useQuery, B.pipelineAnalytics.reclaimDebugMedia.useMutation, B.pipelineAnalytics.getMediaReclaimStatus.useQuery, B.pipelineAnalytics.getTrainingExportSummary.useQuery, B.pipelineAnalytics.getTrainingExportUrl.useQuery, B.pipelineAnalytics.listRetrainStaging.useQuery, B.pipelineAnalytics.listRetrainCorpusPage.useQuery, B.pipelineAnalytics.getRetrainCorpusKpi.useQuery, B.pipelineAnalytics.listRetrainFrames.useQuery, B.pipelineAnalytics.selectRetrainFrames.useMutation, B.pipelineAnalytics.deselectRetrainFrame.useMutation, B.pipelineAnalytics.getRetrainFrameImage.useQuery, B.pipelineAnalytics.proposeRetrainAnnotations.useMutation, B.pipelineAnalytics.listRetrainAnnotations.useQuery, B.pipelineAnalytics.saveRetrainAnnotations.useMutation, B.pipelineAnalytics.backfillRetrainOrigins.useMutation, B.pipelineAnalytics.completeRetrainTrack.useMutation, B.pipelineAnalytics.restageRetrainTrack.useMutation, B.pipelineAnalytics.getRetrainExportUrl.useQuery, B.pipelineAnalytics.setRetrainFrameComplete.useMutation, B.pipelineAnalytics.writeRetrainArchive.useMutation, B.pipelineAnalytics.offerRetrainArchive.useMutation, B.pipelineAnalytics.listRetrainAssistProfiles.useQuery, B.pipelineAnalytics.proposeRetrainAnnotationsWithLlm.useMutation, B.pipelineAnalytics.createRetrainCollection.useMutation, B.pipelineAnalytics.listRetrainCollections.useQuery, B.pipelineAnalytics.resolveRetrainTrainingCorpus.useQuery, B.pipelineAnalytics.renameRetrainCollection.useMutation, B.pipelineAnalytics.deleteRetrainCollection.useMutation, B.pipelineAnalytics.addRetrainFrameFromRecording.useMutation, B.pipelineAnalytics.addRetrainFramesToCollection.useMutation, B.pipelineAnalytics.removeRetrainFrameFromCollection.useMutation, B.pipelineAnalytics.listRetrainCollectionFrames.useQuery, B.pipelineAnalytics.getEventMedia.useQuery, B.pipelineAnalytics.getTrackMedia.useQuery, B.pipelineAnalytics.listTrackMedia.useQuery, B.pipelineAnalytics.listEventMedia.useQuery, B.pipelineAnalytics.ownersWithMedia.useQuery, B.pipelineAnalytics.searchObjectEvents.useQuery, B.pipelineAnalytics.wipeObjectEmbeddings.useMutation, B.pipelineAnalytics.rebuildObjectEmbeddings.useMutation, B.pipelineAnalytics.getObjectEmbeddingRebuildStatus.useQuery, B.pipelineAnalytics.getDeviceSettingsContribution.useQuery, B.pipelineAnalytics.getDeviceLiveContribution.useQuery, B.pipelineAnalytics.applyDeviceSettingsPatch.useMutation, B.pipelineExecutor.getAvailableEngines.useQuery, B.pipelineExecutor.getSelectedEngine.useQuery, B.pipelineExecutor.getEngineProvisioning.useQuery, B.pipelineExecutor.getVideoPipelineSteps.useQuery, B.pipelineExecutor.setVideoPipelineSteps.useMutation, B.pipelineExecutor.getInferenceDeviceHealth.useQuery, B.pipelineExecutor.rearmInferenceDevice.useMutation, B.pipelineExecutor.getSchema.useQuery, B.pipelineExecutor.getOrchestratorConfigSchema.useQuery, B.pipelineExecutor.validatePipeline.useQuery, B.pipelineExecutor.getCapabilities.useQuery, B.pipelineExecutor.getAddonModels.useQuery, B.pipelineExecutor.downloadModel.useMutation, B.pipelineExecutor.deleteModel.useMutation, B.pipelineExecutor.runPipeline.useMutation, B.pipelineExecutor.runPipelineBatch.useMutation, B.pipelineExecutor.cacheFrameInPool.useMutation, B.pipelineExecutor.inferCached.useMutation, B.pipelineExecutor.uncacheFrame.useMutation, B.pipelineExecutor.getEffectiveTuning.useQuery, B.pipelineExecutor.listLoadedEngines.useQuery, B.pipelineExecutor.spinEngine.useMutation, B.pipelineExecutor.killEngine.useMutation, B.pipelineExecutor.listReferenceImages.useQuery, B.pipelineExecutor.getReferenceImage.useQuery, B.pipelineExecutor.getReferenceAudioFiles.useQuery, B.pipelineExecutor.getReferenceAudio.useQuery, B.pipelineExecutor.getAudioCapabilities.useQuery, B.pipelineExecutor.runAudioTest.useMutation, B.pipelineExecutor.getDetectionConfigSchema.useQuery, B.pipelineOrchestrator.requestOccupancyLook.useMutation, B.pipelineOrchestrator.pauseForStorageMigration.useMutation, B.pipelineOrchestrator.resumeForStorageMigration.useMutation, B.pipelineOrchestrator.assignPipeline.useMutation, B.pipelineOrchestrator.unassignPipeline.useMutation, B.pipelineOrchestrator.setPipelineDevicePin.useMutation, B.pipelineOrchestrator.getPipelineDevicePin.useQuery, B.pipelineOrchestrator.rebalance.useMutation, B.pipelineOrchestrator.getPipelineAssignments.useQuery, B.pipelineOrchestrator.getPipelineAssignment.useQuery, B.pipelineOrchestrator.getAgentLoad.useQuery, B.pipelineOrchestrator.getClusterModelChoice.useQuery, B.pipelineOrchestrator.getGlobalMetrics.useQuery, B.pipelineOrchestrator.getCameraMetrics.useQuery, B.pipelineOrchestrator.getCapabilityBindings.useQuery, B.pipelineOrchestrator.setCapabilityBinding.useMutation, B.pipelineOrchestrator.getIngestOwner.useQuery, B.pipelineOrchestrator.assignAudio.useMutation, B.pipelineOrchestrator.unassignAudio.useMutation, B.pipelineOrchestrator.getAudioAssignment.useQuery, B.pipelineOrchestrator.getAudioNodeLoad.useQuery, B.pipelineOrchestrator.getAudioAssignments.useQuery, B.pipelineOrchestrator.getAgentSettings.useQuery;
4853
4853
  var Ha = B.pipelineOrchestrator.listAgentSettings.useQuery;
4854
4854
  //#endregion
4855
4855
  //#region ../ui-library/src/primitives/badge.tsx
4856
- B.pipelineOrchestrator.removeAgentSettings.useMutation, B.pipelineOrchestrator.setAgentMaxCameras.useMutation, B.pipelineOrchestrator.setAgentCapabilities.useMutation, B.pipelineOrchestrator.setAgentDecodeLimits.useMutation, B.pipelineOrchestrator.setAgentReachableHost.useMutation, B.pipelineOrchestrator.setAgentInferenceDevices.useMutation, B.pipelineOrchestrator.getNodeInferenceDevices.useQuery, B.pipelineOrchestrator.resetNodePipelineDefaults.useMutation, B.pipelineOrchestrator.planAutoTune.useQuery, B.pipelineOrchestrator.applyAutoTune.useMutation, B.pipelineOrchestrator.setLoadBalancingShares.useMutation, B.pipelineOrchestrator.getPlacementStats.useQuery, B.pipelineOrchestrator.suggestShares.useQuery, B.pipelineOrchestrator.getEffectiveShares.useQuery, B.pipelineOrchestrator.setShareSource.useMutation, B.pipelineOrchestrator.getNodeBenchmarkPreflight.useQuery, B.pipelineOrchestrator.startNodeBenchmark.useMutation, B.pipelineOrchestrator.getNodeBenchmarkStatus.useQuery, B.pipelineOrchestrator.abortNodeBenchmark.useMutation, B.pipelineOrchestrator.getNodeBenchmarkCandidates.useQuery, B.pipelineOrchestrator.listNodeBenchmarkResults.useQuery, B.pipelineOrchestrator.deleteNodeBenchmarkResult.useMutation, B.pipelineOrchestrator.getCameraSettings.useQuery, B.pipelineOrchestrator.setCameraStepToggle.useMutation, B.pipelineOrchestrator.getCameraDetectionSource.useQuery, B.pipelineOrchestrator.setCameraDetectionSource.useMutation, B.pipelineOrchestrator.getCameraStepOverrides.useQuery, B.pipelineOrchestrator.setCameraStepOverride.useMutation, B.pipelineOrchestrator.setCameraStepSettings.useMutation, B.pipelineOrchestrator.setCameraPipelineForAgent.useMutation, B.pipelineOrchestrator.resolvePipeline.useQuery, B.pipelineOrchestrator.getCameraSwitches.useQuery, B.pipelineOrchestrator.setCameraSwitch.useMutation, B.pipelineOrchestrator.getCameraStatus.useQuery, B.pipelineOrchestrator.getCameraStatuses.useQuery, B.pipelineOrchestrator.setCameraSensors.useMutation, B.pipelineOrchestrator.reconcileFromDisk.useMutation, B.pipelineOrchestrator.getReconcileFromDiskStatus.useQuery, B.pipelineOrchestrator.getDeviceSettingsContribution.useQuery, B.pipelineOrchestrator.getDeviceLiveContribution.useQuery, B.pipelineOrchestrator.applyDeviceSettingsPatch.useMutation, B.pipelineRunner.attachCamera.useMutation, B.pipelineRunner.detachCamera.useMutation, B.pipelineRunner.reportMotion.useMutation, B.pipelineRunner.getLocalLoad.useQuery, B.pipelineRunner.getLocalMetrics.useQuery, B.pipelineRunner.getCameraMetrics.useQuery, B.pipelineRunner.getAllCameraMetrics.useQuery, B.pipelineRunner.getLocalCameras.useQuery, B.pipelineRunner.requestOccupancyBurst.useMutation, B.pipelineRunner.getNativeCrop.useQuery, B.pipelineRunner.runDetailSubtree.useMutation, B.pipelineRunner.runStatelessStep.useMutation, B.pipelineRunner.parkTrackFrame.useMutation, B.pipelineRunner.getParkedTrackFrame.useQuery, B.pipelineRunner.releaseParkedTrackFrames.useMutation, B.pipelineRunner.startNodeBench.useMutation, B.pipelineRunner.getNodeBenchStatus.useQuery, B.pipelineRunner.abortNodeBench.useMutation, B.plateGallery.listPlates.useQuery, B.plateGallery.getPlateByTrack.useQuery, B.plateGallery.getPlateMedia.useQuery, B.plateGallery.searchPlates.useQuery, B.plateGallery.suggestPlateClusters.useQuery, B.plateGallery.correctPlateText.useMutation, B.plateGallery.deletePlate.useMutation, B.plateGallery.listVehicles.useQuery, B.plateGallery.createVehicle.useMutation, B.plateGallery.renameVehicle.useMutation, B.plateGallery.deleteVehicle.useMutation, B.plateGallery.listVehicleSamples.useQuery, B.plateGallery.removeVehicleSample.useMutation, B.plateGallery.assignPlate.useMutation, B.plateGallery.unassignPlate.useMutation, B.plateGallery.assignPlates.useMutation, B.plateGallery.unassignPlates.useMutation, B.powerMeter.getStatus.useQuery, B.presence.getStatus.useQuery, B.pressureSensor.getStatus.useQuery, B.privacyMask.getOptions.useQuery, B.privacyMask.setMask.useMutation, B.privacyMask.setAudioEnabled.useMutation, B.privacyMask.getStatus.useQuery, B.ptz.move.useMutation, B.ptz.continuousMove.useMutation, B.ptz.stop.useMutation, B.ptz.getPresets.useQuery, B.ptz.goToPreset.useMutation, B.ptz.savePreset.useMutation, B.ptz.deletePreset.useMutation, B.ptz.getOptions.useQuery, B.ptz.goHome.useMutation, B.ptz.getHomePreset.useQuery, B.ptz.setHomePreset.useMutation, B.ptz.captureHomeHere.useMutation, B.ptz.getHomeReturn.useQuery, B.ptz.setHomeReturn.useMutation, B.ptz.getPosition.useQuery, B.ptz.setAutofocus.useMutation, B.ptz.getStatus.useQuery, B.ptzAutotrack.getStatus.useQuery, B.ptzAutotrack.setEnabled.useMutation, B.ptzAutotrack.getSettings.useQuery, B.ptzAutotrack.setSettings.useMutation, B.reboot.reboot.useMutation, B.recordEntries.listEntryKinds.useQuery, B.recordEntries.listEntries.useQuery, B.recordEntries.putEntry.useMutation, B.recordEntries.deleteEntry.useMutation, B.recording.listSources.useQuery, B.recording.getAvailability.useQuery, B.recording.getDaysWithRecordings.useQuery, B.recording.getPlayback.useQuery, B.recording.getPlaybackOptions.useQuery, B.recordingArchive.getAvailabilityBatch.useQuery, B.recordingArchive.getDaysWithRecordingsBatch.useQuery, B.recordingArchive.getStorageUsage.useQuery, B.recordingArchive.getDeviceConfig.useQuery, B.recordingArchive.locateSegment.useQuery, B.recordingArchive.readSegmentBytes.useQuery, B.recordingArchive.readGopBytes.useQuery, B.recordingArchive.readWindowBytes.useQuery, B.recordingArchive.setDeviceConfig.useMutation, B.recordingArchive.rescanStorage.useMutation, B.recordingArchive.pruneFootage.useMutation, B.recordingArchive.deleteFootprint.useMutation, B.recordingArchive.listOpsLog.useQuery, B.recordingArchive.renderGif.useMutation, B.recordingArchive.renderClip.useMutation, B.recordingArchive.pauseForStorageMigration.useMutation, B.recordingArchive.resumeForStorageMigration.useMutation, B.recordingArchive.refreshStorageLocationsForMigration.useMutation, B.recordingArchive.startStorageMigrationMove.useMutation, B.recordingArchive.getStorageMigrationMoveStatus.useQuery, B.recordingArchive.cancelStorageMigrationMove.useMutation, B.recordingArchive.relocateFootage.useMutation, B.recordingArchive.listRelocateJobs.useQuery, B.recordingArchive.getRelocateResidue.useQuery, B.recordingArchive.reconcileLedgerAgainstDisk.useMutation, B.recordingArchive.cancelRelocateJob.useMutation, B.recordingArchive.planStorageRebalance.useQuery, B.recordingArchive.startStorageRebalance.useMutation, B.recordingArchive.getPlacement.useQuery, B.recordingArchive.setDevicePlacement.useMutation, B.recordingArchive.getStatus.useQuery, B.recordingArchive.getDeviceSettingsContribution.useQuery, B.recordingArchive.getDeviceLiveContribution.useQuery, B.recordingArchive.applyDeviceSettingsPatch.useMutation, B.recordingExport.createExport.useMutation, B.recordingExport.listExports.useQuery, B.recordingExport.getExport.useQuery, B.recordingExport.cancelExport.useMutation, B.recordingExport.deleteExport.useMutation, B.recordingExport.getDownloadUrl.useQuery, B.recordingExport.readExportBytes.useQuery, B.recordingOnboard.getOptions.useQuery, B.recordingOnboard.setSettings.useMutation, B.recordingOnboard.getStatus.useQuery, B.recordingSignal.getStatus.useQuery, B.sceneMonitor.listScenes.useQuery, B.sceneMonitor.listScenesBatch.useQuery, B.sceneMonitor.createScene.useMutation, B.sceneMonitor.updateScene.useMutation, B.sceneMonitor.deleteScene.useMutation, B.sceneMonitor.captureReference.useMutation, B.sceneMonitor.deleteReference.useMutation, B.sceneMonitor.recheckNow.useMutation, B.sceneMonitor.resetScene.useMutation, B.sceneMonitor.getStatus.useQuery, B.scriptRunner.run.useMutation, B.scriptRunner.stop.useMutation, B.scriptRunner.getStatus.useQuery, B.serverManagement.getServerPackageStatus.useQuery, B.serverManagement.checkServerUpdate.useMutation, B.serverManagement.applyServerUpdate.useMutation, B.serverManagement.rollbackServerUpdate.useMutation, B.serverManagement.restartServer.useMutation, B.settingsStore.get.useQuery, B.settingsStore.set.useMutation, B.settingsStore.query.useQuery, B.settingsStore.upsert.useMutation, B.settingsStore.upsertMany.useMutation, B.settingsStore.insert.useMutation, B.settingsStore.insertMany.useMutation, B.settingsStore.transact.useMutation, B.settingsStore.update.useMutation, B.settingsStore.delete.useMutation, B.settingsStore.deleteWhere.useMutation, B.settingsStore.updateWhere.useMutation, B.settingsStore.count.useQuery, B.settingsStore.aggregate.useQuery, B.settingsStore.histogram.useQuery, B.settingsStore.isEmpty.useQuery, B.settingsStore.declareCollection.useMutation, B.smoke.getStatus.useQuery, B.snapshot.getSnapshot.useQuery, B.snapshot.invalidateCache.useMutation, B.snapshot.getSnapshotOverview.useQuery, B.snapshot.getDebugState.useQuery, B.snapshot.getSnapshotLinks.useQuery, B.snapshot.getStatus.useQuery, B.snapshot.getDeviceSettingsContribution.useQuery, B.snapshot.getDeviceLiveContribution.useQuery, B.snapshot.applyDeviceSettingsPatch.useMutation, B.storage.resolve.useQuery, B.storage.write.useMutation, B.storage.read.useQuery, B.storage.exists.useQuery, B.storage.list.useQuery, B.storage.delete.useMutation, B.storage.getAvailableSpace.useQuery, B.storage.beginUpload.useMutation, B.storage.writeChunk.useMutation, B.storage.finalizeUpload.useMutation, B.storage.abortUpload.useMutation, B.storage.beginDownload.useMutation, B.storage.readChunk.useQuery, B.storage.endDownload.useMutation, B.storage.listLocations.useQuery, B.storage.listLocationDeclarations.useQuery, B.storage.upsertLocation.useMutation, B.storage.deleteLocation.useMutation, B.storage.listDrainProgress.useQuery, B.storage.testLocation.useQuery, B.storage.listProviders.useQuery, B.storage.testConfig.useQuery, B.storageMigration.plan.useQuery, B.storageMigration.start.useMutation, B.storageMigration.status.useQuery, B.storageMigration.cancel.useMutation, B.storageMigration.movers.useQuery, B.storageMigration.moverClearance.useQuery, B.storageMigration.residue.useQuery, B.storageMigration.drain.useMutation, B.storageMigration.cleanupStart.useMutation, B.storageMigration.cleanupStatus.useQuery, B.storageMigration.cleanupCancel.useMutation, B.storageMigration.history.useQuery, B.streamBroker.reportStreamSignal.useMutation, B.streamBroker.publishCameraStream.useMutation, B.streamBroker.retractCameraStream.useMutation, B.streamBroker.assignProfile.useMutation, B.streamBroker.unassignProfile.useMutation, B.streamBroker.forgetDeviceHardware.useMutation, B.streamBroker.renderPreBufferClip.useMutation, B.streamBroker.produceEventMedia.useMutation, B.streamBroker.fetchEventMedia.useMutation, B.streamBroker.listAllCameraStreams.useQuery, B.streamBroker.listAllProfileSlots.useQuery, B.streamBroker.getBrokerStats.useQuery, B.streamBroker.probeStream.useMutation, B.streamBroker.listClients.useQuery, B.streamBroker.getLiveViewerCounts.useQuery, B.streamBroker.killClient.useMutation, B.streamBroker.restartProfile.useMutation, B.streamBroker.getStreamUrl.useQuery, B.streamBroker.getStreamWithCodec.useMutation, B.streamBroker.releaseStreamWithCodec.useMutation, B.streamBroker.acquireEgressTranscode.useMutation, B.streamBroker.releaseEgressTranscode.useMutation, B.streamBroker.subscribeAudioChunks.useMutation, B.streamBroker.pullAudioChunks.useQuery, B.streamBroker.unsubscribeAudioChunks.useMutation, B.streamBroker.setPreBufferDuration.useMutation, B.streamBroker.getPreBufferInfo.useQuery, B.streamBroker.getRtspPort.useQuery, B.streamBroker.getAllRtspEntries.useQuery, B.streamBroker.getRtspEntry.useQuery, B.streamBroker.regenerateRtspToken.useMutation, B.streamBroker.setRtspEnabled.useMutation, B.streamBroker.isRtspEnabled.useQuery, B.streamBroker.getDeviceAudioMute.useQuery, B.streamBroker.setDeviceAudioMute.useMutation, B.streamBroker.getDeviceSettingsContribution.useQuery, B.streamBroker.getDeviceLiveContribution.useQuery, B.streamBroker.applyDeviceSettingsPatch.useMutation, B.streamCatalog.getCatalog.useQuery, B.streamParams.getOptions.useQuery, B.streamParams.setProfile.useMutation, B.streamParams.getConfigSchema.useQuery, B.streamParams.getStatus.useQuery, B.streamSignals.listSignals.useQuery, B.switch.setState.useMutation, B.switch.getStatus.useQuery, B.system.info.useQuery, B.system.health.useQuery, B.system.featureFlags.useQuery, B.system.networkAddresses.useQuery, B.system.getRetentionConfig.useQuery, B.system.setRetentionConfig.useMutation, B.system.forceRetentionCleanup.useMutation, B.system.getSiteLocation.useQuery, B.system.setSiteLocation.useMutation, B.system.detectSiteLocation.useMutation, B.system.getRequestCensus.useQuery, B.system.getLoadContributions.useQuery, B.system.getFailureContributions.useQuery, B.system.getLoggingSettings.useQuery, B.system.setLoggingSettings.useMutation, B.tamper.getStatus.useQuery, B.temperatureSensor.getStatus.useQuery, B.terminalSession.listProfiles.useQuery, B.terminalSession.listInstances.useQuery, B.terminalSession.createInstance.useMutation, B.terminalSession.updateInstance.useMutation, B.terminalSession.deleteInstance.useMutation, B.terminalSession.setInstanceEnabled.useMutation, B.terminalSession.listLegacyCameras.useQuery, B.terminalSession.adoptLegacyMonitor.useMutation, B.terminalSession.listSessions.useQuery, B.terminalSession.openSession.useMutation, B.terminalSession.resize.useMutation, B.terminalSession.pullOutput.useMutation, B.terminalSession.writeInput.useMutation, B.terminalSession.close.useMutation, B.toast.onToast.useSubscription, B.training.listBaseModels.useQuery, B.training.planJob.useQuery, B.training.startJob.useMutation, B.training.startJobBatch.useMutation, B.training.listJobs.useQuery, B.training.getJob.useQuery, B.training.cancelJob.useMutation, B.training.getJobResult.useQuery, B.training.registerResult.useMutation, B.training.canaryResult.useMutation, B.training.rollbackCanary.useMutation, B.training.discardResult.useMutation, B.turnProvider.getTurnServers.useQuery, B.update.installUpdate.useMutation, B.update.getStatus.useQuery, B.userManagement.listUsers.useQuery, B.userManagement.createUser.useMutation, B.userManagement.updateUser.useMutation, B.userManagement.deleteUser.useMutation, B.userManagement.resetPassword.useMutation, B.userManagement.setUserScopes.useMutation, B.userManagement.validateCredentials.useMutation, B.userManagement.setupTotp.useMutation, B.userManagement.confirmTotp.useMutation, B.userManagement.disableTotp.useMutation, B.userManagement.getTotpStatus.useQuery, B.userManagement.migrateRawSecrets.useMutation, B.userManagement.verifyTotp.useMutation, B.userManagement.oauthIssueCode.useMutation, B.userManagement.oauthExchangeCode.useMutation, B.userManagement.oauthRefresh.useMutation, B.userManagement.oauthVerifyAccessToken.useQuery, B.userManagement.listExternalIdentities.useQuery, B.userManagement.findUserByExternalIdentity.useQuery, B.userManagement.unlinkExternalIdentity.useMutation, B.userManagement.listOauthSessions.useQuery, B.userManagement.revokeOauthSession.useMutation, B.vacuumControl.start.useMutation, B.vacuumControl.pause.useMutation, B.vacuumControl.stop.useMutation, B.vacuumControl.returnToBase.useMutation, B.vacuumControl.locate.useMutation, B.vacuumControl.setFanSpeed.useMutation, B.vacuumControl.getStatus.useQuery, B.valve.open.useMutation, B.valve.close.useMutation, B.valve.stop.useMutation, B.valve.setPosition.useMutation, B.valve.getStatus.useQuery, B.vibration.getStatus.useQuery, B.videoclips.listClips.useQuery, B.videoclips.listSources.useQuery, B.videoclips.getClipPlayback.useQuery, B.videoclips.readClipBytes.useQuery, B.videoclips.offerClipBytes.useQuery, B.videoclips.dialClipStream.useQuery, B.videoclips.getPlaybackOptions.useQuery, B.waterHeater.setTargetTemp.useMutation, B.waterHeater.setOperationMode.useMutation, B.waterHeater.setAway.useMutation, B.waterHeater.getStatus.useQuery, B.weather.getStatus.useQuery, B.webrtcSession.listStreams.useQuery, B.webrtcSession.createSession.useMutation, B.webrtcSession.handleOffer.useMutation, B.webrtcSession.handleAnswer.useMutation, B.webrtcSession.addIceCandidate.useMutation, B.webrtcSession.getIceCandidates.useQuery, B.webrtcSession.closeSession.useMutation, B.webrtcSession.hasAdaptiveBitrate.useQuery, B.webrtcSession.getSessionState.useQuery, B.webrtcSession.applyDownlinkProbe.useMutation, B.webrtcSession.getSessionDebug.useQuery, B.zoneAnalytics.getCurrentSnapshot.useQuery, B.zoneAnalytics.getCurrentSnapshotBatch.useQuery, B.zoneAnalytics.getZoneHistory.useQuery, B.zoneAnalytics.getCameraHistory.useQuery, B.zoneAnalytics.getUnzonedHistory.useQuery, B.zoneRules.listRules.useQuery, B.zoneRules.setRules.useMutation, B.zones.listZones.useQuery, B.zones.addZone.useMutation, B.zones.removeZone.useMutation, B.zones.updateZone.useMutation, e(), d(null), e(), e();
4856
+ B.pipelineOrchestrator.removeAgentSettings.useMutation, B.pipelineOrchestrator.setAgentMaxCameras.useMutation, B.pipelineOrchestrator.setAgentCapabilities.useMutation, B.pipelineOrchestrator.setAgentDecodeLimits.useMutation, B.pipelineOrchestrator.setAgentReachableHost.useMutation, B.pipelineOrchestrator.setAgentInferenceDevices.useMutation, B.pipelineOrchestrator.setNodeStepSettings.useMutation, B.pipelineOrchestrator.getNodeInferenceDevices.useQuery, B.pipelineOrchestrator.forgetInferenceDevice.useMutation, B.pipelineOrchestrator.resetNodePipelineDefaults.useMutation, B.pipelineOrchestrator.planAutoTune.useQuery, B.pipelineOrchestrator.applyAutoTune.useMutation, B.pipelineOrchestrator.setLoadBalancingShares.useMutation, B.pipelineOrchestrator.getPlacementStats.useQuery, B.pipelineOrchestrator.suggestShares.useQuery, B.pipelineOrchestrator.getEffectiveShares.useQuery, B.pipelineOrchestrator.setShareSource.useMutation, B.pipelineOrchestrator.getNodeBenchmarkPreflight.useQuery, B.pipelineOrchestrator.startNodeBenchmark.useMutation, B.pipelineOrchestrator.getNodeBenchmarkStatus.useQuery, B.pipelineOrchestrator.abortNodeBenchmark.useMutation, B.pipelineOrchestrator.getNodeBenchmarkCandidates.useQuery, B.pipelineOrchestrator.listNodeBenchmarkResults.useQuery, B.pipelineOrchestrator.deleteNodeBenchmarkResult.useMutation, B.pipelineOrchestrator.getCameraSettings.useQuery, B.pipelineOrchestrator.setCameraStepToggle.useMutation, B.pipelineOrchestrator.getCameraDetectionSource.useQuery, B.pipelineOrchestrator.setCameraDetectionSource.useMutation, B.pipelineOrchestrator.setCameraStepSettings.useMutation, B.pipelineOrchestrator.resolvePipeline.useQuery, B.pipelineOrchestrator.getCameraSwitches.useQuery, B.pipelineOrchestrator.setCameraSwitch.useMutation, B.pipelineOrchestrator.getCameraStatus.useQuery, B.pipelineOrchestrator.getCameraStatuses.useQuery, B.pipelineOrchestrator.setCameraSensors.useMutation, B.pipelineOrchestrator.reconcileFromDisk.useMutation, B.pipelineOrchestrator.getReconcileFromDiskStatus.useQuery, B.pipelineOrchestrator.getDeviceSettingsContribution.useQuery, B.pipelineOrchestrator.getDeviceLiveContribution.useQuery, B.pipelineOrchestrator.applyDeviceSettingsPatch.useMutation, B.pipelineRunner.attachCamera.useMutation, B.pipelineRunner.detachCamera.useMutation, B.pipelineRunner.reportMotion.useMutation, B.pipelineRunner.getLocalLoad.useQuery, B.pipelineRunner.getLocalMetrics.useQuery, B.pipelineRunner.getCameraMetrics.useQuery, B.pipelineRunner.getAllCameraMetrics.useQuery, B.pipelineRunner.getLocalCameras.useQuery, B.pipelineRunner.requestOccupancyBurst.useMutation, B.pipelineRunner.getNativeCrop.useQuery, B.pipelineRunner.runDetailSubtree.useMutation, B.pipelineRunner.runStatelessStep.useMutation, B.pipelineRunner.parkTrackFrame.useMutation, B.pipelineRunner.getParkedTrackFrame.useQuery, B.pipelineRunner.releaseParkedTrackFrames.useMutation, B.pipelineRunner.startNodeBench.useMutation, B.pipelineRunner.getNodeBenchStatus.useQuery, B.pipelineRunner.abortNodeBench.useMutation, B.plateGallery.listPlates.useQuery, B.plateGallery.getPlateByTrack.useQuery, B.plateGallery.getPlateMedia.useQuery, B.plateGallery.searchPlates.useQuery, B.plateGallery.suggestPlateClusters.useQuery, B.plateGallery.correctPlateText.useMutation, B.plateGallery.deletePlate.useMutation, B.plateGallery.listVehicles.useQuery, B.plateGallery.createVehicle.useMutation, B.plateGallery.renameVehicle.useMutation, B.plateGallery.deleteVehicle.useMutation, B.plateGallery.listVehicleSamples.useQuery, B.plateGallery.removeVehicleSample.useMutation, B.plateGallery.assignPlate.useMutation, B.plateGallery.unassignPlate.useMutation, B.plateGallery.assignPlates.useMutation, B.plateGallery.unassignPlates.useMutation, B.powerMeter.getStatus.useQuery, B.presence.getStatus.useQuery, B.pressureSensor.getStatus.useQuery, B.privacyMask.getOptions.useQuery, B.privacyMask.setMask.useMutation, B.privacyMask.setAudioEnabled.useMutation, B.privacyMask.getStatus.useQuery, B.ptz.move.useMutation, B.ptz.continuousMove.useMutation, B.ptz.stop.useMutation, B.ptz.getPresets.useQuery, B.ptz.goToPreset.useMutation, B.ptz.savePreset.useMutation, B.ptz.deletePreset.useMutation, B.ptz.getOptions.useQuery, B.ptz.goHome.useMutation, B.ptz.getHomePreset.useQuery, B.ptz.setHomePreset.useMutation, B.ptz.captureHomeHere.useMutation, B.ptz.getHomeReturn.useQuery, B.ptz.setHomeReturn.useMutation, B.ptz.getPosition.useQuery, B.ptz.setAutofocus.useMutation, B.ptz.getStatus.useQuery, B.ptzAutotrack.getStatus.useQuery, B.ptzAutotrack.setEnabled.useMutation, B.ptzAutotrack.getSettings.useQuery, B.ptzAutotrack.setSettings.useMutation, B.reboot.reboot.useMutation, B.recordEntries.listEntryKinds.useQuery, B.recordEntries.listEntries.useQuery, B.recordEntries.putEntry.useMutation, B.recordEntries.deleteEntry.useMutation, B.recording.listSources.useQuery, B.recording.getAvailability.useQuery, B.recording.getDaysWithRecordings.useQuery, B.recording.getPlayback.useQuery, B.recording.getPlaybackOptions.useQuery, B.recordingArchive.getAvailabilityBatch.useQuery, B.recordingArchive.getDaysWithRecordingsBatch.useQuery, B.recordingArchive.getStorageUsage.useQuery, B.recordingArchive.getDeviceConfig.useQuery, B.recordingArchive.locateSegment.useQuery, B.recordingArchive.readSegmentBytes.useQuery, B.recordingArchive.readGopBytes.useQuery, B.recordingArchive.readWindowBytes.useQuery, B.recordingArchive.setDeviceConfig.useMutation, B.recordingArchive.rescanStorage.useMutation, B.recordingArchive.pruneFootage.useMutation, B.recordingArchive.deleteFootprint.useMutation, B.recordingArchive.listOpsLog.useQuery, B.recordingArchive.renderGif.useMutation, B.recordingArchive.renderClip.useMutation, B.recordingArchive.pauseForStorageMigration.useMutation, B.recordingArchive.resumeForStorageMigration.useMutation, B.recordingArchive.refreshStorageLocationsForMigration.useMutation, B.recordingArchive.startStorageMigrationMove.useMutation, B.recordingArchive.getStorageMigrationMoveStatus.useQuery, B.recordingArchive.cancelStorageMigrationMove.useMutation, B.recordingArchive.relocateFootage.useMutation, B.recordingArchive.listRelocateJobs.useQuery, B.recordingArchive.getRelocateResidue.useQuery, B.recordingArchive.reconcileLedgerAgainstDisk.useMutation, B.recordingArchive.cancelRelocateJob.useMutation, B.recordingArchive.planStorageRebalance.useQuery, B.recordingArchive.startStorageRebalance.useMutation, B.recordingArchive.getPlacement.useQuery, B.recordingArchive.setDevicePlacement.useMutation, B.recordingArchive.getStatus.useQuery, B.recordingArchive.getDeviceSettingsContribution.useQuery, B.recordingArchive.getDeviceLiveContribution.useQuery, B.recordingArchive.applyDeviceSettingsPatch.useMutation, B.recordingExport.createExport.useMutation, B.recordingExport.listExports.useQuery, B.recordingExport.getExport.useQuery, B.recordingExport.cancelExport.useMutation, B.recordingExport.deleteExport.useMutation, B.recordingExport.getDownloadUrl.useQuery, B.recordingExport.readExportBytes.useQuery, B.recordingOnboard.getOptions.useQuery, B.recordingOnboard.setSettings.useMutation, B.recordingOnboard.getStatus.useQuery, B.recordingSignal.getStatus.useQuery, B.sceneMonitor.listScenes.useQuery, B.sceneMonitor.listScenesBatch.useQuery, B.sceneMonitor.createScene.useMutation, B.sceneMonitor.updateScene.useMutation, B.sceneMonitor.deleteScene.useMutation, B.sceneMonitor.captureReference.useMutation, B.sceneMonitor.deleteReference.useMutation, B.sceneMonitor.recheckNow.useMutation, B.sceneMonitor.resetScene.useMutation, B.sceneMonitor.getStatus.useQuery, B.scriptRunner.run.useMutation, B.scriptRunner.stop.useMutation, B.scriptRunner.getStatus.useQuery, B.serverManagement.getServerPackageStatus.useQuery, B.serverManagement.checkServerUpdate.useMutation, B.serverManagement.applyServerUpdate.useMutation, B.serverManagement.rollbackServerUpdate.useMutation, B.serverManagement.restartServer.useMutation, B.settingsStore.get.useQuery, B.settingsStore.set.useMutation, B.settingsStore.query.useQuery, B.settingsStore.upsert.useMutation, B.settingsStore.upsertMany.useMutation, B.settingsStore.insert.useMutation, B.settingsStore.insertMany.useMutation, B.settingsStore.transact.useMutation, B.settingsStore.update.useMutation, B.settingsStore.delete.useMutation, B.settingsStore.deleteWhere.useMutation, B.settingsStore.updateWhere.useMutation, B.settingsStore.count.useQuery, B.settingsStore.aggregate.useQuery, B.settingsStore.histogram.useQuery, B.settingsStore.isEmpty.useQuery, B.settingsStore.declareCollection.useMutation, B.smoke.getStatus.useQuery, B.snapshot.getSnapshot.useQuery, B.snapshot.invalidateCache.useMutation, B.snapshot.getSnapshotOverview.useQuery, B.snapshot.getDebugState.useQuery, B.snapshot.getSnapshotLinks.useQuery, B.snapshot.getStatus.useQuery, B.snapshot.getDeviceSettingsContribution.useQuery, B.snapshot.getDeviceLiveContribution.useQuery, B.snapshot.applyDeviceSettingsPatch.useMutation, B.storage.resolve.useQuery, B.storage.write.useMutation, B.storage.read.useQuery, B.storage.exists.useQuery, B.storage.list.useQuery, B.storage.delete.useMutation, B.storage.getAvailableSpace.useQuery, B.storage.beginUpload.useMutation, B.storage.writeChunk.useMutation, B.storage.finalizeUpload.useMutation, B.storage.abortUpload.useMutation, B.storage.beginDownload.useMutation, B.storage.readChunk.useQuery, B.storage.endDownload.useMutation, B.storage.listLocations.useQuery, B.storage.listLocationDeclarations.useQuery, B.storage.upsertLocation.useMutation, B.storage.deleteLocation.useMutation, B.storage.listDrainProgress.useQuery, B.storage.testLocation.useQuery, B.storage.listProviders.useQuery, B.storage.testConfig.useQuery, B.storageMigration.plan.useQuery, B.storageMigration.start.useMutation, B.storageMigration.status.useQuery, B.storageMigration.cancel.useMutation, B.storageMigration.movers.useQuery, B.storageMigration.moverClearance.useQuery, B.storageMigration.residue.useQuery, B.storageMigration.drain.useMutation, B.storageMigration.cleanupStart.useMutation, B.storageMigration.cleanupStatus.useQuery, B.storageMigration.cleanupCancel.useMutation, B.storageMigration.history.useQuery, B.streamBroker.reportStreamSignal.useMutation, B.streamBroker.publishCameraStream.useMutation, B.streamBroker.retractCameraStream.useMutation, B.streamBroker.assignProfile.useMutation, B.streamBroker.unassignProfile.useMutation, B.streamBroker.forgetDeviceHardware.useMutation, B.streamBroker.renderPreBufferClip.useMutation, B.streamBroker.produceEventMedia.useMutation, B.streamBroker.fetchEventMedia.useMutation, B.streamBroker.listAllCameraStreams.useQuery, B.streamBroker.listAllProfileSlots.useQuery, B.streamBroker.getBrokerStats.useQuery, B.streamBroker.probeStream.useMutation, B.streamBroker.listClients.useQuery, B.streamBroker.getLiveViewerCounts.useQuery, B.streamBroker.killClient.useMutation, B.streamBroker.restartProfile.useMutation, B.streamBroker.getStreamUrl.useQuery, B.streamBroker.getStreamWithCodec.useMutation, B.streamBroker.releaseStreamWithCodec.useMutation, B.streamBroker.acquireEgressTranscode.useMutation, B.streamBroker.releaseEgressTranscode.useMutation, B.streamBroker.subscribeAudioChunks.useMutation, B.streamBroker.pullAudioChunks.useQuery, B.streamBroker.unsubscribeAudioChunks.useMutation, B.streamBroker.setPreBufferDuration.useMutation, B.streamBroker.getPreBufferInfo.useQuery, B.streamBroker.getRtspPort.useQuery, B.streamBroker.getAllRtspEntries.useQuery, B.streamBroker.getRtspEntry.useQuery, B.streamBroker.regenerateRtspToken.useMutation, B.streamBroker.setRtspEnabled.useMutation, B.streamBroker.isRtspEnabled.useQuery, B.streamBroker.getDeviceAudioMute.useQuery, B.streamBroker.setDeviceAudioMute.useMutation, B.streamBroker.getDeviceSettingsContribution.useQuery, B.streamBroker.getDeviceLiveContribution.useQuery, B.streamBroker.applyDeviceSettingsPatch.useMutation, B.streamCatalog.getCatalog.useQuery, B.streamParams.getOptions.useQuery, B.streamParams.setProfile.useMutation, B.streamParams.getConfigSchema.useQuery, B.streamParams.getStatus.useQuery, B.streamSignals.listSignals.useQuery, B.switch.setState.useMutation, B.switch.getStatus.useQuery, B.system.info.useQuery, B.system.health.useQuery, B.system.featureFlags.useQuery, B.system.networkAddresses.useQuery, B.system.getRetentionConfig.useQuery, B.system.setRetentionConfig.useMutation, B.system.forceRetentionCleanup.useMutation, B.system.getSiteLocation.useQuery, B.system.setSiteLocation.useMutation, B.system.detectSiteLocation.useMutation, B.system.getRequestCensus.useQuery, B.system.getLoadContributions.useQuery, B.system.getFailureContributions.useQuery, B.system.getLoggingSettings.useQuery, B.system.setLoggingSettings.useMutation, B.tamper.getStatus.useQuery, B.temperatureSensor.getStatus.useQuery, B.terminalSession.listProfiles.useQuery, B.terminalSession.listInstances.useQuery, B.terminalSession.createInstance.useMutation, B.terminalSession.updateInstance.useMutation, B.terminalSession.deleteInstance.useMutation, B.terminalSession.setInstanceEnabled.useMutation, B.terminalSession.listLegacyCameras.useQuery, B.terminalSession.adoptLegacyMonitor.useMutation, B.terminalSession.listSessions.useQuery, B.terminalSession.openSession.useMutation, B.terminalSession.resize.useMutation, B.terminalSession.pullOutput.useMutation, B.terminalSession.writeInput.useMutation, B.terminalSession.close.useMutation, B.toast.onToast.useSubscription, B.training.listBaseModels.useQuery, B.training.planJob.useQuery, B.training.startJob.useMutation, B.training.startJobBatch.useMutation, B.training.listJobs.useQuery, B.training.getJob.useQuery, B.training.cancelJob.useMutation, B.training.getJobResult.useQuery, B.training.listCanaryTargets.useQuery, B.training.registerResult.useMutation, B.training.canaryResult.useMutation, B.training.rollbackCanary.useMutation, B.training.discardResult.useMutation, B.turnProvider.getTurnServers.useQuery, B.update.installUpdate.useMutation, B.update.getStatus.useQuery, B.userManagement.listUsers.useQuery, B.userManagement.createUser.useMutation, B.userManagement.updateUser.useMutation, B.userManagement.deleteUser.useMutation, B.userManagement.resetPassword.useMutation, B.userManagement.setUserScopes.useMutation, B.userManagement.validateCredentials.useMutation, B.userManagement.setupTotp.useMutation, B.userManagement.confirmTotp.useMutation, B.userManagement.disableTotp.useMutation, B.userManagement.getTotpStatus.useQuery, B.userManagement.migrateRawSecrets.useMutation, B.userManagement.verifyTotp.useMutation, B.userManagement.oauthIssueCode.useMutation, B.userManagement.oauthExchangeCode.useMutation, B.userManagement.oauthRefresh.useMutation, B.userManagement.oauthVerifyAccessToken.useQuery, B.userManagement.listExternalIdentities.useQuery, B.userManagement.findUserByExternalIdentity.useQuery, B.userManagement.unlinkExternalIdentity.useMutation, B.userManagement.listOauthSessions.useQuery, B.userManagement.revokeOauthSession.useMutation, B.vacuumControl.start.useMutation, B.vacuumControl.pause.useMutation, B.vacuumControl.stop.useMutation, B.vacuumControl.returnToBase.useMutation, B.vacuumControl.locate.useMutation, B.vacuumControl.setFanSpeed.useMutation, B.vacuumControl.getStatus.useQuery, B.valve.open.useMutation, B.valve.close.useMutation, B.valve.stop.useMutation, B.valve.setPosition.useMutation, B.valve.getStatus.useQuery, B.vibration.getStatus.useQuery, B.videoclips.listClips.useQuery, B.videoclips.listSources.useQuery, B.videoclips.getClipPlayback.useQuery, B.videoclips.readClipBytes.useQuery, B.videoclips.offerClipBytes.useQuery, B.videoclips.dialClipStream.useQuery, B.videoclips.getPlaybackOptions.useQuery, B.waterHeater.setTargetTemp.useMutation, B.waterHeater.setOperationMode.useMutation, B.waterHeater.setAway.useMutation, B.waterHeater.getStatus.useQuery, B.weather.getStatus.useQuery, B.webrtcSession.listStreams.useQuery, B.webrtcSession.createSession.useMutation, B.webrtcSession.handleOffer.useMutation, B.webrtcSession.handleAnswer.useMutation, B.webrtcSession.addIceCandidate.useMutation, B.webrtcSession.getIceCandidates.useQuery, B.webrtcSession.closeSession.useMutation, B.webrtcSession.hasAdaptiveBitrate.useQuery, B.webrtcSession.getSessionState.useQuery, B.webrtcSession.applyDownlinkProbe.useMutation, B.webrtcSession.getSessionDebug.useQuery, B.zoneAnalytics.getCurrentSnapshot.useQuery, B.zoneAnalytics.getCurrentSnapshotBatch.useQuery, B.zoneAnalytics.getZoneHistory.useQuery, B.zoneAnalytics.getCameraHistory.useQuery, B.zoneAnalytics.getUnzonedHistory.useQuery, B.zoneRules.listRules.useQuery, B.zoneRules.setRules.useMutation, B.zones.listZones.useQuery, B.zones.addZone.useMutation, B.zones.removeZone.useMutation, B.zones.updateZone.useMutation, e(), d(null), e(), e();
4857
4857
  var Ua = Da("inline-flex items-center rounded-full font-medium [&>svg]:shrink-0 [&>svg]:size-3", {
4858
4858
  variants: {
4859
4859
  variant: {
@@ -5236,7 +5236,7 @@ function uo({ className: e, ...t }) {
5236
5236
  }
5237
5237
  //#endregion
5238
5238
  //#region ../../node_modules/qrcode.react/lib/esm/index.js
5239
- e(), e(), e(), e(), e(), e(), e(), n(() => import("./MotionZonesSettings-D0BtqOwj.mjs").then((e) => ({ default: e.MotionZonesSettings }))), n(() => import("./PrivacyMaskSettings-BYJj-5D1.mjs").then((e) => ({ default: e.PrivacyMaskSettings }))), e(), e();
5239
+ e(), e(), e(), e(), e(), e(), e(), n(() => import("./MotionZonesSettings-mlU-VSe5.mjs").then((e) => ({ default: e.MotionZonesSettings }))), n(() => import("./PrivacyMaskSettings-Cx5oEsjP.mjs").then((e) => ({ default: e.PrivacyMaskSettings }))), e(), e();
5240
5240
  var fo = Object.defineProperty, po = Object.getOwnPropertySymbols, mo = Object.prototype.hasOwnProperty, ho = Object.prototype.propertyIsEnumerable, go = (e, t, n) => t in e ? fo(e, t, {
5241
5241
  enumerable: !0,
5242
5242
  configurable: !0,
@@ -6487,7 +6487,7 @@ function Qo(e, t) {
6487
6487
  return Zo(e, t).length > 0;
6488
6488
  }
6489
6489
  function $o(e) {
6490
- return e.override ?? e.base ?? Xo(e.catalog, e.device);
6490
+ return e.base ?? Xo(e.catalog, e.device);
6491
6491
  }
6492
6492
  //#endregion
6493
6493
  //#region ../ui-library/src/composites/root-model-source.tsx
@@ -6857,7 +6857,6 @@ function ys(e, t) {
6857
6857
  //#endregion
6858
6858
  //#region ../ui-library/src/composites/step-inspector/layered-settings-form.tsx
6859
6859
  var bs = {
6860
- accelerator: "border-amber-500/40 bg-amber-500/10 text-amber-500",
6861
6860
  camera: "border-primary/40 bg-primary/10 text-primary",
6862
6861
  node: "border-border bg-muted/40 text-foreground",
6863
6862
  default: "border-border/60 text-foreground-subtle"
@@ -6878,11 +6877,7 @@ function Ss(e, t, n) {
6878
6877
  settings: { ...n }
6879
6878
  };
6880
6879
  }
6881
- var Cs = [
6882
- "accelerator",
6883
- "camera",
6884
- "node"
6885
- ];
6880
+ var Cs = ["camera", "node"];
6886
6881
  function ws({ field: e, layers: t, target: n, labels: r, boundKeys: i, modelId: a, pinned: o, disabled: s, onReset: c, action: l }) {
6887
6882
  let u = S(), d = Le(t), f = _s(e, a), p = f.fromModel ? u("uiLibrary.layeredSettings.modelDefault", "model default") : u("uiLibrary.layeredSettings.default", "default"), m = M(t, e.key, i), h = gs(e), g = h ? ae(d, e.key, a, f.value, f.value) : null, _ = g === null || g.source === "override" ? m : "default", b = _ === "default" ? p : r[_] ?? _, x = Cs.filter((e) => e !== _ && r[e] !== void 0).filter((n) => t[n]?.[e.key] !== void 0).map((n) => {
6888
6883
  let i = h ? t[n]?.[N(e.key)] : void 0, o = typeof i == "string" && i !== a ? u("uiLibrary.layeredSettings.forModel", " (for {{model}})", { model: i }) : "";
@@ -7032,31 +7027,31 @@ function As({ addon: e, agentDefault: t, onChangeAgentConfig: n, engineFormat: r
7032
7027
  ...t,
7033
7028
  ...e
7034
7029
  });
7035
- }, u = Es(e), d = e.defaultModelIdByFormat?.[r] ?? e.defaultModelId, f = es(e.id, t.settings, a)?.effective === !0, p = t.modelId ?? i;
7030
+ }, u = Es(e), d = e.defaultModelIdByFormat?.[r] ?? e.defaultModelId, f = t.settings ?? {}, p = es(e.id, f, a)?.effective === !0, m = t.modelId ?? i;
7036
7031
  return /* @__PURE__ */ y("div", {
7037
7032
  className: "space-y-4 text-xs",
7038
7033
  children: [
7039
- f && a !== void 0 ? /* @__PURE__ */ v(ks, {
7034
+ p && a !== void 0 ? /* @__PURE__ */ v(ks, {
7040
7035
  rootModel: a,
7041
- stepModelId: p
7036
+ stepModelId: m
7042
7037
  }) : /* @__PURE__ */ y("div", { children: [/* @__PURE__ */ v("div", {
7043
7038
  className: "text-[10px] uppercase tracking-widest text-foreground-subtle mb-1",
7044
7039
  children: s("uiLibrary.agentStepEditor.model", "Model")
7045
7040
  }), /* @__PURE__ */ v(Jo, {
7046
7041
  models: c,
7047
- value: p ?? "",
7042
+ value: m ?? "",
7048
7043
  defaultModelId: d,
7049
7044
  onChange: (e) => l({ modelId: e })
7050
7045
  })] }),
7051
- (u.length > 0 || es(e.id, t.settings, a)) && /* @__PURE__ */ v("div", {
7046
+ (u.length > 0 || es(e.id, f, a)) && /* @__PURE__ */ v("div", {
7052
7047
  className: "pt-2 border-t border-border/50",
7053
7048
  children: /* @__PURE__ */ v(Ts, {
7054
7049
  addon: e,
7055
7050
  fields: u,
7056
- layers: { node: t.settings },
7051
+ layers: { node: f },
7057
7052
  target: "node",
7058
7053
  labels: { node: "This node" },
7059
- modelId: Ds(e, p, t.settings, a),
7054
+ modelId: Ds(e, m, f, a),
7060
7055
  ...a === void 0 ? {} : { rootModel: a },
7061
7056
  onChangeLayer: (e) => l({ settings: e })
7062
7057
  })
@@ -9895,7 +9890,7 @@ function qu(e) {
9895
9890
  var Ju = (e) => e;
9896
9891
  function Yu(e) {
9897
9892
  let t = e.capName === void 0 ? void 0 : e.display?.perCap?.[e.capName], n = t?.precision ?? e.display?.precision ?? e.roleDefault?.precision ?? e.slicePrecision, r = qu(e.sliceUnit ?? e.canonicalUnit), i = qu(t?.unit ?? e.display?.unit ?? e.roleDefault?.unit);
9898
- return i !== void 0 && r !== void 0 && i !== r && Pe(r, i) ? {
9893
+ return i !== void 0 && r !== void 0 && i !== r && Se(r, i) ? {
9899
9894
  unit: i,
9900
9895
  precision: n,
9901
9896
  toDisplayValue: (e) => P(e, r, i) ?? e
@@ -20282,7 +20277,7 @@ function iC(e, t) {
20282
20277
  translate: (t, n) => QS(e, US(), t, n)
20283
20278
  };
20284
20279
  }
20285
- e(), n(() => import("./MaskShapeCanvas-CrWutXSb.mjs").then((e) => ({ default: e.MaskShapeCanvas }))), n(() => import("./MotionZonesSettings-D0BtqOwj.mjs").then((e) => ({ default: e.MotionZonesSettings }))), n(() => import("./SceneMonitorEditor-D1kveRgB.mjs").then((e) => ({ default: e.SceneMonitorEditor }))), n(() => import("./PrivacyMaskSettings-BYJj-5D1.mjs").then((e) => ({ default: e.PrivacyMaskSettings })));
20280
+ e(), n(() => import("./MaskShapeCanvas-CrWutXSb.mjs").then((e) => ({ default: e.MaskShapeCanvas }))), n(() => import("./MotionZonesSettings-mlU-VSe5.mjs").then((e) => ({ default: e.MotionZonesSettings }))), n(() => import("./SceneMonitorEditor-GMAcbbJ0.mjs").then((e) => ({ default: e.SceneMonitorEditor }))), n(() => import("./PrivacyMaskSettings-Cx5oEsjP.mjs").then((e) => ({ default: e.PrivacyMaskSettings })));
20286
20281
  //#endregion
20287
20282
  //#region src/scrypted/scrypted-yolo-manifest-data.json
20288
20283
  var aC = /*#__PURE__*/ JSON.parse("[{\"id\":\"scrypted-yolov9t-relu-coreml\",\"label\":\"Scrypted 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\":\"Scrypted 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\":\"Scrypted 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\":\"Scrypted 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\":\"Scrypted 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\":\"Scrypted 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\":\"Scrypted 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\":\"Scrypted 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\":\"Scrypted 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\":\"Scrypted 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\":\"Scrypted 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\":\"Scrypted 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\":\"Scrypted 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\":\"Scrypted 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\":\"Scrypted 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\":\"Scrypted 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\":\"Scrypted 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\":\"Scrypted 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\":\"Scrypted 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\":\"Scrypted 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\":\"Scrypted 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\":\"Scrypted 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\":\"Scrypted 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\":\"Scrypted 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\":\"Scrypted 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\":\"Scrypted 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\":\"Scrypted 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\":\"Scrypted 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\":\"Scrypted 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\":\"Scrypted 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\":\"Scrypted 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\":\"Scrypted 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\":\"Scrypted 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\":\"Scrypted 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}]"), oC = {
@@ -20720,7 +20715,7 @@ var RC = "object-detection";
20720
20715
  function zC(e) {
20721
20716
  return e.stepId === RC ? ne(e.entry, {
20722
20717
  labels: [],
20723
- classMap: Se
20718
+ classMap: Pe
20724
20719
  }) : [];
20725
20720
  }
20726
20721
  var BC = [
@@ -20851,30 +20846,34 @@ function nw(e) {
20851
20846
  //#region src/ui/api.ts
20852
20847
  var rw = "model-studio";
20853
20848
  function iw(e) {
20854
- if (typeof e != "object" || !e) return !1;
20855
- let t = Reflect.get(e, "addons");
20856
- if (typeof t != "object" || !t) return !1;
20857
- let n = Reflect.get(t, "custom");
20858
- return typeof n == "object" && !!n && "mutate" in n;
20849
+ return typeof e == "object" && !!e || typeof e == "function";
20859
20850
  }
20860
- function aw(e) {
20861
- if (!iw(e)) throw Error("model-studio page: unexpected tRPC client shape");
20851
+ function aw(e, t) {
20852
+ let n = e;
20853
+ for (let e of t.split(".")) {
20854
+ if (!iw(n)) return !1;
20855
+ n = Reflect.get(n, e);
20856
+ }
20857
+ return typeof n == "function";
20858
+ }
20859
+ function ow(e, t) {
20860
+ if (!aw(e, t)) throw Error(`model-studio page: the tRPC client from the host has no callable ${t} (AddonPageProps.trpc must be a TRPCClient<AppRouter>)`);
20862
20861
  return e;
20863
20862
  }
20864
- function ow(e) {
20865
- return aw(e).addons.custom;
20863
+ function sw(e) {
20864
+ return ow(e, "addons.custom.mutate").addons.custom;
20866
20865
  }
20867
- async function sw(e, t, n) {
20868
- return ow(e).mutate({
20866
+ async function cw(e, t, n) {
20867
+ return sw(e).mutate({
20869
20868
  addonId: rw,
20870
20869
  action: t,
20871
20870
  input: n
20872
20871
  });
20873
20872
  }
20874
- function cw(e) {
20873
+ function lw(e) {
20875
20874
  return typeof e == "object" && !!e && !Array.isArray(e);
20876
20875
  }
20877
- function lw(e, t, n) {
20876
+ function uw(e, t, n) {
20878
20877
  let r = [];
20879
20878
  for (let [i, a] of t.entries()) {
20880
20879
  let t = e.safeParse(a);
@@ -20882,7 +20881,7 @@ function lw(e, t, n) {
20882
20881
  }
20883
20882
  return r;
20884
20883
  }
20885
- function uw(e, t, n) {
20884
+ function dw(e, t, n) {
20886
20885
  let r = e.safeParse(t);
20887
20886
  if (!r.success) {
20888
20887
  let e = r.error.issues.map((e) => `${e.path.join(".") || "<root>"}: ${e.message}`).join("; ");
@@ -20890,14 +20889,14 @@ function uw(e, t, n) {
20890
20889
  }
20891
20890
  return r.data;
20892
20891
  }
20893
- function dw(e) {
20894
- return Array.isArray(e) ? lw(k, e, "listCustomModels") : [];
20895
- }
20896
20892
  function fw(e) {
20897
- if (!cw(e)) return {};
20893
+ return Array.isArray(e) ? uw(k, e, "listCustomModels") : [];
20894
+ }
20895
+ function pw(e) {
20896
+ if (!lw(e)) return {};
20898
20897
  let t = {};
20899
20898
  for (let [n, r] of Object.entries(e)) {
20900
- if (!cw(r)) {
20899
+ if (!lw(r)) {
20901
20900
  console.warn(`[model-studio] listAvailability: dropping "${n}" — not an object`, r);
20902
20901
  continue;
20903
20902
  }
@@ -20910,14 +20909,14 @@ function fw(e) {
20910
20909
  }
20911
20910
  return t;
20912
20911
  }
20913
- async function pw(e) {
20914
- return dw(await sw(e, "listCustomModels", void 0));
20915
- }
20916
20912
  async function mw(e) {
20917
- return fw(await sw(e, "listAvailability", void 0));
20913
+ return fw(await cw(e, "listCustomModels", void 0));
20914
+ }
20915
+ async function hw(e) {
20916
+ return pw(await cw(e, "listAvailability", void 0));
20918
20917
  }
20919
- function hw(e) {
20920
- return Array.isArray(e) ? e.filter(cw).flatMap((e) => {
20918
+ function gw(e) {
20919
+ return Array.isArray(e) ? e.filter(lw).flatMap((e) => {
20921
20920
  let t = e.format === "openvino" || e.format === "coreml" ? e.format : null;
20922
20921
  return t === null ? [] : [{
20923
20922
  format: t,
@@ -20927,104 +20926,104 @@ function hw(e) {
20927
20926
  }];
20928
20927
  }) : [];
20929
20928
  }
20930
- async function gw(e, t) {
20931
- let n = await sw(e, "registerCustomModel", t);
20932
- return cw(n) ? { conversions: hw(n.conversions) } : { conversions: [] };
20933
- }
20934
20929
  async function _w(e, t) {
20935
- let n = await sw(e, "renameCustomModel", t);
20936
- if (!cw(n)) throw Error("renameCustomModel: unexpected response shape");
20930
+ let n = await cw(e, "registerCustomModel", t);
20931
+ return lw(n) ? { conversions: gw(n.conversions) } : { conversions: [] };
20932
+ }
20933
+ async function vw(e, t) {
20934
+ let n = await cw(e, "renameCustomModel", t);
20935
+ if (!lw(n)) throw Error("renameCustomModel: unexpected response shape");
20937
20936
  return {
20938
- modelId: kw(n, "modelId"),
20939
- name: kw(n, "name")
20937
+ modelId: Aw(n, "modelId"),
20938
+ name: Aw(n, "name")
20940
20939
  };
20941
20940
  }
20942
- async function vw(e, t) {
20943
- await sw(e, "removeModelFromNode", t);
20941
+ async function yw(e, t) {
20942
+ await cw(e, "removeModelFromNode", t);
20944
20943
  }
20945
- async function yw(e, t, n) {
20946
- let r = await sw(e, "ensureModelFormats", {
20944
+ async function bw(e, t, n) {
20945
+ let r = await cw(e, "ensureModelFormats", {
20947
20946
  modelId: t,
20948
20947
  formats: n
20949
20948
  });
20950
- return cw(r) ? { conversions: hw(r.conversions) } : { conversions: [] };
20951
- }
20952
- function bw(e) {
20953
- return aw(e).pipelineExecutor.getSchema;
20949
+ return lw(r) ? { conversions: gw(r.conversions) } : { conversions: [] };
20954
20950
  }
20955
20951
  function xw(e) {
20956
- return cw(e) && Array.isArray(e.slots);
20952
+ return ow(e, "pipelineExecutor.getSchema.query").pipelineExecutor.getSchema;
20957
20953
  }
20958
- async function Sw(e) {
20959
- let t = await bw(e).query();
20960
- if (!xw(t)) throw Error("pipeline schema unavailable — cannot enumerate step ids");
20961
- return UC(t);
20954
+ function Sw(e) {
20955
+ return lw(e) && Array.isArray(e.slots);
20962
20956
  }
20963
- function Cw(e) {
20964
- return cw(e) && Array.isArray(e.slots);
20957
+ async function Cw(e) {
20958
+ let t = await xw(e).query();
20959
+ if (!Sw(t)) throw Error("pipeline schema unavailable — cannot enumerate step ids");
20960
+ return UC(t);
20965
20961
  }
20966
- async function ww(e, t) {
20967
- return (await Tw(e, t)).seeds;
20962
+ function ww(e) {
20963
+ return lw(e) && Array.isArray(e.slots);
20968
20964
  }
20969
20965
  async function Tw(e, t) {
20970
- let n = await bw(e).query(t === void 0 ? void 0 : { nodeId: t });
20971
- if (!Cw(n)) throw Error("pipeline schema unavailable — cannot list CamStack seeds");
20966
+ return (await Ew(e, t)).seeds;
20967
+ }
20968
+ async function Ew(e, t) {
20969
+ let n = await xw(e).query(t === void 0 ? void 0 : { nodeId: t });
20970
+ if (!ww(n)) throw Error("pipeline schema unavailable — cannot list CamStack seeds");
20972
20971
  return {
20973
20972
  seeds: qC(n),
20974
20973
  stepCatalogs: WC(n)
20975
20974
  };
20976
20975
  }
20977
- async function Ew(e, t) {
20978
- await aw(e).pipelineExecutor.downloadModel.mutate(t);
20979
- }
20980
20976
  async function Dw(e, t) {
20981
- let n = await sw(e, "deleteSeedFromNode", t);
20982
- if (!cw(n) || n.success !== !0) throw Error("deleteSeedFromNode: unexpected response");
20977
+ await ow(e, "pipelineExecutor.downloadModel.mutate").pipelineExecutor.downloadModel.mutate(t);
20978
+ }
20979
+ async function Ow(e, t) {
20980
+ let n = await cw(e, "deleteSeedFromNode", t);
20981
+ if (!lw(n) || n.success !== !0) throw Error("deleteSeedFromNode: unexpected response");
20983
20982
  }
20984
- var Ow = 512 * 1024;
20985
- function kw(e, t) {
20983
+ var kw = 512 * 1024;
20984
+ function Aw(e, t) {
20986
20985
  let n = e[t];
20987
20986
  if (typeof n != "string") throw Error(`upload: missing "${t}" in response`);
20988
20987
  return n;
20989
20988
  }
20990
- async function Aw(e, t, n) {
20991
- let r = await sw(e, "beginModelUpload", {
20989
+ async function jw(e, t, n) {
20990
+ let r = await cw(e, "beginModelUpload", {
20992
20991
  filename: t.name,
20993
20992
  totalBytes: t.size
20994
20993
  });
20995
- if (!cw(r)) throw Error("beginModelUpload: unexpected response shape");
20996
- let i = kw(r, "uploadId");
20994
+ if (!lw(r)) throw Error("beginModelUpload: unexpected response shape");
20995
+ let i = Aw(r, "uploadId");
20997
20996
  try {
20998
20997
  let r = new Uint8Array(await t.arrayBuffer());
20999
- for (let t = 0; t < r.length; t += Ow) await sw(e, "appendModelUpload", {
20998
+ for (let t = 0; t < r.length; t += kw) await cw(e, "appendModelUpload", {
21000
20999
  uploadId: i,
21001
- chunkBase64: jw(r.subarray(t, t + Ow))
21002
- }), n?.(Math.min(t + Ow, r.length), r.length);
21003
- let a = await sw(e, "commitModelUpload", { uploadId: i });
21004
- if (!cw(a)) throw Error("commitModelUpload: unexpected response shape");
21000
+ chunkBase64: Mw(r.subarray(t, t + kw))
21001
+ }), n?.(Math.min(t + kw, r.length), r.length);
21002
+ let a = await cw(e, "commitModelUpload", { uploadId: i });
21003
+ if (!lw(a)) throw Error("commitModelUpload: unexpected response shape");
21005
21004
  return {
21006
- filename: kw(a, "filename"),
21005
+ filename: Aw(a, "filename"),
21007
21006
  bytes: typeof a.bytes == "number" ? a.bytes : t.size,
21008
- sha256: kw(a, "sha256")
21007
+ sha256: Aw(a, "sha256")
21009
21008
  };
21010
21009
  } catch (t) {
21011
- throw await sw(e, "abortModelUpload", { uploadId: i }).catch(() => void 0), t;
21010
+ throw await cw(e, "abortModelUpload", { uploadId: i }).catch(() => void 0), t;
21012
21011
  }
21013
21012
  }
21014
- function jw(e) {
21013
+ function Mw(e) {
21015
21014
  let t = "", n = 32768;
21016
21015
  for (let r = 0; r < e.length; r += n) t += String.fromCharCode(...e.subarray(r, r + n));
21017
21016
  return btoa(t);
21018
21017
  }
21019
- function Mw(e) {
21020
- return aw(e).live.onEvent;
21018
+ function Nw(e) {
21019
+ return ow(e, "live.onEvent.subscribe").live.onEvent;
21021
21020
  }
21022
- function Nw(e, t, n) {
21023
- let r = Mw(e);
21021
+ function Pw(e, t, n) {
21022
+ let r = Nw(e);
21024
21023
  try {
21025
21024
  return r.subscribe({ category: "model-convert.progress" }, {
21026
21025
  onData: (e) => {
21027
- let n = cw(e.data) ? e.data : void 0;
21026
+ let n = lw(e.data) ? e.data : void 0;
21028
21027
  n !== void 0 && t({
21029
21028
  phase: typeof n.phase == "string" ? n.phase : "working",
21030
21029
  pct: typeof n.pct == "number" ? n.pct : void 0,
@@ -21039,17 +21038,17 @@ function Nw(e, t, n) {
21039
21038
  return n?.(e), null;
21040
21039
  }
21041
21040
  }
21042
- async function Pw(e, t) {
21043
- let n = await sw(e, "importFrigateCatalogModel", t);
21044
- if (!cw(n)) throw Error("importFrigateCatalogModel: unexpected response shape");
21041
+ async function Fw(e, t) {
21042
+ let n = await cw(e, "importFrigateCatalogModel", t);
21043
+ if (!lw(n)) throw Error("importFrigateCatalogModel: unexpected response shape");
21045
21044
  return {
21046
- modelId: kw(n, "modelId"),
21045
+ modelId: Aw(n, "modelId"),
21047
21046
  bytes: typeof n.bytes == "number" ? n.bytes : 0
21048
21047
  };
21049
21048
  }
21050
- async function Fw(e) {
21051
- let t = await sw(e, "frigatePlusStatus", void 0);
21052
- return cw(t) ? {
21049
+ async function Iw(e) {
21050
+ let t = await cw(e, "frigatePlusStatus", void 0);
21051
+ return lw(t) ? {
21053
21052
  configured: t.configured === !0,
21054
21053
  keyFormatValid: t.keyFormatValid === !0
21055
21054
  } : {
@@ -21057,9 +21056,9 @@ async function Fw(e) {
21057
21056
  keyFormatValid: !1
21058
21057
  };
21059
21058
  }
21060
- async function Iw(e) {
21061
- let t = await sw(e, "frigatePlusTest", void 0);
21062
- return cw(t) ? {
21059
+ async function Lw(e) {
21060
+ let t = await cw(e, "frigatePlusTest", void 0);
21061
+ return lw(t) ? {
21063
21062
  ok: t.ok === !0,
21064
21063
  ...typeof t.error == "string" ? { error: t.error } : {}
21065
21064
  } : {
@@ -21067,69 +21066,69 @@ async function Iw(e) {
21067
21066
  error: "unexpected response"
21068
21067
  };
21069
21068
  }
21070
- async function Lw(e) {
21071
- let t = await sw(e, "frigatePlusListModels", void 0);
21072
- return Array.isArray(t) ? lw(PC, t, "frigatePlusListModels") : [];
21069
+ async function Rw(e) {
21070
+ let t = await cw(e, "frigatePlusListModels", void 0);
21071
+ return Array.isArray(t) ? uw(PC, t, "frigatePlusListModels") : [];
21073
21072
  }
21074
- async function Rw(e, t) {
21075
- let n = await sw(e, "importFrigatePlusModel", t);
21076
- if (!cw(n)) throw Error("importFrigatePlusModel: unexpected response shape");
21073
+ async function zw(e, t) {
21074
+ let n = await cw(e, "importFrigatePlusModel", t);
21075
+ if (!lw(n)) throw Error("importFrigatePlusModel: unexpected response shape");
21077
21076
  return {
21078
- modelId: kw(n, "modelId"),
21077
+ modelId: Aw(n, "modelId"),
21079
21078
  bytes: typeof n.bytes == "number" ? n.bytes : 0,
21080
- conversions: hw(n.conversions)
21079
+ conversions: gw(n.conversions)
21081
21080
  };
21082
21081
  }
21083
- async function zw(e, t) {
21084
- await aw(e).addonSettings.updateGlobalSettings.mutate({
21082
+ async function Bw(e, t) {
21083
+ await ow(e, "addonSettings.updateGlobalSettings.mutate").addonSettings.updateGlobalSettings.mutate({
21085
21084
  addonId: rw,
21086
21085
  patch: { frigatePlusApiKey: t }
21087
21086
  });
21088
21087
  }
21089
- function Bw(e) {
21090
- return cw(e) && Array.isArray(e.devices);
21091
- }
21092
- async function Vw(e, t) {
21093
- let n = await aw(e).pipelineOrchestrator.getNodeInferenceDevices.query({ nodeId: t });
21094
- return Bw(n) ? n.devices : [];
21088
+ function Vw(e) {
21089
+ return lw(e) && Array.isArray(e.devices);
21095
21090
  }
21096
21091
  async function Hw(e, t) {
21097
- let n = await aw(e).pipelineExecutor.listLoadedEngines.query({ nodeId: t });
21098
- return uw(be.methods.listLoadedEngines.output, n, "listLoadedEngines");
21092
+ let n = await ow(e, "pipelineOrchestrator.getNodeInferenceDevices.query").pipelineOrchestrator.getNodeInferenceDevices.query({ nodeId: t });
21093
+ return Vw(n) ? n.devices : [];
21099
21094
  }
21100
21095
  async function Uw(e, t) {
21101
- await aw(e).pipelineOrchestrator.setAgentInferenceDevices.mutate(t);
21096
+ let n = await ow(e, "pipelineExecutor.listLoadedEngines.query").pipelineExecutor.listLoadedEngines.query({ nodeId: t });
21097
+ return dw(be.methods.listLoadedEngines.output, n, "listLoadedEngines");
21098
+ }
21099
+ async function Ww(e, t) {
21100
+ await ow(e, "pipelineOrchestrator.setAgentInferenceDevices.mutate").pipelineOrchestrator.setAgentInferenceDevices.mutate(t);
21102
21101
  }
21103
- async function Ww(e) {
21104
- return T(await aw(e).addonSettings.getGlobalSettings.query({ addonId: "pipeline-orchestrator" }));
21102
+ async function Gw(e) {
21103
+ return T(await ow(e, "addonSettings.getGlobalSettings.query").addonSettings.getGlobalSettings.query({ addonId: "pipeline-orchestrator" }));
21105
21104
  }
21106
- async function Gw(e, t) {
21107
- await aw(e).addonSettings.updateGlobalSettings.mutate({
21105
+ async function Kw(e, t) {
21106
+ await ow(e, "addonSettings.updateGlobalSettings.mutate").addonSettings.updateGlobalSettings.mutate({
21108
21107
  addonId: "pipeline-orchestrator",
21109
21108
  patch: t
21110
21109
  });
21111
21110
  }
21112
- function Kw(e) {
21113
- return cw(e) && Array.isArray(e.slots);
21111
+ function qw(e) {
21112
+ return lw(e) && Array.isArray(e.slots);
21114
21113
  }
21115
- async function qw(e, t, n) {
21116
- let r = await bw(e).query(n === void 0 ? void 0 : { nodeId: n });
21117
- if (!Kw(r)) return null;
21114
+ async function Jw(e, t, n) {
21115
+ let r = await xw(e).query(n === void 0 ? void 0 : { nodeId: n });
21116
+ if (!qw(r)) return null;
21118
21117
  for (let e of r.slots) for (let n of e.addons) if (n.id === t) return n;
21119
21118
  return null;
21120
21119
  }
21121
- async function Jw(e) {
21122
- let t = await sw(e, "tfliteSupport", {});
21123
- return !cw(t) || !Array.isArray(t.nodes) ? [] : t.nodes.filter((e) => typeof e == "string");
21124
- }
21125
21120
  async function Yw(e) {
21126
- let t = await sw(e, "listScryptedCatalog", void 0);
21127
- return !cw(t) || !Array.isArray(t.entries) || !Array.isArray(t.drift) ? {
21121
+ let t = await cw(e, "tfliteSupport", {});
21122
+ return !lw(t) || !Array.isArray(t.nodes) ? [] : t.nodes.filter((e) => typeof e == "string");
21123
+ }
21124
+ async function Xw(e) {
21125
+ let t = await cw(e, "listScryptedCatalog", void 0);
21126
+ return !lw(t) || !Array.isArray(t.entries) || !Array.isArray(t.drift) ? {
21128
21127
  entries: [],
21129
21128
  drift: []
21130
21129
  } : {
21131
- entries: lw(jC, t.entries, "listScryptedCatalog.entries"),
21132
- drift: t.drift.filter(cw).map((e) => {
21130
+ entries: uw(jC, t.entries, "listScryptedCatalog.entries"),
21131
+ drift: t.drift.filter(lw).map((e) => {
21133
21132
  let t = TC({
21134
21133
  manifestId: typeof e.manifestId == "string" ? e.manifestId : "",
21135
21134
  status: typeof e.status == "string" ? e.status : "",
@@ -21143,8 +21142,8 @@ async function Yw(e) {
21143
21142
  })
21144
21143
  };
21145
21144
  }
21146
- async function Xw(e, t) {
21147
- return uw(k, await sw(e, "importScryptedCatalogModel", {
21145
+ async function Zw(e, t) {
21146
+ return dw(k, await cw(e, "importScryptedCatalogModel", {
21148
21147
  manifestId: t.manifestId,
21149
21148
  ...t.name === void 0 ? {} : { name: t.name },
21150
21149
  ...t.targetNodeId === void 0 ? {} : { targetNodeId: t.targetNodeId }
@@ -21152,7 +21151,7 @@ async function Xw(e, t) {
21152
21151
  }
21153
21152
  //#endregion
21154
21153
  //#region src/components/NodeSelector.tsx
21155
- function Zw({ selectedNodeId: e, onSelect: t }) {
21154
+ function Qw({ selectedNodeId: e, onSelect: t }) {
21156
21155
  return /* @__PURE__ */ v(SS, {
21157
21156
  selectedNodeId: e,
21158
21157
  onSelect: t,
@@ -21162,7 +21161,7 @@ function Zw({ selectedNodeId: e, onSelect: t }) {
21162
21161
  }
21163
21162
  //#endregion
21164
21163
  //#region src/components/Form.tsx
21165
- function Qw({ label: e, children: t }) {
21164
+ function $w({ label: e, children: t }) {
21166
21165
  return /* @__PURE__ */ y("label", {
21167
21166
  className: "space-y-1 block",
21168
21167
  children: [/* @__PURE__ */ v("span", {
@@ -21171,8 +21170,8 @@ function Qw({ label: e, children: t }) {
21171
21170
  }), t]
21172
21171
  });
21173
21172
  }
21174
- function $w({ label: e, value: t, onChange: n, placeholder: r }) {
21175
- return /* @__PURE__ */ v(Qw, {
21173
+ function eT({ label: e, value: t, onChange: n, placeholder: r }) {
21174
+ return /* @__PURE__ */ v($w, {
21176
21175
  label: e,
21177
21176
  children: /* @__PURE__ */ v("input", {
21178
21177
  type: "text",
@@ -21183,8 +21182,8 @@ function $w({ label: e, value: t, onChange: n, placeholder: r }) {
21183
21182
  })
21184
21183
  });
21185
21184
  }
21186
- function eT({ label: e, value: t, onChange: n, min: r, max: i, step: a }) {
21187
- return /* @__PURE__ */ v(Qw, {
21185
+ function tT({ label: e, value: t, onChange: n, min: r, max: i, step: a }) {
21186
+ return /* @__PURE__ */ v($w, {
21188
21187
  label: e,
21189
21188
  children: /* @__PURE__ */ v("input", {
21190
21189
  type: "number",
@@ -21202,7 +21201,7 @@ function eT({ label: e, value: t, onChange: n, min: r, max: i, step: a }) {
21202
21201
  }
21203
21202
  //#endregion
21204
21203
  //#region src/i18n/index.ts
21205
- var { useT: $, Trans: tT, translate: nT } = iC("model-studio", {
21204
+ var { useT: $, Trans: nT, translate: rT } = iC("model-studio", {
21206
21205
  en: {
21207
21206
  common: {
21208
21207
  cancel: "Cancel",
@@ -22059,14 +22058,14 @@ var { useT: $, Trans: tT, translate: nT } = iC("model-studio", {
22059
22058
  unknown: "Importazione bloccata: lo scostamento del catalogo è sconosciuto e non può essere verificato."
22060
22059
  }
22061
22060
  }
22062
- }), rT = {
22061
+ }), iT = {
22063
22062
  pending: "bg-surface-hover",
22064
22063
  active: "bg-warning animate-pulse",
22065
22064
  done: "bg-success",
22066
22065
  error: "bg-danger",
22067
22066
  skipped: "bg-surface-hover"
22068
22067
  };
22069
- function iT({ title: e, steps: t, progress: n, logs: r, status: i, errorMessage: a, onClose: o }) {
22068
+ function aT({ title: e, steps: t, progress: n, logs: r, status: i, errorMessage: a, onClose: o }) {
22070
22069
  let { t: s } = $();
22071
22070
  return /* @__PURE__ */ v("div", {
22072
22071
  className: "fixed inset-0 z-50 flex items-center justify-center bg-black/60 p-4",
@@ -22097,7 +22096,7 @@ function iT({ title: e, steps: t, progress: n, logs: r, status: i, errorMessage:
22097
22096
  className: "space-y-1.5",
22098
22097
  children: t.map((e) => /* @__PURE__ */ y("li", {
22099
22098
  className: "flex items-center gap-2 text-xs",
22100
- children: [/* @__PURE__ */ v("span", { className: `w-1.5 h-1.5 rounded-full shrink-0 ${rT[e.status]}` }), /* @__PURE__ */ y("span", {
22099
+ children: [/* @__PURE__ */ v("span", { className: `w-1.5 h-1.5 rounded-full shrink-0 ${iT[e.status]}` }), /* @__PURE__ */ y("span", {
22101
22100
  className: e.status === "active" ? "text-foreground font-medium" : e.status === "pending" || e.status === "skipped" ? "text-foreground-subtle" : "text-foreground",
22102
22101
  children: [e.label, e.status === "skipped" ? s("importProgress.skipped") : ""]
22103
22102
  })]
@@ -22142,7 +22141,7 @@ function iT({ title: e, steps: t, progress: n, logs: r, status: i, errorMessage:
22142
22141
  })
22143
22142
  });
22144
22143
  }
22145
- function aT(e, t, n = 400) {
22144
+ function oT(e, t, n = 400) {
22146
22145
  let r = t.log !== void 0 && t.log.length > 0 ? t.log : t.phase === "log" ? t.detail ?? "" : `[${t.phase}]${t.detail === void 0 ? "" : ` ${t.detail}`}${t.pct === void 0 ? "" : ` ${t.pct.toFixed(0)}%`}`;
22147
22146
  if (r.trim().length === 0) return e;
22148
22147
  let i = [...e, r];
@@ -22150,13 +22149,13 @@ function aT(e, t, n = 400) {
22150
22149
  }
22151
22150
  //#endregion
22152
22151
  //#region src/ui/operation-sessions.ts
22153
- var oT = 80, sT = [], cT = /* @__PURE__ */ new Set();
22154
- function lT() {
22155
- for (let e of cT) e();
22152
+ var sT = 80, cT = [], lT = /* @__PURE__ */ new Set();
22153
+ function uT() {
22154
+ for (let e of lT) e();
22156
22155
  }
22157
- function uT(e) {
22156
+ function dT(e) {
22158
22157
  let t = `op-${Date.now()}-${Math.random().toString(36).slice(2, 8)}`;
22159
- return sT = [{
22158
+ return cT = [{
22160
22159
  id: t,
22161
22160
  kind: e.kind,
22162
22161
  title: e.title,
@@ -22166,40 +22165,40 @@ function uT(e) {
22166
22165
  status: "running",
22167
22166
  logs: e.logs ?? [],
22168
22167
  startedAt: Date.now()
22169
- }, ...sT].slice(0, oT), lT(), t;
22168
+ }, ...cT].slice(0, sT), uT(), t;
22170
22169
  }
22171
- function dT(e, t) {
22172
- sT = sT.map((n) => n.id === e ? {
22170
+ function fT(e, t) {
22171
+ cT = cT.map((n) => n.id === e ? {
22173
22172
  ...n,
22174
22173
  logs: [...n.logs, t]
22175
- } : n), lT();
22174
+ } : n), uT();
22176
22175
  }
22177
- function fT(e, t) {
22178
- sT = sT.map((n) => n.id === e ? {
22176
+ function pT(e, t) {
22177
+ cT = cT.map((n) => n.id === e ? {
22179
22178
  ...n,
22180
22179
  status: t.status,
22181
22180
  ...t.errorMessage === void 0 ? {} : { errorMessage: t.errorMessage },
22182
22181
  finishedAt: Date.now()
22183
- } : n), lT();
22182
+ } : n), uT();
22184
22183
  }
22185
- function pT(e, t) {
22186
- sT = sT.map((n) => n.id === e ? {
22184
+ function mT(e, t) {
22185
+ cT = cT.map((n) => n.id === e ? {
22187
22186
  ...n,
22188
22187
  logs: t
22189
- } : n), lT();
22188
+ } : n), uT();
22190
22189
  }
22191
22190
  //#endregion
22192
22191
  //#region src/components/OperationModalProvider.tsx
22193
22192
  e();
22194
- var mT = d(null);
22195
- function hT() {
22196
- let e = h(mT);
22193
+ var hT = d(null);
22194
+ function gT() {
22195
+ let e = h(hT);
22197
22196
  if (e === null) throw Error("useOperationModal: missing OperationModalProvider");
22198
22197
  return e;
22199
22198
  }
22200
- function gT({ children: e }) {
22199
+ function _T({ children: e }) {
22201
22200
  let { t } = $(), [n, r] = g(null), i = l((e) => {
22202
- let t = e.initialLog === void 0 ? [] : [e.initialLog], n = uT({
22201
+ let t = e.initialLog === void 0 ? [] : [e.initialLog], n = dT({
22203
22202
  kind: e.kind,
22204
22203
  title: e.title,
22205
22204
  ...e.modelId === void 0 ? {} : { modelId: e.modelId },
@@ -22221,27 +22220,27 @@ function gT({ children: e }) {
22221
22220
  steps: t([...n.steps])
22222
22221
  });
22223
22222
  }, []), s = l((e, t) => {
22224
- dT(e, t), r((n) => n === null || n.sessionId !== e ? n : {
22223
+ fT(e, t), r((n) => n === null || n.sessionId !== e ? n : {
22225
22224
  ...n,
22226
22225
  logs: [...n.logs, t]
22227
22226
  });
22228
22227
  }, []), c = l((e, t) => {
22229
22228
  r((n) => {
22230
22229
  if (n === null || n.sessionId !== e) return n;
22231
- let r = aT(n.logs, t);
22232
- return pT(e, r), {
22230
+ let r = oT(n.logs, t);
22231
+ return mT(e, r), {
22233
22232
  ...n,
22234
22233
  progress: t.phase === "log" ? n.progress : t,
22235
22234
  logs: r
22236
22235
  };
22237
22236
  });
22238
22237
  }, []), u = l((e) => {
22239
- fT(e, { status: "success" }), r((t) => t !== null && t.sessionId === e ? {
22238
+ pT(e, { status: "success" }), r((t) => t !== null && t.sessionId === e ? {
22240
22239
  ...t,
22241
22240
  status: "success"
22242
22241
  } : t);
22243
22242
  }, []), d = l((e, t) => {
22244
- fT(e, {
22243
+ pT(e, {
22245
22244
  status: "error",
22246
22245
  errorMessage: t
22247
22246
  }), r((n) => n !== null && n.sessionId === e ? {
@@ -22287,9 +22286,9 @@ function gT({ children: e }) {
22287
22286
  d,
22288
22287
  f
22289
22288
  ]);
22290
- return /* @__PURE__ */ y(mT.Provider, {
22289
+ return /* @__PURE__ */ y(hT.Provider, {
22291
22290
  value: p,
22292
- children: [e, n !== null && /* @__PURE__ */ v(iT, {
22291
+ children: [e, n !== null && /* @__PURE__ */ v(aT, {
22293
22292
  title: n.title,
22294
22293
  steps: n.steps,
22295
22294
  progress: n.progress,
@@ -22302,22 +22301,22 @@ function gT({ children: e }) {
22302
22301
  }
22303
22302
  //#endregion
22304
22303
  //#region src/scrypted/scrypted-catalog-selectors.ts
22305
- function _T(e) {
22304
+ function vT(e) {
22306
22305
  return typeof e == "string" ? e.includes("x") || e.includes("×") ? e.replace("×", "x") : e : `${e.width}x${e.height}`;
22307
22306
  }
22308
- function vT(e, t) {
22307
+ function yT(e, t) {
22309
22308
  return e.find((e) => e.manifestId === t)?.status;
22310
22309
  }
22311
- function yT(e) {
22312
- if (e.imported) return nT("blocked.imported");
22313
- if (e.registryKnown, e.availabilityKnown, e.driftStatus !== "ok") return e.driftStatus === "missing" ? nT("blocked.missing") : e.driftStatus === "size-changed" ? nT("blocked.sizeChanged") : e.driftStatus === "unavailable" ? nT("blocked.unavailable") : nT("blocked.unknown");
22310
+ function bT(e) {
22311
+ if (e.imported) return rT("blocked.imported");
22312
+ if (e.registryKnown, e.availabilityKnown, e.driftStatus !== "ok") return e.driftStatus === "missing" ? rT("blocked.missing") : e.driftStatus === "size-changed" ? rT("blocked.sizeChanged") : e.driftStatus === "unavailable" ? rT("blocked.unavailable") : rT("blocked.unknown");
22314
22313
  }
22315
- function bT(e, t) {
22314
+ function xT(e, t) {
22316
22315
  return "has" in e ? e.has(t) : e.includes(t);
22317
22316
  }
22318
22317
  //#endregion
22319
22318
  //#region src/scrypted/scrypted-canonical.ts
22320
- var xT = [
22319
+ var ST = [
22321
22320
  "edgetpu",
22322
22321
  "int8",
22323
22322
  "full_integer_quant",
@@ -22325,99 +22324,99 @@ var xT = [
22325
22324
  "float16",
22326
22325
  "float32"
22327
22326
  ];
22328
- function ST(e) {
22327
+ function CT(e) {
22329
22328
  return /^yolov9([tsmc])$/i.exec(e)?.[1]?.toLowerCase() ?? e;
22330
22329
  }
22331
- function CT(e) {
22330
+ function wT(e) {
22332
22331
  let t = e.toLowerCase();
22333
22332
  return t === "int8" || t === "uint8" || t === "integer_quant" || t === "full_integer_quant" || t === "edgetpu";
22334
22333
  }
22335
- function wT(e) {
22336
- let t = ST(e.family), n = e.inputSize.width === e.inputSize.height ? e.inputSize.width : Math.max(e.inputSize.width, e.inputSize.height), r = `scrypted-yolov9${t}-${e.variant}`;
22337
- return CT(e.precision) && (r += "-int8"), r += `-${n}`, r;
22338
- }
22339
22334
  function TT(e) {
22340
- let t = CC.filter((t) => t.format === "tflite" && wT(t) === e);
22335
+ let t = CT(e.family), n = e.inputSize.width === e.inputSize.height ? e.inputSize.width : Math.max(e.inputSize.width, e.inputSize.height), r = `scrypted-yolov9${t}-${e.variant}`;
22336
+ return wT(e.precision) && (r += "-int8"), r += `-${n}`, r;
22337
+ }
22338
+ function ET(e) {
22339
+ let t = CC.filter((t) => t.format === "tflite" && TT(t) === e);
22341
22340
  if (t.length !== 0) return t.toSorted((e, t) => {
22342
- let n = xT.indexOf(e.precision.toLowerCase()), r = xT.indexOf(t.precision.toLowerCase());
22341
+ let n = ST.indexOf(e.precision.toLowerCase()), r = ST.indexOf(t.precision.toLowerCase());
22343
22342
  return (n === -1 ? 99 : n) - (r === -1 ? 99 : r);
22344
22343
  })[0];
22345
22344
  }
22346
- function ET(e, t) {
22347
- if (t === "tflite") return TT(e)?.id;
22348
- let n = CC.filter((n) => n.format === t && wT(n) === e);
22345
+ function DT(e, t) {
22346
+ if (t === "tflite") return ET(e)?.id;
22347
+ let n = CC.filter((n) => n.format === t && TT(n) === e);
22349
22348
  if (n.length !== 0) return n.toSorted((e, t) => e.files.reduce((e, t) => e + t.size, 0) - t.files.reduce((e, t) => e + t.size, 0))[0]?.id;
22350
22349
  }
22351
22350
  //#endregion
22352
22351
  //#region src/scrypted/scrypted-as-variant-sources.ts
22353
- var DT = new Set([
22352
+ var OT = new Set([
22354
22353
  "onnx",
22355
22354
  "openvino",
22356
22355
  "coreml",
22357
22356
  "tflite",
22358
22357
  "pt"
22359
- ]), OT = {
22358
+ ]), kT = {
22360
22359
  t: "Tiny",
22361
22360
  s: "Small",
22362
22361
  m: "Medium",
22363
22362
  c: "Compact"
22364
22363
  };
22365
- function kT(e) {
22366
- return DT.has(e);
22367
- }
22368
22364
  function AT(e) {
22369
- return /^yolov9([tsmc])$/i.exec(e)?.[1]?.toLowerCase() ?? e;
22365
+ return OT.has(e);
22370
22366
  }
22371
22367
  function jT(e) {
22368
+ return /^yolov9([tsmc])$/i.exec(e)?.[1]?.toLowerCase() ?? e;
22369
+ }
22370
+ function MT(e) {
22372
22371
  let t = e.toLowerCase();
22373
22372
  return t === "int8" || t === "uint8" || t === "integer_quant" || t === "full_integer_quant" || t === "edgetpu" ? "int8" : "fp32";
22374
22373
  }
22375
- function MT(e) {
22376
- let t = _T(e.inputSize), n = /^(\d+)x(\d+)$/i.exec(t);
22374
+ function NT(e) {
22375
+ let t = vT(e.inputSize), n = /^(\d+)x(\d+)$/i.exec(t);
22377
22376
  if (!n) return;
22378
22377
  let r = Number(n[1]), i = Number(n[2]);
22379
22378
  if (!(!Number.isFinite(r) || !Number.isFinite(i))) return r === i ? r : Math.max(r, i);
22380
22379
  }
22381
- function NT(e) {
22380
+ function PT(e) {
22382
22381
  let t = e.model.formats[e.format]?.sizeMB;
22383
22382
  return typeof t == "number" && t > 0 ? t : e.files.reduce((e, t) => e + t.size, 0) / 1e6;
22384
22383
  }
22385
- function PT(e, t) {
22386
- let n = OT[e] ?? e.toUpperCase();
22384
+ function FT(e, t) {
22385
+ let n = kT[e] ?? e.toUpperCase();
22387
22386
  return t === "int8" ? `YOLOv9 ${n} · Int8` : `YOLOv9 ${n}`;
22388
22387
  }
22389
- function FT(e) {
22388
+ function IT(e) {
22390
22389
  return [
22391
22390
  "yolov9",
22392
- AT(e.family),
22391
+ jT(e.family),
22393
22392
  e.variant,
22394
- jT(e.precision),
22395
- String(MT(e) ?? "")
22393
+ MT(e.precision),
22394
+ String(NT(e) ?? "")
22396
22395
  ].join("|");
22397
22396
  }
22398
- function IT(e) {
22399
- return wT(e);
22400
- }
22401
22397
  function LT(e) {
22398
+ return TT(e);
22399
+ }
22400
+ function RT(e) {
22402
22401
  let t = /* @__PURE__ */ new Map();
22403
22402
  for (let n of e) {
22404
- if (!kT(n.format)) continue;
22405
- let e = AT(n.family), r = jT(n.precision), i = FT(n), a = NT(n), o = t.get(i);
22403
+ if (!AT(n.format)) continue;
22404
+ let e = jT(n.family), r = MT(n.precision), i = IT(n), a = PT(n), o = t.get(i);
22406
22405
  if (o) {
22407
22406
  let e = o.formats[n.format];
22408
22407
  (e === void 0 || a < e.sizeMB) && (o.formats[n.format] = { sizeMB: a });
22409
22408
  continue;
22410
22409
  }
22411
22410
  t.set(i, {
22412
- sourceId: IT(n),
22413
- name: PT(e, r),
22411
+ sourceId: LT(n),
22412
+ name: FT(e, r),
22414
22413
  formats: { [n.format]: { sizeMB: a } },
22415
22414
  group: {
22416
22415
  family: "yolov9",
22417
22416
  tier: e,
22418
22417
  precision: r,
22419
22418
  ...n.variant === "relu_test" ? { optimization: "test" } : {},
22420
- ...MT(n) === void 0 ? {} : { resolution: MT(n) }
22419
+ ...NT(n) === void 0 ? {} : { resolution: NT(n) }
22421
22420
  }
22422
22421
  });
22423
22422
  }
@@ -22430,18 +22429,18 @@ function LT(e) {
22430
22429
  }
22431
22430
  //#endregion
22432
22431
  //#region src/components/register-shared.tsx
22433
- var RT = "w-full px-3 py-1.5 text-xs rounded-md border border-border bg-surface text-foreground focus:outline-none focus:border-primary/50 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-primary motion-reduce:transition-none disabled:opacity-50";
22434
- function zT(e) {
22432
+ var zT = "w-full px-3 py-1.5 text-xs rounded-md border border-border bg-surface text-foreground focus:outline-none focus:border-primary/50 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-primary motion-reduce:transition-none disabled:opacity-50";
22433
+ function BT(e) {
22435
22434
  return e.count === void 0 ? e.label : `${e.label} (${e.count})`;
22436
22435
  }
22437
- function BT({ label: e, value: t, options: n, onChange: r, disabled: i = !1, placeholder: a = "Select…", compactWhenSingle: o = !1, formatOption: s = zT, hint: c }) {
22438
- return n.length === 0 ? null : o && n.length === 1 ? c ? /* @__PURE__ */ v(b, { children: c }) : null : /* @__PURE__ */ y(Qw, {
22436
+ function VT({ label: e, value: t, options: n, onChange: r, disabled: i = !1, placeholder: a = "Select…", compactWhenSingle: o = !1, formatOption: s = BT, hint: c }) {
22437
+ return n.length === 0 ? null : o && n.length === 1 ? c ? /* @__PURE__ */ v(b, { children: c }) : null : /* @__PURE__ */ y($w, {
22439
22438
  label: e,
22440
22439
  children: [/* @__PURE__ */ y("select", {
22441
22440
  value: t,
22442
22441
  onChange: (e) => r(e.target.value),
22443
22442
  disabled: i || n.length === 0,
22444
- className: RT,
22443
+ className: zT,
22445
22444
  children: [t === "" && /* @__PURE__ */ v("option", {
22446
22445
  value: "",
22447
22446
  disabled: !0,
@@ -22456,7 +22455,7 @@ function BT({ label: e, value: t, options: n, onChange: r, disabled: i = !1, pla
22456
22455
  //#endregion
22457
22456
  //#region src/components/SourceModelBrowser.tsx
22458
22457
  e();
22459
- function VT({ preSelectors: e = [], catalog: t, value: n, onChange: r, title: i, subtitle: a, actionRow: o, renderActionRow: s, footer: c, emptyMessage: l, testId: u = "source-model-browser" }) {
22458
+ function HT({ preSelectors: e = [], catalog: t, value: n, onChange: r, title: i, subtitle: a, actionRow: o, renderActionRow: s, footer: c, emptyMessage: l, testId: u = "source-model-browser" }) {
22460
22459
  let { t: d } = $(), f = me(t), [p, m] = g({});
22461
22460
  return /* @__PURE__ */ y("div", {
22462
22461
  className: "space-y-3",
@@ -22465,7 +22464,7 @@ function VT({ preSelectors: e = [], catalog: t, value: n, onChange: r, title: i,
22465
22464
  e.length > 0 && /* @__PURE__ */ v("div", {
22466
22465
  className: "space-y-3",
22467
22466
  "data-testid": "source-pre-selectors",
22468
- children: e.map((e) => /* @__PURE__ */ v(BT, {
22467
+ children: e.map((e) => /* @__PURE__ */ v(VT, {
22469
22468
  label: e.label,
22470
22469
  value: e.value,
22471
22470
  options: e.options,
@@ -22516,22 +22515,22 @@ function VT({ preSelectors: e = [], catalog: t, value: n, onChange: r, title: i,
22516
22515
  }
22517
22516
  //#endregion
22518
22517
  //#region src/components/FormatImportRow.tsx
22519
- var HT = {
22518
+ var UT = {
22520
22519
  onnx: "ONNX",
22521
22520
  openvino: "OpenVINO",
22522
22521
  coreml: "CoreML",
22523
22522
  tflite: "TFLite",
22524
22523
  pt: "PyTorch"
22525
22524
  };
22526
- function UT({ entries: e, registeredIds: t, isImported: n, presence: r = [], busyId: i, onImport: a, onDistributeAll: o, distributeBusy: s = !1 }) {
22527
- let { t: c } = $(), l = (e) => n === void 0 ? t === null ? !1 : bT(t, e.id) : n(e), u = t !== null && e.some((e) => l(e));
22525
+ function WT({ entries: e, registeredIds: t, isImported: n, presence: r = [], busyId: i, onImport: a, onDistributeAll: o, distributeBusy: s = !1 }) {
22526
+ let { t: c } = $(), l = (e) => n === void 0 ? t === null ? !1 : xT(t, e.id) : n(e), u = t !== null && e.some((e) => l(e));
22528
22527
  return /* @__PURE__ */ y("div", {
22529
22528
  className: "space-y-2 pt-1",
22530
22529
  children: [
22531
22530
  /* @__PURE__ */ v("div", {
22532
22531
  className: "flex flex-wrap gap-2",
22533
22532
  children: e.map((e) => {
22534
- let n = l(e), r = yT({
22533
+ let n = l(e), r = bT({
22535
22534
  driftStatus: e.driftStatus ?? "ok",
22536
22535
  imported: n,
22537
22536
  registryKnown: t !== null
@@ -22541,7 +22540,7 @@ function UT({ entries: e, registeredIds: t, isImported: n, presence: r = [], bus
22541
22540
  children: [
22542
22541
  /* @__PURE__ */ v("span", {
22543
22542
  className: "font-mono text-foreground",
22544
- children: HT[e.format] ?? e.format
22543
+ children: UT[e.format] ?? e.format
22545
22544
  }),
22546
22545
  typeof e.sizeMB == "number" && /* @__PURE__ */ v("span", {
22547
22546
  className: "text-foreground-subtle",
@@ -22595,11 +22594,11 @@ function UT({ entries: e, registeredIds: t, isImported: n, presence: r = [], bus
22595
22594
  }
22596
22595
  //#endregion
22597
22596
  //#region src/components/DisplayNameField.tsx
22598
- function WT({ value: e, onChange: t, defaultName: n }) {
22597
+ function GT({ value: e, onChange: t, defaultName: n }) {
22599
22598
  let { t: r } = $(), i = IC(e);
22600
22599
  return /* @__PURE__ */ y("div", {
22601
22600
  className: "space-y-1",
22602
- children: [/* @__PURE__ */ v(Qw, {
22601
+ children: [/* @__PURE__ */ v($w, {
22603
22602
  label: r("displayName.label"),
22604
22603
  children: /* @__PURE__ */ v("input", {
22605
22604
  type: "text",
@@ -22618,40 +22617,40 @@ function WT({ value: e, onChange: t, defaultName: n }) {
22618
22617
  })]
22619
22618
  });
22620
22619
  }
22621
- function GT(e) {
22620
+ function KT(e) {
22622
22621
  let t = IC(e);
22623
22622
  return t.kind === "set" ? t.name : void 0;
22624
22623
  }
22625
- function KT(e) {
22624
+ function qT(e) {
22626
22625
  return IC(e).kind === "invalid";
22627
22626
  }
22628
22627
  //#endregion
22629
22628
  //#region src/tabs/ScryptedTab.tsx
22630
22629
  e();
22631
- var qT = [
22630
+ var JT = [
22632
22631
  "onnx",
22633
22632
  "openvino",
22634
22633
  "coreml",
22635
22634
  "tflite"
22636
- ], JT = [{
22635
+ ], YT = [{
22637
22636
  value: "relu",
22638
22637
  key: "standard"
22639
22638
  }, {
22640
22639
  value: "relu_test",
22641
22640
  key: "test"
22642
22641
  }];
22643
- function YT({ trpc: e, landNodeId: n, onImported: r }) {
22644
- let { t: a } = $(), s = hT(), [c, u] = g(null), [d, f] = g([]), [p, m] = g(null), [h, _] = g({}), [b, x] = g({}), [S, C] = g(null), [w, T] = g(null), [E, ee] = g(null), [te, D] = g("relu"), [O, k] = g(""), [A, ne] = g(""), [j, re] = g(null), [M, ie] = g(""), ae = t(0), N = t(!1), oe = n !== void 0 && n.length > 0 ? n : M.length > 0 ? M : void 0, P = l(async () => {
22642
+ function XT({ trpc: e, landNodeId: n, onImported: r }) {
22643
+ let { t: a } = $(), s = gT(), [c, u] = g(null), [d, f] = g([]), [p, m] = g(null), [h, _] = g({}), [b, x] = g({}), [S, C] = g(null), [w, T] = g(null), [E, ee] = g(null), [te, D] = g("relu"), [O, k] = g(""), [A, ne] = g(""), [j, re] = g(null), [M, ie] = g(""), ae = t(0), N = t(!1), oe = n !== void 0 && n.length > 0 ? n : M.length > 0 ? M : void 0, P = l(async () => {
22645
22644
  let t = ++ae.current;
22646
22645
  C(null);
22647
22646
  try {
22648
- let n = Yw(e), r = pw(e).then((e) => ({
22647
+ let n = Xw(e), r = mw(e).then((e) => ({
22649
22648
  ok: !0,
22650
22649
  value: e
22651
- }), () => ({ ok: !1 })), i = mw(e).then((e) => ({
22650
+ }), () => ({ ok: !1 })), i = hw(e).then((e) => ({
22652
22651
  ok: !0,
22653
22652
  value: e
22654
- }), () => ({ ok: !1 })), a = Jw(e).then((e) => e, () => []), [o, s, c, l] = await Promise.all([
22653
+ }), () => ({ ok: !1 })), a = Yw(e).then((e) => e, () => []), [o, s, c, l] = await Promise.all([
22655
22654
  n,
22656
22655
  r,
22657
22656
  i,
@@ -22677,9 +22676,9 @@ function YT({ trpc: e, landNodeId: n, onImported: r }) {
22677
22676
  i(() => {
22678
22677
  P();
22679
22678
  }, [P]);
22680
- let F = o(() => (c ?? []).filter((e) => e.variant === te), [c, te]), se = o(() => LT(F), [F]), ce = o(() => new Map(se.map((e) => [e.id, e])), [se]), le = O.length > 0 && ce.has(O) ? O : se[0]?.id ?? "", ue = l(async (t) => {
22681
- if (N.current || KT(A)) return;
22682
- let i = GT(A);
22679
+ let F = o(() => (c ?? []).filter((e) => e.variant === te), [c, te]), se = o(() => RT(F), [F]), ce = o(() => new Map(se.map((e) => [e.id, e])), [se]), le = O.length > 0 && ce.has(O) ? O : se[0]?.id ?? "", ue = l(async (t) => {
22680
+ if (N.current || qT(A)) return;
22681
+ let i = KT(A);
22683
22682
  N.current = !0, T(t.id), ee(null);
22684
22683
  let o = t.format === "tflite" ? oe : n !== void 0 && n.length > 0 ? n : void 0;
22685
22684
  try {
@@ -22706,18 +22705,18 @@ function YT({ trpc: e, landNodeId: n, onImported: r }) {
22706
22705
  modelId: t.canonicalId
22707
22706
  })
22708
22707
  }, async ({ appendLog: n, patchSteps: r }) => {
22709
- if (t.mode === "native") await Xw(e, {
22708
+ if (t.mode === "native") await Zw(e, {
22710
22709
  manifestId: t.manifestId,
22711
22710
  ...i === void 0 ? {} : { name: i },
22712
22711
  ...o === void 0 ? {} : { targetNodeId: o }
22713
22712
  }), n(o === void 0 ? a("importOp.intoRegistry", { format: t.format }) : a("importOp.landed", { nodeId: o }));
22714
22713
  else {
22715
22714
  let r = p?.has(t.canonicalId) === !0, s = (h[t.canonicalId] ?? []).includes("onnx");
22716
- (!r || !s) && (n(a("scrypted.onnxFirst")), await Xw(e, {
22715
+ (!r || !s) && (n(a("scrypted.onnxFirst")), await Zw(e, {
22717
22716
  manifestId: t.onnxManifestId,
22718
22717
  ...i === void 0 ? {} : { name: i },
22719
22718
  ...o === void 0 ? {} : { targetNodeId: o }
22720
- })), n(a("scrypted.converting", { format: t.format })), await yw(e, t.canonicalId, [t.format]), n(a("scrypted.converted", { format: t.format }));
22719
+ })), n(a("scrypted.converting", { format: t.format })), await bw(e, t.canonicalId, [t.format]), n(a("scrypted.converted", { format: t.format }));
22721
22720
  }
22722
22721
  r((e) => e.map((e) => e.status === "active" || e.status === "pending" ? {
22723
22722
  ...e,
@@ -22759,7 +22758,7 @@ function YT({ trpc: e, landNodeId: n, onImported: r }) {
22759
22758
  children: a("common.retry")
22760
22759
  })]
22761
22760
  });
22762
- let de = ce.get(le), I = de && c ? QT({
22761
+ let de = ce.get(le), I = de && c ? $T({
22763
22762
  filtered: F,
22764
22763
  drift: d,
22765
22764
  sourceId: de.id
@@ -22802,20 +22801,20 @@ function YT({ trpc: e, landNodeId: n, onImported: r }) {
22802
22801
  }),
22803
22802
  n !== void 0 && /* @__PURE__ */ v("p", {
22804
22803
  className: "text-[10px] text-foreground-subtle",
22805
- children: /* @__PURE__ */ v(tT, {
22804
+ children: /* @__PURE__ */ v(nT, {
22806
22805
  i18nKey: "scrypted.landOn",
22807
22806
  values: { nodeId: n },
22808
22807
  components: { mono: /* @__PURE__ */ v("span", { className: "font-mono" }) }
22809
22808
  })
22810
22809
  }),
22811
- /* @__PURE__ */ v(VT, {
22810
+ /* @__PURE__ */ v(HT, {
22812
22811
  testId: "scrypted-browser",
22813
22812
  title: "YOLOv9",
22814
22813
  preSelectors: [{
22815
22814
  id: "variant",
22816
22815
  label: a("scrypted.variant"),
22817
22816
  value: te,
22818
- options: JT.map((e) => ({
22817
+ options: YT.map((e) => ({
22819
22818
  value: e.value,
22820
22819
  label: a(`scrypted.variants.${e.key}`),
22821
22820
  count: (c ?? []).filter((t) => t.variant === e.value).length
@@ -22831,11 +22830,11 @@ function YT({ trpc: e, landNodeId: n, onImported: r }) {
22831
22830
  emptyMessage: a("scrypted.emptyVariant"),
22832
22831
  actionRow: de && L.length > 0 ? /* @__PURE__ */ y("div", {
22833
22832
  className: "space-y-2",
22834
- children: [/* @__PURE__ */ v(WT, {
22833
+ children: [/* @__PURE__ */ v(GT, {
22835
22834
  value: A,
22836
22835
  onChange: ne,
22837
22836
  defaultName: de.name
22838
- }), /* @__PURE__ */ v(UT, {
22837
+ }), /* @__PURE__ */ v(WT, {
22839
22838
  entries: L,
22840
22839
  registeredIds: p,
22841
22840
  isImported: (e) => {
@@ -22854,7 +22853,7 @@ function YT({ trpc: e, landNodeId: n, onImported: r }) {
22854
22853
  ]
22855
22854
  });
22856
22855
  }
22857
- var XT = [
22856
+ var ZT = [
22858
22857
  "edgetpu",
22859
22858
  "int8",
22860
22859
  "full_integer_quant",
@@ -22862,25 +22861,25 @@ var XT = [
22862
22861
  "float16",
22863
22862
  "float32"
22864
22863
  ];
22865
- function ZT(e, t, n) {
22864
+ function QT(e, t, n) {
22866
22865
  let r = e.filter((e) => e.format === t);
22867
22866
  if (r.length !== 0) {
22868
22867
  if (t === "tflite") {
22869
- let e = ET(n, "tflite");
22868
+ let e = DT(n, "tflite");
22870
22869
  return (e === void 0 ? void 0 : r.find((t) => t.id === e)) || r.toSorted((e, t) => {
22871
- let n = XT.indexOf(e.precision.toLowerCase()), r = XT.indexOf(t.precision.toLowerCase());
22870
+ let n = ZT.indexOf(e.precision.toLowerCase()), r = ZT.indexOf(t.precision.toLowerCase());
22872
22871
  return (n === -1 ? 99 : n) - (r === -1 ? 99 : r);
22873
22872
  })[0];
22874
22873
  }
22875
22874
  return r.toSorted((e, t) => e.files.reduce((e, t) => e + t.size, 0) - t.files.reduce((e, t) => e + t.size, 0))[0];
22876
22875
  }
22877
22876
  }
22878
- function QT(e) {
22879
- let t = e.sourceId, n = e.filtered.filter((e) => IT(e) === t);
22877
+ function $T(e) {
22878
+ let t = e.sourceId, n = e.filtered.filter((e) => LT(e) === t);
22880
22879
  if (n.length === 0) return [];
22881
- let r = ZT(n, "onnx", t)?.id ?? ET(t, "onnx"), i = [];
22882
- for (let a of qT) {
22883
- let o = ZT(n, a, t);
22880
+ let r = QT(n, "onnx", t)?.id ?? DT(t, "onnx"), i = [];
22881
+ for (let a of JT) {
22882
+ let o = QT(n, a, t);
22884
22883
  if (o) {
22885
22884
  i.push({
22886
22885
  id: `${t}::${a}`,
@@ -22890,7 +22889,7 @@ function QT(e) {
22890
22889
  canonicalId: t,
22891
22890
  onnxManifestId: r ?? o.id,
22892
22891
  sizeMB: o.model.formats[a]?.sizeMB,
22893
- driftStatus: vT(e.drift, o.id)
22892
+ driftStatus: yT(e.drift, o.id)
22894
22893
  });
22895
22894
  continue;
22896
22895
  }
@@ -22908,14 +22907,14 @@ function QT(e) {
22908
22907
  }
22909
22908
  //#endregion
22910
22909
  //#region src/frigate/frigate-import.ts
22911
- function $T(e, t) {
22910
+ function eE(e, t) {
22912
22911
  return {
22913
22912
  family: e === "mobiledet" ? "ssdlite-mobiledet" : e,
22914
22913
  tier: "default",
22915
22914
  resolution: t
22916
22915
  };
22917
22916
  }
22918
- var eE = {
22917
+ var tE = {
22919
22918
  yolov9: {
22920
22919
  type: "yolov9",
22921
22920
  label: "YOLOv9 (ONNX)",
@@ -22944,7 +22943,7 @@ var eE = {
22944
22943
  notes: "SSDLite MobileDet, EdgeTPU-compiled full-integer TFLite (the Frigate default-model architecture). TFLite_Detection_PostProcess 4-tensor output, decoded by the ssd postprocessor. Requires a Coral (tflite format node)."
22945
22944
  }
22946
22945
  };
22947
- function tE(e) {
22946
+ function nE(e) {
22948
22947
  let t = e.includes("\n") || !e.includes(",") ? e.split("\n") : e.split(","), n = [];
22949
22948
  for (let e of t) {
22950
22949
  let t = e.trim();
@@ -22954,7 +22953,7 @@ function tE(e) {
22954
22953
  }
22955
22954
  return n;
22956
22955
  }
22957
- var nE = [{
22956
+ var rE = [{
22958
22957
  id: "frigate-mobiledet-edgetpu",
22959
22958
  label: "Frigate default — SSDLite MobileDet (EdgeTPU)",
22960
22959
  format: "tflite",
@@ -22965,11 +22964,11 @@ var nE = [{
22965
22964
  labels: /* @__PURE__ */ "person.bicycle.car.motorcycle.airplane.bus.train.car.boat.traffic light.fire hydrant.street sign.stop sign.parking meter.bench.bird.cat.dog.horse.sheep.cow.elephant.bear.zebra.giraffe.hat.backpack.umbrella.shoe.eye glasses.handbag.tie.suitcase.frisbee.skis.snowboard.sports ball.kite.baseball bat.baseball glove.skateboard.surfboard.tennis racket.bottle.plate.wine glass.cup.fork.knife.spoon.bowl.banana.apple.sandwich.orange.broccoli.carrot.hot dog.pizza.donut.cake.chair.couch.potted plant.bed.mirror.dining table.window.desk.toilet.door.tv.laptop.mouse.remote.keyboard.cell phone.microwave.oven.toaster.sink.refrigerator.blender.book.clock.vase.scissors.teddy bear.hair drier.toothbrush.hair brush".split("."),
22966
22965
  license: sC,
22967
22966
  notes: "Frigate's default detection model (the one a stock Frigate + Coral install runs). EdgeTPU-compiled full-integer TFLite, 320×320, TFLite_Detection_PostProcess output → ssd decode. Requires a Coral (tflite format) node."
22968
- }], rE = /^[a-z0-9]{8}-[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{12}:[a-z0-9]{40}$/;
22969
- function iE(e) {
22970
- return rE.test(e);
22967
+ }], iE = /^[a-z0-9]{8}-[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{12}:[a-z0-9]{40}$/;
22968
+ function aE(e) {
22969
+ return iE.test(e);
22971
22970
  }
22972
- var aE = {
22971
+ var oE = {
22973
22972
  n: "Nano",
22974
22973
  t: "Tiny",
22975
22974
  s: "Small",
@@ -22978,14 +22977,14 @@ var aE = {
22978
22977
  l: "Large",
22979
22978
  x: "Extra large"
22980
22979
  };
22981
- function oE(e) {
22980
+ function sE(e) {
22982
22981
  let t = /^(yolov\d+)([a-z])$/.exec(e);
22983
22982
  if (t !== null) {
22984
22983
  let e = t[2];
22985
22984
  return {
22986
22985
  architecture: t[1],
22987
22986
  weight: e,
22988
- weightLabel: aE[e] ?? e.toUpperCase()
22987
+ weightLabel: oE[e] ?? e.toUpperCase()
22989
22988
  };
22990
22989
  }
22991
22990
  return {
@@ -22994,20 +22993,20 @@ function oE(e) {
22994
22993
  weightLabel: ""
22995
22994
  };
22996
22995
  }
22997
- function sE(e) {
22996
+ function cE(e) {
22998
22997
  let t = e.supportedDetectors;
22999
- return t.includes("onnx") || t.includes("openvino") ? "neural" : t.includes("edgetpu") ? "coral" : t.length === 0 ? mE(e.type).format === "tflite" ? "coral" : "neural" : null;
22998
+ return t.includes("onnx") || t.includes("openvino") ? "neural" : t.includes("edgetpu") ? "coral" : t.length === 0 ? hE(e.type).format === "tflite" ? "coral" : "neural" : null;
23000
22999
  }
23001
- function cE(e) {
23000
+ function lE(e) {
23002
23001
  return e.width !== void 0 && e.height !== void 0 ? `${e.width}x${e.height}` : "";
23003
23002
  }
23004
- var lE = (e, t) => t.trainDate.localeCompare(e.trainDate);
23005
- function uE(e, t) {
23003
+ var uE = (e, t) => t.trainDate.localeCompare(e.trainDate);
23004
+ function dE(e, t) {
23006
23005
  let n = /* @__PURE__ */ new Map();
23007
23006
  for (let r of e) for (let e of t(r)) e !== "" && n.set(e, (n.get(e) ?? 0) + 1);
23008
23007
  return n;
23009
23008
  }
23010
- function dE(e, t, n) {
23009
+ function fE(e, t, n) {
23011
23010
  let r = [
23012
23011
  "kind",
23013
23012
  "release",
@@ -23015,46 +23014,46 @@ function dE(e, t, n) {
23015
23014
  "architecture",
23016
23015
  "weight",
23017
23016
  "dimensions"
23018
- ], i = r.indexOf(n), a = oE(e.name);
23017
+ ], i = r.indexOf(n), a = sE(e.name);
23019
23018
  for (let n = 0; n <= i; n++) {
23020
23019
  let i = r[n];
23021
- if (i === "kind" && t.kind !== void 0 && t.kind === "base" !== e.isBaseModel || i === "release" && t.release !== void 0 && e.baseModel !== t.release || i === "detector" && t.detector !== void 0 && !e.supportedDetectors.includes(t.detector) || i === "architecture" && t.architecture !== void 0 && a.architecture !== t.architecture || i === "weight" && t.weight !== void 0 && a.weight !== t.weight || i === "dimensions" && t.dimensions !== void 0 && cE(e) !== t.dimensions) return !1;
23020
+ if (i === "kind" && t.kind !== void 0 && t.kind === "base" !== e.isBaseModel || i === "release" && t.release !== void 0 && e.baseModel !== t.release || i === "detector" && t.detector !== void 0 && !e.supportedDetectors.includes(t.detector) || i === "architecture" && t.architecture !== void 0 && a.architecture !== t.architecture || i === "weight" && t.weight !== void 0 && a.weight !== t.weight || i === "dimensions" && t.dimensions !== void 0 && lE(e) !== t.dimensions) return !1;
23022
23021
  }
23023
23022
  return !0;
23024
23023
  }
23025
- function fE(e, t) {
23026
- let n = uE(e, (e) => [e.isBaseModel ? "base" : "custom"]);
23024
+ function pE(e, t) {
23025
+ let n = dE(e, (e) => [e.isBaseModel ? "base" : "custom"]);
23027
23026
  return {
23028
23027
  kind: ["custom", "base"].filter((e) => (n.get(e) ?? 0) > 0).map((e) => ({
23029
23028
  value: e,
23030
23029
  label: e === "custom" ? "My trainings" : "Official base",
23031
23030
  count: n.get(e)
23032
23031
  })),
23033
- release: [...uE(e.filter((e) => dE(e, t, "kind")), (e) => [e.baseModel]).entries()].toSorted((e, t) => t[0].localeCompare(e[0], void 0, { numeric: !0 })).map(([e, t]) => ({
23032
+ release: [...dE(e.filter((e) => fE(e, t, "kind")), (e) => [e.baseModel]).entries()].toSorted((e, t) => t[0].localeCompare(e[0], void 0, { numeric: !0 })).map(([e, t]) => ({
23034
23033
  value: e,
23035
23034
  label: e,
23036
23035
  count: t
23037
23036
  })),
23038
23037
  detector: [],
23039
- architecture: [...uE(e.filter((e) => dE(e, t, "detector")), (e) => [oE(e.name).architecture]).entries()].toSorted((e, t) => e[0].localeCompare(t[0])).map(([e, t]) => ({
23038
+ architecture: [...dE(e.filter((e) => fE(e, t, "detector")), (e) => [sE(e.name).architecture]).entries()].toSorted((e, t) => e[0].localeCompare(t[0])).map(([e, t]) => ({
23040
23039
  value: e,
23041
23040
  label: e,
23042
23041
  count: t
23043
23042
  })),
23044
- weight: [...uE(e.filter((e) => dE(e, t, "architecture")), (e) => [oE(e.name).weight]).entries()].toSorted((e, t) => e[0].localeCompare(t[0])).map(([e, t]) => ({
23043
+ weight: [...dE(e.filter((e) => fE(e, t, "architecture")), (e) => [sE(e.name).weight]).entries()].toSorted((e, t) => e[0].localeCompare(t[0])).map(([e, t]) => ({
23045
23044
  value: e,
23046
- label: aE[e] ?? e.toUpperCase(),
23045
+ label: oE[e] ?? e.toUpperCase(),
23047
23046
  count: t
23048
23047
  })),
23049
- dimensions: [...uE(e.filter((e) => dE(e, t, "weight")), (e) => [cE(e)]).entries()].toSorted((e, t) => e[0].localeCompare(t[0], void 0, { numeric: !0 })).map(([e, t]) => ({
23048
+ dimensions: [...dE(e.filter((e) => fE(e, t, "weight")), (e) => [lE(e)]).entries()].toSorted((e, t) => e[0].localeCompare(t[0], void 0, { numeric: !0 })).map(([e, t]) => ({
23050
23049
  value: e,
23051
23050
  label: e.replace("x", "×"),
23052
23051
  count: t
23053
23052
  })),
23054
- entries: e.filter((e) => dE(e, t, "dimensions")).toSorted(lE)
23053
+ entries: e.filter((e) => fE(e, t, "dimensions")).toSorted(uE)
23055
23054
  };
23056
23055
  }
23057
- var pE = {
23056
+ var mE = {
23058
23057
  mobiledet: {
23059
23058
  format: "tflite",
23060
23059
  postprocessor: "ssd",
@@ -23079,8 +23078,8 @@ var pE = {
23079
23078
  extension: ".onnx"
23080
23079
  }
23081
23080
  };
23082
- function mE(e) {
23083
- return pE[e] ?? {
23081
+ function hE(e) {
23082
+ return mE[e] ?? {
23084
23083
  format: "onnx",
23085
23084
  extension: ".onnx"
23086
23085
  };
@@ -23088,12 +23087,12 @@ function mE(e) {
23088
23087
  //#endregion
23089
23088
  //#region src/components/TfliteGate.tsx
23090
23089
  e();
23091
- function hE(e, t) {
23090
+ function gE(e, t) {
23092
23091
  let [n, r] = g(null);
23093
23092
  return i(() => {
23094
23093
  if (!t) return;
23095
23094
  let n = !1;
23096
- return Jw(e).then((e) => {
23095
+ return Yw(e).then((e) => {
23097
23096
  n || r(e);
23098
23097
  }).catch(() => {
23099
23098
  n || r([]);
@@ -23102,7 +23101,7 @@ function hE(e, t) {
23102
23101
  };
23103
23102
  }, [e, t]), t ? n : [];
23104
23103
  }
23105
- function gE({ nodes: e }) {
23104
+ function _E({ nodes: e }) {
23106
23105
  let { t } = $();
23107
23106
  return e === null ? /* @__PURE__ */ v("div", {
23108
23107
  className: "text-[10px] text-foreground-subtle",
@@ -23117,7 +23116,7 @@ function gE({ nodes: e }) {
23117
23116
  }
23118
23117
  //#endregion
23119
23118
  //#region src/frigate/frigate-as-variant-sources.ts
23120
- var _E = {
23119
+ var vE = {
23121
23120
  n: "Nano",
23122
23121
  t: "Tiny",
23123
23122
  s: "Small",
@@ -23125,30 +23124,30 @@ var _E = {
23125
23124
  c: "Compact",
23126
23125
  l: "Large",
23127
23126
  x: "Extra large"
23128
- }, vE = [
23127
+ }, yE = [
23129
23128
  "onnx",
23130
23129
  "openvino",
23131
23130
  "coreml",
23132
23131
  "tflite"
23133
23132
  ];
23134
- function yE(e) {
23135
- return e.filter((e) => sE(e) !== null);
23136
- }
23137
23133
  function bE(e) {
23134
+ return e.filter((e) => cE(e) !== null);
23135
+ }
23136
+ function xE(e) {
23138
23137
  if (e.width !== void 0 && e.height !== void 0) return e.width === e.height ? e.width : Math.max(e.width, e.height);
23139
- let t = /^(\d+)x(\d+)$/.exec(cE(e));
23138
+ let t = /^(\d+)x(\d+)$/.exec(lE(e));
23140
23139
  if (!t) return;
23141
23140
  let n = Number(t[1]), r = Number(t[2]);
23142
23141
  if (!(!Number.isFinite(n) || !Number.isFinite(r))) return n === r ? n : Math.max(n, r);
23143
23142
  }
23144
- function xE(e, t) {
23143
+ function SE(e, t) {
23145
23144
  if (t.length === 0) return e === "mobiledet" ? "SSDLite MobileDet" : e === "yolonas" ? "YOLO-NAS" : e.toUpperCase();
23146
- let n = _E[t] ?? t.toUpperCase();
23145
+ let n = vE[t] ?? t.toUpperCase();
23147
23146
  return e.startsWith("yolo") ? `${e.replace(/^yolo/i, "YOLO")} ${n}` : `${e} ${n}`;
23148
23147
  }
23149
- var SE = (e, t) => t.trainDate.localeCompare(e.trainDate);
23150
- function CE(e) {
23151
- let t = [...e].toSorted(SE), n = t.find((e) => sE(e) === "neural"), r = t.find((e) => sE(e) === "coral"), i = [];
23148
+ var CE = (e, t) => t.trainDate.localeCompare(e.trainDate);
23149
+ function wE(e) {
23150
+ let t = [...e].toSorted(CE), n = t.find((e) => cE(e) === "neural"), r = t.find((e) => cE(e) === "coral"), i = [];
23152
23151
  return n !== void 0 && (i.push({
23153
23152
  format: "onnx",
23154
23153
  plusModelId: n.id,
@@ -23169,33 +23168,33 @@ function CE(e) {
23169
23168
  plusModelId: r.id,
23170
23169
  via: "download",
23171
23170
  needsCoral: !0
23172
- }), i.toSorted((e, t) => vE.indexOf(e.format) - vE.indexOf(t.format));
23171
+ }), i.toSorted((e, t) => yE.indexOf(e.format) - yE.indexOf(t.format));
23173
23172
  }
23174
- function wE(e) {
23173
+ function TE(e) {
23175
23174
  let t = /* @__PURE__ */ new Map();
23176
23175
  for (let n of e) {
23177
23176
  let e = n.trainDate.slice(0, 10);
23178
23177
  t.set(e, [...t.get(e) ?? [], n]);
23179
23178
  }
23180
23179
  return [...t.entries()].map(([e, t]) => {
23181
- let n = t.toSorted(SE);
23180
+ let n = t.toSorted(CE);
23182
23181
  return {
23183
23182
  key: e,
23184
23183
  trainDate: n[0]?.trainDate ?? "",
23185
23184
  verifiedImages: Math.max(0, ...n.map((e) => e.verifiedImages)),
23186
23185
  builds: n,
23187
- offers: CE(n)
23186
+ offers: wE(n)
23188
23187
  };
23189
23188
  }).filter((e) => e.offers.length > 0).toSorted((e, t) => t.trainDate.localeCompare(e.trainDate));
23190
23189
  }
23191
- function TE(e) {
23190
+ function EE(e) {
23192
23191
  let t = /* @__PURE__ */ new Map();
23193
- for (let n of yE(e)) {
23194
- let e = oE(n.name), r = e.weight.length > 0 ? e.weight : "default", i = bE(n), a = `${n.name}${i === void 0 ? "" : `-${i}`}`, o = t.get(a) ?? {
23192
+ for (let n of bE(e)) {
23193
+ let e = sE(n.name), r = e.weight.length > 0 ? e.weight : "default", i = xE(n), a = `${n.name}${i === void 0 ? "" : `-${i}`}`, o = t.get(a) ?? {
23195
23194
  family: e.architecture,
23196
23195
  tier: r,
23197
23196
  ...i === void 0 ? {} : { resolution: i },
23198
- name: xE(e.architecture, e.weight),
23197
+ name: SE(e.architecture, e.weight),
23199
23198
  builds: []
23200
23199
  };
23201
23200
  t.set(a, {
@@ -23205,7 +23204,7 @@ function TE(e) {
23205
23204
  }
23206
23205
  let n = /* @__PURE__ */ new Map(), r = [];
23207
23206
  for (let [e, i] of t) {
23208
- let t = wE(i.builds), a = t[0];
23207
+ let t = TE(i.builds), a = t[0];
23209
23208
  a !== void 0 && (n.set(e, {
23210
23209
  sourceId: e,
23211
23210
  family: i.family,
@@ -23232,13 +23231,13 @@ function TE(e) {
23232
23231
  //#endregion
23233
23232
  //#region src/tabs/use-plus-import.ts
23234
23233
  e();
23235
- function EE(e) {
23236
- return e.length === 0 ? "" : nT("plusImport.conversions", { parts: e.map((e) => e.ok ? `${e.format} ✓${e.nodeId ? ` (${e.nodeId})` : ""}` : `${e.format} ✗ — ${e.error ?? nT("plusImport.conversionFailedWord")}`).join("; ") });
23234
+ function DE(e) {
23235
+ return e.length === 0 ? "" : rT("plusImport.conversions", { parts: e.map((e) => e.ok ? `${e.format} ✓${e.nodeId ? ` (${e.nodeId})` : ""}` : `${e.format} ✗ — ${e.error ?? rT("plusImport.conversionFailedWord")}`).join("; ") });
23237
23236
  }
23238
- function DE({ trpc: e, onRegistered: t, onError: n, landNodeId: r }) {
23237
+ function OE({ trpc: e, onRegistered: t, onError: n, landNodeId: r }) {
23239
23238
  let { t: a } = $(), [o, s] = g(null), [c, u] = g({}), [d, f] = g({}), [p, m] = g(null), [h, _] = g(null), v = l(async () => {
23240
23239
  try {
23241
- let [t, n] = await Promise.all([pw(e), mw(e)]);
23240
+ let [t, n] = await Promise.all([mw(e), hw(e)]);
23242
23241
  s(new Set(t.map((e) => e.entry.id)));
23243
23242
  let r = {}, i = {};
23244
23243
  for (let e of t) r[e.entry.id] = VC(e.entry), i[e.entry.id] = HC(n, e.entry.id);
@@ -23286,7 +23285,7 @@ function DE({ trpc: e, onRegistered: t, onError: n, landNodeId: r }) {
23286
23285
  plusModelId: i
23287
23286
  })],
23288
23287
  status: "running",
23289
- sessionId: uT({
23288
+ sessionId: dT({
23290
23289
  kind: f ? "convert" : "import",
23291
23290
  title: a("plusImport.title", {
23292
23291
  name: l,
@@ -23307,9 +23306,9 @@ function DE({ trpc: e, onRegistered: t, onError: n, landNodeId: r }) {
23307
23306
  steps: e([...t.steps])
23308
23307
  });
23309
23308
  }, g = (e) => {
23310
- _((t) => t === null ? t : (dT(t.sessionId, e), {
23309
+ _((t) => t === null ? t : (fT(t.sessionId, e), {
23311
23310
  ...t,
23312
- logs: aT(t.logs, {
23311
+ logs: oT(t.logs, {
23313
23312
  phase: "log",
23314
23313
  log: e
23315
23314
  })
@@ -23319,11 +23318,11 @@ function DE({ trpc: e, onRegistered: t, onError: n, landNodeId: r }) {
23319
23318
  ...n,
23320
23319
  status: t
23321
23320
  } : n));
23322
- }, b = Nw(e, (e) => {
23321
+ }, b = Pw(e, (e) => {
23323
23322
  _((t) => {
23324
23323
  if (t === null) return t;
23325
- let n = aT(t.logs, e);
23326
- return pT(t.sessionId, n), {
23324
+ let n = oT(t.logs, e);
23325
+ return mT(t.sessionId, n), {
23327
23326
  ...t,
23328
23327
  progress: e.phase === "log" ? t.progress : e,
23329
23328
  logs: n
@@ -23335,7 +23334,7 @@ function DE({ trpc: e, onRegistered: t, onError: n, landNodeId: r }) {
23335
23334
  if (s === "onnx" || s === "tflite") if (r) g(a("plusImport.alreadyInLibrary", { format: s })), y("download", "done"), y("register", "done");
23336
23335
  else {
23337
23336
  g(a("plusImport.downloadingNative", { format: s }));
23338
- let n = await Rw(e, {
23337
+ let n = await zw(e, {
23339
23338
  plusModelId: i,
23340
23339
  ...u === void 0 ? {} : { name: u },
23341
23340
  ensureFormats: [],
@@ -23353,14 +23352,14 @@ function DE({ trpc: e, onRegistered: t, onError: n, landNodeId: r }) {
23353
23352
  }
23354
23353
  else if (f) if (!n) {
23355
23354
  g(a("plusImport.onnxMissing"));
23356
- let n = await Rw(e, {
23355
+ let n = await zw(e, {
23357
23356
  plusModelId: i,
23358
23357
  ...u === void 0 ? {} : { name: u },
23359
23358
  ensureFormats: [s],
23360
23359
  format: "onnx"
23361
23360
  });
23362
23361
  y("download", "done"), y("register", "done"), y("convert", n.conversions.some((e) => e.format === s && e.ok) ? "done" : "error");
23363
- let r = EE(n.conversions);
23362
+ let r = DE(n.conversions);
23364
23363
  g(a("plusImport.registeredConv", {
23365
23364
  modelId: n.modelId,
23366
23365
  summary: r
@@ -23375,15 +23374,15 @@ function DE({ trpc: e, onRegistered: t, onError: n, landNodeId: r }) {
23375
23374
  }));
23376
23375
  else {
23377
23376
  y("download", "done"), y("register", "done"), y("convert", "active"), g(a("plusImport.converting", { format: s }));
23378
- let n = await yw(e, d, [s]), r = n.conversions.some((e) => e.format === s && e.ok);
23379
- if (y("convert", r ? "done" : "error"), g(a("plusImport.conversionLog", { summary: EE(n.conversions) })), !r) throw Error(n.conversions.find((e) => e.format === s)?.error ?? a("plusImport.conversionFailed", { format: s }));
23377
+ let n = await bw(e, d, [s]), r = n.conversions.some((e) => e.format === s && e.ok);
23378
+ if (y("convert", r ? "done" : "error"), g(a("plusImport.conversionLog", { summary: DE(n.conversions) })), !r) throw Error(n.conversions.find((e) => e.format === s)?.error ?? a("plusImport.conversionFailed", { format: s }));
23380
23379
  t(a("plusImport.converted", {
23381
23380
  registryId: d,
23382
23381
  format: s,
23383
- summary: EE(n.conversions)
23382
+ summary: DE(n.conversions)
23384
23383
  }));
23385
23384
  }
23386
- await v(), _((e) => e === null ? e : (fT(e.sessionId, { status: "success" }), {
23385
+ await v(), _((e) => e === null ? e : (pT(e.sessionId, { status: "success" }), {
23387
23386
  ...e,
23388
23387
  status: "success",
23389
23388
  steps: e.steps.map((e) => e.status === "active" || e.status === "pending" ? {
@@ -23394,7 +23393,7 @@ function DE({ trpc: e, onRegistered: t, onError: n, landNodeId: r }) {
23394
23393
  }));
23395
23394
  } catch (e) {
23396
23395
  let t = e instanceof Error ? e.message : a("importOp.failed");
23397
- _((e) => e === null ? e : (fT(e.sessionId, {
23396
+ _((e) => e === null ? e : (pT(e.sessionId, {
23398
23397
  status: "error",
23399
23398
  errorMessage: t
23400
23399
  }), {
@@ -23432,11 +23431,11 @@ function DE({ trpc: e, onRegistered: t, onError: n, landNodeId: r }) {
23432
23431
  //#endregion
23433
23432
  //#region src/tabs/FrigatePlusCatalog.tsx
23434
23433
  e();
23435
- var OE = ["kind", "release"];
23436
- function kE(e, t) {
23434
+ var kE = ["kind", "release"];
23435
+ function AE(e, t) {
23437
23436
  let n = { ...t };
23438
- for (let t of OE) {
23439
- let r = fE(e, n)[t], i = n[t], a = r[0];
23437
+ for (let t of kE) {
23438
+ let r = pE(e, n)[t], i = n[t], a = r[0];
23440
23439
  a !== void 0 && (i === void 0 || !r.some((e) => e.value === i)) && (n = t === "kind" ? {
23441
23440
  ...n,
23442
23441
  kind: a.value === "base" ? "base" : "custom"
@@ -23447,23 +23446,23 @@ function kE(e, t) {
23447
23446
  }
23448
23447
  return n;
23449
23448
  }
23450
- function AE(e, t) {
23449
+ function jE(e, t) {
23451
23450
  return e === null ? t("plus.checkingCoral") : e.length === 0 ? t("plus.needsCoral") : void 0;
23452
23451
  }
23453
- function jE({ trpc: e, models: t, onRegistered: n, onError: r, landNodeId: i }) {
23454
- let { t: a } = $(), [s, c] = g({}), [l, u] = g(""), d = DE({
23452
+ function ME({ trpc: e, models: t, onRegistered: n, onError: r, landNodeId: i }) {
23453
+ let { t: a } = $(), [s, c] = g({}), [l, u] = g(""), d = OE({
23455
23454
  trpc: e,
23456
23455
  onRegistered: n,
23457
23456
  onError: r,
23458
23457
  ...i === void 0 ? {} : { landNodeId: i }
23459
- }), f = o(() => yE(t), [t]), p = kE(f, s), m = fE(f, {
23458
+ }), f = o(() => bE(t), [t]), p = AE(f, s), m = pE(f, {
23460
23459
  kind: p.kind,
23461
23460
  release: p.release
23462
- }), h = o(() => TE(m.entries), [
23461
+ }), h = o(() => EE(m.entries), [
23463
23462
  f,
23464
23463
  p.kind,
23465
23464
  p.release
23466
- ]), _ = hE(e, o(() => [...h.combos.values()].some((e) => e.trainings.some((e) => e.offers.some((e) => e.format === "tflite"))), [h])), x = (e, t) => {
23465
+ ]), _ = gE(e, o(() => [...h.combos.values()].some((e) => e.trainings.some((e) => e.offers.some((e) => e.format === "tflite"))), [h])), x = (e, t) => {
23467
23466
  c(e === "kind" ? { kind: t === "base" ? "base" : "custom" } : {
23468
23467
  ...p.kind === void 0 ? {} : { kind: p.kind },
23469
23468
  release: t
@@ -23474,7 +23473,7 @@ function jE({ trpc: e, models: t, onRegistered: n, onError: r, landNodeId: i })
23474
23473
  children: a("plus.empty")
23475
23474
  });
23476
23475
  let S = h.combos.has(l) ? l : "";
23477
- return /* @__PURE__ */ y(b, { children: [d.modal !== null && /* @__PURE__ */ v(iT, {
23476
+ return /* @__PURE__ */ y(b, { children: [d.modal !== null && /* @__PURE__ */ v(aT, {
23478
23477
  title: d.modal.title,
23479
23478
  steps: d.modal.steps,
23480
23479
  progress: d.modal.progress,
@@ -23482,7 +23481,7 @@ function jE({ trpc: e, models: t, onRegistered: n, onError: r, landNodeId: i })
23482
23481
  status: d.modal.status,
23483
23482
  ...d.modal.errorMessage === void 0 ? {} : { errorMessage: d.modal.errorMessage },
23484
23483
  onClose: d.closeModal
23485
- }), /* @__PURE__ */ v(VT, {
23484
+ }), /* @__PURE__ */ v(HT, {
23486
23485
  testId: "frigate-browser",
23487
23486
  preSelectors: [{
23488
23487
  id: "kind",
@@ -23508,7 +23507,7 @@ function jE({ trpc: e, models: t, onRegistered: n, onError: r, landNodeId: i })
23508
23507
  emptyMessage: a("plus.emptyRelease"),
23509
23508
  renderActionRow: (e) => {
23510
23509
  let t = h.combos.get(e);
23511
- return t === void 0 ? null : /* @__PURE__ */ v(NE, {
23510
+ return t === void 0 ? null : /* @__PURE__ */ v(PE, {
23512
23511
  combo: t,
23513
23512
  tfliteNodes: _,
23514
23513
  registeredIds: d.registeredIds,
@@ -23520,16 +23519,16 @@ function jE({ trpc: e, models: t, onRegistered: n, onError: r, landNodeId: i })
23520
23519
  }
23521
23520
  })] });
23522
23521
  }
23523
- var ME = (e) => `${kC(e.plusModelId)}::${e.format}`;
23524
- function NE({ combo: e, tfliteNodes: t, registeredIds: n, registryFormats: r, presenceByModel: a, busyId: o, onImport: s }) {
23522
+ var NE = (e) => `${kC(e.plusModelId)}::${e.format}`;
23523
+ function PE({ combo: e, tfliteNodes: t, registeredIds: n, registryFormats: r, presenceByModel: a, busyId: o, onImport: s }) {
23525
23524
  let { t: c } = $(), [l, u] = g(e.trainings[0]?.key ?? ""), [d, f] = g("");
23526
23525
  i(() => {
23527
23526
  u(e.trainings[0]?.key ?? "");
23528
23527
  }, [e]);
23529
23528
  let p = e.trainings.find((e) => e.key === l) ?? e.trainings[0], m = p?.builds[0];
23530
23529
  if (p === void 0 || m === void 0) return null;
23531
- let h = p.offers.some((e) => e.format === "onnx"), _ = p.offers.some((e) => e.format === "tflite"), b = AE(t, c), x = p.offers.map((e) => ({
23532
- id: ME(e),
23530
+ let h = p.offers.some((e) => e.format === "onnx"), _ = p.offers.some((e) => e.format === "tflite"), b = jE(t, c), x = p.offers.map((e) => ({
23531
+ id: NE(e),
23533
23532
  format: e.format,
23534
23533
  driftStatus: e.needsCoral ? b ?? "ok" : "ok"
23535
23534
  })), S = [...new Set(p.offers.map((e) => kC(e.plusModelId)))].flatMap((e) => a[e] ?? []), C = `${e.name}${e.resolution === void 0 ? "" : ` ${e.resolution}`}`;
@@ -23538,7 +23537,7 @@ function NE({ combo: e, tfliteNodes: t, registeredIds: n, registryFormats: r, pr
23538
23537
  "data-testid": "plus-combo-panel",
23539
23538
  "data-combo": e.sourceId,
23540
23539
  children: [
23541
- e.trainings.length > 1 && /* @__PURE__ */ v(BT, {
23540
+ e.trainings.length > 1 && /* @__PURE__ */ v(VT, {
23542
23541
  label: c("plus.training"),
23543
23542
  value: p.key,
23544
23543
  options: e.trainings.map((e) => ({
@@ -23550,13 +23549,13 @@ function NE({ combo: e, tfliteNodes: t, registeredIds: n, registryFormats: r, pr
23550
23549
  /* @__PURE__ */ y("div", {
23551
23550
  className: "rounded-md border border-border bg-surface px-3 py-2 text-[11px] text-foreground-subtle break-words",
23552
23551
  children: [
23553
- /* @__PURE__ */ v(tT, {
23552
+ /* @__PURE__ */ v(nT, {
23554
23553
  i18nKey: "plus.summary",
23555
23554
  values: {
23556
23555
  name: m.name,
23557
23556
  release: m.baseModel,
23558
23557
  decode: m.type,
23559
- input: cE(m).replace("x", "×")
23558
+ input: lE(m).replace("x", "×")
23560
23559
  },
23561
23560
  components: {
23562
23561
  name: /* @__PURE__ */ v("span", { className: "text-foreground" }),
@@ -23574,21 +23573,21 @@ function NE({ combo: e, tfliteNodes: t, registeredIds: n, registryFormats: r, pr
23574
23573
  })
23575
23574
  ]
23576
23575
  }),
23577
- _ && /* @__PURE__ */ v(gE, { nodes: t }),
23578
- /* @__PURE__ */ v(WT, {
23576
+ _ && /* @__PURE__ */ v(_E, { nodes: t }),
23577
+ /* @__PURE__ */ v(GT, {
23579
23578
  value: d,
23580
23579
  onChange: f,
23581
23580
  defaultName: m.name
23582
23581
  }),
23583
- /* @__PURE__ */ v(UT, {
23582
+ /* @__PURE__ */ v(WT, {
23584
23583
  entries: x,
23585
23584
  registeredIds: n,
23586
23585
  isImported: (e) => (r[e.id.split("::")[0] ?? ""] ?? []).includes(e.format),
23587
23586
  presence: S,
23588
23587
  busyId: o,
23589
23588
  onImport: (e) => {
23590
- let t = p.offers.find((t) => ME(t) === e);
23591
- t === void 0 || KT(d) || s(t, C, GT(d));
23589
+ let t = p.offers.find((t) => NE(t) === e);
23590
+ t === void 0 || qT(d) || s(t, C, KT(d));
23592
23591
  }
23593
23592
  })
23594
23593
  ]
@@ -23597,12 +23596,12 @@ function NE({ combo: e, tfliteNodes: t, registeredIds: n, registryFormats: r, pr
23597
23596
  //#endregion
23598
23597
  //#region src/tabs/FrigateSourceSections.tsx
23599
23598
  e();
23600
- var PE = "https://docs.frigate.video/integrations/plus/";
23601
- function FE({ trpc: e, status: t, onStatusChange: n }) {
23599
+ var FE = "https://docs.frigate.video/integrations/plus/";
23600
+ function IE({ trpc: e, status: t, onStatusChange: n }) {
23602
23601
  let [r, i] = g(""), [a, o] = g(null), [s, c] = g(!1), [u, d] = g(null), [f, p] = g(!1), [m, h] = g(!1), { t: _ } = $(), b = l(async () => {
23603
23602
  p(!0), d(null);
23604
23603
  try {
23605
- let t = await Iw(e);
23604
+ let t = await Lw(e);
23606
23605
  d(t.ok ? _("frigate.connectionOk") : t.error ?? _("frigate.connectionFailed"));
23607
23606
  } catch (e) {
23608
23607
  d(e instanceof Error ? e.message : _("frigate.connectionFailed"));
@@ -23611,13 +23610,13 @@ function FE({ trpc: e, status: t, onStatusChange: n }) {
23611
23610
  }
23612
23611
  }, [e, _]), x = l(async () => {
23613
23612
  let t = r.trim();
23614
- if (o(null), !iE(t)) {
23613
+ if (o(null), !aE(t)) {
23615
23614
  o(_("frigate.keyFormatInvalid"));
23616
23615
  return;
23617
23616
  }
23618
23617
  c(!0);
23619
23618
  try {
23620
- await zw(e, t), i(""), h(!1), n(await Fw(e)), await b();
23619
+ await Bw(e, t), i(""), h(!1), n(await Iw(e)), await b();
23621
23620
  } catch (e) {
23622
23621
  o(e instanceof Error ? e.message : _("frigate.keySaveFailed"));
23623
23622
  } finally {
@@ -23637,10 +23636,10 @@ function FE({ trpc: e, status: t, onStatusChange: n }) {
23637
23636
  className: "font-medium text-foreground",
23638
23637
  children: _("frigate.plus")
23639
23638
  }),
23640
- /* @__PURE__ */ v("div", { children: /* @__PURE__ */ v(tT, {
23639
+ /* @__PURE__ */ v("div", { children: /* @__PURE__ */ v(nT, {
23641
23640
  i18nKey: "frigate.keyIntro",
23642
23641
  components: { docs: /* @__PURE__ */ v("a", {
23643
- href: PE,
23642
+ href: FE,
23644
23643
  target: "_blank",
23645
23644
  rel: "noreferrer",
23646
23645
  className: "text-primary hover:underline"
@@ -23679,7 +23678,7 @@ function FE({ trpc: e, status: t, onStatusChange: n }) {
23679
23678
  S && /* @__PURE__ */ y("div", {
23680
23679
  className: "space-y-1",
23681
23680
  children: [
23682
- /* @__PURE__ */ v(Qw, {
23681
+ /* @__PURE__ */ v($w, {
23683
23682
  label: _("frigate.keyLabel"),
23684
23683
  children: /* @__PURE__ */ v("input", {
23685
23684
  type: "password",
@@ -23720,11 +23719,11 @@ function FE({ trpc: e, status: t, onStatusChange: n }) {
23720
23719
  ]
23721
23720
  });
23722
23721
  }
23723
- function IE({ trpc: e, onRegistered: t, onError: n, onPrefillUpload: r, landNodeId: a }) {
23722
+ function LE({ trpc: e, onRegistered: t, onError: n, onPrefillUpload: r, landNodeId: a }) {
23724
23723
  let { t: o } = $(), [s, c] = g(null), [u, d] = g(null), [f, p] = g(!1), m = l(async () => {
23725
23724
  p(!0);
23726
23725
  try {
23727
- d(await Lw(e));
23726
+ d(await Rw(e));
23728
23727
  } catch (e) {
23729
23728
  n(e instanceof Error ? e.message : o("frigate.listFailed"));
23730
23729
  } finally {
@@ -23739,7 +23738,7 @@ function IE({ trpc: e, onRegistered: t, onError: n, onPrefillUpload: r, landNode
23739
23738
  }, [m]);
23740
23739
  return i(() => {
23741
23740
  let t = !1;
23742
- return Fw(e).then((e) => {
23741
+ return Iw(e).then((e) => {
23743
23742
  t || (c(e), e.configured && m());
23744
23743
  }).catch(() => {
23745
23744
  t || c({
@@ -23755,7 +23754,7 @@ function IE({ trpc: e, onRegistered: t, onError: n, onPrefillUpload: r, landNode
23755
23754
  }) : s.configured ? /* @__PURE__ */ y("div", {
23756
23755
  className: "space-y-3",
23757
23756
  children: [
23758
- /* @__PURE__ */ v(FE, {
23757
+ /* @__PURE__ */ v(IE, {
23759
23758
  trpc: e,
23760
23759
  status: s,
23761
23760
  onStatusChange: h
@@ -23774,7 +23773,7 @@ function IE({ trpc: e, onRegistered: t, onError: n, onPrefillUpload: r, landNode
23774
23773
  className: "text-xs text-foreground-subtle",
23775
23774
  children: o("frigate.loadingModels")
23776
23775
  }),
23777
- u !== null && /* @__PURE__ */ v(jE, {
23776
+ u !== null && /* @__PURE__ */ v(ME, {
23778
23777
  models: u,
23779
23778
  trpc: e,
23780
23779
  onRegistered: t,
@@ -23784,7 +23783,7 @@ function IE({ trpc: e, onRegistered: t, onError: n, onPrefillUpload: r, landNode
23784
23783
  ]
23785
23784
  }) : /* @__PURE__ */ y("div", {
23786
23785
  className: "space-y-4",
23787
- children: [/* @__PURE__ */ v(FE, {
23786
+ children: [/* @__PURE__ */ v(IE, {
23788
23787
  trpc: e,
23789
23788
  status: s,
23790
23789
  onStatusChange: h
@@ -23793,7 +23792,7 @@ function IE({ trpc: e, onRegistered: t, onError: n, onPrefillUpload: r, landNode
23793
23792
  children: [/* @__PURE__ */ v("div", {
23794
23793
  className: "text-[11px] text-foreground-subtle",
23795
23794
  children: o("frigate.publicDefault")
23796
- }), nE.map((i) => /* @__PURE__ */ v(LE, {
23795
+ }), rE.map((i) => /* @__PURE__ */ v(RE, {
23797
23796
  trpc: e,
23798
23797
  catalogId: i.id,
23799
23798
  onRegistered: t,
@@ -23804,8 +23803,8 @@ function IE({ trpc: e, onRegistered: t, onError: n, onPrefillUpload: r, landNode
23804
23803
  })]
23805
23804
  });
23806
23805
  }
23807
- function LE({ trpc: e, catalogId: t, onRegistered: n, onError: r, onPrefillUpload: a, landNodeId: o }) {
23808
- let { t: s } = $(), c = nE.find((e) => e.id === t), [l, u] = g(!1), [d, f] = g(""), [p, m] = g(null), h = hE(e, c?.format === "tflite"), [_, b] = g("");
23806
+ function RE({ trpc: e, catalogId: t, onRegistered: n, onError: r, onPrefillUpload: a, landNodeId: o }) {
23807
+ let { t: s } = $(), c = rE.find((e) => e.id === t), [l, u] = g(!1), [d, f] = g(""), [p, m] = g(null), h = gE(e, c?.format === "tflite"), [_, b] = g("");
23809
23808
  if (i(() => {
23810
23809
  if (o !== void 0 && o.length > 0) {
23811
23810
  b(o);
@@ -23821,7 +23820,7 @@ function LE({ trpc: e, catalogId: t, onRegistered: n, onError: r, onPrefillUploa
23821
23820
  return /* @__PURE__ */ y("div", {
23822
23821
  className: "rounded-md border border-border bg-surface px-3 py-2 space-y-2",
23823
23822
  children: [
23824
- p !== null && /* @__PURE__ */ v(iT, {
23823
+ p !== null && /* @__PURE__ */ v(aT, {
23825
23824
  title: p.title,
23826
23825
  steps: p.steps,
23827
23826
  progress: p.progress,
@@ -23852,7 +23851,7 @@ function LE({ trpc: e, catalogId: t, onRegistered: n, onError: r, onPrefillUploa
23852
23851
  })
23853
23852
  ]
23854
23853
  }),
23855
- c.format === "tflite" && /* @__PURE__ */ v(gE, { nodes: h }),
23854
+ c.format === "tflite" && /* @__PURE__ */ v(_E, { nodes: h }),
23856
23855
  o === void 0 && c.format === "tflite" && h !== null && h.length > 0 && /* @__PURE__ */ y("label", {
23857
23856
  className: "flex items-center gap-2 text-[11px] text-foreground",
23858
23857
  children: [/* @__PURE__ */ v("span", {
@@ -23870,13 +23869,13 @@ function LE({ trpc: e, catalogId: t, onRegistered: n, onError: r, onPrefillUploa
23870
23869
  }),
23871
23870
  o !== void 0 && /* @__PURE__ */ v("p", {
23872
23871
  className: "text-[10px] text-foreground-subtle",
23873
- children: /* @__PURE__ */ v(tT, {
23872
+ children: /* @__PURE__ */ v(nT, {
23874
23873
  i18nKey: "frigate.landOnNode",
23875
23874
  values: { nodeId: o },
23876
23875
  components: { mono: /* @__PURE__ */ v("span", { className: "font-mono" }) }
23877
23876
  })
23878
23877
  }),
23879
- /* @__PURE__ */ v(WT, {
23878
+ /* @__PURE__ */ v(GT, {
23880
23879
  value: d,
23881
23880
  onChange: f,
23882
23881
  defaultName: c.label
@@ -23886,7 +23885,7 @@ function LE({ trpc: e, catalogId: t, onRegistered: n, onError: r, onPrefillUploa
23886
23885
  children: [/* @__PURE__ */ v("button", {
23887
23886
  onClick: () => {
23888
23887
  u(!0);
23889
- let t = C ? S : void 0, i = s("frigate.opTitle", { label: c.label }), a = uT({
23888
+ let t = C ? S : void 0, i = s("frigate.opTitle", { label: c.label }), a = dT({
23890
23889
  kind: "import",
23891
23890
  title: i,
23892
23891
  modelId: c.id,
@@ -23910,8 +23909,8 @@ function LE({ trpc: e, catalogId: t, onRegistered: n, onError: r, onPrefillUploa
23910
23909
  status: "running",
23911
23910
  sessionId: a
23912
23911
  });
23913
- let o = GT(d);
23914
- Pw(e, {
23912
+ let o = KT(d);
23913
+ Fw(e, {
23915
23914
  catalogId: c.id,
23916
23915
  ...o === void 0 ? {} : { name: o },
23917
23916
  ...t === void 0 ? {} : { targetNodeId: t }
@@ -23924,7 +23923,7 @@ function LE({ trpc: e, catalogId: t, onRegistered: n, onError: r, onPrefillUploa
23924
23923
  nodeId: t,
23925
23924
  size: (e.bytes / 1e6).toFixed(1)
23926
23925
  });
23927
- dT(a, r), fT(a, { status: "success" }), m((e) => e === null ? e : {
23926
+ fT(a, r), pT(a, { status: "success" }), m((e) => e === null ? e : {
23928
23927
  ...e,
23929
23928
  status: "success",
23930
23929
  logs: [...e.logs, r],
@@ -23935,7 +23934,7 @@ function LE({ trpc: e, catalogId: t, onRegistered: n, onError: r, onPrefillUploa
23935
23934
  }), n(r);
23936
23935
  }).catch((e) => {
23937
23936
  let t = e instanceof Error ? e.message : s("frigate.catalogImportFailed");
23938
- fT(a, {
23937
+ pT(a, {
23939
23938
  status: "error",
23940
23939
  errorMessage: t
23941
23940
  }), m((e) => e === null ? e : {
@@ -23949,7 +23948,7 @@ function LE({ trpc: e, catalogId: t, onRegistered: n, onError: r, onPrefillUploa
23949
23948
  }), r(t);
23950
23949
  }).finally(() => u(!1));
23951
23950
  },
23952
- disabled: l || x || KT(d),
23951
+ disabled: l || x || qT(d),
23953
23952
  className: "px-4 py-1.5 text-xs font-medium rounded-md bg-primary text-primary-foreground hover:bg-primary/90 disabled:opacity-50 transition-colors",
23954
23953
  children: l ? s("common.importing") : C ? s("frigate.importLand", { nodeId: S }) : s("common.register")
23955
23954
  }), /* @__PURE__ */ v("button", {
@@ -23970,10 +23969,10 @@ function LE({ trpc: e, catalogId: t, onRegistered: n, onError: r, onPrefillUploa
23970
23969
  //#endregion
23971
23970
  //#region src/tabs/CatalogTab.tsx
23972
23971
  e();
23973
- function RE(e) {
23972
+ function zE(e) {
23974
23973
  return e === "scrypted" || e === "frigate" || e === "camstack" ? e : "camstack";
23975
23974
  }
23976
- var zE = [
23975
+ var BE = [
23977
23976
  {
23978
23977
  value: "camstack",
23979
23978
  label: "CamStack"
@@ -23986,11 +23985,11 @@ var zE = [
23986
23985
  value: "frigate",
23987
23986
  label: "Frigate"
23988
23987
  }
23989
- ], BE = new Set(ge);
23990
- function VE(e) {
23991
- return BE.has(e);
23988
+ ], VE = new Set(ge);
23989
+ function HE(e) {
23990
+ return VE.has(e);
23992
23991
  }
23993
- function HE({ seed: e, nodeId: t, busyKey: n, onDownload: r }) {
23992
+ function UE({ seed: e, nodeId: t, busyKey: n, onDownload: r }) {
23994
23993
  let { t: i } = $();
23995
23994
  return /* @__PURE__ */ v("div", {
23996
23995
  className: "flex flex-wrap gap-2 pt-1",
@@ -24022,7 +24021,7 @@ function HE({ seed: e, nodeId: t, busyKey: n, onDownload: r }) {
24022
24021
  })
24023
24022
  });
24024
24023
  }
24025
- function UE({ seeds: e, nodeId: t, busyKey: n, selectedByFamily: r, onSelectFamily: i, onDownload: a }) {
24024
+ function WE({ seeds: e, nodeId: t, busyKey: n, selectedByFamily: r, onSelectFamily: i, onDownload: a }) {
24026
24025
  let o = $C(e), s = ew(e), c = o.map(tw), l = me(c), u = new Map(e.map((e) => [e.modelId, e]));
24027
24026
  return l.length === 0 && s.length === 0 ? null : /* @__PURE__ */ y("div", {
24028
24027
  className: "space-y-3",
@@ -24050,7 +24049,7 @@ function UE({ seeds: e, nodeId: t, busyKey: n, selectedByFamily: r, onSelectFami
24050
24049
  value: s,
24051
24050
  onChange: (t) => i(e.family, t)
24052
24051
  }),
24053
- l && /* @__PURE__ */ v(HE, {
24052
+ l && /* @__PURE__ */ v(UE, {
24054
24053
  seed: l,
24055
24054
  nodeId: t,
24056
24055
  busyKey: n,
@@ -24070,7 +24069,7 @@ function UE({ seeds: e, nodeId: t, busyKey: n, selectedByFamily: r, onSelectFami
24070
24069
  className: "text-[10px] font-mono text-foreground-subtle",
24071
24070
  children: e.modelId
24072
24071
  })]
24073
- }), /* @__PURE__ */ v(HE, {
24072
+ }), /* @__PURE__ */ v(UE, {
24074
24073
  seed: e,
24075
24074
  nodeId: t,
24076
24075
  busyKey: n,
@@ -24079,11 +24078,11 @@ function UE({ seeds: e, nodeId: t, busyKey: n, selectedByFamily: r, onSelectFami
24079
24078
  }, `${e.stepId}:${e.modelId}`))]
24080
24079
  });
24081
24080
  }
24082
- function WE({ trpc: e, refreshKey: t, nodeId: n }) {
24081
+ function GE({ trpc: e, refreshKey: t, nodeId: n }) {
24083
24082
  let { t: r } = $(), [a, s] = g([]), [c, u] = g(""), [d, f] = g(!0), [p, m] = g(null), [h, _] = g(null), [b, x] = g(null), [S, C] = g({}), w = l(async () => {
24084
24083
  m(null);
24085
24084
  try {
24086
- let t = await ww(e, n);
24085
+ let t = await Tw(e, n);
24087
24086
  s(t), u((e) => e && t.some((t) => t.stepId === e) ? e : t[0]?.stepId ?? "");
24088
24087
  } catch (e) {
24089
24088
  m(e instanceof Error ? e.message : r("catalog.loadFailed"));
@@ -24113,8 +24112,8 @@ function WE({ trpc: e, refreshKey: t, nodeId: n }) {
24113
24112
  return !n && Object.keys(e).length === Object.keys(t).length ? e : t;
24114
24113
  });
24115
24114
  }, [ee, te]);
24116
- let D = hT(), O = l(async (t, i) => {
24117
- if (VE(i)) {
24115
+ let D = gT(), O = l(async (t, i) => {
24116
+ if (HE(i)) {
24118
24117
  _(`${t.stepId}/${t.modelId}/${i}`), x(null);
24119
24118
  try {
24120
24119
  await D.run({
@@ -24140,7 +24139,7 @@ function WE({ trpc: e, refreshKey: t, nodeId: n }) {
24140
24139
  nodeId: n
24141
24140
  })
24142
24141
  }, async ({ appendLog: a, patchSteps: o }) => {
24143
- await Ew(e, {
24142
+ await Dw(e, {
24144
24143
  addonId: t.stepId,
24145
24144
  modelId: t.modelId,
24146
24145
  format: i,
@@ -24180,7 +24179,7 @@ function WE({ trpc: e, refreshKey: t, nodeId: n }) {
24180
24179
  className: "rounded-md border border-danger/30 bg-danger/10 px-3 py-2 text-xs text-danger",
24181
24180
  children: b
24182
24181
  }),
24183
- /* @__PURE__ */ v(Qw, {
24182
+ /* @__PURE__ */ v($w, {
24184
24183
  label: r("common.step"),
24185
24184
  children: /* @__PURE__ */ v(za, {
24186
24185
  "aria-label": r("common.step"),
@@ -24199,7 +24198,7 @@ function WE({ trpc: e, refreshKey: t, nodeId: n }) {
24199
24198
  E.length === 0 ? /* @__PURE__ */ v("div", {
24200
24199
  className: "rounded-xl border border-border bg-surface text-center text-xs text-foreground-subtle italic py-10",
24201
24200
  children: r("catalog.noCamstackModels")
24202
- }) : /* @__PURE__ */ v(UE, {
24201
+ }) : /* @__PURE__ */ v(WE, {
24203
24202
  seeds: E,
24204
24203
  nodeId: n,
24205
24204
  busyKey: h,
@@ -24213,7 +24212,7 @@ function WE({ trpc: e, refreshKey: t, nodeId: n }) {
24213
24212
  ]
24214
24213
  });
24215
24214
  }
24216
- function GE({ trpc: e, refreshKey: t, source: n, onSourceChange: r, onRegistered: i, onPrefillUpload: a }) {
24215
+ function KE({ trpc: e, refreshKey: t, source: n, onSourceChange: r, onRegistered: i, onPrefillUpload: a }) {
24217
24216
  let { t: o } = $(), [s, c] = g("hub");
24218
24217
  return /* @__PURE__ */ y("div", {
24219
24218
  className: Ve,
@@ -24228,7 +24227,7 @@ function GE({ trpc: e, refreshKey: t, source: n, onSourceChange: r, onRegistered
24228
24227
  "data-source": n,
24229
24228
  role: "group",
24230
24229
  "aria-label": o("catalog.sourceAria"),
24231
- children: zE.map((e) => /* @__PURE__ */ v("button", {
24230
+ children: BE.map((e) => /* @__PURE__ */ v("button", {
24232
24231
  type: "button",
24233
24232
  "aria-pressed": n === e.value,
24234
24233
  onClick: () => r(e.value),
@@ -24236,22 +24235,22 @@ function GE({ trpc: e, refreshKey: t, source: n, onSourceChange: r, onRegistered
24236
24235
  children: e.label
24237
24236
  }, e.value))
24238
24237
  }),
24239
- end: /* @__PURE__ */ v(Zw, {
24238
+ end: /* @__PURE__ */ v(Qw, {
24240
24239
  selectedNodeId: s,
24241
24240
  onSelect: c
24242
24241
  })
24243
24242
  }),
24244
- n === "camstack" && /* @__PURE__ */ v(WE, {
24243
+ n === "camstack" && /* @__PURE__ */ v(GE, {
24245
24244
  trpc: e,
24246
24245
  refreshKey: t,
24247
24246
  nodeId: s
24248
24247
  }),
24249
- n === "scrypted" && /* @__PURE__ */ v(YT, {
24248
+ n === "scrypted" && /* @__PURE__ */ v(XT, {
24250
24249
  trpc: e,
24251
24250
  landNodeId: s,
24252
24251
  onImported: () => i?.()
24253
24252
  }),
24254
- n === "frigate" && /* @__PURE__ */ v(IE, {
24253
+ n === "frigate" && /* @__PURE__ */ v(LE, {
24255
24254
  trpc: e,
24256
24255
  landNodeId: s,
24257
24256
  onRegistered: (e) => {
@@ -24265,12 +24264,12 @@ function GE({ trpc: e, refreshKey: t, source: n, onSourceChange: r, onRegistered
24265
24264
  }
24266
24265
  //#endregion
24267
24266
  //#region src/ensure-formats.ts
24268
- function KE(e) {
24267
+ function qE(e) {
24269
24268
  return e.length === 0 ? "" : ` Engine conversions: ${e.map((e) => e.ok ? `${e.format} ✓${e.nodeId ? ` (${e.nodeId})` : ""}` : `${e.format} ✗ — ${e.error ?? "failed"}`).join("; ")}.`;
24270
24269
  }
24271
24270
  //#endregion
24272
24271
  //#region src/frigate/registration.ts
24273
- var qE = [
24272
+ var JE = [
24274
24273
  "yolo",
24275
24274
  "yolonas",
24276
24275
  "ssd",
@@ -24285,13 +24284,13 @@ var qE = [
24285
24284
  "saliency",
24286
24285
  "yolo-split-dfl"
24287
24286
  ];
24288
- function JE(e) {
24289
- return qE.find((t) => t === e);
24287
+ function YE(e) {
24288
+ return JE.find((t) => t === e);
24290
24289
  }
24291
- var YE = /^[a-zA-Z0-9._-]+$/;
24292
- function XE(e) {
24293
- let t = e.type === "custom" ? null : eE[e.type];
24294
- if (!YE.test(e.modelId)) throw Error(`Model id "${e.modelId}" is invalid — letters, digits, dot, underscore, hyphen only`);
24290
+ var XE = /^[a-zA-Z0-9._-]+$/;
24291
+ function ZE(e) {
24292
+ let t = e.type === "custom" ? null : tE[e.type];
24293
+ if (!XE.test(e.modelId)) throw Error(`Model id "${e.modelId}" is invalid — letters, digits, dot, underscore, hyphen only`);
24295
24294
  if (!e.name.trim()) throw Error("Display name is required");
24296
24295
  if (!e.stepId.trim()) throw Error("Step is required");
24297
24296
  if (!(e.inputWidth > 0) || !(e.inputHeight > 0)) throw Error("Input size must be positive");
@@ -24323,7 +24322,7 @@ function XE(e) {
24323
24322
  ...e.defaultClassFloors === void 0 ? {} : { defaultClassFloors: { ...e.defaultClassFloors } }
24324
24323
  } : {
24325
24324
  provider: "frigate",
24326
- group: $T(e.type, e.inputWidth),
24325
+ group: eE(e.type, e.inputWidth),
24327
24326
  ...ee(e.labels),
24328
24327
  defaultClassFloors: F("stock", e.defaultClassFloors)
24329
24328
  }
@@ -24336,11 +24335,11 @@ function XE(e) {
24336
24335
  //#endregion
24337
24336
  //#region src/components/StepSelect.tsx
24338
24337
  e();
24339
- function ZE({ trpc: e, label: t, value: n, onChange: r, slots: a }) {
24338
+ function QE({ trpc: e, label: t, value: n, onChange: r, slots: a }) {
24340
24339
  let { t: o } = $(), [s, c] = g(null), [l, u] = g(null);
24341
24340
  return i(() => {
24342
24341
  let t = !1;
24343
- return Sw(e).then((e) => {
24342
+ return Cw(e).then((e) => {
24344
24343
  if (t) return;
24345
24344
  let i = a ? e.filter((e) => a.includes(e.slot)) : e;
24346
24345
  c(i), u(null), i.length > 0 && !i.some((e) => e.id === n) && r(i[0].id);
@@ -24349,7 +24348,7 @@ function ZE({ trpc: e, label: t, value: n, onChange: r, slots: a }) {
24349
24348
  }), () => {
24350
24349
  t = !0;
24351
24350
  };
24352
- }, [e]), /* @__PURE__ */ y(Qw, {
24351
+ }, [e]), /* @__PURE__ */ y($w, {
24353
24352
  label: t ?? o("common.step"),
24354
24353
  children: [/* @__PURE__ */ y("select", {
24355
24354
  value: n,
@@ -24382,7 +24381,7 @@ function ZE({ trpc: e, label: t, value: n, onChange: r, slots: a }) {
24382
24381
  }
24383
24382
  //#endregion
24384
24383
  //#region src/ui/probe-custom-model.ts
24385
- var QE = {
24384
+ var $E = {
24386
24385
  ".onnx": "onnx",
24387
24386
  ".tflite": "tflite",
24388
24387
  ".pt": "pt",
@@ -24391,33 +24390,33 @@ var QE = {
24391
24390
  ".mlmodel": "coreml",
24392
24391
  ".xml": "openvino"
24393
24392
  };
24394
- function $E(e) {
24393
+ function eD(e) {
24395
24394
  let t = (e.split(/[/?#]/).pop() ?? e).toLowerCase();
24396
24395
  if (t.endsWith(".mlpackage")) return ".mlpackage";
24397
24396
  let n = t.lastIndexOf(".");
24398
24397
  return n >= 0 ? t.slice(n) : "";
24399
24398
  }
24400
- function eD(e) {
24399
+ function tD(e) {
24401
24400
  return (e.split(/[/?#]/).pop() ?? e).replace(/\.(onnx|tflite|pt|pth|xml|mlmodel|mlpackage)$/i, "");
24402
24401
  }
24403
- function tD(e) {
24402
+ function nD(e) {
24404
24403
  let t = e.trim().toLowerCase().replace(/[^a-z0-9._-]+/g, "-").replace(/^-+|-+$/g, "");
24405
24404
  return t.length > 0 ? t : "custom-model";
24406
24405
  }
24407
- function nD(e) {
24406
+ function rD(e) {
24408
24407
  return /\b640\b/.test(e) || /[_-]640([_-]|$)/.test(e) ? 640 : (/\b320\b/.test(e) || /[_-]320([_-]|$)/.test(e), 320);
24409
24408
  }
24410
- function rD(e) {
24409
+ function iD(e) {
24411
24410
  let t = e.replace(/[_-]+/g, " ").trim();
24412
24411
  return t.length === 0 ? "Custom model" : t.replace(/\b\w/g, (e) => e.toUpperCase());
24413
24412
  }
24414
- function iD(e) {
24415
- let t = [], n = e.kind === "file" ? e.filename : e.url, r = QE[$E(n)] ?? null;
24416
- r === null && n.trim().length > 0 && t.push(nT("probe.noFormat"));
24417
- let i = eD(n), a = tD(i), o = rD(i), s = nD(i);
24418
- s === 640 ? t.push(nT("probe.size640")) : t.push(nT("probe.size320"));
24413
+ function aD(e) {
24414
+ let t = [], n = e.kind === "file" ? e.filename : e.url, r = $E[eD(n)] ?? null;
24415
+ r === null && n.trim().length > 0 && t.push(rT("probe.noFormat"));
24416
+ let i = tD(n), a = nD(i), o = iD(i), s = rD(i);
24417
+ s === 640 ? t.push(rT("probe.size640")) : t.push(rT("probe.size320"));
24419
24418
  let c = null;
24420
- return e.kind === "file" && typeof e.bytes == "number" && e.bytes > 0 && (c = Number((e.bytes / 1e6).toFixed(1))), t.push(nT("probe.decode")), {
24419
+ return e.kind === "file" && typeof e.bytes == "number" && e.bytes > 0 && (c = Number((e.bytes / 1e6).toFixed(1))), t.push(rT("probe.decode")), {
24421
24420
  format: r,
24422
24421
  modelId: a,
24423
24422
  name: o,
@@ -24429,24 +24428,24 @@ function iD(e) {
24429
24428
  //#endregion
24430
24429
  //#region src/tabs/RegisterTab.tsx
24431
24430
  e();
24432
- var aD = [
24431
+ var oD = [
24433
24432
  "onnx",
24434
24433
  "openvino",
24435
24434
  "coreml",
24436
24435
  "tflite",
24437
24436
  "pt"
24438
- ], oD = [
24437
+ ], sD = [
24439
24438
  ".onnx",
24440
24439
  ".tflite",
24441
24440
  ".pt"
24442
- ], sD = [{ value: "upload" }, { value: "url" }];
24443
- function cD({ trpc: e, onRegistered: n, initialPrefill: r = null, onPrefillConsumed: a }) {
24444
- let { t: s } = $(), c = hT(), [u, d] = g("upload"), [f, p] = g(""), [m, h] = g(""), [_, b] = g("object-detection"), [x, S] = g("onnx"), [C, w] = g(""), [T, E] = g(""), [ee, te] = g(0), [D, O] = g(320), [k, A] = g(320), [ne, j] = g(""), [re, M] = g(null), [ie, ae] = g([]), [N, oe] = g({ state: "idle" }), [P, F] = g(!1), [se, ce] = g(null), [le, ue] = g(null), de = t(null), I = o(() => tE(ne), [ne]);
24441
+ ], cD = [{ value: "upload" }, { value: "url" }];
24442
+ function lD({ trpc: e, onRegistered: n, initialPrefill: r = null, onPrefillConsumed: a }) {
24443
+ let { t: s } = $(), c = gT(), [u, d] = g("upload"), [f, p] = g(""), [m, h] = g(""), [_, b] = g("object-detection"), [x, S] = g("onnx"), [C, w] = g(""), [T, E] = g(""), [ee, te] = g(0), [D, O] = g(320), [k, A] = g(320), [ne, j] = g(""), [re, M] = g(null), [ie, ae] = g([]), [N, oe] = g({ state: "idle" }), [P, F] = g(!1), [se, ce] = g(null), [le, ue] = g(null), de = t(null), I = o(() => nE(ne), [ne]);
24445
24444
  i(() => {
24446
24445
  r != null && (d("upload"), S(r.format), w(r.postprocessor ?? ""), O(r.inputSize), A(r.inputSize), j(r.labels.join("\n")), M(r.sourceLabel), ce(null), ue(null), a?.());
24447
24446
  }, [r, a]);
24448
24447
  let L = l((e, t) => {
24449
- let n = iD(e);
24448
+ let n = aD(e);
24450
24449
  ae(n.hints), n.format !== null && S(n.format), O(n.inputSize), A(n.inputSize), (t?.forceId || !f) && p(n.modelId), m || h(n.name), n.sizeMB !== null && e.kind === "url" && te(n.sizeMB);
24451
24450
  }, [f, m]), R = l(async (t) => {
24452
24451
  ce(null), L({
@@ -24460,7 +24459,7 @@ function cD({ trpc: e, onRegistered: n, initialPrefill: r = null, onPrefillConsu
24460
24459
  try {
24461
24460
  oe({
24462
24461
  state: "done",
24463
- file: await Aw(e, t, (e, t) => {
24462
+ file: await jw(e, t, (e, t) => {
24464
24463
  oe({
24465
24464
  state: "uploading",
24466
24465
  pct: Math.round(e / t * 100)
@@ -24504,13 +24503,13 @@ function cD({ trpc: e, onRegistered: n, initialPrefill: r = null, onPrefillConsu
24504
24503
  sizeMB: ee
24505
24504
  } : null;
24506
24505
  if (t === null) return ce(s(u === "upload" ? "register.uploadFirst" : "register.urlRequired"));
24507
- if (KT(m)) return ce(s("register.nameInvalid"));
24506
+ if (qT(m)) return ce(s("register.nameInvalid"));
24508
24507
  F(!0);
24509
24508
  try {
24510
- let r = JE(C), i = XE({
24509
+ let r = YE(C), i = ZE({
24511
24510
  type: "custom",
24512
24511
  modelId: f.trim(),
24513
- name: GT(m) ?? f.trim(),
24512
+ name: KT(m) ?? f.trim(),
24514
24513
  stepId: _,
24515
24514
  source: t,
24516
24515
  format: x,
@@ -24538,13 +24537,13 @@ function cD({ trpc: e, onRegistered: n, initialPrefill: r = null, onPrefillConsu
24538
24537
  }],
24539
24538
  initialLog: s("register.opInitialLog", { name: i.entry.name })
24540
24539
  }, async ({ appendLog: t, patchSteps: n }) => {
24541
- let r = await gw(e, i);
24540
+ let r = await _w(e, i);
24542
24541
  n((e) => e.map((e) => e.status === "active" || e.status === "pending" ? {
24543
24542
  ...e,
24544
24543
  status: "done"
24545
24544
  } : e)), t(s("register.opDone", {
24546
24545
  stepId: _,
24547
- summary: KE(r.conversions)
24546
+ summary: qE(r.conversions)
24548
24547
  }));
24549
24548
  });
24550
24549
  let a = s("register.registered", { name: i.entry.name });
@@ -24591,7 +24590,7 @@ function cD({ trpc: e, onRegistered: n, initialPrefill: r = null, onPrefillConsu
24591
24590
  children: s("common.source")
24592
24591
  }), /* @__PURE__ */ v("div", {
24593
24592
  className: "inline-flex rounded-md border border-border overflow-hidden",
24594
- children: sD.map((e) => /* @__PURE__ */ v("button", {
24593
+ children: cD.map((e) => /* @__PURE__ */ v("button", {
24595
24594
  type: "button",
24596
24595
  onClick: () => {
24597
24596
  ce(null), ue(null), d(e.value);
@@ -24603,14 +24602,14 @@ function cD({ trpc: e, onRegistered: n, initialPrefill: r = null, onPrefillConsu
24603
24602
  }),
24604
24603
  re !== null && u === "upload" && /* @__PURE__ */ v("div", {
24605
24604
  className: "rounded-md border border-primary/30 bg-primary/10 px-3 py-2 text-[11px] text-foreground-subtle",
24606
- children: /* @__PURE__ */ v(tT, {
24605
+ children: /* @__PURE__ */ v(nT, {
24607
24606
  i18nKey: "register.prefilled",
24608
24607
  values: { source: re },
24609
24608
  components: { b: /* @__PURE__ */ v("span", { className: "text-foreground" }) }
24610
24609
  })
24611
24610
  }),
24612
- u === "upload" ? /* @__PURE__ */ y(Qw, {
24613
- label: s("register.modelFile", { extensions: oD.join(" / ") }),
24611
+ u === "upload" ? /* @__PURE__ */ y($w, {
24612
+ label: s("register.modelFile", { extensions: sD.join(" / ") }),
24614
24613
  children: [
24615
24614
  /* @__PURE__ */ y("div", {
24616
24615
  className: "flex items-center gap-3 flex-wrap",
@@ -24642,7 +24641,7 @@ function cD({ trpc: e, onRegistered: n, initialPrefill: r = null, onPrefillConsu
24642
24641
  /* @__PURE__ */ v("input", {
24643
24642
  ref: de,
24644
24643
  type: "file",
24645
- accept: oD.join(","),
24644
+ accept: sD.join(","),
24646
24645
  className: "hidden",
24647
24646
  onChange: (e) => {
24648
24647
  let t = e.target.files?.[0];
@@ -24663,13 +24662,13 @@ function cD({ trpc: e, onRegistered: n, initialPrefill: r = null, onPrefillConsu
24663
24662
  className: "grid grid-cols-1 sm:grid-cols-3 gap-3",
24664
24663
  children: [/* @__PURE__ */ v("div", {
24665
24664
  className: "sm:col-span-2",
24666
- children: /* @__PURE__ */ v($w, {
24665
+ children: /* @__PURE__ */ v(eT, {
24667
24666
  label: s("register.urlLabel"),
24668
24667
  value: T,
24669
24668
  onChange: E,
24670
24669
  placeholder: s("register.urlPlaceholder")
24671
24670
  })
24672
- }), /* @__PURE__ */ v(eT, {
24671
+ }), /* @__PURE__ */ v(tT, {
24673
24672
  label: s("register.sizeMb"),
24674
24673
  value: ee,
24675
24674
  onChange: te,
@@ -24688,12 +24687,12 @@ function cD({ trpc: e, onRegistered: n, initialPrefill: r = null, onPrefillConsu
24688
24687
  }),
24689
24688
  /* @__PURE__ */ y("div", {
24690
24689
  className: "grid grid-cols-1 sm:grid-cols-2 gap-3",
24691
- children: [/* @__PURE__ */ v($w, {
24690
+ children: [/* @__PURE__ */ v(eT, {
24692
24691
  label: s("common.modelId"),
24693
24692
  value: f,
24694
24693
  onChange: p,
24695
24694
  placeholder: "my-detector"
24696
- }), /* @__PURE__ */ v(WT, {
24695
+ }), /* @__PURE__ */ v(GT, {
24697
24696
  value: m,
24698
24697
  onChange: h,
24699
24698
  defaultName: f.trim() || s("register.defaultName")
@@ -24702,18 +24701,18 @@ function cD({ trpc: e, onRegistered: n, initialPrefill: r = null, onPrefillConsu
24702
24701
  /* @__PURE__ */ y("div", {
24703
24702
  className: "grid grid-cols-1 sm:grid-cols-3 gap-3",
24704
24703
  children: [
24705
- /* @__PURE__ */ v(ZE, {
24704
+ /* @__PURE__ */ v(QE, {
24706
24705
  trpc: e,
24707
24706
  value: _,
24708
24707
  onChange: b
24709
24708
  }),
24710
- /* @__PURE__ */ v(eT, {
24709
+ /* @__PURE__ */ v(tT, {
24711
24710
  label: s("register.inputWidth"),
24712
24711
  value: D,
24713
24712
  onChange: O,
24714
24713
  min: 1
24715
24714
  }),
24716
- /* @__PURE__ */ v(eT, {
24715
+ /* @__PURE__ */ v(tT, {
24717
24716
  label: s("register.inputHeight"),
24718
24717
  value: k,
24719
24718
  onChange: A,
@@ -24723,21 +24722,21 @@ function cD({ trpc: e, onRegistered: n, initialPrefill: r = null, onPrefillConsu
24723
24722
  }),
24724
24723
  /* @__PURE__ */ y("div", {
24725
24724
  className: "grid grid-cols-1 sm:grid-cols-2 gap-3",
24726
- children: [/* @__PURE__ */ v(Qw, {
24725
+ children: [/* @__PURE__ */ v($w, {
24727
24726
  label: s("common.format"),
24728
24727
  children: /* @__PURE__ */ v("select", {
24729
24728
  value: x,
24730
24729
  onChange: (e) => {
24731
- let t = aD.find((t) => t === e.target.value);
24730
+ let t = oD.find((t) => t === e.target.value);
24732
24731
  t !== void 0 && S(t);
24733
24732
  },
24734
24733
  className: "w-full px-3 py-1.5 text-xs rounded-md border border-border bg-surface text-foreground focus:outline-none focus:border-primary/50",
24735
- children: aD.map((e) => /* @__PURE__ */ v("option", {
24734
+ children: oD.map((e) => /* @__PURE__ */ v("option", {
24736
24735
  value: e,
24737
24736
  children: e
24738
24737
  }, e))
24739
24738
  })
24740
- }), /* @__PURE__ */ y(Qw, {
24739
+ }), /* @__PURE__ */ y($w, {
24741
24740
  label: s("register.decode"),
24742
24741
  children: [/* @__PURE__ */ y("select", {
24743
24742
  value: C,
@@ -24746,7 +24745,7 @@ function cD({ trpc: e, onRegistered: n, initialPrefill: r = null, onPrefillConsu
24746
24745
  children: [/* @__PURE__ */ v("option", {
24747
24746
  value: "",
24748
24747
  children: s("register.stepDefault")
24749
- }), qE.map((e) => /* @__PURE__ */ v("option", {
24748
+ }), JE.map((e) => /* @__PURE__ */ v("option", {
24750
24749
  value: e,
24751
24750
  children: e
24752
24751
  }, e))]
@@ -24756,7 +24755,7 @@ function cD({ trpc: e, onRegistered: n, initialPrefill: r = null, onPrefillConsu
24756
24755
  })]
24757
24756
  })]
24758
24757
  }),
24759
- /* @__PURE__ */ v(Qw, {
24758
+ /* @__PURE__ */ v($w, {
24760
24759
  label: s("register.labelmap", { count: I.length }),
24761
24760
  children: /* @__PURE__ */ v("textarea", {
24762
24761
  value: ne,
@@ -24781,7 +24780,7 @@ function cD({ trpc: e, onRegistered: n, initialPrefill: r = null, onPrefillConsu
24781
24780
  //#endregion
24782
24781
  //#region src/tabs/ImportTab.tsx
24783
24782
  e();
24784
- function lD({ trpc: e, onRegistered: t, initialPrefill: n = null, onPrefillConsumed: r }) {
24783
+ function uD({ trpc: e, onRegistered: t, initialPrefill: n = null, onPrefillConsumed: r }) {
24785
24784
  let { t: a } = $(), [o, s] = g(null), [c, l] = g(null), [u, d] = g(n);
24786
24785
  return i(() => {
24787
24786
  n !== null && d(n);
@@ -24797,7 +24796,7 @@ function lD({ trpc: e, onRegistered: t, initialPrefill: n = null, onPrefillConsu
24797
24796
  className: "rounded-md border border-success/30 bg-success/10 px-3 py-2 text-xs text-success",
24798
24797
  children: c
24799
24798
  }),
24800
- /* @__PURE__ */ v(cD, {
24799
+ /* @__PURE__ */ v(lD, {
24801
24800
  trpc: e,
24802
24801
  onRegistered: (e) => {
24803
24802
  l(e ?? a("importTab.registered")), s(null), t();
@@ -24812,7 +24811,7 @@ function lD({ trpc: e, onRegistered: t, initialPrefill: n = null, onPrefillConsu
24812
24811
  }
24813
24812
  //#endregion
24814
24813
  //#region src/ui/installed-activation.ts
24815
- function uD(e, t, n, r, i) {
24814
+ function dD(e, t, n, r, i) {
24816
24815
  if (r == null || D(t)) return [];
24817
24816
  let a = [];
24818
24817
  for (let o of e) o.enabled && i.has(o.format) && Qo(r.models, o.format) && $o({
@@ -24826,10 +24825,10 @@ function uD(e, t, n, r, i) {
24826
24825
  });
24827
24826
  return a;
24828
24827
  }
24829
- function dD(e, t) {
24828
+ function fD(e, t) {
24830
24829
  return { [De(e)]: t };
24831
24830
  }
24832
- function fD(e, t, n) {
24831
+ function pD(e, t, n) {
24833
24832
  let r = Object.keys(t).length > 0;
24834
24833
  return {
24835
24834
  enabled: n ? !0 : e.enabled,
@@ -24838,18 +24837,18 @@ function fD(e, t, n) {
24838
24837
  ...r ? { steps: t } : {}
24839
24838
  };
24840
24839
  }
24841
- function pD(e, t, n, r) {
24840
+ function mD(e, t, n, r) {
24842
24841
  let i = new Set(r), a = {};
24843
24842
  for (let r of e) {
24844
24843
  let e = { ...r.steps };
24845
24844
  i.has(r.key) && (e[t] = {
24846
24845
  ...e[t],
24847
24846
  modelId: n
24848
- }), a[r.key] = fD(r, e, i.has(r.key));
24847
+ }), a[r.key] = pD(r, e, i.has(r.key));
24849
24848
  }
24850
24849
  return a;
24851
24850
  }
24852
- function mD(e, t, n, r, i) {
24851
+ function hD(e, t, n, r, i) {
24853
24852
  let a = {};
24854
24853
  for (let o of e) {
24855
24854
  let e = { ...o.steps };
@@ -24865,52 +24864,52 @@ function mD(e, t, n, r, i) {
24865
24864
  Object.keys(i).length > 0 ? e[t] = i : delete e[t];
24866
24865
  }
24867
24866
  }
24868
- a[o.key] = fD(o, e, o.key === i);
24867
+ a[o.key] = pD(o, e, o.key === i);
24869
24868
  }
24870
24869
  return a;
24871
24870
  }
24872
24871
  //#endregion
24873
24872
  //#region src/ui/installed-inventory.ts
24874
- function hD(e) {
24873
+ function gD(e) {
24875
24874
  return Uo(e);
24876
24875
  }
24877
- function gD(e) {
24876
+ function _D(e) {
24878
24877
  return e.map((e) => ({
24879
24878
  value: e.key,
24880
- label: hD(e),
24879
+ label: gD(e),
24881
24880
  enabled: e.enabled
24882
24881
  }));
24883
24882
  }
24884
- var _D = /\[([^\]]+)\]\s*$/;
24885
- function vD(e, t) {
24886
- let n = _D.exec(e.engineKey)?.[1];
24883
+ var vD = /\[([^\]]+)\]\s*$/;
24884
+ function yD(e, t) {
24885
+ let n = vD.exec(e.engineKey)?.[1];
24887
24886
  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;
24888
24887
  }
24889
- function yD(e, t, n, r) {
24888
+ function bD(e, t, n, r) {
24890
24889
  if (e === null) return null;
24891
24890
  let i = `${n}/${r}`;
24892
- return e.some((e) => vD(e, t) && e.modelsLoaded.includes(i));
24891
+ return e.some((e) => yD(e, t) && e.modelsLoaded.includes(i));
24893
24892
  }
24894
- var bD = new Set(["audio-classifier"]);
24895
- function xD(e, t, n) {
24893
+ var xD = new Set(["audio-classifier"]);
24894
+ function SD(e, t, n) {
24896
24895
  return t?.[e] ?? n?.defaultModelId;
24897
24896
  }
24898
- function SD(e, t) {
24897
+ function CD(e, t) {
24899
24898
  if (e.onDisk !== "current") return /* @__PURE__ */ new Set();
24900
24899
  let n = t.stepCatalogs[e.stepId], r = new Set([e.format]);
24901
- return D(e.stepId) ? xD(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(uD(t.devices, e.stepId, e.modelId, n, r).map((e) => e.deviceKey));
24900
+ return D(e.stepId) ? SD(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(dD(t.devices, e.stepId, e.modelId, n, r).map((e) => e.deviceKey));
24902
24901
  }
24903
- function CD(e, t, n) {
24902
+ function wD(e, t, n) {
24904
24903
  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";
24905
24904
  }
24906
- function wD(e, t) {
24907
- let n = SD(e, t), r = t.devices.filter((t) => t.format === e.format).map((r) => ({
24905
+ function TD(e, t) {
24906
+ let n = CD(e, t), r = t.devices.filter((t) => t.format === e.format).map((r) => ({
24908
24907
  deviceKey: r.key,
24909
- label: hD(r),
24908
+ label: gD(r),
24910
24909
  enabled: r.enabled,
24911
- loaded: yD(t.engines, r, e.stepId, e.modelId),
24910
+ loaded: bD(t.engines, r, e.stepId, e.modelId),
24912
24911
  configured: n.has(r.key)
24913
- })).toSorted((e, t) => e.label.localeCompare(t.label)), i = t.stepCatalogs[e.stepId]?.slot, a = CD(r, i !== void 0 && bD.has(i), t.engines !== null);
24912
+ })).toSorted((e, t) => e.label.localeCompare(t.label)), i = t.stepCatalogs[e.stepId]?.slot, a = wD(r, i !== void 0 && xD.has(i), t.engines !== null);
24914
24913
  return {
24915
24914
  ...e,
24916
24915
  key: `${e.stepId}::${e.modelId}::${e.format}`,
@@ -24921,7 +24920,7 @@ function wD(e, t) {
24921
24920
  removable: a === "idle" || a === "unused"
24922
24921
  };
24923
24922
  }
24924
- function TD(e, t, n) {
24923
+ function ED(e, t, n) {
24925
24924
  return t.onDisk === "missing" ? null : {
24926
24925
  stepId: e.stepId,
24927
24926
  modelId: e.modelId,
@@ -24936,7 +24935,7 @@ function TD(e, t, n) {
24936
24935
  ...JC(e.supplies)
24937
24936
  };
24938
24937
  }
24939
- function ED(e, t) {
24938
+ function DD(e, t) {
24940
24939
  let n = [];
24941
24940
  for (let r of e.registry) {
24942
24941
  let i = r.entry.id, a = e.availability[i]?.[e.nodeId];
@@ -24959,28 +24958,28 @@ function ED(e, t) {
24959
24958
  }
24960
24959
  return n;
24961
24960
  }
24962
- function DD(e) {
24961
+ function OD(e) {
24963
24962
  let t = new Set(e.registry.map((e) => e.entry.id)), n = e.seeds.flatMap((e) => e.formats.flatMap((n) => {
24964
- let r = TD(e, n, t);
24963
+ let r = ED(e, n, t);
24965
24964
  return r === null ? [] : [r];
24966
24965
  })), 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]));
24967
- return [...n, ...ED(e, r)].map((e) => ({
24966
+ return [...n, ...DD(e, r)].map((e) => ({
24968
24967
  ...e,
24969
24968
  description: i.get(e.modelId) ?? e.description
24970
- })).map((t) => wD(t, e)).toSorted((e, t) => e.name.localeCompare(t.name) || e.format.localeCompare(t.format));
24969
+ })).map((t) => TD(t, e)).toSorted((e, t) => e.name.localeCompare(t.name) || e.format.localeCompare(t.format));
24971
24970
  }
24972
- function OD(e, t, n) {
24971
+ function kD(e, t, n) {
24973
24972
  let r = n.device === "all" ? void 0 : t.find((e) => e.key === n.device)?.format;
24974
24973
  return e.filter((e) => !(n.provider !== "all" && e.provider !== n.provider || n.step !== "all" && e.stepId !== n.step || n.device !== "all" && e.format !== r));
24975
24974
  }
24976
- function kD(e) {
24975
+ function AD(e) {
24977
24976
  return e.filter((e) => e.removable).reduce((e, t) => e + t.sizeMB, 0);
24978
24977
  }
24979
- function AD(e, t, n, r) {
24978
+ function jD(e, t, n, r) {
24980
24979
  let i = e.devices.filter((e) => e.enabled && e.format === r).map((r) => ({
24981
24980
  deviceKey: r.key,
24982
- label: hD(r),
24983
- loaded: yD(e.engines, r, t, n)
24981
+ label: gD(r),
24982
+ loaded: bD(e.engines, r, t, n)
24984
24983
  })).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";
24985
24984
  return {
24986
24985
  format: r,
@@ -24989,7 +24988,7 @@ function AD(e, t, n, r) {
24989
24988
  onDisk: o
24990
24989
  };
24991
24990
  }
24992
- function jD(e, t, n) {
24991
+ function MD(e, t, n) {
24993
24992
  return {
24994
24993
  stepId: e,
24995
24994
  modelId: t,
@@ -25002,7 +25001,7 @@ function jD(e, t, n) {
25002
25001
  let r = [...new Set(n.devices.filter((e) => e.enabled).map((e) => e.format))];
25003
25002
  return {
25004
25003
  nodeId: n.nodeId,
25005
- entries: r.map((r) => AD(n, e, t, r))
25004
+ entries: r.map((r) => jD(n, e, t, r))
25006
25005
  };
25007
25006
  })
25008
25007
  };
@@ -25010,20 +25009,18 @@ function jD(e, t, n) {
25010
25009
  //#endregion
25011
25010
  //#region src/components/InstalledSettingsModal.tsx
25012
25011
  e();
25013
- function MD({ trpc: e, nodeId: t, stepId: n, modelId: r, modelName: a, devices: o, deviceKey: s, onClose: c, onDone: u }) {
25012
+ function ND({ trpc: e, nodeId: t, stepId: n, modelId: r, modelName: a, devices: o, deviceKey: s, onClose: c, onDone: u }) {
25014
25013
  let { t: d } = $(), [f, p] = g(!1), [m, h] = g(null), [_, b] = g(null), [x, S] = g({
25015
- enabled: !0,
25016
25014
  modelId: r,
25017
25015
  settings: {}
25018
25016
  }), C = o.find((e) => e.key === s);
25019
25017
  i(() => {
25020
25018
  let i = !1;
25021
- return qw(e, n, t).then((e) => {
25019
+ return Jw(e, n, t).then((e) => {
25022
25020
  if (i) return;
25023
25021
  b(e);
25024
25022
  let t = C?.steps?.[n];
25025
25023
  S({
25026
- enabled: !0,
25027
25024
  modelId: t?.modelId ?? r,
25028
25025
  settings: { ...t?.settings }
25029
25026
  });
@@ -25040,9 +25037,9 @@ function MD({ trpc: e, nodeId: t, stepId: n, modelId: r, modelName: a, devices:
25040
25037
  let w = l(async () => {
25041
25038
  p(!0), h(null);
25042
25039
  try {
25043
- await Uw(e, {
25040
+ await Ww(e, {
25044
25041
  agentNodeId: t,
25045
- inferenceDevices: mD(o, n, x.modelId ?? r, x.settings ?? {}, s)
25042
+ inferenceDevices: hD(o, n, x.modelId ?? r, x.settings ?? {}, s)
25046
25043
  }), u(), c();
25047
25044
  } catch (e) {
25048
25045
  h(e instanceof Error ? e.message : d("settingsModal.saveFailed"));
@@ -25133,12 +25130,12 @@ function MD({ trpc: e, nodeId: t, stepId: n, modelId: r, modelName: a, devices:
25133
25130
  //#endregion
25134
25131
  //#region src/components/installed/use-cluster-placement.ts
25135
25132
  e();
25136
- async function ND(e, t) {
25133
+ async function PD(e, t) {
25137
25134
  try {
25138
25135
  let [n, r, i] = await Promise.all([
25139
- Tw(e, t),
25140
- Vw(e, t),
25141
- Hw(e, t).catch(() => null)
25136
+ Ew(e, t),
25137
+ Hw(e, t),
25138
+ Uw(e, t).catch(() => null)
25142
25139
  ]);
25143
25140
  return {
25144
25141
  nodeId: t,
@@ -25154,11 +25151,11 @@ async function ND(e, t) {
25154
25151
  };
25155
25152
  }
25156
25153
  }
25157
- function PD(e, t, n) {
25154
+ function FD(e, t, n) {
25158
25155
  let [r, a] = g(null), o = t.join("\n");
25159
25156
  return i(() => {
25160
25157
  let t = !1, n = o.length === 0 ? [] : o.split("\n");
25161
- return Promise.all(n.map((t) => ND(e, t))).then((e) => {
25158
+ return Promise.all(n.map((t) => PD(e, t))).then((e) => {
25162
25159
  t || a(e);
25163
25160
  }), () => {
25164
25161
  t = !0;
@@ -25172,14 +25169,14 @@ function PD(e, t, n) {
25172
25169
  //#endregion
25173
25170
  //#region src/components/installed/use-online-node-ids.ts
25174
25171
  e();
25175
- function FD() {
25172
+ function ID() {
25176
25173
  let { nodes: e } = Ur();
25177
25174
  return o(() => e.filter((e) => e.isOnline).map((e) => e.id), [e]);
25178
25175
  }
25179
25176
  //#endregion
25180
25177
  //#region src/components/installed/ClusterModelsSection.tsx
25181
25178
  e();
25182
- function ID({ row: e }) {
25179
+ function LD({ row: e }) {
25183
25180
  let { t } = $();
25184
25181
  if (e.entry === null) return /* @__PURE__ */ v(Wa, {
25185
25182
  variant: "danger",
@@ -25206,7 +25203,7 @@ function ID({ row: e }) {
25206
25203
  })]
25207
25204
  });
25208
25205
  }
25209
- var LD = (e) => [
25206
+ var RD = (e) => [
25210
25207
  {
25211
25208
  key: "node",
25212
25209
  header: e("cluster.cols.node"),
@@ -25235,11 +25232,11 @@ var LD = (e) => [
25235
25232
  {
25236
25233
  key: "state",
25237
25234
  header: e("cluster.cols.state"),
25238
- render: (e) => /* @__PURE__ */ v(ID, { row: e })
25235
+ render: (e) => /* @__PURE__ */ v(LD, { row: e })
25239
25236
  }
25240
25237
  ];
25241
- function RD(e, t, n) {
25242
- return jD(e.stepId, t, n).nodes.flatMap((e) => e.entries.length === 0 ? [{
25238
+ function zD(e, t, n) {
25239
+ return MD(e.stepId, t, n).nodes.flatMap((e) => e.entries.length === 0 ? [{
25243
25240
  key: e.nodeId,
25244
25241
  nodeId: e.nodeId,
25245
25242
  entry: null,
@@ -25250,7 +25247,7 @@ function RD(e, t, n) {
25250
25247
  entry: t
25251
25248
  })));
25252
25249
  }
25253
- function zD(e, t) {
25250
+ function BD(e, t) {
25254
25251
  let n = new Map(e.options.map((e) => [e.id, e.label]));
25255
25252
  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);
25256
25253
  return [...n].map(([e, t]) => ({
@@ -25258,14 +25255,14 @@ function zD(e, t) {
25258
25255
  label: t
25259
25256
  }));
25260
25257
  }
25261
- function BD({ step: e, current: t, inputs: n, onChange: r }) {
25262
- let { t: a } = $(), s = o(() => LD(a), [a]), [c, l] = g(t);
25258
+ function VD({ step: e, current: t, inputs: n, onChange: r }) {
25259
+ let { t: a } = $(), s = o(() => RD(a), [a]), [c, l] = g(t);
25263
25260
  i(() => l(t), [t]);
25264
- let u = o(() => n === null ? [] : RD(e, t, n), [
25261
+ let u = o(() => n === null ? [] : zD(e, t, n), [
25265
25262
  e,
25266
25263
  t,
25267
25264
  n
25268
- ]), d = o(() => zD(e, n), [e, n]), f = (e) => d.find((t) => t.id === e)?.label ?? e;
25265
+ ]), d = o(() => BD(e, n), [e, n]), f = (e) => d.find((t) => t.id === e)?.label ?? e;
25269
25266
  return /* @__PURE__ */ y("section", {
25270
25267
  "aria-labelledby": `cluster-${e.stepId}`,
25271
25268
  className: qe,
@@ -25325,8 +25322,8 @@ function BD({ step: e, current: t, inputs: n, onChange: r }) {
25325
25322
  ]
25326
25323
  });
25327
25324
  }
25328
- function VD({ trpc: e, refreshKey: t, clusterModels: n, onChanged: r, onError: i }) {
25329
- let { t: a } = $(), o = Xa(), s = PD(e, FD(), t), c = async (t, n, s) => {
25325
+ function HD({ trpc: e, refreshKey: t, clusterModels: n, onChanged: r, onError: i }) {
25326
+ let { t: a } = $(), o = Xa(), s = FD(e, ID(), t), c = async (t, n, s) => {
25330
25327
  if (await o({
25331
25328
  title: a("cluster.confirmTitle"),
25332
25329
  message: a("cluster.confirmMessage", {
@@ -25337,7 +25334,7 @@ function VD({ trpc: e, refreshKey: t, clusterModels: n, onChanged: r, onError: i
25337
25334
  cancelLabel: a("common.cancel"),
25338
25335
  variant: "default"
25339
25336
  })) try {
25340
- await Gw(e, dD(t, n)), r();
25337
+ await Kw(e, fD(t, n)), r();
25341
25338
  } catch (e) {
25342
25339
  i(e instanceof Error ? e.message : a("cluster.activateFailed"));
25343
25340
  }
@@ -25349,7 +25346,7 @@ function VD({ trpc: e, refreshKey: t, clusterModels: n, onChanged: r, onError: i
25349
25346
  id: "installed-cluster-models",
25350
25347
  className: Qe,
25351
25348
  children: a("cluster.title")
25352
- }), je.map((e) => /* @__PURE__ */ v(BD, {
25349
+ }), je.map((e) => /* @__PURE__ */ v(VD, {
25353
25350
  step: e,
25354
25351
  current: n?.[e.stepId] ?? e.defaultModelId,
25355
25352
  inputs: s,
@@ -25359,7 +25356,7 @@ function VD({ trpc: e, refreshKey: t, clusterModels: n, onChanged: r, onError: i
25359
25356
  }
25360
25357
  //#endregion
25361
25358
  //#region src/components/FillBadges.tsx
25362
- function HD(e, t) {
25359
+ function UD(e, t) {
25363
25360
  if (e.kind === "mask") return t("fillBadges.mask");
25364
25361
  if (e.kind === "crop") return e.stepId === "face-detection" ? t("fillBadges.cropFace") : t("fillBadges.cropPlate");
25365
25362
  let n = ye[e.stepId], r = {
@@ -25368,14 +25365,14 @@ function HD(e, t) {
25368
25365
  };
25369
25366
  return e.uncovered.length > 0 ? t(n ? "fillBadges.labelsDefaultUncovered" : "fillBadges.labelsOptionalUncovered", r) : t(n ? "fillBadges.labelsDefaultAll" : "fillBadges.labelsOptionalAll", r);
25370
25367
  }
25371
- function UD({ supplies: e }) {
25368
+ function WD({ supplies: e }) {
25372
25369
  let { t } = $();
25373
25370
  return e === void 0 || e.length === 0 ? null : /* @__PURE__ */ v("span", {
25374
25371
  className: "flex flex-wrap gap-1",
25375
25372
  "data-testid": "fill-badges",
25376
25373
  children: e.map((e) => /* @__PURE__ */ v("span", {
25377
25374
  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",
25378
- title: HD(e, t),
25375
+ title: UD(e, t),
25379
25376
  children: pe(e)
25380
25377
  }, e.stepId))
25381
25378
  });
@@ -25383,7 +25380,7 @@ function UD({ supplies: e }) {
25383
25380
  //#endregion
25384
25381
  //#region src/components/InlineRename.tsx
25385
25382
  e();
25386
- function WD({ name: e, modelId: t, onRename: n, onError: r }) {
25383
+ function GD({ name: e, modelId: t, onRename: n, onError: r }) {
25387
25384
  let { t: i } = $(), [a, o] = g(null), [s, c] = g(!1);
25388
25385
  if (a === null) return /* @__PURE__ */ y("span", {
25389
25386
  className: "flex items-center gap-1 min-w-0",
@@ -25470,7 +25467,7 @@ function WD({ name: e, modelId: t, onRename: n, onError: r }) {
25470
25467
  length: l.length,
25471
25468
  max: 80
25472
25469
  })
25473
- }) : l.kind === "reset" ? i("inlineRename.reset") : /* @__PURE__ */ v(tT, {
25470
+ }) : l.kind === "reset" ? i("inlineRename.reset") : /* @__PURE__ */ v(nT, {
25474
25471
  i18nKey: "inlineRename.idSame",
25475
25472
  values: { modelId: t },
25476
25473
  components: { mono: /* @__PURE__ */ v("span", { className: "font-mono" }) }
@@ -25480,7 +25477,7 @@ function WD({ name: e, modelId: t, onRename: n, onError: r }) {
25480
25477
  }
25481
25478
  //#endregion
25482
25479
  //#region src/components/installed/DeviceChips.tsx
25483
- var GD = {
25480
+ var KD = {
25484
25481
  off: "off",
25485
25482
  loadedConfigured: "loaded, configured",
25486
25483
  loaded: "loaded",
@@ -25488,19 +25485,19 @@ var GD = {
25488
25485
  unknown: "load state unknown",
25489
25486
  notUsed: "not used"
25490
25487
  };
25491
- function KD(e) {
25488
+ function qD(e) {
25492
25489
  return e.enabled ? e.loaded === !0 ? e.configured ? "loadedConfigured" : "loaded" : e.configured ? "configuredNotLoaded" : e.loaded === null ? "unknown" : "notUsed" : "off";
25493
25490
  }
25494
- function qD(e) {
25491
+ function JD(e) {
25495
25492
  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";
25496
25493
  }
25497
- function JD({ chip: e }) {
25494
+ function YD({ chip: e }) {
25498
25495
  return /* @__PURE__ */ v("span", {
25499
25496
  "aria-hidden": !0,
25500
25497
  className: W("h-1.5 w-1.5 rounded-full", e.loaded === !0 ? "bg-success" : e.configured ? "border border-primary" : "border border-foreground-subtle/60")
25501
25498
  });
25502
25499
  }
25503
- function YD({ chips: e, onChip: t, disabled: n = !1 }) {
25500
+ function XD({ chips: e, onChip: t, disabled: n = !1 }) {
25504
25501
  let { t: r } = $();
25505
25502
  return e.length === 0 ? /* @__PURE__ */ v("span", {
25506
25503
  className: "text-[10px] text-foreground-subtle",
@@ -25509,7 +25506,7 @@ function YD({ chips: e, onChip: t, disabled: n = !1 }) {
25509
25506
  className: "flex flex-wrap gap-1",
25510
25507
  "data-testid": "installed-device-chips",
25511
25508
  children: e.map((e) => {
25512
- let i = KD(e), a = r(`deviceChips.state.${i}`), o = r("deviceChips.chipLabel", {
25509
+ let i = qD(e), a = r(`deviceChips.state.${i}`), o = r("deviceChips.chipLabel", {
25513
25510
  label: e.label,
25514
25511
  deviceKey: e.deviceKey,
25515
25512
  state: a
@@ -25518,19 +25515,19 @@ function YD({ chips: e, onChip: t, disabled: n = !1 }) {
25518
25515
  state: a
25519
25516
  });
25520
25517
  if (!e.enabled) return /* @__PURE__ */ v("span", {
25521
- className: W(We, qD(e), "min-w-[1.75rem] justify-center px-1.5"),
25518
+ className: W(We, JD(e), "min-w-[1.75rem] justify-center px-1.5"),
25522
25519
  "data-device-key": e.deviceKey,
25523
- "data-state": GD[i],
25520
+ "data-state": KD[i],
25524
25521
  "aria-label": o,
25525
25522
  title: s
25526
25523
  }, e.deviceKey);
25527
- let c = t !== void 0 && !n, l = W(We, qD(e), c && "hover:border-primary/60"), u = /* @__PURE__ */ y(b, { children: [/* @__PURE__ */ v(JD, { chip: e }), e.label] });
25524
+ let c = t !== void 0 && !n, l = W(We, JD(e), c && "hover:border-primary/60"), u = /* @__PURE__ */ y(b, { children: [/* @__PURE__ */ v(YD, { chip: e }), e.label] });
25528
25525
  return c ? /* @__PURE__ */ v("button", {
25529
25526
  type: "button",
25530
25527
  className: l,
25531
25528
  onClick: () => t(e),
25532
25529
  "data-device-key": e.deviceKey,
25533
- "data-state": GD[i],
25530
+ "data-state": KD[i],
25534
25531
  "aria-label": o,
25535
25532
  title: e.configured ? r("deviceChips.titleOpenSettings", {
25536
25533
  deviceKey: e.deviceKey,
@@ -25543,7 +25540,7 @@ function YD({ chips: e, onChip: t, disabled: n = !1 }) {
25543
25540
  }, e.deviceKey) : /* @__PURE__ */ v("span", {
25544
25541
  className: l,
25545
25542
  "data-device-key": e.deviceKey,
25546
- "data-state": GD[i],
25543
+ "data-state": KD[i],
25547
25544
  "aria-label": o,
25548
25545
  title: s,
25549
25546
  children: u
@@ -25553,7 +25550,7 @@ function YD({ chips: e, onChip: t, disabled: n = !1 }) {
25553
25550
  }
25554
25551
  //#endregion
25555
25552
  //#region src/components/installed/UsageBadge.tsx
25556
- var XD = {
25553
+ var ZD = {
25557
25554
  "in-use": {
25558
25555
  key: "inUse",
25559
25556
  variant: "success"
@@ -25578,50 +25575,50 @@ var XD = {
25578
25575
  key: "unknown",
25579
25576
  variant: "default"
25580
25577
  }
25581
- }, ZD = "text-[10px] px-1.5 py-0";
25582
- function QD({ usage: e }) {
25583
- let { t } = $(), n = XD[e];
25578
+ }, QD = "text-[10px] px-1.5 py-0";
25579
+ function $D({ usage: e }) {
25580
+ let { t } = $(), n = ZD[e];
25584
25581
  return /* @__PURE__ */ v(Wa, {
25585
25582
  variant: n.variant,
25586
- className: ZD,
25583
+ className: QD,
25587
25584
  title: t(`usage.${n.key}.title`),
25588
25585
  "data-usage": e,
25589
25586
  children: t(`usage.${n.key}.label`)
25590
25587
  });
25591
25588
  }
25592
- function $D() {
25589
+ function eO() {
25593
25590
  let { t: e } = $();
25594
25591
  return /* @__PURE__ */ v(Wa, {
25595
25592
  variant: "warning",
25596
25593
  style: "outline",
25597
- className: `${ZD} border-warning/40`,
25594
+ className: `${QD} border-warning/40`,
25598
25595
  title: e("usage.stale.title"),
25599
25596
  children: e("usage.stale.label")
25600
25597
  });
25601
25598
  }
25602
- function eO({ precision: e }) {
25599
+ function tO({ precision: e }) {
25603
25600
  let { t } = $();
25604
25601
  return /* @__PURE__ */ v(Wa, {
25605
25602
  style: "outline",
25606
- className: `${ZD} border-border text-foreground-subtle uppercase`,
25603
+ className: `${QD} border-border text-foreground-subtle uppercase`,
25607
25604
  title: t("usage.precisionTitle"),
25608
25605
  children: e
25609
25606
  });
25610
25607
  }
25611
25608
  //#endregion
25612
25609
  //#region src/components/installed/provider-label.ts
25613
- var tO = {
25610
+ var nO = {
25614
25611
  camstack: "CamStack",
25615
25612
  scrypted: "Scrypted",
25616
25613
  frigate: "Frigate"
25617
25614
  };
25618
- function nO(e, t) {
25619
- return e === "custom" ? t("providers.custom") : tO[e] ?? e;
25615
+ function rO(e, t) {
25616
+ return e === "custom" ? t("providers.custom") : nO[e] ?? e;
25620
25617
  }
25621
25618
  //#endregion
25622
25619
  //#region src/components/installed/InstalledFilesTable.tsx
25623
25620
  e();
25624
- function rO({ row: e, onRename: t, onError: n }) {
25621
+ function iO({ row: e, onRename: t, onError: n }) {
25625
25622
  let { t: r } = $();
25626
25623
  return /* @__PURE__ */ y("div", {
25627
25624
  className: "flex min-w-0 flex-col gap-0.5 whitespace-normal",
@@ -25630,7 +25627,7 @@ function rO({ row: e, onRename: t, onError: n }) {
25630
25627
  "data-usage": e.usage,
25631
25628
  "data-removable": e.removable ? "true" : "false",
25632
25629
  children: [
25633
- e.renameable ? /* @__PURE__ */ v(WD, {
25630
+ e.renameable ? /* @__PURE__ */ v(GD, {
25634
25631
  name: e.name,
25635
25632
  modelId: e.modelId,
25636
25633
  onRename: t,
@@ -25651,16 +25648,16 @@ function rO({ row: e, onRename: t, onError: n }) {
25651
25648
  children: [
25652
25649
  e.stepId,
25653
25650
  " · ",
25654
- nO(e.provider, r),
25651
+ rO(e.provider, r),
25655
25652
  e.clusterScoped ? r("filesTable.clusterModel") : "",
25656
25653
  e.description ? ` · ${e.description}` : ""
25657
25654
  ]
25658
25655
  }),
25659
- /* @__PURE__ */ v(UD, { supplies: e.supplies })
25656
+ /* @__PURE__ */ v(WD, { supplies: e.supplies })
25660
25657
  ]
25661
25658
  });
25662
25659
  }
25663
- function iO({ row: e }) {
25660
+ function aO({ row: e }) {
25664
25661
  return /* @__PURE__ */ y("span", {
25665
25662
  className: "inline-flex flex-wrap items-center gap-1",
25666
25663
  children: [
@@ -25668,12 +25665,12 @@ function iO({ row: e }) {
25668
25665
  className: "font-mono text-[11px] text-foreground",
25669
25666
  children: e.format
25670
25667
  }),
25671
- e.precision !== void 0 && /* @__PURE__ */ v(eO, { precision: e.precision }),
25672
- e.onDisk === "stale" && /* @__PURE__ */ v($D, {})
25668
+ e.precision !== void 0 && /* @__PURE__ */ v(tO, { precision: e.precision }),
25669
+ e.onDisk === "stale" && /* @__PURE__ */ v(eO, {})
25673
25670
  ]
25674
25671
  });
25675
25672
  }
25676
- function aO({ row: e, busy: t, onRemove: n }) {
25673
+ function oO({ row: e, busy: t, onRemove: n }) {
25677
25674
  let { t: r } = $();
25678
25675
  return e.removable ? /* @__PURE__ */ y("button", {
25679
25676
  type: "button",
@@ -25694,7 +25691,7 @@ function aO({ row: e, busy: t, onRemove: n }) {
25694
25691
  }), r("filesTable.remove")]
25695
25692
  }) : null;
25696
25693
  }
25697
- function oO() {
25694
+ function sO() {
25698
25695
  let [e, t] = g(/* @__PURE__ */ new Set());
25699
25696
  return {
25700
25697
  busy: e,
@@ -25708,8 +25705,8 @@ function oO() {
25708
25705
  }
25709
25706
  };
25710
25707
  }
25711
- function sO({ rows: e, emptyMessage: t, onRemove: n, onRename: r, onChip: i, onError: a }) {
25712
- let { t: o } = $(), { busy: s, run: c } = oO(), l = (e, t) => {
25708
+ function cO({ rows: e, emptyMessage: t, onRemove: n, onRename: r, onChip: i, onError: a }) {
25709
+ let { t: o } = $(), { busy: s, run: c } = sO(), l = (e, t) => {
25713
25710
  c(e.key, async () => {
25714
25711
  try {
25715
25712
  await t();
@@ -25725,7 +25722,7 @@ function sO({ rows: e, emptyMessage: t, onRemove: n, onRename: r, onChip: i, onE
25725
25722
  header: o("filesTable.cols.model"),
25726
25723
  nowrap: !1,
25727
25724
  sortValue: (e) => e.name,
25728
- render: (e) => /* @__PURE__ */ v(rO, {
25725
+ render: (e) => /* @__PURE__ */ v(iO, {
25729
25726
  row: e,
25730
25727
  onRename: (t) => r(e, t),
25731
25728
  onError: a
@@ -25735,7 +25732,7 @@ function sO({ rows: e, emptyMessage: t, onRemove: n, onRename: r, onChip: i, onE
25735
25732
  key: "format",
25736
25733
  header: o("filesTable.cols.format"),
25737
25734
  sortValue: (e) => e.format,
25738
- render: (e) => /* @__PURE__ */ v(iO, { row: e })
25735
+ render: (e) => /* @__PURE__ */ v(aO, { row: e })
25739
25736
  },
25740
25737
  {
25741
25738
  key: "size",
@@ -25752,7 +25749,7 @@ function sO({ rows: e, emptyMessage: t, onRemove: n, onRename: r, onChip: i, onE
25752
25749
  header: o("filesTable.cols.devices"),
25753
25750
  nowrap: !1,
25754
25751
  notSortableReason: o("filesTable.devicesNotSortable"),
25755
- render: (e) => /* @__PURE__ */ v(YD, {
25752
+ render: (e) => /* @__PURE__ */ v(XD, {
25756
25753
  chips: e.chips,
25757
25754
  disabled: s.has(e.key),
25758
25755
  onChip: e.clusterScoped || e.origin !== "pipeline" || e.usage === "outside-pools" ? void 0 : (t) => l(e, () => i(e, t))
@@ -25762,12 +25759,12 @@ function sO({ rows: e, emptyMessage: t, onRemove: n, onRename: r, onChip: i, onE
25762
25759
  key: "status",
25763
25760
  header: o("filesTable.cols.status"),
25764
25761
  sortValue: (e) => e.usage,
25765
- render: (e) => /* @__PURE__ */ v(QD, { usage: e.usage })
25762
+ render: (e) => /* @__PURE__ */ v($D, { usage: e.usage })
25766
25763
  },
25767
25764
  {
25768
25765
  key: "actions",
25769
25766
  align: "right",
25770
- render: (e) => /* @__PURE__ */ v(aO, {
25767
+ render: (e) => /* @__PURE__ */ v(oO, {
25771
25768
  row: e,
25772
25769
  busy: s.has(e.key),
25773
25770
  onRemove: () => l(e, () => n(e))
@@ -25787,19 +25784,19 @@ function sO({ rows: e, emptyMessage: t, onRemove: n, onRename: r, onChip: i, onE
25787
25784
  }
25788
25785
  //#endregion
25789
25786
  //#region src/components/installed/InstalledFilters.tsx
25790
- var cO = [
25787
+ var lO = [
25791
25788
  "camstack",
25792
25789
  "scrypted",
25793
25790
  "frigate",
25794
25791
  "custom"
25795
25792
  ];
25796
- function lO(e) {
25793
+ function uO(e) {
25797
25794
  let { t } = $(), n = [{
25798
25795
  value: "all",
25799
25796
  label: t("installedFilters.all")
25800
- }, ...cO.map((e) => ({
25797
+ }, ...lO.map((e) => ({
25801
25798
  value: e,
25802
- label: nO(e, t)
25799
+ label: rO(e, t)
25803
25800
  }))], r = [{
25804
25801
  value: "all",
25805
25802
  label: t("installedFilters.allDevices")
@@ -25856,7 +25853,7 @@ function lO(e) {
25856
25853
  ] }),
25857
25854
  end: /* @__PURE__ */ v("div", {
25858
25855
  className: "min-w-0 max-w-full overflow-x-auto",
25859
- children: /* @__PURE__ */ v(Zw, {
25856
+ children: /* @__PURE__ */ v(Qw, {
25860
25857
  selectedNodeId: e.nodeId,
25861
25858
  onSelect: e.onNode
25862
25859
  })
@@ -25866,27 +25863,27 @@ function lO(e) {
25866
25863
  //#endregion
25867
25864
  //#region src/tabs/InstalledTab.tsx
25868
25865
  e();
25869
- function uO(e) {
25866
+ function dO(e) {
25870
25867
  return e === "camstack" || e === "scrypted" || e === "frigate" || e === "custom" ? e : "all";
25871
25868
  }
25872
- function dO(e) {
25869
+ function fO(e) {
25873
25870
  return e === null || e.length === 0 || e === "all" ? "all" : e;
25874
25871
  }
25875
- var fO = dO, pO = dO;
25876
- function mO(e) {
25872
+ var pO = fO, mO = fO;
25873
+ function hO(e) {
25877
25874
  return e === null || e.length === 0 ? "hub" : e;
25878
25875
  }
25879
- function hO(e) {
25876
+ function gO(e) {
25880
25877
  return ge.some((t) => t === e);
25881
25878
  }
25882
- async function gO(e, t) {
25879
+ async function _O(e, t) {
25883
25880
  let [n, r, i, a, o, s] = await Promise.all([
25884
- pw(e),
25885
25881
  mw(e),
25886
- Tw(e, t),
25887
- Vw(e, t).catch(() => []),
25888
- Hw(e, t).catch(() => null),
25889
- Ww(e).catch(() => null)
25882
+ hw(e),
25883
+ Ew(e, t),
25884
+ Hw(e, t).catch(() => []),
25885
+ Uw(e, t).catch(() => null),
25886
+ Gw(e).catch(() => null)
25890
25887
  ]);
25891
25888
  return {
25892
25889
  models: n,
@@ -25898,15 +25895,15 @@ async function gO(e, t) {
25898
25895
  clusterModels: s
25899
25896
  };
25900
25897
  }
25901
- function _O(e, t, n) {
25898
+ function vO(e, t, n) {
25902
25899
  let [r, i] = jS(e), a = l((e) => i(e === n ? null : e), [i, n]);
25903
25900
  return [t(r), a];
25904
25901
  }
25905
- function vO({ trpc: e, refreshKey: t }) {
25906
- let { t: n } = $(), [r, a] = jS("provider"), s = uO(r), c = l((e) => a(e === "all" ? null : e), [a]), [u, d] = _O("type", fO, "all"), [f, p] = _O("device", pO, "all"), [m, h] = _O("node", mO, "hub"), _ = Xa(), [x, S] = g(null), [C, w] = g(null), [T, E] = g(0), [ee, te] = g(null), D = l(async () => {
25902
+ function yO({ trpc: e, refreshKey: t }) {
25903
+ let { t: n } = $(), [r, a] = jS("provider"), s = dO(r), c = l((e) => a(e === "all" ? null : e), [a]), [u, d] = vO("type", pO, "all"), [f, p] = vO("device", mO, "all"), [m, h] = vO("node", hO, "hub"), _ = Xa(), [x, S] = g(null), [C, w] = g(null), [T, E] = g(0), [ee, te] = g(null), D = l(async () => {
25907
25904
  w(null);
25908
25905
  try {
25909
- S(await gO(e, m));
25906
+ S(await _O(e, m));
25910
25907
  } catch (e) {
25911
25908
  w(e instanceof Error ? e.message : n("installed.loadFailed"));
25912
25909
  }
@@ -25920,7 +25917,7 @@ function vO({ trpc: e, refreshKey: t }) {
25920
25917
  }, [D, t]);
25921
25918
  let O = l(async () => {
25922
25919
  await D(), E((e) => e + 1);
25923
- }, [D]), k = o(() => x === null ? [] : DD({
25920
+ }, [D]), k = o(() => x === null ? [] : OD({
25924
25921
  nodeId: m,
25925
25922
  seeds: x.seeds,
25926
25923
  stepCatalogs: x.stepCatalogs,
@@ -25929,7 +25926,7 @@ function vO({ trpc: e, refreshKey: t }) {
25929
25926
  clusterModels: x.clusterModels,
25930
25927
  registry: x.models,
25931
25928
  availability: x.availability
25932
- }), [x, m]), A = x?.devices ?? [], ne = o(() => OD(k, A, {
25929
+ }), [x, m]), A = x?.devices ?? [], ne = o(() => kD(k, A, {
25933
25930
  provider: s,
25934
25931
  step: u,
25935
25932
  device: f
@@ -25943,18 +25940,18 @@ function vO({ trpc: e, refreshKey: t }) {
25943
25940
  let e = new Set(k.map((e) => e.stepId));
25944
25941
  return u !== "all" && e.add(u), [...e].toSorted((e, t) => e.localeCompare(t));
25945
25942
  }, [k, u]), re = l(async (t) => {
25946
- if (!t.removable || !hO(t.format)) return;
25943
+ if (!t.removable || !gO(t.format)) return;
25947
25944
  let n = {
25948
25945
  modelId: t.modelId,
25949
25946
  format: t.format,
25950
25947
  nodeId: m
25951
25948
  };
25952
- t.origin === "registry" ? await vw(e, n) : await Dw(e, {
25949
+ t.origin === "registry" ? await yw(e, n) : await Ow(e, {
25953
25950
  ...n,
25954
25951
  addonId: t.stepId
25955
25952
  });
25956
25953
  }, [m, e]), M = l(async (e) => {
25957
- !e.removable || !hO(e.format) || await _({
25954
+ !e.removable || !gO(e.format) || await _({
25958
25955
  title: n("installed.deleteFile.title"),
25959
25956
  message: n("installed.deleteFile.message", {
25960
25957
  format: e.format,
@@ -25998,7 +25995,7 @@ function vO({ trpc: e, refreshKey: t }) {
25998
25995
  ie,
25999
25996
  n
26000
25997
  ]), N = l(async (t, n) => {
26001
- await _w(e, {
25998
+ await vw(e, {
26002
25999
  modelId: t.modelId,
26003
26000
  name: n
26004
26001
  }), await O();
@@ -26021,9 +26018,9 @@ function vO({ trpc: e, refreshKey: t }) {
26021
26018
  confirmLabel: n("common.activate"),
26022
26019
  cancelLabel: n("common.cancel"),
26023
26020
  variant: "default"
26024
- }) && (await Uw(e, {
26021
+ }) && (await Ww(e, {
26025
26022
  agentNodeId: m,
26026
- inferenceDevices: pD(A, t.stepId, t.modelId, [r.deviceKey])
26023
+ inferenceDevices: mD(A, t.stepId, t.modelId, [r.deviceKey])
26027
26024
  }), await O());
26028
26025
  }, [
26029
26026
  _,
@@ -26041,14 +26038,14 @@ function vO({ trpc: e, refreshKey: t }) {
26041
26038
  className: "rounded-md border border-danger/30 bg-danger/10 px-3 py-2 text-xs text-danger",
26042
26039
  children: C
26043
26040
  }),
26044
- /* @__PURE__ */ v(lO, {
26041
+ /* @__PURE__ */ v(uO, {
26045
26042
  provider: s,
26046
26043
  onProvider: c,
26047
26044
  step: u,
26048
26045
  stepOptions: j,
26049
26046
  onStep: d,
26050
26047
  device: f,
26051
- deviceOptions: gD(A),
26048
+ deviceOptions: _D(A),
26052
26049
  onDevice: p,
26053
26050
  nodeId: m,
26054
26051
  onNode: h
@@ -26073,7 +26070,7 @@ function vO({ trpc: e, refreshKey: t }) {
26073
26070
  n("installed.summary.onDisk", { size: nw(P) }),
26074
26071
  " ·",
26075
26072
  " ",
26076
- n("installed.summary.reclaimable", { size: nw(kD(k)) }),
26073
+ n("installed.summary.reclaimable", { size: nw(AD(k)) }),
26077
26074
  x?.engines === null ? ` · ${n("installed.summary.loadedUnavailable")}` : ""
26078
26075
  ]
26079
26076
  }), ie.length > 0 && /* @__PURE__ */ v("button", {
@@ -26084,7 +26081,7 @@ function vO({ trpc: e, refreshKey: t }) {
26084
26081
  children: n("installed.removeUnused", { count: ie.length })
26085
26082
  })]
26086
26083
  }),
26087
- /* @__PURE__ */ v(sO, {
26084
+ /* @__PURE__ */ v(cO, {
26088
26085
  rows: ne,
26089
26086
  emptyMessage: k.length === 0 ? n("installed.emptyNode", { nodeId: m }) : n("installed.emptyFiltered"),
26090
26087
  onRemove: M,
@@ -26092,7 +26089,7 @@ function vO({ trpc: e, refreshKey: t }) {
26092
26089
  onChip: oe,
26093
26090
  onError: w
26094
26091
  }),
26095
- /* @__PURE__ */ v(VD, {
26092
+ /* @__PURE__ */ v(HD, {
26096
26093
  trpc: e,
26097
26094
  refreshKey: t + T,
26098
26095
  clusterModels: x?.clusterModels ?? null,
@@ -26100,7 +26097,7 @@ function vO({ trpc: e, refreshKey: t }) {
26100
26097
  onError: w
26101
26098
  })
26102
26099
  ] }),
26103
- ee && /* @__PURE__ */ v(MD, {
26100
+ ee && /* @__PURE__ */ v(ND, {
26104
26101
  trpc: e,
26105
26102
  nodeId: m,
26106
26103
  stepId: ee.row.stepId,
@@ -26116,13 +26113,13 @@ function vO({ trpc: e, refreshKey: t }) {
26116
26113
  }
26117
26114
  //#endregion
26118
26115
  //#region src/tabs/LogsTab.tsx
26119
- var yO = "model-studio";
26120
- function bO() {
26116
+ var bO = "model-studio";
26117
+ function xO() {
26121
26118
  return /* @__PURE__ */ v("div", {
26122
26119
  className: "space-y-3",
26123
26120
  "data-testid": "logs-tab",
26124
26121
  children: /* @__PURE__ */ v(Vl, {
26125
- addonId: yO,
26122
+ addonId: bO,
26126
26123
  limit: 200,
26127
26124
  maxHeight: "max-h-[70vh]",
26128
26125
  showFilters: !0,
@@ -26133,23 +26130,23 @@ function bO() {
26133
26130
  //#endregion
26134
26131
  //#region src/page.tsx
26135
26132
  e();
26136
- var xO = [
26133
+ var SO = [
26137
26134
  { id: "catalog" },
26138
26135
  { id: "installed" },
26139
26136
  { id: "import" },
26140
26137
  { id: "logs" }
26141
26138
  ];
26142
- function SO(e) {
26139
+ function CO(e) {
26143
26140
  return e === "library" ? "installed" : e === "convert" || e === "settings" ? "catalog" : e === "import" || e === "catalog" || e === "installed" || e === "logs" ? e : "catalog";
26144
26141
  }
26145
- function CO(e) {
26142
+ function wO(e) {
26146
26143
  return `model-studio-tab-${e}`;
26147
26144
  }
26148
- function wO(e) {
26145
+ function TO(e) {
26149
26146
  return `model-studio-panel-${e}`;
26150
26147
  }
26151
- function TO({ trpc: e }) {
26152
- let { t: n } = $(), [r, a] = jS("tab"), [o, s] = jS("source"), c = SO(r), u = RE(o), [d, f] = g(0), [p, m] = g(null), h = t(!1), _ = l(() => f((e) => e + 1), []), b = l((e, t = !1) => {
26148
+ function EO({ trpc: e }) {
26149
+ let { t: n } = $(), [r, a] = jS("tab"), [o, s] = jS("source"), c = CO(r), u = zE(o), [d, f] = g(0), [p, m] = g(null), h = t(!1), _ = l(() => f((e) => e + 1), []), b = l((e, t = !1) => {
26153
26150
  a(e === "catalog" ? null : e), e !== "catalog" && o !== null && (e === "import" || e === "logs" || e === "installed") && s(null), t && (h.current = !0);
26154
26151
  }, [
26155
26152
  a,
@@ -26159,7 +26156,7 @@ function TO({ trpc: e }) {
26159
26156
  s(e === "camstack" ? null : e);
26160
26157
  }, [s]);
26161
26158
  i(() => {
26162
- h.current && (h.current = !1, document.getElementById(CO(c))?.focus());
26159
+ h.current && (h.current = !1, document.getElementById(wO(c))?.focus());
26163
26160
  }, [c]), i(() => {
26164
26161
  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));
26165
26162
  }, [
@@ -26170,12 +26167,12 @@ function TO({ trpc: e }) {
26170
26167
  s
26171
26168
  ]);
26172
26169
  let S = l((e) => {
26173
- let t = xO.map((e) => e.id), n = t.indexOf(c);
26170
+ let t = SO.map((e) => e.id), n = t.indexOf(c);
26174
26171
  if (n < 0) return;
26175
26172
  let r;
26176
26173
  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));
26177
26174
  }, [c, b]);
26178
- return /* @__PURE__ */ v(gT, { children: /* @__PURE__ */ y(CS, {
26175
+ return /* @__PURE__ */ v(_T, { children: /* @__PURE__ */ y(CS, {
26179
26176
  icon: wt,
26180
26177
  title: n("page.title"),
26181
26178
  children: [/* @__PURE__ */ v(Rs, {
@@ -26186,20 +26183,20 @@ function TO({ trpc: e }) {
26186
26183
  children: /* @__PURE__ */ v(zs, {
26187
26184
  "aria-label": n("page.sections"),
26188
26185
  onKeyDown: S,
26189
- children: xO.map((e) => /* @__PURE__ */ v(Bs, {
26190
- id: CO(e.id),
26186
+ children: SO.map((e) => /* @__PURE__ */ v(Bs, {
26187
+ id: wO(e.id),
26191
26188
  value: e.id,
26192
- "aria-controls": wO(e.id),
26189
+ "aria-controls": TO(e.id),
26193
26190
  children: n(`page.tabs.${e.id}`)
26194
26191
  }, e.id))
26195
26192
  })
26196
26193
  }), /* @__PURE__ */ y("div", {
26197
26194
  className: "min-h-[400px]",
26198
26195
  role: "tabpanel",
26199
- id: wO(c),
26200
- "aria-labelledby": CO(c),
26196
+ id: TO(c),
26197
+ "aria-labelledby": wO(c),
26201
26198
  children: [
26202
- c === "catalog" && /* @__PURE__ */ v(GE, {
26199
+ c === "catalog" && /* @__PURE__ */ v(KE, {
26203
26200
  trpc: e,
26204
26201
  refreshKey: d,
26205
26202
  source: u,
@@ -26209,20 +26206,20 @@ function TO({ trpc: e }) {
26209
26206
  m(e), b("import");
26210
26207
  }
26211
26208
  }),
26212
- c === "installed" && /* @__PURE__ */ v(vO, {
26209
+ c === "installed" && /* @__PURE__ */ v(yO, {
26213
26210
  trpc: e,
26214
26211
  refreshKey: d
26215
26212
  }),
26216
- c === "import" && /* @__PURE__ */ v(lD, {
26213
+ c === "import" && /* @__PURE__ */ v(uD, {
26217
26214
  trpc: e,
26218
26215
  onRegistered: _,
26219
26216
  initialPrefill: p,
26220
26217
  onPrefillConsumed: () => m(null)
26221
26218
  }),
26222
- c === "logs" && /* @__PURE__ */ v(bO, {})
26219
+ c === "logs" && /* @__PURE__ */ v(xO, {})
26223
26220
  ]
26224
26221
  })]
26225
26222
  }) });
26226
26223
  }
26227
26224
  //#endregion
26228
- export { TO as default };
26225
+ export { EO as default };