@camstack/addon-model-studio 1.1.176 → 1.1.177

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (19) hide show
  1. package/THIRD_PARTY_MODELS.md +244 -0
  2. package/dist/{MotionZonesSettings-BnpvJ5xP.mjs → MotionZonesSettings-C4-p0MUC.mjs} +2 -2
  3. package/dist/{PrivacyMaskSettings-B7PWwVz7.mjs → PrivacyMaskSettings-CiAgalv0.mjs} +4 -4
  4. package/dist/{SceneMonitorEditor-DnFT8BoA.mjs → SceneMonitorEditor-CRv5TJpn.mjs} +3 -3
  5. package/dist/_stub.js +498 -464
  6. package/dist/{_virtual_mf-localSharedImportMap___mfe_internal__addon_model_studio_page-DyLSvcVV.mjs → _virtual_mf-localSharedImportMap___mfe_internal__addon_model_studio_page-Pq2JbHl4.mjs} +2 -2
  7. package/dist/_virtual_mf___mfe_internal__addon_model_studio_page__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-CIxAEvWm.mjs +26 -0
  8. package/dist/{hostInit-Bt1i3ABN.mjs → hostInit-Cx4ONiPc.mjs} +1 -1
  9. package/dist/model-studio.addon.js +125 -7
  10. package/dist/model-studio.addon.mjs +125 -7
  11. package/dist/{player-overlays-Dorp8NvG.mjs → player-overlays-ClBjPU73.mjs} +1 -1
  12. package/dist/remoteEntry.js +1 -1
  13. package/dist/{responsive-D5frmtog.mjs → responsive-DlMFoaeo.mjs} +1 -1
  14. package/dist/{scene-monitor-copy-Czk6VgU1.mjs → scene-monitor-copy-CTpOVqsU.mjs} +1 -1
  15. package/dist/{square-B-8Ri8UR.mjs → square-C3Zmy4Ca.mjs} +1 -1
  16. package/dist/{trash-2-C8wBWb92.mjs → trash-2-BD__w_cV.mjs} +1 -1
  17. 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-C_0n96Ey.mjs} +1 -1
  18. package/package.json +3 -2
  19. 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-DnqPAdaL.mjs";
