@camstack/addon-model-studio 1.1.293 → 1.1.295

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (20) hide show
  1. package/THIRD_PARTY_MODELS.md +2 -2
  2. package/dist/{MotionZonesSettings-DrHyXG0G.mjs → MotionZonesSettings-DOhuE4t6.mjs} +2 -2
  3. package/dist/{PrivacyMaskSettings-CuqGSOYk.mjs → PrivacyMaskSettings-BtQIysUm.mjs} +4 -4
  4. package/dist/{SceneMonitorEditor-_wt-7NOB.mjs → SceneMonitorEditor-B4cEP3UH.mjs} +3 -3
  5. package/dist/_stub.js +155 -155
  6. package/dist/{_virtual_mf-localSharedImportMap___mfe_internal__addon_model_studio_page-D1kg1qk9.mjs → _virtual_mf-localSharedImportMap___mfe_internal__addon_model_studio_page-DNRDIeO2.mjs} +4 -4
  7. package/dist/_virtual_mf___mfe_internal__addon_model_studio_page__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-CDZyIXC0.mjs +26 -0
  8. package/dist/{hostInit-CqUjCpJe.mjs → hostInit-DLBoEjee.mjs} +3 -3
  9. package/dist/model-studio.addon.js +2257 -261
  10. package/dist/model-studio.addon.mjs +2256 -260
  11. package/dist/{player-overlays-IswZiT1v.mjs → player-overlays-BVHDRE8f.mjs} +1 -1
  12. package/dist/remoteEntry.js +1 -1
  13. package/dist/{responsive-BRDOoNTu.mjs → responsive-CI-NtcQi.mjs} +1 -1
  14. package/dist/{scene-monitor-copy-BLrlOdpo.mjs → scene-monitor-copy-CvzuJJ8Z.mjs} +1 -1
  15. package/dist/{square-CqxajgGh.mjs → square-CsljmL2M.mjs} +1 -1
  16. package/dist/{trash-2-B67pP3l-.mjs → trash-2-DwX9K1LA.mjs} +1 -1
  17. package/dist/{virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_model_studio_page__remoteEntry_js-DeT4IssS.mjs → virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_model_studio_page__remoteEntry_js-Bu2vRo0B.mjs} +1 -1
  18. package/package.json +1 -1
  19. package/python/__tests__/test_calibration.py +3 -3
  20. package/dist/_virtual_mf___mfe_internal__addon_model_studio_page__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-BPZnyWUq.mjs +0 -26
package/dist/_stub.js CHANGED
@@ -1,14 +1,14 @@
1
1
  import "./virtualExposes-CWSi4E_g.mjs";
2
- import "./virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_model_studio_page__remoteEntry_js-DeT4IssS.mjs";
2
+ import "./virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_model_studio_page__remoteEntry_js-Bu2vRo0B.mjs";
3
3
  import { S as e, _ as t, a as n, b as r, d as i, f as a, g as o, h as s, i as c, l, m as u, n as d, p as f, r as p, t as m, u as h, v as g, y as _ } from "./_virtual_mf___mfe_internal__addon_model_studio_page__loadShare__react__loadShare__.js-DMBKVIH7.mjs";
4
4
  import { n as v, r as y, t as b } from "./_virtual_mf___mfe_internal__addon_model_studio_page__loadShare__react_mf_1_jsx_mf_2_runtime__loadShare__.js-ds_Ehzaa.mjs";
5
5
  import { n as x, r as S, t as C } from "./ui-text-BqZa5BNK.mjs";
6
- import { $ as w, A as T, B as E, C as ee, D as te, E as D, F as O, G as k, H as A, I as j, J as ne, K as re, L as M, M as ie, N as ae, O as N, P as oe, Q as P, R as F, S as se, T as ce, U as I, V as le, W as ue, X as de, Y as fe, Z as pe, _ as me, a as he, at as ge, b as _e, c as ve, d as ye, et as L, f as be, g as xe, h as Se, i as Ce, it as we, j as Te, k as Ee, l as De, m as Oe, n as ke, nt as Ae, o as je, ot as Me, p as Ne, q as Pe, r as Fe, rt as Ie, s as Le, t as Re, u as ze, w as Be, x as Ve, y as R, z as He } from "./_virtual_mf___mfe_internal__addon_model_studio_page__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-BPZnyWUq.mjs";
7
- import { a as Ue, c as We, f as Ge, g as z, h as Ke, i as qe, l as Je, m as Ye, o as Xe, p as Ze, r as Qe, s as $e, t as et, u as tt } from "./responsive-BRDOoNTu.mjs";
8
- import { d as nt, l as rt, u as it } from "./scene-monitor-copy-BLrlOdpo.mjs";
9
- import { i as at, r as ot } from "./player-overlays-IswZiT1v.mjs";
10
- import { r as st, t as ct } from "./square-CqxajgGh.mjs";
11
- import { t as lt } from "./trash-2-B67pP3l-.mjs";
6
+ import { $ as w, A as T, B as E, C as ee, D as te, E as D, F as O, G as k, H as A, I as j, J as ne, K as re, L as M, M as ie, N as ae, O as N, P as oe, Q as P, R as F, S as se, T as ce, U as I, V as le, W as ue, X as de, Y as fe, Z as pe, _ as me, a as he, at as ge, b as _e, c as ve, d as ye, et as L, f as be, g as xe, h as Se, i as Ce, it as we, j as Te, k as Ee, l as De, m as Oe, n as ke, nt as Ae, o as je, ot as Me, p as Ne, q as Pe, r as Fe, rt as Ie, s as Le, t as Re, u as ze, w as Be, x as Ve, y as R, z as He } from "./_virtual_mf___mfe_internal__addon_model_studio_page__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-CDZyIXC0.mjs";
7
+ import { a as Ue, c as We, f as Ge, g as z, h as Ke, i as qe, l as Je, m as Ye, o as Xe, p as Ze, r as Qe, s as $e, t as et, u as tt } from "./responsive-CI-NtcQi.mjs";
8
+ import { d as nt, l as rt, u as it } from "./scene-monitor-copy-CvzuJJ8Z.mjs";
9
+ import { i as at, r as ot } from "./player-overlays-BVHDRE8f.mjs";
10
+ import { r as st, t as ct } from "./square-CsljmL2M.mjs";
11
+ import { t as lt } from "./trash-2-DwX9K1LA.mjs";
12
12
  import { t as ut } from "./_virtual_mf___mfe_internal__addon_model_studio_page__loadShare___mf_0_trpc_mf_1_react_mf_2_query__loadShare__.js-BvzT760A.mjs";
13
13
  import "./_virtual_mf___mfe_internal__addon_model_studio_page__loadShare__react_mf_2_dom__loadShare__.js-C8Ar0nzL.mjs";
14
14
  import "./_virtual_mf___mfe_internal__addon_model_studio_page__loadShare___mf_0_tanstack_mf_1_react_mf_2_query__loadShare__.js-B-9Pn2K0.mjs";
@@ -5236,7 +5236,7 @@ function mo({ className: e, ...t }) {
5236
5236
  }
5237
5237
  //#endregion
5238
5238
  //#region ../../node_modules/qrcode.react/lib/esm/index.js
