@camstack/addon-benchmark 1.2.36 → 1.2.38

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 (16) hide show
  1. package/dist/{MotionZonesSettings-D0ZWade-.mjs → MotionZonesSettings-BNzikUE7.mjs} +2 -2
  2. package/dist/{PrivacyMaskSettings-CCaDEYqV.mjs → PrivacyMaskSettings-D_sagUPt.mjs} +4 -4
  3. package/dist/{SceneMonitorEditor-DxET6Fog.mjs → SceneMonitorEditor-CqGJJc8c.mjs} +3 -3
  4. package/dist/_stub.js +347 -347
  5. package/dist/{_virtual_mf-localSharedImportMap___mfe_internal__addon_benchmark_page-CdNasi0D.mjs → _virtual_mf-localSharedImportMap___mfe_internal__addon_benchmark_page-CDlWkMxd.mjs} +4 -4
  6. package/dist/_virtual_mf___mfe_internal__addon_benchmark_page__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-BcrWicXW.mjs +26 -0
  7. package/dist/{hostInit-rbQfRadV.mjs → hostInit-0ltbv6M0.mjs} +3 -3
  8. package/dist/{player-overlays-C7-_Xisc.mjs → player-overlays-Xg0wvdvI.mjs} +1 -1
  9. package/dist/remoteEntry.js +1 -1
  10. package/dist/{responsive-CaW2oK5P.mjs → responsive-Co-WAPd3.mjs} +1 -1
  11. package/dist/{square-Cld4asmu.mjs → square-BFgNnLBH.mjs} +1 -1
  12. package/dist/{trash-2-AlHHPRiP.mjs → trash-2-Dbc9xVPC.mjs} +1 -1
  13. package/dist/{use-device-snapshot-CrXFafOP.mjs → use-device-snapshot-ZskVBQOb.mjs} +1 -1
  14. package/dist/{virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_benchmark_page__remoteEntry_js-BrGHsBZM.mjs → virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_benchmark_page__remoteEntry_js-DQ6ccbZ-.mjs} +1 -1
  15. package/package.json +1 -1
  16. package/dist/_virtual_mf___mfe_internal__addon_benchmark_page__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-B8fB0oqf.mjs +0 -26
package/dist/_stub.js CHANGED
@@ -1,18 +1,18 @@
1
1
  import "./virtualExposes-erbhyesj.mjs";
2
- import { a as e, i as t, o as n, r } from "./virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_benchmark_page__remoteEntry_js-BrGHsBZM.mjs";
2
+ import { a as e, i as t, o as n, r } from "./virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_benchmark_page__remoteEntry_js-DQ6ccbZ-.mjs";
3
3
  import { _ as i, b as a, c as o, d as s, f as c, g as l, h as u, i as d, l as f, m as p, n as m, p as h, r as g, t as _, u as v, v as y, x as b, y as x } from "./_virtual_mf___mfe_internal__addon_benchmark_page__loadShare__react__loadShare__.js-GeuxDuzQ.mjs";
4
- import { a as S, i as C, n as w, o as T, r as E, s as D } from "./responsive-CaW2oK5P.mjs";
5
- import { c as ee, l as O, u as te } from "./use-device-snapshot-CrXFafOP.mjs";
6
- import { a as ne, i as k, n as A, o as re, r as j } from "./player-overlays-C7-_Xisc.mjs";
7
- import { n as M, r as N, t as P } from "./square-Cld4asmu.mjs";
8
- import { t as F } from "./trash-2-AlHHPRiP.mjs";
4
+ import { a as S, i as C, n as w, o as T, r as E, s as D } from "./responsive-Co-WAPd3.mjs";
5
+ import { c as ee, l as O, u as te } from "./use-device-snapshot-ZskVBQOb.mjs";
6
+ import { a as ne, i as k, n as A, o as re, r as j } from "./player-overlays-Xg0wvdvI.mjs";
7
+ import { n as M, r as N, t as P } from "./square-BFgNnLBH.mjs";
8
+ import { t as F } from "./trash-2-Dbc9xVPC.mjs";
9
9
  import { n as I, t as L } from "./_virtual_mf___mfe_internal__addon_benchmark_page__loadShare___mf_0_trpc_mf_1_react_mf_2_query__loadShare__.js-Bh7FS7ML.mjs";
10
10
  import { i as R, n as z, r as B, t as V } from "./_virtual_mf___mfe_internal__addon_benchmark_page__loadShare__react_mf_1_jsx_mf_2_runtime__loadShare__.js-SOU_VnTj.mjs";
11
11
  import { n as H, t as ie } from "./_virtual_mf___mfe_internal__addon_benchmark_page__loadShare___mf_0_tanstack_mf_1_react_mf_2_query__loadShare__.js-lv97RBhq.mjs";
12
12
  import { n as ae, t as oe } from "./_virtual_mf___mfe_internal__addon_benchmark_page__loadShare__react_mf_2_dom__loadShare__.js-DQaf3kYb.mjs";
13
13
  import { t as se } from "./_virtual_mf___mfe_internal__addon_benchmark_page__loadShare__react_mf_2_dom_mf_1_client__loadShare__.js-DUzuN6aS.mjs";
14
14
  import { t as U } from "./_virtual_mf___mfe_internal__addon_benchmark_page__loadShare___mf_0_trpc_mf_1_client__loadShare__.js-DtWmo0vJ.mjs";
15
- import { C as ce, D as le, E as ue, O as de, S as fe, T as pe, _ as W, a as G, b as me, c as he, d as ge, f as _e, g as K, h as ve, i as ye, l as be, m as xe, n as Se, o as Ce, p as we, s as Te, t as Ee, u as De, v as Oe, w as ke, y as q } from "./_virtual_mf___mfe_internal__addon_benchmark_page__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-B8fB0oqf.mjs";
15
+ import { C as ce, D as le, E as ue, O as de, S as fe, T as pe, _ as W, a as G, b as K, c as me, d as he, f as ge, g as q, h as _e, i as ve, l as ye, m as be, n as xe, o as Se, p as Ce, s as we, t as Te, u as Ee, v as De, w as Oe, y as ke } from "./_virtual_mf___mfe_internal__addon_benchmark_page__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-BcrWicXW.mjs";
16
16
  import "./_virtual_mf___mfe_internal__addon_benchmark_page__loadShare___mf_0_camstack_mf_1_sdk__loadShare__.js-DSTkBuYy.mjs";