2
+ import "./virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_model_studio_page__remoteEntry_js-C_0n96Ey.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-D5frmtog.mjs";
5
- import { d as _, l as v, u as y } from "./scene-monitor-copy-Czk6VgU1.mjs";
6
- import { r as b } from "./player-overlays-Dorp8NvG.mjs";
7
- import { r as x, t as S } from "./square-B-8Ri8UR.mjs";
8
- import { t as C } from "./trash-2-C8wBWb92.mjs";
4
+ import { a as f, i as p, o as m, r as h, s as g } from "./responsive-DlMFoaeo.mjs";
5
+ import { d as _, l as v, u as y } from "./scene-monitor-copy-CTpOVqsU.mjs";
6
+ import { r as b } from "./player-overlays-ClBjPU73.mjs";
7
+ import { r as x, t as S } from "./square-C3Zmy4Ca.mjs";
8
+ import { t as C } from "./trash-2-BD__w_cV.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-BIijwyaW.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-CIxAEvWm.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",
@@ -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-BnpvJ5xP.mjs").then((e) => ({ default: e.MotionZonesSettings }))), i(() => import("./PrivacyMaskSettings-B7PWwVz7.mjs").then((e) => ({ default: e.PrivacyMaskSettings }))), d(), d();
3649
+ }), d(), d(), d(), d(), d(), d(), i(() => import("./MotionZonesSettings-C4-p0MUC.mjs").then((e) => ({ default: e.MotionZonesSettings }))), i(() => import("./PrivacyMaskSettings-CiAgalv0.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,
@@ -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-BnpvJ5xP.mjs").then((e) => ({ default: e.MotionZonesSettings }))), i(() => import("./SceneMonitorEditor-DnFT8BoA.mjs").then((e) => ({ default: e.SceneMonitorEditor }))), i(() => import("./PrivacyMaskSettings-B7PWwVz7.mjs").then((e) => ({ default: e.PrivacyMaskSettings })));
16015
+ d(), new q_(), d(), d(), d(), i(() => import("./MaskShapeCanvas-C4g96eMz.mjs").then((e) => ({ default: e.MaskShapeCanvas }))), i(() => import("./MotionZonesSettings-C4-p0MUC.mjs").then((e) => ({ default: e.MotionZonesSettings }))), i(() => import("./SceneMonitorEditor-CRv5TJpn.mjs").then((e) => ({ default: e.SceneMonitorEditor }))), i(() => import("./PrivacyMaskSettings-CiAgalv0.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
- ], ev = {
16052
+ ], nv = {
16023
16053
  mapping: {
16024
16054
  person: "person",
16025
16055
  vehicle: "vehicle",
16026
16056
  animal: "animal"
16027
16057
  },
16028
16058
  preserveOriginal: !1
16029
- }, tv = $_.map((e) => ({
16059
+ }, rv = tv.map((e) => ({
16030
16060
  id: e,
16031
16061
  name: e
16032
- })), nv = [
16062
+ })), iv = [
16033
16063
  "Manifest.json",
16034
16064
  "Data/com.apple.CoreML/model.mlmodel",
16035
16065
  "Data/com.apple.CoreML/weights/weight.bin"
16036
- ], rv = {
16066
+ ], av = {
16037
16067
  width: 320,
16038
16068
  height: 320
16039
16069
  };
16040
- function iv(e, t) {
16041
- if (e === void 0 || !Y_.test(e)) throw Error(`Invalid sha256 for ${t}: expected 64 lowercase hex`);
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 av(e) {
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 ov(e) {
16049
- return `${X_}/${Z_}/resolve/${Q_}/${av(e).split("/").map((e) => encodeURIComponent(e)).join("/")}`;
16078
+ function cv(e) {
16079
+ return `${Q_}/${$_}/resolve/${ev}/${sv(e).split("/").map((e) => encodeURIComponent(e)).join("/")}`;
16050
16080
  }
16051
- function sv(e) {
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 av(t.relativePath.replace(/\/Manifest\.json$/, ""));
16084
+ return sv(t.relativePath.replace(/\/Manifest\.json$/, ""));
16055
16085
  }
16056
- function cv(e) {
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 = sv(e.files);
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: ov(n),
16101
+ url: cv(n),
16072
16102
  sizeMB: e.sizeMB,
16073
16103
  isDirectory: !0,
16074
- files: [...nv],
16104
+ files: [...iv],
16075
16105
  runtimes: ["python"]
16076
16106
  } },
16077
- inputSize: rv,
16078
- labels: tv,
16107
+ inputSize: av,
16108
+ labels: rv,
16079
16109
  preprocessMode: "resize",
16080
- classMap: ev,
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: ov(n.relativePath),
16125
+ url: cv(n.relativePath),
16095
16126
  sizeMB: e.sizeMB,
16096
16127
  files: [i],
16097
16128
  runtimes: ["python"]
16098
16129
  } },
16099
- inputSize: rv,
16100
- labels: tv,
16130
+ inputSize: av,
16131
+ labels: rv,
16101
16132
  preprocessMode: "resize",
16102
- classMap: ev,
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: ov(n.relativePath),
16146
+ url: cv(n.relativePath),
16115
16147
  sizeMB: e.sizeMB,
16116
16148
  runtimes: e.format === "tflite" ? ["python"] : void 0
16117
16149
  } },
16118
- inputSize: rv,
16119
- labels: tv,
16150
+ inputSize: av,
16151
+ labels: rv,
16120
16152
  preprocessMode: "resize",
16121
- classMap: ev,
16153
+ classMap: nv,
16122
16154
  group: t,
16123
- provider: "scrypted"
16155
+ provider: "scrypted",
16156
+ license: Y_
16124
16157
  };
16125
16158
  }