5239
- e(), e(), e(), e(), e(), e(), e(), n(() => import("./MotionZonesSettings-DrHyXG0G.mjs").then((e) => ({ default: e.MotionZonesSettings }))), n(() => import("./PrivacyMaskSettings-CuqGSOYk.mjs").then((e) => ({ default: e.PrivacyMaskSettings }))), e(), e();
5239
+ e(), e(), e(), e(), e(), e(), e(), n(() => import("./MotionZonesSettings-DOhuE4t6.mjs").then((e) => ({ default: e.MotionZonesSettings }))), n(() => import("./PrivacyMaskSettings-BtQIysUm.mjs").then((e) => ({ default: e.PrivacyMaskSettings }))), e(), e();
5240
5240
  var ho = Object.defineProperty, go = Object.getOwnPropertySymbols, _o = Object.prototype.hasOwnProperty, vo = Object.prototype.propertyIsEnumerable, yo = (e, t, n) => t in e ? ho(e, t, {
5241
5241
  enumerable: !0,
5242
5242
  configurable: !0,
@@ -6379,8 +6379,8 @@ function Jo({ catalog: e, value: t, onChange: n, disabled: r }) {
6379
6379
  e();
6380
6380
  var Yo = {
6381
6381
  camstack: "CamStack",
6382
- frigate: "Frigate",
6383
- scrypted: "Scrypted",
6382
+ frigate: "plus catalog",
6383
+ scrypted: "plugin catalog",
6384
6384
  custom: "Custom"
6385
6385
  };
6386
6386
  function Xo(e) {
@@ -6492,7 +6492,7 @@ function ns(e) {
6492
6492
  //#endregion
6493
6493
  //#region ../ui-library/src/composites/root-model-source.tsx
6494
6494
  function rs(e, t, n) {
6495
- return T(e) ? F(e, t, n?.supplies) : null;
6495
+ return N(e) ? F(e, t, n?.supplies) : null;
6496
6496
  }
6497
6497
  function is(e, t) {
6498
6498
  return {
@@ -6619,7 +6619,7 @@ function ds(e) {
6619
6619
  }
6620
6620
  function fs({ fields: e, modelId: t, settings: n, disabled: r, onReset: i }) {
6621
6621
  let a = S(), o = ds(e), s = t.length > 0 ? t : void 0;
6622
- return o.length === 0 || !D(n, o, s) ? null : /* @__PURE__ */ v("button", {
6622
+ return o.length === 0 || !Be(n, o, s) ? null : /* @__PURE__ */ v("button", {
6623
6623
  type: "button",
6624
6624
  disabled: r,
6625
6625
  className: "text-[10px] text-primary hover:underline disabled:opacity-50",
@@ -6826,7 +6826,7 @@ function vs(e) {
6826
6826
  return e.type !== "separator" && e.type !== "info" && e.type !== "group";
6827
6827
  }
6828
6828
  function ys(e) {
6829
- return "bindsToModel" in e && e.bindsToModel === !0 ? !0 : "key" in e && Ee(e.key);
6829
+ return "bindsToModel" in e && e.bindsToModel === !0 ? !0 : "key" in e && te(e.key);
6830
6830
  }
6831
6831
  function bs(e) {
6832
6832
  return e.flatMap((e) => {
@@ -6895,7 +6895,7 @@ function Ds(e, t, n) {
6895
6895
  var Os = ["camera", "node"];
6896
6896
  function ks({ field: e, layers: t, target: n, labels: r, boundKeys: i, modelId: a, pinned: o, disabled: s, onReset: c, action: l }) {
6897
6897
  let u = S(), d = ee(t), f = Ss(e, a), p = f.fromModel ? u("uiLibrary.layeredSettings.modelDefault", "model default") : u("uiLibrary.layeredSettings.default", "default"), m = le(t, e.key, i), h = xs(e), g = h ? M(d, e.key, a, f.value, f.value) : null, _ = g === null || g.source === "override" ? m : "default", b = _ === "default" ? p : r[_] ?? _, x = Os.filter((e) => e !== _ && r[e] !== void 0).filter((n) => t[n]?.[e.key] !== void 0).map((n) => {
6898
- let i = h ? t[n]?.[Te(e.key)] : void 0, o = typeof i == "string" && i !== a ? u("uiLibrary.layeredSettings.forModel", " (for {{model}})", { model: i }) : "";
6898
+ let i = h ? t[n]?.[Ee(e.key)] : void 0, o = typeof i == "string" && i !== a ? u("uiLibrary.layeredSettings.forModel", " (for {{model}})", { model: i }) : "";
6899
6899
  return `${r[n]} ${ws(e, t[n]?.[e.key])}${o}`;
6900
6900
  }), C = _ === "default" ? x : [...x, `${p} ${ws(e, f.value)}`], w = le({ [n]: t[n] }, e.key, i) !== "default", T = Os.slice(Os.indexOf(n) + 1).find((n) => r[n] !== void 0 && t[n]?.[e.key] !== void 0), E = T === void 0 ? p : r[T] ?? T, te = m === "default" ? "default" : le({
6901
6901
  ...t,
@@ -7676,7 +7676,7 @@ var Ec = ze(), Dc = new Set([
7676
7676
  "recording",
7677
7677
  "heatmapScrub"
7678
7678
  ]);
7679
- Object.freeze(Object.fromEntries(ke.filter((e) => !Dc.has(e)).map((e) => [e, ae(Ec.swatches, Ec.fallbacks, e)])));
7679
+ Object.freeze(Object.fromEntries(ke.filter((e) => !Dc.has(e)).map((e) => [e, Te(Ec.swatches, Ec.fallbacks, e)])));
7680
7680
  function Oc(e) {
7681
7681
  let t = e[0];
7682
7682
  if (t === void 0) throw Error("display palette has no fallback colour");
@@ -10021,7 +10021,7 @@ e();
10021
10021
  //#endregion
10022
10022
  //#region ../ui-library/src/lib/resolve-sensor-display.ts
10023
10023
  function ad(e) {
10024
- if (e !== void 0) return ie(e) ?? e;
10024
+ if (e !== void 0) return T(e) ?? e;
10025
10025
  }
10026
10026
  var od = (e) => e;
10027
10027
  function sd(e) {
@@ -20420,22 +20420,22 @@ function vC(e, t) {
20420
20420
  translate: (t, n) => fC(e, rC(), t, n)
20421
20421
  };
20422
20422
  }
20423
- e(), n(() => import("./MaskShapeCanvas-CrWutXSb.mjs").then((e) => ({ default: e.MaskShapeCanvas }))), n(() => import("./MotionZonesSettings-DrHyXG0G.mjs").then((e) => ({ default: e.MotionZonesSettings }))), n(() => import("./SceneMonitorEditor-_wt-7NOB.mjs").then((e) => ({ default: e.SceneMonitorEditor }))), n(() => import("./PrivacyMaskSettings-CuqGSOYk.mjs").then((e) => ({ default: e.PrivacyMaskSettings })));
20423
+ e(), n(() => import("./MaskShapeCanvas-CrWutXSb.mjs").then((e) => ({ default: e.MaskShapeCanvas }))), n(() => import("./MotionZonesSettings-DOhuE4t6.mjs").then((e) => ({ default: e.MotionZonesSettings }))), n(() => import("./SceneMonitorEditor-B4cEP3UH.mjs").then((e) => ({ default: e.SceneMonitorEditor }))), n(() => import("./PrivacyMaskSettings-BtQIysUm.mjs").then((e) => ({ default: e.PrivacyMaskSettings })));
20424
20424
  //#endregion
20425
- //#region src/scrypted/scrypted-yolo-manifest-data.json
20426
- var yC = /*#__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}]"), bC = {
20425
+ //#region src/plugin-catalog/plugin-catalog-yolo-manifest-data.json
20426
+ var yC = /*#__PURE__*/ JSON.parse("[{\"id\":\"scrypted-yolov9t-relu-coreml\",\"label\":\"plugin catalog YOLOv9T ReLU CoreML\",\"family\":\"yolov9t\",\"variant\":\"relu\",\"format\":\"coreml\",\"precision\":\"fp16\",\"files\":[{\"relativePath\":\"coreml/scrypted_yolov9t_relu/scrypted_yolov9t_relu.mlpackage/Manifest.json\",\"size\":617,\"sha256\":\"0a8733949d77e3204dba6418e81a11a8cc177015711457ce2c171266f23382d6\"},{\"relativePath\":\"coreml/scrypted_yolov9t_relu/scrypted_yolov9t_relu.mlpackage/Data/com.apple.CoreML/model.mlmodel\",\"size\":322229,\"sha256\":\"f5a62f196f1e72a84efa1637119dffb6501621af9cf6f867bc76b4b59c9242a0\"},{\"relativePath\":\"coreml/scrypted_yolov9t_relu/scrypted_yolov9t_relu.mlpackage/Data/com.apple.CoreML/weights/weight.bin\",\"size\":3797160,\"sha256\":\"b994419b8b68cfd6b89c3c6f3fe6b37458c86cc1d87fcca3df5034476a99dd38\"}],\"sizeMB\":4.12},{\"id\":\"scrypted-yolov9t-relu-onnx\",\"label\":\"plugin catalog YOLOv9T ReLU ONNX\",\"family\":\"yolov9t\",\"variant\":\"relu\",\"format\":\"onnx\",\"precision\":\"fp32\",\"files\":[{\"relativePath\":\"onnx/scrypted_yolov9t_relu/scrypted_yolov9t_relu.onnx\",\"size\":8499266,\"sha256\":\"3f11ea2071b27c285b58c16636a44d6a0a27bdd1ca8b64112dfadabd39cfea47\"}],\"sizeMB\":8.5},{\"id\":\"scrypted-yolov9t-relu-test-coreml\",\"label\":\"plugin catalog YOLOv9T ReLU test CoreML\",\"family\":\"yolov9t\",\"variant\":\"relu_test\",\"format\":\"coreml\",\"precision\":\"fp16\",\"files\":[{\"relativePath\":\"coreml/scrypted_yolov9t_relu_test/scrypted_yolov9t_relu_test.mlpackage/Manifest.json\",\"size\":617,\"sha256\":\"a5e0128b643f1a66f3e07d4b332f9ccbca97ccab75651c794f0b9f1fb41c8491\"},{\"relativePath\":\"coreml/scrypted_yolov9t_relu_test/scrypted_yolov9t_relu_test.mlpackage/Data/com.apple.CoreML/model.mlmodel\",\"size\":322229,\"sha256\":\"79f4f647f2a0c79db3b560c84251b48c7ba7cbe9c1fecc9674d1a603a389dfa3\"},{\"relativePath\":\"coreml/scrypted_yolov9t_relu_test/scrypted_yolov9t_relu_test.mlpackage/Data/com.apple.CoreML/weights/weight.bin\",\"size\":3797160,\"sha256\":\"72efc9dc6af9241b5e5ee7de24a4f55741f6425d0e279d797f0f223e3d355f84\"}],\"sizeMB\":4.12},{\"id\":\"scrypted-yolov9t-relu-test-onnx\",\"label\":\"plugin catalog YOLOv9T ReLU test ONNX\",\"family\":\"yolov9t\",\"variant\":\"relu_test\",\"format\":\"onnx\",\"precision\":\"fp32\",\"files\":[{\"relativePath\":\"onnx/scrypted_yolov9t_relu_test/scrypted_yolov9t_relu_test.onnx\",\"size\":8499266,\"sha256\":\"d20aa0e6923a3af7f5e84e3a6d28fb00e8ecd592e3225f986f93bd34b634e2f8\"}],\"sizeMB\":8.5},{\"id\":\"scrypted-yolov9s-relu-coreml\",\"label\":\"plugin catalog YOLOv9S ReLU CoreML\",\"family\":\"yolov9s\",\"variant\":\"relu\",\"format\":\"coreml\",\"precision\":\"fp16\",\"files\":[{\"relativePath\":\"coreml/scrypted_yolov9s_relu/scrypted_yolov9s_relu.mlpackage/Manifest.json\",\"size\":617,\"sha256\":\"3bcdb820b82f1e89266f2d11bae1604d3ee4ca6d11dc5bd5c57055ff4157e9f3\"},{\"relativePath\":\"coreml/scrypted_yolov9s_relu/scrypted_yolov9s_relu.mlpackage/Data/com.apple.CoreML/model.mlmodel\",\"size\":322664,\"sha256\":\"9a9c3c9cbca406ec2f0418ec867ed6b878ec6d02c16636d30e0bbd83d2ff7c40\"},{\"relativePath\":\"coreml/scrypted_yolov9s_relu/scrypted_yolov9s_relu.mlpackage/Data/com.apple.CoreML/weights/weight.bin\",\"size\":14190120,\"sha256\":\"fd51eda58a993997268f6a2e424b536ba173207ad7974ab8bee2a8ff76d52dab\"}],\"sizeMB\":14.51},{\"id\":\"scrypted-yolov9s-relu-onnx\",\"label\":\"plugin catalog YOLOv9S ReLU ONNX\",\"family\":\"yolov9s\",\"variant\":\"relu\",\"format\":\"onnx\",\"precision\":\"fp32\",\"files\":[{\"relativePath\":\"onnx/scrypted_yolov9s_relu/scrypted_yolov9s_relu.onnx\",\"size\":29287339,\"sha256\":\"ca0b5bd98d5f59eb2029c6cb5129d53af59873f62a317a028beda463bbb96399\"}],\"sizeMB\":29.29},{\"id\":\"scrypted-yolov9s-relu-test-coreml\",\"label\":\"plugin catalog YOLOv9S ReLU test CoreML\",\"family\":\"yolov9s\",\"variant\":\"relu_test\",\"format\":\"coreml\",\"precision\":\"fp16\",\"files\":[{\"relativePath\":\"coreml/scrypted_yolov9s_relu_test/scrypted_yolov9s_relu_test.mlpackage/Manifest.json\",\"size\":617,\"sha256\":\"e2d24de0ce7e8573f19572029765e55abc714f36a85175ad7fcb95c001a76653\"},{\"relativePath\":\"coreml/scrypted_yolov9s_relu_test/scrypted_yolov9s_relu_test.mlpackage/Data/com.apple.CoreML/model.mlmodel\",\"size\":322664,\"sha256\":\"186b147cdfd15c5ed7a381ec3a426a22cee0b5c52d56f14efd26da06357f5cb0\"},{\"relativePath\":\"coreml/scrypted_yolov9s_relu_test/scrypted_yolov9s_relu_test.mlpackage/Data/com.apple.CoreML/weights/weight.bin\",\"size\":14190120,\"sha256\":\"e50651924c2cbffd56008a8953569e66c3de69f21807fcf7d825390ce30f21f8\"}],\"sizeMB\":14.51},{\"id\":\"scrypted-yolov9s-relu-test-onnx\",\"label\":\"plugin catalog YOLOv9S ReLU test ONNX\",\"family\":\"yolov9s\",\"variant\":\"relu_test\",\"format\":\"onnx\",\"precision\":\"fp32\",\"files\":[{\"relativePath\":\"onnx/scrypted_yolov9s_relu_test/scrypted_yolov9s_relu_test.onnx\",\"size\":29287339,\"sha256\":\"115ddb83333762a0f2599421335678696454a5c3571ade5df9bac8e9cb5fb4cf\"}],\"sizeMB\":29.29},{\"id\":\"scrypted-yolov9m-relu-coreml\",\"label\":\"plugin catalog YOLOv9M ReLU CoreML\",\"family\":\"yolov9m\",\"variant\":\"relu\",\"format\":\"coreml\",\"precision\":\"fp16\",\"files\":[{\"relativePath\":\"coreml/scrypted_yolov9m_relu/scrypted_yolov9m_relu.mlpackage/Manifest.json\",\"size\":617,\"sha256\":\"c548c6e1ff768b2b01bd71e230aa712a1635ae2baa30e0369557a42fc531ecbf\"},{\"relativePath\":\"coreml/scrypted_yolov9m_relu/scrypted_yolov9m_relu.mlpackage/Data/com.apple.CoreML/model.mlmodel\",\"size\":247061,\"sha256\":\"1c40e02fc2a2559cb906ea6cd9da9c730d4a78f5019290cbb38d2fcaae379fe7\"},{\"relativePath\":\"coreml/scrypted_yolov9m_relu/scrypted_yolov9m_relu.mlpackage/Data/com.apple.CoreML/weights/weight.bin\",\"size\":39880616,\"sha256\":\"4cf938e5bfcc3ee1644813e4eb4702a7de450cc0581df94c719cf43d0ed2e408\"}],\"sizeMB\":40.13},{\"id\":\"scrypted-yolov9m-relu-onnx\",\"label\":\"plugin catalog YOLOv9M ReLU ONNX\",\"family\":\"yolov9m\",\"variant\":\"relu\",\"format\":\"onnx\",\"precision\":\"fp32\",\"files\":[{\"relativePath\":\"onnx/scrypted_yolov9m_relu/scrypted_yolov9m_relu.onnx\",\"size\":80380404,\"sha256\":\"e7a81fb33224a0105d2a0a594c3fa43c398c361de623f1d14156ae826e7312d5\"}],\"sizeMB\":80.38},{\"id\":\"scrypted-yolov9m-relu-test-coreml\",\"label\":\"plugin catalog YOLOv9M ReLU test CoreML\",\"family\":\"yolov9m\",\"variant\":\"relu_test\",\"format\":\"coreml\",\"precision\":\"fp16\",\"files\":[{\"relativePath\":\"coreml/scrypted_yolov9m_relu_test/scrypted_yolov9m_relu_test.mlpackage/Manifest.json\",\"size\":617,\"sha256\":\"8e2684b286d02b4bdf9db1027c84cb89bf8e4830cfb58269f3ec457c5a010650\"},{\"relativePath\":\"coreml/scrypted_yolov9m_relu_test/scrypted_yolov9m_relu_test.mlpackage/Data/com.apple.CoreML/model.mlmodel\",\"size\":247061,\"sha256\":\"53d5946e74b13b15c5f8616081c9f15e8a95a5df3d5b45b830fc5a7f49561c16\"},{\"relativePath\":\"coreml/scrypted_yolov9m_relu_test/scrypted_yolov9m_relu_test.mlpackage/Data/com.apple.CoreML/weights/weight.bin\",\"size\":39880616,\"sha256\":\"69774bf0032c37707601b8cdc1e1820dbd9f8288eb5d6f3879618a5d34ff5199\"}],\"sizeMB\":40.13},{\"id\":\"scrypted-yolov9m-relu-test-onnx\",\"label\":\"plugin catalog YOLOv9M ReLU test ONNX\",\"family\":\"yolov9m\",\"variant\":\"relu_test\",\"format\":\"onnx\",\"precision\":\"fp32\",\"files\":[{\"relativePath\":\"onnx/scrypted_yolov9m_relu_test/scrypted_yolov9m_relu_test.onnx\",\"size\":80380404,\"sha256\":\"8bb054f099295909ec518e2a6598d63db24d3f90edc8105a0f016903f2a205a2\"}],\"sizeMB\":80.38},{\"id\":\"scrypted-yolov9c-relu-coreml\",\"label\":\"plugin catalog YOLOv9C ReLU CoreML\",\"family\":\"yolov9c\",\"variant\":\"relu\",\"format\":\"coreml\",\"precision\":\"fp16\",\"files\":[{\"relativePath\":\"coreml/scrypted_yolov9c_relu/scrypted_yolov9c_relu.mlpackage/Manifest.json\",\"size\":617,\"sha256\":\"813a306ebd69cabfd31f00434f5a961feeca7d237833f3e11805dcf4ad120ba9\"},{\"relativePath\":\"coreml/scrypted_yolov9c_relu/scrypted_yolov9c_relu.mlpackage/Data/com.apple.CoreML/model.mlmodel\",\"size\":263210,\"sha256\":\"862f082619075e470738306b0ff0a37ae70a7d08e684ca6a6dfa1971d404e0c3\"},{\"relativePath\":\"coreml/scrypted_yolov9c_relu/scrypted_yolov9c_relu.mlpackage/Data/com.apple.CoreML/weights/weight.bin\",\"size\":50489960,\"sha256\":\"ed89747e58943758e2a87221d1d404f6a4466cbc039c3c6f96e327cadc403d27\"}],\"sizeMB\":50.75},{\"id\":\"scrypted-yolov9c-relu-onnx\",\"label\":\"plugin catalog YOLOv9C ReLU ONNX\",\"family\":\"yolov9c\",\"variant\":\"relu\",\"format\":\"onnx\",\"precision\":\"fp32\",\"files\":[{\"relativePath\":\"onnx/scrypted_yolov9c_relu/scrypted_yolov9c_relu.onnx\",\"size\":101631962,\"sha256\":\"b9372c4428daf4cd944c114b1e80d1a9ff0487d743e53a77216a051cfbef7116\"}],\"sizeMB\":101.63},{\"id\":\"scrypted-yolov9c-relu-test-coreml\",\"label\":\"plugin catalog YOLOv9C ReLU test CoreML\",\"family\":\"yolov9c\",\"variant\":\"relu_test\",\"format\":\"coreml\",\"precision\":\"fp16\",\"files\":[{\"relativePath\":\"coreml/scrypted_yolov9c_relu_test/scrypted_yolov9c_relu_test.mlpackage/Manifest.json\",\"size\":617,\"sha256\":\"966ef82a93cb0ccf1036a8c9729c065fd372fa9590a97d0945e581cc674f7ad2\"},{\"relativePath\":\"coreml/scrypted_yolov9c_relu_test/scrypted_yolov9c_relu_test.mlpackage/Data/com.apple.CoreML/model.mlmodel\",\"size\":263210,\"sha256\":\"08718ecd3e9552d21a702bd8df60911cad0eec7b2ae382466809550f14634711\"},{\"relativePath\":\"coreml/scrypted_yolov9c_relu_test/scrypted_yolov9c_relu_test.mlpackage/Data/com.apple.CoreML/weights/weight.bin\",\"size\":50489960,\"sha256\":\"fe5936b9430ab4c87f30b148220131d6ec998b2377223d033e2fa2a00e60aada\"}],\"sizeMB\":50.75},{\"id\":\"scrypted-yolov9c-relu-test-onnx\",\"label\":\"plugin catalog YOLOv9C ReLU test ONNX\",\"family\":\"yolov9c\",\"variant\":\"relu_test\",\"format\":\"onnx\",\"precision\":\"fp32\",\"files\":[{\"relativePath\":\"onnx/scrypted_yolov9c_relu_test/scrypted_yolov9c_relu_test.onnx\",\"size\":101631962,\"sha256\":\"2f4e2031e8efb4cbc871594338b2e875d78ab4af3ee0258d253273b1aac84742\"}],\"sizeMB\":101.63},{\"id\":\"scrypted-yolov9t-relu-openvino-fp32\",\"label\":\"plugin catalog YOLOv9T ReLU OpenVINO FP32\",\"family\":\"yolov9t\",\"variant\":\"relu\",\"format\":\"openvino\",\"precision\":\"fp32\",\"files\":[{\"relativePath\":\"openvino/scrypted_yolov9t_relu/best-converted.xml\",\"size\":628222,\"sha256\":\"01b5a9d02a0f281e1aaf4860e1b0ed3a7f16b9d78975be8ff985ae0ee283d877\"},{\"relativePath\":\"openvino/scrypted_yolov9t_relu/best-converted.bin\",\"size\":7542204,\"sha256\":\"4fe9ce8dbdf94514fdd450cbfc907f257153e4898a0c1489a44e4912d8e32cc7\"}],\"sizeMB\":8.17},{\"id\":\"scrypted-yolov9s-relu-openvino-fp32\",\"label\":\"plugin catalog YOLOv9S ReLU OpenVINO FP32\",\"family\":\"yolov9s\",\"variant\":\"relu\",\"format\":\"openvino\",\"precision\":\"fp32\",\"files\":[{\"relativePath\":\"openvino/scrypted_yolov9s_relu/best-converted.xml\",\"size\":629249,\"sha256\":\"5b4a229bf7229425698b63bd065a403e440a6151a6ddff0034867659cc4a480d\"},{\"relativePath\":\"openvino/scrypted_yolov9s_relu/best-converted.bin\",\"size\":28329724,\"sha256\":\"c030bd219208ea94082578c81f383d4ef9ec45d7150eec1c2c2ff2569cf49b35\"}],\"sizeMB\":28.96},{\"id\":\"scrypted-yolov9m-relu-openvino-fp32\",\"label\":\"plugin catalog YOLOv9M ReLU OpenVINO FP32\",\"family\":\"yolov9m\",\"variant\":\"relu\",\"format\":\"openvino\",\"precision\":\"fp32\",\"files\":[{\"relativePath\":\"openvino/scrypted_yolov9m_relu/best-converted.xml\",\"size\":485439,\"sha256\":\"c66f9f1965bf70fd3635d4dfc3cb94c72c06b344c256713237d77706725b9a0c\"},{\"relativePath\":\"openvino/scrypted_yolov9m_relu/best-converted.bin\",\"size\":79717372,\"sha256\":\"dfc2d8952bbca9ad0e116168e3fd5c754e601c327d78c4f4d0d4cae12f0e1d2a\"}],\"sizeMB\":80.2},{\"id\":\"scrypted-yolov9c-relu-openvino-fp32\",\"label\":\"plugin catalog YOLOv9C ReLU OpenVINO FP32\",\"family\":\"yolov9c\",\"variant\":\"relu\",\"format\":\"openvino\",\"precision\":\"fp32\",\"files\":[{\"relativePath\":\"openvino/scrypted_yolov9c_relu/best-converted.xml\",\"size\":535047,\"sha256\":\"836c1e998ebf76108ff64d554fdfa07aa72c42624f1a5448701bb409f27b8d68\"},{\"relativePath\":\"openvino/scrypted_yolov9c_relu/best-converted.bin\",\"size\":100942972,\"sha256\":\"11a1b330ac9843b349927977b3c7c7f17bb42af73a7ff102969132f27ab81814\"}],\"sizeMB\":101.48},{\"id\":\"scrypted-yolov9t-relu-openvino-int8\",\"label\":\"plugin catalog YOLOv9T ReLU OpenVINO INT8\",\"family\":\"yolov9t\",\"variant\":\"relu\",\"format\":\"openvino\",\"precision\":\"int8\",\"files\":[{\"relativePath\":\"openvino/scrypted_yolov9t_relu_int8/best-converted.xml\",\"size\":1380379,\"sha256\":\"e5a76bf88ac69fc0ebc50c04b61ff91550dd9c2349af1f6d7e4cac949c640cec\"},{\"relativePath\":\"openvino/scrypted_yolov9t_relu_int8/best-converted.bin\",\"size\":1954956,\"sha256\":\"98fb5b6826d7c6697a585f69ba96754873772d9d61fbed8335aab761e8248659\"}],\"sizeMB\":3.34},{\"id\":\"scrypted-yolov9t-relu-test-openvino-int8\",\"label\":\"plugin catalog YOLOv9T ReLU test OpenVINO INT8\",\"family\":\"yolov9t\",\"variant\":\"relu_test\",\"format\":\"openvino\",\"precision\":\"int8\",\"files\":[{\"relativePath\":\"openvino/scrypted_yolov9t_relu_test_int8/best-converted.xml\",\"size\":1380383,\"sha256\":\"9e4119284e923e08c9929e78fd31e2552e602a552ac538ae99bf34a50dd4d172\"},{\"relativePath\":\"openvino/scrypted_yolov9t_relu_test_int8/best-converted.bin\",\"size\":1954960,\"sha256\":\"efe5b0a2fd2f5ddef5923eeb9e592a7ef14719061bb7605c86e05b35c2c58ea9\"}],\"sizeMB\":3.34},{\"id\":\"scrypted-yolov9s-relu-openvino-int8\",\"label\":\"plugin catalog YOLOv9S ReLU OpenVINO INT8\",\"family\":\"yolov9s\",\"variant\":\"relu\",\"format\":\"openvino\",\"precision\":\"int8\",\"files\":[{\"relativePath\":\"openvino/scrypted_yolov9s_relu_int8/best-converted.xml\",\"size\":1382088,\"sha256\":\"4e6c24cf24afbab21462f7e1a15bd05b1cbbe5915046000e03c2435d8110bbbf\"},{\"relativePath\":\"openvino/scrypted_yolov9s_relu_int8/best-converted.bin\",\"size\":7197308,\"sha256\":\"23fd3d666a938c41db232d9c6239baec1134716cfb4ed4ddd3d602dd20eb8ac0\"}],\"sizeMB\":8.58},{\"id\":\"scrypted-yolov9s-relu-test-openvino-int8\",\"label\":\"plugin catalog YOLOv9S ReLU test OpenVINO INT8\",\"family\":\"yolov9s\",\"variant\":\"relu_test\",\"format\":\"openvino\",\"precision\":\"int8\",\"files\":[{\"relativePath\":\"openvino/scrypted_yolov9s_relu_test_int8/best-converted.xml\",\"size\":1382092,\"sha256\":\"49865bfeafe7576afce089ba6f5c3e25a9192c8b514eb96265c90fe877795641\"},{\"relativePath\":\"openvino/scrypted_yolov9s_relu_test_int8/best-converted.bin\",\"size\":7197312,\"sha256\":\"78e9d36e6b74754db2b624ea3ec0b3ff57ed6dfed59a4f2225e1a271054597de\"}],\"sizeMB\":8.58},{\"id\":\"scrypted-yolov9m-relu-openvino-int8\",\"label\":\"plugin catalog YOLOv9M ReLU OpenVINO INT8\",\"family\":\"yolov9m\",\"variant\":\"relu\",\"format\":\"openvino\",\"precision\":\"int8\",\"files\":[{\"relativePath\":\"openvino/scrypted_yolov9m_relu_int8/best-converted.xml\",\"size\":1024595,\"sha256\":\"1242ab8d8c73b2e80c5dd541177ade6e102a2684114b059136acb4cad6efb034\"},{\"relativePath\":\"openvino/scrypted_yolov9m_relu_int8/best-converted.bin\",\"size\":20090516,\"sha256\":\"da8e44af8bee66478e6f359e9504bfb13ab4b76f4bd8a2f1b10cfbc22febcf6e\"}],\"sizeMB\":21.12},{\"id\":\"scrypted-yolov9m-relu-test-openvino-int8\",\"label\":\"plugin catalog YOLOv9M ReLU test OpenVINO INT8\",\"family\":\"yolov9m\",\"variant\":\"relu_test\",\"format\":\"openvino\",\"precision\":\"int8\",\"files\":[{\"relativePath\":\"openvino/scrypted_yolov9m_relu_test_int8/best-converted.xml\",\"size\":1024601,\"sha256\":\"24395ae5fdbb321304c865372cd2b905cdc55abb7610520f3963702e2371decb\"},{\"relativePath\":\"openvino/scrypted_yolov9m_relu_test_int8/best-converted.bin\",\"size\":20090520,\"sha256\":\"4360fe0312067f92c49f180c7b8a10271f14d58b8909aa9b96b13af4ab9289aa\"}],\"sizeMB\":21.12},{\"id\":\"scrypted-yolov9c-relu-openvino-int8\",\"label\":\"plugin catalog YOLOv9C ReLU OpenVINO INT8\",\"family\":\"yolov9c\",\"variant\":\"relu\",\"format\":\"openvino\",\"precision\":\"int8\",\"files\":[{\"relativePath\":\"openvino/scrypted_yolov9c_relu_int8/best-converted.xml\",\"size\":1092695,\"sha256\":\"a45c62940120c4301d8fff9fb3b275c29e3618f403ea68a785f2f3220cefec7a\"},{\"relativePath\":\"openvino/scrypted_yolov9c_relu_int8/best-converted.bin\",\"size\":25428280,\"sha256\":\"0643403a56178c3ed1e066c7884458d8ea6780115d662bdc38d10754d7a11c79\"}],\"sizeMB\":26.52},{\"id\":\"scrypted-yolov9c-relu-test-openvino-int8\",\"label\":\"plugin catalog YOLOv9C ReLU test OpenVINO INT8\",\"family\":\"yolov9c\",\"variant\":\"relu_test\",\"format\":\"openvino\",\"precision\":\"int8\",\"files\":[{\"relativePath\":\"openvino/scrypted_yolov9c_relu_test_int8/best-converted.xml\",\"size\":1092695,\"sha256\":\"a8a1899848ebd060af2326d3c8d3c09ea83354f0bedff6cce6fa08b284ea5519\"},{\"relativePath\":\"openvino/scrypted_yolov9c_relu_test_int8/best-converted.bin\",\"size\":25428280,\"sha256\":\"2eb6bb3d0a03a9b239b6f623f9e7bced62eea61fbe4d8ff89c1b3e2e2b7978a2\"}],\"sizeMB\":26.52},{\"id\":\"scrypted-yolov9s-relu-sep-320-tflite-float16\",\"label\":\"plugin catalog YOLOv9s ReLU sep 320 TFLite float16\",\"family\":\"yolov9s\",\"variant\":\"relu\",\"format\":\"tflite\",\"precision\":\"float16\",\"files\":[{\"relativePath\":\"tflite/scrypted_yolov9s_relu_sep_320/best_float16.tflite\",\"size\":14482836,\"sha256\":\"04889db3b81af361c361e41ffa99327330d37b71d680a2f889e6cdf1e94c0d8c\"}],\"sizeMB\":14.48},{\"id\":\"scrypted-yolov9s-relu-sep-320-tflite-float32\",\"label\":\"plugin catalog YOLOv9s ReLU sep 320 TFLite float32\",\"family\":\"yolov9s\",\"variant\":\"relu\",\"format\":\"tflite\",\"precision\":\"float32\",\"files\":[{\"relativePath\":\"tflite/scrypted_yolov9s_relu_sep_320/best_float32.tflite\",\"size\":28777068,\"sha256\":\"f5d7d08fc1d8f2262633d2df4391638e0481740331aaa1837880a47c33001a96\"}],\"sizeMB\":28.78},{\"id\":\"scrypted-yolov9s-relu-sep-320-tflite-int8\",\"label\":\"plugin catalog YOLOv9s ReLU sep 320 TFLite int8\",\"family\":\"yolov9s\",\"variant\":\"relu\",\"format\":\"tflite\",\"precision\":\"int8\",\"files\":[{\"relativePath\":\"tflite/scrypted_yolov9s_relu_sep_320/best_int8.tflite\",\"size\":7325616,\"sha256\":\"1e9866b16fe80931383bf3c94dc629fe93a37ba3dc1465ea019eb0a50bd428df\"}],\"sizeMB\":7.33},{\"id\":\"scrypted-yolov9s-relu-sep-320-tflite-integer_quant\",\"label\":\"plugin catalog YOLOv9s ReLU sep 320 TFLite integer_quant\",\"family\":\"yolov9s\",\"variant\":\"relu\",\"format\":\"tflite\",\"precision\":\"integer_quant\",\"files\":[{\"relativePath\":\"tflite/scrypted_yolov9s_relu_sep_320/best_integer_quant.tflite\",\"size\":7342552,\"sha256\":\"bc1c902e9a9865637ee2403f70c6bf5c29c695d9163e58ad658feb29bb097ebc\"}],\"sizeMB\":7.34},{\"id\":\"scrypted-yolov9s-relu-sep-320-tflite-full_integer_quant\",\"label\":\"plugin catalog YOLOv9s ReLU sep 320 TFLite full_integer_quant\",\"family\":\"yolov9s\",\"variant\":\"relu\",\"format\":\"tflite\",\"precision\":\"full_integer_quant\",\"files\":[{\"relativePath\":\"tflite/scrypted_yolov9s_relu_sep_320/best_full_integer_quant.tflite\",\"size\":7341704,\"sha256\":\"483ce38dbe33ee5a35f40a82f56c77629a44fa5d95efd8ade9fa97e4d2a261fd\"}],\"sizeMB\":7.34},{\"id\":\"scrypted-yolov9s-relu-sep-320-tflite-edgetpu\",\"label\":\"plugin catalog YOLOv9s ReLU sep 320 TFLite edgetpu\",\"family\":\"yolov9s\",\"variant\":\"relu\",\"format\":\"tflite\",\"precision\":\"edgetpu\",\"files\":[{\"relativePath\":\"tflite/scrypted_yolov9s_relu_sep_320/best_full_integer_quant_edgetpu.tflite\",\"size\":8164480,\"sha256\":\"e1e6b074a3b9fdf19a171baf615553ad375a046aa7de2a3fef9a1950175fab22\"}],\"sizeMB\":8.16}]"), bC = {
20427
20427
  weights: "UNKNOWN",
20428
20428
  code: "GPL-3.0",
20429
20429
  data: {
20430
- name: "not stated by Scrypted",
20430
+ name: "not stated by plugin catalog",
20431
20431
  terms: "UNKNOWN"
20432
20432
  },
20433
20433
  upstream: {
20434
- name: "Scrypted plugin-models (repository tagged MIT, no per-model terms)",
20434
+ name: "plugin catalog plugin-models (repository tagged MIT, no per-model terms)",
20435
20435
  url: "https://huggingface.co/scrypted/plugin-models"
20436
20436
  },
20437
20437
  url: "https://huggingface.co/scrypted/plugin-models",
20438
- 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).",
20438
+ attribution: "plugin catalog 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).",
20439
20439
  modifications: "none: downloaded as published, at a pinned revision",
20440
20440
  hosting: "third-party"
20441
20441
  }, xC = {
@@ -20480,7 +20480,7 @@ function jC(e, t) {
20480
20480
  return e;
20481
20481
  }
20482
20482
  function MC(e) {
20483
- 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}`);
20483
+ if (e.length === 0 || e.startsWith("/") || e.includes("\\") || e.includes("\0") || e.split("/").some((e) => e.length === 0 || e === "." || e === "..")) throw Error(`Unsafe plugin catalog relative path: ${e}`);
20484
20484
  return e;
20485
20485
  }
20486
20486
  function NC(e) {
@@ -20505,7 +20505,7 @@ function FC(e) {
20505
20505
  c: "Compact"
20506
20506
  }, a = `scrypted-yolov9${t}-${e.variant}${n ? "-int8" : ""}-320`, o = [`YOLOv9 ${i[t] ?? t.toUpperCase()} @320`];
20507
20507
  e.variant === "relu_test" && o.push("(Test)"), n && o.push("INT8");
20508
- let s = o.join(" "), c = `${s} — imported from the local Scrypted YOLO catalog.`;
20508
+ let s = o.join(" "), c = `${s} — imported from the local plugin catalog YOLO catalog.`;
20509
20509
  if (e.format === "coreml") return {
20510
20510
  id: a,
20511
20511
  name: s,
@@ -20623,7 +20623,7 @@ var BC = Q({
20623
20623
  } } } : e;
20624
20624
  }, Q({ formats: Bx(Hx(Ie), BC) })), HC = zx(Z(), zx(Z(), VC));
20625
20625
  function UC(e) {
20626
- return `frigate-plus-${e}`;
20626
+ return `plus-catalog-${e}`;
20627
20627
  }
20628
20628
  var WC = Q({
20629
20629
  relativePath: Z(),
@@ -20766,8 +20766,8 @@ _e({
20766
20766
  sha256: Z()
20767
20767
  }), { kind: "mutation" }),
20768
20768
  abortModelUpload: R(Q({ uploadId: Z() }), Q({ ok: Wx(!0) }), { kind: "mutation" }),
20769
- listFrigateCatalog: R(Ox(), Ax(qC).readonly()),
20770
- importFrigateCatalogModel: R(Q({
20769
+ listPlusCatalogCatalog: R(Ox(), Ax(qC).readonly()),
20770
+ importPlusCatalogCatalogModel: R(Q({
20771
20771
  catalogId: Z(),
20772
20772
  modelId: Z().optional(),
20773
20773
  name: Z().optional(),
@@ -20777,26 +20777,26 @@ _e({
20777
20777
  modelId: Z(),
20778
20778
  bytes: vx()
20779
20779
  }), { kind: "mutation" }),
20780
- listScryptedCatalog: R(Ox(), Q({
20780
+ listPluginCatalogCatalog: R(Ox(), Q({
20781
20781
  entries: Ax(GC).readonly(),
20782
20782
  drift: Ax(KC).readonly()
20783
20783
  })),
20784
- importScryptedCatalogModel: R(Q({
20784
+ importPluginCatalogCatalogModel: R(Q({
20785
20785
  manifestId: Z(),
20786
20786
  name: Z().optional(),
20787
20787
  targetNodeId: Z().optional()
20788
20788
  }), fe, { kind: "mutation" }),
20789
20789
  tfliteSupport: R(Q({}).optional(), Q({ nodes: Ax(Z()).readonly() })),
20790
- frigatePlusStatus: R(Ox(), Q({
20790
+ plusCatalogPlusStatus: R(Ox(), Q({
20791
20791
  configured: Sx(),
20792
20792
  keyFormatValid: Sx()
20793
20793
  })),
20794
- frigatePlusTest: R(Ox(), Q({
20794
+ plusCatalogPlusTest: R(Ox(), Q({
20795
20795
  ok: Sx(),
20796
20796
  error: Z().optional()
20797
20797
  }), { kind: "mutation" }),
20798
- frigatePlusListModels: R(Ox(), Ax(JC).readonly()),
20799
- importFrigatePlusModel: R(Q({
20798
+ plusCatalogPlusListModels: R(Ox(), Ax(JC).readonly()),
20799
+ importPlusCatalogModel: R(Q({
20800
20800
  plusModelId: Z(),
20801
20801
  modelId: Z().optional(),
20802
20802
  name: Z().optional(),
@@ -20950,7 +20950,7 @@ function lw(e, t) {
20950
20950
  };
20951
20951
  }
20952
20952
  function uw(e, t) {
20953
- let n = /^(scrypted|frigate|custom):(.+)$/i.exec(e);
20953
+ let n = /^(plugin catalog|plus catalog|custom):(.+)$/i.exec(e);
20954
20954
  if (n === null) return t;
20955
20955
  let r = n[2];
20956
20956
  return r === "yolov9" ? "YOLOv9" : r === "yolo26" ? "YOLO26" : r === "ssdlite-mobiledet" ? "SSDLite MobileDet" : r === "yolonas" ? "YOLO-NAS" : r.toUpperCase();
@@ -21182,15 +21182,15 @@ function Jw(e, t, n) {
21182
21182
  }
21183
21183
  }
21184
21184
  async function Yw(e, t) {
21185
- let n = await Sw(e, "importFrigateCatalogModel", t);
21186
- if (!Cw(n)) throw Error("importFrigateCatalogModel: unexpected response shape");
21185
+ let n = await Sw(e, "importPlusCatalogCatalogModel", t);
21186
+ if (!Cw(n)) throw Error("importPlusCatalogCatalogModel: unexpected response shape");
21187
21187
  return {
21188
21188
  modelId: Ww(n, "modelId"),
21189
21189
  bytes: typeof n.bytes == "number" ? n.bytes : 0
21190
21190
  };
21191
21191
  }
21192
21192
  async function Xw(e) {
21193
- let t = await Sw(e, "frigatePlusStatus", void 0);
21193
+ let t = await Sw(e, "plusCatalogPlusStatus", void 0);
21194
21194
  return Cw(t) ? {
21195
21195
  configured: t.configured === !0,
21196
21196
  keyFormatValid: t.keyFormatValid === !0
@@ -21200,7 +21200,7 @@ async function Xw(e) {
21200
21200
  };
21201
21201
  }
21202
21202
  async function Zw(e) {
21203
- let t = await Sw(e, "frigatePlusTest", void 0);
21203
+ let t = await Sw(e, "plusCatalogPlusTest", void 0);
21204
21204
  return Cw(t) ? {
21205
21205
  ok: t.ok === !0,
21206
21206
  ...typeof t.error == "string" ? { error: t.error } : {}
@@ -21210,12 +21210,12 @@ async function Zw(e) {
21210
21210
  };
21211
21211
  }
21212
21212
  async function Qw(e) {
21213
- let t = await Sw(e, "frigatePlusListModels", void 0);
21214
- return Array.isArray(t) ? ww(JC, t, "frigatePlusListModels") : [];
21213
+ let t = await Sw(e, "plusCatalogPlusListModels", void 0);
21214
+ return Array.isArray(t) ? ww(JC, t, "plusCatalogPlusListModels") : [];
21215
21215
  }
21216
21216
  async function $w(e, t) {
21217
- let n = await Sw(e, "importFrigatePlusModel", t);
21218
- if (!Cw(n)) throw Error("importFrigatePlusModel: unexpected response shape");
21217
+ let n = await Sw(e, "importPlusCatalogModel", t);
21218
+ if (!Cw(n)) throw Error("importPlusCatalogModel: unexpected response shape");
21219
21219
  return {
21220
21220
  modelId: Ww(n, "modelId"),
21221
21221
  bytes: typeof n.bytes == "number" ? n.bytes : 0,
@@ -21225,7 +21225,7 @@ async function $w(e, t) {
21225
21225
  async function eT(e, t) {
21226
21226
  await bw(e, "addonSettings.updateGlobalSettings.mutate").addonSettings.updateGlobalSettings.mutate({
21227
21227
  addonId: _w,
21228
- patch: { frigatePlusApiKey: t }
21228
+ patch: { plusCatalogPlusApiKey: t }
21229
21229
  });
21230
21230
  }
21231
21231
  function tT(e) {
@@ -21237,13 +21237,13 @@ async function nT(e, t) {
21237
21237
  }
21238
21238
  async function rT(e, t) {
21239
21239
  let n = await bw(e, "pipelineExecutor.listLoadedEngines.query").pipelineExecutor.listLoadedEngines.query({ nodeId: t });
21240
- return Tw(O.methods.listLoadedEngines.output, n, "listLoadedEngines");
21240
+ return Tw(ae.methods.listLoadedEngines.output, n, "listLoadedEngines");
21241
21241
  }
21242
21242
  async function iT(e, t) {
21243
21243
  await bw(e, "pipelineOrchestrator.setAgentInferenceDevices.mutate").pipelineOrchestrator.setAgentInferenceDevices.mutate(t);
21244
21244
  }
21245
21245
  async function aT(e) {
21246
- return oe(await bw(e, "addonSettings.getGlobalSettings.query").addonSettings.getGlobalSettings.query({ addonId: "pipeline-orchestrator" }));
21246
+ return ie(await bw(e, "addonSettings.getGlobalSettings.query").addonSettings.getGlobalSettings.query({ addonId: "pipeline-orchestrator" }));
21247
21247
  }
21248
21248
  async function oT(e, t) {
21249
21249
  await bw(e, "addonSettings.updateGlobalSettings.mutate").addonSettings.updateGlobalSettings.mutate({
@@ -21265,12 +21265,12 @@ async function lT(e) {
21265
21265
  return !Cw(t) || !Array.isArray(t.nodes) ? [] : t.nodes.filter((e) => typeof e == "string");
21266
21266
  }
21267
21267
  async function uT(e) {
21268
- let t = await Sw(e, "listScryptedCatalog", void 0);
21268
+ let t = await Sw(e, "listPluginCatalogCatalog", void 0);
21269
21269
  return !Cw(t) || !Array.isArray(t.entries) || !Array.isArray(t.drift) ? {
21270
21270
  entries: [],
21271
21271
  drift: []
21272
21272
  } : {
21273
- entries: ww(GC, t.entries, "listScryptedCatalog.entries"),
21273
+ entries: ww(GC, t.entries, "listPluginCatalogCatalog.entries"),
21274
21274
  drift: t.drift.filter(Cw).map((e) => {
21275
21275
  let t = zC({
21276
21276
  manifestId: typeof e.manifestId == "string" ? e.manifestId : "",
@@ -21286,11 +21286,11 @@ async function uT(e) {
21286
21286
  };
21287
21287
  }
21288
21288
  async function dT(e, t) {
21289
- return Tw(fe, await Sw(e, "importScryptedCatalogModel", {
21289
+ return Tw(fe, await Sw(e, "importPluginCatalogCatalogModel", {
21290
21290
  manifestId: t.manifestId,
21291
21291
  ...t.name === void 0 ? {} : { name: t.name },
21292
21292
  ...t.targetNodeId === void 0 ? {} : { targetNodeId: t.targetNodeId }
21293
- }), "importScryptedCatalogModel");
21293
+ }), "importPluginCatalogCatalogModel");
21294
21294
  }
21295
21295
  //#endregion
21296
21296
  //#region src/components/NodeSelector.tsx
@@ -21396,8 +21396,8 @@ var { useT: $, Trans: gT, translate: _T } = vC("model-studio", {
21396
21396
  available: "Coral (tflite) node available: {{nodes}} — TFLite builds run there only."
21397
21397
  },
21398
21398
  sources: {
21399
- intro: "Import from Frigate or Scrypted. Artifacts land on the hub — use Library → Distribute for agents that need a <mono>camstack-local://</mono> copy.",
21400
- scryptedImported: "Scrypted model imported on hub. Distribute from Library to agents."
21399
+ intro: "Import from plus catalog or plugin catalog. Artifacts land on the hub — use Library → Distribute for agents that need a <mono>camstack-local://</mono> copy.",
21400
+ pluginCatalogImported: "plugin catalog model imported on hub. Distribute from Library to agents."
21401
21401
  },
21402
21402
  importTab: { registered: "Registered." },
21403
21403
  inlineRename: {
@@ -21611,13 +21611,13 @@ var { useT: $, Trans: gT, translate: _T } = vC("model-studio", {
21611
21611
  intoRegistry: "Imported {{format}} into the registry",
21612
21612
  failed: "Import failed"
21613
21613
  },
21614
- scrypted: {
21615
- loadFailed: "Failed to load Scrypted catalog",
21614
+ pluginCatalog: {
21615
+ loadFailed: "Failed to load plugin catalog catalog",
21616
21616
  onnxFirst: "ONNX not present — importing first…",
21617
21617
  converting: "Converting ONNX → {{format}}…",
21618
21618
  converted: "Converted to {{format}}",
21619
- loading: "Loading Scrypted catalog…",
21620
- intro: "Local Scrypted YOLO catalog. Import lands on the selected node.",
21619
+ loading: "Loading plugin catalog catalog…",
21620
+ intro: "Local plugin catalog YOLO catalog. Import lands on the selected node.",
21621
21621
  tfliteCoral: "TFLite → Coral",
21622
21622
  noCoral: "No Coral node — TFLite registers only.",
21623
21623
  landOn: "Land on <mono>{{nodeId}}</mono>",
@@ -21626,10 +21626,10 @@ var { useT: $, Trans: gT, translate: _T } = vC("model-studio", {
21626
21626
  standard: "Standard",
21627
21627
  test: "Test"
21628
21628
  },
21629
- emptyVariant: "No Scrypted artifacts for this variant."
21629
+ emptyVariant: "No plugin catalog artifacts for this variant."
21630
21630
  },
21631
- frigate: {
21632
- plus: "Frigate+",
21631
+ plusCatalog: {
21632
+ plus: "plus catalog",
21633
21633
  keyIntro: "Required to list your account models. <docs>docs</docs>. Stored server-side only.",
21634
21634
  keyConfigured: "API key: configured",
21635
21635
  replaceKey: "Replace key",
@@ -21637,15 +21637,15 @@ var { useT: $, Trans: gT, translate: _T } = vC("model-studio", {
21637
21637
  connectionOk: "Connection OK",
21638
21638
  connectionFailed: "Connection failed",
21639
21639
  keyShapeWrong: "Key shape looks wrong (expected uuid:40-hex). Test or replace it.",
21640
- keyLabel: "Frigate+ API key",
21640
+ keyLabel: "plus catalog API key",
21641
21641
  saveKey: "Save key",
21642
- keyFormatInvalid: "The key does not match the documented \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx:40-hex\" format shown in your Frigate+ account.",
21642
+ keyFormatInvalid: "The key does not match the documented \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx:40-hex\" format shown in your plus catalog account.",
21643
21643
  keySaveFailed: "Failed to save the API key",
21644
- listFailed: "Failed to list Frigate+ models",
21645
- checking: "Checking Frigate+ configuration…",
21644
+ listFailed: "Failed to list plus catalog models",
21645
+ checking: "Checking plus catalog configuration…",
21646
21646
  publicDefault: "Public default (no key required):",
21647
21647
  refreshList: "Refresh list",
21648
- loadingModels: "Loading your Frigate+ models…",
21648
+ loadingModels: "Loading your plus catalog models…",
21649
21649
  landOnNode: "Land on <mono>{{nodeId}}</mono>",
21650
21650
  opTitle: "Import {{label}}",
21651
21651
  opLog: "Importing {{modelId}}…",
@@ -21657,10 +21657,10 @@ var { useT: $, Trans: gT, translate: _T } = vC("model-studio", {
21657
21657
  prefillCustom: "Prefill Custom"
21658
21658
  },
21659
21659
  plus: {
21660
- empty: "No models this cluster can run are visible to this account yet — train one on Frigate+.",
21660
+ empty: "No models this cluster can run are visible to this account yet — train one on plus catalog.",
21661
21661
  modelGroup: "Model group",
21662
- release: "Frigate+ release",
21663
- emptyRelease: "No Frigate+ models in this release that the cluster can run.",
21662
+ release: "plus catalog release",
21663
+ emptyRelease: "No plus catalog models in this release that the cluster can run.",
21664
21664
  checkingCoral: "checking Coral…",
21665
21665
  needsCoral: "needs a Coral",
21666
21666
  training: "Training",
@@ -21690,7 +21690,7 @@ var { useT: $, Trans: gT, translate: _T } = vC("model-studio", {
21690
21690
  opDone: "Registered for step {{stepId}}.{{summary}}",
21691
21691
  registered: "Registered \"{{name}}\".",
21692
21692
  failed: "Failed to register model",
21693
- prefilled: "Format, decode, input size and labelmap prefilled from the Frigate catalog: <b>{{source}}</b>. Upload your exported file below.",
21693
+ prefilled: "Format, decode, input size and labelmap prefilled from the plus catalog catalog: <b>{{source}}</b>. Upload your exported file below.",
21694
21694
  modelFile: "Model file ({{extensions}})",
21695
21695
  uploading: "Uploading… {{pct}}%",
21696
21696
  chooseFile: "Choose file",
@@ -21740,7 +21740,7 @@ var { useT: $, Trans: gT, translate: _T } = vC("model-studio", {
21740
21740
  plusImport: {
21741
21741
  conversions: " Engine conversions: {{parts}}.",
21742
21742
  conversionFailedWord: "failed",
21743
- stepDownload: "Download from Frigate+",
21743
+ stepDownload: "Download from plus catalog",
21744
21744
  stepRegister: "Register on hub",
21745
21745
  stepConvert: "Convert to {{engine}}",
21746
21746
  stepEngines: "Engine formats (Import OpenVINO / CoreML when needed)",
@@ -21824,8 +21824,8 @@ var { useT: $, Trans: gT, translate: _T } = vC("model-studio", {
21824
21824
  available: "Nodo Coral (tflite) disponibile: {{nodes}} — le build TFLite girano solo lì."
21825
21825
  },
21826
21826
  sources: {
21827
- intro: "Importa da Frigate o Scrypted. Gli artefatti arrivano sull'hub — usa Libreria → Distribuisci per gli agent che richiedono una copia <mono>camstack-local://</mono>.",
21828
- scryptedImported: "Modello Scrypted importato sull'hub. Distribuiscilo dalla Libreria agli agent."
21827
+ intro: "Importa da catalogo plus o catalogo plugin. Gli artefatti arrivano sull'hub — usa Libreria → Distribuisci per gli agent che richiedono una copia <mono>camstack-local://</mono>.",
21828
+ pluginCatalogImported: "Modello catalogo plugin importato sull'hub. Distribuiscilo dalla Libreria agli agent."
21829
21829
  },
21830
21830
  importTab: { registered: "Registrato." },
21831
21831
  inlineRename: {
@@ -22039,13 +22039,13 @@ var { useT: $, Trans: gT, translate: _T } = vC("model-studio", {
22039
22039
  intoRegistry: "Importato {{format}} nel registro",
22040
22040
  failed: "Importazione non riuscita"
22041
22041
  },
22042
- scrypted: {
22043
- loadFailed: "Impossibile caricare il catalogo Scrypted",
22042
+ pluginCatalog: {
22043
+ loadFailed: "Impossibile caricare il catalogo catalogo plugin",
22044
22044
  onnxFirst: "ONNX non presente — importazione prima…",
22045
22045
  converting: "Conversione di ONNX → {{format}}…",
22046
22046
  converted: "Convertito in {{format}}",
22047
- loading: "Caricamento del catalogo Scrypted…",
22048
- intro: "Catalogo YOLO Scrypted locale. L'importazione arriva sul nodo selezionato.",
22047
+ loading: "Caricamento del catalogo catalogo plugin…",
22048
+ intro: "Catalogo YOLO catalogo plugin locale. L'importazione arriva sul nodo selezionato.",
22049
22049
  tfliteCoral: "TFLite → Coral",
22050
22050
  noCoral: "Nessun nodo Coral — TFLite viene solo registrato.",
22051
22051
  landOn: "Destinazione <mono>{{nodeId}}</mono>",
@@ -22054,10 +22054,10 @@ var { useT: $, Trans: gT, translate: _T } = vC("model-studio", {
22054
22054
  standard: "Standard",
22055
22055
  test: "Test"
22056
22056
  },
22057
- emptyVariant: "Nessun artefatto Scrypted per questa variante."
22057
+ emptyVariant: "Nessun artefatto catalogo plugin per questa variante."
22058
22058
  },
22059
- frigate: {
22060
- plus: "Frigate+",
22059
+ plusCatalog: {
22060
+ plus: "catalogo plus",
22061
22061
  keyIntro: "Necessaria per elencare i modelli del tuo account. <docs>documentazione</docs>. Conservata solo lato server.",
22062
22062
  keyConfigured: "Chiave API: configurata",
22063
22063
  replaceKey: "Sostituisci chiave",
@@ -22065,15 +22065,15 @@ var { useT: $, Trans: gT, translate: _T } = vC("model-studio", {
22065
22065
  connectionOk: "Connessione riuscita",
22066
22066
  connectionFailed: "Connessione non riuscita",
22067
22067
  keyShapeWrong: "Il formato della chiave sembra errato (atteso uuid:40-hex). Verificala o sostituiscila.",
22068
- keyLabel: "Chiave API Frigate+",
22068
+ keyLabel: "Chiave API catalogo plus",
22069
22069
  saveKey: "Salva chiave",
22070
- keyFormatInvalid: "La chiave non corrisponde al formato documentato \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx:40-hex\" mostrato nel tuo account Frigate+.",
22070
+ keyFormatInvalid: "La chiave non corrisponde al formato documentato \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx:40-hex\" mostrato nel tuo account catalogo plus.",
22071
22071
  keySaveFailed: "Impossibile salvare la chiave API",
22072
- listFailed: "Impossibile elencare i modelli Frigate+",
22073
- checking: "Verifica della configurazione Frigate+…",
22072
+ listFailed: "Impossibile elencare i modelli catalogo plus",
22073
+ checking: "Verifica della configurazione catalogo plus…",
22074
22074
  publicDefault: "Predefinito pubblico (nessuna chiave richiesta):",
22075
22075
  refreshList: "Aggiorna elenco",
22076
- loadingModels: "Caricamento dei tuoi modelli Frigate+…",
22076
+ loadingModels: "Caricamento dei tuoi modelli catalogo plus…",
22077
22077
  landOnNode: "Destinazione <mono>{{nodeId}}</mono>",
22078
22078
  opTitle: "Importazione di {{label}}",
22079
22079
  opLog: "Importazione di {{modelId}}…",
@@ -22085,10 +22085,10 @@ var { useT: $, Trans: gT, translate: _T } = vC("model-studio", {
22085
22085
  prefillCustom: "Precompila Personalizzato"
22086
22086
  },
22087
22087
  plus: {
22088
- empty: "Nessun modello eseguibile da questo cluster è ancora visibile a questo account — addestrane uno su Frigate+.",
22088
+ empty: "Nessun modello eseguibile da questo cluster è ancora visibile a questo account — addestrane uno su catalogo plus.",
22089
22089
  modelGroup: "Gruppo di modelli",
22090
- release: "Release Frigate+",
22091
- emptyRelease: "Nessun modello Frigate+ in questa release che il cluster possa eseguire.",
22090
+ release: "Release catalogo plus",
22091
+ emptyRelease: "Nessun modello catalogo plus in questa release che il cluster possa eseguire.",
22092
22092
  checkingCoral: "verifica di Coral…",
22093
22093
  needsCoral: "richiede un Coral",
22094
22094
  training: "Addestramento",
@@ -22118,7 +22118,7 @@ var { useT: $, Trans: gT, translate: _T } = vC("model-studio", {
22118
22118
  opDone: "Registrato per lo step {{stepId}}.{{summary}}",
22119
22119
  registered: "Registrato \"{{name}}\".",
22120
22120
  failed: "Impossibile registrare il modello",
22121
- prefilled: "Formato, decodifica, dimensione di input e labelmap precompilati dal catalogo Frigate: <b>{{source}}</b>. Carica qui sotto il file esportato.",
22121
+ prefilled: "Formato, decodifica, dimensione di input e labelmap precompilati dal catalogo catalogo plus: <b>{{source}}</b>. Carica qui sotto il file esportato.",
22122
22122
  modelFile: "File del modello ({{extensions}})",
22123
22123
  uploading: "Caricamento… {{pct}}%",
22124
22124
  chooseFile: "Scegli file",
@@ -22168,7 +22168,7 @@ var { useT: $, Trans: gT, translate: _T } = vC("model-studio", {
22168
22168
  plusImport: {
22169
22169
  conversions: " Conversioni dei motori: {{parts}}.",
22170
22170
  conversionFailedWord: "non riuscita",
22171
- stepDownload: "Download da Frigate+",
22171
+ stepDownload: "Download da catalogo plus",
22172
22172
  stepRegister: "Registrazione sull'hub",
22173
22173
  stepConvert: "Conversione in {{engine}}",
22174
22174
  stepEngines: "Formati dei motori (importa OpenVINO / CoreML quando serve)",
@@ -22443,7 +22443,7 @@ function jT({ children: e }) {
22443
22443
  });
22444
22444
  }
22445
22445
  //#endregion
22446
- //#region src/scrypted/scrypted-catalog-selectors.ts
22446
+ //#region src/plugin-catalog/plugin-catalog-catalog-selectors.ts
22447
22447
  function MT(e) {
22448
22448
  return typeof e == "string" ? e.includes("x") || e.includes("×") ? e.replace("×", "x") : e : `${e.width}x${e.height}`;
22449
22449
  }
@@ -22458,7 +22458,7 @@ function FT(e, t) {
22458
22458
  return "has" in e ? e.has(t) : e.includes(t);
22459
22459
  }
22460
22460
  //#endregion
22461
- //#region src/scrypted/scrypted-canonical.ts
22461
+ //#region src/plugin-catalog/plugin-catalog-canonical.ts
22462
22462
  var IT = [
22463
22463
  "edgetpu",
22464
22464
  "int8",
@@ -22491,7 +22491,7 @@ function VT(e, t) {
22491
22491
  if (n.length !== 0) return n.toSorted((e, t) => e.files.reduce((e, t) => e + t.size, 0) - t.files.reduce((e, t) => e + t.size, 0))[0]?.id;
22492
22492
  }
22493
22493
  //#endregion
22494
- //#region src/scrypted/scrypted-as-variant-sources.ts
22494
+ //#region src/plugin-catalog/plugin-catalog-as-variant-sources.ts
22495
22495
  var HT = new Set([
22496
22496
  "onnx",
22497
22497
  "openvino",
@@ -22768,7 +22768,7 @@ function sE(e) {
22768
22768
  return XC(e).kind === "invalid";
22769
22769
  }
22770
22770
  //#endregion
22771
- //#region src/tabs/ScryptedTab.tsx
22771
+ //#region src/tabs/PluginCatalogTab.tsx
22772
22772
  e();
22773
22773
  var cE = [
22774
22774
  "onnx",
@@ -22813,7 +22813,7 @@ function uE({ trpc: e, landNodeId: n, onImported: r }) {
22813
22813
  } else x({});
22814
22814
  } catch (e) {
22815
22815
  if (t !== ae.current) return;
22816
- u(null), C(e instanceof Error ? e.message : a("scrypted.loadFailed"));
22816
+ u(null), C(e instanceof Error ? e.message : a("pluginCatalog.loadFailed"));
22817
22817
  }
22818
22818
  }, [e, a]);
22819
22819
  i(() => {
@@ -22855,11 +22855,11 @@ function uE({ trpc: e, landNodeId: n, onImported: r }) {
22855
22855
  }), n(o === void 0 ? a("importOp.intoRegistry", { format: t.format }) : a("importOp.landed", { nodeId: o }));
22856
22856
  else {
22857
22857
  let r = p?.has(t.canonicalId) === !0, s = (h[t.canonicalId] ?? []).includes("onnx");
22858
- (!r || !s) && (n(a("scrypted.onnxFirst")), await dT(e, {
22858
+ (!r || !s) && (n(a("pluginCatalog.onnxFirst")), await dT(e, {
22859
22859
  manifestId: t.onnxManifestId,
22860
22860
  ...i === void 0 ? {} : { name: i },
22861
22861
  ...o === void 0 ? {} : { targetNodeId: o }
22862
- })), n(a("scrypted.converting", { format: t.format })), await Pw(e, t.canonicalId, [t.format]), n(a("scrypted.converted", { format: t.format }));
22862
+ })), n(a("pluginCatalog.converting", { format: t.format })), await Pw(e, t.canonicalId, [t.format]), n(a("pluginCatalog.converted", { format: t.format }));
22863
22863
  }
22864
22864
  r((e) => e.map((e) => e.status === "active" || e.status === "pending" ? {
22865
22865
  ...e,
@@ -22884,12 +22884,12 @@ function uE({ trpc: e, landNodeId: n, onImported: r }) {
22884
22884
  a
22885
22885
  ]);
22886
22886
  if (c === null && S === null) return /* @__PURE__ */ v("div", {
22887
- "data-testid": "scrypted-tab",
22887
+ "data-testid": "plugin-catalog-tab",
22888
22888
  className: "text-sm text-foreground-subtle animate-pulse py-8 text-center",
22889
- children: a("scrypted.loading")
22889
+ children: a("pluginCatalog.loading")
22890
22890
  });
22891
22891
  if (S) return /* @__PURE__ */ y("div", {
22892
- "data-testid": "scrypted-tab",
22892
+ "data-testid": "plugin-catalog-tab",
22893
22893
  className: "space-y-2",
22894
22894
  children: [/* @__PURE__ */ v("div", {
22895
22895
  className: "rounded-md border border-danger/30 bg-danger/10 px-3 py-2 text-xs text-danger",
@@ -22912,7 +22912,7 @@ function uE({ trpc: e, landNodeId: n, onImported: r }) {
22912
22912
  driftStatus: e.driftStatus
22913
22913
  })), pe = ue ? b[ue.id] ?? [] : [];
22914
22914
  return /* @__PURE__ */ y("div", {
22915
- "data-testid": "scrypted-tab",
22915
+ "data-testid": "plugin-catalog-tab",
22916
22916
  className: "space-y-4",
22917
22917
  children: [
22918
22918
  E && /* @__PURE__ */ v("div", {
@@ -22921,13 +22921,13 @@ function uE({ trpc: e, landNodeId: n, onImported: r }) {
22921
22921
  }),
22922
22922
  /* @__PURE__ */ v("p", {
22923
22923
  className: "text-[11px] text-foreground-subtle",
22924
- children: a("scrypted.intro")
22924
+ children: a("pluginCatalog.intro")
22925
22925
  }),
22926
22926
  n === void 0 && ne !== null && ne.length > 0 && /* @__PURE__ */ y("label", {
22927
22927
  className: "flex items-center gap-2 text-[11px] text-foreground",
22928
22928
  children: [/* @__PURE__ */ v("span", {
22929
22929
  className: "text-foreground-subtle uppercase tracking-wide text-[10px]",
22930
- children: a("scrypted.tfliteCoral")
22930
+ children: a("pluginCatalog.tfliteCoral")
22931
22931
  }), /* @__PURE__ */ v("select", {
22932
22932
  className: "bg-surface border border-border rounded px-2 py-0.5 text-[11px]",
22933
22933
  value: M,
@@ -22940,26 +22940,26 @@ function uE({ trpc: e, landNodeId: n, onImported: r }) {
22940
22940
  }),
22941
22941
  n === void 0 && ne !== null && ne.length === 0 && /* @__PURE__ */ v("p", {
22942
22942
  className: "text-[11px] text-warning",
22943
- children: a("scrypted.noCoral")
22943
+ children: a("pluginCatalog.noCoral")
22944
22944
  }),
22945
22945
  n !== void 0 && /* @__PURE__ */ v("p", {
22946
22946
  className: "text-[10px] text-foreground-subtle",
22947
22947
  children: /* @__PURE__ */ v(gT, {
22948
- i18nKey: "scrypted.landOn",
22948
+ i18nKey: "pluginCatalog.landOn",
22949
22949
  values: { nodeId: n },
22950
22950
  components: { mono: /* @__PURE__ */ v("span", { className: "font-mono" }) }
22951
22951
  })
22952
22952
  }),
22953
22953
  /* @__PURE__ */ v(nE, {
22954
- testId: "scrypted-browser",
22954
+ testId: "plugin-catalog-browser",
22955
22955
  title: "YOLOv9",
22956
22956
  preSelectors: [{
22957
22957
  id: "variant",
22958
- label: a("scrypted.variant"),
22958
+ label: a("pluginCatalog.variant"),
22959
22959
  value: te,
22960
22960
  options: lE.map((e) => ({
22961
22961
  value: e.value,
22962
- label: a(`scrypted.variants.${e.key}`),
22962
+ label: a(`pluginCatalog.variants.${e.key}`),
22963
22963
  count: (c ?? []).filter((t) => t.variant === e.value).length
22964
22964
  })),
22965
22965
  onChange: (e) => {
@@ -22970,7 +22970,7 @@ function uE({ trpc: e, landNodeId: n, onImported: r }) {
22970
22970
  catalog: se,
22971
22971
  value: I,
22972
22972
  onChange: k,
22973
- emptyMessage: a("scrypted.emptyVariant"),
22973
+ emptyMessage: a("pluginCatalog.emptyVariant"),
22974
22974
  actionRow: ue && fe.length > 0 ? /* @__PURE__ */ y("div", {
22975
22975
  className: "space-y-2",
22976
22976
  children: [/* @__PURE__ */ v(aE, {
@@ -23049,7 +23049,7 @@ function pE(e) {
23049
23049
  return i;
23050
23050
  }
23051
23051
  //#endregion
23052
- //#region src/frigate/frigate-import.ts
23052
+ //#region src/plus-catalog/plus-catalog-import.ts
23053
23053
  function mE(e, t) {
23054
23054
  return {
23055
23055
  family: e === "mobiledet" ? "ssdlite-mobiledet" : e,
@@ -23065,7 +23065,7 @@ var hE = {
23065
23065
  inputSize: 320,
23066
23066
  postprocessor: void 0,
23067
23067
  fileExtensions: [".onnx"],
23068
- notes: "Frigate+ current generation. Plain YOLOv9 ONNX export — raw [1, 4+classes, anchors] output, decoded by the standard yolo postprocessor. Input 320×320 (Frigate default; match your export)."
23068
+ notes: "plus catalog current generation. Plain YOLOv9 ONNX export — raw [1, 4+classes, anchors] output, decoded by the standard yolo postprocessor. Input 320×320 (plus catalog default; match your export)."
23069
23069
  },
23070
23070
  yolonas: {
23071
23071
  type: "yolonas",
@@ -23074,7 +23074,7 @@ var hE = {
23074
23074
  inputSize: 320,
23075
23075
  postprocessor: "yolonas",
23076
23076
  fileExtensions: [".onnx"],
23077
- notes: "YOLO-NAS exported with fused batched NMS in FLAT format (super-gradients / Frigate notebook): one [N,7] output of (batch, x1, y1, x2, y2, score, class) rows. Input 320×320 (Frigate default)."
23077
+ notes: "YOLO-NAS exported with fused batched NMS in FLAT format (super-gradients / plus catalog notebook): one [N,7] output of (batch, x1, y1, x2, y2, score, class) rows. Input 320×320 (plus catalog default)."
23078
23078
  },
23079
23079
  mobiledet: {
23080
23080
  type: "mobiledet",
@@ -23083,7 +23083,7 @@ var hE = {
23083
23083
  inputSize: 320,
23084
23084
  postprocessor: "ssd",
23085
23085
  fileExtensions: [".tflite"],
23086
- 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)."
23086
+ notes: "SSDLite MobileDet, EdgeTPU-compiled full-integer TFLite (the plus catalog default-model architecture). TFLite_Detection_PostProcess 4-tensor output, decoded by the ssd postprocessor. Requires a Coral (tflite format node)."
23087
23087
  }
23088
23088
  };
23089
23089
  function gE(e) {
@@ -23098,7 +23098,7 @@ function gE(e) {
23098
23098
  }
23099
23099
  var _E = [{
23100
23100
  id: "frigate-mobiledet-edgetpu",
23101
- label: "Frigate default — SSDLite MobileDet (EdgeTPU)",
23101
+ label: "plus catalog default — SSDLite MobileDet (EdgeTPU)",
23102
23102
  format: "tflite",
23103
23103
  url: "https://github.com/google-coral/test_data/raw/release-frogfish/ssdlite_mobiledet_coco_qat_postprocess_edgetpu.tflite",
23104
23104
  sizeMB: 5.4,
@@ -23106,7 +23106,7 @@ var _E = [{
23106
23106
  postprocessor: "ssd",
23107
23107
  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("."),
23108
23108
  license: xC,
23109
- 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."
23109
+ notes: "plus catalog's default detection model (the one a stock plus catalog + Coral install runs). EdgeTPU-compiled full-integer TFLite, 320×320, TFLite_Detection_PostProcess output → ssd decode. Requires a Coral (tflite format) node."
23110
23110
  }], vE = /^[a-z0-9]{8}-[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{12}:[a-z0-9]{40}$/;
23111
23111
  function yE(e) {
23112
23112
  return vE.test(e);
@@ -23258,7 +23258,7 @@ function jE({ nodes: e }) {
23258
23258
  });
23259
23259
  }
23260
23260
  //#endregion
23261
- //#region src/frigate/frigate-as-variant-sources.ts
23261
+ //#region src/plus-catalog/plus-catalog-as-variant-sources.ts
23262
23262
  var ME = {
23263
23263
  n: "Nano",
23264
23264
  t: "Tiny",
@@ -23572,7 +23572,7 @@ function HE({ trpc: e, onRegistered: t, onError: n, landNodeId: r }) {
23572
23572
  };
23573
23573
  }
23574
23574
  //#endregion
23575
- //#region src/tabs/FrigatePlusCatalog.tsx
23575
+ //#region src/tabs/PlusCatalogBrowser.tsx
23576
23576
  e();
23577
23577
  var UE = ["kind", "release"];
23578
23578
  function WE(e, t) {
@@ -23625,7 +23625,7 @@ function KE({ trpc: e, models: t, onRegistered: n, onError: r, landNodeId: i })
23625
23625
  ...d.modal.errorMessage === void 0 ? {} : { errorMessage: d.modal.errorMessage },
23626
23626
  onClose: d.closeModal
23627
23627
  }), /* @__PURE__ */ v(nE, {
23628
- testId: "frigate-browser",
23628
+ testId: "plus-catalog-browser",
23629
23629
  preSelectors: [{
23630
23630
  id: "kind",
23631
23631
  label: a("plus.modelGroup"),
@@ -23737,7 +23737,7 @@ function JE({ combo: e, tfliteNodes: t, registeredIds: n, registryFormats: r, pr
23737
23737
  });
23738
23738
  }
23739
23739
  //#endregion
23740
- //#region src/tabs/FrigateSourceSections.tsx
23740
+ //#region src/tabs/PlusCatalogSourceSections.tsx
23741
23741
  e();
23742
23742
  var YE = "https://docs.frigate.video/integrations/plus/";
23743
23743
  function XE({ trpc: e, status: t, onStatusChange: n }) {
@@ -23745,23 +23745,23 @@ function XE({ trpc: e, status: t, onStatusChange: n }) {
23745
23745
  p(!0), d(null);
23746
23746
  try {
23747
23747
  let t = await Zw(e);
23748
- d(t.ok ? _("frigate.connectionOk") : t.error ?? _("frigate.connectionFailed"));
23748
+ d(t.ok ? _("plusCatalog.connectionOk") : t.error ?? _("plusCatalog.connectionFailed"));
23749
23749
  } catch (e) {
23750
- d(e instanceof Error ? e.message : _("frigate.connectionFailed"));
23750
+ d(e instanceof Error ? e.message : _("plusCatalog.connectionFailed"));
23751
23751
  } finally {
23752
23752
  p(!1);
23753
23753
  }
23754
23754
  }, [e, _]), x = l(async () => {
23755
23755
  let t = r.trim();
23756
23756
  if (o(null), !yE(t)) {
23757
- o(_("frigate.keyFormatInvalid"));
23757
+ o(_("plusCatalog.keyFormatInvalid"));
23758
23758
  return;
23759
23759
  }
23760
23760
  c(!0);
23761
23761
  try {
23762
23762
  await eT(e, t), i(""), h(!1), n(await Xw(e)), await b();
23763
23763
  } catch (e) {
23764
- o(e instanceof Error ? e.message : _("frigate.keySaveFailed"));
23764
+ o(e instanceof Error ? e.message : _("plusCatalog.keySaveFailed"));
23765
23765
  } finally {
23766
23766
  c(!1);
23767
23767
  }
@@ -23777,10 +23777,10 @@ function XE({ trpc: e, status: t, onStatusChange: n }) {
23777
23777
  children: [
23778
23778
  /* @__PURE__ */ v("div", {
23779
23779
  className: "font-medium text-foreground",
23780
- children: _("frigate.plus")
23780
+ children: _("plusCatalog.plus")
23781
23781
  }),
23782
23782
  /* @__PURE__ */ v("div", { children: /* @__PURE__ */ v(gT, {
23783
- i18nKey: "frigate.keyIntro",
23783
+ i18nKey: "plusCatalog.keyIntro",
23784
23784
  components: { docs: /* @__PURE__ */ v("a", {
23785
23785
  href: YE,
23786
23786
  target: "_blank",
@@ -23793,20 +23793,20 @@ function XE({ trpc: e, status: t, onStatusChange: n }) {
23793
23793
  children: [
23794
23794
  /* @__PURE__ */ v("span", {
23795
23795
  className: "rounded-md border border-success/30 bg-success/10 px-2 py-1 text-[11px] text-success",
23796
- children: _("frigate.keyConfigured")
23796
+ children: _("plusCatalog.keyConfigured")
23797
23797
  }),
23798
23798
  /* @__PURE__ */ v("button", {
23799
23799
  type: "button",
23800
23800
  onClick: () => h(!0),
23801
23801
  className: "px-3 py-1.5 text-[10px] font-medium rounded-md border border-border text-foreground-subtle hover:text-foreground hover:bg-surface-hover transition-colors",
23802
- children: _("frigate.replaceKey")
23802
+ children: _("plusCatalog.replaceKey")
23803
23803
  }),
23804
23804
  /* @__PURE__ */ v("button", {
23805
23805
  type: "button",
23806
23806
  onClick: () => void b(),
23807
23807
  disabled: f,
23808
23808
  className: "px-3 py-1.5 text-[10px] font-medium rounded-md border border-border text-foreground-subtle hover:text-foreground hover:bg-surface-hover transition-colors disabled:opacity-50",
23809
- children: _("frigate.testConnection")
23809
+ children: _("plusCatalog.testConnection")
23810
23810
  }),
23811
23811
  u && /* @__PURE__ */ v("span", {
23812
23812
  className: "text-[11px] text-foreground-subtle",
@@ -23816,13 +23816,13 @@ function XE({ trpc: e, status: t, onStatusChange: n }) {
23816
23816
  }),
23817
23817
  !t.keyFormatValid && t.configured && !m && /* @__PURE__ */ v("div", {
23818
23818
  className: "rounded-md border border-warning/40 bg-warning/10 px-3 py-2 text-[11px] text-warning",
23819
- children: _("frigate.keyShapeWrong")
23819
+ children: _("plusCatalog.keyShapeWrong")
23820
23820
  }),
23821
23821
  S && /* @__PURE__ */ y("div", {
23822
23822
  className: "space-y-1",
23823
23823
  children: [
23824
23824
  /* @__PURE__ */ v(pT, {
23825
- label: _("frigate.keyLabel"),
23825
+ label: _("plusCatalog.keyLabel"),
23826
23826
  children: /* @__PURE__ */ v("input", {
23827
23827
  type: "password",
23828
23828
  value: r,
@@ -23839,7 +23839,7 @@ function XE({ trpc: e, status: t, onStatusChange: n }) {
23839
23839
  onClick: () => void x(),
23840
23840
  disabled: s || r.trim().length === 0,
23841
23841
  className: "px-3 py-1.5 text-xs font-medium rounded-md bg-primary text-primary-foreground hover:bg-primary/90 disabled:opacity-50 transition-colors",
23842
- children: _(s ? "common.saving" : "frigate.saveKey")
23842
+ children: _(s ? "common.saving" : "plusCatalog.saveKey")
23843
23843
  }), t.configured && m && /* @__PURE__ */ v("button", {
23844
23844
  type: "button",
23845
23845
  onClick: () => {
@@ -23868,7 +23868,7 @@ function ZE({ trpc: e, onRegistered: t, onError: n, onPrefillUpload: r, landNode
23868
23868
  try {
23869
23869
  d(await Qw(e));
23870
23870
  } catch (e) {
23871
- n(e instanceof Error ? e.message : o("frigate.listFailed"));
23871
+ n(e instanceof Error ? e.message : o("plusCatalog.listFailed"));
23872
23872
  } finally {
23873
23873
  p(!1);
23874
23874
  }
@@ -23893,7 +23893,7 @@ function ZE({ trpc: e, onRegistered: t, onError: n, onPrefillUpload: r, landNode
23893
23893
  };
23894
23894
  }, [e]), s === null ? /* @__PURE__ */ v("div", {
23895
23895
  className: "text-xs text-foreground-subtle",
23896
- children: o("frigate.checking")
23896
+ children: o("plusCatalog.checking")
23897
23897
  }) : s.configured ? /* @__PURE__ */ y("div", {
23898
23898
  className: "space-y-3",
23899
23899
  children: [
@@ -23909,12 +23909,12 @@ function ZE({ trpc: e, onRegistered: t, onError: n, onPrefillUpload: r, landNode
23909
23909
  onClick: () => void m(),
23910
23910
  disabled: f,
23911
23911
  className: "px-3 py-1.5 text-[10px] font-medium rounded-md border border-border text-foreground-subtle hover:text-foreground hover:bg-surface-hover transition-colors disabled:opacity-50",
23912
- children: o("frigate.refreshList")
23912
+ children: o("plusCatalog.refreshList")
23913
23913
  })
23914
23914
  }),
23915
23915
  u === null && /* @__PURE__ */ v("div", {
23916
23916
  className: "text-xs text-foreground-subtle",
23917
- children: o("frigate.loadingModels")
23917
+ children: o("plusCatalog.loadingModels")
23918
23918
  }),
23919
23919
  u !== null && /* @__PURE__ */ v(KE, {
23920
23920
  models: u,
@@ -23934,7 +23934,7 @@ function ZE({ trpc: e, onRegistered: t, onError: n, onPrefillUpload: r, landNode
23934
23934
  className: "border-t border-border/50 pt-3 space-y-2",
23935
23935
  children: [/* @__PURE__ */ v("div", {
23936
23936
  className: "text-[11px] text-foreground-subtle",
23937
- children: o("frigate.publicDefault")
23937
+ children: o("plusCatalog.publicDefault")
23938
23938
  }), _E.map((i) => /* @__PURE__ */ v(QE, {
23939
23939
  trpc: e,
23940
23940
  catalogId: i.id,
@@ -24013,7 +24013,7 @@ function QE({ trpc: e, catalogId: t, onRegistered: n, onError: r, onPrefillUploa
24013
24013
  o !== void 0 && /* @__PURE__ */ v("p", {
24014
24014
  className: "text-[10px] text-foreground-subtle",
24015
24015
  children: /* @__PURE__ */ v(gT, {
24016
- i18nKey: "frigate.landOnNode",
24016
+ i18nKey: "plusCatalog.landOnNode",
24017
24017
  values: { nodeId: o },
24018
24018
  components: { mono: /* @__PURE__ */ v("span", { className: "font-mono" }) }
24019
24019
  })
@@ -24028,19 +24028,19 @@ function QE({ trpc: e, catalogId: t, onRegistered: n, onError: r, onPrefillUploa
24028
24028
  children: [/* @__PURE__ */ v("button", {
24029
24029
  onClick: () => {
24030
24030
  u(!0);
24031
- let t = C ? S : void 0, i = s("frigate.opTitle", { label: c.label }), a = TT({
24031
+ let t = C ? S : void 0, i = s("plusCatalog.opTitle", { label: c.label }), a = TT({
24032
24032
  kind: "import",
24033
24033
  title: i,
24034
24034
  modelId: c.id,
24035
24035
  format: c.format,
24036
24036
  ...t === void 0 ? {} : { nodeId: t },
24037
- logs: [s("frigate.opLog", { modelId: c.id })]
24037
+ logs: [s("plusCatalog.opLog", { modelId: c.id })]
24038
24038
  });
24039
24039
  m({
24040
24040
  title: i,
24041
24041
  steps: [{
24042
24042
  id: "import",
24043
- label: s("frigate.opStepDownload"),
24043
+ label: s("plusCatalog.opStepDownload"),
24044
24044
  status: "active"
24045
24045
  }, ...t === void 0 ? [] : [{
24046
24046
  id: "land",
@@ -24048,7 +24048,7 @@ function QE({ trpc: e, catalogId: t, onRegistered: n, onError: r, onPrefillUploa
24048
24048
  status: "pending"
24049
24049
  }]],
24050
24050
  progress: null,
24051
- logs: [s("frigate.opLog", { modelId: c.id })],
24051
+ logs: [s("plusCatalog.opLog", { modelId: c.id })],
24052
24052
  status: "running",
24053
24053
  sessionId: a
24054
24054
  });
@@ -24058,10 +24058,10 @@ function QE({ trpc: e, catalogId: t, onRegistered: n, onError: r, onPrefillUploa
24058
24058
  ...o === void 0 ? {} : { name: o },
24059
24059
  ...t === void 0 ? {} : { targetNodeId: t }
24060
24060
  }).then((e) => {
24061
- let r = t === void 0 ? s("frigate.registered", {
24061
+ let r = t === void 0 ? s("plusCatalog.registered", {
24062
24062
  modelId: e.modelId,
24063
24063
  size: (e.bytes / 1e6).toFixed(1)
24064
- }) : s("frigate.registeredLanded", {
24064
+ }) : s("plusCatalog.registeredLanded", {
24065
24065
  modelId: e.modelId,
24066
24066
  nodeId: t,
24067
24067
  size: (e.bytes / 1e6).toFixed(1)
@@ -24076,7 +24076,7 @@ function QE({ trpc: e, catalogId: t, onRegistered: n, onError: r, onPrefillUploa
24076
24076
  }))
24077
24077
  }), n(r);
24078
24078
  }).catch((e) => {
24079
- let t = e instanceof Error ? e.message : s("frigate.catalogImportFailed");
24079
+ let t = e instanceof Error ? e.message : s("plusCatalog.catalogImportFailed");
24080
24080
  DT(a, {
24081
24081
  status: "error",
24082
24082
  errorMessage: t
@@ -24093,7 +24093,7 @@ function QE({ trpc: e, catalogId: t, onRegistered: n, onError: r, onPrefillUploa
24093
24093
  },
24094
24094
  disabled: l || x || sE(d),
24095
24095
  className: "px-4 py-1.5 text-xs font-medium rounded-md bg-primary text-primary-foreground hover:bg-primary/90 disabled:opacity-50 transition-colors",
24096
- children: l ? s("common.importing") : C ? s("frigate.importLand", { nodeId: S }) : s("common.register")
24096
+ children: l ? s("common.importing") : C ? s("plusCatalog.importLand", { nodeId: S }) : s("common.register")
24097
24097
  }), /* @__PURE__ */ v("button", {
24098
24098
  onClick: () => a({
24099
24099
  sourceLabel: c.label,
@@ -24103,7 +24103,7 @@ function QE({ trpc: e, catalogId: t, onRegistered: n, onError: r, onPrefillUploa
24103
24103
  labels: c.labels
24104
24104
  }),
24105
24105
  className: "px-3 py-1.5 text-[10px] font-medium rounded-md border border-border text-foreground-subtle hover:text-foreground hover:bg-surface-hover transition-colors",
24106
- children: s("frigate.prefillCustom")
24106
+ children: s("plusCatalog.prefillCustom")
24107
24107
  })]
24108
24108
  })
24109
24109
  ]
@@ -24122,11 +24122,11 @@ var eD = [
24122
24122
  },
24123
24123
  {
24124
24124
  value: "scrypted",
24125
- label: "Scrypted"
24125
+ label: "plugin catalog"
24126
24126
  },
24127
24127
  {
24128
24128
  value: "frigate",
24129
- label: "Frigate"
24129
+ label: "plus catalog"
24130
24130
  }
24131
24131
  ], tD = new Set(Ie);
24132
24132
  function nD(e) {
@@ -24411,7 +24411,7 @@ function sD(e) {
24411
24411
  return e.length === 0 ? "" : ` Engine conversions: ${e.map((e) => e.ok ? `${e.format} ✓${e.nodeId ? ` (${e.nodeId})` : ""}` : `${e.format} ✗ — ${e.error ?? "failed"}`).join("; ")}.`;
24412
24412
  }
24413
24413
  //#endregion
24414
- //#region src/frigate/registration.ts
24414
+ //#region src/plus-catalog/registration.ts
24415
24415
  var cD = [
24416
24416
  "yolo",
24417
24417
  "yolonas",
@@ -24441,7 +24441,7 @@ function dD(e) {
24441
24441
  if (t !== null && e.source.kind === "upload" && !t.fileExtensions.some((t) => e.source.kind === "upload" && e.source.filename.endsWith(t))) throw Error(`File extension mismatch: a ${t.label} model must be ${t.fileExtensions.join(" / ")}`);
24442
24442
  let n = t?.format ?? e.format, r = t?.postprocessor ?? (t ? void 0 : e.postprocessor), i = e.source.kind === "upload" ? `camstack-local://${e.modelId}/${e.source.filename}` : e.source.url.trim();
24443
24443
  if (i.length === 0) throw Error("Model URL is required");
24444
- let a = t === null ? "Custom model — registered via Model Studio" : `Frigate ${t.label} — imported via Model Studio`, o = e.labels.map((e) => ({
24444
+ let a = t === null ? "Custom model — registered via Model Studio" : `plus catalog ${t.label} — imported via Model Studio`, o = e.labels.map((e) => ({
24445
24445
  id: e,
24446
24446
  name: e
24447
24447
  })), s = {
@@ -24466,8 +24466,8 @@ function dD(e) {
24466
24466
  } : {
24467
24467
  provider: "frigate",
24468
24468
  group: mE(e.type, e.inputWidth),
24469
- ...ce(e.labels),
24470
- defaultClassFloors: Be("stock", e.defaultClassFloors)
24469
+ ...O(e.labels),
24470
+ defaultClassFloors: oe("stock", e.defaultClassFloors)
24471
24471
  }
24472
24472
  };
24473
24473
  return {
@@ -24955,7 +24955,7 @@ function wD({ trpc: e, onRegistered: t, initialPrefill: n = null, onPrefillConsu
24955
24955
  //#endregion
24956
24956
  //#region src/ui/installed-activation.ts
24957
24957
  function TD(e, t, n, r, i) {
24958
- if (r == null || N(t)) return [];
24958
+ if (r == null || D(t)) return [];
24959
24959
  let a = [];
24960
24960
  for (let o of e) o.enabled && i.has(o.format) && ts(r.models, o.format) && ns({
24961
24961
  catalog: r,
@@ -25040,7 +25040,7 @@ function ID(e, t, n) {
25040
25040
  function LD(e, t) {
25041
25041
  if (e.onDisk !== "current") return /* @__PURE__ */ new Set();
25042
25042
  let n = t.stepCatalogs[e.stepId], r = new Set([e.format]);
25043
- return N(e.stepId) ? ID(e.stepId, t.clusterModels, n) === e.modelId ? new Set(t.devices.filter((t) => t.enabled && t.format === e.format).map((e) => e.key)) : /* @__PURE__ */ new Set() : new Set(TD(t.devices, e.stepId, e.modelId, n, r).map((e) => e.deviceKey));
25043
+ return D(e.stepId) ? ID(e.stepId, t.clusterModels, n) === e.modelId ? new Set(t.devices.filter((t) => t.enabled && t.format === e.format).map((e) => e.key)) : /* @__PURE__ */ new Set() : new Set(TD(t.devices, e.stepId, e.modelId, n, r).map((e) => e.deviceKey));
25044
25044
  }
25045
25045
  function RD(e, t, n) {
25046
25046
  return t ? "outside-pools" : e.some((e) => e.loaded === !0) ? "in-use" : e.some((e) => e.configured) ? "configured" : e.some((e) => e.enabled) ? n ? "idle" : "unknown" : "unused";
@@ -25057,7 +25057,7 @@ function zD(e, t) {
25057
25057
  ...e,
25058
25058
  key: `${e.stepId}::${e.modelId}::${e.format}`,
25059
25059
  renameable: e.origin === "registry",
25060
- clusterScoped: N(e.stepId),
25060
+ clusterScoped: D(e.stepId),
25061
25061
  chips: r,
25062
25062
  usage: a,
25063
25063
  removable: a === "idle" || a === "unused"
@@ -25087,7 +25087,7 @@ function VD(e, t) {
25087
25087
  modelId: i,
25088
25088
  name: ZC(r.entry),
25089
25089
  description: r.entry.description,
25090
- provider: te({
25090
+ provider: ce({
25091
25091
  id: i,
25092
25092
  description: r.entry.description,
25093
25093
  provider: r.entry.provider
@@ -25752,8 +25752,8 @@ function hO({ precision: e }) {
25752
25752
  //#region src/components/installed/provider-label.ts
25753
25753
  var gO = {
25754
25754
  camstack: "CamStack",
25755
- scrypted: "Scrypted",
25756
- frigate: "Frigate"
25755
+ scrypted: "plugin catalog",
25756
+ frigate: "plus catalog"
25757
25757
  };
25758
25758
  function _O(e, t) {
25759
25759
  return e === "custom" ? t("providers.custom") : gO[e] ?? e;