17
17
  var Ae = D("activity", [["path", {
18
18
  d: "M22 12h-2.48a2 2 0 0 0-1.93 1.46l-2.35 8.36a.25.25 0 0 1-.48 0L9.24 2.18a.25.25 0 0 0-.48 0l-2.35 8.36A2 2 0 0 1 4.49 12H2",
@@ -2635,7 +2635,7 @@ J.accessories.setChildHidden.useMutation, J.accessories.getStatus.useQuery, J.ad
2635
2635
  var Nr = J.deviceManager.getRoleDisplayDefaults.useQuery;
2636
2636
  J.deviceManager.setRoleDisplayDefaults.useMutation, J.deviceManager.getWireableFields.useQuery, J.deviceManager.setRole.useMutation, J.deviceManager.applyInitialMeta.useMutation, J.deviceManager.setMetadata.useMutation, J.deviceManager.listLocations.useQuery, J.deviceManager.addLocation.useMutation, J.deviceManager.removeLocation.useMutation, J.deviceManager.setDisabled.useMutation, J.deviceManager.listPersistedByAddon.useQuery;
2637
2637
  var Pr = J.deviceManager.listAll.useQuery, Fr = J.deviceManager.getDevice.useQuery;
2638
- J.deviceManager.getChildren.useQuery, J.deviceManager.getLinkedDevices.useQuery, J.deviceManager.getLinkedDevicesBatch.useQuery, J.deviceManager.getStreamSources.useQuery, J.deviceManager.getConfigSchema.useQuery, J.deviceManager.getSettingsSchema.useQuery, J.deviceManager.updateConfig.useMutation, J.deviceManager.enable.useMutation, J.deviceManager.disable.useMutation, J.deviceManager.remove.useMutation, J.deviceManager.removeByIntegration.useMutation, J.deviceManager.getStreamProfileMap.useQuery, J.deviceManager.setStreamProfileMap.useMutation, J.deviceManager.probeStreams.useMutation, J.deviceManager.getBindings.useQuery, J.deviceManager.getBindingsBatch.useQuery, J.deviceManager.getAllBindings.useQuery, J.deviceManager.setWrapperActive.useMutation, J.deviceManager.listWrappersForCap.useQuery, J.deviceManager.listBindableCapsForDeviceType.useQuery, J.deviceManager.getDeviceSettingsAggregate.useQuery, J.deviceManager.getDeviceLiveInfoAggregate.useQuery, J.deviceManager.getDeviceAggregate.useQuery, J.deviceManager.runDeviceAction.useMutation, J.deviceManager.updateDeviceField.useMutation, J.deviceManager.updateDeviceFieldsBatch.useMutation, J.deviceManager.discoverDevices.useMutation, J.deviceManager.adoptDevice.useMutation, J.deviceManager.getCreationSchema.useQuery, J.deviceManager.createDevice.useMutation, J.deviceManager.testCreationField.useMutation, J.deviceManager.adoptionListCandidateFilters.useQuery, J.deviceManager.adoptionListCandidates.useQuery, J.deviceManager.adoptionRefresh.useMutation, J.deviceManager.adoptionAdopt.useMutation, J.deviceManager.adoptionRelease.useMutation, J.deviceManager.adoptionStartJob.useMutation, J.deviceManager.adoptionListJobs.useQuery, J.deviceManager.adoptionCancelJob.useMutation, J.deviceManager.adoptionResync.useMutation, J.deviceManager.discoveryProviders.useQuery, J.deviceManager.discoverAllProviders.useMutation, J.deviceManager.discoverProvider.useMutation, J.deviceManager.providerCreationType.useQuery, J.deviceManager.providerDiscoveryParamsSchema.useQuery, J.deviceManager.testField.useMutation, J.deviceManager.getDeviceStatusAggregate.useQuery, J.deviceManager.getDeviceStatusAggregateBatch.useQuery, J.deviceManager.getDeviceSettingsContribution.useQuery, J.deviceManager.getDeviceLiveContribution.useQuery, J.deviceManager.applyDeviceSettingsPatch.useMutation, J.deviceOps.getStreamSources.useQuery, J.deviceOps.getConfigEntries.useQuery, J.deviceOps.setConfig.useMutation, J.deviceOps.runAction.useMutation, J.deviceOps.removeDevice.useMutation, J.deviceOps.getSettingsSchema.useQuery, J.deviceOps.getRawState.useQuery, J.deviceProvider.start.useMutation, J.deviceProvider.stop.useMutation, J.deviceProvider.getStatus.useQuery, J.deviceProvider.getDevices.useQuery, J.deviceProvider.supportsDiscovery.useQuery, J.deviceProvider.discoverDevices.useMutation, J.deviceProvider.getDiscoveryParamsSchema.useQuery, J.deviceProvider.getManualCreationType.useQuery, J.deviceProvider.adoptDiscoveredDevice.useMutation, J.deviceProvider.supportsManualCreation.useQuery, J.deviceProvider.getChildCreationSchema.useQuery, J.deviceProvider.createDevice.useMutation, J.deviceProvider.testCreationField.useMutation, J.deviceState.getSnapshot.useQuery, J.deviceState.getCapSlice.useQuery, J.deviceState.getAllSnapshots.useQuery, J.deviceState.setCapSlice.useMutation, J.deviceStatus.getStatus.useQuery, J.doorbell.getStatus.useQuery, J.doorbell.getDeviceSettingsContribution.useQuery, J.doorbell.getDeviceLiveContribution.useQuery, J.doorbell.applyDeviceSettingsPatch.useMutation, J.enumSensor.getStatus.useQuery, J.eventEmitter.getStatus.useQuery, J.events.getEvents.useQuery, J.events.getEventThumbnail.useQuery, J.events.getEventClipUrl.useQuery, J.faceGallery.listIdentities.useQuery, J.faceGallery.createIdentity.useMutation, J.faceGallery.renameIdentity.useMutation, J.faceGallery.deleteIdentity.useMutation, J.faceGallery.listIdentitySamples.useQuery, J.faceGallery.removeSample.useMutation, J.faceGallery.listRecentFaces.useQuery, J.faceGallery.getFaceByTrack.useQuery, J.faceGallery.getFaceMedia.useQuery, J.faceGallery.assignFace.useMutation, J.faceGallery.unassignFace.useMutation, J.faceGallery.deleteFace.useMutation, J.faceGallery.assignFaces.useMutation, J.faceGallery.unassignFaces.useMutation, J.faceGallery.suggestFaceClusters.useQuery, J.fanControl.setPercentage.useMutation, J.fanControl.setPreset.useMutation, J.fanControl.setDirection.useMutation, J.fanControl.setOscillating.useMutation, J.fanControl.getStatus.useQuery, J.featureProbe.getStatus.useQuery, J.flood.getStatus.useQuery, J.gas.getStatus.useQuery, J.humidifier.setOn.useMutation, J.humidifier.setTargetHumidity.useMutation, J.humidifier.setMode.useMutation, J.humidifier.getStatus.useQuery, J.humiditySensor.getStatus.useQuery, J.image.getStatus.useQuery, J.imageSettings.getOptions.useQuery, J.imageSettings.setSettings.useMutation, J.imageSettings.getStatus.useQuery, J.integrations.list.useQuery, J.integrations.get.useQuery, J.integrations.getByAddonId.useQuery, J.integrations.create.useMutation, J.integrations.update.useMutation, J.integrations.delete.useMutation, J.integrations.getSettings.useQuery, J.integrations.setSettings.useMutation, J.integrations.getAvailableTypes.useQuery, J.integrations.testConnection.useMutation, J.intercom.startSession.useMutation, J.intercom.handleAnswer.useMutation, J.intercom.stopSession.useMutation, J.intercom.startTalkSession.useMutation, J.intercom.pushTalkAudio.useMutation, J.intercom.endTalkSession.useMutation, J.intercom.getStatus.useQuery, J.lawnMowerControl.startMowing.useMutation, J.lawnMowerControl.pause.useMutation, J.lawnMowerControl.dock.useMutation, J.lawnMowerControl.getStatus.useQuery, J.llm.generate.useMutation, J.llm.generateVision.useMutation, J.llm.cancel.useMutation, J.llm.listProfileKinds.useQuery, J.llm.listProfiles.useQuery, J.llm.upsertProfile.useMutation, J.llm.deleteProfile.useMutation, J.llm.testProfile.useMutation, J.llm.listModels.useQuery, J.llm.getDefaults.useQuery, J.llm.setDefault.useMutation, J.llm.getUsage.useQuery, J.llm.listModelCatalog.useQuery, J.llm.listRuntimeNodes.useQuery, J.llm.listNodeModels.useQuery, J.llm.resolveModelRef.useMutation, J.llm.installModel.useMutation, J.llm.deleteModel.useMutation, J.llm.getRuntimeStatus.useQuery, J.llm.startRuntime.useMutation, J.llm.stopRuntime.useMutation, J.localNetwork.list.useQuery, J.localNetwork.getPreferred.useQuery, J.localNetwork.getConnectionEndpoints.useQuery, J.localNetwork.getNotificationEndpoint.useQuery, J.localNetwork.setNotificationEndpoint.useMutation, J.localNetwork.getViewerEndpoints.useQuery, J.localNetwork.setViewerEndpoints.useMutation, J.localNetwork.getAllowedAddresses.useQuery, J.localNetwork.setAllowedAddresses.useMutation, J.localNetwork.resetAllowlistToBestMatch.useMutation, J.localNetwork.getTlsStatus.useQuery, J.localNetwork.regenerateCertificate.useMutation, J.localNetwork.uploadCertificate.useMutation, J.localNetwork.downloadCa.useQuery, J.localNetwork.revertToGeneratedCertificate.useMutation, J.lockControl.lock.useMutation, J.lockControl.unlock.useMutation, J.lockControl.open.useMutation, J.lockControl.getStatus.useQuery, J.mediaPlayer.play.useMutation, J.mediaPlayer.pause.useMutation, J.mediaPlayer.stop.useMutation, J.mediaPlayer.next.useMutation, J.mediaPlayer.previous.useMutation, J.mediaPlayer.seek.useMutation, J.mediaPlayer.setVolume.useMutation, J.mediaPlayer.setMute.useMutation, J.mediaPlayer.setShuffle.useMutation, J.mediaPlayer.setRepeat.useMutation, J.mediaPlayer.selectSource.useMutation, J.mediaPlayer.playMedia.useMutation, J.mediaPlayer.getStatus.useQuery, J.meshNetwork.getStatus.useQuery, J.meshNetwork.join.useMutation, J.meshNetwork.startLogin.useMutation, J.meshNetwork.leave.useMutation, J.meshNetwork.logout.useMutation, J.meshNetwork.listPeers.useQuery, J.meshNetwork.testConnection.useMutation, J.metricsProvider.collectSnapshot.useQuery, J.metricsProvider.getCached.useQuery, J.metricsProvider.getCurrent.useQuery, J.metricsProvider.getDiskSpace.useQuery, J.metricsProvider.getGpuInfo.useQuery, J.metricsProvider.getCpuTemperature.useQuery, J.metricsProvider.getProcessStats.useQuery, J.metricsProvider.listAddonInstances.useQuery, J.metricsProvider.getAddonStats.useQuery, J.metricsProvider.listNodeProcesses.useQuery, J.metricsProvider.killProcess.useMutation, J.metricsProvider.dumpHeapSnapshot.useMutation, J.motion.isDetected.useQuery, J.motion.getStatus.useQuery, J.motionDetection.analyze.useMutation, J.motionDetection.removeCamera.useMutation, J.motionDetection.reset.useMutation, J.motionDetection.getDeviceSettingsContribution.useQuery, J.motionDetection.getDeviceLiveContribution.useQuery, J.motionDetection.applyDeviceSettingsPatch.useMutation, J.motionTrigger.setMotionTrigger.useMutation, J.motionTrigger.getStatus.useQuery, J.motionZones.getOptions.useQuery, J.motionZones.setZone.useMutation, J.motionZones.getStatus.useQuery, J.mqttBroker.listBrokers.useQuery, J.mqttBroker.getBrokerConfig.useQuery, J.mqttBroker.addBroker.useMutation, J.mqttBroker.removeBroker.useMutation, J.mqttBroker.testConnection.useMutation, J.mqttBroker.startEmbeddedBroker.useMutation, J.mqttBroker.stopEmbeddedBroker.useMutation, J.mqttBroker.getStatus.useQuery, J.nativeObjectDetection.setEnabled.useMutation, J.nativeObjectDetection.getStatus.useQuery, J.networkAccess.start.useMutation, J.networkAccess.stop.useMutation, J.networkAccess.getEndpoint.useQuery, J.networkAccess.getStatus.useQuery, J.networkAccess.listEndpoints.useQuery, J.networkQuality.getDeviceStats.useQuery, J.networkQuality.getAllStats.useQuery, J.networkQuality.reportClientStats.useMutation, J.nodes.topology.useQuery, J.nodes.deployAddon.useMutation, J.nodes.undeployAddon.useMutation, J.nodes.restartAddon.useMutation, J.nodes.restartProcess.useMutation, J.nodes.restartNode.useMutation, J.nodes.shutdownNode.useMutation, J.nodes.renameNode.useMutation, J.nodes.clusterAddonStatus.useQuery, J.nodes.getCapUsageGraph.useQuery, J.nodes.getNodeAddons.useQuery, J.nodes.setProcessLogLevel.useMutation, J.nodes.executeQuery.useMutation, J.notificationOutput.listTargetKinds.useQuery, J.notificationOutput.listTargets.useQuery, J.notificationOutput.discoverTargets.useQuery, J.notificationOutput.send.useMutation, J.notificationOutput.testTarget.useMutation, J.notificationOutput.upsertTarget.useMutation, J.notificationOutput.deleteTarget.useMutation, J.notificationOutput.setTargetEnabled.useMutation, J.notificationRules.listRules.useQuery, J.notificationRules.getRule.useQuery, J.notificationRules.createRule.useMutation, J.notificationRules.updateRule.useMutation, J.notificationRules.deleteRule.useMutation, J.notificationRules.setRuleEnabled.useMutation, J.notificationRules.listDeviceMutes.useQuery, J.notificationRules.setDeviceMuted.useMutation, J.notificationRules.testRule.useMutation, J.notificationRules.getConditionCatalog.useQuery, J.notificationRules.getHistory.useQuery, J.notificationRules.resolveArtifactUrl.useQuery, J.notificationRules.listSnoozes.useQuery, J.notificationRules.createSnooze.useMutation, J.notificationRules.cancelSnooze.useMutation, J.notificationRules.getAlarmConfig.useQuery, J.notificationRules.setAlarmConfig.useMutation, J.notifier.send.useMutation, J.notifier.cancel.useMutation, J.notifier.getStatus.useQuery, J.numericSensor.getStatus.useQuery, J.osd.setOverlay.useMutation, J.osd.getStatus.useQuery, J.osdManager.getDeviceOsd.useQuery, J.osdManager.getSourceCatalog.useQuery, J.osdManager.getConditionSupport.useQuery, J.osdManager.setSlotBinding.useMutation, J.osdManager.clearSlotBinding.useMutation, J.osdManager.copyDeviceConfiguration.useMutation, J.osdManager.previewSlot.useMutation, J.osdManager.renderDevice.useMutation, J.petFeeder.feed.useMutation, J.petFeeder.cancelFeed.useMutation, J.petFeeder.resetDesiccant.useMutation, J.petFeeder.markFoodReplenished.useMutation, J.petFeeder.callPet.useMutation, J.petFeeder.playSound.useMutation, J.petFeeder.setChildLock.useMutation, J.petFeeder.setIndicatorLight.useMutation, J.petFeeder.setFeedSound.useMutation, J.petFeeder.setVolume.useMutation, J.petFeeder.getStatus.useQuery, J.pipelineAnalytics.getActiveTracks.useQuery, J.pipelineAnalytics.getTrack.useQuery, J.pipelineAnalytics.listTracks.useQuery, J.pipelineAnalytics.listRecentTracks.useQuery, J.pipelineAnalytics.listGroups.useQuery, J.pipelineAnalytics.getGroup.useQuery, J.pipelineAnalytics.clearTracks.useMutation;
2638
+ J.deviceManager.getChildren.useQuery, J.deviceManager.getChildrenBatch.useQuery, J.deviceManager.getLinkedDevices.useQuery, J.deviceManager.getLinkedDevicesBatch.useQuery, J.deviceManager.getStreamSources.useQuery, J.deviceManager.getConfigSchema.useQuery, J.deviceManager.getSettingsSchema.useQuery, J.deviceManager.updateConfig.useMutation, J.deviceManager.enable.useMutation, J.deviceManager.disable.useMutation, J.deviceManager.remove.useMutation, J.deviceManager.removeByIntegration.useMutation, J.deviceManager.getStreamProfileMap.useQuery, J.deviceManager.setStreamProfileMap.useMutation, J.deviceManager.probeStreams.useMutation, J.deviceManager.getBindings.useQuery, J.deviceManager.getBindingsBatch.useQuery, J.deviceManager.getAllBindings.useQuery, J.deviceManager.setWrapperActive.useMutation, J.deviceManager.listWrappersForCap.useQuery, J.deviceManager.listBindableCapsForDeviceType.useQuery, J.deviceManager.getDeviceSettingsAggregate.useQuery, J.deviceManager.getDeviceLiveInfoAggregate.useQuery, J.deviceManager.getDeviceAggregate.useQuery, J.deviceManager.runDeviceAction.useMutation, J.deviceManager.updateDeviceField.useMutation, J.deviceManager.updateDeviceFieldsBatch.useMutation, J.deviceManager.discoverDevices.useMutation, J.deviceManager.adoptDevice.useMutation, J.deviceManager.getCreationSchema.useQuery, J.deviceManager.createDevice.useMutation, J.deviceManager.testCreationField.useMutation, J.deviceManager.adoptionListCandidateFilters.useQuery, J.deviceManager.adoptionListCandidates.useQuery, J.deviceManager.adoptionRefresh.useMutation, J.deviceManager.adoptionAdopt.useMutation, J.deviceManager.adoptionRelease.useMutation, J.deviceManager.adoptionStartJob.useMutation, J.deviceManager.adoptionListJobs.useQuery, J.deviceManager.adoptionCancelJob.useMutation, J.deviceManager.adoptionResync.useMutation, J.deviceManager.discoveryProviders.useQuery, J.deviceManager.discoverAllProviders.useMutation, J.deviceManager.discoverProvider.useMutation, J.deviceManager.providerCreationType.useQuery, J.deviceManager.providerDiscoveryParamsSchema.useQuery, J.deviceManager.testField.useMutation, J.deviceManager.getDeviceStatusAggregate.useQuery, J.deviceManager.getDeviceStatusAggregateBatch.useQuery, J.deviceManager.getDeviceSettingsContribution.useQuery, J.deviceManager.getDeviceLiveContribution.useQuery, J.deviceManager.applyDeviceSettingsPatch.useMutation, J.deviceOps.getStreamSources.useQuery, J.deviceOps.getConfigEntries.useQuery, J.deviceOps.setConfig.useMutation, J.deviceOps.runAction.useMutation, J.deviceOps.removeDevice.useMutation, J.deviceOps.getSettingsSchema.useQuery, J.deviceOps.getRawState.useQuery, J.deviceProvider.start.useMutation, J.deviceProvider.stop.useMutation, J.deviceProvider.getStatus.useQuery, J.deviceProvider.getDevices.useQuery, J.deviceProvider.supportsDiscovery.useQuery, J.deviceProvider.discoverDevices.useMutation, J.deviceProvider.getDiscoveryParamsSchema.useQuery, J.deviceProvider.getManualCreationType.useQuery, J.deviceProvider.adoptDiscoveredDevice.useMutation, J.deviceProvider.supportsManualCreation.useQuery, J.deviceProvider.getChildCreationSchema.useQuery, J.deviceProvider.createDevice.useMutation, J.deviceProvider.testCreationField.useMutation, J.deviceState.getSnapshot.useQuery, J.deviceState.getCapSlice.useQuery, J.deviceState.getAllSnapshots.useQuery, J.deviceState.setCapSlice.useMutation, J.deviceStatus.getStatus.useQuery, J.doorbell.getStatus.useQuery, J.doorbell.getDeviceSettingsContribution.useQuery, J.doorbell.getDeviceLiveContribution.useQuery, J.doorbell.applyDeviceSettingsPatch.useMutation, J.enumSensor.getStatus.useQuery, J.eventEmitter.getStatus.useQuery, J.events.getEvents.useQuery, J.events.getEventThumbnail.useQuery, J.events.getEventClipUrl.useQuery, J.faceGallery.listIdentities.useQuery, J.faceGallery.createIdentity.useMutation, J.faceGallery.renameIdentity.useMutation, J.faceGallery.deleteIdentity.useMutation, J.faceGallery.listIdentitySamples.useQuery, J.faceGallery.removeSample.useMutation, J.faceGallery.listRecentFaces.useQuery, J.faceGallery.getFaceByTrack.useQuery, J.faceGallery.getFaceMedia.useQuery, J.faceGallery.assignFace.useMutation, J.faceGallery.unassignFace.useMutation, J.faceGallery.deleteFace.useMutation, J.faceGallery.assignFaces.useMutation, J.faceGallery.unassignFaces.useMutation, J.faceGallery.suggestFaceClusters.useQuery, J.fanControl.setPercentage.useMutation, J.fanControl.setPreset.useMutation, J.fanControl.setDirection.useMutation, J.fanControl.setOscillating.useMutation, J.fanControl.getStatus.useQuery, J.featureProbe.getStatus.useQuery, J.flood.getStatus.useQuery, J.gas.getStatus.useQuery, J.humidifier.setOn.useMutation, J.humidifier.setTargetHumidity.useMutation, J.humidifier.setMode.useMutation, J.humidifier.getStatus.useQuery, J.humiditySensor.getStatus.useQuery, J.image.getStatus.useQuery, J.imageSettings.getOptions.useQuery, J.imageSettings.setSettings.useMutation, J.imageSettings.getStatus.useQuery, J.integrations.list.useQuery, J.integrations.get.useQuery, J.integrations.getByAddonId.useQuery, J.integrations.create.useMutation, J.integrations.update.useMutation, J.integrations.delete.useMutation, J.integrations.getSettings.useQuery, J.integrations.setSettings.useMutation, J.integrations.getAvailableTypes.useQuery, J.integrations.testConnection.useMutation, J.intercom.startSession.useMutation, J.intercom.handleAnswer.useMutation, J.intercom.stopSession.useMutation, J.intercom.startTalkSession.useMutation, J.intercom.pushTalkAudio.useMutation, J.intercom.endTalkSession.useMutation, J.intercom.getStatus.useQuery, J.lawnMowerControl.startMowing.useMutation, J.lawnMowerControl.pause.useMutation, J.lawnMowerControl.dock.useMutation, J.lawnMowerControl.getStatus.useQuery, J.llm.generate.useMutation, J.llm.generateVision.useMutation, J.llm.cancel.useMutation, J.llm.listProfileKinds.useQuery, J.llm.listProfiles.useQuery, J.llm.upsertProfile.useMutation, J.llm.deleteProfile.useMutation, J.llm.testProfile.useMutation, J.llm.listModels.useQuery, J.llm.getDefaults.useQuery, J.llm.setDefault.useMutation, J.llm.getUsage.useQuery, J.llm.listModelCatalog.useQuery, J.llm.listRuntimeNodes.useQuery, J.llm.listNodeModels.useQuery, J.llm.resolveModelRef.useMutation, J.llm.installModel.useMutation, J.llm.deleteModel.useMutation, J.llm.getRuntimeStatus.useQuery, J.llm.startRuntime.useMutation, J.llm.stopRuntime.useMutation, J.localNetwork.list.useQuery, J.localNetwork.getPreferred.useQuery, J.localNetwork.getConnectionEndpoints.useQuery, J.localNetwork.getNotificationEndpoint.useQuery, J.localNetwork.setNotificationEndpoint.useMutation, J.localNetwork.getViewerEndpoints.useQuery, J.localNetwork.setViewerEndpoints.useMutation, J.localNetwork.getAllowedAddresses.useQuery, J.localNetwork.setAllowedAddresses.useMutation, J.localNetwork.resetAllowlistToBestMatch.useMutation, J.localNetwork.getTlsStatus.useQuery, J.localNetwork.regenerateCertificate.useMutation, J.localNetwork.uploadCertificate.useMutation, J.localNetwork.downloadCa.useQuery, J.localNetwork.revertToGeneratedCertificate.useMutation, J.lockControl.lock.useMutation, J.lockControl.unlock.useMutation, J.lockControl.open.useMutation, J.lockControl.getStatus.useQuery, J.mediaPlayer.play.useMutation, J.mediaPlayer.pause.useMutation, J.mediaPlayer.stop.useMutation, J.mediaPlayer.next.useMutation, J.mediaPlayer.previous.useMutation, J.mediaPlayer.seek.useMutation, J.mediaPlayer.setVolume.useMutation, J.mediaPlayer.setMute.useMutation, J.mediaPlayer.setShuffle.useMutation, J.mediaPlayer.setRepeat.useMutation, J.mediaPlayer.selectSource.useMutation, J.mediaPlayer.playMedia.useMutation, J.mediaPlayer.getStatus.useQuery, J.meshNetwork.getStatus.useQuery, J.meshNetwork.join.useMutation, J.meshNetwork.startLogin.useMutation, J.meshNetwork.leave.useMutation, J.meshNetwork.logout.useMutation, J.meshNetwork.listPeers.useQuery, J.meshNetwork.testConnection.useMutation, J.metricsProvider.collectSnapshot.useQuery, J.metricsProvider.getCached.useQuery, J.metricsProvider.getCurrent.useQuery, J.metricsProvider.getDiskSpace.useQuery, J.metricsProvider.getGpuInfo.useQuery, J.metricsProvider.getCpuTemperature.useQuery, J.metricsProvider.getProcessStats.useQuery, J.metricsProvider.listAddonInstances.useQuery, J.metricsProvider.getAddonStats.useQuery, J.metricsProvider.listNodeProcesses.useQuery, J.metricsProvider.killProcess.useMutation, J.metricsProvider.dumpHeapSnapshot.useMutation, J.motion.isDetected.useQuery, J.motion.getStatus.useQuery, J.motionDetection.analyze.useMutation, J.motionDetection.removeCamera.useMutation, J.motionDetection.reset.useMutation, J.motionDetection.getDeviceSettingsContribution.useQuery, J.motionDetection.getDeviceLiveContribution.useQuery, J.motionDetection.applyDeviceSettingsPatch.useMutation, J.motionTrigger.setMotionTrigger.useMutation, J.motionTrigger.getStatus.useQuery, J.motionZones.getOptions.useQuery, J.motionZones.setZone.useMutation, J.motionZones.getStatus.useQuery, J.mqttBroker.listBrokers.useQuery, J.mqttBroker.getBrokerConfig.useQuery, J.mqttBroker.addBroker.useMutation, J.mqttBroker.removeBroker.useMutation, J.mqttBroker.testConnection.useMutation, J.mqttBroker.startEmbeddedBroker.useMutation, J.mqttBroker.stopEmbeddedBroker.useMutation, J.mqttBroker.getStatus.useQuery, J.nativeObjectDetection.setEnabled.useMutation, J.nativeObjectDetection.getStatus.useQuery, J.networkAccess.start.useMutation, J.networkAccess.stop.useMutation, J.networkAccess.getEndpoint.useQuery, J.networkAccess.getStatus.useQuery, J.networkAccess.listEndpoints.useQuery, J.networkQuality.getDeviceStats.useQuery, J.networkQuality.getAllStats.useQuery, J.networkQuality.reportClientStats.useMutation, J.nodes.topology.useQuery, J.nodes.deployAddon.useMutation, J.nodes.undeployAddon.useMutation, J.nodes.restartAddon.useMutation, J.nodes.restartProcess.useMutation, J.nodes.restartNode.useMutation, J.nodes.shutdownNode.useMutation, J.nodes.renameNode.useMutation, J.nodes.clusterAddonStatus.useQuery, J.nodes.getCapUsageGraph.useQuery, J.nodes.getNodeAddons.useQuery, J.nodes.setProcessLogLevel.useMutation, J.nodes.executeQuery.useMutation, J.notificationOutput.listTargetKinds.useQuery, J.notificationOutput.listTargets.useQuery, J.notificationOutput.discoverTargets.useQuery, J.notificationOutput.send.useMutation, J.notificationOutput.testTarget.useMutation, J.notificationOutput.upsertTarget.useMutation, J.notificationOutput.deleteTarget.useMutation, J.notificationOutput.setTargetEnabled.useMutation, J.notificationRules.listRules.useQuery, J.notificationRules.getRule.useQuery, J.notificationRules.createRule.useMutation, J.notificationRules.updateRule.useMutation, J.notificationRules.deleteRule.useMutation, J.notificationRules.setRuleEnabled.useMutation, J.notificationRules.listDeviceMutes.useQuery, J.notificationRules.setDeviceMuted.useMutation, J.notificationRules.testRule.useMutation, J.notificationRules.getConditionCatalog.useQuery, J.notificationRules.getHistory.useQuery, J.notificationRules.resolveArtifactUrl.useQuery, J.notificationRules.listSnoozes.useQuery, J.notificationRules.createSnooze.useMutation, J.notificationRules.cancelSnooze.useMutation, J.notificationRules.getAlarmConfig.useQuery, J.notificationRules.setAlarmConfig.useMutation, J.notifier.send.useMutation, J.notifier.cancel.useMutation, J.notifier.getStatus.useQuery, J.numericSensor.getStatus.useQuery, J.osd.setOverlay.useMutation, J.osd.getStatus.useQuery, J.osdManager.getDeviceOsd.useQuery, J.osdManager.getSourceCatalog.useQuery, J.osdManager.getConditionSupport.useQuery, J.osdManager.setSlotBinding.useMutation, J.osdManager.clearSlotBinding.useMutation, J.osdManager.copyDeviceConfiguration.useMutation, J.osdManager.previewSlot.useMutation, J.osdManager.renderDevice.useMutation, J.petFeeder.feed.useMutation, J.petFeeder.cancelFeed.useMutation, J.petFeeder.resetDesiccant.useMutation, J.petFeeder.markFoodReplenished.useMutation, J.petFeeder.callPet.useMutation, J.petFeeder.playSound.useMutation, J.petFeeder.setChildLock.useMutation, J.petFeeder.setIndicatorLight.useMutation, J.petFeeder.setFeedSound.useMutation, J.petFeeder.setVolume.useMutation, J.petFeeder.getStatus.useQuery, J.pipelineAnalytics.getActiveTracks.useQuery, J.pipelineAnalytics.getTrack.useQuery, J.pipelineAnalytics.listTracks.useQuery, J.pipelineAnalytics.listRecentTracks.useQuery, J.pipelineAnalytics.listGroups.useQuery, J.pipelineAnalytics.getGroup.useQuery, J.pipelineAnalytics.clearTracks.useMutation;
2639
2639
  var Ir = J.pipelineAnalytics.getMotionEvents.useQuery, Lr = J.pipelineAnalytics.getObjectEvents.useQuery, Rr = J.pipelineAnalytics.getAudioEvents.useQuery;
2640
2640
  J.pipelineAnalytics.listEventKinds.useQuery, J.pipelineAnalytics.listEventKindsBatch.useQuery, J.pipelineAnalytics.getSensorEvents.useQuery, J.pipelineAnalytics.getKeyEvents.useQuery;
2641
2641
  var zr = J.pipelineAnalytics.getEventDensity.useQuery;
@@ -2651,7 +2651,7 @@ J.recording.locateSegment.useQuery, J.recording.readSegmentBytes.useQuery, J.rec
2651
2651
  var Gr = J.recording.setDeviceConfig.useMutation, Kr = J.recording.rescanStorage.useMutation;
2652
2652
  J.recording.pruneFootage.useMutation, J.recording.deleteFootprint.useMutation, J.recording.listOpsLog.useQuery, J.recording.renderGif.useMutation, J.recording.renderClip.useMutation, J.recording.pauseForStorageMigration.useMutation, J.recording.resumeForStorageMigration.useMutation, J.recording.refreshStorageLocationsForMigration.useMutation, J.recording.startStorageMigrationMove.useMutation, J.recording.getStorageMigrationMoveStatus.useQuery, J.recording.cancelStorageMigrationMove.useMutation, J.recording.relocateFootage.useMutation, J.recording.listRelocateJobs.useQuery, J.recording.cancelRelocateJob.useMutation, J.recording.planStorageRebalance.useQuery, J.recording.startStorageRebalance.useMutation;
2653
2653
  var qr = J.recording.getStatus.useQuery;
2654
- J.recording.getDeviceSettingsContribution.useQuery, J.recording.getDeviceLiveContribution.useQuery, J.recording.applyDeviceSettingsPatch.useMutation, J.recordingExport.createExport.useMutation, J.recordingExport.listExports.useQuery, J.recordingExport.getExport.useQuery, J.recordingExport.cancelExport.useMutation, J.recordingExport.deleteExport.useMutation, J.recordingExport.getDownloadUrl.useQuery, J.recordingExport.readExportBytes.useQuery, J.sceneMonitor.listScenes.useQuery, J.sceneMonitor.createScene.useMutation, J.sceneMonitor.updateScene.useMutation, J.sceneMonitor.deleteScene.useMutation, J.sceneMonitor.captureReference.useMutation, J.sceneMonitor.deleteReference.useMutation, J.sceneMonitor.recheckNow.useMutation, J.sceneMonitor.resetScene.useMutation, J.sceneMonitor.getStatus.useQuery, J.scriptRunner.run.useMutation, J.scriptRunner.stop.useMutation, J.scriptRunner.getStatus.useQuery, J.serverManagement.getServerPackageStatus.useQuery, J.serverManagement.checkServerUpdate.useMutation, J.serverManagement.applyServerUpdate.useMutation, J.serverManagement.rollbackServerUpdate.useMutation, J.serverManagement.restartServer.useMutation, J.settingsStore.get.useQuery, J.settingsStore.set.useMutation, J.settingsStore.query.useQuery, J.settingsStore.insert.useMutation, J.settingsStore.update.useMutation, J.settingsStore.delete.useMutation, J.settingsStore.deleteWhere.useMutation, J.settingsStore.updateWhere.useMutation, J.settingsStore.count.useQuery, J.settingsStore.histogram.useQuery, J.settingsStore.isEmpty.useQuery, J.settingsStore.declareCollection.useMutation, J.smoke.getStatus.useQuery, J.snapshot.getSnapshot.useQuery, J.snapshot.invalidateCache.useMutation, J.snapshot.getSnapshotOverview.useQuery, J.snapshot.getDebugState.useQuery, J.snapshot.getSnapshotLinks.useQuery, J.snapshot.getStatus.useQuery, J.snapshot.getDeviceSettingsContribution.useQuery, J.snapshot.getDeviceLiveContribution.useQuery, J.snapshot.applyDeviceSettingsPatch.useMutation, J.storage.resolve.useQuery, J.storage.write.useMutation, J.storage.read.useQuery, J.storage.exists.useQuery, J.storage.list.useQuery, J.storage.delete.useMutation, J.storage.getAvailableSpace.useQuery, J.storage.beginUpload.useMutation, J.storage.writeChunk.useMutation, J.storage.finalizeUpload.useMutation, J.storage.abortUpload.useMutation, J.storage.beginDownload.useMutation, J.storage.readChunk.useQuery, J.storage.endDownload.useMutation, J.storage.listLocations.useQuery, J.storage.getDefaultLocation.useQuery, J.storage.listLocationDeclarations.useQuery, J.storage.upsertLocation.useMutation, J.storage.deleteLocation.useMutation, J.storage.testLocation.useQuery, J.storage.listProviders.useQuery, J.storage.testConfig.useQuery, J.storageMigration.plan.useQuery, J.storageMigration.start.useMutation, J.storageMigration.status.useQuery, J.storageMigration.cancel.useMutation, J.streamBroker.publishCameraStream.useMutation, J.streamBroker.retractCameraStream.useMutation, J.streamBroker.assignProfile.useMutation, J.streamBroker.unassignProfile.useMutation, J.streamBroker.renderPreBufferClip.useMutation, J.streamBroker.produceEventMedia.useMutation, J.streamBroker.fetchEventMedia.useMutation, J.streamBroker.listAllCameraStreams.useQuery;
2654
+ J.recording.getDeviceSettingsContribution.useQuery, J.recording.getDeviceLiveContribution.useQuery, J.recording.applyDeviceSettingsPatch.useMutation, J.recordingExport.createExport.useMutation, J.recordingExport.listExports.useQuery, J.recordingExport.getExport.useQuery, J.recordingExport.cancelExport.useMutation, J.recordingExport.deleteExport.useMutation, J.recordingExport.getDownloadUrl.useQuery, J.recordingExport.readExportBytes.useQuery, J.sceneMonitor.listScenes.useQuery, J.sceneMonitor.createScene.useMutation, J.sceneMonitor.updateScene.useMutation, J.sceneMonitor.deleteScene.useMutation, J.sceneMonitor.captureReference.useMutation, J.sceneMonitor.deleteReference.useMutation, J.sceneMonitor.recheckNow.useMutation, J.sceneMonitor.resetScene.useMutation, J.sceneMonitor.getStatus.useQuery, J.scriptRunner.run.useMutation, J.scriptRunner.stop.useMutation, J.scriptRunner.getStatus.useQuery, J.serverManagement.getServerPackageStatus.useQuery, J.serverManagement.checkServerUpdate.useMutation, J.serverManagement.applyServerUpdate.useMutation, J.serverManagement.rollbackServerUpdate.useMutation, J.serverManagement.restartServer.useMutation, J.settingsStore.get.useQuery, J.settingsStore.set.useMutation, J.settingsStore.query.useQuery, J.settingsStore.insert.useMutation, J.settingsStore.update.useMutation, J.settingsStore.delete.useMutation, J.settingsStore.deleteWhere.useMutation, J.settingsStore.updateWhere.useMutation, J.settingsStore.count.useQuery, J.settingsStore.aggregate.useQuery, J.settingsStore.histogram.useQuery, J.settingsStore.isEmpty.useQuery, J.settingsStore.declareCollection.useMutation, J.smoke.getStatus.useQuery, J.snapshot.getSnapshot.useQuery, J.snapshot.invalidateCache.useMutation, J.snapshot.getSnapshotOverview.useQuery, J.snapshot.getDebugState.useQuery, J.snapshot.getSnapshotLinks.useQuery, J.snapshot.getStatus.useQuery, J.snapshot.getDeviceSettingsContribution.useQuery, J.snapshot.getDeviceLiveContribution.useQuery, J.snapshot.applyDeviceSettingsPatch.useMutation, J.storage.resolve.useQuery, J.storage.write.useMutation, J.storage.read.useQuery, J.storage.exists.useQuery, J.storage.list.useQuery, J.storage.delete.useMutation, J.storage.getAvailableSpace.useQuery, J.storage.beginUpload.useMutation, J.storage.writeChunk.useMutation, J.storage.finalizeUpload.useMutation, J.storage.abortUpload.useMutation, J.storage.beginDownload.useMutation, J.storage.readChunk.useQuery, J.storage.endDownload.useMutation, J.storage.listLocations.useQuery, J.storage.getDefaultLocation.useQuery, J.storage.listLocationDeclarations.useQuery, J.storage.upsertLocation.useMutation, J.storage.deleteLocation.useMutation, J.storage.testLocation.useQuery, J.storage.listProviders.useQuery, J.storage.testConfig.useQuery, J.storageMigration.plan.useQuery, J.storageMigration.start.useMutation, J.storageMigration.status.useQuery, J.storageMigration.cancel.useMutation, J.streamBroker.publishCameraStream.useMutation, J.streamBroker.retractCameraStream.useMutation, J.streamBroker.assignProfile.useMutation, J.streamBroker.unassignProfile.useMutation, J.streamBroker.renderPreBufferClip.useMutation, J.streamBroker.produceEventMedia.useMutation, J.streamBroker.fetchEventMedia.useMutation, J.streamBroker.listAllCameraStreams.useQuery;
2655
2655
  var Jr = J.streamBroker.listAllProfileSlots.useQuery;
2656
2656
  J.streamBroker.getBrokerStats.useQuery, J.streamBroker.probeStream.useMutation, J.streamBroker.listClients.useQuery, J.streamBroker.killClient.useMutation, J.streamBroker.restartProfile.useMutation, J.streamBroker.getStreamUrl.useQuery, J.streamBroker.getStreamWithCodec.useMutation, J.streamBroker.releaseStreamWithCodec.useMutation, J.streamBroker.acquireEgressTranscode.useMutation, J.streamBroker.releaseEgressTranscode.useMutation, J.streamBroker.subscribeAudioChunks.useMutation, J.streamBroker.pullAudioChunks.useQuery, J.streamBroker.unsubscribeAudioChunks.useMutation, J.streamBroker.subscribeFrames.useMutation, J.streamBroker.pullFrameHandles.useQuery, J.streamBroker.unsubscribeFrames.useMutation, J.streamBroker.setPreBufferDuration.useMutation, J.streamBroker.getPreBufferInfo.useQuery, J.streamBroker.getRtspPort.useQuery, J.streamBroker.getAllRtspEntries.useQuery, J.streamBroker.getRtspEntry.useQuery, J.streamBroker.regenerateRtspToken.useMutation, J.streamBroker.setRtspEnabled.useMutation, J.streamBroker.isRtspEnabled.useQuery, J.streamBroker.getDeviceAudioMute.useQuery, J.streamBroker.setDeviceAudioMute.useMutation, J.streamBroker.getDeviceSettingsContribution.useQuery, J.streamBroker.getDeviceLiveContribution.useQuery, J.streamBroker.applyDeviceSettingsPatch.useMutation, J.streamCatalog.getCatalog.useQuery, J.streamParams.getOptions.useQuery, J.streamParams.setProfile.useMutation, J.streamParams.getConfigSchema.useQuery, J.streamParams.getStatus.useQuery, J.switch.setState.useMutation, J.switch.getStatus.useQuery, J.system.info.useQuery, J.system.health.useQuery, J.system.featureFlags.useQuery, J.system.networkAddresses.useQuery, J.system.getRetentionConfig.useQuery, J.system.setRetentionConfig.useMutation, J.system.forceRetentionCleanup.useMutation, J.system.getSiteLocation.useQuery, J.system.setSiteLocation.useMutation, J.system.detectSiteLocation.useMutation, J.system.getRequestCensus.useQuery, J.system.getLoggingSettings.useQuery, J.system.setLoggingSettings.useMutation, J.tamper.getStatus.useQuery, J.temperatureSensor.getStatus.useQuery, J.terminalSession.listProfiles.useQuery, J.terminalSession.listInstances.useQuery, J.terminalSession.createInstance.useMutation, J.terminalSession.updateInstance.useMutation, J.terminalSession.deleteInstance.useMutation, J.terminalSession.setInstanceEnabled.useMutation, J.terminalSession.listLegacyCameras.useQuery, J.terminalSession.adoptLegacyMonitor.useMutation, J.terminalSession.listSessions.useQuery, J.terminalSession.openSession.useMutation, J.terminalSession.resize.useMutation, J.terminalSession.pullOutput.useMutation, J.terminalSession.writeInput.useMutation, J.terminalSession.close.useMutation, J.toast.onToast.useSubscription, J.turnProvider.getTurnServers.useQuery, J.update.installUpdate.useMutation, J.update.getStatus.useQuery, J.userManagement.listUsers.useQuery, J.userManagement.createUser.useMutation, J.userManagement.updateUser.useMutation, J.userManagement.deleteUser.useMutation, J.userManagement.resetPassword.useMutation, J.userManagement.setUserScopes.useMutation, J.userManagement.validateCredentials.useMutation, J.userManagement.listApiKeys.useQuery, J.userManagement.createApiKey.useMutation, J.userManagement.revokeApiKey.useMutation, J.userManagement.validateApiKey.useMutation, J.userManagement.createScopedToken.useMutation, J.userManagement.revokeScopedToken.useMutation, J.userManagement.validateScopedToken.useQuery, J.userManagement.listScopedTokens.useQuery, J.userManagement.setupTotp.useMutation, J.userManagement.confirmTotp.useMutation, J.userManagement.disableTotp.useMutation, J.userManagement.getTotpStatus.useQuery, J.userManagement.verifyTotp.useMutation, J.userManagement.oauthIssueCode.useMutation, J.userManagement.oauthExchangeCode.useMutation, J.userManagement.oauthRefresh.useMutation, J.userManagement.oauthVerifyAccessToken.useQuery, J.userManagement.listOauthSessions.useQuery, J.userManagement.revokeOauthSession.useMutation, J.vacuumControl.start.useMutation, J.vacuumControl.pause.useMutation, J.vacuumControl.stop.useMutation, J.vacuumControl.returnToBase.useMutation, J.vacuumControl.locate.useMutation, J.vacuumControl.setFanSpeed.useMutation, J.vacuumControl.getStatus.useQuery, J.valve.open.useMutation, J.valve.close.useMutation, J.valve.stop.useMutation, J.valve.setPosition.useMutation, J.valve.getStatus.useQuery, J.vibration.getStatus.useQuery, J.videoclips.listClips.useQuery, J.videoclips.getClipPlayback.useQuery, J.waterHeater.setTargetTemp.useMutation, J.waterHeater.setOperationMode.useMutation, J.waterHeater.setAway.useMutation, J.waterHeater.getStatus.useQuery, J.weather.getStatus.useQuery, J.webrtcSession.listStreams.useQuery, J.webrtcSession.createSession.useMutation, J.webrtcSession.handleOffer.useMutation, J.webrtcSession.handleAnswer.useMutation, J.webrtcSession.addIceCandidate.useMutation, J.webrtcSession.getIceCandidates.useQuery, J.webrtcSession.closeSession.useMutation, J.webrtcSession.hasAdaptiveBitrate.useQuery, J.webrtcSession.getSessionState.useQuery, J.zoneAnalytics.getCurrentSnapshot.useQuery, J.zoneAnalytics.getZoneHistory.useQuery, J.zoneAnalytics.getCameraHistory.useQuery, J.zoneAnalytics.getUnzonedHistory.useQuery, J.zoneRules.listRules.useQuery, J.zoneRules.setRules.useMutation, J.zones.listZones.useQuery, J.zones.addZone.useMutation, J.zones.removeZone.useMutation, J.zones.updateZone.useMutation;
2657
2657
  //#endregion
@@ -5846,7 +5846,7 @@ function Vo({ band: e, onChange: t, onRemove: n }) {
5846
5846
  type: "number",
5847
5847
  min: 0,
5848
5848
  value: e.preBufferSec ?? "",
5849
- placeholder: String(_e.preBufferSec),
5849
+ placeholder: String(ge.preBufferSec),
5850
5850
  onChange: (e) => t({ preBufferSec: Bo(e.target.value) }),
5851
5851
  className: "w-16 rounded-md border border-border bg-background px-1 py-1 text-xs"
5852
5852
  }),
@@ -5860,7 +5860,7 @@ function Vo({ band: e, onChange: t, onRemove: n }) {
5860
5860
  type: "number",
5861
5861
  min: 0,
5862
5862
  value: e.postBufferSec ?? "",
5863
- placeholder: String(_e.postBufferSec),
5863
+ placeholder: String(ge.postBufferSec),
5864
5864
  onChange: (e) => t({ postBufferSec: Bo(e.target.value) }),
5865
5865
  className: "w-16 rounded-md border border-border bg-background px-1 py-1 text-xs"
5866
5866
  }),
@@ -5901,10 +5901,10 @@ function Uo({ initial: e, availableProfiles: t, saving: n, onSave: r }) {
5901
5901
  ...c,
5902
5902
  ...e
5903
5903
  }
5904
- }), d = (e) => e === "" ? void 0 : Number(e), f = ye({
5904
+ }), d = (e) => e === "" ? void 0 : Number(e), f = ve({
5905
5905
  enabled: i.length > 0,
5906
5906
  bands: i
5907
- }), p = he(t, o.profiles), m = (e) => {
5907
+ }), p = me(t, o.profiles), m = (e) => {
5908
5908
  let t = p.includes(e) ? p.filter((t) => t !== e) : [...p, e];
5909
5909
  s({
5910
5910
  ...o,
@@ -5917,7 +5917,7 @@ function Uo({ initial: e, availableProfiles: t, saving: n, onSave: r }) {
5917
5917
  }
5918
5918
  e !== f && a([No(e)]);
5919
5919
  }, g = () => {
5920
- let e = t.length > 0 ? he(t, o.profiles) : o.profiles ? [...o.profiles] : void 0;
5920
+ let e = t.length > 0 ? me(t, o.profiles) : o.profiles ? [...o.profiles] : void 0;
5921
5921
  r({
5922
5922
  enabled: i.length > 0,
5923
5923
  bands: i,
@@ -5925,7 +5925,7 @@ function Uo({ initial: e, availableProfiles: t, saving: n, onSave: r }) {
5925
5925
  segmentSeconds: o.segmentSeconds,
5926
5926
  retention: o.retention
5927
5927
  });
5928
- }, _ = Ce.filter((e) => t.includes(e));
5928
+ }, _ = Se.filter((e) => t.includes(e));
5929
5929
  return /* @__PURE__ */ B("div", {
5930
5930
  className: "space-y-4",
5931
5931
  children: [
@@ -6832,42 +6832,42 @@ function Ls({ deviceId: e }) {
6832
6832
  de.data,
6833
6833
  H.fromMs,
6834
6834
  le
6835
- ]), G = r === null ? void 0 : W.find((e) => e.index === r), me = G !== void 0, he = G?.startMs ?? 0, ge = G ? Math.min(G.endMs, H.toMs) : 0, _e = Lr({
6835
+ ]), G = r === null ? void 0 : W.find((e) => e.index === r), K = G !== void 0, me = G?.startMs ?? 0, he = G ? Math.min(G.endMs, H.toMs) : 0, ge = Lr({
6836
6836
  deviceId: e,
6837
- since: he,
6838
- until: ge,
6837
+ since: me,
6838
+ until: he,
6839
6839
  limit: F,
6840
6840
  projection: "slim"
6841
- }, { enabled: me && M.has("object") }), K = Ir({
6841
+ }, { enabled: K && M.has("object") }), q = Ir({
6842
6842
  deviceId: e,
6843
- since: he,
6844
- until: ge,
6843
+ since: me,
6844
+ until: he,
6845
6845
  limit: F,
6846
6846
  projection: "slim"
6847
- }, { enabled: me && M.has("motion") }), ve = Rr({
6847
+ }, { enabled: K && M.has("motion") }), _e = Rr({
6848
6848
  deviceId: e,
6849
- since: he,
6850
- until: ge,
6849
+ since: me,
6850
+ until: he,
6851
6851
  limit: F,
6852
6852
  projection: "slim"
6853
- }, { enabled: me && M.has("audio") }), ye = h(() => {
6853
+ }, { enabled: K && M.has("audio") }), ve = h(() => {
6854
6854
  if (!G) return [];
6855
6855
  let e = [];
6856
- if (M.has("object")) for (let t of _e.data ?? []) e.push({
6856
+ if (M.has("object")) for (let t of ge.data ?? []) e.push({
6857
6857
  id: t.id,
6858
6858
  timestamp: t.timestamp,
6859
6859
  kind: "object",
6860
6860
  label: t.label ?? t.className,
6861
6861
  mediaUrl: t.mediaUrl
6862
6862
  });
6863
- if (M.has("motion")) for (let t of K.data ?? []) e.push({
6863
+ if (M.has("motion")) for (let t of q.data ?? []) e.push({
6864
6864
  id: t.id,
6865
6865
  timestamp: t.timestamp,
6866
6866
  kind: "motion",
6867
6867
  label: `Motion (${t.regionCount})`,
6868
6868
  mediaUrl: t.mediaUrl
6869
6869
  });
6870
- if (M.has("audio")) for (let t of ve.data ?? []) e.push({
6870
+ if (M.has("audio")) for (let t of _e.data ?? []) e.push({
6871
6871
  id: t.id,
6872
6872
  timestamp: t.timestamp,
6873
6873
  kind: "audio",
@@ -6878,16 +6878,16 @@ function Ls({ deviceId: e }) {
6878
6878
  }, [
6879
6879
  G,
6880
6880
  M,
6881
- _e.data,
6882
- K.data,
6883
- ve.data
6884
- ]), be = h(() => !!(M.has("object") && (_e.data?.length ?? 0) === F || M.has("motion") && (K.data?.length ?? 0) === F || M.has("audio") && (ve.data?.length ?? 0) === F), [
6881
+ ge.data,
6882
+ q.data,
6883
+ _e.data
6884
+ ]), ye = h(() => !!(M.has("object") && (ge.data?.length ?? 0) === F || M.has("motion") && (q.data?.length ?? 0) === F || M.has("audio") && (_e.data?.length ?? 0) === F), [
6885
6885
  M,
6886
+ ge.data,
6887
+ q.data,
6886
6888
  _e.data,
6887
- K.data,
6888
- ve.data,
6889
6889
  F
6890
- ]), xe = o(async (r, i, a, o, c) => {
6890
+ ]), be = o(async (r, i, a, o, c) => {
6891
6891
  d(r), p(null);
6892
6892
  try {
6893
6893
  let r = await t.trpcClient.recording.getPlaybackManifest.query({
@@ -6908,7 +6908,7 @@ function Ls({ deviceId: e }) {
6908
6908
  t,
6909
6909
  e,
6910
6910
  n
6911
- ]), Se = o((e) => {
6911
+ ]), xe = o((e) => {
6912
6912
  let t = ls(e, pe);
6913
6913
  if (!t) return;
6914
6914
  if (w.current) {
@@ -6921,18 +6921,18 @@ function Ls({ deviceId: e }) {
6921
6921
  hour: "2-digit",
6922
6922
  minute: "2-digit"
6923
6923
  })}`;
6924
- xe(`seek:${t.fromMs}`, t.fromMs, t.toMs, n, t.fromMs);
6924
+ be(`seek:${t.fromMs}`, t.fromMs, t.toMs, n, t.fromMs);
6925
6925
  }, [
6926
6926
  pe,
6927
- xe,
6927
+ be,
6928
6928
  ne
6929
- ]), Ce = o(() => {
6929
+ ]), Se = o(() => {
6930
6930
  ee("timeline");
6931
- }, [ee]), we = o((e) => {
6931
+ }, [ee]), Ce = o((e) => {
6932
6932
  O(e, "timeline");
6933
- }, [O]), Te = o((e) => {
6933
+ }, [O]), we = o((e) => {
6934
6934
  te(ls(e, pe)?.fromMs ?? e, "timeline");
6935
- }, [pe, te]), Ee = o((e) => {
6935
+ }, [pe, te]), Te = o((e) => {
6936
6936
  if (w.current) {
6937
6937
  ne(e.timestamp - Ns, "timeline");
6938
6938
  return;
@@ -6941,10 +6941,10 @@ function Ls({ deviceId: e }) {
6941
6941
  hour: "2-digit",
6942
6942
  minute: "2-digit"
6943
6943
  })}`;
6944
- xe(`event:${e.id}`, e.timestamp - Ns, e.timestamp + Ps, t, e.timestamp);
6945
- }, [xe, ne]), De = o((e) => {
6944
+ be(`event:${e.id}`, e.timestamp - Ns, e.timestamp + Ps, t, e.timestamp);
6945
+ }, [be, ne]), Ee = o((e) => {
6946
6946
  i((t) => t === e ? null : e);
6947
- }, []), Oe = ue.isLoading, ke = de.isLoading, q = (_e.isLoading || K.isLoading || ve.isLoading) && me, Ae = h(() => _s(H.fromMs, H.toMs, 5), [H.fromMs, H.toMs]), je = C ? D.scrubbing ? D.scrubEpoch : D.playheadEpoch : a, Me = C && (_ === "playing" || _ === "paused");
6947
+ }, []), De = ue.isLoading, Oe = de.isLoading, ke = (ge.isLoading || q.isLoading || _e.isLoading) && K, Ae = h(() => _s(H.fromMs, H.toMs, 5), [H.fromMs, H.toMs]), je = C ? D.scrubbing ? D.scrubEpoch : D.playheadEpoch : a, Me = C && (_ === "playing" || _ === "paused");
6948
6948
  return /* @__PURE__ */ B("div", {
6949
6949
  className: "space-y-3",
6950
6950
  children: [
@@ -7012,7 +7012,7 @@ function Ls({ deviceId: e }) {
7012
7012
  children: [/* @__PURE__ */ z("div", {
7013
7013
  className: "text-[10px] font-semibold uppercase tracking-wider text-foreground-subtle",
7014
7014
  children: "Recorded"
7015
- }), Oe ? /* @__PURE__ */ z("div", { className: "h-5 animate-pulse rounded bg-background/40" }) : pe.length === 0 ? /* @__PURE__ */ z(ts, {
7015
+ }), De ? /* @__PURE__ */ z("div", { className: "h-5 animate-pulse rounded bg-background/40" }) : pe.length === 0 ? /* @__PURE__ */ z(ts, {
7016
7016
  icon: Ft,
7017
7017
  title: "No recordings for this window."
7018
7018
  }) : /* @__PURE__ */ z(vs, {
@@ -7020,11 +7020,11 @@ function Ls({ deviceId: e }) {
7020
7020
  windowTo: H.toMs,
7021
7021
  spans: pe,
7022
7022
  playheadMs: je,
7023
- onSeek: Se,
7023
+ onSeek: xe,
7024
7024
  ...C ? {
7025
- onScrubStart: Ce,
7026
- onScrubMove: we,
7027
- onScrubEnd: Te
7025
+ onScrubStart: Se,
7026
+ onScrubMove: Ce,
7027
+ onScrubEnd: we
7028
7028
  } : {}
7029
7029
  })]
7030
7030
  }),
@@ -7033,12 +7033,12 @@ function Ls({ deviceId: e }) {
7033
7033
  children: [/* @__PURE__ */ z("div", {
7034
7034
  className: "text-[10px] font-semibold uppercase tracking-wider text-foreground-subtle",
7035
7035
  children: "Events · density"
7036
- }), ke ? /* @__PURE__ */ z("div", { className: "h-6 animate-pulse rounded bg-background/40" }) : /* @__PURE__ */ z(bs, {
7036
+ }), Oe ? /* @__PURE__ */ z("div", { className: "h-6 animate-pulse rounded bg-background/40" }) : /* @__PURE__ */ z(bs, {
7037
7037
  windowFrom: H.fromMs,
7038
7038
  windowTo: H.toMs,
7039
7039
  buckets: W,
7040
7040
  selectedIndex: r,
7041
- onSelectBucket: De
7041
+ onSelectBucket: Ee
7042
7042
  })]
7043
7043
  }),
7044
7044
  /* @__PURE__ */ z("div", {
@@ -7052,13 +7052,13 @@ function Ls({ deviceId: e }) {
7052
7052
  ]
7053
7053
  }),
7054
7054
  G ? /* @__PURE__ */ z(Ts, {
7055
- clips: ye,
7056
- loading: q,
7055
+ clips: ve,
7056
+ loading: ke,
7057
7057
  busyKey: c,
7058
- onPlay: Ee,
7058
+ onPlay: Te,
7059
7059
  enabledKinds: M,
7060
7060
  onToggleKind: P,
7061
- hasMore: be,
7061
+ hasMore: ye,
7062
7062
  onLoadMore: L
7063
7063
  }) : /* @__PURE__ */ z("p", {
7064
7064
  className: "text-[11px] text-foreground-subtle",
@@ -7076,7 +7076,7 @@ function zs(e) {
7076
7076
  return n > 0 ? `${n}h ${r}m` : r > 0 ? `${r}m ${i}s` : `${i}s`;
7077
7077
  }
7078
7078
  function Bs({ deviceId: e }) {
7079
- let t = ie(), n = qr({ deviceId: e }), r = Wr({ deviceId: e }), i = Gr(), a = Kr(), { data: s } = Jr(void 0, { staleTime: 3e4 }), c = h(() => De(s ?? [], e).map((e) => e.profile), [s, e]), l = (t) => {
7079
+ let t = ie(), n = qr({ deviceId: e }), r = Wr({ deviceId: e }), i = Gr(), a = Kr(), { data: s } = Jr(void 0, { staleTime: 3e4 }), c = h(() => Ee(s ?? [], e).map((e) => e.profile), [s, e]), l = (t) => {
7080
7080
  i.mutate({
7081
7081
  deviceId: e,
7082
7082
  config: t
@@ -7170,8 +7170,8 @@ function Bs({ deviceId: e }) {
7170
7170
  //#region ../ui-library/src/widgets/host-widgets.ts
7171
7171
  b();
7172
7172
  var Vs = {
7173
- "host/motion-zones-grid": d(() => import("./MotionZonesSettings-D0ZWade-.mjs").then((e) => ({ default: e.MotionZonesSettings }))),
7174
- "host/privacy-mask-grid": d(() => import("./PrivacyMaskSettings-CCaDEYqV.mjs").then((e) => ({ default: e.PrivacyMaskSettings }))),
7173
+ "host/motion-zones-grid": d(() => import("./MotionZonesSettings-BNzikUE7.mjs").then((e) => ({ default: e.MotionZonesSettings }))),
7174
+ "host/privacy-mask-grid": d(() => import("./PrivacyMaskSettings-D_sagUPt.mjs").then((e) => ({ default: e.PrivacyMaskSettings }))),
7175
7175
  "host/ptz-panel": ko,
7176
7176
  "host/consumables-panel": Ji,
7177
7177
  "host/ptz-autotrack": Hi,
@@ -8220,7 +8220,7 @@ function Cc({ value: e, onChange: t, disabled: n }) {
8220
8220
  value: e,
8221
8221
  disabled: n,
8222
8222
  onChange: (e) => t(e.target.value),
8223
- children: [!Te(e) && /* @__PURE__ */ z("option", {
8223
+ children: [!we(e) && /* @__PURE__ */ z("option", {
8224
8224
  value: "",
8225
8225
  children: "— Select timezone —"
8226
8226
  }), r.map((e) => /* @__PURE__ */ z("optgroup", {
@@ -10065,7 +10065,7 @@ function Tl({ active: e, onClick: t, disabled: n, children: r, title: i }) {
10065
10065
  });
10066
10066
  }
10067
10067
  function El({ catalog: e, value: t, onChange: n, disabled: r }) {
10068
- let i = Ee(e), a = G(e, t), o = i.find((e) => e.family === a?.family)?.family ?? i[0]?.family ?? "", s = i.find((e) => e.family === o) ?? i[0];
10068
+ let i = Te(e), a = G(e, t), o = i.find((e) => e.family === a?.family)?.family ?? i[0]?.family ?? "", s = i.find((e) => e.family === o) ?? i[0];
10069
10069
  if (!s) return null;
10070
10070
  let c = s.tiers.find((e) => e.tier === a?.tier)?.tier ?? s.tiers[0]?.tier ?? "", l = s.tiers.find((e) => e.tier === c) ?? s.tiers[0];
10071
10071
  if (!l) return null;
@@ -10076,7 +10076,7 @@ function El({ catalog: e, value: t, onChange: n, disabled: r }) {
10076
10076
  let t = l.options.filter((t) => t.resolution === e), r = t.find((e) => e.precision === (a?.precision ?? "fp32") && e.optimization === (a?.optimization ?? "standard")) ?? t[0];
10077
10077
  r && n(r.modelId);
10078
10078
  }, g = (t) => {
10079
- let r = be(e, {
10079
+ let r = ye(e, {
10080
10080
  family: s.family,
10081
10081
  tier: l.tier,
10082
10082
  precision: t.precision,
@@ -11328,21 +11328,21 @@ function Bu({ serverUrl: e, streamKey: t, label: n, autoPlay: r = !0, muted: i =
11328
11328
  R.current = k, v(() => (R.current?.(A.current), () => R.current?.(null)), []);
11329
11329
  let V = u(null), H = u(null), ie = u(0), ae = u(!1), oe = u(!1), se = u(async () => {}), [U, ce] = l("idle"), [le, ue] = l(""), [de, fe] = l(i), pe = u(de);
11330
11330
  pe.current = de;
11331
- let [W, G] = l(!1), [me, he] = l(!1), ge = Mu(), [_e, K] = l(!0), ve = u(null), ye = u(!1);
11332
- (b || y) && (ye.current = !0);
11333
- let be = ye.current, xe = u(!1);
11334
- x && (xe.current = !0);
11335
- let Se = xe.current, [Ce, we] = l(!1), Te = u(null), [Ee, De] = l(null), [Oe, ke] = l(!1), q = o(() => {
11331
+ let [W, G] = l(!1), [K, me] = l(!1), he = Mu(), [ge, q] = l(!0), _e = u(null), ve = u(!1);
11332
+ (b || y) && (ve.current = !0);
11333
+ let ye = ve.current, be = u(!1);
11334
+ x && (be.current = !0);
11335
+ let xe = be.current, [Se, Ce] = l(!1), we = u(null), [Te, Ee] = l(null), [De, Oe] = l(!1), ke = o(() => {
11336
11336
  let e = A.current;
11337
11337
  if (!(!e || e.readyState < 2 || !e.videoWidth || !e.videoHeight)) try {
11338
11338
  let t = document.createElement("canvas");
11339
11339
  t.width = e.videoWidth, t.height = e.videoHeight;
11340
11340
  let n = t.getContext("2d");
11341
11341
  if (!n || (n.drawImage(e, 0, 0), Nu(n, t.width, t.height))) return;
11342
- Te.current = t.toDataURL("image/jpeg", .6);
11342
+ we.current = t.toDataURL("image/jpeg", .6);
11343
11343
  } catch {}
11344
11344
  }, []), Ae = o((e) => {
11345
- ce(e), e === "playing" && we(!0), m?.(e);
11345
+ ce(e), e === "playing" && Ce(!0), m?.(e);
11346
11346
  }, [m]), je = o(() => {
11347
11347
  if (N.current?.abort(), N.current = null, P.current &&= (clearTimeout(P.current), null), H.current &&= (clearTimeout(H.current), null), V.current = null, oe.current = !1, ie.current = 0, j.current &&= (j.current.close(), null), T && M.current.size > 0) {
11348
11348
  for (let e of M.current) T(e).catch(() => {});
@@ -11708,7 +11708,7 @@ function Bu({ serverUrl: e, streamKey: t, label: n, autoPlay: r = !0, muted: i =
11708
11708
  Pe,
11709
11709
  O
11710
11710
  ]);
11711
- let Re = Se ? Le : be ? Fe : Ie, ze = u(() => {}), Be = u(g);
11711
+ let Re = xe ? Le : ye ? Fe : Ie, ze = u(() => {}), Be = u(g);
11712
11712
  Be.current = g;
11713
11713
  let Ve = u(() => {});
11714
11714
  Ve.current = (e) => {
@@ -11734,17 +11734,17 @@ function Bu({ serverUrl: e, streamKey: t, label: n, autoPlay: r = !0, muted: i =
11734
11734
  let Ue = u(!1);
11735
11735
  v(() => {
11736
11736
  if (r) {
11737
- if (Se) {
11737
+ if (xe) {
11738
11738
  if (!x) return;
11739
- } else if (be) {
11739
+ } else if (ye) {
11740
11740
  if (!y || !b) return;
11741
11741
  } else return;
11742
11742
  Ue.current || j.current || (Ue.current = !0, Re());
11743
11743
  }
11744
11744
  }, [
11745
11745
  r,
11746
- Se,
11747
- be,
11746
+ xe,
11747
+ ye,
11748
11748
  x,
11749
11749
  y,
11750
11750
  b,
@@ -11753,11 +11753,11 @@ function Bu({ serverUrl: e, streamKey: t, label: n, autoPlay: r = !0, muted: i =
11753
11753
  let We = () => {
11754
11754
  F.current = 0, Re();
11755
11755
  }, Ge = () => {
11756
- if (F.current = 0, j.current && Se) {
11756
+ if (F.current = 0, j.current && xe) {
11757
11757
  Le(!0);
11758
11758
  return;
11759
11759
  }
11760
- if (j.current && be) {
11760
+ if (j.current && ye) {
11761
11761
  Fe(!0);
11762
11762
  return;
11763
11763
  }
@@ -11827,7 +11827,7 @@ function Bu({ serverUrl: e, streamKey: t, label: n, autoPlay: r = !0, muted: i =
11827
11827
  };
11828
11828
  }, []), v(() => {
11829
11829
  let e = A.current, t = typeof document < "u" && document.pictureInPictureEnabled === !0, n = e !== null && typeof e.webkitSetPresentationMode == "function";
11830
- he(t || n);
11830
+ me(t || n);
11831
11831
  }, []);
11832
11832
  let [$e, et] = l(""), tt = u(null);
11833
11833
  v(() => {
@@ -11939,30 +11939,30 @@ function Bu({ serverUrl: e, streamKey: t, label: n, autoPlay: r = !0, muted: i =
11939
11939
  e && (ju(e, i), i || e.play().catch(() => {}));
11940
11940
  }, [i]);
11941
11941
  let it = () => {
11942
- ge || (K(!0), ve.current && clearTimeout(ve.current), ve.current = setTimeout(() => K(!1), 3e3));
11942
+ he || (q(!0), _e.current && clearTimeout(_e.current), _e.current = setTimeout(() => q(!1), 3e3));
11943
11943
  }, at = () => {
11944
- K((e) => !e), ve.current && clearTimeout(ve.current);
11944
+ q((e) => !e), _e.current && clearTimeout(_e.current);
11945
11945
  };
11946
11946
  v(() => {
11947
11947
  if (U === "playing") {
11948
- q();
11949
- let e = setInterval(q, 2e3);
11948
+ ke();
11949
+ let e = setInterval(ke, 2e3);
11950
11950
  return () => clearInterval(e);
11951
11951
  }
11952
- Ce && Te.current && De(Te.current);
11952
+ Se && we.current && Ee(we.current);
11953
11953
  }, [
11954
11954
  U,
11955
- Ce,
11956
- q
11955
+ Se,
11956
+ ke
11957
11957
  ]), v(() => {
11958
11958
  if (U !== "playing") {
11959
- ke(!1);
11959
+ Oe(!1);
11960
11960
  return;
11961
11961
  }
11962
11962
  let e = A.current;
11963
11963
  if (!e) return;
11964
11964
  let t = !1, n = () => {
11965
- t || ke(!0);
11965
+ t || Oe(!0);
11966
11966
  }, r;
11967
11967
  typeof e.requestVideoFrameCallback == "function" && (r = e.requestVideoFrameCallback(() => n())), e.addEventListener("loadeddata", n, { once: !0 });
11968
11968
  let i = setTimeout(n, 12e3);
@@ -11970,7 +11970,7 @@ function Bu({ serverUrl: e, streamKey: t, label: n, autoPlay: r = !0, muted: i =
11970
11970
  t = !0, clearTimeout(i), r !== void 0 && typeof e.cancelVideoFrameCallback == "function" && e.cancelVideoFrameCallback(r), e.removeEventListener("loadeddata", n);
11971
11971
  };
11972
11972
  }, [U]);
11973
- let ot = Ce && Ee ? Ee : ee ?? null, st = !Oe && ot !== null;
11973
+ let ot = Se && Te ? Te : ee ?? null, st = !De && ot !== null;
11974
11974
  return /* @__PURE__ */ B("div", {
11975
11975
  ref: re,
11976
11976
  className: `relative isolate bg-black overflow-hidden group ${p}`,
@@ -12081,7 +12081,7 @@ function Bu({ serverUrl: e, streamKey: t, label: n, autoPlay: r = !0, muted: i =
12081
12081
  })
12082
12082
  }),
12083
12083
  a && U !== "idle" && U !== "error" && /* @__PURE__ */ B("div", {
12084
- className: `absolute bottom-0 inset-x-0 z-20 transform-gpu flex items-center justify-between px-3 py-1.5 bg-gradient-to-t from-black/80 to-transparent transition-opacity duration-200 ${ge || _e ? "opacity-100 pointer-events-auto" : "opacity-0 pointer-events-none"}`,
12084
+ className: `absolute bottom-0 inset-x-0 z-20 transform-gpu flex items-center justify-between px-3 py-1.5 bg-gradient-to-t from-black/80 to-transparent transition-opacity duration-200 ${he || ge ? "opacity-100 pointer-events-auto" : "opacity-0 pointer-events-none"}`,
12085
12085
  children: [/* @__PURE__ */ z("div", {
12086
12086
  className: "flex items-center gap-1",
12087
12087
  children: /* @__PURE__ */ z(Vu, {
@@ -12139,7 +12139,7 @@ function Bu({ serverUrl: e, streamKey: t, label: n, autoPlay: r = !0, muted: i =
12139
12139
  })]
12140
12140
  })
12141
12141
  }),
12142
- me && /* @__PURE__ */ z(Vu, {
12142
+ K && /* @__PURE__ */ z(Vu, {
12143
12143
  onClick: Ze,
12144
12144
  title: "Picture-in-Picture",
12145
12145
  children: /* @__PURE__ */ B("svg", {
@@ -12218,7 +12218,7 @@ var Uu = {
12218
12218
  face: "#a855f7",
12219
12219
  plate: "#ec4899"
12220
12220
  }, Wu = Object.freeze({
12221
- ...Object.fromEntries(Object.values(Oe).filter((e) => e.category === "detection" || e.kind === "motion").map((e) => [e.kind, e.color])),
12221
+ ...Object.fromEntries(Object.values(De).filter((e) => e.category === "detection" || e.kind === "motion").map((e) => [e.kind, e.color])),
12222
12222
  ...Uu
12223
12223
  }), Gu = [
12224
12224
  "#ef4444",
@@ -12231,11 +12231,11 @@ var Uu = {
12231
12231
  "#0891b2",
12232
12232
  "#7c3aed",
12233
12233
  "#059669"
12234
- ], Ku = we;
12234
+ ], Ku = Ce;
12235
12235
  function qu(e, t) {
12236
12236
  if (t?.[e]) return t[e];
12237
12237
  if (t?.[e.toLowerCase()]) return t[e.toLowerCase()];
12238
- let n = Oe[e] ?? Oe[e.toLowerCase()];
12238
+ let n = De[e] ?? De[e.toLowerCase()];
12239
12239
  if (n !== void 0) return n.color;
12240
12240
  if (Wu[e]) return Wu[e];
12241
12241
  if (Wu[e.toLowerCase()]) return Wu[e.toLowerCase()];
@@ -13365,26 +13365,26 @@ function Af({ agentId: e, addonId: t, deviceId: n, containerDeviceId: r, integra
13365
13365
  T,
13366
13366
  P,
13367
13367
  ce
13368
- ]), me = o((e) => {
13368
+ ]), K = o((e) => {
13369
13369
  let t = ue.current;
13370
13370
  t && (V.current = !0, t.scrollTo({
13371
13371
  top: t.scrollHeight,
13372
13372
  ...e ? { behavior: e } : {}
13373
13373
  }));
13374
- }, []), [he, ge] = l(!1), _e = u(G.length);
13374
+ }, []), [me, he] = l(!1), ge = u(G.length);
13375
13375
  c(() => {
13376
- let e = G.length > _e.current;
13377
- _e.current = G.length, e && (L ? me() : ge(!0));
13376
+ let e = G.length > ge.current;
13377
+ ge.current = G.length, e && (L ? K() : he(!0));
13378
13378
  }, [
13379
13379
  G.length,
13380
13380
  L,
13381
- me
13381
+ K
13382
13382
  ]), v(() => {
13383
- L && he && ge(!1);
13384
- }, [L, he]);
13385
- let K = o(() => {
13386
- R(!0), me("smooth");
13387
- }, [me]), ve = o(() => {
13383
+ L && me && he(!1);
13384
+ }, [L, me]);
13385
+ let q = o(() => {
13386
+ R(!0), K("smooth");
13387
+ }, [K]), _e = o(() => {
13388
13388
  if (V.current) {
13389
13389
  V.current = !1;
13390
13390
  return;
@@ -13393,9 +13393,9 @@ function Af({ agentId: e, addonId: t, deviceId: n, containerDeviceId: r, integra
13393
13393
  if (!e) return;
13394
13394
  let t = Cf(e, 40);
13395
13395
  R((e) => e === t ? e : t);
13396
- }, []), ye = h(() => G.filter((e) => e.tags && Object.keys(e.tags).length > 0 || e.meta && Object.keys(e.meta).length > 0).map((e) => `${e.timestamp}|${e.level}|${e.scope ?? ""}|${e.message}`), [G]), be = o(() => {
13396
+ }, []), ve = h(() => G.filter((e) => e.tags && Object.keys(e.tags).length > 0 || e.meta && Object.keys(e.meta).length > 0).map((e) => `${e.timestamp}|${e.level}|${e.scope ?? ""}|${e.message}`), [G]), ye = o(() => {
13397
13397
  ie((e) => (e && U(/* @__PURE__ */ new Set()), !e));
13398
- }, []), xe = o(() => {
13398
+ }, []), be = o(() => {
13399
13399
  let e = G.map((e) => {
13400
13400
  let t = new Date(e.timestamp).toLocaleTimeString(), n = e.tags ? " " + Object.entries(e.tags).filter(([, e]) => e).map(([e, t]) => `${e}=${t}`).join(" ") : "";
13401
13401
  return `${t} [${e.level.toUpperCase()}]${e.scope ? ` [${e.scope}]` : ""}${n} ${e.message}`;
@@ -13403,23 +13403,23 @@ function Af({ agentId: e, addonId: t, deviceId: n, containerDeviceId: r, integra
13403
13403
  navigator.clipboard.writeText(e.join("\n")).then(() => {
13404
13404
  oe(!0), setTimeout(() => oe(!1), 1500);
13405
13405
  });
13406
- }, [G]), Se = J.logs.clear.useMutation(), Ce = o(() => {
13407
- I(Date.now()), M.reset(), Se.mutate(A ? { tags: A } : {});
13406
+ }, [G]), xe = J.logs.clear.useMutation(), Se = o(() => {
13407
+ I(Date.now()), M.reset(), xe.mutate(A ? { tags: A } : {});
13408
13408
  }, [
13409
13409
  M,
13410
- Se,
13410
+ xe,
13411
13411
  A
13412
- ]), we = o((e) => {
13412
+ ]), Ce = o((e) => {
13413
13413
  U((t) => {
13414
13414
  let n = new Set(t);
13415
13415
  return n.has(e) ? n.delete(e) : n.add(e), n;
13416
13416
  });
13417
- }, []), [Te, Ee] = l(null), De = o((e, t) => {
13417
+ }, []), [we, Te] = l(null), Ee = o((e, t) => {
13418
13418
  let n = new Date(e.timestamp).toISOString(), r = e.tags ? " " + Object.entries(e.tags).filter(([, e]) => e).map(([e, t]) => `${e}=${t}`).join(" ") : "", i = e.meta && Object.keys(e.meta).length > 0 ? ` meta=${JSON.stringify(e.meta)}` : "", a = `${n} [${e.level.toUpperCase()}]${e.scope ? ` [${e.scope}]` : ""}${r} ${e.message}${i}`;
13419
13419
  navigator.clipboard.writeText(a).then(() => {
13420
- Ee(t), setTimeout(() => Ee((e) => e === t ? null : e), 1200);
13420
+ Te(t), setTimeout(() => Te((e) => e === t ? null : e), 1200);
13421
13421
  });
13422
- }, []), Oe = o((e) => `${e.timestamp}|${e.level}|${e.scope ?? ""}|${e.message}`, []);
13422
+ }, []), De = o((e) => `${e.timestamp}|${e.level}|${e.scope ?? ""}|${e.message}`, []);
13423
13423
  return /* @__PURE__ */ B("div", {
13424
13424
  className: Z("h-full min-h-0 flex flex-col", b),
13425
13425
  onClick: (e) => e.stopPropagation(),
@@ -13459,26 +13459,26 @@ function Af({ agentId: e, addonId: t, deviceId: n, containerDeviceId: r, integra
13459
13459
  label: L ? "Following" : "Paused",
13460
13460
  active: L,
13461
13461
  onClick: () => {
13462
- L ? R(!1) : K();
13462
+ L ? R(!1) : q();
13463
13463
  }
13464
13464
  }),
13465
13465
  /* @__PURE__ */ z(Pf, {
13466
13466
  icon: H ? at : ot,
13467
13467
  label: H ? "Collapse" : "Expand",
13468
13468
  active: H,
13469
- onClick: be,
13470
- disabled: ye.length === 0
13469
+ onClick: ye,
13470
+ disabled: ve.length === 0
13471
13471
  }),
13472
13472
  /* @__PURE__ */ z(Pf, {
13473
13473
  icon: St,
13474
13474
  label: ae ? "Copied!" : "Copy",
13475
- onClick: xe,
13475
+ onClick: be,
13476
13476
  disabled: G.length === 0
13477
13477
  }),
13478
13478
  /* @__PURE__ */ z(Pf, {
13479
13479
  icon: F,
13480
13480
  label: "Clear",
13481
- onClick: Ce
13481
+ onClick: Se
13482
13482
  }),
13483
13483
  /* @__PURE__ */ B("div", {
13484
13484
  className: "relative",
@@ -13543,15 +13543,15 @@ function Af({ agentId: e, addonId: t, deviceId: n, containerDeviceId: r, integra
13543
13543
  }),
13544
13544
  /* @__PURE__ */ B("div", {
13545
13545
  className: "relative flex-1 min-h-0 flex flex-col",
13546
- children: [!L && he && /* @__PURE__ */ B("button", {
13546
+ children: [!L && me && /* @__PURE__ */ B("button", {
13547
13547
  type: "button",
13548
- onClick: K,
13548
+ onClick: q,
13549
13549
  className: "absolute bottom-2 left-1/2 -translate-x-1/2 z-10 inline-flex items-center gap-1 px-2 py-1 rounded-full border border-primary/40 bg-primary/15 text-primary text-[10px] font-medium shadow-md backdrop-blur-sm hover:bg-primary/25 transition-colors",
13550
13550
  title: "Jump to the newest log line and resume following",
13551
13551
  children: [/* @__PURE__ */ z(Ne, { className: "h-3 w-3" }), "Jump to latest"]
13552
13552
  }), /* @__PURE__ */ B("div", {
13553
13553
  ref: ue,
13554
- onScroll: ve,
13554
+ onScroll: _e,
13555
13555
  className: Z("flex-1 min-h-0 overflow-auto font-mono text-[10px]", d),
13556
13556
  children: [
13557
13557
  W && /* @__PURE__ */ B("div", {
@@ -13565,10 +13565,10 @@ function Af({ agentId: e, addonId: t, deviceId: n, containerDeviceId: r, integra
13565
13565
  G.length > 0 && /* @__PURE__ */ z("table", {
13566
13566
  className: "w-full",
13567
13567
  children: /* @__PURE__ */ z("tbody", { children: G.map((e) => {
13568
- let t = Tf[e.level] ?? Tf.info, n = t.icon, r = Oe(e), i = H || se.has(r), a = e.tags && Object.keys(e.tags).length > 0, o = e.meta && Object.keys(e.meta).length > 0, s = a || o;
13568
+ let t = Tf[e.level] ?? Tf.info, n = t.icon, r = De(e), i = H || se.has(r), a = e.tags && Object.keys(e.tags).length > 0, o = e.meta && Object.keys(e.meta).length > 0, s = a || o;
13569
13569
  return /* @__PURE__ */ B("tr", {
13570
13570
  className: Z("hover:bg-surface-hover/30 border-b border-border/30", s && "cursor-pointer"),
13571
- onClick: s ? () => we(r) : void 0,
13571
+ onClick: s ? () => Ce(r) : void 0,
13572
13572
  children: [
13573
13573
  /* @__PURE__ */ z("td", {
13574
13574
  className: "px-2 py-1 text-foreground-subtle whitespace-nowrap align-top w-[70px]",
@@ -13638,8 +13638,8 @@ function Af({ agentId: e, addonId: t, deviceId: n, containerDeviceId: r, integra
13638
13638
  /* @__PURE__ */ z("td", {
13639
13639
  className: "px-1 py-1 align-top w-5",
13640
13640
  children: /* @__PURE__ */ z(Nf, {
13641
- copied: Te === r,
13642
- onCopy: () => De(e, r)
13641
+ copied: we === r,
13642
+ onCopy: () => Ee(e, r)
13643
13643
  })
13644
13644
  })
13645
13645
  ]
@@ -13702,122 +13702,122 @@ function Ff(e, t, n, r) {
13702
13702
  return !0;
13703
13703
  }
13704
13704
  var If = {
13705
- [q.AddonStarted]: {
13705
+ [K.AddonStarted]: {
13706
13706
  icon: En,
13707
13707
  color: "bg-emerald-500/15 text-emerald-400 border-emerald-500/30",
13708
13708
  label: "Started"
13709
13709
  },
13710
- [q.AddonInstalled]: {
13710
+ [K.AddonInstalled]: {
13711
13711
  icon: Ot,
13712
13712
  color: "bg-emerald-500/15 text-emerald-400 border-emerald-500/30",
13713
13713
  label: "Installed"
13714
13714
  },
13715
- [q.AddonRestarted]: {
13715
+ [K.AddonRestarted]: {
13716
13716
  icon: jn,
13717
13717
  color: "bg-blue-500/15 text-blue-400 border-blue-500/30",
13718
13718
  label: "Restarted"
13719
13719
  },
13720
- [q.AddonUpdated]: {
13720
+ [K.AddonUpdated]: {
13721
13721
  icon: ur,
13722
13722
  color: "bg-blue-500/15 text-blue-400 border-blue-500/30",
13723
13723
  label: "Updated"
13724
13724
  },
13725
- [q.AddonStopped]: {
13725
+ [K.AddonStopped]: {
13726
13726
  icon: P,
13727
13727
  color: "bg-foreground-subtle/10 text-foreground-subtle border-border",
13728
13728
  label: "Stopped"
13729
13729
  },
13730
- [q.AddonUninstalled]: {
13730
+ [K.AddonUninstalled]: {
13731
13731
  icon: F,
13732
13732
  color: "bg-foreground-subtle/10 text-foreground-subtle border-border",
13733
13733
  label: "Uninstalled"
13734
13734
  },
13735
- [q.AddonCrashed]: {
13735
+ [K.AddonCrashed]: {
13736
13736
  icon: st,
13737
13737
  color: "bg-red-500/15 text-red-400 border-red-500/30",
13738
13738
  label: "Crashed"
13739
13739
  },
13740
- [q.AddonError]: {
13740
+ [K.AddonError]: {
13741
13741
  icon: sr,
13742
13742
  color: "bg-red-500/15 text-red-400 border-red-500/30",
13743
13743
  label: "Error"
13744
13744
  },
13745
- [q.DetectionPhaseTransition]: {
13745
+ [K.DetectionPhaseTransition]: {
13746
13746
  icon: Ae,
13747
13747
  color: "bg-violet-500/15 text-violet-400 border-violet-500/30",
13748
13748
  label: "Phase"
13749
13749
  },
13750
- [q.DetectionResult]: {
13750
+ [K.DetectionResult]: {
13751
13751
  icon: Pn,
13752
13752
  color: "bg-purple-500/15 text-purple-400 border-purple-500/30",
13753
13753
  label: "Detection"
13754
13754
  },
13755
- [q.DetectionEvent]: {
13755
+ [K.DetectionEvent]: {
13756
13756
  icon: Mt,
13757
13757
  color: "bg-blue-500/15 text-blue-400 border-blue-500/30",
13758
13758
  label: "Event"
13759
13759
  },
13760
- [q.DetectionCameraNative]: {
13760
+ [K.DetectionCameraNative]: {
13761
13761
  icon: tr,
13762
13762
  color: "bg-cyan-500/15 text-cyan-400 border-cyan-500/30",
13763
13763
  label: "Camera AI"
13764
13764
  },
13765
- [q.ProviderMotion]: {
13765
+ [K.ProviderMotion]: {
13766
13766
  icon: Tr,
13767
13767
  color: "bg-orange-500/15 text-orange-400 border-orange-500/30",
13768
13768
  label: "Motion"
13769
13769
  },
13770
- [q.MotionOnMotionChanged]: {
13770
+ [K.MotionOnMotionChanged]: {
13771
13771
  icon: Tr,
13772
13772
  color: "bg-orange-500/15 text-orange-400 border-orange-500/30",
13773
13773
  label: "Motion"
13774
13774
  },
13775
- [q.MotionAnalysis]: {
13775
+ [K.MotionAnalysis]: {
13776
13776
  icon: Ae,
13777
13777
  color: "bg-orange-500/10 text-orange-300 border-orange-500/20",
13778
13778
  label: "Motion analysis"
13779
13779
  },
13780
- [q.MotionZonesRaw]: {
13780
+ [K.MotionZonesRaw]: {
13781
13781
  icon: Ae,
13782
13782
  color: "bg-orange-500/10 text-orange-300 border-orange-500/20",
13783
13783
  label: "Motion zones"
13784
13784
  },
13785
- [q.ProviderDetection]: {
13785
+ [K.ProviderDetection]: {
13786
13786
  icon: tr,
13787
13787
  color: "bg-cyan-500/15 text-cyan-400 border-cyan-500/30",
13788
13788
  label: "Provider Det"
13789
13789
  },
13790
- [q.PipelineAudioInferenceResult]: {
13790
+ [K.PipelineAudioInferenceResult]: {
13791
13791
  icon: M,
13792
13792
  color: "bg-pink-500/15 text-pink-400 border-pink-500/30",
13793
13793
  label: "Audio"
13794
13794
  },
13795
- [q.AgentOnline]: {
13795
+ [K.AgentOnline]: {
13796
13796
  icon: En,
13797
13797
  color: "bg-emerald-500/15 text-emerald-400 border-emerald-500/30",
13798
13798
  label: "Agent Online"
13799
13799
  },
13800
- [q.AgentOffline]: {
13800
+ [K.AgentOffline]: {
13801
13801
  icon: P,
13802
13802
  color: "bg-red-500/15 text-red-400 border-red-500/30",
13803
13803
  label: "Agent Offline"
13804
13804
  },
13805
- [q.DeviceRegistered]: {
13805
+ [K.DeviceRegistered]: {
13806
13806
  icon: Ot,
13807
13807
  color: "bg-emerald-500/15 text-emerald-400 border-emerald-500/30",
13808
13808
  label: "Registered"
13809
13809
  },
13810
- [q.DeviceUnregistered]: {
13810
+ [K.DeviceUnregistered]: {
13811
13811
  icon: F,
13812
13812
  color: "bg-red-500/15 text-red-400 border-red-500/30",
13813
13813
  label: "Unregistered"
13814
13814
  },
13815
- [q.DeviceStateChanged]: {
13815
+ [K.DeviceStateChanged]: {
13816
13816
  icon: Ae,
13817
13817
  color: "bg-foreground-subtle/10 text-foreground-subtle border-border",
13818
13818
  label: "State"
13819
13819
  },
13820
- [q.EventEmitted]: {
13820
+ [K.EventEmitted]: {
13821
13821
  icon: Tr,
13822
13822
  color: "bg-amber-500/15 text-amber-400 border-amber-500/30",
13823
13823
  label: "Event"
@@ -13829,7 +13829,7 @@ function Lf(e, t) {
13829
13829
  color: "bg-foreground-subtle/10 text-foreground-subtle border-border",
13830
13830
  label: e.split(".").pop() ?? e
13831
13831
  };
13832
- if (e === q.DeviceStateChanged && t && typeof t.capName == "string") {
13832
+ if (e === K.DeviceStateChanged && t && typeof t.capName == "string") {
13833
13833
  let e = t.capName;
13834
13834
  return {
13835
13835
  ...n,
@@ -13838,31 +13838,31 @@ function Lf(e, t) {
13838
13838
  }
13839
13839
  return n;
13840
13840
  }
13841
- var Rf = Object.freeze([...new Set(Object.values(q))].toSorted()), zf = Object.freeze([
13842
- q.PipelineCameraMetricsSnapshot,
13843
- q.PipelineRunnerLoadSnapshot,
13844
- q.PipelineEngineMetricsSnapshot,
13845
- q.PipelineInferenceResult,
13846
- q.PipelineTrace,
13847
- q.PipelineProgress,
13848
- q.StreamBrokerMetricsSnapshot,
13849
- q.MetricsNodeResourcesSnapshot,
13850
- q.MetricsNodeProcessesSnapshot,
13851
- q.ClusterTopologySnapshot,
13852
- q.MotionAnalysis,
13853
- q.MotionZonesRaw,
13854
- q.DetectionResult,
13855
- q.PipelineAudioInferenceResult,
13856
- q.PlatformProbePhase,
13857
- q.BenchmarkProgress,
13858
- q.ModelDownloadProgress
13841
+ var Rf = Object.freeze([...new Set(Object.values(K))].toSorted()), zf = Object.freeze([
13842
+ K.PipelineCameraMetricsSnapshot,
13843
+ K.PipelineRunnerLoadSnapshot,
13844
+ K.PipelineEngineMetricsSnapshot,
13845
+ K.PipelineInferenceResult,
13846
+ K.PipelineTrace,
13847
+ K.PipelineProgress,
13848
+ K.StreamBrokerMetricsSnapshot,
13849
+ K.MetricsNodeResourcesSnapshot,
13850
+ K.MetricsNodeProcessesSnapshot,
13851
+ K.ClusterTopologySnapshot,
13852
+ K.MotionAnalysis,
13853
+ K.MotionZonesRaw,
13854
+ K.DetectionResult,
13855
+ K.PipelineAudioInferenceResult,
13856
+ K.PlatformProbePhase,
13857
+ K.BenchmarkProgress,
13858
+ K.ModelDownloadProgress
13859
13859
  ]), Bf = new Set(zf), Vf = Object.freeze(Rf.filter((e) => !Bf.has(e)));
13860
13860
  function Hf(e, t) {
13861
- if (e === q.DetectionPhaseTransition) {
13861
+ if (e === K.DetectionPhaseTransition) {
13862
13862
  let e = t.to, n = t.from, r = typeof t.source == "string" ? t.source : null, i = typeof t.cooldownMs == "number" ? t.cooldownMs : null, a = r ? ` (${r}${i ? `, ${Math.round(i / 1e3)}s cooldown` : ""})` : "";
13863
13863
  return e === "active" ? `Motion detected — phase active${a}` : e === "watching" ? `Cooldown expired — phase watching${a}` : `Phase: ${String(n)} → ${String(e)}${a}`;
13864
13864
  }
13865
- if (e === q.DetectionResult) {
13865
+ if (e === K.DetectionResult) {
13866
13866
  let e = t.frame?.detections ?? [];
13867
13867
  if (e.length === 0) return null;
13868
13868
  let n = /* @__PURE__ */ new Map();
@@ -13872,19 +13872,19 @@ function Hf(e, t) {
13872
13872
  }
13873
13873
  return [...n.entries()].map(([e, t]) => t > 1 ? `${e} ×${t}` : e).join(", ");
13874
13874
  }
13875
- if (e === q.PipelineAudioInferenceResult) {
13875
+ if (e === K.PipelineAudioInferenceResult) {
13876
13876
  let e = t.frame?.detections ?? [];
13877
13877
  return e.length === 0 ? null : e.map((e) => {
13878
13878
  let t = e, n = t.macroClass ?? t.class ?? t.label, r = typeof n == "string" ? n : "", i = t.score;
13879
13879
  return i ? `${r} (${Math.round(i * 100)}%)` : r;
13880
13880
  }).filter(Boolean).join(", ");
13881
13881
  }
13882
- if (e === q.DetectionEvent) {
13882
+ if (e === K.DetectionEvent) {
13883
13883
  let e = t.label ?? t.class, n = t.score ?? t.confidence, r = [];
13884
13884
  return typeof e == "string" && r.push(e), typeof n == "number" && r.push(`${Math.round(n * 100)}%`), r.length > 0 ? r.join(" — ") : null;
13885
13885
  }
13886
- if (e === q.ProviderMotion) return t.active === !0 ? "motion start" : "motion stop";
13887
- if (e === q.DeviceStateChanged) {
13886
+ if (e === K.ProviderMotion) return t.active === !0 ? "motion start" : "motion stop";
13887
+ if (e === K.DeviceStateChanged) {
13888
13888
  let e = t.slice;
13889
13889
  if (e && typeof e == "object") {
13890
13890
  let t = Object.keys(e).filter((e) => e !== "lastFetchedAt" && e !== "ts");
@@ -13892,12 +13892,12 @@ function Hf(e, t) {
13892
13892
  }
13893
13893
  return null;
13894
13894
  }
13895
- if (e === q.EventEmitted) return (typeof t.eventType == "string" ? t.eventType : null) ?? null;
13896
- if (e === q.MotionOnMotionChanged) {
13895
+ if (e === K.EventEmitted) return (typeof t.eventType == "string" ? t.eventType : null) ?? null;
13896
+ if (e === K.MotionOnMotionChanged) {
13897
13897
  let e = t.detected, n = typeof t.source == "string" ? t.source : null, r = e === !0 ? "motion start" : e === !1 ? "motion stop" : "motion";
13898
13898
  return n ? `${r} (${n})` : r;
13899
13899
  }
13900
- if (e === q.ProviderDetection || e === q.DetectionCameraNative) {
13900
+ if (e === K.ProviderDetection || e === K.DetectionCameraNative) {
13901
13901
  let e = t.detections ?? [];
13902
13902
  if (!Array.isArray(e) || e.length === 0) return (typeof t.class == "string" ? t.class : null) ?? null;
13903
13903
  let n = /* @__PURE__ */ new Map();
@@ -13912,7 +13912,7 @@ function Hf(e, t) {
13912
13912
  }
13913
13913
  function Uf(e) {
13914
13914
  let t = e.category;
13915
- return t === q.DetectionResult || t === q.PipelineAudioInferenceResult ? Hf(t, e.data) !== null : !0;
13915
+ return t === K.DetectionResult || t === K.PipelineAudioInferenceResult ? Hf(t, e.data) !== null : !0;
13916
13916
  }
13917
13917
  var Wf = 300;
13918
13918
  function Gf({ agentId: e, addonId: t, deviceId: n, defaultCategories: r, categories: i, category: a, maxHeight: s = "max-h-96", limit: c = 50, showCategoryFilter: d = !0, showFilters: f = !1, liveBuffer: p, onClose: m, className: g }) {
@@ -14014,28 +14014,28 @@ function Gf({ agentId: e, addonId: t, deviceId: n, defaultCategories: r, categor
14014
14014
  });
14015
14015
  }, []), G = o(() => {
14016
14016
  x(new Set(_)), A(""), L(0);
14017
- }, [_]), me = o(() => {
14017
+ }, [_]), K = o(() => {
14018
14018
  L(Date.now()), w.reset();
14019
- }, [w]), [he, ge] = l(!1), [_e, K] = l(null), ve = o((e) => {
14019
+ }, [w]), [me, he] = l(!1), [ge, q] = l(null), _e = o((e) => {
14020
14020
  let t = new Date(e.timestamp).toISOString(), n = Hf(e.category, e.data) ?? "", r = n ? ` ${n}` : "";
14021
14021
  return `${t} [${e.category}]${r} data=${JSON.stringify(e.data)}`;
14022
- }, []), ye = o(() => {
14023
- let e = fe.map(ve);
14022
+ }, []), ve = o(() => {
14023
+ let e = fe.map(_e);
14024
14024
  navigator.clipboard.writeText(e.join("\n")).then(() => {
14025
- ge(!0), setTimeout(() => ge(!1), 1500);
14025
+ he(!0), setTimeout(() => he(!1), 1500);
14026
14026
  });
14027
- }, [fe, ve]), be = o((e) => {
14028
- navigator.clipboard.writeText(ve(e)).then(() => {
14029
- K(e.id), setTimeout(() => K((t) => t === e.id ? null : t), 1200);
14027
+ }, [fe, _e]), ye = o((e) => {
14028
+ navigator.clipboard.writeText(_e(e)).then(() => {
14029
+ q(e.id), setTimeout(() => q((t) => t === e.id ? null : t), 1200);
14030
14030
  });
14031
- }, [ve]), xe = o(() => {
14031
+ }, [_e]), be = o(() => {
14032
14032
  x(new Set(Rf));
14033
- }, []), Se = o(() => {
14033
+ }, []), xe = o(() => {
14034
14034
  x(/* @__PURE__ */ new Set());
14035
- }, []), Ce = h(() => {
14035
+ }, []), Se = h(() => {
14036
14036
  let e = N.trim().toLowerCase();
14037
14037
  return e ? Rf.filter((t) => t.toLowerCase().includes(e)) : Rf;
14038
- }, [N]), we = Rf.length, Te = b.size, Ee = Te === we, De = Ee ? "All" : `${Te}/${we}`;
14038
+ }, [N]), Ce = Rf.length, we = b.size, Te = we === Ce, Ee = Te ? "All" : `${we}/${Ce}`;
14039
14039
  return /* @__PURE__ */ B("div", {
14040
14040
  className: Z("h-full min-h-0 flex flex-col", g),
14041
14041
  onClick: (e) => e.stopPropagation(),
@@ -14081,22 +14081,22 @@ function Gf({ agentId: e, addonId: t, deviceId: n, defaultCategories: r, categor
14081
14081
  children: [/* @__PURE__ */ B("button", {
14082
14082
  type: "button",
14083
14083
  onClick: () => M((e) => !e),
14084
- className: Z("inline-flex items-center gap-1 text-[9px] px-1.5 py-0.5 rounded border transition-colors", Ee ? "border-border text-foreground-subtle hover:text-foreground" : "border-violet-500/30 bg-violet-500/10 text-violet-400"),
14084
+ className: Z("inline-flex items-center gap-1 text-[9px] px-1.5 py-0.5 rounded border transition-colors", Te ? "border-border text-foreground-subtle hover:text-foreground" : "border-violet-500/30 bg-violet-500/10 text-violet-400"),
14085
14085
  title: "Pick events to track",
14086
14086
  children: [
14087
14087
  /* @__PURE__ */ z(Bt, { className: "h-2.5 w-2.5" }),
14088
14088
  "Filter (",
14089
- De,
14089
+ Ee,
14090
14090
  ")"
14091
14091
  ]
14092
14092
  }), j && /* @__PURE__ */ z(Kf, {
14093
14093
  search: N,
14094
14094
  onSearchChange: P,
14095
- categories: Ce,
14095
+ categories: Se,
14096
14096
  active: b,
14097
14097
  onToggle: W,
14098
- onSelectAll: xe,
14099
- onSelectNone: Se,
14098
+ onSelectAll: be,
14099
+ onSelectNone: xe,
14100
14100
  onResetDefaults: G
14101
14101
  })]
14102
14102
  }),
@@ -14109,18 +14109,18 @@ function Gf({ agentId: e, addonId: t, deviceId: n, defaultCategories: r, categor
14109
14109
  }),
14110
14110
  /* @__PURE__ */ B("button", {
14111
14111
  type: "button",
14112
- onClick: me,
14112
+ onClick: K,
14113
14113
  className: "inline-flex items-center gap-1 text-[9px] px-1.5 py-0.5 rounded border border-border text-foreground-subtle hover:text-foreground transition-colors",
14114
14114
  title: "Clear visible entries",
14115
14115
  children: [/* @__PURE__ */ z(F, { className: "h-2.5 w-2.5" }), "Clear"]
14116
14116
  }),
14117
14117
  /* @__PURE__ */ B("button", {
14118
14118
  type: "button",
14119
- onClick: ye,
14119
+ onClick: ve,
14120
14120
  disabled: fe.length === 0,
14121
- className: Z("inline-flex items-center gap-1 text-[9px] px-1.5 py-0.5 rounded border transition-colors", he ? "border-emerald-500/30 bg-emerald-500/10 text-emerald-400" : "border-border text-foreground-subtle hover:text-foreground", fe.length === 0 && "opacity-40 cursor-not-allowed"),
14121
+ className: Z("inline-flex items-center gap-1 text-[9px] px-1.5 py-0.5 rounded border transition-colors", me ? "border-emerald-500/30 bg-emerald-500/10 text-emerald-400" : "border-border text-foreground-subtle hover:text-foreground", fe.length === 0 && "opacity-40 cursor-not-allowed"),
14122
14122
  title: "Copy all visible events",
14123
- children: [/* @__PURE__ */ z(St, { className: "h-2.5 w-2.5" }), he ? "Copied!" : "Copy"]
14123
+ children: [/* @__PURE__ */ z(St, { className: "h-2.5 w-2.5" }), me ? "Copied!" : "Copy"]
14124
14124
  }),
14125
14125
  /* @__PURE__ */ B("div", {
14126
14126
  className: "relative",
@@ -14178,8 +14178,8 @@ function Gf({ agentId: e, addonId: t, deviceId: n, defaultCategories: r, categor
14178
14178
  children: new Date(e.timestamp).toLocaleTimeString()
14179
14179
  }),
14180
14180
  /* @__PURE__ */ z(Jf, {
14181
- copied: _e === e.id,
14182
- onCopy: () => be(e)
14181
+ copied: ge === e.id,
14182
+ onCopy: () => ye(e)
14183
14183
  }),
14184
14184
  /* @__PURE__ */ B("div", {
14185
14185
  className: "flex-1 min-w-0",
@@ -14363,7 +14363,7 @@ function Jf({ copied: e, onCopy: t }) {
14363
14363
  }
14364
14364
  //#endregion
14365
14365
  //#region ../ui-library/src/composites/device-controls/atoms.tsx
14366
- b(), Object.freeze([...new Set(me.filter((e) => e.scope === "device").map((e) => e.name))].toSorted()), b(), b();
14366
+ b(), Object.freeze([...new Set(ke.filter((e) => e.scope === "device").map((e) => e.name))].toSorted()), b(), b();
14367
14367
  function Yf({ value: e, unit: t, onDelta: n }) {
14368
14368
  return /* @__PURE__ */ B("div", {
14369
14369
  className: "flex h-8 w-full overflow-hidden rounded-lg border border-border bg-surface",
@@ -14638,7 +14638,7 @@ function gp({ trpc: e, deviceId: t, layout: n, optimistic: r, features: i }) {
14638
14638
  slice: (e) => e.state.lockControl
14639
14639
  }), { display: c, applyOptimistic: u } = mp(o, { enabled: r ?? !0 }), [d, f] = l(null), [p, m] = l(!1), [h, g] = l(null);
14640
14640
  if (c === void 0) return null;
14641
- let _ = c.state === "locked" || c.state === "locking", v = !s || c.state === "jammed", y = i?.includes(ve.LockOpen) === !0, b = n === "compact", x = () => {
14641
+ let _ = c.state === "locked" || c.state === "locking", v = !s || c.state === "jammed", y = i?.includes(_e.LockOpen) === !0, b = n === "compact", x = () => {
14642
14642
  u({ state: "locking" }), a?.lock({});
14643
14643
  }, S = () => {
14644
14644
  u({ state: "unlocking" }), a?.unlock({});
@@ -15546,10 +15546,10 @@ b();
15546
15546
  var Gp = (e) => e;
15547
15547
  function Kp(e) {
15548
15548
  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 = e.sliceUnit ?? e.canonicalUnit, i = t?.unit ?? e.display?.unit ?? e.roleDefault?.unit;
15549
- return i !== void 0 && r !== void 0 && i !== r && Se(r, i) ? {
15549
+ return i !== void 0 && r !== void 0 && i !== r && xe(r, i) ? {
15550
15550
  unit: i,
15551
15551
  precision: n,
15552
- toDisplayValue: (e) => ge(e, r, i) ?? e
15552
+ toDisplayValue: (e) => he(e, r, i) ?? e
15553
15553
  } : {
15554
15554
  unit: r ?? "",
15555
15555
  precision: n,
@@ -16015,7 +16015,7 @@ function fm({ trpc: e, deviceId: t, features: n, optimistic: r }) {
16015
16015
  slice: (e) => e.state.cover
16016
16016
  }), { display: s, applyOptimistic: c } = mp(a, { enabled: r ?? !0 });
16017
16017
  if (i === void 0) return null;
16018
- let l = !o, u = (n ?? []).includes(ve.CoverPositionable), d = (n ?? []).includes(ve.CoverTilt), f = im(s?.state), p = s?.position ?? null, m = p !== null, h = s?.state === "open" || s?.state === "opening", g = (e, t) => {
16018
+ let l = !o, u = (n ?? []).includes(_e.CoverPositionable), d = (n ?? []).includes(_e.CoverTilt), f = im(s?.state), p = s?.position ?? null, m = p !== null, h = s?.state === "open" || s?.state === "opening", g = (e, t) => {
16019
16019
  l || !e || (t !== void 0 && c(t), e({}));
16020
16020
  }, _ = (e) => {
16021
16021
  l || (c({ position: e }), i?.setPosition({ position: e }));
@@ -17647,7 +17647,7 @@ function fh({ label: e, busy: t, variant: n, onClick: r, children: i }) {
17647
17647
  function ph({ trpc: e, deviceId: t, features: n, optimistic: r }) {
17648
17648
  let { cap: i, slice: a, available: o } = ah(e, t), { display: s, applyOptimistic: c } = mp(a, { enabled: r ?? !0 });
17649
17649
  if (i === void 0) return null;
17650
- let l = !o, u = (n ?? []).includes(ve.ValvePositionable), d = im(s?.state), f = ih(s?.state), p = s?.position ?? null, m = p !== null, h = (e, t) => {
17650
+ let l = !o, u = (n ?? []).includes(_e.ValvePositionable), d = im(s?.state), f = ih(s?.state), p = s?.position ?? null, m = p !== null, h = (e, t) => {
17651
17651
  l || !e || (t !== void 0 && c(t), e({}));
17652
17652
  }, g = (e) => {
17653
17653
  l || (c({ position: e }), i.setPosition({ position: e }));
@@ -18940,7 +18940,7 @@ function Uh({ trpc: e, deviceId: t, deviceName: n }) {
18940
18940
  b();
18941
18941
  var Wh = 20, Gh = 9, Kh = "#f59e0b", qh = "#ef4444";
18942
18942
  function Jh(e) {
18943
- return Math.min(ce, Math.max(ke, e));
18943
+ return Math.min(ce, Math.max(Oe, e));
18944
18944
  }
18945
18945
  var Yh = "\n@keyframes pf-eat { 0%,100%{transform:translateY(0)} 50%{transform:translateY(2px)} }\n@keyframes pf-pulse { 0%,100%{opacity:.55} 50%{opacity:1} }\n@media (prefers-reduced-motion: reduce) {\n .pf-eat, .pf-pulse { animation: none !important; }\n}\n";
18946
18946
  function Xh({ trpc: e, deviceId: t, layout: n, optimistic: r }) {
@@ -19304,7 +19304,7 @@ function eg({ label: e, grams: t, busy: n, onGrams: r, onFeed: i }) {
19304
19304
  /* @__PURE__ */ z(tg, {
19305
19305
  label: `Decrease ${e} portion`,
19306
19306
  symbol: "−",
19307
- disabled: n || t <= ke,
19307
+ disabled: n || t <= Oe,
19308
19308
  onClick: () => r(Jh(t - 1))
19309
19309
  }),
19310
19310
  /* @__PURE__ */ B("span", {
@@ -20141,7 +20141,7 @@ function Hg({ trpc: e, deviceId: t, features: n, optimistic: r }) {
20141
20141
  slice: (e) => e.state.lockControl
20142
20142
  }), { display: s, applyOptimistic: c } = mp(a, { enabled: r ?? !0 });
20143
20143
  if (i === void 0 || s === void 0) return null;
20144
- let l = Ig(s.state), u = Lg(s.state) || !o, d = n?.includes(ve.LockOpen) === !0, f = () => {
20144
+ let l = Ig(s.state), u = Lg(s.state) || !o, d = n?.includes(_e.LockOpen) === !0, f = () => {
20145
20145
  u || (l ? (c({ state: "unlocking" }), i.unlock({})) : (c({ state: "locking" }), i.lock({})));
20146
20146
  }, p = () => {
20147
20147
  u || i.open({});
@@ -20199,7 +20199,7 @@ function Xg({ trpc: e, deviceId: t, features: n, optimistic: r }) {
20199
20199
  slice: (e) => e.state.color
20200
20200
  }), s = mp(i.slice, { enabled: r ?? !0 }), c = mp(a.slice, { enabled: r ?? !0 }), l = mp(o.slice, { enabled: r ?? !0 });
20201
20201
  if (i.cap === void 0 || s.display === void 0) return null;
20202
- let u = s.display.on === !0, d = !i.available, f = c.display?.percentage ?? 0, p = !a.available, m = u ? f / 100 : 0, h = u ? Jg : Yg, g = (n?.includes(ve.LightColorMired) ?? !1) && o.cap !== void 0, _ = l.display?.mireds, v = !o.available;
20202
+ let u = s.display.on === !0, d = !i.available, f = c.display?.percentage ?? 0, p = !a.available, m = u ? f / 100 : 0, h = u ? Jg : Yg, g = (n?.includes(_e.LightColorMired) ?? !1) && o.cap !== void 0, _ = l.display?.mireds, v = !o.available;
20203
20203
  return /* @__PURE__ */ B("div", {
20204
20204
  className: "flex flex-col items-stretch gap-4 rounded-lg border border-border bg-surface p-4",
20205
20205
  children: [
@@ -20324,7 +20324,7 @@ function $g({ trpc: e, deviceId: t, features: n, optimistic: r }) {
20324
20324
  slice: (e) => e.state.fanControl
20325
20325
  }), o = mp(i.slice, { enabled: r ?? !0 }), s = mp(a.slice, { enabled: r ?? !0 });
20326
20326
  if (i.cap === void 0 || o.display === void 0) return null;
20327
- let c = o.display.on === !0, l = !i.available, u = s.display?.percentage ?? 0, d = !a.available, f = c ? u / 100 : 0, p = c ? Zg : Qg, m = n?.includes(ve.FanSpeed) ?? !1, h = (n?.includes(ve.FanOscillating) ?? !1) && a.cap !== void 0, g = s.display?.availablePresets ?? [], _ = (n?.includes(ve.FanPreset) ?? !1) && a.cap !== void 0 && g.length > 0, v = s.display?.preset ?? "", y = s.display?.oscillating === !0, b = () => {
20327
+ let c = o.display.on === !0, l = !i.available, u = s.display?.percentage ?? 0, d = !a.available, f = c ? u / 100 : 0, p = c ? Zg : Qg, m = n?.includes(_e.FanSpeed) ?? !1, h = (n?.includes(_e.FanOscillating) ?? !1) && a.cap !== void 0, g = s.display?.availablePresets ?? [], _ = (n?.includes(_e.FanPreset) ?? !1) && a.cap !== void 0 && g.length > 0, v = s.display?.preset ?? "", y = s.display?.oscillating === !0, b = () => {
20328
20328
  if (l) return;
20329
20329
  let e = !c;
20330
20330
  o.applyOptimistic({ on: e }), i.cap?.setState({ on: e });
@@ -20513,7 +20513,7 @@ function o_({ trpc: e, deviceId: t, features: n, optimistic: r }) {
20513
20513
  slice: (e) => e.state.mediaPlayer
20514
20514
  }), { display: s, applyOptimistic: c } = mp(a, { enabled: r ?? !0 });
20515
20515
  if (i === void 0 || s === void 0) return null;
20516
- let l = !o, u = t_(s.state), d = (n?.includes(ve.MediaPlayerSeek) ?? !1) && s.durationMs !== null && s.durationMs > 0, f = n?.includes(ve.MediaPlayerNext) ?? !1, p = n?.includes(ve.MediaPlayerPrevious) ?? !1, m = (n?.includes(ve.MediaPlayerVolume) ?? !1) && s.volumeLevel !== null, h = () => {
20516
+ let l = !o, u = t_(s.state), d = (n?.includes(_e.MediaPlayerSeek) ?? !1) && s.durationMs !== null && s.durationMs > 0, f = n?.includes(_e.MediaPlayerNext) ?? !1, p = n?.includes(_e.MediaPlayerPrevious) ?? !1, m = (n?.includes(_e.MediaPlayerVolume) ?? !1) && s.volumeLevel !== null, h = () => {
20517
20517
  l || (u === "play" ? (c({ state: "playing" }), i.play({})) : (c({ state: "paused" }), i.pause({})));
20518
20518
  }, g = s.currentMedia?.artist ?? s.currentMedia?.album ?? null, _ = n_(s.positionMs, s.durationMs), v = s.volumeLevel ?? 0;
20519
20519
  return /* @__PURE__ */ B("div", {
@@ -21329,7 +21329,7 @@ var K_ = {
21329
21329
  HeroCard: mm
21330
21330
  }
21331
21331
  };
21332
- Object.fromEntries(Object.values(W).map((e) => [e, K_[xe[e]]])), W.Cover, W.Valve, W.Thermostat, W.Climate, W.Control, W.Button, W.MediaPlayer, W.AlarmPanel, W.Lock, W.Vacuum, W.LawnMower, W.Humidifier, W.Switch, W.Siren, W.Light, W.Fan, W.WaterHeater, W.Sensor, W.Presence, W.EventEmitter, W.Notifier, W.Script, W.Automation, W.Camera, W.Hub, W.Update, W.Generic, W.Weather, W.Container, W.Image, W.PetFeeder, new Set(Object.values(W));
21332
+ Object.fromEntries(Object.values(W).map((e) => [e, K_[be[e]]])), W.Cover, W.Valve, W.Thermostat, W.Climate, W.Control, W.Button, W.MediaPlayer, W.AlarmPanel, W.Lock, W.Vacuum, W.LawnMower, W.Humidifier, W.Switch, W.Siren, W.Light, W.Fan, W.WaterHeater, W.Sensor, W.Presence, W.EventEmitter, W.Notifier, W.Script, W.Automation, W.Camera, W.Hub, W.Update, W.Generic, W.Weather, W.Container, W.Image, W.PetFeeder, new Set(Object.values(W));
21333
21333
  //#endregion
21334
21334
  //#region ../ui-library/src/lib/format-last-seen.ts
21335
21335
  var q_ = 1e3;
@@ -24463,205 +24463,205 @@ var xw = {
24463
24463
  label: "Pet feeder"
24464
24464
  }
24465
24465
  }, Sw = {
24466
- [K.Siren]: {
24466
+ [q.Siren]: {
24467
24467
  icon: Un,
24468
24468
  label: "Siren"
24469
24469
  },
24470
- [K.Floodlight]: {
24470
+ [q.Floodlight]: {
24471
24471
  icon: Zt,
24472
24472
  label: "Floodlight"
24473
24473
  },
24474
- [K.Spotlight]: {
24474
+ [q.Spotlight]: {
24475
24475
  icon: Lt,
24476
24476
  label: "Spotlight"
24477
24477
  },
24478
- [K.PirSensor]: {
24478
+ [q.PirSensor]: {
24479
24479
  icon: kn,
24480
24480
  label: "PIR sensor"
24481
24481
  },
24482
- [K.Chime]: {
24482
+ [q.Chime]: {
24483
24483
  icon: Ge,
24484
24484
  label: "Chime"
24485
24485
  },
24486
- [K.Autotrack]: {
24486
+ [q.Autotrack]: {
24487
24487
  icon: wt,
24488
24488
  label: "Auto-track"
24489
24489
  },
24490
- [K.Nightvision]: {
24490
+ [q.Nightvision]: {
24491
24491
  icon: fn,
24492
24492
  label: "Night vision"
24493
24493
  },
24494
- [K.PrivacyMask]: {
24494
+ [q.PrivacyMask]: {
24495
24495
  icon: N,
24496
24496
  label: "Privacy mask"
24497
24497
  },
24498
- [K.Doorbell]: {
24498
+ [q.Doorbell]: {
24499
24499
  icon: Et,
24500
24500
  label: "Doorbell"
24501
24501
  },
24502
- [K.BinaryHelper]: {
24502
+ [q.BinaryHelper]: {
24503
24503
  icon: rr,
24504
24504
  label: "Binary helper"
24505
24505
  },
24506
- [K.MotionSensor]: {
24506
+ [q.MotionSensor]: {
24507
24507
  icon: zt,
24508
24508
  label: "Motion sensor"
24509
24509
  },
24510
- [K.ContactSensor]: {
24510
+ [q.ContactSensor]: {
24511
24511
  icon: Dt,
24512
24512
  label: "Contact sensor"
24513
24513
  },
24514
- [K.LeakSensor]: {
24514
+ [q.LeakSensor]: {
24515
24515
  icon: kt,
24516
24516
  label: "Leak sensor"
24517
24517
  },
24518
- [K.SmokeSensor]: {
24518
+ [q.SmokeSensor]: {
24519
24519
  icon: Me,
24520
24520
  label: "Smoke sensor"
24521
24521
  },
24522
- [K.COSensor]: {
24522
+ [q.COSensor]: {
24523
24523
  icon: xr,
24524
24524
  label: "CO sensor"
24525
24525
  },
24526
- [K.GasSensor]: {
24526
+ [q.GasSensor]: {
24527
24527
  icon: It,
24528
24528
  label: "Gas sensor"
24529
24529
  },
24530
- [K.TamperSensor]: {
24530
+ [q.TamperSensor]: {
24531
24531
  icon: zn,
24532
24532
  label: "Tamper sensor"
24533
24533
  },
24534
- [K.VibrationSensor]: {
24534
+ [q.VibrationSensor]: {
24535
24535
  icon: hr,
24536
24536
  label: "Vibration sensor"
24537
24537
  },
24538
- [K.ConnectivitySensor]: {
24538
+ [q.ConnectivitySensor]: {
24539
24539
  icon: br,
24540
24540
  label: "Connectivity"
24541
24541
  },
24542
- [K.SoundSensor]: {
24542
+ [q.SoundSensor]: {
24543
24543
  icon: gr,
24544
24544
  label: "Sound sensor"
24545
24545
  },
24546
- [K.BinarySensor]: {
24546
+ [q.BinarySensor]: {
24547
24547
  icon: rr,
24548
24548
  label: "Binary sensor"
24549
24549
  },
24550
- [K.TemperatureSensor]: {
24550
+ [q.TemperatureSensor]: {
24551
24551
  icon: nr,
24552
24552
  label: "Temperature"
24553
24553
  },
24554
- [K.HumiditySensor]: {
24554
+ [q.HumiditySensor]: {
24555
24555
  icon: At,
24556
24556
  label: "Humidity"
24557
24557
  },
24558
- [K.AmbientLightSensor]: {
24558
+ [q.AmbientLightSensor]: {
24559
24559
  icon: Qn,
24560
24560
  label: "Ambient light"
24561
24561
  },
24562
- [K.PressureSensor]: {
24562
+ [q.PressureSensor]: {
24563
24563
  icon: Vt,
24564
24564
  label: "Pressure"
24565
24565
  },
24566
- [K.WindSensor]: {
24566
+ [q.WindSensor]: {
24567
24567
  icon: xr,
24568
24568
  label: "Wind"
24569
24569
  },
24570
- [K.RainSensor]: {
24570
+ [q.RainSensor]: {
24571
24571
  icon: gt,
24572
24572
  label: "Rain"
24573
24573
  },
24574
- [K.UvSensor]: {
24574
+ [q.UvSensor]: {
24575
24575
  icon: Zn,
24576
24576
  label: "UV index"
24577
24577
  },
24578
- [K.SolarRadiationSensor]: {
24578
+ [q.SolarRadiationSensor]: {
24579
24579
  icon: $n,
24580
24580
  label: "Solar radiation"
24581
24581
  },
24582
- [K.SoilMoistureSensor]: {
24582
+ [q.SoilMoistureSensor]: {
24583
24583
  icon: Xn,
24584
24584
  label: "Soil moisture"
24585
24585
  },
24586
- [K.PowerSensor]: {
24586
+ [q.PowerSensor]: {
24587
24587
  icon: Tr,
24588
24588
  label: "Power"
24589
24589
  },
24590
- [K.EnergySensor]: {
24590
+ [q.EnergySensor]: {
24591
24591
  icon: Tr,
24592
24592
  label: "Energy"
24593
24593
  },
24594
- [K.VoltageSensor]: {
24594
+ [q.VoltageSensor]: {
24595
24595
  icon: Tr,
24596
24596
  label: "Voltage"
24597
24597
  },
24598
- [K.CurrentSensor]: {
24598
+ [q.CurrentSensor]: {
24599
24599
  icon: Tr,
24600
24600
  label: "Current"
24601
24601
  },
24602
- [K.AirQualitySensor]: {
24602
+ [q.AirQualitySensor]: {
24603
24603
  icon: xr,
24604
24604
  label: "Air quality"
24605
24605
  },
24606
- [K.BatterySensor]: {
24606
+ [q.BatterySensor]: {
24607
24607
  icon: Vt,
24608
24608
  label: "Battery"
24609
24609
  },
24610
- [K.NumericSensor]: {
24610
+ [q.NumericSensor]: {
24611
24611
  icon: Gt,
24612
24612
  label: "Numeric sensor"
24613
24613
  },
24614
- [K.EnumSensor]: {
24614
+ [q.EnumSensor]: {
24615
24615
  icon: $t,
24616
24616
  label: "Enum sensor"
24617
24617
  },
24618
- [K.DateTimeSensor]: {
24618
+ [q.DateTimeSensor]: {
24619
24619
  icon: pt,
24620
24620
  label: "Date / time"
24621
24621
  },
24622
- [K.GenericSensor]: {
24622
+ [q.GenericSensor]: {
24623
24623
  icon: Vt,
24624
24624
  label: "Sensor"
24625
24625
  },
24626
- [K.NumericControl]: {
24626
+ [q.NumericControl]: {
24627
24627
  icon: Kn,
24628
24628
  label: "Numeric control"
24629
24629
  },
24630
- [K.SelectControl]: {
24630
+ [q.SelectControl]: {
24631
24631
  icon: Qt,
24632
24632
  label: "Select control"
24633
24633
  },
24634
- [K.TextControl]: {
24634
+ [q.TextControl]: {
24635
24635
  icon: lr,
24636
24636
  label: "Text control"
24637
24637
  },
24638
- [K.DateTimeControl]: {
24638
+ [q.DateTimeControl]: {
24639
24639
  icon: pt,
24640
24640
  label: "Date / time control"
24641
24641
  },
24642
- [K.MobilePushNotifier]: {
24642
+ [q.MobilePushNotifier]: {
24643
24643
  icon: qn,
24644
24644
  label: "Mobile push"
24645
24645
  },
24646
- [K.MessagingNotifier]: {
24646
+ [q.MessagingNotifier]: {
24647
24647
  icon: cn,
24648
24648
  label: "Messaging"
24649
24649
  },
24650
- [K.EmailNotifier]: {
24650
+ [q.EmailNotifier]: {
24651
24651
  icon: rn,
24652
24652
  label: "Email"
24653
24653
  },
24654
- [K.GenericNotifier]: {
24654
+ [q.GenericNotifier]: {
24655
24655
  icon: Ge,
24656
24656
  label: "Notifier"
24657
24657
  }
24658
24658
  }, Cw = new Set(Object.values(W));
24659
- new Set(Object.values(K));
24659
+ new Set(Object.values(q));
24660
24660
  function ww(e) {
24661
24661
  return Cw.has(e);
24662
24662
  }
24663
24663
  var Tw = xw[W.Generic];
24664
- Sw[K.GenericSensor];
24664
+ Sw[q.GenericSensor];
24665
24665
  function Ew(e) {
24666
24666
  return ww(e) ? xw[e] ?? Tw : Tw;
24667
24667
  }
@@ -25434,33 +25434,33 @@ function Yw({ className: e }) {
25434
25434
  });
25435
25435
  }
25436
25436
  function Xw({ serverUrl: e, createSession: t, sendAnswer: n, handleOffer: r, getIceServers: i, addIceCandidate: a, getIceCandidates: s, closeSession: c, getSessionState: d, playbackUrl: f, playbackAuthToken: p, onExitPlayback: m, posterUrl: g, streams: _, activeStreamId: y, onStreamChange: b, deviceName: x, phase: S, pipelineMetrics: C, detections: w, defaultShowDetections: T = !0, defaultShowMotion: E = !1, streamStats: D, autoPlay: ee = !1, showPlayStop: O = !1, snapshotSrc: te, snapshotLoading: ne = !1, onRefreshSnapshot: k, showStreamStats: re = !1, children: j, extraOverlay: M, ptzAvailable: N = !1, ptzShown: P = !1, ptzOverlay: F, onPtzToggle: I, intercomAvailable: L = !1, intercomShown: R = !1, onIntercomToggle: H, chromeless: ie = !1, className: ae }) {
25437
- let oe = A(), se = qo(), [U, ce] = l(ee), [le, ue] = l(T), [de, fe] = l(E), [pe, W] = l(null), [G, me] = l([]), [he, ge] = l(-1), [_e, K] = l(!1), ve = u(null);
25437
+ let oe = A(), se = qo(), [U, ce] = l(ee), [le, ue] = l(T), [de, fe] = l(E), [pe, W] = l(null), [G, K] = l([]), [me, he] = l(-1), [ge, q] = l(!1), _e = u(null);
25438
25438
  v(() => {
25439
- if (!_e) return;
25439
+ if (!ge) return;
25440
25440
  function e(e) {
25441
- ve.current && !ve.current.contains(e.target) && K(!1);
25441
+ _e.current && !_e.current.contains(e.target) && q(!1);
25442
25442
  }
25443
25443
  return document.addEventListener("mousedown", e), () => document.removeEventListener("mousedown", e);
25444
- }, [_e]), v(() => {
25445
- ge(-1);
25444
+ }, [ge]), v(() => {
25445
+ he(-1);
25446
25446
  }, [f]);
25447
- let ye = o((e) => {
25448
- me(e);
25449
- }, []), be = y ?? pe ?? _?.[0]?.id ?? "", xe = _?.find((e) => e.id === be) ?? _?.[0], Se = xe?.inputFps == null ? null : {
25450
- status: xe.status ?? "unknown",
25451
- inputFps: xe.inputFps,
25452
- bitrateKbps: xe.bitrateKbps ?? 0
25453
- }, Ce = (e) => {
25447
+ let ve = o((e) => {
25448
+ K(e);
25449
+ }, []), ye = y ?? pe ?? _?.[0]?.id ?? "", be = _?.find((e) => e.id === ye) ?? _?.[0], xe = be?.inputFps == null ? null : {
25450
+ status: be.status ?? "unknown",
25451
+ inputFps: be.inputFps,
25452
+ bitrateKbps: be.bitrateKbps ?? 0
25453
+ }, Se = (e) => {
25454
25454
  W(e), b?.(e), U && O && (ce(!1), setTimeout(() => ce(!0), 50));
25455
- }, we = h(() => {
25456
- let e = xe?.target;
25455
+ }, Ce = h(() => {
25456
+ let e = be?.target;
25457
25457
  if (!(!e || !t)) return (n) => t(e, n);
25458
- }, [t, xe]), Te = h(() => {
25459
- let e = xe?.target;
25458
+ }, [t, be]), we = h(() => {
25459
+ let e = be?.target;
25460
25460
  if (!(!e || !r)) return (t, n) => r(e, t, n);
25461
- }, [r, xe]), Ee = h(() => {
25461
+ }, [r, be]), Te = h(() => {
25462
25462
  if (r) return (e, t, n) => r(n, t, e);
25463
- }, [r]), De = _, Oe = () => ce(!0), ke = () => ce(!1), q = C?.phase ?? S, Ae = q === "active", je = !!w, Me = je && (le || de), Ne = N && P && !!F, Pe = !!f, Fe = Pe || (O ? U : !0);
25463
+ }, [r]), Ee = _, De = () => ce(!0), Oe = () => ce(!1), ke = C?.phase ?? S, Ae = ke === "active", je = !!w, Me = je && (le || de), Ne = N && P && !!F, Pe = !!f, Fe = Pe || (O ? U : !0);
25464
25464
  return /* @__PURE__ */ B("div", {
25465
25465
  className: `overflow-hidden ${ie ? "" : "rounded-xl border border-border bg-surface"} ${ae ?? ""}`,
25466
25466
  children: [
@@ -25469,19 +25469,19 @@ function Xw({ serverUrl: e, createSession: t, sendAnswer: n, handleOffer: r, get
25469
25469
  children: [/* @__PURE__ */ B("div", {
25470
25470
  className: "flex items-center gap-2 min-w-0",
25471
25471
  children: [
25472
- (D ?? Se) && /* @__PURE__ */ z("span", { className: `shrink-0 w-2 h-2 rounded-full ${Bw((D ?? Se).status)}` }),
25472
+ (D ?? xe) && /* @__PURE__ */ z("span", { className: `shrink-0 w-2 h-2 rounded-full ${Bw((D ?? xe).status)}` }),
25473
25473
  x && /* @__PURE__ */ z("span", {
25474
25474
  className: "text-xs font-medium text-foreground truncate",
25475
25475
  children: x
25476
25476
  }),
25477
- !Pe && De && De.length > 1 && /* @__PURE__ */ B("div", {
25477
+ !Pe && Ee && Ee.length > 1 && /* @__PURE__ */ B("div", {
25478
25478
  className: "relative",
25479
25479
  children: [/* @__PURE__ */ z("select", {
25480
25480
  "data-testid": "stream-profile-select",
25481
- value: be,
25482
- onChange: (e) => Ce(e.target.value),
25481
+ value: ye,
25482
+ onChange: (e) => Se(e.target.value),
25483
25483
  className: "appearance-none cursor-pointer rounded-md border border-border bg-surface-hover hover:bg-surface text-foreground text-[11px] font-medium pl-2 pr-6 py-1 focus:outline-none focus:ring-1 focus:ring-primary transition-colors",
25484
- children: De.map((e) => /* @__PURE__ */ z("option", {
25484
+ children: Ee.map((e) => /* @__PURE__ */ z("option", {
25485
25485
  value: e.id,
25486
25486
  children: e.label
25487
25487
  }, e.id))
@@ -25503,8 +25503,8 @@ function Xw({ serverUrl: e, createSession: t, sendAnswer: n, handleOffer: r, get
25503
25503
  className: "relative",
25504
25504
  children: [/* @__PURE__ */ z("select", {
25505
25505
  "data-testid": "vod-quality-select",
25506
- value: he,
25507
- onChange: (e) => ge(Number(e.target.value)),
25506
+ value: me,
25507
+ onChange: (e) => he(Number(e.target.value)),
25508
25508
  className: "appearance-none cursor-pointer rounded-md border border-border bg-surface-hover hover:bg-surface text-foreground text-[11px] font-medium pl-2 pr-6 py-1 focus:outline-none focus:ring-1 focus:ring-primary transition-colors",
25509
25509
  children: G.map((e) => /* @__PURE__ */ z("option", {
25510
25510
  value: e.value,
@@ -25559,7 +25559,7 @@ function Xw({ serverUrl: e, createSession: t, sendAnswer: n, handleOffer: r, get
25559
25559
  "data-testid": "stream-play-toggle",
25560
25560
  "data-stream-playing": Fe ? "true" : "false",
25561
25561
  "data-vod": Pe ? "true" : "false",
25562
- onClick: Pe ? m : Fe ? ke : Oe,
25562
+ onClick: Pe ? m : Fe ? Oe : De,
25563
25563
  className: `inline-flex items-center gap-1 rounded-md px-2 py-1 text-xs font-medium transition-colors ${Pe ? "bg-primary/10 text-primary hover:bg-primary/20" : Fe ? "bg-danger/10 text-danger hover:bg-danger/20" : "bg-primary/10 text-primary hover:bg-primary/20"}`,
25564
25564
  title: Pe ? "Return to live" : Fe ? "Stop stream" : "Start stream",
25565
25565
  children: [z(Pe ? qw : Fe ? Uw : Hw, { className: "h-3 w-3" }), /* @__PURE__ */ z("span", {
@@ -25578,15 +25578,15 @@ function Xw({ serverUrl: e, createSession: t, sendAnswer: n, handleOffer: r, get
25578
25578
  children: "Snapshot"
25579
25579
  })]
25580
25580
  }),
25581
- (je || N || C || q || D || Se && Se.inputFps > 0) && /* @__PURE__ */ B("div", {
25582
- ref: ve,
25581
+ (je || N || C || ke || D || xe && xe.inputFps > 0) && /* @__PURE__ */ B("div", {
25582
+ ref: _e,
25583
25583
  className: "relative",
25584
25584
  children: [/* @__PURE__ */ z("button", {
25585
- onClick: () => K((e) => !e),
25585
+ onClick: () => q((e) => !e),
25586
25586
  title: "More controls",
25587
25587
  className: "inline-flex items-center justify-center rounded-md p-1 text-foreground-subtle hover:text-foreground hover:bg-surface-hover transition-colors",
25588
25588
  children: /* @__PURE__ */ z(Gw, { className: "h-3.5 w-3.5" })
25589
- }), _e && /* @__PURE__ */ B("div", {
25589
+ }), ge && /* @__PURE__ */ B("div", {
25590
25590
  className: "absolute right-0 top-full mt-1 z-30 min-w-[200px] rounded-lg border border-border bg-surface shadow-xl py-1.5",
25591
25591
  children: [
25592
25592
  re && D && /* @__PURE__ */ B("div", {
@@ -25615,23 +25615,23 @@ function Xw({ serverUrl: e, createSession: t, sendAnswer: n, handleOffer: r, get
25615
25615
  })
25616
25616
  ]
25617
25617
  }),
25618
- !re && Se && Se.inputFps > 0 && /* @__PURE__ */ B("div", {
25618
+ !re && xe && xe.inputFps > 0 && /* @__PURE__ */ B("div", {
25619
25619
  className: "px-3 py-1.5 text-[10px] text-foreground-subtle border-b border-border-subtle",
25620
25620
  children: [/* @__PURE__ */ B("div", {
25621
25621
  className: "flex justify-between gap-3",
25622
25622
  children: [/* @__PURE__ */ z("span", { children: "Input" }), /* @__PURE__ */ B("span", {
25623
25623
  className: "tabular-nums text-foreground",
25624
- children: [Se.inputFps.toFixed(1), " fps"]
25624
+ children: [xe.inputFps.toFixed(1), " fps"]
25625
25625
  })]
25626
- }), Se.bitrateKbps > 0 && /* @__PURE__ */ B("div", {
25626
+ }), xe.bitrateKbps > 0 && /* @__PURE__ */ B("div", {
25627
25627
  className: "flex justify-between gap-3",
25628
25628
  children: [/* @__PURE__ */ z("span", { children: "Bitrate" }), /* @__PURE__ */ B("span", {
25629
25629
  className: "tabular-nums text-foreground",
25630
- children: [Se.bitrateKbps, " kbps"]
25630
+ children: [xe.bitrateKbps, " kbps"]
25631
25631
  })]
25632
25632
  })]
25633
25633
  }),
25634
- (C || je && q) && /* @__PURE__ */ B("div", {
25634
+ (C || je && ke) && /* @__PURE__ */ B("div", {
25635
25635
  className: "px-3 py-1.5 text-[10px] text-foreground-subtle border-b border-border-subtle",
25636
25636
  children: [
25637
25637
  /* @__PURE__ */ B("div", {
@@ -25670,7 +25670,7 @@ function Xw({ serverUrl: e, createSession: t, sendAnswer: n, handleOffer: r, get
25670
25670
  label: "PTZ controls",
25671
25671
  active: P,
25672
25672
  onClick: () => {
25673
- I?.(), K(!1);
25673
+ I?.(), q(!1);
25674
25674
  }
25675
25675
  })
25676
25676
  ]
@@ -25684,21 +25684,21 @@ function Xw({ serverUrl: e, createSession: t, sendAnswer: n, handleOffer: r, get
25684
25684
  children: [/* @__PURE__ */ z(Aw, {
25685
25685
  url: f,
25686
25686
  authToken: p ?? null,
25687
- onQualityOptions: ye,
25688
- selectedLevel: he,
25687
+ onQualityOptions: ve,
25688
+ selectedLevel: me,
25689
25689
  ...g ? { posterUrl: g } : {}
25690
25690
  }), M || Ne ? /* @__PURE__ */ B(V, { children: [M, Ne && F] }) : null]
25691
25691
  }) : Fe && e ? /* @__PURE__ */ z("div", {
25692
25692
  className: "aspect-video relative",
25693
25693
  children: /* @__PURE__ */ z(Bu, {
25694
25694
  serverUrl: e,
25695
- streamKey: be,
25695
+ streamKey: ye,
25696
25696
  autoPlay: !0,
25697
25697
  className: "w-full h-full",
25698
- createSession: we,
25698
+ createSession: Ce,
25699
25699
  sendAnswer: n,
25700
- handleOffer: Te,
25701
- reoffer: Ee,
25700
+ handleOffer: we,
25701
+ reoffer: Te,
25702
25702
  getSessionState: d,
25703
25703
  getIceServers: i,
25704
25704
  addIceCandidate: a,
@@ -25721,7 +25721,7 @@ function Xw({ serverUrl: e, createSession: t, sendAnswer: n, handleOffer: r, get
25721
25721
  }) : /* @__PURE__ */ z(Zw, {
25722
25722
  src: te ?? null,
25723
25723
  isLoading: ne,
25724
- onPlay: Oe,
25724
+ onPlay: De,
25725
25725
  onRetry: k,
25726
25726
  extraOverlay: M || Ne ? /* @__PURE__ */ B(V, { children: [M, Ne && F] }) : null,
25727
25727
  suppressPlayHover: !!M || Ne
@@ -26104,7 +26104,7 @@ function uT(e, t, n = 5e3) {
26104
26104
  }, [e, t])
26105
26105
  };
26106
26106
  }
26107
- b(), b(), b(), b(), b(), d(() => import("./MaskShapeCanvas-BDvrLf-K.mjs").then((e) => ({ default: e.MaskShapeCanvas }))), d(() => import("./MotionZonesSettings-D0ZWade-.mjs").then((e) => ({ default: e.MotionZonesSettings }))), d(() => import("./SceneMonitorEditor-DxET6Fog.mjs").then((e) => ({ default: e.SceneMonitorEditor }))), d(() => import("./PrivacyMaskSettings-CCaDEYqV.mjs").then((e) => ({ default: e.PrivacyMaskSettings })));
26107
+ b(), b(), b(), b(), b(), d(() => import("./MaskShapeCanvas-BDvrLf-K.mjs").then((e) => ({ default: e.MaskShapeCanvas }))), d(() => import("./MotionZonesSettings-BNzikUE7.mjs").then((e) => ({ default: e.MotionZonesSettings }))), d(() => import("./SceneMonitorEditor-CqGJJc8c.mjs").then((e) => ({ default: e.SceneMonitorEditor }))), d(() => import("./PrivacyMaskSettings-D_sagUPt.mjs").then((e) => ({ default: e.PrivacyMaskSettings })));
26108
26108
  //#endregion
26109
26109
  //#region src/components/NodeSelector.tsx
26110
26110
  function dT({ selectedNodeId: e, onSelect: t }) {
@@ -29169,8 +29169,8 @@ function TE({ trpc: e, nodeId: t, onNodeChange: n }) {
29169
29169
  let [r, i] = l(null), [a, s] = l([]), [c, d] = l(null), [f, p] = l([]), [m, h] = l(""), [g, _] = l(null), [y, b] = l(""), [x, S] = l(null), [C, w] = l({
29170
29170
  w: 640,
29171
29171
  h: 480
29172
- }), [T, E] = l([]), [D, ee] = l(null), [O, te] = l(null), [ne, k] = l(null), [A, re] = l(!1), [j, M] = l(""), [N, P] = l(null), [F, I] = l(!0), [L, R] = l([]), [V, H] = l(200), [ie, ae] = l(4), [oe, se] = l(1), [U, ce] = l(!1), [le, ue] = l(null), [de, fe] = l(null), [pe, W] = l(null), [G, me] = l(null), he = u(null), [ge, _e] = l(/* @__PURE__ */ new Set()), K = o((e, t) => {
29173
- _e((n) => {
29172
+ }), [T, E] = l([]), [D, ee] = l(null), [O, te] = l(null), [ne, k] = l(null), [A, re] = l(!1), [j, M] = l(""), [N, P] = l(null), [F, I] = l(!0), [L, R] = l([]), [V, H] = l(200), [ie, ae] = l(4), [oe, se] = l(1), [U, ce] = l(!1), [le, ue] = l(null), [de, fe] = l(null), [pe, W] = l(null), [G, K] = l(null), me = u(null), [he, ge] = l(/* @__PURE__ */ new Set()), q = o((e, t) => {
29173
+ ge((n) => {
29174
29174
  let r = new Set(n);
29175
29175
  return t ? r.delete(e) : r.add(e), r;
29176
29176
  });
@@ -29182,7 +29182,7 @@ function TE({ trpc: e, nodeId: t, onNodeChange: n }) {
29182
29182
  try {
29183
29183
  let n = e.live.onEvent.subscribe({ category: "pipeline.progress" }, {
29184
29184
  onData: (e) => {
29185
- let t = typeof e.data == "object" && e.data !== null ? e.data : e, n = he.current;
29185
+ let t = typeof e.data == "object" && e.data !== null ? e.data : e, n = me.current;
29186
29186
  if (!n) return;
29187
29187
  let r = t.sessionId, i = n.startsWith("synth-");
29188
29188
  if (i) {
@@ -29190,7 +29190,7 @@ function TE({ trpc: e, nodeId: t, onNodeChange: n }) {
29190
29190
  } else if (r !== n) return;
29191
29191
  if (t.message) {
29192
29192
  let e = String(t.message);
29193
- R((t) => [...t, e]), i && t.benchProgress && (ue(e), me({
29193
+ R((t) => [...t, e]), i && t.benchProgress && (ue(e), K({
29194
29194
  iter: Math.ceil(t.runs / Math.max(1, ie)),
29195
29195
  total: V,
29196
29196
  runs: t.runs,
@@ -29227,7 +29227,7 @@ function TE({ trpc: e, nodeId: t, onNodeChange: n }) {
29227
29227
  h(n);
29228
29228
  try {
29229
29229
  let t = await e.pipelineExecutor.getReferenceImage.query({ filename: n });
29230
- t && (_(t.base64), ve(`data:image/jpeg;base64,${t.base64}`));
29230
+ t && (_(t.base64), _e(`data:image/jpeg;base64,${t.base64}`));
29231
29231
  } catch (e) {
29232
29232
  console.warn("[benchmark:image] Failed to load reference image:", e);
29233
29233
  }
@@ -29242,25 +29242,25 @@ function TE({ trpc: e, nodeId: t, onNodeChange: n }) {
29242
29242
  console.error("[benchmark:image] Failed to load pipeline data:", e), I(!1);
29243
29243
  });
29244
29244
  }, [e, t]);
29245
- let ve = (e) => {
29245
+ let _e = (e) => {
29246
29246
  S(e);
29247
29247
  let t = new Image();
29248
29248
  t.addEventListener("load", () => w({
29249
29249
  w: t.naturalWidth,
29250
29250
  h: t.naturalHeight
29251
29251
  })), t.src = e;
29252
- }, ye = async (t) => {
29252
+ }, ve = async (t) => {
29253
29253
  h(t), P(null);
29254
29254
  try {
29255
29255
  let n = await e.pipelineExecutor.getReferenceImage.query({ filename: t });
29256
- n && (_(n.base64), ve(`data:image/jpeg;base64,${n.base64}`));
29256
+ n && (_(n.base64), _e(`data:image/jpeg;base64,${n.base64}`));
29257
29257
  } catch (e) {
29258
29258
  console.warn("[benchmark:image] Failed to load image:", e);
29259
29259
  }
29260
- }, be = ne ? vT(ne.steps) : T.map((e) => wE(e)), xe = async () => {
29260
+ }, ye = ne ? vT(ne.steps) : T.map((e) => wE(e)), be = async () => {
29261
29261
  re(!0), M(""), P(null), R([]);
29262
29262
  let n = `ui-${Date.now()}-${Math.random().toString(36).slice(2, 10)}`;
29263
- he.current = n;
29263
+ me.current = n;
29264
29264
  try {
29265
29265
  if (!g) {
29266
29266
  M("No image loaded");
@@ -29270,7 +29270,7 @@ function TE({ trpc: e, nodeId: t, onNodeChange: n }) {
29270
29270
  addonId: "benchmark",
29271
29271
  action: "runPipelineTest",
29272
29272
  input: { ..._E({
29273
- steps: be,
29273
+ steps: ye,
29274
29274
  imageBase64: g,
29275
29275
  nodeId: t,
29276
29276
  sessionId: n,
@@ -29281,16 +29281,16 @@ function TE({ trpc: e, nodeId: t, onNodeChange: n }) {
29281
29281
  } catch (e) {
29282
29282
  console.error("[benchmark] runPipelineTest ERROR:", e), M(e instanceof Error ? e.message : String(e));
29283
29283
  } finally {
29284
- he.current = null, re(!1);
29284
+ me.current = null, re(!1);
29285
29285
  }
29286
- }, Se = async (n) => {
29286
+ }, xe = async (n) => {
29287
29287
  if (!g) {
29288
29288
  M("No image loaded");
29289
29289
  return;
29290
29290
  }
29291
- M(""), ce(!0), fe(n), ue("caching frame…"), me(null), W(null);
29291
+ M(""), ce(!0), fe(n), ue("caching frame…"), K(null), W(null);
29292
29292
  let r = `synth-${Date.now().toString(36)}-${Math.random().toString(36).slice(2, 8)}`;
29293
- he.current = r;
29293
+ me.current = r;
29294
29294
  let i = null;
29295
29295
  try {
29296
29296
  i = (await e.addons.custom.mutate({
@@ -29306,7 +29306,7 @@ function TE({ trpc: e, nodeId: t, onNodeChange: n }) {
29306
29306
  action: "runSyntheticBench",
29307
29307
  input: { ...vE({
29308
29308
  frameId: i,
29309
- steps: be,
29309
+ steps: ye,
29310
29310
  parallel: ie,
29311
29311
  iterations: V,
29312
29312
  warmup: oe,
@@ -29319,7 +29319,7 @@ function TE({ trpc: e, nodeId: t, onNodeChange: n }) {
29319
29319
  console.log("[benchmark UI] synthetic bench output", {
29320
29320
  ...o,
29321
29321
  clientWallMs: s.toFixed(0)
29322
- }), me({
29322
+ }), K({
29323
29323
  iter: V,
29324
29324
  total: V,
29325
29325
  runs: o.runs,
@@ -29336,7 +29336,7 @@ function TE({ trpc: e, nodeId: t, onNodeChange: n }) {
29336
29336
  detPerSec: o.detectionsPerSec,
29337
29337
  avgDetections: o.avgDetections
29338
29338
  }), ue(`synthetic — ${o.fps.toFixed(1)} fps · ${o.detectionsPerSec.toFixed(1)} det/s · call ${o.callMs.mean.toFixed(1)}ms p95 ${o.callMs.p95.toFixed(1)}ms · batch ${o.batchSizeMean.toFixed(2)}`), W(await bE((t) => e.addons.custom.mutate({ ...t }), {
29339
- steps: be,
29339
+ steps: ye,
29340
29340
  iterations: V,
29341
29341
  warmup: oe,
29342
29342
  parallel: ie,
@@ -29357,10 +29357,10 @@ function TE({ trpc: e, nodeId: t, onNodeChange: n }) {
29357
29357
  className: "text-sm text-foreground-subtle animate-pulse py-8 text-center",
29358
29358
  children: "Loading..."
29359
29359
  });
29360
- let Ce = C.w, we = C.h, Te = N?.detections ? [...N.detections] : [], Ee = /* @__PURE__ */ new Set();
29361
- for (let e of Te) e.kind === "first-level" && ge.has(e.id) && Ee.add(e.id);
29362
- let De = Te.filter((e) => !(ge.has(e.id) || e.kind === "detail" && e.parentId && Ee.has(e.parentId))), Oe = {}, ke = N?.debug?.stepTimings ?? [];
29363
- for (let e of ke) Oe[`${e.source}${e.modelId ? ` (${e.modelId})` : ""}`] = e.ms;
29360
+ let Se = C.w, Ce = C.h, we = N?.detections ? [...N.detections] : [], Te = /* @__PURE__ */ new Set();
29361
+ for (let e of we) e.kind === "first-level" && he.has(e.id) && Te.add(e.id);
29362
+ let Ee = we.filter((e) => !(he.has(e.id) || e.kind === "detail" && e.parentId && Te.has(e.parentId))), De = {}, Oe = N?.debug?.stepTimings ?? [];
29363
+ for (let e of Oe) De[`${e.source}${e.modelId ? ` (${e.modelId})` : ""}`] = e.ms;
29364
29364
  return /* @__PURE__ */ B("div", {
29365
29365
  className: "space-y-4",
29366
29366
  children: [
@@ -29379,9 +29379,9 @@ function TE({ trpc: e, nodeId: t, onNodeChange: n }) {
29379
29379
  images: f,
29380
29380
  selectedFilename: m,
29381
29381
  uploadedName: y,
29382
- onSelect: ye,
29382
+ onSelect: ve,
29383
29383
  onUpload: (e, t, n) => {
29384
- _(e), b(t), h(""), ve(n), P(null);
29384
+ _(e), b(t), h(""), _e(n), P(null);
29385
29385
  }
29386
29386
  }),
29387
29387
  j && /* @__PURE__ */ z("div", {
@@ -29394,7 +29394,7 @@ function TE({ trpc: e, nodeId: t, onNodeChange: n }) {
29394
29394
  className: "space-y-2",
29395
29395
  children: [
29396
29396
  /* @__PURE__ */ z("button", {
29397
- onClick: xe,
29397
+ onClick: be,
29398
29398
  disabled: !A && !m && !g,
29399
29399
  className: `w-full px-4 py-2.5 text-sm font-medium rounded-lg transition-colors ${A ? "bg-primary text-primary-foreground animate-pulse" : "bg-primary text-primary-foreground hover:bg-primary/90 disabled:opacity-50"}`,
29400
29400
  children: A ? L.length > 0 ? L[L.length - 1] : "Processing..." : "Run Pipeline"
@@ -29461,7 +29461,7 @@ function TE({ trpc: e, nodeId: t, onNodeChange: n }) {
29461
29461
  children: [
29462
29462
  /* @__PURE__ */ z("button", {
29463
29463
  type: "button",
29464
- onClick: () => Se("live-frame"),
29464
+ onClick: () => xe("live-frame"),
29465
29465
  disabled: U || !m && !g,
29466
29466
  title: "The live per-frame dispatch: one runPipeline per call with plane='frame' — root-plane steps only, crop children skipped (they are served per track via runDetailSubtree). This is the shape a production camera frame takes.",
29467
29467
  className: "px-3 py-2.5 sm:py-1.5 text-sm rounded-md border border-primary/40 bg-primary/10 hover:bg-primary hover:text-primary-foreground disabled:opacity-50 transition-colors",
@@ -29469,7 +29469,7 @@ function TE({ trpc: e, nodeId: t, onNodeChange: n }) {
29469
29469
  }),
29470
29470
  /* @__PURE__ */ z("button", {
29471
29471
  type: "button",
29472
- onClick: () => Se("full-tree"),
29472
+ onClick: () => xe("full-tree"),
29473
29473
  disabled: U || !m && !g,
29474
29474
  title: "One runPipeline per call on the default 'full' plane: root AND crop children together, through sharp encode → IPC → pool. Not the live path — the live path runs the root plane only.",
29475
29475
  className: "px-3 py-2.5 sm:py-1.5 text-sm rounded-md border border-border bg-surface hover:bg-primary/10 disabled:opacity-50 transition-colors",
@@ -29477,7 +29477,7 @@ function TE({ trpc: e, nodeId: t, onNodeChange: n }) {
29477
29477
  }),
29478
29478
  /* @__PURE__ */ z("button", {
29479
29479
  type: "button",
29480
- onClick: () => Se("inference"),
29480
+ onClick: () => xe("inference"),
29481
29481
  disabled: U || !m && !g,
29482
29482
  title: "Pure inference: frame cached in pool once, each call sends only a 5-byte reference. Isolates the model.predict() + batching cost — no IPC, no JPEG encode/decode.",
29483
29483
  className: "px-3 py-2.5 sm:py-1.5 text-sm rounded-md border border-border bg-surface hover:bg-primary/10 disabled:opacity-50 transition-colors",
@@ -29618,21 +29618,21 @@ function TE({ trpc: e, nodeId: t, onNodeChange: n }) {
29618
29618
  }),
29619
29619
  /* @__PURE__ */ z(Ju, {
29620
29620
  src: x,
29621
- imageWidth: Ce,
29622
- imageHeight: we,
29623
- detections: De,
29621
+ imageWidth: Se,
29622
+ imageHeight: Ce,
29623
+ detections: Ee,
29624
29624
  placeholder: "Select an image above"
29625
29625
  }),
29626
- N && De.length > 0 && /* @__PURE__ */ B("div", {
29626
+ N && Ee.length > 0 && /* @__PURE__ */ B("div", {
29627
29627
  className: "text-xs text-foreground-subtle",
29628
29628
  children: [
29629
- De.length,
29629
+ Ee.length,
29630
29630
  " detection",
29631
- De.length === 1 ? "" : "s",
29631
+ Ee.length === 1 ? "" : "s",
29632
29632
  " — ",
29633
- Ce,
29633
+ Se,
29634
29634
  "x",
29635
- we
29635
+ Ce
29636
29636
  ]
29637
29637
  }),
29638
29638
  L.length > 0 && /* @__PURE__ */ z("div", {
@@ -29642,14 +29642,14 @@ function TE({ trpc: e, nodeId: t, onNodeChange: n }) {
29642
29642
  children: [/* @__PURE__ */ z("span", { className: `h-1.5 w-1.5 rounded-full shrink-0 ${t === L.length - 1 ? "bg-primary animate-pulse" : "bg-foreground-subtle/30"}` }), e]
29643
29643
  }, t))
29644
29644
  }),
29645
- Object.keys(Oe).length > 0 && /* @__PURE__ */ z(zw, {
29646
- timings: Oe,
29645
+ Object.keys(De).length > 0 && /* @__PURE__ */ z(zw, {
29646
+ timings: De,
29647
29647
  totalMs: N?.debug?.totalInferenceMs
29648
29648
  }),
29649
29649
  N && /* @__PURE__ */ z(od, {
29650
- detections: Te,
29651
- hiddenKeys: ge,
29652
- onToggleVisibility: K
29650
+ detections: we,
29651
+ hiddenKeys: he,
29652
+ onToggleVisibility: q
29653
29653
  }),
29654
29654
  /* @__PURE__ */ z(Rw, {
29655
29655
  data: N,