16126
- function lv(e) {
16159
+ function dv(e) {
16127
16160
  let t = e.files.map((e) => Object.freeze({
16128
- relativePath: av(e.relativePath),
16161
+ relativePath: sv(e.relativePath),
16129
16162
  size: e.size,
16130
- sha256: iv(e.sha256, e.relativePath)
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: rv,
16172
+ inputSize: av,
16140
16173
  files: Object.freeze(t),
16141
- model: cv({
16174
+ model: uv({
16142
16175
  ...e,
16143
16176
  files: t
16144
16177
  })
16145
16178
  });
16146
16179
  }
16147
- Object.freeze(J_.map(lv));
16180
+ Object.freeze(J_.map(dv));
16148
16181
  //#endregion
16149
16182
  //#region src/scrypted/scrypted-tree-drift.ts
16150
- var uv = [
16183
+ var fv = [
16151
16184
  "ok",
16152
16185
  "missing",
16153
16186
  "size-changed",
16154
16187
  "unavailable"
16155
16188
  ];
16156
- function dv(e) {
16157
- return uv.includes(e.status) ? {
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 fv = $({
16202
+ var mv = $({
16170
16203
  format: l_(ee),
16171
16204
  sha256: Z(),
16172
16205
  bytes: Hg(),
16173
16206
  at: Hg()
16174
- }), pv = s_(Z(), s_(Z(), fv)), mv = $({
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
- }), hv = $({
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_(mv).readonly(),
16232
+ files: e_(gv).readonly(),
16200
16233
  model: se
16201
- }), gv = $({
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
- }), _v = $({
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
- }), vv = $({
16250
+ }), bv = $({
16218
16251
  id: Z(),
16219
16252
  name: Z(),
16220
16253
  type: Z(),
@@ -16240,7 +16273,7 @@ re({
16240
16273
  sha256: Z(),
16241
16274
  bytes: Hg()
16242
16275
  }), { kind: "mutation" }),
16243
- listAvailability: P(Qg(), pv),
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_(_v).readonly()),
16291
+ listFrigateCatalog: P(Qg(), e_(yv).readonly()),
16259
16292
  importFrigateCatalogModel: P($({
16260
16293
  catalogId: Z(),
16261
16294
  modelId: Z().optional(),
@@ -16266,8 +16299,8 @@ re({
16266
16299
  bytes: Hg()
16267
16300
  }), { kind: "mutation" }),
16268
16301
  listScryptedCatalog: P(Qg(), $({
16269
- entries: e_(hv).readonly(),
16270
- drift: e_(gv).readonly()
16302
+ entries: e_(_v).readonly(),
16303
+ drift: e_(vv).readonly()
16271
16304
  })),
16272
16305
  importScryptedCatalogModel: P($({ manifestId: Z() }), O, { kind: "mutation" }),
16273
16306
  tfliteSupport: P(Qg(), $({ nodes: e_(Z()).readonly() })),
@@ -16279,7 +16312,7 @@ re({
16279
16312
  ok: Kg(),
16280
16313
  error: Z().optional()
16281
16314
  }), { kind: "mutation" }),
16282
- frigatePlusListModels: P(Qg(), e_(vv).readonly()),
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 yv = [
16350
+ var xv = [
16318
16351
  "onnx",
16319
16352
  "coreml",
16320
16353
  "openvino",
16321
16354
  "tflite",
16322
16355
  "pt"
16323
16356
  ];
16324
- function bv(e) {
16325
- return yv.filter((t) => e.formats[t] !== void 0);
16357
+ function Sv(e) {
16358
+ return xv.filter((t) => e.formats[t] !== void 0);
16326
16359
  }
16327
- function xv(e) {
16328
- return yv.reduce((t, n) => t + (e.formats[n]?.sizeMB ?? 0), 0);
16360
+ function Cv(e) {
16361
+ return xv.reduce((t, n) => t + (e.formats[n]?.sizeMB ?? 0), 0);
16329
16362
  }
16330
- function Sv(e, t) {
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 Cv(e, t) {
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: bv(e.entry),
16345
- sizeMB: xv(e.entry),
16346
- nodes: Sv(t, e.entry.id)
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 wv(e) {
16350
- let t = yv.filter((t) => e[t] !== void 0).map((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]) => !yv.includes(e)).map(([e, t]) => ({
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 Tv(e) {
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: wv(n.formats)
16402
+ formats: Ev(n.formats)
16370
16403
  });
16371
16404
  return t;
16372
16405
  }
16373
- function Ev(e) {
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 Dv(e, t) {
16414
+ function kv(e, t) {
16382
16415
  return e.filter((e) => e.stepId === t);
16383
16416
  }
16384
- function Ov(e) {
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 kv = {
16426
+ var jv = {
16394
16427
  openvinoFp16: !1,
16395
16428
  openvinoInt8: !1,
16396
16429
  coreml: !1
16397
16430
  };
16398
- function Av(e) {
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 jv(e) {
16438
+ function Nv(e) {
16406
16439
  return e.openvinoFp16 || e.openvinoInt8 || e.coreml;
16407
16440
  }
16408
- function Mv(e) {
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 Nv(e) {
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 Pv = "model-studio";
16424
- function Fv(e) {
16456
+ var Iv = "model-studio";
16457
+ function Lv(e) {
16425
16458
  return e;
16426
16459
  }
16427
- function Iv(e) {
16428
- return Fv(e).addons.custom;
16460
+ function Rv(e) {
16461
+ return Lv(e).addons.custom;
16429
16462
  }
16430
- async function Lv(e, t, n) {
16431
- return Iv(e).mutate({
16432
- addonId: Pv,
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 Rv(e) {
16470
+ function Bv(e) {
16438
16471
  return typeof e == "object" && !!e && !Array.isArray(e);
16439
16472
  }
16440
- function zv(e, t, n) {
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 Bv(e, t, n) {
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 Vv(e) {
16457
- return Array.isArray(e) ? zv(O, e, "listCustomModels") : [];
16489
+ function Uv(e) {
16490
+ return Array.isArray(e) ? Vv(O, e, "listCustomModels") : [];
16458
16491
  }
16459
- function Hv(e) {
16460
- if (!Rv(e)) return {};
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 (!Rv(r)) {
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 = fv.safeParse(i);
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 Uv(e) {
16477
- return Vv(await Lv(e, "listCustomModels", void 0));
16509
+ async function Gv(e) {
16510
+ return Uv(await zv(e, "listCustomModels", void 0));
16478
16511
  }
16479
- async function Wv(e) {
16480
- return Hv(await Lv(e, "listAvailability", void 0));
16512
+ async function Kv(e) {
16513
+ return Wv(await zv(e, "listAvailability", void 0));
16481
16514
  }
16482
- async function Gv(e, t) {
16483
- await Lv(e, "registerCustomModel", t);
16515
+ async function qv(e, t) {
16516
+ await zv(e, "registerCustomModel", t);
16484
16517
  }
16485
- async function Kv(e, t) {
16486
- await Lv(e, "removeCustomModel", { modelId: t });
16518
+ async function Jv(e, t) {
16519
+ await zv(e, "removeCustomModel", { modelId: t });
16487
16520
  }
16488
- async function qv(e, t) {
16489
- let n = await Lv(e, "recommendConvertNode", { targets: t });
16490
- return Array.isArray(n) ? n.filter(Rv).map((e) => ({
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 Jv(e, t) {
16497
- let n = await Lv(e, "convertModel", t);
16498
- if (!Rv(n) || typeof n.nodeId != "string") throw Error("convertModel: unexpected response shape");
16499
- let r = Bv(se, n.entry, "convertModel.entry"), i = Array.isArray(n.artifacts) ? zv(ae, n.artifacts, "convertModel.artifacts") : [];
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 Yv(e) {
16507
- return Fv(e).pipelineExecutor.getSchema;
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 Rv(e) && Array.isArray(e.slots);
16543
+ return Bv(e) && Array.isArray(e.slots);
16519
16544
  }
16520
- async function $v(e, t) {
16521
- let n = await Yv(e).query(t === void 0 ? void 0 : { nodeId: t });
16522
- if (!Qv(n)) throw Error("pipeline schema unavailable — cannot list CamStack seeds");
16523
- return Tv(n);
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
- async function ey(e, t) {
16526
- await Fv(e).pipelineExecutor.downloadModel.mutate(t);
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 Lv(e, "distributeModel", t);
16530
- if (!Rv(n)) throw Error("distributeModel: unexpected response shape");
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 ny = 512 * 1024;
16538
- function ry(e, t) {
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 iy(e, t, n) {
16544
- let r = await Lv(e, "beginModelUpload", {
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 (!Rv(r)) throw Error("beginModelUpload: unexpected response shape");
16549
- let i = ry(r, "uploadId");
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 += ny) await Lv(e, "appendModelUpload", {
16585
+ for (let t = 0; t < r.length; t += iy) await zv(e, "appendModelUpload", {
16553
16586
  uploadId: i,
16554
- chunkBase64: ay(r.subarray(t, t + ny))
16555
- }), n?.(Math.min(t + ny, r.length), r.length);
16556
- let a = await Lv(e, "commitModelUpload", { uploadId: i });
16557
- if (!Rv(a)) throw Error("commitModelUpload: unexpected response shape");
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: ry(a, "filename"),
16592
+ filename: ay(a, "filename"),
16560
16593
  bytes: typeof a.bytes == "number" ? a.bytes : t.size,
16561
- sha256: ry(a, "sha256")
16594
+ sha256: ay(a, "sha256")
16562
16595
  };
16563
16596
  } catch (t) {
16564
- throw await Lv(e, "abortModelUpload", { uploadId: i }).catch(() => void 0), t;
16597
+ throw await zv(e, "abortModelUpload", { uploadId: i }).catch(() => void 0), t;
16565
16598
  }
16566
16599
  }
16567
- function ay(e) {
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 oy(e) {
16573
- return Fv(e).live.onEvent;
16605
+ function cy(e) {
16606
+ return Lv(e).live.onEvent;
16574
16607
  }
16575
- function sy(e, t, n) {
16576
- let r = oy(e);
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 = Rv(e.data) ? e.data : void 0;
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 cy(e, t) {
16595
- let n = await Lv(e, "importFrigateCatalogModel", t);
16596
- if (!Rv(n)) throw Error("importFrigateCatalogModel: unexpected response shape");
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: ry(n, "modelId"),
16631
+ modelId: ay(n, "modelId"),
16599
16632
  bytes: typeof n.bytes == "number" ? n.bytes : 0
16600
16633
  };
16601
16634
  }
16602
- async function ly(e) {
16603
- let t = await Lv(e, "frigatePlusStatus", void 0);
16604
- return Rv(t) ? {
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 uy(e) {
16613
- let t = await Lv(e, "frigatePlusTest", void 0);
16614
- return Rv(t) ? {
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 dy(e) {
16623
- let t = await Lv(e, "frigatePlusListModels", void 0);
16624
- return Array.isArray(t) ? zv(vv, t, "frigatePlusListModels") : [];
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 fy(e, t) {
16627
- let n = await Lv(e, "importFrigatePlusModel", t);
16628
- if (!Rv(n)) throw Error("importFrigatePlusModel: unexpected response shape");
16629
- let r = Array.isArray(n.conversions) ? n.conversions.filter(Rv).flatMap((e) => {
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: ry(n, "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 py(e, t) {
16645
- await Fv(e).addonSettings.updateGlobalSettings.mutate({
16646
- addonId: Pv,
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 my(e) {
16651
- let t = await Lv(e, "tfliteSupport", void 0);
16652
- return !Rv(t) || !Array.isArray(t.nodes) ? [] : t.nodes.filter((e) => typeof e == "string");
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 hy(e) {
16655
- let t = await Lv(e, "listScryptedCatalog", void 0);
16656
- return !Rv(t) || !Array.isArray(t.entries) || !Array.isArray(t.drift) ? {
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: zv(hv, t.entries, "listScryptedCatalog.entries"),
16661
- drift: t.drift.filter(Rv).map((e) => {
16662
- let t = dv({
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 gy(e, t) {
16676
- return Bv(O, await Lv(e, "importScryptedCatalogModel", { manifestId: t.manifestId }), "importScryptedCatalogModel");
16708
+ async function vy(e, t) {
16709
+ return Hv(O, await zv(e, "importScryptedCatalogModel", { manifestId: t.manifestId }), "importScryptedCatalogModel");
16677
16710
  }
16678
16711
  //#endregion
16679
16712
  //#region src/components/NodeSelector.tsx
16680
- function _y({ selectedNodeId: e, onSelect: t }) {
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 vy({ label: e, children: t }) {
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 yy({ label: e, value: t, onChange: n, placeholder: r }) {
16698
- return /* @__PURE__ */ T(vy, {
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 by({ label: e, value: t, onChange: n, min: r, max: i, step: a }) {
16710
- return /* @__PURE__ */ T(vy, {
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 xy({ label: e, checked: t, onChange: n }) {
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 Sy = new Set(ee);
16741
- function Cy(e) {
16742
- return Sy.has(e);
16773
+ var wy = new Set(ee);
16774
+ function Ty(e) {
16775
+ return wy.has(e);
16743
16776
  }
16744
- function wy({ trpc: e, refreshKey: n }) {
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 $v(e, i);
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(() => Ev(o), [o]), S = s(() => Dv(o, l), [o, l]), C = t(async (t, n) => {
16760
- if (Cy(n)) {
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 ey(e, {
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(vy, {
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(_y, {
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: Nv(t.sizeMB)
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 Ty({ trpc: e, refreshKey: n }) {
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([Uv(e), Wv(e)]);
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(() => Cv(i, o), [i, o]), g = t(async (t) => {
16930
+ let h = s(() => Tv(i, o), [i, o]), g = t(async (t) => {
16898
16931
  try {
16899
- await Kv(e, t), await m();
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(Dy, {
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 Ey({ row: e, trpc: n, onChanged: i }) {
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} (${Nv((await ty(n, {
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(_y, {
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 Dy({ row: e, trpc: t, onRemove: n, onChanged: r }) {
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: Nv(e.sizeMB)
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(Ey, {
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 Oy(e, t) {
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 ky = {
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 Ay(e) {
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 jy = /^[a-zA-Z0-9._-]+$/;
17153
- function My(e) {
17154
- let t = e.type === "custom" ? null : ky[e.type];
17155
- if (!jy.test(e.modelId)) throw Error(`Model id "${e.modelId}" is invalid — letters, digits, dot, underscore, hyphen only`);
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: Oy(e.type, e.inputWidth)
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 Ny({ trpc: e, label: t = "Step", value: n, onChange: i, slots: a }) {
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 Zv(e).then((e) => {
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(vy, {
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 Py = [{
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
- }], Fy = /^[a-z0-9]{8}-[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{12}:[a-z0-9]{40}$/;
17250
- function Iy(e) {
17251
- return Fy.test(e);
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 Ly = {
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 Ry(e) {
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: Ly[e] ?? e.toUpperCase()
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 zy(e) {
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 By(e) {
17351
+ function Hy(e) {
17318
17352
  return e.width !== void 0 && e.height !== void 0 ? `${e.width}x${e.height}` : "";
17319
17353
  }
17320
- var Vy = (e, t) => t.trainDate.localeCompare(e.trainDate);
17321
- function Hy(e, t, n) {
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 = Ry(e.name);
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 && By(e) !== t.dimensions) return !1;
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 Uy(e, t) {
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 Wy(e, t) {
17342
- let n = Uy(e, (e) => [e.isBaseModel ? "base" : "custom"]), r = ["custom", "base"].filter((e) => (n.get(e) ?? 0) > 0).map((e) => ({
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 = [...Uy(e.filter((e) => Hy(e, t, "kind")), (e) => [e.baseModel]).entries()].toSorted((e, t) => t[0].localeCompare(e[0], void 0, { numeric: !0 })).map(([e, t]) => ({
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 = Uy(e.filter((e) => Hy(e, t, "release")), (e) => e.supportedDetectors), o = {
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: zy(e)
17396
+ support: Vy(e)
17363
17397
  })).toSorted((e, t) => o[e.support.kind] - o[t.support.kind] || e.value.localeCompare(t.value)),
17364
- architecture: [...Uy(e.filter((e) => Hy(e, t, "detector")), (e) => [Ry(e.name).architecture]).entries()].toSorted((e, t) => e[0].localeCompare(t[0])).map(([e, t]) => ({
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: [...Uy(e.filter((e) => Hy(e, t, "architecture")), (e) => [Ry(e.name).weight]).entries()].toSorted((e, t) => e[0].localeCompare(t[0])).map(([e, t]) => ({
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: Ly[e] ?? e.toUpperCase(),
17405
+ label: zy[e] ?? e.toUpperCase(),
17372
17406
  count: t
17373
17407
  })),
17374
- dimensions: [...Uy(e.filter((e) => Hy(e, t, "weight")), (e) => [By(e)]).entries()].toSorted((e, t) => e[0].localeCompare(t[0], void 0, { numeric: !0 })).map(([e, t]) => ({
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) => Hy(e, t, "dimensions")).toSorted(Vy)
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 Gy = "https://docs.frigate.video/integrations/plus/", Ky = "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";
17386
- function qy(e, t) {
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 my(e).then((e) => {
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 Jy({ nodes: e }) {
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 Yy({ trpc: e, onRegistered: n, onError: i, onPrefillUpload: a }) {
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 = qy(e, ee), [O, k] = r(""), [A, j] = r(null), [re, M] = r(!1), [ie, ae] = r(!1), N = t(async () => {
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 dy(e));
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 ly(e).then((e) => {
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 uy(e);
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 (!Iy(t)) {
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 py(e, t), k(""), ae(!1);
17458
- let n = await ly(e);
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(vy, {
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: Ky
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 = Wy(d, t)[e];
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 = Wy(d, t);
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 = zy(t.detector ?? ""), s = o.kind === "unsupported" || o.kind === "coral-only" && (ne === null || ne.length === 0), c = (e, n) => {
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(vy, {
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: Ky,
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(vy, {
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: Ky,
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(Xy, {
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(vy, {
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: Ky,
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
- By(a).replace("x", "×"),
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(yy, {
17753
+ children: [/* @__PURE__ */ T(xy, {
17720
17754
  label: "Local model id",
17721
17755
  value: _,
17722
17756
  onChange: v,
17723
- placeholder: `frigate-plus-${Ry(a.name).architecture}`
17724
- }), /* @__PURE__ */ T(yy, {
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-${Ry(a.name).architecture}`;
17767
+ let t = _.trim() || `frigate-plus-${By(a.name).architecture}`;
17734
17768
  S(!0), w(null);
17735
- let r = sy(e, (e) => {
17769
+ let r = ly(e, (e) => {
17736
17770
  w(`${e.phase}${e.pct === void 0 ? "" : ` ${e.pct}%`}${e.detail ? ` — ${e.detail}` : ""}`);
17737
17771
  });
17738
- fy(e, {
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).${Zy(e.conversions)} Use Library → Distribute to copy artifacts to other nodes.`);
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: Gy,
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: Py.map((t) => /* @__PURE__ */ T(Qy, {
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 Xy({ onNeeded: e, nodes: t }) {
17825
+ function Qy({ onNeeded: e, nodes: t }) {
17792
17826
  return u(() => {
17793
17827
  e();
17794
- }, []), /* @__PURE__ */ T(Jy, { nodes: t });
17828
+ }, []), /* @__PURE__ */ T(Xy, { nodes: t });
17795
17829
  }
17796
- function Zy(e) {
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 Qy({ trpc: e, catalogId: t, onRegistered: n, onError: i, onPrefillUpload: a }) {
17800
- let o = Py.find((e) => e.id === t), [s, c] = r(!1), l = qy(e, o?.format === "tflite");
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(Jy, { nodes: l }),
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), cy(e, { catalogId: o.id }).then((e) => {
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 $y = [
17894
+ var tb = [
17861
17895
  "yolov9t",
17862
17896
  "yolov9s",
17863
17897
  "yolov9m",
17864
17898
  "yolov9c"
17865
- ], eb = ["relu", "relu_test"], tb = [
17899
+ ], nb = ["relu", "relu_test"], rb = [
17866
17900
  "coreml",
17867
17901
  "onnx",
17868
17902
  "openvino",
17869
17903
  "tflite"
17870
- ], nb = [
17904
+ ], ib = [
17871
17905
  "family",
17872
17906
  "variant",
17873
17907
  "format",
17874
17908
  "precision",
17875
17909
  "inputSize"
17876
- ], rb = {
17910
+ ], ab = {
17877
17911
  yolov9t: "T",
17878
17912
  yolov9s: "S",
17879
17913
  yolov9m: "M",
17880
17914
  yolov9c: "C"
17881
- }, ib = {
17915
+ }, ob = {
17882
17916
  relu: "Standard",
17883
17917
  relu_test: "Test"
17884
- }, ab = {
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 typeof e == "string" ? e.includes("x") || e.includes("×") ? e.replace("×", "x") : e : `${e.width}x${e.height}`;
17928
+ return nb.includes(e);
17901
17929
  }
17902
17930
  function ub(e) {
17903
- return e.replace("x", "×");
17931
+ return rb.includes(e);
17904
17932
  }
17905
17933
  function db(e) {
17906
- if (!(!ob(e.family) || !sb(e.variant) || !cb(e.format))) return e;
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, t) {
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 = db(e);
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 && lb(n.inputSize) !== t.inputSize);
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 pb(e) {
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 mb(e) {
17920
- let t = new Set(e.map((e) => e.family).filter((e) => ob(e)));
17921
- return $y.filter((e) => t.has(e)).map((e) => ({
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: rb[e]
17957
+ label: ab[e]
17924
17958
  }));
17925
17959
  }
17926
- function hb(e, t) {
17927
- let n = fb(e, { family: t.family }), r = new Set(n.map((e) => e.variant).filter((e) => sb(e)));
17928
- return eb.filter((e) => r.has(e)).map((e) => ({
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: ib[e]
17964
+ label: ob[e]
17931
17965
  }));
17932
17966
  }
17933
- function gb(e, t) {
17934
- let n = fb(e, {
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) => cb(e)));
17938
- return tb.filter((e) => r.has(e)).map((e) => ({
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: ab[e]
17974
+ label: sb[e]
17941
17975
  }));
17942
17976
  }
17943
- function _b(e, t) {
17944
- return pb(fb(e, {
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 vb(e, t) {
17954
- return pb(fb(e, {
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) => lb(e.inputSize))).map((e) => ({
17993
+ }).map((e) => db(e.inputSize))).map((e) => ({
17960
17994
  value: e,
17961
- label: ub(e)
17995
+ label: fb(e)
17962
17996
  }));
17963
17997
  }
17964
- function yb(e, t) {
17965
- let n = t.family, r = n !== void 0 && mb(e).some((e) => e.value === n), i = {};
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 && hb(e, i).some((e) => e.value === a) && (i.variant = a);
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 && gb(e, i).some((e) => e.value === o) && (i.format = o);
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 && _b(e, i).some((e) => e.value === s) && (i.precision = s);
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 && vb(e, i).some((e) => e.value === c) && (i.inputSize = c), i;
18009
+ return c !== void 0 && bb(e, i).some((e) => e.value === c) && (i.inputSize = c), i;
17976
18010
  }
17977
- function bb(e, t, n) {
17978
- let r = nb.indexOf(t), i = {};
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 = nb[t], r = e[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 xb(e, t) {
17989
- let n = yb(e, t), r = mb(e);
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 = hb(e, n);
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 = gb(e, n);
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 = _b(e, n);
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 = vb(e, n);
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 Sb(e, t) {
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 = fb(e, t);
18051
+ let n = mb(e, t);
18018
18052
  return n.length === 1 ? n[0] : void 0;
18019
18053
  }
18020
- function Cb(e) {
18021
- return ab[e];
18054
+ function Tb(e) {
18055
+ return sb[e];
18022
18056
  }
18023
- function wb(e) {
18024
- return `${e.family === void 0 ? "—" : rb[e.family]} → ${e.variant === void 0 ? "—" : ib[e.variant]} → ${e.format === void 0 ? "—" : ab[e.format]} → ${e.precision ?? "—"} → ${e.inputSize === void 0 ? "—" : ub(e.inputSize)}`;
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 Tb(e, t) {
18060
+ function Db(e, t) {
18027
18061
  return e.find((e) => e.manifestId === t)?.status;
18028
18062
  }
18029
- function Eb(e) {
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 Db(e, t) {
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 Ob = "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", kb = "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", Ab = "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";
18042
- function jb(e) {
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 Mb(e) {
18047
- let t = e.model.formats[e.format]?.runtimes, n = [Cb(e.format)];
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 Nb({ trpc: e, onImported: n }) {
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 = hy(e), r = Wv(e).then((e) => ({
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) => xb(i.entries, 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(() => mb(i ?? []), [i]), D = s(() => hb(i ?? [], h), [i, h]), ee = s(() => gb(i ?? [], h), [i, h]), te = s(() => _b(i ?? [], h), [i, h]), ne = s(() => vb(i ?? [], h), [i, h]), O = s(() => i ? Sb(i, h) : void 0, [i, h]), k = d !== null, A = k && O !== void 0 && Db(d, O.id), j = O === void 0 ? void 0 : Tb(c, O.id), re = O ? Eb({
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(xb(i, bb(h, e, t))));
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 gy(e, { manifestId: O.id }), await C(), n?.();
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: Ab,
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: Ab,
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: wb(h)
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(vy, {
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: Ob,
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(vy, {
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: Ob,
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(vy, {
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: Ob,
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(vy, {
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: Ob,
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(vy, {
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: Ob,
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: Cb(O.format)
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: Nv(jb(O))
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: Mb(O).join(" · ")
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: [" · ", Mv(e.size)]
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: kb,
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: kb,
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 Pb = [
18393
+ var Ib = [
18360
18394
  "onnx",
18361
18395
  "openvino",
18362
18396
  "coreml",
18363
18397
  "tflite",
18364
18398
  "pt"
18365
- ], Fb = [
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
- ], Ib = [
18412
+ ], Rb = [
18379
18413
  ".onnx",
18380
18414
  ".tflite",
18381
18415
  ".pt"
18382
- ], Lb = [
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 Rb({ trpc: e, onRegistered: n }) {
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(() => Ay(te), [te]), oe = t(async (t) => {
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 iy(e, t, (e, t) => {
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 = Fb.find((e) => e === g), i = My({
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 Gv(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();
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, Lb, (e) => {
18506
- let t = Lb.find((t) => t.value === e);
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(Yy, {
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(Nb, {
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(vy, {
18541
- label: `Model file (${Ib.join(" / ")})`,
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: Ib.join(","),
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(yy, {
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(by, {
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(yy, {
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(yy, {
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(Ny, {
18656
+ /* @__PURE__ */ T(Fy, {
18623
18657
  trpc: e,
18624
18658
  value: f,
18625
18659
  onChange: p
18626
18660
  }),
18627
- /* @__PURE__ */ T(by, {
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(by, {
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(vy, {
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 = Pb.find((t) => t === e.target.value);
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: Pb.map((e) => /* @__PURE__ */ T("option", {
18686
+ children: Ib.map((e) => /* @__PURE__ */ T("option", {
18653
18687
  value: e,
18654
18688
  children: e
18655
18689
  }, e))
18656
18690
  })
18657
- }), /* @__PURE__ */ E(vy, {
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
- }), Fb.map((e) => /* @__PURE__ */ T("option", {
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(vy, {
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 zb = [
18739
+ var Vb = [
18706
18740
  "yolo",
18707
18741
  "ssd",
18708
18742
  "embedding",
18709
18743
  "classification",
18710
18744
  "ocr",
18711
18745
  "segmentation"
18712
- ], Bb = "";
18713
- function Vb(e) {
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 Hb({ trpc: e, onConverted: n }) {
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(kv), [C, w] = r(Bb), [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);
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(() => Av(x), [x]), F = jv(x), I = t(async () => {
18725
- if (!jv(x)) {
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 qv(e, Av(x))), ne(null);
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: Vb(y),
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 = sy(e, (e) => {
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 Jv(e, {
18798
+ M(await Xv(e, {
18765
18799
  sourceUrl: i.trim(),
18766
18800
  metadata: t,
18767
18801
  targets: P,
18768
- ...C === Bb ? {} : { targetNodeId: 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(yy, {
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(yy, {
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(yy, {
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(by, {
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(by, {
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(vy, {
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 = zb.find((t) => t === e.target.value);
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: zb.map((e) => /* @__PURE__ */ T("option", {
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(yy, {
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(vy, {
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(xy, {
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(xy, {
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(xy, {
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(vy, {
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 === Bb,
18899
- onChange: () => w(Bb),
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 === Bb ? "opacity-50 pointer-events-none" : "",
18904
- children: /* @__PURE__ */ T(_y, {
18905
- selectedNodeId: C === Bb ? "hub" : 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(Ub, {
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 Ub({ state: e, progress: t, outcome: n }) {
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
- Nv(e.sizeMB),
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 Wb = [
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 Gb(e) {
19091
+ function qb(e) {
19058
19092
  return `model-studio-tab-${e}`;
19059
19093
  }
19060
- function Kb(e) {
19094
+ function Jb(e) {
19061
19095
  return `model-studio-panel-${e}`;
19062
19096
  }
19063
- function qb({ trpc: e }) {
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(Gb(n))?.focus());
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 = Wb.findIndex((e) => e.id === n);
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) % Wb.length;
19088
- else if (e.key === "ArrowLeft") r = (t - 1 + Wb.length) % Wb.length;
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 = Wb.length - 1;
19124
+ else if (e.key === "End") r = Kb.length - 1;
19091
19125
  else return;
19092
- e.preventDefault(), d(Wb[r].id, !0);
19126
+ e.preventDefault(), d(Kb[r].id, !0);
19093
19127
  },
19094
- children: Wb.map((e) => /* @__PURE__ */ T("button", {
19095
- id: Gb(e.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": Kb(e.id),
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: Kb(n),
19110
- "aria-labelledby": Gb(n),
19143
+ id: Jb(n),
19144
+ "aria-labelledby": qb(n),
19111
19145
  children: [
19112
- n === "catalog" && /* @__PURE__ */ T(wy, {
19146
+ n === "catalog" && /* @__PURE__ */ T(Ey, {
19113
19147
  trpc: e,
19114
19148
  refreshKey: a
19115
19149
  }),
19116
- n === "library" && /* @__PURE__ */ T(Ty, {
19150
+ n === "library" && /* @__PURE__ */ T(Dy, {
19117
19151
  trpc: e,
19118
19152
  refreshKey: a
19119
19153
  }),
19120
- n === "register" && /* @__PURE__ */ T(Rb, {
19154
+ n === "register" && /* @__PURE__ */ T(Bb, {
19121
19155
  trpc: e,
19122
19156
  onRegistered: l
19123
19157
  }),
19124
- n === "convert" && /* @__PURE__ */ T(Hb, {
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 { qb as default };
19168
+ export { Yb as default };