@camstack/addon-model-studio 1.1.176 → 1.1.178
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/THIRD_PARTY_MODELS.md +244 -0
- package/dist/{MotionZonesSettings-BnpvJ5xP.mjs → MotionZonesSettings-Cxw4j3rn.mjs} +2 -2
- package/dist/{PrivacyMaskSettings-B7PWwVz7.mjs → PrivacyMaskSettings-zQ-six-W.mjs} +4 -4
- package/dist/{SceneMonitorEditor-DnFT8BoA.mjs → SceneMonitorEditor-CeDqxaTk.mjs} +3 -3
- package/dist/_stub.js +504 -470
- package/dist/{_virtual_mf-localSharedImportMap___mfe_internal__addon_model_studio_page-DyLSvcVV.mjs → _virtual_mf-localSharedImportMap___mfe_internal__addon_model_studio_page--dtMhecm.mjs} +3 -3
- package/dist/_virtual_mf___mfe_internal__addon_model_studio_page__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-B8ssxRgI.mjs +26 -0
- package/dist/{hostInit-Bt1i3ABN.mjs → hostInit-C9TQCtVD.mjs} +2 -2
- package/dist/model-studio.addon.js +550 -29
- package/dist/model-studio.addon.mjs +550 -29
- package/dist/{player-overlays-Dorp8NvG.mjs → player-overlays-D2YtQYEE.mjs} +1 -1
- package/dist/remoteEntry.js +1 -1
- package/dist/{responsive-D5frmtog.mjs → responsive-i8VV1SdO.mjs} +1 -1
- package/dist/{scene-monitor-copy-Czk6VgU1.mjs → scene-monitor-copy-BktPixFQ.mjs} +1 -1
- package/dist/{square-B-8Ri8UR.mjs → square-COwEP7Tf.mjs} +1 -1
- package/dist/{trash-2-C8wBWb92.mjs → trash-2-9RsOz0YH.mjs} +1 -1
- package/dist/{virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_model_studio_page__remoteEntry_js-DnqPAdaL.mjs → virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_model_studio_page__remoteEntry_js-BkBVoxTt.mjs} +1 -1
- package/package.json +3 -2
- package/dist/_virtual_mf___mfe_internal__addon_model_studio_page__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-BIijwyaW.mjs +0 -26
package/dist/_stub.js
CHANGED
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
import "./virtualExposes-CWSi4E_g.mjs";
|
|
2
|
-
import "./virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_model_studio_page__remoteEntry_js-
|
|
2
|
+
import "./virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_model_studio_page__remoteEntry_js-BkBVoxTt.mjs";
|
|
3
3
|
import { _ as e, c as t, d as n, h as r, i, l as a, m as o, p as s, r as c, t as l, u, y as d } from "./_virtual_mf___mfe_internal__addon_model_studio_page__loadShare__react__loadShare__.js-DJDHChgO.mjs";
|
|
4
|
-
import { a as f, i as p, o as m, r as h, s as g } from "./responsive-
|
|
5
|
-
import { d as _, l as v, u as y } from "./scene-monitor-copy-
|
|
6
|
-
import { r as b } from "./player-overlays-
|
|
7
|
-
import { r as x, t as S } from "./square-
|
|
8
|
-
import { t as C } from "./trash-2-
|
|
4
|
+
import { a as f, i as p, o as m, r as h, s as g } from "./responsive-i8VV1SdO.mjs";
|
|
5
|
+
import { d as _, l as v, u as y } from "./scene-monitor-copy-BktPixFQ.mjs";
|
|
6
|
+
import { r as b } from "./player-overlays-D2YtQYEE.mjs";
|
|
7
|
+
import { r as x, t as S } from "./square-COwEP7Tf.mjs";
|
|
8
|
+
import { t as C } from "./trash-2-9RsOz0YH.mjs";
|
|
9
9
|
import { t as w } from "./_virtual_mf___mfe_internal__addon_model_studio_page__loadShare___mf_0_trpc_mf_1_react_mf_2_query__loadShare__.js-BvzT760A.mjs";
|
|
10
10
|
import { n as T, r as E, t as D } from "./_virtual_mf___mfe_internal__addon_model_studio_page__loadShare__react_mf_1_jsx_mf_2_runtime__loadShare__.js-ds_Ehzaa.mjs";
|
|
11
11
|
import "./_virtual_mf___mfe_internal__addon_model_studio_page__loadShare__react_mf_2_dom__loadShare__.js-C8Ar0nzL.mjs";
|
|
12
12
|
import "./_virtual_mf___mfe_internal__addon_model_studio_page__loadShare___mf_0_tanstack_mf_1_react_mf_2_query__loadShare__.js-B-9Pn2K0.mjs";
|
|
13
13
|
import "./_virtual_mf___mfe_internal__addon_model_studio_page__loadShare__react_mf_2_dom_mf_1_client__loadShare__.js-BjUy5evk.mjs";
|
|
14
14
|
import "./_virtual_mf___mfe_internal__addon_model_studio_page__loadShare___mf_0_trpc_mf_1_client__loadShare__.js-nybV3Y4f.mjs";
|
|
15
|
-
import { _ as ee, a as te, b as ne, c as O, d as k, f as A, h as j, i as re, l as M, m as ie, o as ae, p as N, r as P, s as F, t as I, u as oe, v as se, x as ce, y as le } from "./_virtual_mf___mfe_internal__addon_model_studio_page__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-
|
|
15
|
+
import { _ as ee, a as te, b as ne, c as O, d as k, f as A, h as j, i as re, l as M, m as ie, o as ae, p as N, r as P, s as F, t as I, u as oe, v as se, x as ce, y as le } from "./_virtual_mf___mfe_internal__addon_model_studio_page__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-B8ssxRgI.mjs";
|
|
16
16
|
import "./_virtual_mf___mfe_internal__addon_model_studio_page__loadShare___mf_0_camstack_mf_1_sdk__loadShare__.js-CISC_XrP.mjs";
|
|
17
17
|
var ue = g("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",
|
|
@@ -1748,7 +1748,7 @@ function ln() {
|
|
|
1748
1748
|
isError: n
|
|
1749
1749
|
};
|
|
1750
1750
|
}
|
|
1751
|
-
L.accessories.setChildHidden.useMutation, L.accessories.getStatus.useQuery, L.addonPages.listPages.useQuery, L.addons.list.useQuery, L.addons.getLogs.useQuery, L.addons.listPackages.useQuery, L.addons.installPackage.useMutation, L.addons.installFromWorkspace.useMutation, L.addons.isWorkspaceAvailable.useQuery, L.addons.listWorkspacePackages.useQuery, L.addons.uninstallPackage.useMutation, L.addons.reloadPackages.useMutation, L.addons.searchAvailable.useQuery, L.addons.listUpdates.useQuery, L.addons.updatePackage.useMutation, L.addons.rollbackPackage.useMutation, L.addons.forceRefresh.useMutation, L.addons.restartServer.useMutation, L.addons.getLastRestart.useQuery, L.addons.listFrameworkPackages.useQuery, L.addons.listCapabilityProviders.useQuery, L.addons.setCapabilityProviderEnabled.useMutation, L.addons.getVersions.useQuery, L.addons.restartAddon.useMutation, L.addons.retryLoad.useMutation, L.addons.getAutoUpdateSettings.useQuery, L.addons.setAutoUpdateSettings.useMutation, L.addons.getAddonAutoUpdate.useQuery, L.addons.setAddonAutoUpdate.useMutation, L.addons.applyAutoUpdateToAll.useMutation, L.addons.custom.useMutation, L.addons.startJob.useMutation, L.addons.getJob.useQuery, L.addons.listJobs.useQuery, L.addons.cancelJob.useMutation, L.addons.onAddonLogs.useSubscription, L.addonSettings.getGlobalSettings.useQuery, L.addonSettings.updateGlobalSettings.useMutation, L.addonSettings.getIntegrationSettings.useQuery, L.addonSettings.getDeviceSettings.useQuery, L.addonSettings.updateDeviceSettings.useMutation, L.addonWidgets.listWidgets.useQuery, L.airQualitySensor.getStatus.useQuery, L.alarmPanel.arm.useMutation, L.alarmPanel.disarm.useMutation, L.alarmPanel.trigger.useMutation, L.alarmPanel.getStatus.useQuery, L.alerts.emit.useMutation, L.alerts.update.useMutation, L.alerts.list.useQuery, L.alerts.getUnreadCount.useQuery, L.alerts.markRead.useMutation, L.alerts.markAllRead.useMutation, L.alerts.dismiss.useMutation, L.ambientLightSensor.getStatus.useQuery, L.audioAnalysis.resolveDeviceSettings.useQuery, L.audioAnalysis.getDeviceSettingsContribution.useQuery, L.audioAnalysis.getDeviceLiveContribution.useQuery, L.audioAnalysis.applyDeviceSettingsPatch.useMutation, L.audioAnalyzer.analyseChunk.useMutation, L.audioAnalyzer.classify.useQuery, L.audioAnalyzer.attachDevice.useMutation, L.audioAnalyzer.detachDevice.useMutation, L.audioAnalyzer.isReady.useQuery, L.audioAnalyzer.dispose.useMutation, L.audioAnalyzer.reprobeAudioEngine.useMutation, L.audioCodec.listSupportedCodecs.useQuery, L.audioCodec.canHandle.useQuery, L.audioCodec.createDecodeSession.useMutation, L.audioCodec.createEncodeSession.useMutation, L.audioCodec.closeSession.useMutation, L.audioCodec.pushEncodedFrame.useMutation, L.audioCodec.pullPcm.useQuery, L.audioCodec.pushPcm.useMutation, L.audioCodec.pullEncoded.useQuery, L.audioCodec.flushEncode.useMutation, L.audioCodec.listActiveSessions.useQuery, L.audioMetrics.getCurrentSnapshot.useQuery, L.audioMetrics.getHistory.useQuery, L.automationControl.enable.useMutation, L.automationControl.disable.useMutation, L.automationControl.trigger.useMutation, L.automationControl.getStatus.useQuery, L.backup.listDestinations.useQuery, L.backup.trigger.useMutation, L.backup.listRuns.useQuery, L.backup.cancel.useMutation, L.backup.list.useQuery, L.backup.listLocations.useQuery, L.backup.getEntries.useQuery, L.backup.restore.useMutation, L.backup.delete.useMutation, L.backup.listArchives.useQuery, L.backup.upsertDestinationPolicy.useMutation, L.backup.previewSchedule.useQuery, L.backup.listSchedules.useQuery, L.backup.upsertSchedule.useMutation, L.backup.deleteSchedule.useMutation, L.battery.wakeForStream.useMutation, L.battery.getStatus.useQuery, L.binary.getStatus.useQuery, L.brightness.setBrightness.useMutation, L.brightness.getStatus.useQuery, L.broker.list.useQuery, L.broker.get.useQuery, L.broker.listProviders.useQuery, L.broker.add.useMutation, L.broker.remove.useMutation, L.broker.testConnection.useMutation, L.broker.getSettings.useQuery, L.broker.setSettings.useMutation, L.broker.getBrokerConfig.useQuery, L.broker.getSettingsSchema.useQuery, L.broker.testSettings.useMutation, L.broker.publish.useMutation, L.broker.subscribe.useMutation, L.broker.unsubscribe.useMutation, L.broker.getState.useQuery, L.broker.getStatus.useQuery, L.button.press.useMutation, L.cameraCredentials.getCredentials.useQuery, L.cameraCredentials.getStatus.useQuery, L.cameraGridLayout.getLayout.useQuery, L.cameraGridLayout.saveLayout.useMutation, L.cameraGridLayout.getDeviceSettingsContribution.useQuery, L.cameraGridLayout.getDeviceLiveContribution.useQuery, L.cameraGridLayout.applyDeviceSettingsPatch.useMutation, L.cameraPipelineConfig.getDeviceSettingsContribution.useQuery, L.cameraPipelineConfig.getDeviceLiveContribution.useQuery, L.cameraPipelineConfig.applyDeviceSettingsPatch.useMutation, L.cameraStreams.getCameraStreams.useQuery, L.cameraStreams.getBrokerStreams.useQuery, L.cameraStreams.getRtspEntries.useQuery, L.cameraStreams.getProfileRtspEntries.useQuery, L.cameraStreams.pickStream.useQuery, L.carbonMonoxide.getStatus.useQuery, L.climateControl.setMode.useMutation, L.climateControl.setFanMode.useMutation, L.climateControl.setPreset.useMutation, L.climateControl.setTarget.useMutation, L.climateControl.setTargetRange.useMutation, L.climateControl.setTargetHumidity.useMutation, L.climateControl.setSwingVertical.useMutation, L.climateControl.setSwingHorizontal.useMutation, L.climateControl.getStatus.useQuery, L.color.setColor.useMutation, L.color.getStatus.useQuery, L.connectionTest.testSettings.useMutation, L.connectionTest.describeTest.useQuery, L.connectivity.getStatus.useQuery, L.consumables.reset.useMutation, L.consumables.getStatus.useQuery, L.contact.getStatus.useQuery, L.control.setValue.useMutation, L.control.getStatus.useQuery, L.coreBlocks.list.useQuery, L.coreBlocks.get.useQuery, L.coreBlocks.create.useMutation, L.coreBlocks.update.useMutation, L.coreBlocks.delete.useMutation, L.coreBlocks.setEnabled.useMutation, L.coreBlocks.restart.useMutation, L.coreBlocks.compile.useMutation, L.coreBlocks.getTypeDefs.useQuery, L.cover.open.useMutation, L.cover.close.useMutation, L.cover.stop.useMutation, L.cover.setPosition.useMutation, L.cover.setTiltPosition.useMutation, L.cover.getStatus.useQuery, L.dayNight.getOptions.useQuery, L.dayNight.setSettings.useMutation, L.dayNight.getStatus.useQuery, L.decoder.supportsCodec.useQuery, L.decoder.getInfo.useQuery, L.decoder.createSession.useQuery, L.decoder.destroySession.useQuery, L.decoder.pushPacket.useQuery, L.decoder.openStream.useQuery, L.decoder.pullFrames.useQuery, L.decoder.pullHandles.useQuery, L.decoder.getFrame.useQuery, L.decoder.getShmStats.useQuery, L.decoder.updateConfig.useQuery, L.decoder.getStats.useQuery, L.decoder.listActiveSessions.useQuery, L.decoder.reprobeHwaccel.useMutation, L.detectionPipeline.getDeviceSettingsContribution.useQuery, L.detectionPipeline.getDeviceLiveContribution.useQuery, L.detectionPipeline.applyDeviceSettingsPatch.useMutation, L.deviceAdminLink.getAdminLink.useQuery, L.deviceAdoption.listCandidateFilters.useQuery, L.deviceAdoption.listCandidates.useQuery, L.deviceAdoption.getCandidate.useQuery, L.deviceAdoption.refresh.useMutation, L.deviceAdoption.adopt.useMutation, L.deviceAdoption.release.useMutation, L.deviceAdoption.resync.useMutation, L.deviceAdoption.getStatus.useQuery, L.deviceDiscovery.listDiscovered.useQuery, L.deviceDiscovery.refreshDiscovery.useMutation, L.deviceDiscovery.adoptDevice.useMutation, L.deviceDiscovery.releaseDevice.useMutation, L.deviceDiscovery.getStatus.useQuery, L.deviceExport.getStatus.useQuery, L.deviceExport.listSupportedDeviceKinds.useQuery, L.deviceExport.listExposedDevices.useQuery, L.deviceExport.exposeDevice.useMutation, L.deviceExport.unexposeDevice.useMutation, L.deviceExport.getDeviceSettingsContribution.useQuery, L.deviceExport.getDeviceLiveContribution.useQuery, L.deviceExport.applyDeviceSettingsPatch.useMutation, L.deviceExtension.listSources.useQuery, L.deviceExtension.listSlots.useQuery, L.deviceExtension.listCandidates.useQuery, L.deviceExtension.setSlot.useMutation, L.deviceManager.allocateDeviceId.useMutation, L.deviceManager.migrateDevice.useMutation, L.deviceManager.registerDevice.useMutation, L.deviceManager.removeDevice.useMutation, L.deviceManager.persistConfig.useMutation, L.deviceManager.loadConfig.useQuery, L.deviceManager.loadRuntimeState.useQuery, L.deviceManager.loadMeta.useQuery, L.deviceManager.setName.useMutation, L.deviceManager.setLocation.useMutation, L.deviceManager.setType.useMutation, L.deviceManager.setIntegrationId.useMutation, L.deviceManager.setLinkDeviceId.useMutation, L.deviceManager.setPrimaryChildEntityId.useMutation, L.deviceManager.setChildLayout.useMutation, L.deviceManager.setDisplay.useMutation;
|
|
1751
|
+
L.accessories.setChildHidden.useMutation, L.accessories.getStatus.useQuery, L.addonPages.listPages.useQuery, L.addons.list.useQuery, L.addons.getLogs.useQuery, L.addons.listPackages.useQuery, L.addons.installPackage.useMutation, L.addons.installFromWorkspace.useMutation, L.addons.isWorkspaceAvailable.useQuery, L.addons.listWorkspacePackages.useQuery, L.addons.uninstallPackage.useMutation, L.addons.reloadPackages.useMutation, L.addons.searchAvailable.useQuery, L.addons.listUpdates.useQuery, L.addons.updatePackage.useMutation, L.addons.rollbackPackage.useMutation, L.addons.forceRefresh.useMutation, L.addons.restartServer.useMutation, L.addons.getLastRestart.useQuery, L.addons.listFrameworkPackages.useQuery, L.addons.listCapabilityProviders.useQuery, L.addons.setCapabilityProviderEnabled.useMutation, L.addons.getVersions.useQuery, L.addons.restartAddon.useMutation, L.addons.retryLoad.useMutation, L.addons.getAutoUpdateSettings.useQuery, L.addons.setAutoUpdateSettings.useMutation, L.addons.getAddonAutoUpdate.useQuery, L.addons.setAddonAutoUpdate.useMutation, L.addons.applyAutoUpdateToAll.useMutation, L.addons.custom.useMutation, L.addons.startJob.useMutation, L.addons.getJob.useQuery, L.addons.listJobs.useQuery, L.addons.cancelJob.useMutation, L.addons.onAddonLogs.useSubscription, L.addonSettings.getGlobalSettings.useQuery, L.addonSettings.updateGlobalSettings.useMutation, L.addonSettings.getIntegrationSettings.useQuery, L.addonSettings.getDeviceSettings.useQuery, L.addonSettings.updateDeviceSettings.useMutation, L.addonWidgets.listWidgets.useQuery, L.airQualitySensor.getStatus.useQuery, L.alarmPanel.arm.useMutation, L.alarmPanel.disarm.useMutation, L.alarmPanel.trigger.useMutation, L.alarmPanel.getStatus.useQuery, L.alerts.emit.useMutation, L.alerts.update.useMutation, L.alerts.list.useQuery, L.alerts.getUnreadCount.useQuery, L.alerts.markRead.useMutation, L.alerts.markAllRead.useMutation, L.alerts.dismiss.useMutation, L.ambientLightSensor.getStatus.useQuery, L.audioAnalysis.resolveDeviceSettings.useQuery, L.audioAnalysis.getDeviceSettingsContribution.useQuery, L.audioAnalysis.getDeviceLiveContribution.useQuery, L.audioAnalysis.applyDeviceSettingsPatch.useMutation, L.audioAnalyzer.analyseChunk.useMutation, L.audioAnalyzer.classify.useQuery, L.audioAnalyzer.attachDevice.useMutation, L.audioAnalyzer.detachDevice.useMutation, L.audioAnalyzer.isReady.useQuery, L.audioAnalyzer.dispose.useMutation, L.audioAnalyzer.reprobeAudioEngine.useMutation, L.audioCodec.listSupportedCodecs.useQuery, L.audioCodec.canHandle.useQuery, L.audioCodec.createDecodeSession.useMutation, L.audioCodec.createEncodeSession.useMutation, L.audioCodec.closeSession.useMutation, L.audioCodec.pushEncodedFrame.useMutation, L.audioCodec.pullPcm.useQuery, L.audioCodec.pushPcm.useMutation, L.audioCodec.pullEncoded.useQuery, L.audioCodec.flushEncode.useMutation, L.audioCodec.listActiveSessions.useQuery, L.audioMetrics.getCurrentSnapshot.useQuery, L.audioMetrics.getHistory.useQuery, L.automationControl.enable.useMutation, L.automationControl.disable.useMutation, L.automationControl.trigger.useMutation, L.automationControl.getStatus.useQuery, L.backup.listDestinations.useQuery, L.backup.trigger.useMutation, L.backup.listRuns.useQuery, L.backup.cancel.useMutation, L.backup.list.useQuery, L.backup.listLocations.useQuery, L.backup.getEntries.useQuery, L.backup.restore.useMutation, L.backup.delete.useMutation, L.backup.listArchives.useQuery, L.backup.upsertDestinationPolicy.useMutation, L.backup.previewSchedule.useQuery, L.backup.listSchedules.useQuery, L.backup.upsertSchedule.useMutation, L.backup.deleteSchedule.useMutation, L.battery.wakeForStream.useMutation, L.battery.getStatus.useQuery, L.binary.getStatus.useQuery, L.brightness.setBrightness.useMutation, L.brightness.getStatus.useQuery, L.broker.list.useQuery, L.broker.get.useQuery, L.broker.listProviders.useQuery, L.broker.add.useMutation, L.broker.remove.useMutation, L.broker.testConnection.useMutation, L.broker.getSettings.useQuery, L.broker.setSettings.useMutation, L.broker.getBrokerConfig.useQuery, L.broker.getSettingsSchema.useQuery, L.broker.testSettings.useMutation, L.broker.publish.useMutation, L.broker.subscribe.useMutation, L.broker.unsubscribe.useMutation, L.broker.getState.useQuery, L.broker.getStatus.useQuery, L.button.press.useMutation, L.cameraCredentials.getCredentials.useQuery, L.cameraCredentials.getStatus.useQuery, L.cameraGridLayout.getLayout.useQuery, L.cameraGridLayout.saveLayout.useMutation, L.cameraGridLayout.getDeviceSettingsContribution.useQuery, L.cameraGridLayout.getDeviceLiveContribution.useQuery, L.cameraGridLayout.applyDeviceSettingsPatch.useMutation, L.cameraPipelineConfig.getDeviceSettingsContribution.useQuery, L.cameraPipelineConfig.getDeviceLiveContribution.useQuery, L.cameraPipelineConfig.applyDeviceSettingsPatch.useMutation, L.cameraStreams.getCameraStreams.useQuery, L.cameraStreams.getBrokerStreams.useQuery, L.cameraStreams.getRtspEntries.useQuery, L.cameraStreams.getProfileRtspEntries.useQuery, L.cameraStreams.pickStream.useQuery, L.carbonMonoxide.getStatus.useQuery, L.climateControl.setMode.useMutation, L.climateControl.setFanMode.useMutation, L.climateControl.setPreset.useMutation, L.climateControl.setTarget.useMutation, L.climateControl.setTargetRange.useMutation, L.climateControl.setTargetHumidity.useMutation, L.climateControl.setSwingVertical.useMutation, L.climateControl.setSwingHorizontal.useMutation, L.climateControl.getStatus.useQuery, L.color.setColor.useMutation, L.color.getStatus.useQuery, L.connectionTest.testSettings.useMutation, L.connectionTest.describeTest.useQuery, L.connectivity.getStatus.useQuery, L.consumables.reset.useMutation, L.consumables.getStatus.useQuery, L.contact.getStatus.useQuery, L.control.setValue.useMutation, L.control.getStatus.useQuery, L.coreBlocks.list.useQuery, L.coreBlocks.get.useQuery, L.coreBlocks.create.useMutation, L.coreBlocks.update.useMutation, L.coreBlocks.delete.useMutation, L.coreBlocks.setEnabled.useMutation, L.coreBlocks.restart.useMutation, L.coreBlocks.compile.useMutation, L.coreBlocks.getTypeDefs.useQuery, L.coreBlocks.createComposition.useMutation, L.coreBlocks.updateComposition.useMutation, L.coreBlocks.getComposition.useQuery, L.coreBlocks.listCompositions.useQuery, L.coreBlocks.validateComposition.useMutation, L.cover.open.useMutation, L.cover.close.useMutation, L.cover.stop.useMutation, L.cover.setPosition.useMutation, L.cover.setTiltPosition.useMutation, L.cover.getStatus.useQuery, L.dayNight.getOptions.useQuery, L.dayNight.setSettings.useMutation, L.dayNight.getStatus.useQuery, L.decoder.supportsCodec.useQuery, L.decoder.getInfo.useQuery, L.decoder.createSession.useQuery, L.decoder.destroySession.useQuery, L.decoder.pushPacket.useQuery, L.decoder.openStream.useQuery, L.decoder.pullFrames.useQuery, L.decoder.pullHandles.useQuery, L.decoder.getFrame.useQuery, L.decoder.getShmStats.useQuery, L.decoder.updateConfig.useQuery, L.decoder.getStats.useQuery, L.decoder.listActiveSessions.useQuery, L.decoder.reprobeHwaccel.useMutation, L.detectionPipeline.getDeviceSettingsContribution.useQuery, L.detectionPipeline.getDeviceLiveContribution.useQuery, L.detectionPipeline.applyDeviceSettingsPatch.useMutation, L.deviceAdminLink.getAdminLink.useQuery, L.deviceAdoption.listCandidateFilters.useQuery, L.deviceAdoption.listCandidates.useQuery, L.deviceAdoption.getCandidate.useQuery, L.deviceAdoption.refresh.useMutation, L.deviceAdoption.adopt.useMutation, L.deviceAdoption.release.useMutation, L.deviceAdoption.resync.useMutation, L.deviceAdoption.getStatus.useQuery, L.deviceDiscovery.listDiscovered.useQuery, L.deviceDiscovery.refreshDiscovery.useMutation, L.deviceDiscovery.adoptDevice.useMutation, L.deviceDiscovery.releaseDevice.useMutation, L.deviceDiscovery.getStatus.useQuery, L.deviceExport.getStatus.useQuery, L.deviceExport.listSupportedDeviceKinds.useQuery, L.deviceExport.listExposedDevices.useQuery, L.deviceExport.exposeDevice.useMutation, L.deviceExport.unexposeDevice.useMutation, L.deviceExport.getDeviceSettingsContribution.useQuery, L.deviceExport.getDeviceLiveContribution.useQuery, L.deviceExport.applyDeviceSettingsPatch.useMutation, L.deviceExtension.listSources.useQuery, L.deviceExtension.listSlots.useQuery, L.deviceExtension.listCandidates.useQuery, L.deviceExtension.setSlot.useMutation, L.deviceManager.allocateDeviceId.useMutation, L.deviceManager.migrateDevice.useMutation, L.deviceManager.registerDevice.useMutation, L.deviceManager.removeDevice.useMutation, L.deviceManager.persistConfig.useMutation, L.deviceManager.loadConfig.useQuery, L.deviceManager.loadRuntimeState.useQuery, L.deviceManager.loadMeta.useQuery, L.deviceManager.setName.useMutation, L.deviceManager.setLocation.useMutation, L.deviceManager.setType.useMutation, L.deviceManager.setIntegrationId.useMutation, L.deviceManager.setLinkDeviceId.useMutation, L.deviceManager.setPrimaryChildEntityId.useMutation, L.deviceManager.setChildLayout.useMutation, L.deviceManager.setDisplay.useMutation;
|
|
1752
1752
|
var un = L.deviceManager.getRoleDisplayDefaults.useQuery;
|
|
1753
1753
|
L.deviceManager.setRoleDisplayDefaults.useMutation, L.deviceManager.getWireableFields.useQuery, L.deviceManager.setRole.useMutation, L.deviceManager.applyInitialMeta.useMutation, L.deviceManager.setMetadata.useMutation, L.deviceManager.listLocations.useQuery, L.deviceManager.addLocation.useMutation, L.deviceManager.removeLocation.useMutation, L.deviceManager.renameLocation.useMutation, L.deviceManager.listLocationIcons.useQuery, L.deviceManager.setLocationIcon.useMutation, L.deviceManager.listLocationDescriptions.useQuery, L.deviceManager.setLocationDescription.useMutation, L.deviceManager.listSiteZones.useQuery, L.deviceManager.setSiteZone.useMutation, L.deviceManager.removeSiteZone.useMutation, L.deviceManager.renameSiteZone.useMutation, L.deviceManager.setLocationZone.useMutation, L.deviceManager.setDisabled.useMutation, L.deviceManager.listPersistedByAddon.useQuery, L.deviceManager.listAll.useQuery;
|
|
1754
1754
|
var dn = L.deviceManager.getDevice.useQuery;
|
|
@@ -3646,7 +3646,7 @@ Yr.displayName = "Badge", d(), d(), d(), d(), d(), d(), d(), d(), d(), d(), m("c
|
|
|
3646
3646
|
mode: "live",
|
|
3647
3647
|
positionMs: null,
|
|
3648
3648
|
send: () => !1
|
|
3649
|
-
}), d(), d(), d(), d(), d(), d(), i(() => import("./MotionZonesSettings-
|
|
3649
|
+
}), d(), d(), d(), d(), d(), d(), i(() => import("./MotionZonesSettings-Cxw4j3rn.mjs").then((e) => ({ default: e.MotionZonesSettings }))), i(() => import("./PrivacyMaskSettings-zQ-six-W.mjs").then((e) => ({ default: e.PrivacyMaskSettings }))), d(), d();
|
|
3650
3650
|
var Xr = Object.defineProperty, Zr = Object.getOwnPropertySymbols, Qr = Object.prototype.hasOwnProperty, $r = Object.prototype.propertyIsEnumerable, ei = (e, t, n) => t in e ? Xr(e, t, {
|
|
3651
3651
|
enumerable: !0,
|
|
3652
3652
|
configurable: !0,
|
|
@@ -5337,7 +5337,7 @@ var Qa = Object.freeze([...new Set(Object.values(j))].toSorted()), $a = Object.f
|
|
|
5337
5337
|
]), eo = new Set($a);
|
|
5338
5338
|
//#endregion
|
|
5339
5339
|
//#region ../ui-library/src/composites/device-controls/atoms.tsx
|
|
5340
|
-
Object.freeze(Qa.filter((e) => !eo.has(e))), d(), Object.freeze([...new Set(
|
|
5340
|
+
Object.freeze(Qa.filter((e) => !eo.has(e))), d(), Object.freeze([...new Set(O.filter((e) => e.scope === "device").map((e) => e.name))].toSorted()), d(), d();
|
|
5341
5341
|
function to({ value: e, unit: t, onDelta: n }) {
|
|
5342
5342
|
return /* @__PURE__ */ E("div", {
|
|
5343
5343
|
className: "flex h-8 w-full overflow-hidden rounded-lg border border-border bg-surface",
|
|
@@ -12353,7 +12353,7 @@ var $u = {
|
|
|
12353
12353
|
HeroCard: bs
|
|
12354
12354
|
}
|
|
12355
12355
|
};
|
|
12356
|
-
Object.fromEntries(Object.values(N).map((e) => [e, $u[
|
|
12356
|
+
Object.fromEntries(Object.values(N).map((e) => [e, $u[oe[e]]])), N.Cover, N.Valve, N.Thermostat, N.Climate, N.Control, N.Button, N.MediaPlayer, N.AlarmPanel, N.Lock, N.Vacuum, N.LawnMower, N.Humidifier, N.Switch, N.Siren, N.Light, N.Fan, N.WaterHeater, N.Sensor, N.Presence, N.EventEmitter, N.Notifier, N.Script, N.Automation, N.Camera, N.Hub, N.Update, N.Generic, N.Weather, N.Container, N.Image, N.PetFeeder, new Set(Object.values(N));
|
|
12357
12357
|
//#endregion
|
|
12358
12358
|
//#region ../ui-library/src/lib/format-last-seen.ts
|
|
12359
12359
|
var ed = 1e3;
|
|
@@ -16012,48 +16012,78 @@ var q_ = class {
|
|
|
16012
16012
|
} catch {}
|
|
16013
16013
|
}
|
|
16014
16014
|
};
|
|
16015
|
-
d(), new q_(), d(), d(), d(), i(() => import("./MaskShapeCanvas-C4g96eMz.mjs").then((e) => ({ default: e.MaskShapeCanvas }))), i(() => import("./MotionZonesSettings-
|
|
16015
|
+
d(), new q_(), d(), d(), d(), i(() => import("./MaskShapeCanvas-C4g96eMz.mjs").then((e) => ({ default: e.MaskShapeCanvas }))), i(() => import("./MotionZonesSettings-Cxw4j3rn.mjs").then((e) => ({ default: e.MotionZonesSettings }))), i(() => import("./SceneMonitorEditor-CeDqxaTk.mjs").then((e) => ({ default: e.SceneMonitorEditor }))), i(() => import("./PrivacyMaskSettings-zQ-six-W.mjs").then((e) => ({ default: e.PrivacyMaskSettings })));
|
|
16016
16016
|
//#endregion
|
|
16017
16017
|
//#region src/scrypted/scrypted-yolo-manifest-data.json
|
|
16018
|
-
var J_ = /*#__PURE__*/ JSON.parse("[{\"id\":\"scrypted-yolov9t-relu-coreml\",\"label\":\"Scrypted YOLOv9T ReLU CoreML\",\"family\":\"yolov9t\",\"variant\":\"relu\",\"format\":\"coreml\",\"precision\":\"fp16\",\"files\":[{\"relativePath\":\"coreml/scrypted_yolov9t_relu/scrypted_yolov9t_relu.mlpackage/Manifest.json\",\"size\":617,\"sha256\":\"0a8733949d77e3204dba6418e81a11a8cc177015711457ce2c171266f23382d6\"},{\"relativePath\":\"coreml/scrypted_yolov9t_relu/scrypted_yolov9t_relu.mlpackage/Data/com.apple.CoreML/model.mlmodel\",\"size\":322229,\"sha256\":\"f5a62f196f1e72a84efa1637119dffb6501621af9cf6f867bc76b4b59c9242a0\"},{\"relativePath\":\"coreml/scrypted_yolov9t_relu/scrypted_yolov9t_relu.mlpackage/Data/com.apple.CoreML/weights/weight.bin\",\"size\":3797160,\"sha256\":\"b994419b8b68cfd6b89c3c6f3fe6b37458c86cc1d87fcca3df5034476a99dd38\"}],\"sizeMB\":4.12},{\"id\":\"scrypted-yolov9t-relu-onnx\",\"label\":\"Scrypted YOLOv9T ReLU ONNX\",\"family\":\"yolov9t\",\"variant\":\"relu\",\"format\":\"onnx\",\"precision\":\"fp32\",\"files\":[{\"relativePath\":\"onnx/scrypted_yolov9t_relu/scrypted_yolov9t_relu.onnx\",\"size\":8499266,\"sha256\":\"3f11ea2071b27c285b58c16636a44d6a0a27bdd1ca8b64112dfadabd39cfea47\"}],\"sizeMB\":8.5},{\"id\":\"scrypted-yolov9t-relu-test-coreml\",\"label\":\"Scrypted YOLOv9T ReLU test CoreML\",\"family\":\"yolov9t\",\"variant\":\"relu_test\",\"format\":\"coreml\",\"precision\":\"fp16\",\"files\":[{\"relativePath\":\"coreml/scrypted_yolov9t_relu_test/scrypted_yolov9t_relu_test.mlpackage/Manifest.json\",\"size\":617,\"sha256\":\"a5e0128b643f1a66f3e07d4b332f9ccbca97ccab75651c794f0b9f1fb41c8491\"},{\"relativePath\":\"coreml/scrypted_yolov9t_relu_test/scrypted_yolov9t_relu_test.mlpackage/Data/com.apple.CoreML/model.mlmodel\",\"size\":322229,\"sha256\":\"79f4f647f2a0c79db3b560c84251b48c7ba7cbe9c1fecc9674d1a603a389dfa3\"},{\"relativePath\":\"coreml/scrypted_yolov9t_relu_test/scrypted_yolov9t_relu_test.mlpackage/Data/com.apple.CoreML/weights/weight.bin\",\"size\":3797160,\"sha256\":\"72efc9dc6af9241b5e5ee7de24a4f55741f6425d0e279d797f0f223e3d355f84\"}],\"sizeMB\":4.12},{\"id\":\"scrypted-yolov9t-relu-test-onnx\",\"label\":\"Scrypted YOLOv9T ReLU test ONNX\",\"family\":\"yolov9t\",\"variant\":\"relu_test\",\"format\":\"onnx\",\"precision\":\"fp32\",\"files\":[{\"relativePath\":\"onnx/scrypted_yolov9t_relu_test/scrypted_yolov9t_relu_test.onnx\",\"size\":8499266,\"sha256\":\"d20aa0e6923a3af7f5e84e3a6d28fb00e8ecd592e3225f986f93bd34b634e2f8\"}],\"sizeMB\":8.5},{\"id\":\"scrypted-yolov9s-relu-coreml\",\"label\":\"Scrypted YOLOv9S ReLU CoreML\",\"family\":\"yolov9s\",\"variant\":\"relu\",\"format\":\"coreml\",\"precision\":\"fp16\",\"files\":[{\"relativePath\":\"coreml/scrypted_yolov9s_relu/scrypted_yolov9s_relu.mlpackage/Manifest.json\",\"size\":617,\"sha256\":\"3bcdb820b82f1e89266f2d11bae1604d3ee4ca6d11dc5bd5c57055ff4157e9f3\"},{\"relativePath\":\"coreml/scrypted_yolov9s_relu/scrypted_yolov9s_relu.mlpackage/Data/com.apple.CoreML/model.mlmodel\",\"size\":322664,\"sha256\":\"9a9c3c9cbca406ec2f0418ec867ed6b878ec6d02c16636d30e0bbd83d2ff7c40\"},{\"relativePath\":\"coreml/scrypted_yolov9s_relu/scrypted_yolov9s_relu.mlpackage/Data/com.apple.CoreML/weights/weight.bin\",\"size\":14190120,\"sha256\":\"fd51eda58a993997268f6a2e424b536ba173207ad7974ab8bee2a8ff76d52dab\"}],\"sizeMB\":14.51},{\"id\":\"scrypted-yolov9s-relu-onnx\",\"label\":\"Scrypted YOLOv9S ReLU ONNX\",\"family\":\"yolov9s\",\"variant\":\"relu\",\"format\":\"onnx\",\"precision\":\"fp32\",\"files\":[{\"relativePath\":\"onnx/scrypted_yolov9s_relu/scrypted_yolov9s_relu.onnx\",\"size\":29287339,\"sha256\":\"ca0b5bd98d5f59eb2029c6cb5129d53af59873f62a317a028beda463bbb96399\"}],\"sizeMB\":29.29},{\"id\":\"scrypted-yolov9s-relu-test-coreml\",\"label\":\"Scrypted YOLOv9S ReLU test CoreML\",\"family\":\"yolov9s\",\"variant\":\"relu_test\",\"format\":\"coreml\",\"precision\":\"fp16\",\"files\":[{\"relativePath\":\"coreml/scrypted_yolov9s_relu_test/scrypted_yolov9s_relu_test.mlpackage/Manifest.json\",\"size\":617,\"sha256\":\"e2d24de0ce7e8573f19572029765e55abc714f36a85175ad7fcb95c001a76653\"},{\"relativePath\":\"coreml/scrypted_yolov9s_relu_test/scrypted_yolov9s_relu_test.mlpackage/Data/com.apple.CoreML/model.mlmodel\",\"size\":322664,\"sha256\":\"186b147cdfd15c5ed7a381ec3a426a22cee0b5c52d56f14efd26da06357f5cb0\"},{\"relativePath\":\"coreml/scrypted_yolov9s_relu_test/scrypted_yolov9s_relu_test.mlpackage/Data/com.apple.CoreML/weights/weight.bin\",\"size\":14190120,\"sha256\":\"e50651924c2cbffd56008a8953569e66c3de69f21807fcf7d825390ce30f21f8\"}],\"sizeMB\":14.51},{\"id\":\"scrypted-yolov9s-relu-test-onnx\",\"label\":\"Scrypted YOLOv9S ReLU test ONNX\",\"family\":\"yolov9s\",\"variant\":\"relu_test\",\"format\":\"onnx\",\"precision\":\"fp32\",\"files\":[{\"relativePath\":\"onnx/scrypted_yolov9s_relu_test/scrypted_yolov9s_relu_test.onnx\",\"size\":29287339,\"sha256\":\"115ddb83333762a0f2599421335678696454a5c3571ade5df9bac8e9cb5fb4cf\"}],\"sizeMB\":29.29},{\"id\":\"scrypted-yolov9m-relu-coreml\",\"label\":\"Scrypted YOLOv9M ReLU CoreML\",\"family\":\"yolov9m\",\"variant\":\"relu\",\"format\":\"coreml\",\"precision\":\"fp16\",\"files\":[{\"relativePath\":\"coreml/scrypted_yolov9m_relu/scrypted_yolov9m_relu.mlpackage/Manifest.json\",\"size\":617,\"sha256\":\"c548c6e1ff768b2b01bd71e230aa712a1635ae2baa30e0369557a42fc531ecbf\"},{\"relativePath\":\"coreml/scrypted_yolov9m_relu/scrypted_yolov9m_relu.mlpackage/Data/com.apple.CoreML/model.mlmodel\",\"size\":247061,\"sha256\":\"1c40e02fc2a2559cb906ea6cd9da9c730d4a78f5019290cbb38d2fcaae379fe7\"},{\"relativePath\":\"coreml/scrypted_yolov9m_relu/scrypted_yolov9m_relu.mlpackage/Data/com.apple.CoreML/weights/weight.bin\",\"size\":39880616,\"sha256\":\"4cf938e5bfcc3ee1644813e4eb4702a7de450cc0581df94c719cf43d0ed2e408\"}],\"sizeMB\":40.13},{\"id\":\"scrypted-yolov9m-relu-onnx\",\"label\":\"Scrypted YOLOv9M ReLU ONNX\",\"family\":\"yolov9m\",\"variant\":\"relu\",\"format\":\"onnx\",\"precision\":\"fp32\",\"files\":[{\"relativePath\":\"onnx/scrypted_yolov9m_relu/scrypted_yolov9m_relu.onnx\",\"size\":80380404,\"sha256\":\"e7a81fb33224a0105d2a0a594c3fa43c398c361de623f1d14156ae826e7312d5\"}],\"sizeMB\":80.38},{\"id\":\"scrypted-yolov9m-relu-test-coreml\",\"label\":\"Scrypted YOLOv9M ReLU test CoreML\",\"family\":\"yolov9m\",\"variant\":\"relu_test\",\"format\":\"coreml\",\"precision\":\"fp16\",\"files\":[{\"relativePath\":\"coreml/scrypted_yolov9m_relu_test/scrypted_yolov9m_relu_test.mlpackage/Manifest.json\",\"size\":617,\"sha256\":\"8e2684b286d02b4bdf9db1027c84cb89bf8e4830cfb58269f3ec457c5a010650\"},{\"relativePath\":\"coreml/scrypted_yolov9m_relu_test/scrypted_yolov9m_relu_test.mlpackage/Data/com.apple.CoreML/model.mlmodel\",\"size\":247061,\"sha256\":\"53d5946e74b13b15c5f8616081c9f15e8a95a5df3d5b45b830fc5a7f49561c16\"},{\"relativePath\":\"coreml/scrypted_yolov9m_relu_test/scrypted_yolov9m_relu_test.mlpackage/Data/com.apple.CoreML/weights/weight.bin\",\"size\":39880616,\"sha256\":\"69774bf0032c37707601b8cdc1e1820dbd9f8288eb5d6f3879618a5d34ff5199\"}],\"sizeMB\":40.13},{\"id\":\"scrypted-yolov9m-relu-test-onnx\",\"label\":\"Scrypted YOLOv9M ReLU test ONNX\",\"family\":\"yolov9m\",\"variant\":\"relu_test\",\"format\":\"onnx\",\"precision\":\"fp32\",\"files\":[{\"relativePath\":\"onnx/scrypted_yolov9m_relu_test/scrypted_yolov9m_relu_test.onnx\",\"size\":80380404,\"sha256\":\"8bb054f099295909ec518e2a6598d63db24d3f90edc8105a0f016903f2a205a2\"}],\"sizeMB\":80.38},{\"id\":\"scrypted-yolov9c-relu-coreml\",\"label\":\"Scrypted YOLOv9C ReLU CoreML\",\"family\":\"yolov9c\",\"variant\":\"relu\",\"format\":\"coreml\",\"precision\":\"fp16\",\"files\":[{\"relativePath\":\"coreml/scrypted_yolov9c_relu/scrypted_yolov9c_relu.mlpackage/Manifest.json\",\"size\":617,\"sha256\":\"813a306ebd69cabfd31f00434f5a961feeca7d237833f3e11805dcf4ad120ba9\"},{\"relativePath\":\"coreml/scrypted_yolov9c_relu/scrypted_yolov9c_relu.mlpackage/Data/com.apple.CoreML/model.mlmodel\",\"size\":263210,\"sha256\":\"862f082619075e470738306b0ff0a37ae70a7d08e684ca6a6dfa1971d404e0c3\"},{\"relativePath\":\"coreml/scrypted_yolov9c_relu/scrypted_yolov9c_relu.mlpackage/Data/com.apple.CoreML/weights/weight.bin\",\"size\":50489960,\"sha256\":\"ed89747e58943758e2a87221d1d404f6a4466cbc039c3c6f96e327cadc403d27\"}],\"sizeMB\":50.75},{\"id\":\"scrypted-yolov9c-relu-onnx\",\"label\":\"Scrypted YOLOv9C ReLU ONNX\",\"family\":\"yolov9c\",\"variant\":\"relu\",\"format\":\"onnx\",\"precision\":\"fp32\",\"files\":[{\"relativePath\":\"onnx/scrypted_yolov9c_relu/scrypted_yolov9c_relu.onnx\",\"size\":101631962,\"sha256\":\"b9372c4428daf4cd944c114b1e80d1a9ff0487d743e53a77216a051cfbef7116\"}],\"sizeMB\":101.63},{\"id\":\"scrypted-yolov9c-relu-test-coreml\",\"label\":\"Scrypted YOLOv9C ReLU test CoreML\",\"family\":\"yolov9c\",\"variant\":\"relu_test\",\"format\":\"coreml\",\"precision\":\"fp16\",\"files\":[{\"relativePath\":\"coreml/scrypted_yolov9c_relu_test/scrypted_yolov9c_relu_test.mlpackage/Manifest.json\",\"size\":617,\"sha256\":\"966ef82a93cb0ccf1036a8c9729c065fd372fa9590a97d0945e581cc674f7ad2\"},{\"relativePath\":\"coreml/scrypted_yolov9c_relu_test/scrypted_yolov9c_relu_test.mlpackage/Data/com.apple.CoreML/model.mlmodel\",\"size\":263210,\"sha256\":\"08718ecd3e9552d21a702bd8df60911cad0eec7b2ae382466809550f14634711\"},{\"relativePath\":\"coreml/scrypted_yolov9c_relu_test/scrypted_yolov9c_relu_test.mlpackage/Data/com.apple.CoreML/weights/weight.bin\",\"size\":50489960,\"sha256\":\"fe5936b9430ab4c87f30b148220131d6ec998b2377223d033e2fa2a00e60aada\"}],\"sizeMB\":50.75},{\"id\":\"scrypted-yolov9c-relu-test-onnx\",\"label\":\"Scrypted YOLOv9C ReLU test ONNX\",\"family\":\"yolov9c\",\"variant\":\"relu_test\",\"format\":\"onnx\",\"precision\":\"fp32\",\"files\":[{\"relativePath\":\"onnx/scrypted_yolov9c_relu_test/scrypted_yolov9c_relu_test.onnx\",\"size\":101631962,\"sha256\":\"2f4e2031e8efb4cbc871594338b2e875d78ab4af3ee0258d253273b1aac84742\"}],\"sizeMB\":101.63},{\"id\":\"scrypted-yolov9t-relu-openvino-fp32\",\"label\":\"Scrypted YOLOv9T ReLU OpenVINO FP32\",\"family\":\"yolov9t\",\"variant\":\"relu\",\"format\":\"openvino\",\"precision\":\"fp32\",\"files\":[{\"relativePath\":\"openvino/scrypted_yolov9t_relu/best-converted.xml\",\"size\":628222,\"sha256\":\"01b5a9d02a0f281e1aaf4860e1b0ed3a7f16b9d78975be8ff985ae0ee283d877\"},{\"relativePath\":\"openvino/scrypted_yolov9t_relu/best-converted.bin\",\"size\":7542204,\"sha256\":\"4fe9ce8dbdf94514fdd450cbfc907f257153e4898a0c1489a44e4912d8e32cc7\"}],\"sizeMB\":8.17},{\"id\":\"scrypted-yolov9s-relu-openvino-fp32\",\"label\":\"Scrypted YOLOv9S ReLU OpenVINO FP32\",\"family\":\"yolov9s\",\"variant\":\"relu\",\"format\":\"openvino\",\"precision\":\"fp32\",\"files\":[{\"relativePath\":\"openvino/scrypted_yolov9s_relu/best-converted.xml\",\"size\":629249,\"sha256\":\"5b4a229bf7229425698b63bd065a403e440a6151a6ddff0034867659cc4a480d\"},{\"relativePath\":\"openvino/scrypted_yolov9s_relu/best-converted.bin\",\"size\":28329724,\"sha256\":\"c030bd219208ea94082578c81f383d4ef9ec45d7150eec1c2c2ff2569cf49b35\"}],\"sizeMB\":28.96},{\"id\":\"scrypted-yolov9m-relu-openvino-fp32\",\"label\":\"Scrypted YOLOv9M ReLU OpenVINO FP32\",\"family\":\"yolov9m\",\"variant\":\"relu\",\"format\":\"openvino\",\"precision\":\"fp32\",\"files\":[{\"relativePath\":\"openvino/scrypted_yolov9m_relu/best-converted.xml\",\"size\":485439,\"sha256\":\"c66f9f1965bf70fd3635d4dfc3cb94c72c06b344c256713237d77706725b9a0c\"},{\"relativePath\":\"openvino/scrypted_yolov9m_relu/best-converted.bin\",\"size\":79717372,\"sha256\":\"dfc2d8952bbca9ad0e116168e3fd5c754e601c327d78c4f4d0d4cae12f0e1d2a\"}],\"sizeMB\":80.2},{\"id\":\"scrypted-yolov9c-relu-openvino-fp32\",\"label\":\"Scrypted YOLOv9C ReLU OpenVINO FP32\",\"family\":\"yolov9c\",\"variant\":\"relu\",\"format\":\"openvino\",\"precision\":\"fp32\",\"files\":[{\"relativePath\":\"openvino/scrypted_yolov9c_relu/best-converted.xml\",\"size\":535047,\"sha256\":\"836c1e998ebf76108ff64d554fdfa07aa72c42624f1a5448701bb409f27b8d68\"},{\"relativePath\":\"openvino/scrypted_yolov9c_relu/best-converted.bin\",\"size\":100942972,\"sha256\":\"11a1b330ac9843b349927977b3c7c7f17bb42af73a7ff102969132f27ab81814\"}],\"sizeMB\":101.48},{\"id\":\"scrypted-yolov9t-relu-openvino-int8\",\"label\":\"Scrypted YOLOv9T ReLU OpenVINO INT8\",\"family\":\"yolov9t\",\"variant\":\"relu\",\"format\":\"openvino\",\"precision\":\"int8\",\"files\":[{\"relativePath\":\"openvino/scrypted_yolov9t_relu_int8/best-converted.xml\",\"size\":1380379,\"sha256\":\"e5a76bf88ac69fc0ebc50c04b61ff91550dd9c2349af1f6d7e4cac949c640cec\"},{\"relativePath\":\"openvino/scrypted_yolov9t_relu_int8/best-converted.bin\",\"size\":1954956,\"sha256\":\"98fb5b6826d7c6697a585f69ba96754873772d9d61fbed8335aab761e8248659\"}],\"sizeMB\":3.34},{\"id\":\"scrypted-yolov9t-relu-test-openvino-int8\",\"label\":\"Scrypted YOLOv9T ReLU test OpenVINO INT8\",\"family\":\"yolov9t\",\"variant\":\"relu_test\",\"format\":\"openvino\",\"precision\":\"int8\",\"files\":[{\"relativePath\":\"openvino/scrypted_yolov9t_relu_test_int8/best-converted.xml\",\"size\":1380383,\"sha256\":\"9e4119284e923e08c9929e78fd31e2552e602a552ac538ae99bf34a50dd4d172\"},{\"relativePath\":\"openvino/scrypted_yolov9t_relu_test_int8/best-converted.bin\",\"size\":1954960,\"sha256\":\"efe5b0a2fd2f5ddef5923eeb9e592a7ef14719061bb7605c86e05b35c2c58ea9\"}],\"sizeMB\":3.34},{\"id\":\"scrypted-yolov9s-relu-openvino-int8\",\"label\":\"Scrypted YOLOv9S ReLU OpenVINO INT8\",\"family\":\"yolov9s\",\"variant\":\"relu\",\"format\":\"openvino\",\"precision\":\"int8\",\"files\":[{\"relativePath\":\"openvino/scrypted_yolov9s_relu_int8/best-converted.xml\",\"size\":1382088,\"sha256\":\"4e6c24cf24afbab21462f7e1a15bd05b1cbbe5915046000e03c2435d8110bbbf\"},{\"relativePath\":\"openvino/scrypted_yolov9s_relu_int8/best-converted.bin\",\"size\":7197308,\"sha256\":\"23fd3d666a938c41db232d9c6239baec1134716cfb4ed4ddd3d602dd20eb8ac0\"}],\"sizeMB\":8.58},{\"id\":\"scrypted-yolov9s-relu-test-openvino-int8\",\"label\":\"Scrypted YOLOv9S ReLU test OpenVINO INT8\",\"family\":\"yolov9s\",\"variant\":\"relu_test\",\"format\":\"openvino\",\"precision\":\"int8\",\"files\":[{\"relativePath\":\"openvino/scrypted_yolov9s_relu_test_int8/best-converted.xml\",\"size\":1382092,\"sha256\":\"49865bfeafe7576afce089ba6f5c3e25a9192c8b514eb96265c90fe877795641\"},{\"relativePath\":\"openvino/scrypted_yolov9s_relu_test_int8/best-converted.bin\",\"size\":7197312,\"sha256\":\"78e9d36e6b74754db2b624ea3ec0b3ff57ed6dfed59a4f2225e1a271054597de\"}],\"sizeMB\":8.58},{\"id\":\"scrypted-yolov9m-relu-openvino-int8\",\"label\":\"Scrypted YOLOv9M ReLU OpenVINO INT8\",\"family\":\"yolov9m\",\"variant\":\"relu\",\"format\":\"openvino\",\"precision\":\"int8\",\"files\":[{\"relativePath\":\"openvino/scrypted_yolov9m_relu_int8/best-converted.xml\",\"size\":1024595,\"sha256\":\"1242ab8d8c73b2e80c5dd541177ade6e102a2684114b059136acb4cad6efb034\"},{\"relativePath\":\"openvino/scrypted_yolov9m_relu_int8/best-converted.bin\",\"size\":20090516,\"sha256\":\"da8e44af8bee66478e6f359e9504bfb13ab4b76f4bd8a2f1b10cfbc22febcf6e\"}],\"sizeMB\":21.12},{\"id\":\"scrypted-yolov9m-relu-test-openvino-int8\",\"label\":\"Scrypted YOLOv9M ReLU test OpenVINO INT8\",\"family\":\"yolov9m\",\"variant\":\"relu_test\",\"format\":\"openvino\",\"precision\":\"int8\",\"files\":[{\"relativePath\":\"openvino/scrypted_yolov9m_relu_test_int8/best-converted.xml\",\"size\":1024601,\"sha256\":\"24395ae5fdbb321304c865372cd2b905cdc55abb7610520f3963702e2371decb\"},{\"relativePath\":\"openvino/scrypted_yolov9m_relu_test_int8/best-converted.bin\",\"size\":20090520,\"sha256\":\"4360fe0312067f92c49f180c7b8a10271f14d58b8909aa9b96b13af4ab9289aa\"}],\"sizeMB\":21.12},{\"id\":\"scrypted-yolov9c-relu-openvino-int8\",\"label\":\"Scrypted YOLOv9C ReLU OpenVINO INT8\",\"family\":\"yolov9c\",\"variant\":\"relu\",\"format\":\"openvino\",\"precision\":\"int8\",\"files\":[{\"relativePath\":\"openvino/scrypted_yolov9c_relu_int8/best-converted.xml\",\"size\":1092695,\"sha256\":\"a45c62940120c4301d8fff9fb3b275c29e3618f403ea68a785f2f3220cefec7a\"},{\"relativePath\":\"openvino/scrypted_yolov9c_relu_int8/best-converted.bin\",\"size\":25428280,\"sha256\":\"0643403a56178c3ed1e066c7884458d8ea6780115d662bdc38d10754d7a11c79\"}],\"sizeMB\":26.52},{\"id\":\"scrypted-yolov9c-relu-test-openvino-int8\",\"label\":\"Scrypted YOLOv9C ReLU test OpenVINO INT8\",\"family\":\"yolov9c\",\"variant\":\"relu_test\",\"format\":\"openvino\",\"precision\":\"int8\",\"files\":[{\"relativePath\":\"openvino/scrypted_yolov9c_relu_test_int8/best-converted.xml\",\"size\":1092695,\"sha256\":\"a8a1899848ebd060af2326d3c8d3c09ea83354f0bedff6cce6fa08b284ea5519\"},{\"relativePath\":\"openvino/scrypted_yolov9c_relu_test_int8/best-converted.bin\",\"size\":25428280,\"sha256\":\"2eb6bb3d0a03a9b239b6f623f9e7bced62eea61fbe4d8ff89c1b3e2e2b7978a2\"}],\"sizeMB\":26.52},{\"id\":\"scrypted-yolov9s-relu-sep-320-tflite-float16\",\"label\":\"Scrypted YOLOv9s ReLU sep 320 TFLite float16\",\"family\":\"yolov9s\",\"variant\":\"relu\",\"format\":\"tflite\",\"precision\":\"float16\",\"files\":[{\"relativePath\":\"tflite/scrypted_yolov9s_relu_sep_320/best_float16.tflite\",\"size\":14482836,\"sha256\":\"04889db3b81af361c361e41ffa99327330d37b71d680a2f889e6cdf1e94c0d8c\"}],\"sizeMB\":14.48},{\"id\":\"scrypted-yolov9s-relu-sep-320-tflite-float32\",\"label\":\"Scrypted YOLOv9s ReLU sep 320 TFLite float32\",\"family\":\"yolov9s\",\"variant\":\"relu\",\"format\":\"tflite\",\"precision\":\"float32\",\"files\":[{\"relativePath\":\"tflite/scrypted_yolov9s_relu_sep_320/best_float32.tflite\",\"size\":28777068,\"sha256\":\"f5d7d08fc1d8f2262633d2df4391638e0481740331aaa1837880a47c33001a96\"}],\"sizeMB\":28.78},{\"id\":\"scrypted-yolov9s-relu-sep-320-tflite-int8\",\"label\":\"Scrypted YOLOv9s ReLU sep 320 TFLite int8\",\"family\":\"yolov9s\",\"variant\":\"relu\",\"format\":\"tflite\",\"precision\":\"int8\",\"files\":[{\"relativePath\":\"tflite/scrypted_yolov9s_relu_sep_320/best_int8.tflite\",\"size\":7325616,\"sha256\":\"1e9866b16fe80931383bf3c94dc629fe93a37ba3dc1465ea019eb0a50bd428df\"}],\"sizeMB\":7.33},{\"id\":\"scrypted-yolov9s-relu-sep-320-tflite-integer_quant\",\"label\":\"Scrypted YOLOv9s ReLU sep 320 TFLite integer_quant\",\"family\":\"yolov9s\",\"variant\":\"relu\",\"format\":\"tflite\",\"precision\":\"integer_quant\",\"files\":[{\"relativePath\":\"tflite/scrypted_yolov9s_relu_sep_320/best_integer_quant.tflite\",\"size\":7342552,\"sha256\":\"bc1c902e9a9865637ee2403f70c6bf5c29c695d9163e58ad658feb29bb097ebc\"}],\"sizeMB\":7.34},{\"id\":\"scrypted-yolov9s-relu-sep-320-tflite-full_integer_quant\",\"label\":\"Scrypted YOLOv9s ReLU sep 320 TFLite full_integer_quant\",\"family\":\"yolov9s\",\"variant\":\"relu\",\"format\":\"tflite\",\"precision\":\"full_integer_quant\",\"files\":[{\"relativePath\":\"tflite/scrypted_yolov9s_relu_sep_320/best_full_integer_quant.tflite\",\"size\":7341704,\"sha256\":\"483ce38dbe33ee5a35f40a82f56c77629a44fa5d95efd8ade9fa97e4d2a261fd\"}],\"sizeMB\":7.34},{\"id\":\"scrypted-yolov9s-relu-sep-320-tflite-edgetpu\",\"label\":\"Scrypted YOLOv9s ReLU sep 320 TFLite edgetpu\",\"family\":\"yolov9s\",\"variant\":\"relu\",\"format\":\"tflite\",\"precision\":\"edgetpu\",\"files\":[{\"relativePath\":\"tflite/scrypted_yolov9s_relu_sep_320/best_full_integer_quant_edgetpu.tflite\",\"size\":8164480,\"sha256\":\"e1e6b074a3b9fdf19a171baf615553ad375a046aa7de2a3fef9a1950175fab22\"}],\"sizeMB\":8.16}]"), Y_ = /^[0-9a-f]{64}$/, X_ = "https://huggingface.co", Z_ = "scrypted/plugin-models", Q_ = "187402b20a3be0a7fab9bceee21d857ed6ae0064", $_ = [
|
|
16018
|
+
var J_ = /*#__PURE__*/ JSON.parse("[{\"id\":\"scrypted-yolov9t-relu-coreml\",\"label\":\"Scrypted YOLOv9T ReLU CoreML\",\"family\":\"yolov9t\",\"variant\":\"relu\",\"format\":\"coreml\",\"precision\":\"fp16\",\"files\":[{\"relativePath\":\"coreml/scrypted_yolov9t_relu/scrypted_yolov9t_relu.mlpackage/Manifest.json\",\"size\":617,\"sha256\":\"0a8733949d77e3204dba6418e81a11a8cc177015711457ce2c171266f23382d6\"},{\"relativePath\":\"coreml/scrypted_yolov9t_relu/scrypted_yolov9t_relu.mlpackage/Data/com.apple.CoreML/model.mlmodel\",\"size\":322229,\"sha256\":\"f5a62f196f1e72a84efa1637119dffb6501621af9cf6f867bc76b4b59c9242a0\"},{\"relativePath\":\"coreml/scrypted_yolov9t_relu/scrypted_yolov9t_relu.mlpackage/Data/com.apple.CoreML/weights/weight.bin\",\"size\":3797160,\"sha256\":\"b994419b8b68cfd6b89c3c6f3fe6b37458c86cc1d87fcca3df5034476a99dd38\"}],\"sizeMB\":4.12},{\"id\":\"scrypted-yolov9t-relu-onnx\",\"label\":\"Scrypted YOLOv9T ReLU ONNX\",\"family\":\"yolov9t\",\"variant\":\"relu\",\"format\":\"onnx\",\"precision\":\"fp32\",\"files\":[{\"relativePath\":\"onnx/scrypted_yolov9t_relu/scrypted_yolov9t_relu.onnx\",\"size\":8499266,\"sha256\":\"3f11ea2071b27c285b58c16636a44d6a0a27bdd1ca8b64112dfadabd39cfea47\"}],\"sizeMB\":8.5},{\"id\":\"scrypted-yolov9t-relu-test-coreml\",\"label\":\"Scrypted YOLOv9T ReLU test CoreML\",\"family\":\"yolov9t\",\"variant\":\"relu_test\",\"format\":\"coreml\",\"precision\":\"fp16\",\"files\":[{\"relativePath\":\"coreml/scrypted_yolov9t_relu_test/scrypted_yolov9t_relu_test.mlpackage/Manifest.json\",\"size\":617,\"sha256\":\"a5e0128b643f1a66f3e07d4b332f9ccbca97ccab75651c794f0b9f1fb41c8491\"},{\"relativePath\":\"coreml/scrypted_yolov9t_relu_test/scrypted_yolov9t_relu_test.mlpackage/Data/com.apple.CoreML/model.mlmodel\",\"size\":322229,\"sha256\":\"79f4f647f2a0c79db3b560c84251b48c7ba7cbe9c1fecc9674d1a603a389dfa3\"},{\"relativePath\":\"coreml/scrypted_yolov9t_relu_test/scrypted_yolov9t_relu_test.mlpackage/Data/com.apple.CoreML/weights/weight.bin\",\"size\":3797160,\"sha256\":\"72efc9dc6af9241b5e5ee7de24a4f55741f6425d0e279d797f0f223e3d355f84\"}],\"sizeMB\":4.12},{\"id\":\"scrypted-yolov9t-relu-test-onnx\",\"label\":\"Scrypted YOLOv9T ReLU test ONNX\",\"family\":\"yolov9t\",\"variant\":\"relu_test\",\"format\":\"onnx\",\"precision\":\"fp32\",\"files\":[{\"relativePath\":\"onnx/scrypted_yolov9t_relu_test/scrypted_yolov9t_relu_test.onnx\",\"size\":8499266,\"sha256\":\"d20aa0e6923a3af7f5e84e3a6d28fb00e8ecd592e3225f986f93bd34b634e2f8\"}],\"sizeMB\":8.5},{\"id\":\"scrypted-yolov9s-relu-coreml\",\"label\":\"Scrypted YOLOv9S ReLU CoreML\",\"family\":\"yolov9s\",\"variant\":\"relu\",\"format\":\"coreml\",\"precision\":\"fp16\",\"files\":[{\"relativePath\":\"coreml/scrypted_yolov9s_relu/scrypted_yolov9s_relu.mlpackage/Manifest.json\",\"size\":617,\"sha256\":\"3bcdb820b82f1e89266f2d11bae1604d3ee4ca6d11dc5bd5c57055ff4157e9f3\"},{\"relativePath\":\"coreml/scrypted_yolov9s_relu/scrypted_yolov9s_relu.mlpackage/Data/com.apple.CoreML/model.mlmodel\",\"size\":322664,\"sha256\":\"9a9c3c9cbca406ec2f0418ec867ed6b878ec6d02c16636d30e0bbd83d2ff7c40\"},{\"relativePath\":\"coreml/scrypted_yolov9s_relu/scrypted_yolov9s_relu.mlpackage/Data/com.apple.CoreML/weights/weight.bin\",\"size\":14190120,\"sha256\":\"fd51eda58a993997268f6a2e424b536ba173207ad7974ab8bee2a8ff76d52dab\"}],\"sizeMB\":14.51},{\"id\":\"scrypted-yolov9s-relu-onnx\",\"label\":\"Scrypted YOLOv9S ReLU ONNX\",\"family\":\"yolov9s\",\"variant\":\"relu\",\"format\":\"onnx\",\"precision\":\"fp32\",\"files\":[{\"relativePath\":\"onnx/scrypted_yolov9s_relu/scrypted_yolov9s_relu.onnx\",\"size\":29287339,\"sha256\":\"ca0b5bd98d5f59eb2029c6cb5129d53af59873f62a317a028beda463bbb96399\"}],\"sizeMB\":29.29},{\"id\":\"scrypted-yolov9s-relu-test-coreml\",\"label\":\"Scrypted YOLOv9S ReLU test CoreML\",\"family\":\"yolov9s\",\"variant\":\"relu_test\",\"format\":\"coreml\",\"precision\":\"fp16\",\"files\":[{\"relativePath\":\"coreml/scrypted_yolov9s_relu_test/scrypted_yolov9s_relu_test.mlpackage/Manifest.json\",\"size\":617,\"sha256\":\"e2d24de0ce7e8573f19572029765e55abc714f36a85175ad7fcb95c001a76653\"},{\"relativePath\":\"coreml/scrypted_yolov9s_relu_test/scrypted_yolov9s_relu_test.mlpackage/Data/com.apple.CoreML/model.mlmodel\",\"size\":322664,\"sha256\":\"186b147cdfd15c5ed7a381ec3a426a22cee0b5c52d56f14efd26da06357f5cb0\"},{\"relativePath\":\"coreml/scrypted_yolov9s_relu_test/scrypted_yolov9s_relu_test.mlpackage/Data/com.apple.CoreML/weights/weight.bin\",\"size\":14190120,\"sha256\":\"e50651924c2cbffd56008a8953569e66c3de69f21807fcf7d825390ce30f21f8\"}],\"sizeMB\":14.51},{\"id\":\"scrypted-yolov9s-relu-test-onnx\",\"label\":\"Scrypted YOLOv9S ReLU test ONNX\",\"family\":\"yolov9s\",\"variant\":\"relu_test\",\"format\":\"onnx\",\"precision\":\"fp32\",\"files\":[{\"relativePath\":\"onnx/scrypted_yolov9s_relu_test/scrypted_yolov9s_relu_test.onnx\",\"size\":29287339,\"sha256\":\"115ddb83333762a0f2599421335678696454a5c3571ade5df9bac8e9cb5fb4cf\"}],\"sizeMB\":29.29},{\"id\":\"scrypted-yolov9m-relu-coreml\",\"label\":\"Scrypted YOLOv9M ReLU CoreML\",\"family\":\"yolov9m\",\"variant\":\"relu\",\"format\":\"coreml\",\"precision\":\"fp16\",\"files\":[{\"relativePath\":\"coreml/scrypted_yolov9m_relu/scrypted_yolov9m_relu.mlpackage/Manifest.json\",\"size\":617,\"sha256\":\"c548c6e1ff768b2b01bd71e230aa712a1635ae2baa30e0369557a42fc531ecbf\"},{\"relativePath\":\"coreml/scrypted_yolov9m_relu/scrypted_yolov9m_relu.mlpackage/Data/com.apple.CoreML/model.mlmodel\",\"size\":247061,\"sha256\":\"1c40e02fc2a2559cb906ea6cd9da9c730d4a78f5019290cbb38d2fcaae379fe7\"},{\"relativePath\":\"coreml/scrypted_yolov9m_relu/scrypted_yolov9m_relu.mlpackage/Data/com.apple.CoreML/weights/weight.bin\",\"size\":39880616,\"sha256\":\"4cf938e5bfcc3ee1644813e4eb4702a7de450cc0581df94c719cf43d0ed2e408\"}],\"sizeMB\":40.13},{\"id\":\"scrypted-yolov9m-relu-onnx\",\"label\":\"Scrypted YOLOv9M ReLU ONNX\",\"family\":\"yolov9m\",\"variant\":\"relu\",\"format\":\"onnx\",\"precision\":\"fp32\",\"files\":[{\"relativePath\":\"onnx/scrypted_yolov9m_relu/scrypted_yolov9m_relu.onnx\",\"size\":80380404,\"sha256\":\"e7a81fb33224a0105d2a0a594c3fa43c398c361de623f1d14156ae826e7312d5\"}],\"sizeMB\":80.38},{\"id\":\"scrypted-yolov9m-relu-test-coreml\",\"label\":\"Scrypted YOLOv9M ReLU test CoreML\",\"family\":\"yolov9m\",\"variant\":\"relu_test\",\"format\":\"coreml\",\"precision\":\"fp16\",\"files\":[{\"relativePath\":\"coreml/scrypted_yolov9m_relu_test/scrypted_yolov9m_relu_test.mlpackage/Manifest.json\",\"size\":617,\"sha256\":\"8e2684b286d02b4bdf9db1027c84cb89bf8e4830cfb58269f3ec457c5a010650\"},{\"relativePath\":\"coreml/scrypted_yolov9m_relu_test/scrypted_yolov9m_relu_test.mlpackage/Data/com.apple.CoreML/model.mlmodel\",\"size\":247061,\"sha256\":\"53d5946e74b13b15c5f8616081c9f15e8a95a5df3d5b45b830fc5a7f49561c16\"},{\"relativePath\":\"coreml/scrypted_yolov9m_relu_test/scrypted_yolov9m_relu_test.mlpackage/Data/com.apple.CoreML/weights/weight.bin\",\"size\":39880616,\"sha256\":\"69774bf0032c37707601b8cdc1e1820dbd9f8288eb5d6f3879618a5d34ff5199\"}],\"sizeMB\":40.13},{\"id\":\"scrypted-yolov9m-relu-test-onnx\",\"label\":\"Scrypted YOLOv9M ReLU test ONNX\",\"family\":\"yolov9m\",\"variant\":\"relu_test\",\"format\":\"onnx\",\"precision\":\"fp32\",\"files\":[{\"relativePath\":\"onnx/scrypted_yolov9m_relu_test/scrypted_yolov9m_relu_test.onnx\",\"size\":80380404,\"sha256\":\"8bb054f099295909ec518e2a6598d63db24d3f90edc8105a0f016903f2a205a2\"}],\"sizeMB\":80.38},{\"id\":\"scrypted-yolov9c-relu-coreml\",\"label\":\"Scrypted YOLOv9C ReLU CoreML\",\"family\":\"yolov9c\",\"variant\":\"relu\",\"format\":\"coreml\",\"precision\":\"fp16\",\"files\":[{\"relativePath\":\"coreml/scrypted_yolov9c_relu/scrypted_yolov9c_relu.mlpackage/Manifest.json\",\"size\":617,\"sha256\":\"813a306ebd69cabfd31f00434f5a961feeca7d237833f3e11805dcf4ad120ba9\"},{\"relativePath\":\"coreml/scrypted_yolov9c_relu/scrypted_yolov9c_relu.mlpackage/Data/com.apple.CoreML/model.mlmodel\",\"size\":263210,\"sha256\":\"862f082619075e470738306b0ff0a37ae70a7d08e684ca6a6dfa1971d404e0c3\"},{\"relativePath\":\"coreml/scrypted_yolov9c_relu/scrypted_yolov9c_relu.mlpackage/Data/com.apple.CoreML/weights/weight.bin\",\"size\":50489960,\"sha256\":\"ed89747e58943758e2a87221d1d404f6a4466cbc039c3c6f96e327cadc403d27\"}],\"sizeMB\":50.75},{\"id\":\"scrypted-yolov9c-relu-onnx\",\"label\":\"Scrypted YOLOv9C ReLU ONNX\",\"family\":\"yolov9c\",\"variant\":\"relu\",\"format\":\"onnx\",\"precision\":\"fp32\",\"files\":[{\"relativePath\":\"onnx/scrypted_yolov9c_relu/scrypted_yolov9c_relu.onnx\",\"size\":101631962,\"sha256\":\"b9372c4428daf4cd944c114b1e80d1a9ff0487d743e53a77216a051cfbef7116\"}],\"sizeMB\":101.63},{\"id\":\"scrypted-yolov9c-relu-test-coreml\",\"label\":\"Scrypted YOLOv9C ReLU test CoreML\",\"family\":\"yolov9c\",\"variant\":\"relu_test\",\"format\":\"coreml\",\"precision\":\"fp16\",\"files\":[{\"relativePath\":\"coreml/scrypted_yolov9c_relu_test/scrypted_yolov9c_relu_test.mlpackage/Manifest.json\",\"size\":617,\"sha256\":\"966ef82a93cb0ccf1036a8c9729c065fd372fa9590a97d0945e581cc674f7ad2\"},{\"relativePath\":\"coreml/scrypted_yolov9c_relu_test/scrypted_yolov9c_relu_test.mlpackage/Data/com.apple.CoreML/model.mlmodel\",\"size\":263210,\"sha256\":\"08718ecd3e9552d21a702bd8df60911cad0eec7b2ae382466809550f14634711\"},{\"relativePath\":\"coreml/scrypted_yolov9c_relu_test/scrypted_yolov9c_relu_test.mlpackage/Data/com.apple.CoreML/weights/weight.bin\",\"size\":50489960,\"sha256\":\"fe5936b9430ab4c87f30b148220131d6ec998b2377223d033e2fa2a00e60aada\"}],\"sizeMB\":50.75},{\"id\":\"scrypted-yolov9c-relu-test-onnx\",\"label\":\"Scrypted YOLOv9C ReLU test ONNX\",\"family\":\"yolov9c\",\"variant\":\"relu_test\",\"format\":\"onnx\",\"precision\":\"fp32\",\"files\":[{\"relativePath\":\"onnx/scrypted_yolov9c_relu_test/scrypted_yolov9c_relu_test.onnx\",\"size\":101631962,\"sha256\":\"2f4e2031e8efb4cbc871594338b2e875d78ab4af3ee0258d253273b1aac84742\"}],\"sizeMB\":101.63},{\"id\":\"scrypted-yolov9t-relu-openvino-fp32\",\"label\":\"Scrypted YOLOv9T ReLU OpenVINO FP32\",\"family\":\"yolov9t\",\"variant\":\"relu\",\"format\":\"openvino\",\"precision\":\"fp32\",\"files\":[{\"relativePath\":\"openvino/scrypted_yolov9t_relu/best-converted.xml\",\"size\":628222,\"sha256\":\"01b5a9d02a0f281e1aaf4860e1b0ed3a7f16b9d78975be8ff985ae0ee283d877\"},{\"relativePath\":\"openvino/scrypted_yolov9t_relu/best-converted.bin\",\"size\":7542204,\"sha256\":\"4fe9ce8dbdf94514fdd450cbfc907f257153e4898a0c1489a44e4912d8e32cc7\"}],\"sizeMB\":8.17},{\"id\":\"scrypted-yolov9s-relu-openvino-fp32\",\"label\":\"Scrypted YOLOv9S ReLU OpenVINO FP32\",\"family\":\"yolov9s\",\"variant\":\"relu\",\"format\":\"openvino\",\"precision\":\"fp32\",\"files\":[{\"relativePath\":\"openvino/scrypted_yolov9s_relu/best-converted.xml\",\"size\":629249,\"sha256\":\"5b4a229bf7229425698b63bd065a403e440a6151a6ddff0034867659cc4a480d\"},{\"relativePath\":\"openvino/scrypted_yolov9s_relu/best-converted.bin\",\"size\":28329724,\"sha256\":\"c030bd219208ea94082578c81f383d4ef9ec45d7150eec1c2c2ff2569cf49b35\"}],\"sizeMB\":28.96},{\"id\":\"scrypted-yolov9m-relu-openvino-fp32\",\"label\":\"Scrypted YOLOv9M ReLU OpenVINO FP32\",\"family\":\"yolov9m\",\"variant\":\"relu\",\"format\":\"openvino\",\"precision\":\"fp32\",\"files\":[{\"relativePath\":\"openvino/scrypted_yolov9m_relu/best-converted.xml\",\"size\":485439,\"sha256\":\"c66f9f1965bf70fd3635d4dfc3cb94c72c06b344c256713237d77706725b9a0c\"},{\"relativePath\":\"openvino/scrypted_yolov9m_relu/best-converted.bin\",\"size\":79717372,\"sha256\":\"dfc2d8952bbca9ad0e116168e3fd5c754e601c327d78c4f4d0d4cae12f0e1d2a\"}],\"sizeMB\":80.2},{\"id\":\"scrypted-yolov9c-relu-openvino-fp32\",\"label\":\"Scrypted YOLOv9C ReLU OpenVINO FP32\",\"family\":\"yolov9c\",\"variant\":\"relu\",\"format\":\"openvino\",\"precision\":\"fp32\",\"files\":[{\"relativePath\":\"openvino/scrypted_yolov9c_relu/best-converted.xml\",\"size\":535047,\"sha256\":\"836c1e998ebf76108ff64d554fdfa07aa72c42624f1a5448701bb409f27b8d68\"},{\"relativePath\":\"openvino/scrypted_yolov9c_relu/best-converted.bin\",\"size\":100942972,\"sha256\":\"11a1b330ac9843b349927977b3c7c7f17bb42af73a7ff102969132f27ab81814\"}],\"sizeMB\":101.48},{\"id\":\"scrypted-yolov9t-relu-openvino-int8\",\"label\":\"Scrypted YOLOv9T ReLU OpenVINO INT8\",\"family\":\"yolov9t\",\"variant\":\"relu\",\"format\":\"openvino\",\"precision\":\"int8\",\"files\":[{\"relativePath\":\"openvino/scrypted_yolov9t_relu_int8/best-converted.xml\",\"size\":1380379,\"sha256\":\"e5a76bf88ac69fc0ebc50c04b61ff91550dd9c2349af1f6d7e4cac949c640cec\"},{\"relativePath\":\"openvino/scrypted_yolov9t_relu_int8/best-converted.bin\",\"size\":1954956,\"sha256\":\"98fb5b6826d7c6697a585f69ba96754873772d9d61fbed8335aab761e8248659\"}],\"sizeMB\":3.34},{\"id\":\"scrypted-yolov9t-relu-test-openvino-int8\",\"label\":\"Scrypted YOLOv9T ReLU test OpenVINO INT8\",\"family\":\"yolov9t\",\"variant\":\"relu_test\",\"format\":\"openvino\",\"precision\":\"int8\",\"files\":[{\"relativePath\":\"openvino/scrypted_yolov9t_relu_test_int8/best-converted.xml\",\"size\":1380383,\"sha256\":\"9e4119284e923e08c9929e78fd31e2552e602a552ac538ae99bf34a50dd4d172\"},{\"relativePath\":\"openvino/scrypted_yolov9t_relu_test_int8/best-converted.bin\",\"size\":1954960,\"sha256\":\"efe5b0a2fd2f5ddef5923eeb9e592a7ef14719061bb7605c86e05b35c2c58ea9\"}],\"sizeMB\":3.34},{\"id\":\"scrypted-yolov9s-relu-openvino-int8\",\"label\":\"Scrypted YOLOv9S ReLU OpenVINO INT8\",\"family\":\"yolov9s\",\"variant\":\"relu\",\"format\":\"openvino\",\"precision\":\"int8\",\"files\":[{\"relativePath\":\"openvino/scrypted_yolov9s_relu_int8/best-converted.xml\",\"size\":1382088,\"sha256\":\"4e6c24cf24afbab21462f7e1a15bd05b1cbbe5915046000e03c2435d8110bbbf\"},{\"relativePath\":\"openvino/scrypted_yolov9s_relu_int8/best-converted.bin\",\"size\":7197308,\"sha256\":\"23fd3d666a938c41db232d9c6239baec1134716cfb4ed4ddd3d602dd20eb8ac0\"}],\"sizeMB\":8.58},{\"id\":\"scrypted-yolov9s-relu-test-openvino-int8\",\"label\":\"Scrypted YOLOv9S ReLU test OpenVINO INT8\",\"family\":\"yolov9s\",\"variant\":\"relu_test\",\"format\":\"openvino\",\"precision\":\"int8\",\"files\":[{\"relativePath\":\"openvino/scrypted_yolov9s_relu_test_int8/best-converted.xml\",\"size\":1382092,\"sha256\":\"49865bfeafe7576afce089ba6f5c3e25a9192c8b514eb96265c90fe877795641\"},{\"relativePath\":\"openvino/scrypted_yolov9s_relu_test_int8/best-converted.bin\",\"size\":7197312,\"sha256\":\"78e9d36e6b74754db2b624ea3ec0b3ff57ed6dfed59a4f2225e1a271054597de\"}],\"sizeMB\":8.58},{\"id\":\"scrypted-yolov9m-relu-openvino-int8\",\"label\":\"Scrypted YOLOv9M ReLU OpenVINO INT8\",\"family\":\"yolov9m\",\"variant\":\"relu\",\"format\":\"openvino\",\"precision\":\"int8\",\"files\":[{\"relativePath\":\"openvino/scrypted_yolov9m_relu_int8/best-converted.xml\",\"size\":1024595,\"sha256\":\"1242ab8d8c73b2e80c5dd541177ade6e102a2684114b059136acb4cad6efb034\"},{\"relativePath\":\"openvino/scrypted_yolov9m_relu_int8/best-converted.bin\",\"size\":20090516,\"sha256\":\"da8e44af8bee66478e6f359e9504bfb13ab4b76f4bd8a2f1b10cfbc22febcf6e\"}],\"sizeMB\":21.12},{\"id\":\"scrypted-yolov9m-relu-test-openvino-int8\",\"label\":\"Scrypted YOLOv9M ReLU test OpenVINO INT8\",\"family\":\"yolov9m\",\"variant\":\"relu_test\",\"format\":\"openvino\",\"precision\":\"int8\",\"files\":[{\"relativePath\":\"openvino/scrypted_yolov9m_relu_test_int8/best-converted.xml\",\"size\":1024601,\"sha256\":\"24395ae5fdbb321304c865372cd2b905cdc55abb7610520f3963702e2371decb\"},{\"relativePath\":\"openvino/scrypted_yolov9m_relu_test_int8/best-converted.bin\",\"size\":20090520,\"sha256\":\"4360fe0312067f92c49f180c7b8a10271f14d58b8909aa9b96b13af4ab9289aa\"}],\"sizeMB\":21.12},{\"id\":\"scrypted-yolov9c-relu-openvino-int8\",\"label\":\"Scrypted YOLOv9C ReLU OpenVINO INT8\",\"family\":\"yolov9c\",\"variant\":\"relu\",\"format\":\"openvino\",\"precision\":\"int8\",\"files\":[{\"relativePath\":\"openvino/scrypted_yolov9c_relu_int8/best-converted.xml\",\"size\":1092695,\"sha256\":\"a45c62940120c4301d8fff9fb3b275c29e3618f403ea68a785f2f3220cefec7a\"},{\"relativePath\":\"openvino/scrypted_yolov9c_relu_int8/best-converted.bin\",\"size\":25428280,\"sha256\":\"0643403a56178c3ed1e066c7884458d8ea6780115d662bdc38d10754d7a11c79\"}],\"sizeMB\":26.52},{\"id\":\"scrypted-yolov9c-relu-test-openvino-int8\",\"label\":\"Scrypted YOLOv9C ReLU test OpenVINO INT8\",\"family\":\"yolov9c\",\"variant\":\"relu_test\",\"format\":\"openvino\",\"precision\":\"int8\",\"files\":[{\"relativePath\":\"openvino/scrypted_yolov9c_relu_test_int8/best-converted.xml\",\"size\":1092695,\"sha256\":\"a8a1899848ebd060af2326d3c8d3c09ea83354f0bedff6cce6fa08b284ea5519\"},{\"relativePath\":\"openvino/scrypted_yolov9c_relu_test_int8/best-converted.bin\",\"size\":25428280,\"sha256\":\"2eb6bb3d0a03a9b239b6f623f9e7bced62eea61fbe4d8ff89c1b3e2e2b7978a2\"}],\"sizeMB\":26.52},{\"id\":\"scrypted-yolov9s-relu-sep-320-tflite-float16\",\"label\":\"Scrypted YOLOv9s ReLU sep 320 TFLite float16\",\"family\":\"yolov9s\",\"variant\":\"relu\",\"format\":\"tflite\",\"precision\":\"float16\",\"files\":[{\"relativePath\":\"tflite/scrypted_yolov9s_relu_sep_320/best_float16.tflite\",\"size\":14482836,\"sha256\":\"04889db3b81af361c361e41ffa99327330d37b71d680a2f889e6cdf1e94c0d8c\"}],\"sizeMB\":14.48},{\"id\":\"scrypted-yolov9s-relu-sep-320-tflite-float32\",\"label\":\"Scrypted YOLOv9s ReLU sep 320 TFLite float32\",\"family\":\"yolov9s\",\"variant\":\"relu\",\"format\":\"tflite\",\"precision\":\"float32\",\"files\":[{\"relativePath\":\"tflite/scrypted_yolov9s_relu_sep_320/best_float32.tflite\",\"size\":28777068,\"sha256\":\"f5d7d08fc1d8f2262633d2df4391638e0481740331aaa1837880a47c33001a96\"}],\"sizeMB\":28.78},{\"id\":\"scrypted-yolov9s-relu-sep-320-tflite-int8\",\"label\":\"Scrypted YOLOv9s ReLU sep 320 TFLite int8\",\"family\":\"yolov9s\",\"variant\":\"relu\",\"format\":\"tflite\",\"precision\":\"int8\",\"files\":[{\"relativePath\":\"tflite/scrypted_yolov9s_relu_sep_320/best_int8.tflite\",\"size\":7325616,\"sha256\":\"1e9866b16fe80931383bf3c94dc629fe93a37ba3dc1465ea019eb0a50bd428df\"}],\"sizeMB\":7.33},{\"id\":\"scrypted-yolov9s-relu-sep-320-tflite-integer_quant\",\"label\":\"Scrypted YOLOv9s ReLU sep 320 TFLite integer_quant\",\"family\":\"yolov9s\",\"variant\":\"relu\",\"format\":\"tflite\",\"precision\":\"integer_quant\",\"files\":[{\"relativePath\":\"tflite/scrypted_yolov9s_relu_sep_320/best_integer_quant.tflite\",\"size\":7342552,\"sha256\":\"bc1c902e9a9865637ee2403f70c6bf5c29c695d9163e58ad658feb29bb097ebc\"}],\"sizeMB\":7.34},{\"id\":\"scrypted-yolov9s-relu-sep-320-tflite-full_integer_quant\",\"label\":\"Scrypted YOLOv9s ReLU sep 320 TFLite full_integer_quant\",\"family\":\"yolov9s\",\"variant\":\"relu\",\"format\":\"tflite\",\"precision\":\"full_integer_quant\",\"files\":[{\"relativePath\":\"tflite/scrypted_yolov9s_relu_sep_320/best_full_integer_quant.tflite\",\"size\":7341704,\"sha256\":\"483ce38dbe33ee5a35f40a82f56c77629a44fa5d95efd8ade9fa97e4d2a261fd\"}],\"sizeMB\":7.34},{\"id\":\"scrypted-yolov9s-relu-sep-320-tflite-edgetpu\",\"label\":\"Scrypted YOLOv9s ReLU sep 320 TFLite edgetpu\",\"family\":\"yolov9s\",\"variant\":\"relu\",\"format\":\"tflite\",\"precision\":\"edgetpu\",\"files\":[{\"relativePath\":\"tflite/scrypted_yolov9s_relu_sep_320/best_full_integer_quant_edgetpu.tflite\",\"size\":8164480,\"sha256\":\"e1e6b074a3b9fdf19a171baf615553ad375a046aa7de2a3fef9a1950175fab22\"}],\"sizeMB\":8.16}]"), Y_ = {
|
|
16019
|
+
weights: "UNKNOWN",
|
|
16020
|
+
code: "GPL-3.0",
|
|
16021
|
+
data: {
|
|
16022
|
+
name: "not stated by Scrypted",
|
|
16023
|
+
terms: "UNKNOWN"
|
|
16024
|
+
},
|
|
16025
|
+
upstream: {
|
|
16026
|
+
name: "Scrypted plugin-models (repository tagged MIT, no per-model terms)",
|
|
16027
|
+
url: "https://huggingface.co/scrypted/plugin-models"
|
|
16028
|
+
},
|
|
16029
|
+
url: "https://huggingface.co/scrypted/plugin-models",
|
|
16030
|
+
attribution: "Scrypted YOLOv9 ReLU detectors, Koushik Dutta (scrypted/plugin-models, repository tagged MIT); trained with the YOLOv9 code of Chien-Yao Wang, I-Hau Yeh, Hong-Yuan Mark Liao, GPL-3.0 (https://github.com/WongKinYiu/yolov9).",
|
|
16031
|
+
modifications: "none: downloaded as published, at a pinned revision",
|
|
16032
|
+
hosting: "third-party"
|
|
16033
|
+
}, X_ = {
|
|
16034
|
+
weights: "Apache-2.0",
|
|
16035
|
+
code: "Apache-2.0",
|
|
16036
|
+
data: {
|
|
16037
|
+
name: "COCO 2017",
|
|
16038
|
+
terms: "annotations CC-BY-4.0; images under their Flickr owners' terms",
|
|
16039
|
+
url: "https://cocodataset.org/#termsofuse"
|
|
16040
|
+
},
|
|
16041
|
+
upstream: {
|
|
16042
|
+
name: "Google Coral test_data",
|
|
16043
|
+
url: "https://github.com/google-coral/test_data"
|
|
16044
|
+
},
|
|
16045
|
+
url: "https://github.com/google-coral/test_data/blob/master/LICENSE",
|
|
16046
|
+
attribution: "Coral Edge TPU models and AIY Vision Birds V1 © Google LLC, Apache-2.0.",
|
|
16047
|
+
hosting: "third-party"
|
|
16048
|
+
}, Z_ = /^[0-9a-f]{64}$/, Q_ = "https://huggingface.co", $_ = "scrypted/plugin-models", ev = "187402b20a3be0a7fab9bceee21d857ed6ae0064", tv = [
|
|
16019
16049
|
"person",
|
|
16020
16050
|
"vehicle",
|
|
16021
16051
|
"animal"
|
|
16022
|
-
],
|
|
16052
|
+
], nv = {
|
|
16023
16053
|
mapping: {
|
|
16024
16054
|
person: "person",
|
|
16025
16055
|
vehicle: "vehicle",
|
|
16026
16056
|
animal: "animal"
|
|
16027
16057
|
},
|
|
16028
16058
|
preserveOriginal: !1
|
|
16029
|
-
},
|
|
16059
|
+
}, rv = tv.map((e) => ({
|
|
16030
16060
|
id: e,
|
|
16031
16061
|
name: e
|
|
16032
|
-
})),
|
|
16062
|
+
})), iv = [
|
|
16033
16063
|
"Manifest.json",
|
|
16034
16064
|
"Data/com.apple.CoreML/model.mlmodel",
|
|
16035
16065
|
"Data/com.apple.CoreML/weights/weight.bin"
|
|
16036
|
-
],
|
|
16066
|
+
], av = {
|
|
16037
16067
|
width: 320,
|
|
16038
16068
|
height: 320
|
|
16039
16069
|
};
|
|
16040
|
-
function
|
|
16041
|
-
if (e === void 0 || !
|
|
16070
|
+
function ov(e, t) {
|
|
16071
|
+
if (e === void 0 || !Z_.test(e)) throw Error(`Invalid sha256 for ${t}: expected 64 lowercase hex`);
|
|
16042
16072
|
return e;
|
|
16043
16073
|
}
|
|
16044
|
-
function
|
|
16074
|
+
function sv(e) {
|
|
16045
16075
|
if (e.length === 0 || e.startsWith("/") || e.includes("\\") || e.includes("\0") || e.split("/").some((e) => e.length === 0 || e === "." || e === "..")) throw Error(`Unsafe Scrypted relative path: ${e}`);
|
|
16046
16076
|
return e;
|
|
16047
16077
|
}
|
|
16048
|
-
function
|
|
16049
|
-
return `${
|
|
16078
|
+
function cv(e) {
|
|
16079
|
+
return `${Q_}/${$_}/resolve/${ev}/${sv(e).split("/").map((e) => encodeURIComponent(e)).join("/")}`;
|
|
16050
16080
|
}
|
|
16051
|
-
function
|
|
16081
|
+
function lv(e) {
|
|
16052
16082
|
let t = e.find((e) => e.relativePath.endsWith("/Manifest.json"));
|
|
16053
16083
|
if (!t) throw Error("CoreML entry is missing Manifest.json");
|
|
16054
|
-
return
|
|
16084
|
+
return sv(t.relativePath.replace(/\/Manifest\.json$/, ""));
|
|
16055
16085
|
}
|
|
16056
|
-
function
|
|
16086
|
+
function uv(e) {
|
|
16057
16087
|
let t = {
|
|
16058
16088
|
family: "yolov9",
|
|
16059
16089
|
tier: e.family.slice(-1),
|
|
@@ -16062,24 +16092,25 @@ function cv(e) {
|
|
|
16062
16092
|
...e.precision === "int8" ? { precision: "int8" } : {}
|
|
16063
16093
|
};
|
|
16064
16094
|
if (e.format === "coreml") {
|
|
16065
|
-
let n =
|
|
16095
|
+
let n = lv(e.files);
|
|
16066
16096
|
return {
|
|
16067
16097
|
id: e.id,
|
|
16068
16098
|
name: e.label,
|
|
16069
16099
|
description: `${e.label} — imported from the local Scrypted YOLO catalog.`,
|
|
16070
16100
|
formats: { coreml: {
|
|
16071
|
-
url:
|
|
16101
|
+
url: cv(n),
|
|
16072
16102
|
sizeMB: e.sizeMB,
|
|
16073
16103
|
isDirectory: !0,
|
|
16074
|
-
files: [...
|
|
16104
|
+
files: [...iv],
|
|
16075
16105
|
runtimes: ["python"]
|
|
16076
16106
|
} },
|
|
16077
|
-
inputSize:
|
|
16078
|
-
labels:
|
|
16107
|
+
inputSize: av,
|
|
16108
|
+
labels: rv,
|
|
16079
16109
|
preprocessMode: "resize",
|
|
16080
|
-
classMap:
|
|
16110
|
+
classMap: nv,
|
|
16081
16111
|
group: t,
|
|
16082
|
-
provider: "scrypted"
|
|
16112
|
+
provider: "scrypted",
|
|
16113
|
+
license: Y_
|
|
16083
16114
|
};
|
|
16084
16115
|
}
|
|
16085
16116
|
if (e.format === "openvino") {
|
|
@@ -16091,17 +16122,18 @@ function cv(e) {
|
|
|
16091
16122
|
name: e.label,
|
|
16092
16123
|
description: `${e.label} — imported from the local Scrypted YOLO catalog.`,
|
|
16093
16124
|
formats: { openvino: {
|
|
16094
|
-
url:
|
|
16125
|
+
url: cv(n.relativePath),
|
|
16095
16126
|
sizeMB: e.sizeMB,
|
|
16096
16127
|
files: [i],
|
|
16097
16128
|
runtimes: ["python"]
|
|
16098
16129
|
} },
|
|
16099
|
-
inputSize:
|
|
16100
|
-
labels:
|
|
16130
|
+
inputSize: av,
|
|
16131
|
+
labels: rv,
|
|
16101
16132
|
preprocessMode: "resize",
|
|
16102
|
-
classMap:
|
|
16133
|
+
classMap: nv,
|
|
16103
16134
|
group: t,
|
|
16104
|
-
provider: "scrypted"
|
|
16135
|
+
provider: "scrypted",
|
|
16136
|
+
license: Y_
|
|
16105
16137
|
};
|
|
16106
16138
|
}
|
|
16107
16139
|
let n = e.files[0];
|
|
@@ -16111,23 +16143,24 @@ function cv(e) {
|
|
|
16111
16143
|
name: e.label,
|
|
16112
16144
|
description: `${e.label} — imported from the local Scrypted YOLO catalog.`,
|
|
16113
16145
|
formats: { [e.format]: {
|
|
16114
|
-
url:
|
|
16146
|
+
url: cv(n.relativePath),
|
|
16115
16147
|
sizeMB: e.sizeMB,
|
|
16116
16148
|
runtimes: e.format === "tflite" ? ["python"] : void 0
|
|
16117
16149
|
} },
|
|
16118
|
-
inputSize:
|
|
16119
|
-
labels:
|
|
16150
|
+
inputSize: av,
|
|
16151
|
+
labels: rv,
|
|
16120
16152
|
preprocessMode: "resize",
|
|
16121
|
-
classMap:
|
|
16153
|
+
classMap: nv,
|
|
16122
16154
|
group: t,
|
|
16123
|
-
provider: "scrypted"
|
|
16155
|
+
provider: "scrypted",
|
|
16156
|
+
license: Y_
|
|
16124
16157
|
};
|
|
16125
16158
|
}
|
|
16126
|
-
function
|
|
16159
|
+
function dv(e) {
|
|
16127
16160
|
let t = e.files.map((e) => Object.freeze({
|
|
16128
|
-
relativePath:
|
|
16161
|
+
relativePath: sv(e.relativePath),
|
|
16129
16162
|
size: e.size,
|
|
16130
|
-
sha256:
|
|
16163
|
+
sha256: ov(e.sha256, e.relativePath)
|
|
16131
16164
|
}));
|
|
16132
16165
|
return Object.freeze({
|
|
16133
16166
|
id: e.id,
|
|
@@ -16136,25 +16169,25 @@ function lv(e) {
|
|
|
16136
16169
|
variant: e.variant,
|
|
16137
16170
|
format: e.format,
|
|
16138
16171
|
precision: e.precision,
|
|
16139
|
-
inputSize:
|
|
16172
|
+
inputSize: av,
|
|
16140
16173
|
files: Object.freeze(t),
|
|
16141
|
-
model:
|
|
16174
|
+
model: uv({
|
|
16142
16175
|
...e,
|
|
16143
16176
|
files: t
|
|
16144
16177
|
})
|
|
16145
16178
|
});
|
|
16146
16179
|
}
|
|
16147
|
-
Object.freeze(J_.map(
|
|
16180
|
+
Object.freeze(J_.map(dv));
|
|
16148
16181
|
//#endregion
|
|
16149
16182
|
//#region src/scrypted/scrypted-tree-drift.ts
|
|
16150
|
-
var
|
|
16183
|
+
var fv = [
|
|
16151
16184
|
"ok",
|
|
16152
16185
|
"missing",
|
|
16153
16186
|
"size-changed",
|
|
16154
16187
|
"unavailable"
|
|
16155
16188
|
];
|
|
16156
|
-
function
|
|
16157
|
-
return
|
|
16189
|
+
function pv(e) {
|
|
16190
|
+
return fv.includes(e.status) ? {
|
|
16158
16191
|
manifestId: e.manifestId,
|
|
16159
16192
|
status: e.status,
|
|
16160
16193
|
...e.details === void 0 ? {} : { details: e.details }
|
|
@@ -16166,16 +16199,16 @@ function dv(e) {
|
|
|
16166
16199
|
}
|
|
16167
16200
|
//#endregion
|
|
16168
16201
|
//#region src/model-studio-actions.ts
|
|
16169
|
-
var
|
|
16202
|
+
var mv = $({
|
|
16170
16203
|
format: l_(ee),
|
|
16171
16204
|
sha256: Z(),
|
|
16172
16205
|
bytes: Hg(),
|
|
16173
16206
|
at: Hg()
|
|
16174
|
-
}),
|
|
16207
|
+
}), hv = s_(Z(), s_(Z(), mv)), gv = $({
|
|
16175
16208
|
relativePath: Z(),
|
|
16176
16209
|
size: Hg(),
|
|
16177
16210
|
sha256: Z().regex(/^[0-9a-f]{64}$/)
|
|
16178
|
-
}),
|
|
16211
|
+
}), _v = $({
|
|
16179
16212
|
id: Z(),
|
|
16180
16213
|
label: Z(),
|
|
16181
16214
|
family: l_([
|
|
@@ -16196,9 +16229,9 @@ var fv = $({
|
|
|
16196
16229
|
width: Hg(),
|
|
16197
16230
|
height: Hg()
|
|
16198
16231
|
}),
|
|
16199
|
-
files: e_(
|
|
16232
|
+
files: e_(gv).readonly(),
|
|
16200
16233
|
model: se
|
|
16201
|
-
}),
|
|
16234
|
+
}), vv = $({
|
|
16202
16235
|
manifestId: Z(),
|
|
16203
16236
|
status: l_([
|
|
16204
16237
|
"ok",
|
|
@@ -16207,14 +16240,14 @@ var fv = $({
|
|
|
16207
16240
|
"unavailable"
|
|
16208
16241
|
]),
|
|
16209
16242
|
details: Z().optional()
|
|
16210
|
-
}),
|
|
16243
|
+
}), yv = $({
|
|
16211
16244
|
id: Z(),
|
|
16212
16245
|
label: Z(),
|
|
16213
16246
|
format: l_(ee),
|
|
16214
16247
|
sizeMB: Hg(),
|
|
16215
16248
|
inputSize: Hg(),
|
|
16216
16249
|
notes: Z()
|
|
16217
|
-
}),
|
|
16250
|
+
}), bv = $({
|
|
16218
16251
|
id: Z(),
|
|
16219
16252
|
name: Z(),
|
|
16220
16253
|
type: Z(),
|
|
@@ -16228,9 +16261,9 @@ var fv = $({
|
|
|
16228
16261
|
height: Hg().optional()
|
|
16229
16262
|
});
|
|
16230
16263
|
re({
|
|
16231
|
-
registerCustomModel: P(
|
|
16264
|
+
registerCustomModel: P(M, $({ ok: d_(!0) }), { kind: "mutation" }),
|
|
16232
16265
|
removeCustomModel: P($({ modelId: Z() }), $({ removed: Kg() }), { kind: "mutation" }),
|
|
16233
|
-
listCustomModels: P(Qg(), e_(
|
|
16266
|
+
listCustomModels: P(Qg(), e_(M).readonly()),
|
|
16234
16267
|
distributeModel: P($({
|
|
16235
16268
|
modelId: Z(),
|
|
16236
16269
|
nodeId: Z(),
|
|
@@ -16240,7 +16273,7 @@ re({
|
|
|
16240
16273
|
sha256: Z(),
|
|
16241
16274
|
bytes: Hg()
|
|
16242
16275
|
}), { kind: "mutation" }),
|
|
16243
|
-
listAvailability: P(Qg(),
|
|
16276
|
+
listAvailability: P(Qg(), hv),
|
|
16244
16277
|
beginModelUpload: P($({
|
|
16245
16278
|
filename: Z(),
|
|
16246
16279
|
totalBytes: Hg().int().positive()
|
|
@@ -16255,7 +16288,7 @@ re({
|
|
|
16255
16288
|
sha256: Z()
|
|
16256
16289
|
}), { kind: "mutation" }),
|
|
16257
16290
|
abortModelUpload: P($({ uploadId: Z() }), $({ ok: d_(!0) }), { kind: "mutation" }),
|
|
16258
|
-
listFrigateCatalog: P(Qg(), e_(
|
|
16291
|
+
listFrigateCatalog: P(Qg(), e_(yv).readonly()),
|
|
16259
16292
|
importFrigateCatalogModel: P($({
|
|
16260
16293
|
catalogId: Z(),
|
|
16261
16294
|
modelId: Z().optional(),
|
|
@@ -16266,10 +16299,10 @@ re({
|
|
|
16266
16299
|
bytes: Hg()
|
|
16267
16300
|
}), { kind: "mutation" }),
|
|
16268
16301
|
listScryptedCatalog: P(Qg(), $({
|
|
16269
|
-
entries: e_(
|
|
16270
|
-
drift: e_(
|
|
16302
|
+
entries: e_(_v).readonly(),
|
|
16303
|
+
drift: e_(vv).readonly()
|
|
16271
16304
|
})),
|
|
16272
|
-
importScryptedCatalogModel: P($({ manifestId: Z() }),
|
|
16305
|
+
importScryptedCatalogModel: P($({ manifestId: Z() }), M, { kind: "mutation" }),
|
|
16273
16306
|
tfliteSupport: P(Qg(), $({ nodes: e_(Z()).readonly() })),
|
|
16274
16307
|
frigatePlusStatus: P(Qg(), $({
|
|
16275
16308
|
configured: Kg(),
|
|
@@ -16279,7 +16312,7 @@ re({
|
|
|
16279
16312
|
ok: Kg(),
|
|
16280
16313
|
error: Z().optional()
|
|
16281
16314
|
}), { kind: "mutation" }),
|
|
16282
|
-
frigatePlusListModels: P(Qg(), e_(
|
|
16315
|
+
frigatePlusListModels: P(Qg(), e_(bv).readonly()),
|
|
16283
16316
|
importFrigatePlusModel: P($({
|
|
16284
16317
|
plusModelId: Z(),
|
|
16285
16318
|
modelId: Z(),
|
|
@@ -16314,20 +16347,20 @@ re({
|
|
|
16314
16347
|
});
|
|
16315
16348
|
//#endregion
|
|
16316
16349
|
//#region src/ui/model-studio-ui.ts
|
|
16317
|
-
var
|
|
16350
|
+
var xv = [
|
|
16318
16351
|
"onnx",
|
|
16319
16352
|
"coreml",
|
|
16320
16353
|
"openvino",
|
|
16321
16354
|
"tflite",
|
|
16322
16355
|
"pt"
|
|
16323
16356
|
];
|
|
16324
|
-
function
|
|
16325
|
-
return
|
|
16357
|
+
function Sv(e) {
|
|
16358
|
+
return xv.filter((t) => e.formats[t] !== void 0);
|
|
16326
16359
|
}
|
|
16327
|
-
function
|
|
16328
|
-
return
|
|
16360
|
+
function Cv(e) {
|
|
16361
|
+
return xv.reduce((t, n) => t + (e.formats[n]?.sizeMB ?? 0), 0);
|
|
16329
16362
|
}
|
|
16330
|
-
function
|
|
16363
|
+
function wv(e, t) {
|
|
16331
16364
|
let n = e[t];
|
|
16332
16365
|
return n === void 0 ? [] : Object.entries(n).map(([e, t]) => ({
|
|
16333
16366
|
nodeId: e,
|
|
@@ -16335,30 +16368,30 @@ function Sv(e, t) {
|
|
|
16335
16368
|
bytes: t.bytes
|
|
16336
16369
|
})).toSorted((e, t) => e.nodeId.localeCompare(t.nodeId));
|
|
16337
16370
|
}
|
|
16338
|
-
function
|
|
16371
|
+
function Tv(e, t) {
|
|
16339
16372
|
return e.map((e) => ({
|
|
16340
16373
|
id: e.entry.id,
|
|
16341
16374
|
name: e.entry.name,
|
|
16342
16375
|
description: e.entry.description,
|
|
16343
16376
|
stepId: e.stepId,
|
|
16344
|
-
formats:
|
|
16345
|
-
sizeMB:
|
|
16346
|
-
nodes:
|
|
16377
|
+
formats: Sv(e.entry),
|
|
16378
|
+
sizeMB: Cv(e.entry),
|
|
16379
|
+
nodes: wv(t, e.entry.id)
|
|
16347
16380
|
})).toSorted((e, t) => e.name.localeCompare(t.name));
|
|
16348
16381
|
}
|
|
16349
|
-
function
|
|
16350
|
-
let t =
|
|
16382
|
+
function Ev(e) {
|
|
16383
|
+
let t = xv.filter((t) => e[t] !== void 0).map((t) => ({
|
|
16351
16384
|
format: t,
|
|
16352
16385
|
sizeMB: e[t].sizeMB,
|
|
16353
16386
|
downloaded: e[t].downloaded
|
|
16354
|
-
})), n = Object.entries(e).filter(([e]) => !
|
|
16387
|
+
})), n = Object.entries(e).filter(([e]) => !xv.includes(e)).map(([e, t]) => ({
|
|
16355
16388
|
format: e,
|
|
16356
16389
|
sizeMB: t.sizeMB,
|
|
16357
16390
|
downloaded: t.downloaded
|
|
16358
16391
|
}));
|
|
16359
16392
|
return [...t, ...n];
|
|
16360
16393
|
}
|
|
16361
|
-
function
|
|
16394
|
+
function Dv(e) {
|
|
16362
16395
|
let t = [];
|
|
16363
16396
|
for (let n of e.slots) for (let e of n.addons) for (let n of e.models) n.legacy !== !0 && t.push({
|
|
16364
16397
|
provider: "camstack",
|
|
@@ -16366,11 +16399,11 @@ function Tv(e) {
|
|
|
16366
16399
|
stepName: e.name,
|
|
16367
16400
|
modelId: n.id,
|
|
16368
16401
|
name: n.name,
|
|
16369
|
-
formats:
|
|
16402
|
+
formats: Ev(n.formats)
|
|
16370
16403
|
});
|
|
16371
16404
|
return t;
|
|
16372
16405
|
}
|
|
16373
|
-
function
|
|
16406
|
+
function Ov(e) {
|
|
16374
16407
|
let t = /* @__PURE__ */ new Set(), n = [];
|
|
16375
16408
|
for (let r of e) t.has(r.stepId) || (t.add(r.stepId), n.push({
|
|
16376
16409
|
id: r.stepId,
|
|
@@ -16378,10 +16411,10 @@ function Ev(e) {
|
|
|
16378
16411
|
}));
|
|
16379
16412
|
return n;
|
|
16380
16413
|
}
|
|
16381
|
-
function
|
|
16414
|
+
function kv(e, t) {
|
|
16382
16415
|
return e.filter((e) => e.stepId === t);
|
|
16383
16416
|
}
|
|
16384
|
-
function
|
|
16417
|
+
function Av(e) {
|
|
16385
16418
|
let t = /* @__PURE__ */ new Set(), n = [];
|
|
16386
16419
|
for (let r of e.slots) for (let e of r.addons) t.has(e.id) || (t.add(e.id), n.push({
|
|
16387
16420
|
id: e.id,
|
|
@@ -16390,22 +16423,22 @@ function Ov(e) {
|
|
|
16390
16423
|
}));
|
|
16391
16424
|
return n;
|
|
16392
16425
|
}
|
|
16393
|
-
var
|
|
16426
|
+
var jv = {
|
|
16394
16427
|
openvinoFp16: !1,
|
|
16395
16428
|
openvinoInt8: !1,
|
|
16396
16429
|
coreml: !1
|
|
16397
16430
|
};
|
|
16398
|
-
function
|
|
16431
|
+
function Mv(e) {
|
|
16399
16432
|
let t = [], n = [];
|
|
16400
16433
|
return e.openvinoFp16 && n.push("fp16"), e.openvinoInt8 && n.push("int8"), n.length > 0 && t.push({
|
|
16401
16434
|
format: "openvino",
|
|
16402
16435
|
precisions: n
|
|
16403
16436
|
}), e.coreml && t.push({ format: "coreml" }), t;
|
|
16404
16437
|
}
|
|
16405
|
-
function
|
|
16438
|
+
function Nv(e) {
|
|
16406
16439
|
return e.openvinoFp16 || e.openvinoInt8 || e.coreml;
|
|
16407
16440
|
}
|
|
16408
|
-
function
|
|
16441
|
+
function Pv(e) {
|
|
16409
16442
|
if (e <= 0) return "0 B";
|
|
16410
16443
|
let t = [
|
|
16411
16444
|
"B",
|
|
@@ -16415,29 +16448,29 @@ function Mv(e) {
|
|
|
16415
16448
|
], n = Math.min(t.length - 1, Math.floor(Math.log(e) / Math.log(1024))), r = e / 1024 ** n;
|
|
16416
16449
|
return `${r.toFixed(r >= 100 || n === 0 ? 0 : 1)} ${t[n]}`;
|
|
16417
16450
|
}
|
|
16418
|
-
function
|
|
16451
|
+
function Fv(e) {
|
|
16419
16452
|
return e <= 0 ? "—" : e >= 1e3 ? `${(e / 1e3).toFixed(2)} GB` : `${e.toFixed(e >= 100 ? 0 : 1)} MB`;
|
|
16420
16453
|
}
|
|
16421
16454
|
//#endregion
|
|
16422
16455
|
//#region src/ui/api.ts
|
|
16423
|
-
var
|
|
16424
|
-
function
|
|
16456
|
+
var Iv = "model-studio";
|
|
16457
|
+
function Lv(e) {
|
|
16425
16458
|
return e;
|
|
16426
16459
|
}
|
|
16427
|
-
function
|
|
16428
|
-
return
|
|
16460
|
+
function Rv(e) {
|
|
16461
|
+
return Lv(e).addons.custom;
|
|
16429
16462
|
}
|
|
16430
|
-
async function
|
|
16431
|
-
return
|
|
16432
|
-
addonId:
|
|
16463
|
+
async function zv(e, t, n) {
|
|
16464
|
+
return Rv(e).mutate({
|
|
16465
|
+
addonId: Iv,
|
|
16433
16466
|
action: t,
|
|
16434
16467
|
input: n
|
|
16435
16468
|
});
|
|
16436
16469
|
}
|
|
16437
|
-
function
|
|
16470
|
+
function Bv(e) {
|
|
16438
16471
|
return typeof e == "object" && !!e && !Array.isArray(e);
|
|
16439
16472
|
}
|
|
16440
|
-
function
|
|
16473
|
+
function Vv(e, t, n) {
|
|
16441
16474
|
let r = [];
|
|
16442
16475
|
for (let [i, a] of t.entries()) {
|
|
16443
16476
|
let t = e.safeParse(a);
|
|
@@ -16445,7 +16478,7 @@ function zv(e, t, n) {
|
|
|
16445
16478
|
}
|
|
16446
16479
|
return r;
|
|
16447
16480
|
}
|
|
16448
|
-
function
|
|
16481
|
+
function Hv(e, t, n) {
|
|
16449
16482
|
let r = e.safeParse(t);
|
|
16450
16483
|
if (!r.success) {
|
|
16451
16484
|
let e = r.error.issues.map((e) => `${e.path.join(".") || "<root>"}: ${e.message}`).join("; ");
|
|
@@ -16453,131 +16486,131 @@ function Bv(e, t, n) {
|
|
|
16453
16486
|
}
|
|
16454
16487
|
return r.data;
|
|
16455
16488
|
}
|
|
16456
|
-
function
|
|
16457
|
-
return Array.isArray(e) ?
|
|
16489
|
+
function Uv(e) {
|
|
16490
|
+
return Array.isArray(e) ? Vv(M, e, "listCustomModels") : [];
|
|
16458
16491
|
}
|
|
16459
|
-
function
|
|
16460
|
-
if (!
|
|
16492
|
+
function Wv(e) {
|
|
16493
|
+
if (!Bv(e)) return {};
|
|
16461
16494
|
let t = {};
|
|
16462
16495
|
for (let [n, r] of Object.entries(e)) {
|
|
16463
|
-
if (!
|
|
16496
|
+
if (!Bv(r)) {
|
|
16464
16497
|
console.warn(`[model-studio] listAvailability: dropping "${n}" — not an object`, r);
|
|
16465
16498
|
continue;
|
|
16466
16499
|
}
|
|
16467
16500
|
let e = {};
|
|
16468
16501
|
for (let [t, i] of Object.entries(r)) {
|
|
16469
|
-
let r =
|
|
16502
|
+
let r = mv.safeParse(i);
|
|
16470
16503
|
r.success ? e[t] = r.data : console.warn(`[model-studio] listAvailability: dropping ${n}/${t} — ${r.error.issues.map((e) => `${e.path.join(".") || "<root>"}: ${e.message}`).join("; ")}`);
|
|
16471
16504
|
}
|
|
16472
16505
|
t[n] = e;
|
|
16473
16506
|
}
|
|
16474
16507
|
return t;
|
|
16475
16508
|
}
|
|
16476
|
-
async function
|
|
16477
|
-
return
|
|
16509
|
+
async function Gv(e) {
|
|
16510
|
+
return Uv(await zv(e, "listCustomModels", void 0));
|
|
16478
16511
|
}
|
|
16479
|
-
async function
|
|
16480
|
-
return
|
|
16512
|
+
async function Kv(e) {
|
|
16513
|
+
return Wv(await zv(e, "listAvailability", void 0));
|
|
16481
16514
|
}
|
|
16482
|
-
async function
|
|
16483
|
-
await
|
|
16515
|
+
async function qv(e, t) {
|
|
16516
|
+
await zv(e, "registerCustomModel", t);
|
|
16484
16517
|
}
|
|
16485
|
-
async function
|
|
16486
|
-
await
|
|
16518
|
+
async function Jv(e, t) {
|
|
16519
|
+
await zv(e, "removeCustomModel", { modelId: t });
|
|
16487
16520
|
}
|
|
16488
|
-
async function
|
|
16489
|
-
let n = await
|
|
16490
|
-
return Array.isArray(n) ? n.filter(
|
|
16521
|
+
async function Yv(e, t) {
|
|
16522
|
+
let n = await zv(e, "recommendConvertNode", { targets: t });
|
|
16523
|
+
return Array.isArray(n) ? n.filter(Bv).map((e) => ({
|
|
16491
16524
|
nodeId: typeof e.nodeId == "string" ? e.nodeId : "",
|
|
16492
16525
|
reason: typeof e.reason == "string" ? e.reason : "",
|
|
16493
16526
|
supported: e.supported === !0
|
|
16494
16527
|
})) : [];
|
|
16495
16528
|
}
|
|
16496
|
-
async function
|
|
16497
|
-
let n = await
|
|
16498
|
-
if (!
|
|
16499
|
-
let r =
|
|
16529
|
+
async function Xv(e, t) {
|
|
16530
|
+
let n = await zv(e, "convertModel", t);
|
|
16531
|
+
if (!Bv(n) || typeof n.nodeId != "string") throw Error("convertModel: unexpected response shape");
|
|
16532
|
+
let r = Hv(se, n.entry, "convertModel.entry"), i = Array.isArray(n.artifacts) ? Vv(ae, n.artifacts, "convertModel.artifacts") : [];
|
|
16500
16533
|
return {
|
|
16501
16534
|
entry: r,
|
|
16502
16535
|
nodeId: n.nodeId,
|
|
16503
16536
|
artifacts: i
|
|
16504
16537
|
};
|
|
16505
16538
|
}
|
|
16506
|
-
function
|
|
16507
|
-
return
|
|
16508
|
-
}
|
|
16509
|
-
function Xv(e) {
|
|
16510
|
-
return Rv(e) && Array.isArray(e.slots);
|
|
16511
|
-
}
|
|
16512
|
-
async function Zv(e) {
|
|
16513
|
-
let t = await Yv(e).query();
|
|
16514
|
-
if (!Xv(t)) throw Error("pipeline schema unavailable — cannot enumerate step ids");
|
|
16515
|
-
return Ov(t);
|
|
16539
|
+
function Zv(e) {
|
|
16540
|
+
return Lv(e).pipelineExecutor.getSchema;
|
|
16516
16541
|
}
|
|
16517
16542
|
function Qv(e) {
|
|
16518
|
-
return
|
|
16543
|
+
return Bv(e) && Array.isArray(e.slots);
|
|
16519
16544
|
}
|
|
16520
|
-
async function $v(e
|
|
16521
|
-
let
|
|
16522
|
-
if (!Qv(
|
|
16523
|
-
return
|
|
16545
|
+
async function $v(e) {
|
|
16546
|
+
let t = await Zv(e).query();
|
|
16547
|
+
if (!Qv(t)) throw Error("pipeline schema unavailable — cannot enumerate step ids");
|
|
16548
|
+
return Av(t);
|
|
16524
16549
|
}
|
|
16525
|
-
|
|
16526
|
-
|
|
16550
|
+
function ey(e) {
|
|
16551
|
+
return Bv(e) && Array.isArray(e.slots);
|
|
16527
16552
|
}
|
|
16528
16553
|
async function ty(e, t) {
|
|
16529
|
-
let n = await
|
|
16530
|
-
if (!
|
|
16554
|
+
let n = await Zv(e).query(t === void 0 ? void 0 : { nodeId: t });
|
|
16555
|
+
if (!ey(n)) throw Error("pipeline schema unavailable — cannot list CamStack seeds");
|
|
16556
|
+
return Dv(n);
|
|
16557
|
+
}
|
|
16558
|
+
async function ny(e, t) {
|
|
16559
|
+
await Lv(e).pipelineExecutor.downloadModel.mutate(t);
|
|
16560
|
+
}
|
|
16561
|
+
async function ry(e, t) {
|
|
16562
|
+
let n = await zv(e, "distributeModel", t);
|
|
16563
|
+
if (!Bv(n)) throw Error("distributeModel: unexpected response shape");
|
|
16531
16564
|
return {
|
|
16532
16565
|
ok: n.ok === !0,
|
|
16533
16566
|
sha256: typeof n.sha256 == "string" ? n.sha256 : "",
|
|
16534
16567
|
bytes: typeof n.bytes == "number" ? n.bytes : 0
|
|
16535
16568
|
};
|
|
16536
16569
|
}
|
|
16537
|
-
var
|
|
16538
|
-
function
|
|
16570
|
+
var iy = 512 * 1024;
|
|
16571
|
+
function ay(e, t) {
|
|
16539
16572
|
let n = e[t];
|
|
16540
16573
|
if (typeof n != "string") throw Error(`upload: missing "${t}" in response`);
|
|
16541
16574
|
return n;
|
|
16542
16575
|
}
|
|
16543
|
-
async function
|
|
16544
|
-
let r = await
|
|
16576
|
+
async function oy(e, t, n) {
|
|
16577
|
+
let r = await zv(e, "beginModelUpload", {
|
|
16545
16578
|
filename: t.name,
|
|
16546
16579
|
totalBytes: t.size
|
|
16547
16580
|
});
|
|
16548
|
-
if (!
|
|
16549
|
-
let i =
|
|
16581
|
+
if (!Bv(r)) throw Error("beginModelUpload: unexpected response shape");
|
|
16582
|
+
let i = ay(r, "uploadId");
|
|
16550
16583
|
try {
|
|
16551
16584
|
let r = new Uint8Array(await t.arrayBuffer());
|
|
16552
|
-
for (let t = 0; t < r.length; t +=
|
|
16585
|
+
for (let t = 0; t < r.length; t += iy) await zv(e, "appendModelUpload", {
|
|
16553
16586
|
uploadId: i,
|
|
16554
|
-
chunkBase64:
|
|
16555
|
-
}), n?.(Math.min(t +
|
|
16556
|
-
let a = await
|
|
16557
|
-
if (!
|
|
16587
|
+
chunkBase64: sy(r.subarray(t, t + iy))
|
|
16588
|
+
}), n?.(Math.min(t + iy, r.length), r.length);
|
|
16589
|
+
let a = await zv(e, "commitModelUpload", { uploadId: i });
|
|
16590
|
+
if (!Bv(a)) throw Error("commitModelUpload: unexpected response shape");
|
|
16558
16591
|
return {
|
|
16559
|
-
filename:
|
|
16592
|
+
filename: ay(a, "filename"),
|
|
16560
16593
|
bytes: typeof a.bytes == "number" ? a.bytes : t.size,
|
|
16561
|
-
sha256:
|
|
16594
|
+
sha256: ay(a, "sha256")
|
|
16562
16595
|
};
|
|
16563
16596
|
} catch (t) {
|
|
16564
|
-
throw await
|
|
16597
|
+
throw await zv(e, "abortModelUpload", { uploadId: i }).catch(() => void 0), t;
|
|
16565
16598
|
}
|
|
16566
16599
|
}
|
|
16567
|
-
function
|
|
16600
|
+
function sy(e) {
|
|
16568
16601
|
let t = "", n = 32768;
|
|
16569
16602
|
for (let r = 0; r < e.length; r += n) t += String.fromCharCode(...e.subarray(r, r + n));
|
|
16570
16603
|
return btoa(t);
|
|
16571
16604
|
}
|
|
16572
|
-
function
|
|
16573
|
-
return
|
|
16605
|
+
function cy(e) {
|
|
16606
|
+
return Lv(e).live.onEvent;
|
|
16574
16607
|
}
|
|
16575
|
-
function
|
|
16576
|
-
let r =
|
|
16608
|
+
function ly(e, t, n) {
|
|
16609
|
+
let r = cy(e);
|
|
16577
16610
|
try {
|
|
16578
16611
|
return r.subscribe({ category: "model-convert.progress" }, {
|
|
16579
16612
|
onData: (e) => {
|
|
16580
|
-
let n =
|
|
16613
|
+
let n = Bv(e.data) ? e.data : void 0;
|
|
16581
16614
|
n !== void 0 && t({
|
|
16582
16615
|
phase: typeof n.phase == "string" ? n.phase : "working",
|
|
16583
16616
|
pct: typeof n.pct == "number" ? n.pct : void 0,
|
|
@@ -16591,17 +16624,17 @@ function sy(e, t, n) {
|
|
|
16591
16624
|
return n?.(e), null;
|
|
16592
16625
|
}
|
|
16593
16626
|
}
|
|
16594
|
-
async function
|
|
16595
|
-
let n = await
|
|
16596
|
-
if (!
|
|
16627
|
+
async function uy(e, t) {
|
|
16628
|
+
let n = await zv(e, "importFrigateCatalogModel", t);
|
|
16629
|
+
if (!Bv(n)) throw Error("importFrigateCatalogModel: unexpected response shape");
|
|
16597
16630
|
return {
|
|
16598
|
-
modelId:
|
|
16631
|
+
modelId: ay(n, "modelId"),
|
|
16599
16632
|
bytes: typeof n.bytes == "number" ? n.bytes : 0
|
|
16600
16633
|
};
|
|
16601
16634
|
}
|
|
16602
|
-
async function
|
|
16603
|
-
let t = await
|
|
16604
|
-
return
|
|
16635
|
+
async function dy(e) {
|
|
16636
|
+
let t = await zv(e, "frigatePlusStatus", void 0);
|
|
16637
|
+
return Bv(t) ? {
|
|
16605
16638
|
configured: t.configured === !0,
|
|
16606
16639
|
keyFormatValid: t.keyFormatValid === !0
|
|
16607
16640
|
} : {
|
|
@@ -16609,9 +16642,9 @@ async function ly(e) {
|
|
|
16609
16642
|
keyFormatValid: !1
|
|
16610
16643
|
};
|
|
16611
16644
|
}
|
|
16612
|
-
async function
|
|
16613
|
-
let t = await
|
|
16614
|
-
return
|
|
16645
|
+
async function fy(e) {
|
|
16646
|
+
let t = await zv(e, "frigatePlusTest", void 0);
|
|
16647
|
+
return Bv(t) ? {
|
|
16615
16648
|
ok: t.ok === !0,
|
|
16616
16649
|
...typeof t.error == "string" ? { error: t.error } : {}
|
|
16617
16650
|
} : {
|
|
@@ -16619,14 +16652,14 @@ async function uy(e) {
|
|
|
16619
16652
|
error: "unexpected response"
|
|
16620
16653
|
};
|
|
16621
16654
|
}
|
|
16622
|
-
async function
|
|
16623
|
-
let t = await
|
|
16624
|
-
return Array.isArray(t) ?
|
|
16655
|
+
async function py(e) {
|
|
16656
|
+
let t = await zv(e, "frigatePlusListModels", void 0);
|
|
16657
|
+
return Array.isArray(t) ? Vv(bv, t, "frigatePlusListModels") : [];
|
|
16625
16658
|
}
|
|
16626
|
-
async function
|
|
16627
|
-
let n = await
|
|
16628
|
-
if (!
|
|
16629
|
-
let r = Array.isArray(n.conversions) ? n.conversions.filter(
|
|
16659
|
+
async function my(e, t) {
|
|
16660
|
+
let n = await zv(e, "importFrigatePlusModel", t);
|
|
16661
|
+
if (!Bv(n)) throw Error("importFrigatePlusModel: unexpected response shape");
|
|
16662
|
+
let r = Array.isArray(n.conversions) ? n.conversions.filter(Bv).flatMap((e) => {
|
|
16630
16663
|
let t = e.format === "openvino" || e.format === "coreml" ? e.format : null;
|
|
16631
16664
|
return t === null ? [] : [{
|
|
16632
16665
|
format: t,
|
|
@@ -16636,30 +16669,30 @@ async function fy(e, t) {
|
|
|
16636
16669
|
}];
|
|
16637
16670
|
}) : [];
|
|
16638
16671
|
return {
|
|
16639
|
-
modelId:
|
|
16672
|
+
modelId: ay(n, "modelId"),
|
|
16640
16673
|
bytes: typeof n.bytes == "number" ? n.bytes : 0,
|
|
16641
16674
|
conversions: r
|
|
16642
16675
|
};
|
|
16643
16676
|
}
|
|
16644
|
-
async function
|
|
16645
|
-
await
|
|
16646
|
-
addonId:
|
|
16677
|
+
async function hy(e, t) {
|
|
16678
|
+
await Lv(e).addonSettings.updateGlobalSettings.mutate({
|
|
16679
|
+
addonId: Iv,
|
|
16647
16680
|
patch: { frigatePlusApiKey: t }
|
|
16648
16681
|
});
|
|
16649
16682
|
}
|
|
16650
|
-
async function
|
|
16651
|
-
let t = await
|
|
16652
|
-
return !
|
|
16683
|
+
async function gy(e) {
|
|
16684
|
+
let t = await zv(e, "tfliteSupport", void 0);
|
|
16685
|
+
return !Bv(t) || !Array.isArray(t.nodes) ? [] : t.nodes.filter((e) => typeof e == "string");
|
|
16653
16686
|
}
|
|
16654
|
-
async function
|
|
16655
|
-
let t = await
|
|
16656
|
-
return !
|
|
16687
|
+
async function _y(e) {
|
|
16688
|
+
let t = await zv(e, "listScryptedCatalog", void 0);
|
|
16689
|
+
return !Bv(t) || !Array.isArray(t.entries) || !Array.isArray(t.drift) ? {
|
|
16657
16690
|
entries: [],
|
|
16658
16691
|
drift: []
|
|
16659
16692
|
} : {
|
|
16660
|
-
entries:
|
|
16661
|
-
drift: t.drift.filter(
|
|
16662
|
-
let t =
|
|
16693
|
+
entries: Vv(_v, t.entries, "listScryptedCatalog.entries"),
|
|
16694
|
+
drift: t.drift.filter(Bv).map((e) => {
|
|
16695
|
+
let t = pv({
|
|
16663
16696
|
manifestId: typeof e.manifestId == "string" ? e.manifestId : "",
|
|
16664
16697
|
status: typeof e.status == "string" ? e.status : "",
|
|
16665
16698
|
...typeof e.details == "string" ? { details: e.details } : {}
|
|
@@ -16672,12 +16705,12 @@ async function hy(e) {
|
|
|
16672
16705
|
})
|
|
16673
16706
|
};
|
|
16674
16707
|
}
|
|
16675
|
-
async function
|
|
16676
|
-
return
|
|
16708
|
+
async function vy(e, t) {
|
|
16709
|
+
return Hv(M, await zv(e, "importScryptedCatalogModel", { manifestId: t.manifestId }), "importScryptedCatalogModel");
|
|
16677
16710
|
}
|
|
16678
16711
|
//#endregion
|
|
16679
16712
|
//#region src/components/NodeSelector.tsx
|
|
16680
|
-
function
|
|
16713
|
+
function yy({ selectedNodeId: e, onSelect: t }) {
|
|
16681
16714
|
return /* @__PURE__ */ T(V_, {
|
|
16682
16715
|
selectedNodeId: e,
|
|
16683
16716
|
onSelect: t
|
|
@@ -16685,7 +16718,7 @@ function _y({ selectedNodeId: e, onSelect: t }) {
|
|
|
16685
16718
|
}
|
|
16686
16719
|
//#endregion
|
|
16687
16720
|
//#region src/components/Form.tsx
|
|
16688
|
-
function
|
|
16721
|
+
function by({ label: e, children: t }) {
|
|
16689
16722
|
return /* @__PURE__ */ E("label", {
|
|
16690
16723
|
className: "space-y-1 block",
|
|
16691
16724
|
children: [/* @__PURE__ */ T("span", {
|
|
@@ -16694,8 +16727,8 @@ function vy({ label: e, children: t }) {
|
|
|
16694
16727
|
}), t]
|
|
16695
16728
|
});
|
|
16696
16729
|
}
|
|
16697
|
-
function
|
|
16698
|
-
return /* @__PURE__ */ T(
|
|
16730
|
+
function xy({ label: e, value: t, onChange: n, placeholder: r }) {
|
|
16731
|
+
return /* @__PURE__ */ T(by, {
|
|
16699
16732
|
label: e,
|
|
16700
16733
|
children: /* @__PURE__ */ T("input", {
|
|
16701
16734
|
type: "text",
|
|
@@ -16706,8 +16739,8 @@ function yy({ label: e, value: t, onChange: n, placeholder: r }) {
|
|
|
16706
16739
|
})
|
|
16707
16740
|
});
|
|
16708
16741
|
}
|
|
16709
|
-
function
|
|
16710
|
-
return /* @__PURE__ */ T(
|
|
16742
|
+
function Sy({ label: e, value: t, onChange: n, min: r, max: i, step: a }) {
|
|
16743
|
+
return /* @__PURE__ */ T(by, {
|
|
16711
16744
|
label: e,
|
|
16712
16745
|
children: /* @__PURE__ */ T("input", {
|
|
16713
16746
|
type: "number",
|
|
@@ -16723,7 +16756,7 @@ function by({ label: e, value: t, onChange: n, min: r, max: i, step: a }) {
|
|
|
16723
16756
|
})
|
|
16724
16757
|
});
|
|
16725
16758
|
}
|
|
16726
|
-
function
|
|
16759
|
+
function Cy({ label: e, checked: t, onChange: n }) {
|
|
16727
16760
|
return /* @__PURE__ */ E("label", {
|
|
16728
16761
|
className: "flex items-center gap-2 text-xs text-foreground cursor-pointer select-none",
|
|
16729
16762
|
children: [/* @__PURE__ */ T("input", {
|
|
@@ -16737,15 +16770,15 @@ function xy({ label: e, checked: t, onChange: n }) {
|
|
|
16737
16770
|
//#endregion
|
|
16738
16771
|
//#region src/tabs/CatalogTab.tsx
|
|
16739
16772
|
d();
|
|
16740
|
-
var
|
|
16741
|
-
function
|
|
16742
|
-
return
|
|
16773
|
+
var wy = new Set(ee);
|
|
16774
|
+
function Ty(e) {
|
|
16775
|
+
return wy.has(e);
|
|
16743
16776
|
}
|
|
16744
|
-
function
|
|
16777
|
+
function Ey({ trpc: e, refreshKey: n }) {
|
|
16745
16778
|
let [i, a] = r("hub"), [o, c] = r([]), [l, d] = r(""), [f, p] = r(!0), [m, h] = r(null), [g, _] = r(null), [v, y] = r(null), b = t(async () => {
|
|
16746
16779
|
h(null);
|
|
16747
16780
|
try {
|
|
16748
|
-
let t = await
|
|
16781
|
+
let t = await ty(e, i);
|
|
16749
16782
|
c(t), d((e) => e && t.some((t) => t.stepId === e) ? e : t[0]?.stepId ?? "");
|
|
16750
16783
|
} catch (e) {
|
|
16751
16784
|
h(e instanceof Error ? e.message : "Failed to load CamStack catalog");
|
|
@@ -16756,11 +16789,11 @@ function wy({ trpc: e, refreshKey: n }) {
|
|
|
16756
16789
|
u(() => {
|
|
16757
16790
|
p(!0), b();
|
|
16758
16791
|
}, [b, n]);
|
|
16759
|
-
let x = s(() =>
|
|
16760
|
-
if (
|
|
16792
|
+
let x = s(() => Ov(o), [o]), S = s(() => kv(o, l), [o, l]), C = t(async (t, n) => {
|
|
16793
|
+
if (Ty(n)) {
|
|
16761
16794
|
_(`${t.stepId}/${t.modelId}/${n}`), y(null);
|
|
16762
16795
|
try {
|
|
16763
|
-
await
|
|
16796
|
+
await ny(e, {
|
|
16764
16797
|
addonId: t.stepId,
|
|
16765
16798
|
modelId: t.modelId,
|
|
16766
16799
|
format: n,
|
|
@@ -16794,7 +16827,7 @@ function wy({ trpc: e, refreshKey: n }) {
|
|
|
16794
16827
|
}),
|
|
16795
16828
|
/* @__PURE__ */ E("div", {
|
|
16796
16829
|
className: "flex flex-wrap items-end justify-between gap-3",
|
|
16797
|
-
children: [/* @__PURE__ */ T(
|
|
16830
|
+
children: [/* @__PURE__ */ T(by, {
|
|
16798
16831
|
label: "Step",
|
|
16799
16832
|
children: /* @__PURE__ */ E("select", {
|
|
16800
16833
|
"aria-label": "Step",
|
|
@@ -16809,7 +16842,7 @@ function wy({ trpc: e, refreshKey: n }) {
|
|
|
16809
16842
|
children: e.name
|
|
16810
16843
|
}, e.id))]
|
|
16811
16844
|
})
|
|
16812
|
-
}), /* @__PURE__ */ T(
|
|
16845
|
+
}), /* @__PURE__ */ T(yy, {
|
|
16813
16846
|
selectedNodeId: i,
|
|
16814
16847
|
onSelect: a
|
|
16815
16848
|
})]
|
|
@@ -16855,7 +16888,7 @@ function wy({ trpc: e, refreshKey: n }) {
|
|
|
16855
16888
|
}),
|
|
16856
16889
|
/* @__PURE__ */ T("span", {
|
|
16857
16890
|
className: "text-foreground-subtle",
|
|
16858
|
-
children:
|
|
16891
|
+
children: Fv(t.sizeMB)
|
|
16859
16892
|
}),
|
|
16860
16893
|
t.downloaded ? /* @__PURE__ */ E("span", {
|
|
16861
16894
|
className: "text-emerald-400",
|
|
@@ -16879,11 +16912,11 @@ function wy({ trpc: e, refreshKey: n }) {
|
|
|
16879
16912
|
//#endregion
|
|
16880
16913
|
//#region src/tabs/ModelsTab.tsx
|
|
16881
16914
|
d();
|
|
16882
|
-
function
|
|
16915
|
+
function Dy({ trpc: e, refreshKey: n }) {
|
|
16883
16916
|
let [i, a] = r([]), [o, c] = r({}), [l, d] = r(!0), [f, p] = r(null), m = t(async () => {
|
|
16884
16917
|
p(null);
|
|
16885
16918
|
try {
|
|
16886
|
-
let [t, n] = await Promise.all([
|
|
16919
|
+
let [t, n] = await Promise.all([Gv(e), Kv(e)]);
|
|
16887
16920
|
a(t), c(n);
|
|
16888
16921
|
} catch (e) {
|
|
16889
16922
|
p(e instanceof Error ? e.message : "Failed to load models");
|
|
@@ -16894,9 +16927,9 @@ function Ty({ trpc: e, refreshKey: n }) {
|
|
|
16894
16927
|
u(() => {
|
|
16895
16928
|
m();
|
|
16896
16929
|
}, [m, n]);
|
|
16897
|
-
let h = s(() =>
|
|
16930
|
+
let h = s(() => Tv(i, o), [i, o]), g = t(async (t) => {
|
|
16898
16931
|
try {
|
|
16899
|
-
await
|
|
16932
|
+
await Jv(e, t), await m();
|
|
16900
16933
|
} catch (e) {
|
|
16901
16934
|
p(e instanceof Error ? e.message : "Failed to remove model");
|
|
16902
16935
|
}
|
|
@@ -16931,7 +16964,7 @@ function Ty({ trpc: e, refreshKey: n }) {
|
|
|
16931
16964
|
children: "No custom models registered yet. Use the Catalog, Register or Convert tab to add one."
|
|
16932
16965
|
}) : /* @__PURE__ */ T("div", {
|
|
16933
16966
|
className: "space-y-2",
|
|
16934
|
-
children: h.map((t) => /* @__PURE__ */ T(
|
|
16967
|
+
children: h.map((t) => /* @__PURE__ */ T(ky, {
|
|
16935
16968
|
row: t,
|
|
16936
16969
|
trpc: e,
|
|
16937
16970
|
onRemove: g,
|
|
@@ -16941,12 +16974,12 @@ function Ty({ trpc: e, refreshKey: n }) {
|
|
|
16941
16974
|
]
|
|
16942
16975
|
});
|
|
16943
16976
|
}
|
|
16944
|
-
function
|
|
16977
|
+
function Oy({ row: e, trpc: n, onChanged: i }) {
|
|
16945
16978
|
let [a, o] = r("hub"), [s, c] = r(e.formats[0] ?? null), [l, u] = r(!1), [d, f] = r(null), [p, m] = r(null), h = t(async () => {
|
|
16946
16979
|
if (s === null) return f("This model declares no formats to distribute");
|
|
16947
16980
|
u(!0), f(null), m(null);
|
|
16948
16981
|
try {
|
|
16949
|
-
m(`Distributed ${s} to ${a} (${
|
|
16982
|
+
m(`Distributed ${s} to ${a} (${Fv((await ry(n, {
|
|
16950
16983
|
modelId: e.id,
|
|
16951
16984
|
nodeId: a,
|
|
16952
16985
|
format: s
|
|
@@ -16973,7 +17006,7 @@ function Ey({ row: e, trpc: n, onChanged: i }) {
|
|
|
16973
17006
|
className: "text-[10px] text-foreground-subtle uppercase tracking-wide",
|
|
16974
17007
|
children: "Distribute"
|
|
16975
17008
|
}),
|
|
16976
|
-
/* @__PURE__ */ T(
|
|
17009
|
+
/* @__PURE__ */ T(yy, {
|
|
16977
17010
|
selectedNodeId: a,
|
|
16978
17011
|
onSelect: o
|
|
16979
17012
|
}),
|
|
@@ -17007,7 +17040,7 @@ function Ey({ row: e, trpc: n, onChanged: i }) {
|
|
|
17007
17040
|
]
|
|
17008
17041
|
});
|
|
17009
17042
|
}
|
|
17010
|
-
function
|
|
17043
|
+
function ky({ row: e, trpc: t, onRemove: n, onChanged: r }) {
|
|
17011
17044
|
return /* @__PURE__ */ E("div", {
|
|
17012
17045
|
className: "rounded-xl border border-border bg-surface overflow-hidden",
|
|
17013
17046
|
children: [
|
|
@@ -17065,7 +17098,7 @@ function Dy({ row: e, trpc: t, onRemove: n, onChanged: r }) {
|
|
|
17065
17098
|
children: "Size"
|
|
17066
17099
|
}), /* @__PURE__ */ T("span", {
|
|
17067
17100
|
className: "font-mono text-foreground",
|
|
17068
|
-
children:
|
|
17101
|
+
children: Fv(e.sizeMB)
|
|
17069
17102
|
})]
|
|
17070
17103
|
}),
|
|
17071
17104
|
/* @__PURE__ */ E("div", {
|
|
@@ -17091,7 +17124,7 @@ function Dy({ row: e, trpc: t, onRemove: n, onChanged: r }) {
|
|
|
17091
17124
|
})
|
|
17092
17125
|
]
|
|
17093
17126
|
}),
|
|
17094
|
-
/* @__PURE__ */ T(
|
|
17127
|
+
/* @__PURE__ */ T(Oy, {
|
|
17095
17128
|
row: e,
|
|
17096
17129
|
trpc: t,
|
|
17097
17130
|
onChanged: r
|
|
@@ -17101,14 +17134,14 @@ function Dy({ row: e, trpc: t, onRemove: n, onChanged: r }) {
|
|
|
17101
17134
|
}
|
|
17102
17135
|
//#endregion
|
|
17103
17136
|
//#region src/frigate/frigate-import.ts
|
|
17104
|
-
function
|
|
17137
|
+
function Ay(e, t) {
|
|
17105
17138
|
return {
|
|
17106
17139
|
family: e === "mobiledet" ? "ssdlite-mobiledet" : e,
|
|
17107
17140
|
tier: "default",
|
|
17108
17141
|
resolution: t
|
|
17109
17142
|
};
|
|
17110
17143
|
}
|
|
17111
|
-
var
|
|
17144
|
+
var jy = {
|
|
17112
17145
|
yolov9: {
|
|
17113
17146
|
type: "yolov9",
|
|
17114
17147
|
label: "YOLOv9 (ONNX)",
|
|
@@ -17137,7 +17170,7 @@ var ky = {
|
|
|
17137
17170
|
notes: "SSDLite MobileDet, EdgeTPU-compiled full-integer TFLite (the Frigate default-model architecture). TFLite_Detection_PostProcess 4-tensor output, decoded by the ssd postprocessor. Requires a Coral (tflite format node)."
|
|
17138
17171
|
}
|
|
17139
17172
|
};
|
|
17140
|
-
function
|
|
17173
|
+
function My(e) {
|
|
17141
17174
|
let t = e.includes("\n") || !e.includes(",") ? e.split("\n") : e.split(","), n = [];
|
|
17142
17175
|
for (let e of t) {
|
|
17143
17176
|
let t = e.trim();
|
|
@@ -17149,10 +17182,10 @@ function Ay(e) {
|
|
|
17149
17182
|
}
|
|
17150
17183
|
//#endregion
|
|
17151
17184
|
//#region src/frigate/registration.ts
|
|
17152
|
-
var
|
|
17153
|
-
function
|
|
17154
|
-
let t = e.type === "custom" ? null :
|
|
17155
|
-
if (!
|
|
17185
|
+
var Ny = /^[a-zA-Z0-9._-]+$/;
|
|
17186
|
+
function Py(e) {
|
|
17187
|
+
let t = e.type === "custom" ? null : jy[e.type];
|
|
17188
|
+
if (!Ny.test(e.modelId)) throw Error(`Model id "${e.modelId}" is invalid — letters, digits, dot, underscore, hyphen only`);
|
|
17156
17189
|
if (!e.name.trim()) throw Error("Display name is required");
|
|
17157
17190
|
if (!e.stepId.trim()) throw Error("Step is required");
|
|
17158
17191
|
if (!(e.inputWidth > 0) || !(e.inputHeight > 0)) throw Error("Input size must be positive");
|
|
@@ -17181,7 +17214,7 @@ function My(e) {
|
|
|
17181
17214
|
...r === void 0 ? {} : { postprocessor: r },
|
|
17182
17215
|
...t === null ? { provider: "custom" } : {
|
|
17183
17216
|
provider: "frigate",
|
|
17184
|
-
group:
|
|
17217
|
+
group: Ay(e.type, e.inputWidth)
|
|
17185
17218
|
}
|
|
17186
17219
|
};
|
|
17187
17220
|
return {
|
|
@@ -17192,11 +17225,11 @@ function My(e) {
|
|
|
17192
17225
|
//#endregion
|
|
17193
17226
|
//#region src/components/StepSelect.tsx
|
|
17194
17227
|
d();
|
|
17195
|
-
function
|
|
17228
|
+
function Fy({ trpc: e, label: t = "Step", value: n, onChange: i, slots: a }) {
|
|
17196
17229
|
let [o, s] = r(null), [c, l] = r(null);
|
|
17197
17230
|
return u(() => {
|
|
17198
17231
|
let t = !1;
|
|
17199
|
-
return
|
|
17232
|
+
return $v(e).then((e) => {
|
|
17200
17233
|
if (t) return;
|
|
17201
17234
|
let r = a ? e.filter((e) => a.includes(e.slot)) : e;
|
|
17202
17235
|
s(r), l(null), r.length > 0 && !r.some((e) => e.id === n) && i(r[0].id);
|
|
@@ -17205,7 +17238,7 @@ function Ny({ trpc: e, label: t = "Step", value: n, onChange: i, slots: a }) {
|
|
|
17205
17238
|
}), () => {
|
|
17206
17239
|
t = !0;
|
|
17207
17240
|
};
|
|
17208
|
-
}, [e]), /* @__PURE__ */ E(
|
|
17241
|
+
}, [e]), /* @__PURE__ */ E(by, {
|
|
17209
17242
|
label: t,
|
|
17210
17243
|
children: [/* @__PURE__ */ E("select", {
|
|
17211
17244
|
value: n,
|
|
@@ -17236,7 +17269,7 @@ function Ny({ trpc: e, label: t = "Step", value: n, onChange: i, slots: a }) {
|
|
|
17236
17269
|
})]
|
|
17237
17270
|
});
|
|
17238
17271
|
}
|
|
17239
|
-
var
|
|
17272
|
+
var Iy = [{
|
|
17240
17273
|
id: "frigate-mobiledet-edgetpu",
|
|
17241
17274
|
label: "Frigate default — SSDLite MobileDet (EdgeTPU)",
|
|
17242
17275
|
format: "tflite",
|
|
@@ -17245,12 +17278,13 @@ var Py = [{
|
|
|
17245
17278
|
inputSize: 320,
|
|
17246
17279
|
postprocessor: "ssd",
|
|
17247
17280
|
labels: /* @__PURE__ */ "person.bicycle.car.motorcycle.airplane.bus.train.car.boat.traffic light.fire hydrant.street sign.stop sign.parking meter.bench.bird.cat.dog.horse.sheep.cow.elephant.bear.zebra.giraffe.hat.backpack.umbrella.shoe.eye glasses.handbag.tie.suitcase.frisbee.skis.snowboard.sports ball.kite.baseball bat.baseball glove.skateboard.surfboard.tennis racket.bottle.plate.wine glass.cup.fork.knife.spoon.bowl.banana.apple.sandwich.orange.broccoli.carrot.hot dog.pizza.donut.cake.chair.couch.potted plant.bed.mirror.dining table.window.desk.toilet.door.tv.laptop.mouse.remote.keyboard.cell phone.microwave.oven.toaster.sink.refrigerator.blender.book.clock.vase.scissors.teddy bear.hair drier.toothbrush.hair brush".split("."),
|
|
17281
|
+
license: X_,
|
|
17248
17282
|
notes: "Frigate's default detection model (the one a stock Frigate + Coral install runs). EdgeTPU-compiled full-integer TFLite, 320×320, TFLite_Detection_PostProcess output → ssd decode. Requires a Coral (tflite format) node."
|
|
17249
|
-
}],
|
|
17250
|
-
function
|
|
17251
|
-
return
|
|
17283
|
+
}], Ly = /^[a-z0-9]{8}-[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{12}:[a-z0-9]{40}$/;
|
|
17284
|
+
function Ry(e) {
|
|
17285
|
+
return Ly.test(e);
|
|
17252
17286
|
}
|
|
17253
|
-
var
|
|
17287
|
+
var zy = {
|
|
17254
17288
|
n: "Nano",
|
|
17255
17289
|
t: "Tiny",
|
|
17256
17290
|
s: "Small",
|
|
@@ -17259,14 +17293,14 @@ var Ly = {
|
|
|
17259
17293
|
l: "Large",
|
|
17260
17294
|
x: "Extra large"
|
|
17261
17295
|
};
|
|
17262
|
-
function
|
|
17296
|
+
function By(e) {
|
|
17263
17297
|
let t = /^(yolov\d+)([a-z])$/.exec(e);
|
|
17264
17298
|
if (t !== null) {
|
|
17265
17299
|
let e = t[2];
|
|
17266
17300
|
return {
|
|
17267
17301
|
architecture: t[1],
|
|
17268
17302
|
weight: e,
|
|
17269
|
-
weightLabel:
|
|
17303
|
+
weightLabel: zy[e] ?? e.toUpperCase()
|
|
17270
17304
|
};
|
|
17271
17305
|
}
|
|
17272
17306
|
return {
|
|
@@ -17275,7 +17309,7 @@ function Ry(e) {
|
|
|
17275
17309
|
weightLabel: ""
|
|
17276
17310
|
};
|
|
17277
17311
|
}
|
|
17278
|
-
function
|
|
17312
|
+
function Vy(e) {
|
|
17279
17313
|
switch (e) {
|
|
17280
17314
|
case "onnx":
|
|
17281
17315
|
case "openvino": return {
|
|
@@ -17314,11 +17348,11 @@ function zy(e) {
|
|
|
17314
17348
|
};
|
|
17315
17349
|
}
|
|
17316
17350
|
}
|
|
17317
|
-
function
|
|
17351
|
+
function Hy(e) {
|
|
17318
17352
|
return e.width !== void 0 && e.height !== void 0 ? `${e.width}x${e.height}` : "";
|
|
17319
17353
|
}
|
|
17320
|
-
var
|
|
17321
|
-
function
|
|
17354
|
+
var Uy = (e, t) => t.trainDate.localeCompare(e.trainDate);
|
|
17355
|
+
function Wy(e, t, n) {
|
|
17322
17356
|
let r = [
|
|
17323
17357
|
"kind",
|
|
17324
17358
|
"release",
|
|
@@ -17326,28 +17360,28 @@ function Hy(e, t, n) {
|
|
|
17326
17360
|
"architecture",
|
|
17327
17361
|
"weight",
|
|
17328
17362
|
"dimensions"
|
|
17329
|
-
], i = r.indexOf(n), a =
|
|
17363
|
+
], i = r.indexOf(n), a = By(e.name);
|
|
17330
17364
|
for (let n = 0; n <= i; n++) {
|
|
17331
17365
|
let i = r[n];
|
|
17332
|
-
if (i === "kind" && t.kind !== void 0 && t.kind === "base" !== e.isBaseModel || i === "release" && t.release !== void 0 && e.baseModel !== t.release || i === "detector" && t.detector !== void 0 && !e.supportedDetectors.includes(t.detector) || i === "architecture" && t.architecture !== void 0 && a.architecture !== t.architecture || i === "weight" && t.weight !== void 0 && a.weight !== t.weight || i === "dimensions" && t.dimensions !== void 0 &&
|
|
17366
|
+
if (i === "kind" && t.kind !== void 0 && t.kind === "base" !== e.isBaseModel || i === "release" && t.release !== void 0 && e.baseModel !== t.release || i === "detector" && t.detector !== void 0 && !e.supportedDetectors.includes(t.detector) || i === "architecture" && t.architecture !== void 0 && a.architecture !== t.architecture || i === "weight" && t.weight !== void 0 && a.weight !== t.weight || i === "dimensions" && t.dimensions !== void 0 && Hy(e) !== t.dimensions) return !1;
|
|
17333
17367
|
}
|
|
17334
17368
|
return !0;
|
|
17335
17369
|
}
|
|
17336
|
-
function
|
|
17370
|
+
function Gy(e, t) {
|
|
17337
17371
|
let n = /* @__PURE__ */ new Map();
|
|
17338
17372
|
for (let r of e) for (let e of t(r)) e !== "" && n.set(e, (n.get(e) ?? 0) + 1);
|
|
17339
17373
|
return n;
|
|
17340
17374
|
}
|
|
17341
|
-
function
|
|
17342
|
-
let n =
|
|
17375
|
+
function Ky(e, t) {
|
|
17376
|
+
let n = Gy(e, (e) => [e.isBaseModel ? "base" : "custom"]), r = ["custom", "base"].filter((e) => (n.get(e) ?? 0) > 0).map((e) => ({
|
|
17343
17377
|
value: e,
|
|
17344
17378
|
label: e === "custom" ? "My trainings" : "Official base",
|
|
17345
17379
|
count: n.get(e)
|
|
17346
|
-
})), i = [...
|
|
17380
|
+
})), i = [...Gy(e.filter((e) => Wy(e, t, "kind")), (e) => [e.baseModel]).entries()].toSorted((e, t) => t[0].localeCompare(e[0], void 0, { numeric: !0 })).map(([e, t]) => ({
|
|
17347
17381
|
value: e,
|
|
17348
17382
|
label: e,
|
|
17349
17383
|
count: t
|
|
17350
|
-
})), a =
|
|
17384
|
+
})), a = Gy(e.filter((e) => Wy(e, t, "release")), (e) => e.supportedDetectors), o = {
|
|
17351
17385
|
supported: 0,
|
|
17352
17386
|
"coral-only": 1,
|
|
17353
17387
|
unsupported: 2
|
|
@@ -17359,36 +17393,36 @@ function Wy(e, t) {
|
|
|
17359
17393
|
value: e,
|
|
17360
17394
|
label: e,
|
|
17361
17395
|
count: t,
|
|
17362
|
-
support:
|
|
17396
|
+
support: Vy(e)
|
|
17363
17397
|
})).toSorted((e, t) => o[e.support.kind] - o[t.support.kind] || e.value.localeCompare(t.value)),
|
|
17364
|
-
architecture: [...
|
|
17398
|
+
architecture: [...Gy(e.filter((e) => Wy(e, t, "detector")), (e) => [By(e.name).architecture]).entries()].toSorted((e, t) => e[0].localeCompare(t[0])).map(([e, t]) => ({
|
|
17365
17399
|
value: e,
|
|
17366
17400
|
label: e,
|
|
17367
17401
|
count: t
|
|
17368
17402
|
})),
|
|
17369
|
-
weight: [...
|
|
17403
|
+
weight: [...Gy(e.filter((e) => Wy(e, t, "architecture")), (e) => [By(e.name).weight]).entries()].toSorted((e, t) => e[0].localeCompare(t[0])).map(([e, t]) => ({
|
|
17370
17404
|
value: e,
|
|
17371
|
-
label:
|
|
17405
|
+
label: zy[e] ?? e.toUpperCase(),
|
|
17372
17406
|
count: t
|
|
17373
17407
|
})),
|
|
17374
|
-
dimensions: [...
|
|
17408
|
+
dimensions: [...Gy(e.filter((e) => Wy(e, t, "weight")), (e) => [Hy(e)]).entries()].toSorted((e, t) => e[0].localeCompare(t[0], void 0, { numeric: !0 })).map(([e, t]) => ({
|
|
17375
17409
|
value: e,
|
|
17376
17410
|
label: e.replace("x", "×"),
|
|
17377
17411
|
count: t
|
|
17378
17412
|
})),
|
|
17379
|
-
entries: e.filter((e) =>
|
|
17413
|
+
entries: e.filter((e) => Wy(e, t, "dimensions")).toSorted(Uy)
|
|
17380
17414
|
};
|
|
17381
17415
|
}
|
|
17382
17416
|
//#endregion
|
|
17383
17417
|
//#region src/tabs/FrigateSourceSections.tsx
|
|
17384
17418
|
d();
|
|
17385
|
-
var
|
|
17386
|
-
function
|
|
17419
|
+
var qy = "https://docs.frigate.video/integrations/plus/", Jy = "w-full px-3 py-1.5 text-xs rounded-md border border-border bg-surface text-foreground focus:outline-none focus:border-primary/50";
|
|
17420
|
+
function Yy(e, t) {
|
|
17387
17421
|
let [n, i] = r(null);
|
|
17388
17422
|
return u(() => {
|
|
17389
17423
|
if (!t) return;
|
|
17390
17424
|
let n = !1;
|
|
17391
|
-
return
|
|
17425
|
+
return gy(e).then((e) => {
|
|
17392
17426
|
n || i(e);
|
|
17393
17427
|
}).catch(() => {
|
|
17394
17428
|
n || i([]);
|
|
@@ -17397,7 +17431,7 @@ function qy(e, t) {
|
|
|
17397
17431
|
};
|
|
17398
17432
|
}, [e, t]), t ? n : [];
|
|
17399
17433
|
}
|
|
17400
|
-
function
|
|
17434
|
+
function Xy({ nodes: e }) {
|
|
17401
17435
|
return e === null ? /* @__PURE__ */ T("div", {
|
|
17402
17436
|
className: "text-[10px] text-foreground-subtle",
|
|
17403
17437
|
children: "Checking Coral availability…"
|
|
@@ -17413,11 +17447,11 @@ function Jy({ nodes: e }) {
|
|
|
17413
17447
|
]
|
|
17414
17448
|
});
|
|
17415
17449
|
}
|
|
17416
|
-
function
|
|
17417
|
-
let [o, s] = r(null), [c, l] = r(null), [d, f] = r(null), [p, m] = r({}), [h, g] = r(""), [_, v] = r(""), [y, b] = r(""), [x, S] = r(!1), [C, w] = r(null), [ee, te] = r(!1), ne =
|
|
17450
|
+
function Zy({ trpc: e, onRegistered: n, onError: i, onPrefillUpload: a }) {
|
|
17451
|
+
let [o, s] = r(null), [c, l] = r(null), [d, f] = r(null), [p, m] = r({}), [h, g] = r(""), [_, v] = r(""), [y, b] = r(""), [x, S] = r(!1), [C, w] = r(null), [ee, te] = r(!1), ne = Yy(e, ee), [O, k] = r(""), [A, j] = r(null), [re, M] = r(!1), [ie, ae] = r(!1), N = t(async () => {
|
|
17418
17452
|
S(!0);
|
|
17419
17453
|
try {
|
|
17420
|
-
f(await
|
|
17454
|
+
f(await py(e));
|
|
17421
17455
|
} catch (e) {
|
|
17422
17456
|
i(e instanceof Error ? e.message : "Failed to list Frigate+ models");
|
|
17423
17457
|
} finally {
|
|
@@ -17426,7 +17460,7 @@ function Yy({ trpc: e, onRegistered: n, onError: i, onPrefillUpload: a }) {
|
|
|
17426
17460
|
}, [e, i]);
|
|
17427
17461
|
u(() => {
|
|
17428
17462
|
let t = !1;
|
|
17429
|
-
return
|
|
17463
|
+
return dy(e).then((e) => {
|
|
17430
17464
|
t || (s(e), e.configured && N());
|
|
17431
17465
|
}).catch(() => {
|
|
17432
17466
|
t || s({
|
|
@@ -17440,7 +17474,7 @@ function Yy({ trpc: e, onRegistered: n, onError: i, onPrefillUpload: a }) {
|
|
|
17440
17474
|
let P = t(async () => {
|
|
17441
17475
|
S(!0), l(null);
|
|
17442
17476
|
try {
|
|
17443
|
-
let t = await
|
|
17477
|
+
let t = await fy(e);
|
|
17444
17478
|
l(t.ok ? "Connection OK — the key is valid." : t.error ?? "Connection failed");
|
|
17445
17479
|
} finally {
|
|
17446
17480
|
S(!1);
|
|
@@ -17448,14 +17482,14 @@ function Yy({ trpc: e, onRegistered: n, onError: i, onPrefillUpload: a }) {
|
|
|
17448
17482
|
}, [e]), F = t(async () => {
|
|
17449
17483
|
j(null);
|
|
17450
17484
|
let t = O.trim();
|
|
17451
|
-
if (!
|
|
17485
|
+
if (!Ry(t)) {
|
|
17452
17486
|
j("The key does not match the documented \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx:40-hex\" format shown in your Frigate+ account.");
|
|
17453
17487
|
return;
|
|
17454
17488
|
}
|
|
17455
17489
|
M(!0);
|
|
17456
17490
|
try {
|
|
17457
|
-
await
|
|
17458
|
-
let n = await
|
|
17491
|
+
await hy(e, t), k(""), ae(!1);
|
|
17492
|
+
let n = await dy(e);
|
|
17459
17493
|
s(n), n.configured && (await P(), await N());
|
|
17460
17494
|
} catch (e) {
|
|
17461
17495
|
j(e instanceof Error ? e.message : "Failed to save the API key");
|
|
@@ -17475,7 +17509,7 @@ function Yy({ trpc: e, onRegistered: n, onError: i, onPrefillUpload: a }) {
|
|
|
17475
17509
|
let I = /* @__PURE__ */ E("div", {
|
|
17476
17510
|
className: "space-y-1",
|
|
17477
17511
|
children: [
|
|
17478
|
-
/* @__PURE__ */ T(
|
|
17512
|
+
/* @__PURE__ */ T(by, {
|
|
17479
17513
|
label: "Frigate+ API key",
|
|
17480
17514
|
children: /* @__PURE__ */ T("input", {
|
|
17481
17515
|
type: "password",
|
|
@@ -17483,7 +17517,7 @@ function Yy({ trpc: e, onRegistered: n, onError: i, onPrefillUpload: a }) {
|
|
|
17483
17517
|
onChange: (e) => k(e.target.value),
|
|
17484
17518
|
placeholder: "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx:…",
|
|
17485
17519
|
autoComplete: "off",
|
|
17486
|
-
className:
|
|
17520
|
+
className: Jy
|
|
17487
17521
|
})
|
|
17488
17522
|
}),
|
|
17489
17523
|
/* @__PURE__ */ E("div", {
|
|
@@ -17564,7 +17598,7 @@ function Yy({ trpc: e, onRegistered: n, onError: i, onPrefillUpload: a }) {
|
|
|
17564
17598
|
"weight",
|
|
17565
17599
|
"dimensions"
|
|
17566
17600
|
]) {
|
|
17567
|
-
let n =
|
|
17601
|
+
let n = Ky(d, t)[e];
|
|
17568
17602
|
if (n.length === 0) continue;
|
|
17569
17603
|
let r = t[e];
|
|
17570
17604
|
(r === void 0 || !n.some((e) => e.value === r)) && (t = {
|
|
@@ -17573,12 +17607,12 @@ function Yy({ trpc: e, onRegistered: n, onError: i, onPrefillUpload: a }) {
|
|
|
17573
17607
|
});
|
|
17574
17608
|
}
|
|
17575
17609
|
return t;
|
|
17576
|
-
})(p), r =
|
|
17610
|
+
})(p), r = Ky(d, t);
|
|
17577
17611
|
if (r.entries.length === 0) return /* @__PURE__ */ T("div", {
|
|
17578
17612
|
className: "text-[11px] text-foreground-subtle",
|
|
17579
17613
|
children: "No models visible to this account yet — train one on Frigate+."
|
|
17580
17614
|
});
|
|
17581
|
-
let a = r.entries.find((e) => e.id === h) ?? r.entries[0], o =
|
|
17615
|
+
let a = r.entries.find((e) => e.id === h) ?? r.entries[0], o = Vy(t.detector ?? ""), s = o.kind === "unsupported" || o.kind === "coral-only" && (ne === null || ne.length === 0), c = (e, n) => {
|
|
17582
17616
|
let r = [
|
|
17583
17617
|
"kind",
|
|
17584
17618
|
"release",
|
|
@@ -17598,7 +17632,7 @@ function Yy({ trpc: e, onRegistered: n, onError: i, onPrefillUpload: a }) {
|
|
|
17598
17632
|
}, l = (e, n, r, i) => {
|
|
17599
17633
|
if (r.length === 0) return null;
|
|
17600
17634
|
let a = t[n] ?? "", o = (e) => i ? i(e) : `${e.label} (${e.count})`;
|
|
17601
|
-
return /* @__PURE__ */ T(
|
|
17635
|
+
return /* @__PURE__ */ T(by, {
|
|
17602
17636
|
label: e,
|
|
17603
17637
|
children: r.length === 1 ? /* @__PURE__ */ T("span", {
|
|
17604
17638
|
className: "inline-block rounded-md border border-border bg-surface px-2 py-1 text-xs text-foreground",
|
|
@@ -17606,7 +17640,7 @@ function Yy({ trpc: e, onRegistered: n, onError: i, onPrefillUpload: a }) {
|
|
|
17606
17640
|
}) : /* @__PURE__ */ T("select", {
|
|
17607
17641
|
value: a,
|
|
17608
17642
|
onChange: (e) => c(n, e.target.value),
|
|
17609
|
-
className:
|
|
17643
|
+
className: Jy,
|
|
17610
17644
|
children: r.map((e) => /* @__PURE__ */ T("option", {
|
|
17611
17645
|
value: e.value,
|
|
17612
17646
|
children: o(e)
|
|
@@ -17617,7 +17651,7 @@ function Yy({ trpc: e, onRegistered: n, onError: i, onPrefillUpload: a }) {
|
|
|
17617
17651
|
return /* @__PURE__ */ E(D, { children: [
|
|
17618
17652
|
l("Model group", "kind", r.kind, (e) => `${e.label} (${e.count})`),
|
|
17619
17653
|
l("Frigate+ release", "release", r.release),
|
|
17620
|
-
/* @__PURE__ */ E(
|
|
17654
|
+
/* @__PURE__ */ E(by, {
|
|
17621
17655
|
label: "Detector build",
|
|
17622
17656
|
children: [
|
|
17623
17657
|
r.detector.length === 1 ? /* @__PURE__ */ T("span", {
|
|
@@ -17626,7 +17660,7 @@ function Yy({ trpc: e, onRegistered: n, onError: i, onPrefillUpload: a }) {
|
|
|
17626
17660
|
}) : /* @__PURE__ */ T("select", {
|
|
17627
17661
|
value: t.detector ?? "",
|
|
17628
17662
|
onChange: (e) => c("detector", e.target.value),
|
|
17629
|
-
className:
|
|
17663
|
+
className: Jy,
|
|
17630
17664
|
children: r.detector.map((e) => /* @__PURE__ */ E("option", {
|
|
17631
17665
|
value: e.value,
|
|
17632
17666
|
children: [
|
|
@@ -17642,7 +17676,7 @@ function Yy({ trpc: e, onRegistered: n, onError: i, onPrefillUpload: a }) {
|
|
|
17642
17676
|
className: ["block text-[10px] pt-1", o.kind === "supported" ? "text-foreground-subtle" : "text-amber-300"].join(" "),
|
|
17643
17677
|
children: o.reason
|
|
17644
17678
|
}),
|
|
17645
|
-
o.kind === "coral-only" && /* @__PURE__ */ T(
|
|
17679
|
+
o.kind === "coral-only" && /* @__PURE__ */ T(Qy, {
|
|
17646
17680
|
onNeeded: () => te(!0),
|
|
17647
17681
|
nodes: ne
|
|
17648
17682
|
})
|
|
@@ -17651,12 +17685,12 @@ function Yy({ trpc: e, onRegistered: n, onError: i, onPrefillUpload: a }) {
|
|
|
17651
17685
|
l("Architecture", "architecture", r.architecture),
|
|
17652
17686
|
l("Weight", "weight", r.weight),
|
|
17653
17687
|
l("Input dimensions", "dimensions", r.dimensions),
|
|
17654
|
-
r.entries.length > 1 && /* @__PURE__ */ T(
|
|
17688
|
+
r.entries.length > 1 && /* @__PURE__ */ T(by, {
|
|
17655
17689
|
label: "Training",
|
|
17656
17690
|
children: /* @__PURE__ */ T("select", {
|
|
17657
17691
|
value: a.id,
|
|
17658
17692
|
onChange: (e) => g(e.target.value),
|
|
17659
|
-
className:
|
|
17693
|
+
className: Jy,
|
|
17660
17694
|
children: r.entries.map((e) => /* @__PURE__ */ E("option", {
|
|
17661
17695
|
value: e.id,
|
|
17662
17696
|
children: [e.trainDate ? e.trainDate.slice(0, 10) : e.id, e.verifiedImages > 0 ? ` · ${e.verifiedImages} verified images` : ""]
|
|
@@ -17684,7 +17718,7 @@ function Yy({ trpc: e, onRegistered: n, onError: i, onPrefillUpload: a }) {
|
|
|
17684
17718
|
}),
|
|
17685
17719
|
" · input",
|
|
17686
17720
|
" ",
|
|
17687
|
-
|
|
17721
|
+
Hy(a).replace("x", "×"),
|
|
17688
17722
|
a.hailoDevice ? /* @__PURE__ */ E(D, { children: [
|
|
17689
17723
|
" ",
|
|
17690
17724
|
"· hailo ",
|
|
@@ -17716,12 +17750,12 @@ function Yy({ trpc: e, onRegistered: n, onError: i, onPrefillUpload: a }) {
|
|
|
17716
17750
|
}),
|
|
17717
17751
|
/* @__PURE__ */ E("div", {
|
|
17718
17752
|
className: "grid grid-cols-1 sm:grid-cols-2 gap-3",
|
|
17719
|
-
children: [/* @__PURE__ */ T(
|
|
17753
|
+
children: [/* @__PURE__ */ T(xy, {
|
|
17720
17754
|
label: "Local model id",
|
|
17721
17755
|
value: _,
|
|
17722
17756
|
onChange: v,
|
|
17723
|
-
placeholder: `frigate-plus-${
|
|
17724
|
-
}), /* @__PURE__ */ T(
|
|
17757
|
+
placeholder: `frigate-plus-${By(a.name).architecture}`
|
|
17758
|
+
}), /* @__PURE__ */ T(xy, {
|
|
17725
17759
|
label: "Display name (optional)",
|
|
17726
17760
|
value: y,
|
|
17727
17761
|
onChange: b,
|
|
@@ -17730,17 +17764,17 @@ function Yy({ trpc: e, onRegistered: n, onError: i, onPrefillUpload: a }) {
|
|
|
17730
17764
|
}),
|
|
17731
17765
|
/* @__PURE__ */ T("button", {
|
|
17732
17766
|
onClick: () => {
|
|
17733
|
-
let t = _.trim() || `frigate-plus-${
|
|
17767
|
+
let t = _.trim() || `frigate-plus-${By(a.name).architecture}`;
|
|
17734
17768
|
S(!0), w(null);
|
|
17735
|
-
let r =
|
|
17769
|
+
let r = ly(e, (e) => {
|
|
17736
17770
|
w(`${e.phase}${e.pct === void 0 ? "" : ` ${e.pct}%`}${e.detail ? ` — ${e.detail}` : ""}`);
|
|
17737
17771
|
});
|
|
17738
|
-
|
|
17772
|
+
my(e, {
|
|
17739
17773
|
plusModelId: a.id,
|
|
17740
17774
|
modelId: t,
|
|
17741
17775
|
...y.trim() ? { name: y.trim() } : { name: a.name }
|
|
17742
17776
|
}).then((e) => {
|
|
17743
|
-
n(`Imported "${e.modelId}" (${(e.bytes / 1e6).toFixed(1)} MB).${
|
|
17777
|
+
n(`Imported "${e.modelId}" (${(e.bytes / 1e6).toFixed(1)} MB).${$y(e.conversions)} Use Library → Distribute to copy artifacts to other nodes.`);
|
|
17744
17778
|
}).catch((e) => {
|
|
17745
17779
|
i(e instanceof Error ? e.message : "Frigate+ import failed");
|
|
17746
17780
|
}).finally(() => {
|
|
@@ -17765,7 +17799,7 @@ function Yy({ trpc: e, onRegistered: n, onError: i, onPrefillUpload: a }) {
|
|
|
17765
17799
|
}), /* @__PURE__ */ E("div", { children: [
|
|
17766
17800
|
"With a key, this source lists exactly what your account has access to (",
|
|
17767
17801
|
/* @__PURE__ */ T("a", {
|
|
17768
|
-
href:
|
|
17802
|
+
href: qy,
|
|
17769
17803
|
target: "_blank",
|
|
17770
17804
|
rel: "noreferrer",
|
|
17771
17805
|
className: "text-primary hover:underline",
|
|
@@ -17777,7 +17811,7 @@ function Yy({ trpc: e, onRegistered: n, onError: i, onPrefillUpload: a }) {
|
|
|
17777
17811
|
I,
|
|
17778
17812
|
/* @__PURE__ */ T("div", {
|
|
17779
17813
|
className: "border-t border-border/50 pt-3 space-y-2",
|
|
17780
|
-
children:
|
|
17814
|
+
children: Iy.map((t) => /* @__PURE__ */ T(eb, {
|
|
17781
17815
|
trpc: e,
|
|
17782
17816
|
catalogId: t.id,
|
|
17783
17817
|
onRegistered: n,
|
|
@@ -17788,16 +17822,16 @@ function Yy({ trpc: e, onRegistered: n, onError: i, onPrefillUpload: a }) {
|
|
|
17788
17822
|
]
|
|
17789
17823
|
});
|
|
17790
17824
|
}
|
|
17791
|
-
function
|
|
17825
|
+
function Qy({ onNeeded: e, nodes: t }) {
|
|
17792
17826
|
return u(() => {
|
|
17793
17827
|
e();
|
|
17794
|
-
}, []), /* @__PURE__ */ T(
|
|
17828
|
+
}, []), /* @__PURE__ */ T(Xy, { nodes: t });
|
|
17795
17829
|
}
|
|
17796
|
-
function
|
|
17830
|
+
function $y(e) {
|
|
17797
17831
|
return e.length === 0 ? "" : ` Engine conversions: ${e.map((e) => e.ok ? `${e.format} ✓${e.nodeId ? ` (${e.nodeId})` : ""}` : `${e.format} ✗ — ${e.error ?? "failed"}`).join("; ")}.`;
|
|
17798
17832
|
}
|
|
17799
|
-
function
|
|
17800
|
-
let o =
|
|
17833
|
+
function eb({ trpc: e, catalogId: t, onRegistered: n, onError: i, onPrefillUpload: a }) {
|
|
17834
|
+
let o = Iy.find((e) => e.id === t), [s, c] = r(!1), l = Yy(e, o?.format === "tflite");
|
|
17801
17835
|
if (!o) return null;
|
|
17802
17836
|
let u = o.format === "tflite" && (l === null || l.length === 0);
|
|
17803
17837
|
return /* @__PURE__ */ E("div", {
|
|
@@ -17826,12 +17860,12 @@ function Qy({ trpc: e, catalogId: t, onRegistered: n, onError: i, onPrefillUploa
|
|
|
17826
17860
|
". EdgeTPU tflite — engine conversion does not apply."
|
|
17827
17861
|
]
|
|
17828
17862
|
}),
|
|
17829
|
-
o.format === "tflite" && /* @__PURE__ */ T(
|
|
17863
|
+
o.format === "tflite" && /* @__PURE__ */ T(Xy, { nodes: l }),
|
|
17830
17864
|
/* @__PURE__ */ E("div", {
|
|
17831
17865
|
className: "flex items-center gap-2 flex-wrap",
|
|
17832
17866
|
children: [/* @__PURE__ */ T("button", {
|
|
17833
17867
|
onClick: () => {
|
|
17834
|
-
c(!0),
|
|
17868
|
+
c(!0), uy(e, { catalogId: o.id }).then((e) => {
|
|
17835
17869
|
n(`Imported "${e.modelId}" (${(e.bytes / 1e6).toFixed(1)} MB, downloaded to the hub). It registers with its public URL, so other nodes download it on demand.`);
|
|
17836
17870
|
}).catch((e) => {
|
|
17837
17871
|
i(e instanceof Error ? e.message : "Catalog import failed");
|
|
@@ -17857,91 +17891,91 @@ function Qy({ trpc: e, catalogId: t, onRegistered: n, onError: i, onPrefillUploa
|
|
|
17857
17891
|
}
|
|
17858
17892
|
//#endregion
|
|
17859
17893
|
//#region src/scrypted/scrypted-catalog-selectors.ts
|
|
17860
|
-
var
|
|
17894
|
+
var tb = [
|
|
17861
17895
|
"yolov9t",
|
|
17862
17896
|
"yolov9s",
|
|
17863
17897
|
"yolov9m",
|
|
17864
17898
|
"yolov9c"
|
|
17865
|
-
],
|
|
17899
|
+
], nb = ["relu", "relu_test"], rb = [
|
|
17866
17900
|
"coreml",
|
|
17867
17901
|
"onnx",
|
|
17868
17902
|
"openvino",
|
|
17869
17903
|
"tflite"
|
|
17870
|
-
],
|
|
17904
|
+
], ib = [
|
|
17871
17905
|
"family",
|
|
17872
17906
|
"variant",
|
|
17873
17907
|
"format",
|
|
17874
17908
|
"precision",
|
|
17875
17909
|
"inputSize"
|
|
17876
|
-
],
|
|
17910
|
+
], ab = {
|
|
17877
17911
|
yolov9t: "T",
|
|
17878
17912
|
yolov9s: "S",
|
|
17879
17913
|
yolov9m: "M",
|
|
17880
17914
|
yolov9c: "C"
|
|
17881
|
-
},
|
|
17915
|
+
}, ob = {
|
|
17882
17916
|
relu: "Standard",
|
|
17883
17917
|
relu_test: "Test"
|
|
17884
|
-
},
|
|
17918
|
+
}, sb = {
|
|
17885
17919
|
coreml: "CoreML",
|
|
17886
17920
|
onnx: "ONNX",
|
|
17887
17921
|
openvino: "OpenVINO",
|
|
17888
17922
|
tflite: "TFLite"
|
|
17889
17923
|
};
|
|
17890
|
-
function ob(e) {
|
|
17891
|
-
return $y.includes(e);
|
|
17892
|
-
}
|
|
17893
|
-
function sb(e) {
|
|
17894
|
-
return eb.includes(e);
|
|
17895
|
-
}
|
|
17896
17924
|
function cb(e) {
|
|
17897
17925
|
return tb.includes(e);
|
|
17898
17926
|
}
|
|
17899
17927
|
function lb(e) {
|
|
17900
|
-
return
|
|
17928
|
+
return nb.includes(e);
|
|
17901
17929
|
}
|
|
17902
17930
|
function ub(e) {
|
|
17903
|
-
return
|
|
17931
|
+
return rb.includes(e);
|
|
17904
17932
|
}
|
|
17905
17933
|
function db(e) {
|
|
17906
|
-
|
|
17934
|
+
return typeof e == "string" ? e.includes("x") || e.includes("×") ? e.replace("×", "x") : e : `${e.width}x${e.height}`;
|
|
17907
17935
|
}
|
|
17908
|
-
function fb(e
|
|
17936
|
+
function fb(e) {
|
|
17937
|
+
return e.replace("x", "×");
|
|
17938
|
+
}
|
|
17939
|
+
function pb(e) {
|
|
17940
|
+
if (!(!cb(e.family) || !lb(e.variant) || !ub(e.format))) return e;
|
|
17941
|
+
}
|
|
17942
|
+
function mb(e, t) {
|
|
17909
17943
|
return e.filter((e) => {
|
|
17910
|
-
let n =
|
|
17911
|
-
return !(!n || t.family !== void 0 && n.family !== t.family || t.variant !== void 0 && n.variant !== t.variant || t.format !== void 0 && n.format !== t.format || t.precision !== void 0 && n.precision !== t.precision || t.inputSize !== void 0 &&
|
|
17944
|
+
let n = pb(e);
|
|
17945
|
+
return !(!n || t.family !== void 0 && n.family !== t.family || t.variant !== void 0 && n.variant !== t.variant || t.format !== void 0 && n.format !== t.format || t.precision !== void 0 && n.precision !== t.precision || t.inputSize !== void 0 && db(n.inputSize) !== t.inputSize);
|
|
17912
17946
|
});
|
|
17913
17947
|
}
|
|
17914
|
-
function
|
|
17948
|
+
function hb(e) {
|
|
17915
17949
|
let t = /* @__PURE__ */ new Set(), n = [];
|
|
17916
17950
|
for (let r of e) t.has(r) || (t.add(r), n.push(r));
|
|
17917
17951
|
return n;
|
|
17918
17952
|
}
|
|
17919
|
-
function
|
|
17920
|
-
let t = new Set(e.map((e) => e.family).filter((e) =>
|
|
17921
|
-
return
|
|
17953
|
+
function gb(e) {
|
|
17954
|
+
let t = new Set(e.map((e) => e.family).filter((e) => cb(e)));
|
|
17955
|
+
return tb.filter((e) => t.has(e)).map((e) => ({
|
|
17922
17956
|
value: e,
|
|
17923
|
-
label:
|
|
17957
|
+
label: ab[e]
|
|
17924
17958
|
}));
|
|
17925
17959
|
}
|
|
17926
|
-
function
|
|
17927
|
-
let n =
|
|
17928
|
-
return
|
|
17960
|
+
function _b(e, t) {
|
|
17961
|
+
let n = mb(e, { family: t.family }), r = new Set(n.map((e) => e.variant).filter((e) => lb(e)));
|
|
17962
|
+
return nb.filter((e) => r.has(e)).map((e) => ({
|
|
17929
17963
|
value: e,
|
|
17930
|
-
label:
|
|
17964
|
+
label: ob[e]
|
|
17931
17965
|
}));
|
|
17932
17966
|
}
|
|
17933
|
-
function
|
|
17934
|
-
let n =
|
|
17967
|
+
function vb(e, t) {
|
|
17968
|
+
let n = mb(e, {
|
|
17935
17969
|
family: t.family,
|
|
17936
17970
|
variant: t.variant
|
|
17937
|
-
}), r = new Set(n.map((e) => e.format).filter((e) =>
|
|
17938
|
-
return
|
|
17971
|
+
}), r = new Set(n.map((e) => e.format).filter((e) => ub(e)));
|
|
17972
|
+
return rb.filter((e) => r.has(e)).map((e) => ({
|
|
17939
17973
|
value: e,
|
|
17940
|
-
label:
|
|
17974
|
+
label: sb[e]
|
|
17941
17975
|
}));
|
|
17942
17976
|
}
|
|
17943
|
-
function
|
|
17944
|
-
return
|
|
17977
|
+
function yb(e, t) {
|
|
17978
|
+
return hb(mb(e, {
|
|
17945
17979
|
family: t.family,
|
|
17946
17980
|
variant: t.variant,
|
|
17947
17981
|
format: t.format
|
|
@@ -17950,34 +17984,34 @@ function _b(e, t) {
|
|
|
17950
17984
|
label: e
|
|
17951
17985
|
}));
|
|
17952
17986
|
}
|
|
17953
|
-
function
|
|
17954
|
-
return
|
|
17987
|
+
function bb(e, t) {
|
|
17988
|
+
return hb(mb(e, {
|
|
17955
17989
|
family: t.family,
|
|
17956
17990
|
variant: t.variant,
|
|
17957
17991
|
format: t.format,
|
|
17958
17992
|
precision: t.precision
|
|
17959
|
-
}).map((e) =>
|
|
17993
|
+
}).map((e) => db(e.inputSize))).map((e) => ({
|
|
17960
17994
|
value: e,
|
|
17961
|
-
label:
|
|
17995
|
+
label: fb(e)
|
|
17962
17996
|
}));
|
|
17963
17997
|
}
|
|
17964
|
-
function
|
|
17965
|
-
let n = t.family, r = n !== void 0 &&
|
|
17998
|
+
function xb(e, t) {
|
|
17999
|
+
let n = t.family, r = n !== void 0 && gb(e).some((e) => e.value === n), i = {};
|
|
17966
18000
|
if (!r) return i;
|
|
17967
18001
|
i.family = n;
|
|
17968
18002
|
let a = t.variant;
|
|
17969
|
-
a !== void 0 &&
|
|
18003
|
+
a !== void 0 && _b(e, i).some((e) => e.value === a) && (i.variant = a);
|
|
17970
18004
|
let o = t.format;
|
|
17971
|
-
o !== void 0 &&
|
|
18005
|
+
o !== void 0 && vb(e, i).some((e) => e.value === o) && (i.format = o);
|
|
17972
18006
|
let s = t.precision;
|
|
17973
|
-
s !== void 0 &&
|
|
18007
|
+
s !== void 0 && yb(e, i).some((e) => e.value === s) && (i.precision = s);
|
|
17974
18008
|
let c = t.inputSize;
|
|
17975
|
-
return c !== void 0 &&
|
|
18009
|
+
return c !== void 0 && bb(e, i).some((e) => e.value === c) && (i.inputSize = c), i;
|
|
17976
18010
|
}
|
|
17977
|
-
function
|
|
17978
|
-
let r =
|
|
18011
|
+
function Sb(e, t, n) {
|
|
18012
|
+
let r = ib.indexOf(t), i = {};
|
|
17979
18013
|
for (let t = 0; t < r; t++) {
|
|
17980
|
-
let n =
|
|
18014
|
+
let n = ib[t], r = e[n];
|
|
17981
18015
|
r !== void 0 && Object.assign(i, { [n]: r });
|
|
17982
18016
|
}
|
|
17983
18017
|
return {
|
|
@@ -17985,74 +18019,74 @@ function bb(e, t, n) {
|
|
|
17985
18019
|
[t]: n
|
|
17986
18020
|
};
|
|
17987
18021
|
}
|
|
17988
|
-
function
|
|
17989
|
-
let n =
|
|
18022
|
+
function Cb(e, t) {
|
|
18023
|
+
let n = xb(e, t), r = gb(e);
|
|
17990
18024
|
n.family === void 0 && r.length === 1 && (n = {
|
|
17991
18025
|
...n,
|
|
17992
18026
|
family: r[0].value
|
|
17993
18027
|
});
|
|
17994
|
-
let i =
|
|
18028
|
+
let i = _b(e, n);
|
|
17995
18029
|
n.variant === void 0 && i.length === 1 && (n = {
|
|
17996
18030
|
...n,
|
|
17997
18031
|
variant: i[0].value
|
|
17998
18032
|
});
|
|
17999
|
-
let a =
|
|
18033
|
+
let a = vb(e, n);
|
|
18000
18034
|
n.format === void 0 && a.length === 1 && (n = {
|
|
18001
18035
|
...n,
|
|
18002
18036
|
format: a[0].value
|
|
18003
18037
|
});
|
|
18004
|
-
let o =
|
|
18038
|
+
let o = yb(e, n);
|
|
18005
18039
|
n.precision === void 0 && o.length === 1 && (n = {
|
|
18006
18040
|
...n,
|
|
18007
18041
|
precision: o[0].value
|
|
18008
18042
|
});
|
|
18009
|
-
let s =
|
|
18043
|
+
let s = bb(e, n);
|
|
18010
18044
|
return n.inputSize === void 0 && s.length === 1 && (n = {
|
|
18011
18045
|
...n,
|
|
18012
18046
|
inputSize: s[0].value
|
|
18013
18047
|
}), n;
|
|
18014
18048
|
}
|
|
18015
|
-
function
|
|
18049
|
+
function wb(e, t) {
|
|
18016
18050
|
if (t.family === void 0 || t.variant === void 0 || t.format === void 0 || t.precision === void 0 || t.inputSize === void 0) return;
|
|
18017
|
-
let n =
|
|
18051
|
+
let n = mb(e, t);
|
|
18018
18052
|
return n.length === 1 ? n[0] : void 0;
|
|
18019
18053
|
}
|
|
18020
|
-
function
|
|
18021
|
-
return
|
|
18054
|
+
function Tb(e) {
|
|
18055
|
+
return sb[e];
|
|
18022
18056
|
}
|
|
18023
|
-
function
|
|
18024
|
-
return `${e.family === void 0 ? "—" :
|
|
18057
|
+
function Eb(e) {
|
|
18058
|
+
return `${e.family === void 0 ? "—" : ab[e.family]} → ${e.variant === void 0 ? "—" : ob[e.variant]} → ${e.format === void 0 ? "—" : sb[e.format]} → ${e.precision ?? "—"} → ${e.inputSize === void 0 ? "—" : fb(e.inputSize)}`;
|
|
18025
18059
|
}
|
|
18026
|
-
function
|
|
18060
|
+
function Db(e, t) {
|
|
18027
18061
|
return e.find((e) => e.manifestId === t)?.status;
|
|
18028
18062
|
}
|
|
18029
|
-
function
|
|
18063
|
+
function Ob(e) {
|
|
18030
18064
|
if (e.imported) return "Already imported on this hub.";
|
|
18031
18065
|
if (e.availabilityKnown === !1) return "Import blocked: hub availability is unknown and cannot be verified.";
|
|
18032
18066
|
if (e.driftStatus !== "ok") return e.driftStatus === "missing" ? "Import blocked: remote artifact is missing from the verified tree." : e.driftStatus === "size-changed" ? "Import blocked: remote artifact size no longer matches the verified manifesto." : e.driftStatus === "unavailable" ? "Import blocked: catalog drift is unavailable and cannot be verified." : "Import blocked: catalog drift is unknown and cannot be verified.";
|
|
18033
18067
|
}
|
|
18034
|
-
function
|
|
18068
|
+
function kb(e, t) {
|
|
18035
18069
|
let n = e[t];
|
|
18036
18070
|
return typeof n == "object" && !!n && Object.keys(n).length > 0;
|
|
18037
18071
|
}
|
|
18038
18072
|
//#endregion
|
|
18039
18073
|
//#region src/tabs/ScryptedTab.tsx
|
|
18040
18074
|
d();
|
|
18041
|
-
var
|
|
18042
|
-
function
|
|
18075
|
+
var Ab = "w-full px-3 py-1.5 text-xs rounded-md border border-border bg-surface text-foreground focus:outline-none focus:border-primary/50 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-primary motion-reduce:transition-none disabled:opacity-50", jb = "px-4 py-1.5 text-xs font-medium rounded-md bg-primary text-primary-foreground hover:bg-primary/90 disabled:opacity-50 transition-colors focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-primary motion-reduce:transition-none", Mb = "px-2.5 py-1 text-[10px] font-medium rounded-md border border-border text-foreground-subtle hover:text-foreground hover:bg-surface-hover transition-colors focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-primary motion-reduce:transition-none";
|
|
18076
|
+
function Nb(e) {
|
|
18043
18077
|
let t = e.model.formats[e.format]?.sizeMB;
|
|
18044
18078
|
return typeof t == "number" && t > 0 ? t : e.files.reduce((e, t) => e + t.size, 0) / 1e6;
|
|
18045
18079
|
}
|
|
18046
|
-
function
|
|
18047
|
-
let t = e.model.formats[e.format]?.runtimes, n = [
|
|
18080
|
+
function Pb(e) {
|
|
18081
|
+
let t = e.model.formats[e.format]?.runtimes, n = [Tb(e.format)];
|
|
18048
18082
|
return t && t.length > 0 ? [...n, ...t] : n;
|
|
18049
18083
|
}
|
|
18050
|
-
function
|
|
18084
|
+
function Fb({ trpc: e, onImported: n }) {
|
|
18051
18085
|
let [i, a] = r(null), [c, l] = r([]), [d, f] = r(null), [p, m] = r(null), [h, g] = r({}), [_, v] = r(!1), [y, b] = r(null), x = o(0), S = o(!1), C = t(async () => {
|
|
18052
18086
|
let t = ++x.current;
|
|
18053
18087
|
m(null);
|
|
18054
18088
|
try {
|
|
18055
|
-
let n =
|
|
18089
|
+
let n = _y(e), r = Kv(e).then((e) => ({
|
|
18056
18090
|
ok: !0,
|
|
18057
18091
|
value: e
|
|
18058
18092
|
}), (e) => ({
|
|
@@ -18060,7 +18094,7 @@ function Nb({ trpc: e, onImported: n }) {
|
|
|
18060
18094
|
cause: e
|
|
18061
18095
|
})), [i, o] = await Promise.all([n, r]);
|
|
18062
18096
|
if (t !== x.current) return;
|
|
18063
|
-
a(i.entries), l(i.drift), f(o.ok ? o.value : null), g((e) =>
|
|
18097
|
+
a(i.entries), l(i.drift), f(o.ok ? o.value : null), g((e) => Cb(i.entries, e));
|
|
18064
18098
|
} catch (e) {
|
|
18065
18099
|
if (t !== x.current) return;
|
|
18066
18100
|
a(null), m(e instanceof Error ? e.message : "Failed to load Scrypted catalog");
|
|
@@ -18069,17 +18103,17 @@ function Nb({ trpc: e, onImported: n }) {
|
|
|
18069
18103
|
u(() => {
|
|
18070
18104
|
C();
|
|
18071
18105
|
}, [C]);
|
|
18072
|
-
let w = s(() =>
|
|
18106
|
+
let w = s(() => gb(i ?? []), [i]), D = s(() => _b(i ?? [], h), [i, h]), ee = s(() => vb(i ?? [], h), [i, h]), te = s(() => yb(i ?? [], h), [i, h]), ne = s(() => bb(i ?? [], h), [i, h]), O = s(() => i ? wb(i, h) : void 0, [i, h]), k = d !== null, A = k && O !== void 0 && kb(d, O.id), j = O === void 0 ? void 0 : Db(c, O.id), re = O ? Ob({
|
|
18073
18107
|
driftStatus: j,
|
|
18074
18108
|
imported: A,
|
|
18075
18109
|
availabilityKnown: k
|
|
18076
18110
|
}) : void 0, M = (e, t) => {
|
|
18077
|
-
i !== null && (b(null), g(
|
|
18111
|
+
i !== null && (b(null), g(Cb(i, Sb(h, e, t))));
|
|
18078
18112
|
}, ie = t(async () => {
|
|
18079
18113
|
if (!(S.current || _) && !(O === void 0 || re !== void 0)) {
|
|
18080
18114
|
S.current = !0, v(!0), b(null);
|
|
18081
18115
|
try {
|
|
18082
|
-
await
|
|
18116
|
+
await vy(e, { manifestId: O.id }), await C(), n?.();
|
|
18083
18117
|
} catch (e) {
|
|
18084
18118
|
b(e instanceof Error ? e.message : "Scrypted import failed");
|
|
18085
18119
|
} finally {
|
|
@@ -18109,7 +18143,7 @@ function Nb({ trpc: e, onImported: n }) {
|
|
|
18109
18143
|
}), /* @__PURE__ */ T("button", {
|
|
18110
18144
|
type: "button",
|
|
18111
18145
|
onClick: () => void C(),
|
|
18112
|
-
className:
|
|
18146
|
+
className: Mb,
|
|
18113
18147
|
children: "Retry"
|
|
18114
18148
|
})]
|
|
18115
18149
|
}) : i !== null && i.length === 0 ? /* @__PURE__ */ T("div", {
|
|
@@ -18129,7 +18163,7 @@ function Nb({ trpc: e, onImported: n }) {
|
|
|
18129
18163
|
type: "button",
|
|
18130
18164
|
onClick: () => void C(),
|
|
18131
18165
|
disabled: _,
|
|
18132
|
-
className:
|
|
18166
|
+
className: Mb,
|
|
18133
18167
|
children: "Refresh"
|
|
18134
18168
|
})]
|
|
18135
18169
|
}),
|
|
@@ -18142,18 +18176,18 @@ function Nb({ trpc: e, onImported: n }) {
|
|
|
18142
18176
|
}), /* @__PURE__ */ T("span", {
|
|
18143
18177
|
className: "font-mono",
|
|
18144
18178
|
"data-testid": "scrypted-artifact-trace",
|
|
18145
|
-
children:
|
|
18179
|
+
children: Eb(h)
|
|
18146
18180
|
})]
|
|
18147
18181
|
}),
|
|
18148
18182
|
/* @__PURE__ */ E("div", {
|
|
18149
18183
|
className: "grid grid-cols-1 sm:grid-cols-2 gap-3",
|
|
18150
18184
|
children: [
|
|
18151
|
-
/* @__PURE__ */ T(
|
|
18185
|
+
/* @__PURE__ */ T(by, {
|
|
18152
18186
|
label: "Family",
|
|
18153
18187
|
children: /* @__PURE__ */ E("select", {
|
|
18154
18188
|
value: h.family ?? "",
|
|
18155
18189
|
onChange: (e) => M("family", e.target.value),
|
|
18156
|
-
className:
|
|
18190
|
+
className: Ab,
|
|
18157
18191
|
children: [/* @__PURE__ */ T("option", {
|
|
18158
18192
|
value: "",
|
|
18159
18193
|
disabled: !0,
|
|
@@ -18164,13 +18198,13 @@ function Nb({ trpc: e, onImported: n }) {
|
|
|
18164
18198
|
}, e.value))]
|
|
18165
18199
|
})
|
|
18166
18200
|
}),
|
|
18167
|
-
/* @__PURE__ */ T(
|
|
18201
|
+
/* @__PURE__ */ T(by, {
|
|
18168
18202
|
label: "Variant",
|
|
18169
18203
|
children: /* @__PURE__ */ E("select", {
|
|
18170
18204
|
value: h.variant ?? "",
|
|
18171
18205
|
onChange: (e) => M("variant", e.target.value),
|
|
18172
18206
|
disabled: D.length === 0,
|
|
18173
|
-
className:
|
|
18207
|
+
className: Ab,
|
|
18174
18208
|
children: [/* @__PURE__ */ T("option", {
|
|
18175
18209
|
value: "",
|
|
18176
18210
|
disabled: !0,
|
|
@@ -18181,13 +18215,13 @@ function Nb({ trpc: e, onImported: n }) {
|
|
|
18181
18215
|
}, e.value))]
|
|
18182
18216
|
})
|
|
18183
18217
|
}),
|
|
18184
|
-
/* @__PURE__ */ T(
|
|
18218
|
+
/* @__PURE__ */ T(by, {
|
|
18185
18219
|
label: "Runtime",
|
|
18186
18220
|
children: /* @__PURE__ */ E("select", {
|
|
18187
18221
|
value: h.format ?? "",
|
|
18188
18222
|
onChange: (e) => M("format", e.target.value),
|
|
18189
18223
|
disabled: ee.length === 0,
|
|
18190
|
-
className:
|
|
18224
|
+
className: Ab,
|
|
18191
18225
|
children: [/* @__PURE__ */ T("option", {
|
|
18192
18226
|
value: "",
|
|
18193
18227
|
disabled: !0,
|
|
@@ -18198,13 +18232,13 @@ function Nb({ trpc: e, onImported: n }) {
|
|
|
18198
18232
|
}, e.value))]
|
|
18199
18233
|
})
|
|
18200
18234
|
}),
|
|
18201
|
-
/* @__PURE__ */ T(
|
|
18235
|
+
/* @__PURE__ */ T(by, {
|
|
18202
18236
|
label: "Precision",
|
|
18203
18237
|
children: /* @__PURE__ */ E("select", {
|
|
18204
18238
|
value: h.precision ?? "",
|
|
18205
18239
|
onChange: (e) => M("precision", e.target.value),
|
|
18206
18240
|
disabled: te.length === 0,
|
|
18207
|
-
className:
|
|
18241
|
+
className: Ab,
|
|
18208
18242
|
children: [/* @__PURE__ */ T("option", {
|
|
18209
18243
|
value: "",
|
|
18210
18244
|
disabled: !0,
|
|
@@ -18215,13 +18249,13 @@ function Nb({ trpc: e, onImported: n }) {
|
|
|
18215
18249
|
}, e.value))]
|
|
18216
18250
|
})
|
|
18217
18251
|
}),
|
|
18218
|
-
/* @__PURE__ */ T(
|
|
18252
|
+
/* @__PURE__ */ T(by, {
|
|
18219
18253
|
label: "Input",
|
|
18220
18254
|
children: /* @__PURE__ */ E("select", {
|
|
18221
18255
|
value: h.inputSize ?? "",
|
|
18222
18256
|
onChange: (e) => M("inputSize", e.target.value),
|
|
18223
18257
|
disabled: ne.length === 0,
|
|
18224
|
-
className:
|
|
18258
|
+
className: Ab,
|
|
18225
18259
|
children: [/* @__PURE__ */ T("option", {
|
|
18226
18260
|
value: "",
|
|
18227
18261
|
disabled: !0,
|
|
@@ -18251,7 +18285,7 @@ function Nb({ trpc: e, onImported: n }) {
|
|
|
18251
18285
|
})]
|
|
18252
18286
|
}), /* @__PURE__ */ T("span", {
|
|
18253
18287
|
className: "text-[10px] px-1.5 py-0.5 rounded bg-primary/15 text-primary font-medium",
|
|
18254
|
-
children:
|
|
18288
|
+
children: Tb(O.format)
|
|
18255
18289
|
})]
|
|
18256
18290
|
}),
|
|
18257
18291
|
/* @__PURE__ */ E("div", {
|
|
@@ -18267,7 +18301,7 @@ function Nb({ trpc: e, onImported: n }) {
|
|
|
18267
18301
|
children: "Size"
|
|
18268
18302
|
}), /* @__PURE__ */ T("span", {
|
|
18269
18303
|
className: "font-mono text-foreground",
|
|
18270
|
-
children:
|
|
18304
|
+
children: Fv(Nb(O))
|
|
18271
18305
|
})]
|
|
18272
18306
|
}),
|
|
18273
18307
|
/* @__PURE__ */ E("div", {
|
|
@@ -18277,7 +18311,7 @@ function Nb({ trpc: e, onImported: n }) {
|
|
|
18277
18311
|
children: "Runtime"
|
|
18278
18312
|
}), /* @__PURE__ */ T("span", {
|
|
18279
18313
|
className: "text-foreground",
|
|
18280
|
-
children:
|
|
18314
|
+
children: Pb(O).join(" · ")
|
|
18281
18315
|
})]
|
|
18282
18316
|
}),
|
|
18283
18317
|
/* @__PURE__ */ E("div", {
|
|
@@ -18305,7 +18339,7 @@ function Nb({ trpc: e, onImported: n }) {
|
|
|
18305
18339
|
className: "font-mono text-[11px] text-foreground break-all",
|
|
18306
18340
|
children: [e.relativePath, /* @__PURE__ */ E("span", {
|
|
18307
18341
|
className: "text-foreground-subtle",
|
|
18308
|
-
children: [" · ",
|
|
18342
|
+
children: [" · ", Pv(e.size)]
|
|
18309
18343
|
})]
|
|
18310
18344
|
}, e.relativePath))
|
|
18311
18345
|
})] }),
|
|
@@ -18333,14 +18367,14 @@ function Nb({ trpc: e, onImported: n }) {
|
|
|
18333
18367
|
type: "button",
|
|
18334
18368
|
onClick: () => void ie(),
|
|
18335
18369
|
disabled: _ || re !== void 0,
|
|
18336
|
-
className:
|
|
18370
|
+
className: jb,
|
|
18337
18371
|
children: _ ? "Importing…" : "Retry"
|
|
18338
18372
|
})]
|
|
18339
18373
|
}) : /* @__PURE__ */ T("button", {
|
|
18340
18374
|
type: "button",
|
|
18341
18375
|
onClick: () => void ie(),
|
|
18342
18376
|
disabled: _ || re !== void 0,
|
|
18343
|
-
className:
|
|
18377
|
+
className: jb,
|
|
18344
18378
|
children: _ ? "Importing…" : "Import"
|
|
18345
18379
|
}), re !== void 0 && !A && /* @__PURE__ */ T("div", {
|
|
18346
18380
|
className: "text-[11px] text-amber-300",
|
|
@@ -18356,13 +18390,13 @@ function Nb({ trpc: e, onImported: n }) {
|
|
|
18356
18390
|
//#endregion
|
|
18357
18391
|
//#region src/tabs/RegisterTab.tsx
|
|
18358
18392
|
d();
|
|
18359
|
-
var
|
|
18393
|
+
var Ib = [
|
|
18360
18394
|
"onnx",
|
|
18361
18395
|
"openvino",
|
|
18362
18396
|
"coreml",
|
|
18363
18397
|
"tflite",
|
|
18364
18398
|
"pt"
|
|
18365
|
-
],
|
|
18399
|
+
], Lb = [
|
|
18366
18400
|
"yolo",
|
|
18367
18401
|
"yolonas",
|
|
18368
18402
|
"ssd",
|
|
@@ -18375,11 +18409,11 @@ var Pb = [
|
|
|
18375
18409
|
"ctc",
|
|
18376
18410
|
"plate-slots",
|
|
18377
18411
|
"saliency"
|
|
18378
|
-
],
|
|
18412
|
+
], Rb = [
|
|
18379
18413
|
".onnx",
|
|
18380
18414
|
".tflite",
|
|
18381
18415
|
".pt"
|
|
18382
|
-
],
|
|
18416
|
+
], zb = [
|
|
18383
18417
|
{
|
|
18384
18418
|
value: "camstack",
|
|
18385
18419
|
label: "CamStack"
|
|
@@ -18401,14 +18435,14 @@ var Pb = [
|
|
|
18401
18435
|
label: "Scrypted"
|
|
18402
18436
|
}
|
|
18403
18437
|
];
|
|
18404
|
-
function
|
|
18405
|
-
let [i, a] = r("upload"), [c, l] = r(""), [u, d] = r(""), [f, p] = r("object-detection"), [m, h] = r("onnx"), [g, _] = r(""), [v, y] = r(""), [b, x] = r(0), [S, C] = r(320), [w, ee] = r(320), [te, ne] = r(""), [O, k] = r(null), [A, j] = r({ state: "idle" }), [re, M] = r(!1), [ie, ae] = r(null), [N, P] = r(null), F = o(null), I = s(() =>
|
|
18438
|
+
function Bb({ trpc: e, onRegistered: n }) {
|
|
18439
|
+
let [i, a] = r("upload"), [c, l] = r(""), [u, d] = r(""), [f, p] = r("object-detection"), [m, h] = r("onnx"), [g, _] = r(""), [v, y] = r(""), [b, x] = r(0), [S, C] = r(320), [w, ee] = r(320), [te, ne] = r(""), [O, k] = r(null), [A, j] = r({ state: "idle" }), [re, M] = r(!1), [ie, ae] = r(null), [N, P] = r(null), F = o(null), I = s(() => My(te), [te]), oe = t(async (t) => {
|
|
18406
18440
|
ae(null), j({
|
|
18407
18441
|
state: "uploading",
|
|
18408
18442
|
pct: 0
|
|
18409
18443
|
});
|
|
18410
18444
|
try {
|
|
18411
|
-
let n = await
|
|
18445
|
+
let n = await oy(e, t, (e, t) => {
|
|
18412
18446
|
j({
|
|
18413
18447
|
state: "uploading",
|
|
18414
18448
|
pct: Math.round(e / t * 100)
|
|
@@ -18440,7 +18474,7 @@ function Rb({ trpc: e, onRegistered: n }) {
|
|
|
18440
18474
|
if (t === null) return ae(i === "upload" ? "Upload the model file first" : "Model URL is required");
|
|
18441
18475
|
M(!0);
|
|
18442
18476
|
try {
|
|
18443
|
-
let r =
|
|
18477
|
+
let r = Lb.find((e) => e === g), i = Py({
|
|
18444
18478
|
type: "custom",
|
|
18445
18479
|
modelId: c.trim(),
|
|
18446
18480
|
name: u.trim() || c.trim(),
|
|
@@ -18452,7 +18486,7 @@ function Rb({ trpc: e, onRegistered: n }) {
|
|
|
18452
18486
|
inputHeight: w,
|
|
18453
18487
|
labels: I
|
|
18454
18488
|
});
|
|
18455
|
-
await
|
|
18489
|
+
await qv(e, i), P(t.kind === "upload" ? `Registered "${i.entry.name}" for step ${f}. It is resident on the hub — use Library → Distribute to copy it to other nodes.` : `Registered "${i.entry.name}" for step ${f}.`), n();
|
|
18456
18490
|
} catch (e) {
|
|
18457
18491
|
ae(e instanceof Error ? e.message : "Failed to register model");
|
|
18458
18492
|
} finally {
|
|
@@ -18502,8 +18536,8 @@ function Rb({ trpc: e, onRegistered: n }) {
|
|
|
18502
18536
|
className: ["px-3 py-1.5 text-xs transition-colors", e === t.value ? "bg-primary text-primary-foreground font-medium" : "text-foreground-subtle hover:text-foreground hover:bg-surface-hover"].join(" "),
|
|
18503
18537
|
children: t.label
|
|
18504
18538
|
}, t.value))
|
|
18505
|
-
}))(i,
|
|
18506
|
-
let t =
|
|
18539
|
+
}))(i, zb, (e) => {
|
|
18540
|
+
let t = zb.find((t) => t.value === e);
|
|
18507
18541
|
t !== void 0 && (ae(null), P(null), a(t.value));
|
|
18508
18542
|
})]
|
|
18509
18543
|
}),
|
|
@@ -18512,7 +18546,7 @@ function Rb({ trpc: e, onRegistered: n }) {
|
|
|
18512
18546
|
className: "rounded-md border border-border bg-surface px-3 py-2 text-[11px] text-foreground-subtle",
|
|
18513
18547
|
children: "CamStack seeds already live in the pipeline catalog. Open the Catalog tab, pick the node, and Download the format that node runs — registering a seed here would duplicate the id."
|
|
18514
18548
|
}),
|
|
18515
|
-
i === "frigate" && /* @__PURE__ */ T(
|
|
18549
|
+
i === "frigate" && /* @__PURE__ */ T(Zy, {
|
|
18516
18550
|
trpc: e,
|
|
18517
18551
|
onRegistered: (e) => {
|
|
18518
18552
|
P(e), n();
|
|
@@ -18520,7 +18554,7 @@ function Rb({ trpc: e, onRegistered: n }) {
|
|
|
18520
18554
|
onError: ae,
|
|
18521
18555
|
onPrefillUpload: se
|
|
18522
18556
|
}),
|
|
18523
|
-
i === "scrypted" && /* @__PURE__ */ T(
|
|
18557
|
+
i === "scrypted" && /* @__PURE__ */ T(Fb, {
|
|
18524
18558
|
trpc: e,
|
|
18525
18559
|
onImported: n
|
|
18526
18560
|
}),
|
|
@@ -18537,8 +18571,8 @@ function Rb({ trpc: e, onRegistered: n }) {
|
|
|
18537
18571
|
". Upload your exported file below."
|
|
18538
18572
|
]
|
|
18539
18573
|
}),
|
|
18540
|
-
i === "upload" ? /* @__PURE__ */ E(
|
|
18541
|
-
label: `Model file (${
|
|
18574
|
+
i === "upload" ? /* @__PURE__ */ E(by, {
|
|
18575
|
+
label: `Model file (${Rb.join(" / ")})`,
|
|
18542
18576
|
children: [
|
|
18543
18577
|
/* @__PURE__ */ E("div", {
|
|
18544
18578
|
className: "flex items-center gap-3 flex-wrap",
|
|
@@ -18570,7 +18604,7 @@ function Rb({ trpc: e, onRegistered: n }) {
|
|
|
18570
18604
|
/* @__PURE__ */ T("input", {
|
|
18571
18605
|
ref: F,
|
|
18572
18606
|
type: "file",
|
|
18573
|
-
accept:
|
|
18607
|
+
accept: Rb.join(","),
|
|
18574
18608
|
className: "hidden",
|
|
18575
18609
|
onChange: (e) => {
|
|
18576
18610
|
let t = e.target.files?.[0];
|
|
@@ -18589,13 +18623,13 @@ function Rb({ trpc: e, onRegistered: n }) {
|
|
|
18589
18623
|
className: "grid grid-cols-1 sm:grid-cols-3 gap-3",
|
|
18590
18624
|
children: [/* @__PURE__ */ T("div", {
|
|
18591
18625
|
className: "sm:col-span-2",
|
|
18592
|
-
children: /* @__PURE__ */ T(
|
|
18626
|
+
children: /* @__PURE__ */ T(xy, {
|
|
18593
18627
|
label: "Model URL / HuggingFace path",
|
|
18594
18628
|
value: v,
|
|
18595
18629
|
onChange: y,
|
|
18596
18630
|
placeholder: "https://… or hf://org/repo/model.onnx"
|
|
18597
18631
|
})
|
|
18598
|
-
}), /* @__PURE__ */ T(
|
|
18632
|
+
}), /* @__PURE__ */ T(Sy, {
|
|
18599
18633
|
label: "Size (MB)",
|
|
18600
18634
|
value: b,
|
|
18601
18635
|
onChange: x,
|
|
@@ -18604,12 +18638,12 @@ function Rb({ trpc: e, onRegistered: n }) {
|
|
|
18604
18638
|
}),
|
|
18605
18639
|
/* @__PURE__ */ E("div", {
|
|
18606
18640
|
className: "grid grid-cols-1 sm:grid-cols-2 gap-3",
|
|
18607
|
-
children: [/* @__PURE__ */ T(
|
|
18641
|
+
children: [/* @__PURE__ */ T(xy, {
|
|
18608
18642
|
label: "Model id",
|
|
18609
18643
|
value: c,
|
|
18610
18644
|
onChange: l,
|
|
18611
18645
|
placeholder: "my-detector"
|
|
18612
|
-
}), /* @__PURE__ */ T(
|
|
18646
|
+
}), /* @__PURE__ */ T(xy, {
|
|
18613
18647
|
label: "Display name",
|
|
18614
18648
|
value: u,
|
|
18615
18649
|
onChange: d,
|
|
@@ -18619,18 +18653,18 @@ function Rb({ trpc: e, onRegistered: n }) {
|
|
|
18619
18653
|
/* @__PURE__ */ E("div", {
|
|
18620
18654
|
className: "grid grid-cols-1 sm:grid-cols-3 gap-3",
|
|
18621
18655
|
children: [
|
|
18622
|
-
/* @__PURE__ */ T(
|
|
18656
|
+
/* @__PURE__ */ T(Fy, {
|
|
18623
18657
|
trpc: e,
|
|
18624
18658
|
value: f,
|
|
18625
18659
|
onChange: p
|
|
18626
18660
|
}),
|
|
18627
|
-
/* @__PURE__ */ T(
|
|
18661
|
+
/* @__PURE__ */ T(Sy, {
|
|
18628
18662
|
label: "Input width",
|
|
18629
18663
|
value: S,
|
|
18630
18664
|
onChange: C,
|
|
18631
18665
|
min: 1
|
|
18632
18666
|
}),
|
|
18633
|
-
/* @__PURE__ */ T(
|
|
18667
|
+
/* @__PURE__ */ T(Sy, {
|
|
18634
18668
|
label: "Input height",
|
|
18635
18669
|
value: w,
|
|
18636
18670
|
onChange: ee,
|
|
@@ -18640,21 +18674,21 @@ function Rb({ trpc: e, onRegistered: n }) {
|
|
|
18640
18674
|
}),
|
|
18641
18675
|
/* @__PURE__ */ E("div", {
|
|
18642
18676
|
className: "grid grid-cols-1 sm:grid-cols-2 gap-3",
|
|
18643
|
-
children: [/* @__PURE__ */ T(
|
|
18677
|
+
children: [/* @__PURE__ */ T(by, {
|
|
18644
18678
|
label: "Format",
|
|
18645
18679
|
children: /* @__PURE__ */ T("select", {
|
|
18646
18680
|
value: m,
|
|
18647
18681
|
onChange: (e) => {
|
|
18648
|
-
let t =
|
|
18682
|
+
let t = Ib.find((t) => t === e.target.value);
|
|
18649
18683
|
t !== void 0 && h(t);
|
|
18650
18684
|
},
|
|
18651
18685
|
className: "w-full px-3 py-1.5 text-xs rounded-md border border-border bg-surface text-foreground focus:outline-none focus:border-primary/50",
|
|
18652
|
-
children:
|
|
18686
|
+
children: Ib.map((e) => /* @__PURE__ */ T("option", {
|
|
18653
18687
|
value: e,
|
|
18654
18688
|
children: e
|
|
18655
18689
|
}, e))
|
|
18656
18690
|
})
|
|
18657
|
-
}), /* @__PURE__ */ E(
|
|
18691
|
+
}), /* @__PURE__ */ E(by, {
|
|
18658
18692
|
label: "Decode (postprocessor)",
|
|
18659
18693
|
children: [/* @__PURE__ */ E("select", {
|
|
18660
18694
|
value: g,
|
|
@@ -18663,7 +18697,7 @@ function Rb({ trpc: e, onRegistered: n }) {
|
|
|
18663
18697
|
children: [/* @__PURE__ */ T("option", {
|
|
18664
18698
|
value: "",
|
|
18665
18699
|
children: "Step default"
|
|
18666
|
-
}),
|
|
18700
|
+
}), Lb.map((e) => /* @__PURE__ */ T("option", {
|
|
18667
18701
|
value: e,
|
|
18668
18702
|
children: e
|
|
18669
18703
|
}, e))]
|
|
@@ -18673,7 +18707,7 @@ function Rb({ trpc: e, onRegistered: n }) {
|
|
|
18673
18707
|
})]
|
|
18674
18708
|
})]
|
|
18675
18709
|
}),
|
|
18676
|
-
/* @__PURE__ */ E(
|
|
18710
|
+
/* @__PURE__ */ E(by, {
|
|
18677
18711
|
label: `Labelmap (${I.length} labels — order = model output index)`,
|
|
18678
18712
|
children: [/* @__PURE__ */ T("textarea", {
|
|
18679
18713
|
value: te,
|
|
@@ -18702,32 +18736,32 @@ function Rb({ trpc: e, onRegistered: n }) {
|
|
|
18702
18736
|
//#endregion
|
|
18703
18737
|
//#region src/tabs/ConvertTab.tsx
|
|
18704
18738
|
d();
|
|
18705
|
-
var
|
|
18739
|
+
var Vb = [
|
|
18706
18740
|
"yolo",
|
|
18707
18741
|
"ssd",
|
|
18708
18742
|
"embedding",
|
|
18709
18743
|
"classification",
|
|
18710
18744
|
"ocr",
|
|
18711
18745
|
"segmentation"
|
|
18712
|
-
],
|
|
18713
|
-
function
|
|
18746
|
+
], Hb = "";
|
|
18747
|
+
function Ub(e) {
|
|
18714
18748
|
return e.split(",").map((e) => e.trim()).filter((e) => e.length > 0).map((e, t) => ({
|
|
18715
18749
|
id: String(t),
|
|
18716
18750
|
name: e
|
|
18717
18751
|
}));
|
|
18718
18752
|
}
|
|
18719
|
-
function
|
|
18720
|
-
let [i, a] = r(""), [c, l] = r(""), [d, f] = r(""), [p, m] = r(640), [h, g] = r(640), [_, v] = r("yolo"), [y, b] = r(""), [x, S] = r(
|
|
18753
|
+
function Wb({ trpc: e, onConverted: n }) {
|
|
18754
|
+
let [i, a] = r(""), [c, l] = r(""), [d, f] = r(""), [p, m] = r(640), [h, g] = r(640), [_, v] = r("yolo"), [y, b] = r(""), [x, S] = r(jv), [C, w] = r(Hb), [D, ee] = r([]), [te, ne] = r(null), [O, k] = r("idle"), [A, j] = r(null), [re, M] = r(null), [ie, ae] = r(null), N = o(null);
|
|
18721
18755
|
u(() => () => {
|
|
18722
18756
|
N.current?.unsubscribe(), N.current = null;
|
|
18723
18757
|
}, []);
|
|
18724
|
-
let P = s(() =>
|
|
18725
|
-
if (!
|
|
18758
|
+
let P = s(() => Mv(x), [x]), F = Nv(x), I = t(async () => {
|
|
18759
|
+
if (!Nv(x)) {
|
|
18726
18760
|
ee([]);
|
|
18727
18761
|
return;
|
|
18728
18762
|
}
|
|
18729
18763
|
try {
|
|
18730
|
-
ee(await
|
|
18764
|
+
ee(await Yv(e, Mv(x))), ne(null);
|
|
18731
18765
|
} catch (e) {
|
|
18732
18766
|
ee([]), ne(e instanceof Error ? e.message : "Failed to load node recommendations");
|
|
18733
18767
|
}
|
|
@@ -18744,14 +18778,14 @@ function Hb({ trpc: e, onConverted: n }) {
|
|
|
18744
18778
|
let t = {
|
|
18745
18779
|
id: c.trim(),
|
|
18746
18780
|
name: d.trim(),
|
|
18747
|
-
labels:
|
|
18781
|
+
labels: Ub(y),
|
|
18748
18782
|
inputSize: {
|
|
18749
18783
|
width: p,
|
|
18750
18784
|
height: h
|
|
18751
18785
|
},
|
|
18752
18786
|
outputFormat: _
|
|
18753
18787
|
};
|
|
18754
|
-
k("running"), j({ phase: "starting" }), N.current?.unsubscribe(), N.current =
|
|
18788
|
+
k("running"), j({ phase: "starting" }), N.current?.unsubscribe(), N.current = ly(e, (e) => {
|
|
18755
18789
|
j({
|
|
18756
18790
|
phase: e.phase,
|
|
18757
18791
|
pct: e.pct,
|
|
@@ -18761,11 +18795,11 @@ function Hb({ trpc: e, onConverted: n }) {
|
|
|
18761
18795
|
console.warn("[model-studio:convert] progress subscription error:", e);
|
|
18762
18796
|
});
|
|
18763
18797
|
try {
|
|
18764
|
-
M(await
|
|
18798
|
+
M(await Xv(e, {
|
|
18765
18799
|
sourceUrl: i.trim(),
|
|
18766
18800
|
metadata: t,
|
|
18767
18801
|
targets: P,
|
|
18768
|
-
...C ===
|
|
18802
|
+
...C === Hb ? {} : { targetNodeId: C }
|
|
18769
18803
|
})), k("success"), n();
|
|
18770
18804
|
} catch (e) {
|
|
18771
18805
|
ae(e instanceof Error ? e.message : "Conversion failed"), k("error");
|
|
@@ -18796,7 +18830,7 @@ function Hb({ trpc: e, onConverted: n }) {
|
|
|
18796
18830
|
className: "rounded-md border border-danger/30 bg-danger/10 px-3 py-2 text-xs text-danger",
|
|
18797
18831
|
children: ie
|
|
18798
18832
|
}),
|
|
18799
|
-
/* @__PURE__ */ T(
|
|
18833
|
+
/* @__PURE__ */ T(xy, {
|
|
18800
18834
|
label: "Source ONNX URL",
|
|
18801
18835
|
value: i,
|
|
18802
18836
|
onChange: a,
|
|
@@ -18804,12 +18838,12 @@ function Hb({ trpc: e, onConverted: n }) {
|
|
|
18804
18838
|
}),
|
|
18805
18839
|
/* @__PURE__ */ E("div", {
|
|
18806
18840
|
className: "grid grid-cols-1 sm:grid-cols-2 gap-3",
|
|
18807
|
-
children: [/* @__PURE__ */ T(
|
|
18841
|
+
children: [/* @__PURE__ */ T(xy, {
|
|
18808
18842
|
label: "Model id",
|
|
18809
18843
|
value: c,
|
|
18810
18844
|
onChange: l,
|
|
18811
18845
|
placeholder: "my-yolo-v9"
|
|
18812
|
-
}), /* @__PURE__ */ T(
|
|
18846
|
+
}), /* @__PURE__ */ T(xy, {
|
|
18813
18847
|
label: "Display name",
|
|
18814
18848
|
value: d,
|
|
18815
18849
|
onChange: f,
|
|
@@ -18819,28 +18853,28 @@ function Hb({ trpc: e, onConverted: n }) {
|
|
|
18819
18853
|
/* @__PURE__ */ E("div", {
|
|
18820
18854
|
className: "grid grid-cols-3 gap-3",
|
|
18821
18855
|
children: [
|
|
18822
|
-
/* @__PURE__ */ T(
|
|
18856
|
+
/* @__PURE__ */ T(Sy, {
|
|
18823
18857
|
label: "Input width",
|
|
18824
18858
|
value: p,
|
|
18825
18859
|
onChange: m,
|
|
18826
18860
|
min: 1
|
|
18827
18861
|
}),
|
|
18828
|
-
/* @__PURE__ */ T(
|
|
18862
|
+
/* @__PURE__ */ T(Sy, {
|
|
18829
18863
|
label: "Input height",
|
|
18830
18864
|
value: h,
|
|
18831
18865
|
onChange: g,
|
|
18832
18866
|
min: 1
|
|
18833
18867
|
}),
|
|
18834
|
-
/* @__PURE__ */ T(
|
|
18868
|
+
/* @__PURE__ */ T(by, {
|
|
18835
18869
|
label: "Output format",
|
|
18836
18870
|
children: /* @__PURE__ */ T("select", {
|
|
18837
18871
|
value: _,
|
|
18838
18872
|
onChange: (e) => {
|
|
18839
|
-
let t =
|
|
18873
|
+
let t = Vb.find((t) => t === e.target.value);
|
|
18840
18874
|
t !== void 0 && v(t);
|
|
18841
18875
|
},
|
|
18842
18876
|
className: "w-full px-3 py-1.5 text-xs rounded-md border border-border bg-surface text-foreground focus:outline-none focus:border-primary/50",
|
|
18843
|
-
children:
|
|
18877
|
+
children: Vb.map((e) => /* @__PURE__ */ T("option", {
|
|
18844
18878
|
value: e,
|
|
18845
18879
|
children: e
|
|
18846
18880
|
}, e))
|
|
@@ -18848,18 +18882,18 @@ function Hb({ trpc: e, onConverted: n }) {
|
|
|
18848
18882
|
})
|
|
18849
18883
|
]
|
|
18850
18884
|
}),
|
|
18851
|
-
/* @__PURE__ */ T(
|
|
18885
|
+
/* @__PURE__ */ T(xy, {
|
|
18852
18886
|
label: "Labels (comma-separated)",
|
|
18853
18887
|
value: y,
|
|
18854
18888
|
onChange: b,
|
|
18855
18889
|
placeholder: "person, car, dog"
|
|
18856
18890
|
}),
|
|
18857
|
-
/* @__PURE__ */ T(
|
|
18891
|
+
/* @__PURE__ */ T(by, {
|
|
18858
18892
|
label: "Target formats",
|
|
18859
18893
|
children: /* @__PURE__ */ E("div", {
|
|
18860
18894
|
className: "flex flex-wrap gap-4 pt-1",
|
|
18861
18895
|
children: [
|
|
18862
|
-
/* @__PURE__ */ T(
|
|
18896
|
+
/* @__PURE__ */ T(Cy, {
|
|
18863
18897
|
label: "OpenVINO fp16",
|
|
18864
18898
|
checked: x.openvinoFp16,
|
|
18865
18899
|
onChange: (e) => S((t) => ({
|
|
@@ -18867,7 +18901,7 @@ function Hb({ trpc: e, onConverted: n }) {
|
|
|
18867
18901
|
openvinoFp16: e
|
|
18868
18902
|
}))
|
|
18869
18903
|
}),
|
|
18870
|
-
/* @__PURE__ */ T(
|
|
18904
|
+
/* @__PURE__ */ T(Cy, {
|
|
18871
18905
|
label: "OpenVINO int8",
|
|
18872
18906
|
checked: x.openvinoInt8,
|
|
18873
18907
|
onChange: (e) => S((t) => ({
|
|
@@ -18875,7 +18909,7 @@ function Hb({ trpc: e, onConverted: n }) {
|
|
|
18875
18909
|
openvinoInt8: e
|
|
18876
18910
|
}))
|
|
18877
18911
|
}),
|
|
18878
|
-
/* @__PURE__ */ T(
|
|
18912
|
+
/* @__PURE__ */ T(Cy, {
|
|
18879
18913
|
label: "CoreML",
|
|
18880
18914
|
checked: x.coreml,
|
|
18881
18915
|
onChange: (e) => S((t) => ({
|
|
@@ -18886,7 +18920,7 @@ function Hb({ trpc: e, onConverted: n }) {
|
|
|
18886
18920
|
]
|
|
18887
18921
|
})
|
|
18888
18922
|
}),
|
|
18889
|
-
/* @__PURE__ */ T(
|
|
18923
|
+
/* @__PURE__ */ T(by, {
|
|
18890
18924
|
label: "Target node",
|
|
18891
18925
|
children: /* @__PURE__ */ E("div", {
|
|
18892
18926
|
className: "flex items-center gap-3 flex-wrap",
|
|
@@ -18895,14 +18929,14 @@ function Hb({ trpc: e, onConverted: n }) {
|
|
|
18895
18929
|
children: [/* @__PURE__ */ T("input", {
|
|
18896
18930
|
type: "radio",
|
|
18897
18931
|
name: "convert-node-mode",
|
|
18898
|
-
checked: C ===
|
|
18899
|
-
onChange: () => w(
|
|
18932
|
+
checked: C === Hb,
|
|
18933
|
+
onChange: () => w(Hb),
|
|
18900
18934
|
className: "accent-primary"
|
|
18901
18935
|
}), "Auto (recommended)"]
|
|
18902
18936
|
}), /* @__PURE__ */ T("div", {
|
|
18903
|
-
className: C ===
|
|
18904
|
-
children: /* @__PURE__ */ T(
|
|
18905
|
-
selectedNodeId: C ===
|
|
18937
|
+
className: C === Hb ? "opacity-50 pointer-events-none" : "",
|
|
18938
|
+
children: /* @__PURE__ */ T(yy, {
|
|
18939
|
+
selectedNodeId: C === Hb ? "hub" : C,
|
|
18906
18940
|
onSelect: w
|
|
18907
18941
|
})
|
|
18908
18942
|
})]
|
|
@@ -18945,7 +18979,7 @@ function Hb({ trpc: e, onConverted: n }) {
|
|
|
18945
18979
|
children: "Refresh recommendations"
|
|
18946
18980
|
})]
|
|
18947
18981
|
}),
|
|
18948
|
-
/* @__PURE__ */ T(
|
|
18982
|
+
/* @__PURE__ */ T(Gb, {
|
|
18949
18983
|
state: O,
|
|
18950
18984
|
progress: A,
|
|
18951
18985
|
outcome: re
|
|
@@ -18953,7 +18987,7 @@ function Hb({ trpc: e, onConverted: n }) {
|
|
|
18953
18987
|
]
|
|
18954
18988
|
});
|
|
18955
18989
|
}
|
|
18956
|
-
function
|
|
18990
|
+
function Gb({ state: e, progress: t, outcome: n }) {
|
|
18957
18991
|
return e === "idle" ? null : /* @__PURE__ */ E("div", {
|
|
18958
18992
|
className: "rounded-xl border border-border bg-surface overflow-hidden",
|
|
18959
18993
|
children: [/* @__PURE__ */ E("div", {
|
|
@@ -19022,7 +19056,7 @@ function Ub({ state: e, progress: t, outcome: n }) {
|
|
|
19022
19056
|
e.format,
|
|
19023
19057
|
e.precision ? ` ${e.precision}` : "",
|
|
19024
19058
|
" · ",
|
|
19025
|
-
|
|
19059
|
+
Fv(e.sizeMB),
|
|
19026
19060
|
e.validated ? "" : " (unvalidated)"
|
|
19027
19061
|
]
|
|
19028
19062
|
}, `${e.format}-${e.precision ?? "na"}-${t}`))
|
|
@@ -19036,7 +19070,7 @@ function Ub({ state: e, progress: t, outcome: n }) {
|
|
|
19036
19070
|
//#endregion
|
|
19037
19071
|
//#region src/page.tsx
|
|
19038
19072
|
d();
|
|
19039
|
-
var
|
|
19073
|
+
var Kb = [
|
|
19040
19074
|
{
|
|
19041
19075
|
id: "catalog",
|
|
19042
19076
|
label: "Catalog"
|
|
@@ -19054,18 +19088,18 @@ var Wb = [
|
|
|
19054
19088
|
label: "Convert"
|
|
19055
19089
|
}
|
|
19056
19090
|
];
|
|
19057
|
-
function
|
|
19091
|
+
function qb(e) {
|
|
19058
19092
|
return `model-studio-tab-${e}`;
|
|
19059
19093
|
}
|
|
19060
|
-
function
|
|
19094
|
+
function Jb(e) {
|
|
19061
19095
|
return `model-studio-panel-${e}`;
|
|
19062
19096
|
}
|
|
19063
|
-
function
|
|
19097
|
+
function Yb({ trpc: e }) {
|
|
19064
19098
|
let [n, i] = r("catalog"), [a, s] = r(0), c = o(!1), l = t(() => s((e) => e + 1), []), d = t((e, t = !1) => {
|
|
19065
19099
|
i(e), t && (c.current = !0);
|
|
19066
19100
|
}, []);
|
|
19067
19101
|
return u(() => {
|
|
19068
|
-
c.current && (c.current = !1, document.getElementById(
|
|
19102
|
+
c.current && (c.current = !1, document.getElementById(qb(n))?.focus());
|
|
19069
19103
|
}, [n]), /* @__PURE__ */ E("div", {
|
|
19070
19104
|
className: "p-6 space-y-4",
|
|
19071
19105
|
children: [
|
|
@@ -19081,22 +19115,22 @@ function qb({ trpc: e }) {
|
|
|
19081
19115
|
role: "tablist",
|
|
19082
19116
|
"aria-label": "Model Studio sections",
|
|
19083
19117
|
onKeyDown: (e) => {
|
|
19084
|
-
let t =
|
|
19118
|
+
let t = Kb.findIndex((e) => e.id === n);
|
|
19085
19119
|
if (t < 0) return;
|
|
19086
19120
|
let r = t;
|
|
19087
|
-
if (e.key === "ArrowRight") r = (t + 1) %
|
|
19088
|
-
else if (e.key === "ArrowLeft") r = (t - 1 +
|
|
19121
|
+
if (e.key === "ArrowRight") r = (t + 1) % Kb.length;
|
|
19122
|
+
else if (e.key === "ArrowLeft") r = (t - 1 + Kb.length) % Kb.length;
|
|
19089
19123
|
else if (e.key === "Home") r = 0;
|
|
19090
|
-
else if (e.key === "End") r =
|
|
19124
|
+
else if (e.key === "End") r = Kb.length - 1;
|
|
19091
19125
|
else return;
|
|
19092
|
-
e.preventDefault(), d(
|
|
19126
|
+
e.preventDefault(), d(Kb[r].id, !0);
|
|
19093
19127
|
},
|
|
19094
|
-
children:
|
|
19095
|
-
id:
|
|
19128
|
+
children: Kb.map((e) => /* @__PURE__ */ T("button", {
|
|
19129
|
+
id: qb(e.id),
|
|
19096
19130
|
type: "button",
|
|
19097
19131
|
role: "tab",
|
|
19098
19132
|
"aria-selected": n === e.id,
|
|
19099
|
-
"aria-controls":
|
|
19133
|
+
"aria-controls": Jb(e.id),
|
|
19100
19134
|
tabIndex: n === e.id ? 0 : -1,
|
|
19101
19135
|
onClick: () => d(e.id),
|
|
19102
19136
|
className: ["px-4 py-2 text-sm whitespace-nowrap transition-colors focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-primary motion-reduce:transition-none", n === e.id ? "border-b-2 border-primary text-primary font-semibold" : "text-foreground-subtle hover:text-foreground"].join(" "),
|
|
@@ -19106,22 +19140,22 @@ function qb({ trpc: e }) {
|
|
|
19106
19140
|
/* @__PURE__ */ E("div", {
|
|
19107
19141
|
className: "min-h-[400px]",
|
|
19108
19142
|
role: "tabpanel",
|
|
19109
|
-
id:
|
|
19110
|
-
"aria-labelledby":
|
|
19143
|
+
id: Jb(n),
|
|
19144
|
+
"aria-labelledby": qb(n),
|
|
19111
19145
|
children: [
|
|
19112
|
-
n === "catalog" && /* @__PURE__ */ T(
|
|
19146
|
+
n === "catalog" && /* @__PURE__ */ T(Ey, {
|
|
19113
19147
|
trpc: e,
|
|
19114
19148
|
refreshKey: a
|
|
19115
19149
|
}),
|
|
19116
|
-
n === "library" && /* @__PURE__ */ T(
|
|
19150
|
+
n === "library" && /* @__PURE__ */ T(Dy, {
|
|
19117
19151
|
trpc: e,
|
|
19118
19152
|
refreshKey: a
|
|
19119
19153
|
}),
|
|
19120
|
-
n === "register" && /* @__PURE__ */ T(
|
|
19154
|
+
n === "register" && /* @__PURE__ */ T(Bb, {
|
|
19121
19155
|
trpc: e,
|
|
19122
19156
|
onRegistered: l
|
|
19123
19157
|
}),
|
|
19124
|
-
n === "convert" && /* @__PURE__ */ T(
|
|
19158
|
+
n === "convert" && /* @__PURE__ */ T(Wb, {
|
|
19125
19159
|
trpc: e,
|
|
19126
19160
|
onConverted: l
|
|
19127
19161
|
})
|
|
@@ -19131,4 +19165,4 @@ function qb({ trpc: e }) {
|
|
|
19131
19165
|
});
|
|
19132
19166
|
}
|
|
19133
19167
|
//#endregion
|
|
19134
|
-
export {
|
|
19168
|
+
export { Yb as default };
|