@camstack/addon-model-studio 1.1.242 → 1.1.243
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/_stub.js +732 -714
- package/dist/{_virtual_mf-localSharedImportMap___mfe_internal__addon_model_studio_page-IOUd1yR1.mjs → _virtual_mf-localSharedImportMap___mfe_internal__addon_model_studio_page-N799yFeM.mjs} +3 -3
- package/dist/{hostInit-Bvp2b-Ci.mjs → hostInit-Cnqc1a9I.mjs} +2 -2
- package/dist/model-studio.addon.js +1 -0
- package/dist/model-studio.addon.mjs +1 -0
- package/dist/remoteEntry.js +1 -1
- package/dist/{virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_model_studio_page__remoteEntry_js-hd8Mcqu1.mjs → virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_model_studio_page__remoteEntry_js-DdhL5wd4.mjs} +1 -1
- package/package.json +1 -1
package/dist/_stub.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import "./virtualExposes-CWSi4E_g.mjs";
|
|
2
|
-
import "./virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_model_studio_page__remoteEntry_js-
|
|
2
|
+
import "./virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_model_studio_page__remoteEntry_js-DdhL5wd4.mjs";
|
|
3
3
|
import { _ as e, b as t, c as n, d as r, f as i, g as a, h as o, i as s, l as c, m as l, n as u, p as d, r as f, t as p, u as m, v as h } from "./_virtual_mf___mfe_internal__addon_model_studio_page__loadShare__react__loadShare__.js-CHL8loOl.mjs";
|
|
4
4
|
import { _ as g, a as _, b as v, c as y, d as b, f as x, g as S, i as C, l as w, m as T, o as E, p as D, r as O, s as k, t as ee, u as A, v as te, y as j } from "./responsive-DI5osE9O.mjs";
|
|
5
5
|
import { d as ne, l as re, u as M } from "./scene-monitor-copy-SE_x3tUF.mjs";
|
|
@@ -19104,28 +19104,46 @@ function Qx({ start: e, end: t, className: n, testId: r }) {
|
|
|
19104
19104
|
//#endregion
|
|
19105
19105
|
//#region ../ui-library/src/hooks/use-url-query.ts
|
|
19106
19106
|
t();
|
|
19107
|
-
|
|
19107
|
+
var $x = "camstack:url-query";
|
|
19108
|
+
function eS(e) {
|
|
19108
19109
|
return new URLSearchParams(window.location.search).get(e);
|
|
19109
19110
|
}
|
|
19110
|
-
function
|
|
19111
|
+
function tS() {
|
|
19112
|
+
window.dispatchEvent(new Event($x));
|
|
19113
|
+
}
|
|
19114
|
+
function nS(e, t) {
|
|
19111
19115
|
let n = new URLSearchParams(window.location.search);
|
|
19112
19116
|
t === null || t === "" ? n.delete(e) : n.set(e, t);
|
|
19113
19117
|
let r = n.toString(), i = r ? `${window.location.pathname}?${r}` : window.location.pathname;
|
|
19114
19118
|
window.history.replaceState(null, "", i);
|
|
19115
19119
|
}
|
|
19116
|
-
|
|
19117
|
-
|
|
19120
|
+
var rS = !1;
|
|
19121
|
+
function iS() {
|
|
19122
|
+
if (rS || typeof window > "u") return;
|
|
19123
|
+
rS = !0;
|
|
19124
|
+
let e = window.history.replaceState.bind(window.history), t = window.history.pushState.bind(window.history);
|
|
19125
|
+
window.history.replaceState = (...t) => {
|
|
19126
|
+
e(...t), tS();
|
|
19127
|
+
}, window.history.pushState = (...e) => {
|
|
19128
|
+
t(...e), tS();
|
|
19129
|
+
};
|
|
19130
|
+
}
|
|
19131
|
+
function aS(e) {
|
|
19132
|
+
iS();
|
|
19133
|
+
let [t, r] = a(() => eS(e));
|
|
19118
19134
|
return m(() => {
|
|
19119
|
-
let t = () => r(
|
|
19120
|
-
return window.addEventListener("popstate", t),
|
|
19135
|
+
let t = () => r(eS(e));
|
|
19136
|
+
return window.addEventListener("popstate", t), window.addEventListener($x, t), () => {
|
|
19137
|
+
window.removeEventListener("popstate", t), window.removeEventListener($x, t);
|
|
19138
|
+
};
|
|
19121
19139
|
}, [e]), [t, n((t) => {
|
|
19122
|
-
|
|
19140
|
+
nS(e, t), r(t);
|
|
19123
19141
|
}, [e])];
|
|
19124
19142
|
}
|
|
19125
19143
|
//#endregion
|
|
19126
19144
|
//#region ../ui-library/src/composites/step-inspector/step-inspector-panel.tsx
|
|
19127
19145
|
t(), t(), t(), G(C, "min-w-0 max-w-full gap-1.5 py-1 pl-1 pr-2.5 text-xs font-normal", "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/40"), G(O, "font-medium"), t(), t(), t(), t(), t();
|
|
19128
|
-
function
|
|
19146
|
+
function oS({ dirtyCount: e, saving: t, status: n, error: r, onSave: i, onDiscard: a, scope: o }) {
|
|
19129
19147
|
let s = e > 0, c = t ? "Saving…" : s ? `${e} unsaved change${e === 1 ? "" : "s"}` : n === "saved" ? "Saved" : n === "error" ? r ?? "Save failed" : "No unsaved changes";
|
|
19130
19148
|
return /* @__PURE__ */ B("footer", {
|
|
19131
19149
|
className: "shrink-0 space-y-2 border-t border-border bg-surface px-4 py-2 pb-[max(0.5rem,env(safe-area-inset-bottom))] md:pb-2",
|
|
@@ -19196,13 +19214,13 @@ f(function({ title: e, subtitle: t, headerActions: n, headerExtra: i, leading: a
|
|
|
19196
19214
|
className: "min-h-0 flex-1 overflow-y-auto overscroll-contain px-4 py-3",
|
|
19197
19215
|
children: c
|
|
19198
19216
|
}),
|
|
19199
|
-
o !== void 0 && /* @__PURE__ */ z(
|
|
19217
|
+
o !== void 0 && /* @__PURE__ */ z(oS, { ...o })
|
|
19200
19218
|
]
|
|
19201
19219
|
});
|
|
19202
19220
|
}), t(), t(), t(), t(), t(), t(), t(), t(), j("camstack:zone-editing", null), t(), t(), t(), t(), t(), s(() => import("./MaskShapeCanvas-DBaZffFb.mjs").then((e) => ({ default: e.MaskShapeCanvas }))), s(() => import("./MotionZonesSettings-D034u7f9.mjs").then((e) => ({ default: e.MotionZonesSettings }))), s(() => import("./SceneMonitorEditor-KRSGEVkl.mjs").then((e) => ({ default: e.SceneMonitorEditor }))), s(() => import("./PrivacyMaskSettings-Bh8sccz7.mjs").then((e) => ({ default: e.PrivacyMaskSettings })));
|
|
19203
19221
|
//#endregion
|
|
19204
19222
|
//#region src/scrypted/scrypted-yolo-manifest-data.json
|
|
19205
|
-
var rS = /*#__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}]"), iS = {
|
|
19223
|
+
var sS = /*#__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}]"), cS = {
|
|
19206
19224
|
weights: "UNKNOWN",
|
|
19207
19225
|
code: "GPL-3.0",
|
|
19208
19226
|
data: {
|
|
@@ -19217,7 +19235,7 @@ var rS = /*#__PURE__*/ JSON.parse("[{\"id\":\"scrypted-yolov9t-relu-coreml\",\"l
|
|
|
19217
19235
|
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).",
|
|
19218
19236
|
modifications: "none: downloaded as published, at a pinned revision",
|
|
19219
19237
|
hosting: "third-party"
|
|
19220
|
-
},
|
|
19238
|
+
}, lS = {
|
|
19221
19239
|
weights: "Apache-2.0",
|
|
19222
19240
|
code: "Apache-2.0",
|
|
19223
19241
|
data: {
|
|
@@ -19232,45 +19250,45 @@ var rS = /*#__PURE__*/ JSON.parse("[{\"id\":\"scrypted-yolov9t-relu-coreml\",\"l
|
|
|
19232
19250
|
url: "https://github.com/google-coral/test_data/blob/master/LICENSE",
|
|
19233
19251
|
attribution: "Coral Edge TPU models and AIY Vision Birds V1 © Google LLC, Apache-2.0.",
|
|
19234
19252
|
hosting: "third-party"
|
|
19235
|
-
},
|
|
19253
|
+
}, uS = /^[0-9a-f]{64}$/, dS = "https://huggingface.co", fS = "scrypted/plugin-models", pS = "187402b20a3be0a7fab9bceee21d857ed6ae0064", mS = [
|
|
19236
19254
|
"person",
|
|
19237
19255
|
"vehicle",
|
|
19238
19256
|
"animal"
|
|
19239
|
-
],
|
|
19257
|
+
], hS = {
|
|
19240
19258
|
mapping: {
|
|
19241
19259
|
person: "person",
|
|
19242
19260
|
vehicle: "vehicle",
|
|
19243
19261
|
animal: "animal"
|
|
19244
19262
|
},
|
|
19245
19263
|
preserveOriginal: !1
|
|
19246
|
-
},
|
|
19264
|
+
}, gS = mS.map((e) => ({
|
|
19247
19265
|
id: e,
|
|
19248
19266
|
name: e
|
|
19249
|
-
})),
|
|
19267
|
+
})), _S = [
|
|
19250
19268
|
"Manifest.json",
|
|
19251
19269
|
"Data/com.apple.CoreML/model.mlmodel",
|
|
19252
19270
|
"Data/com.apple.CoreML/weights/weight.bin"
|
|
19253
|
-
],
|
|
19271
|
+
], vS = {
|
|
19254
19272
|
width: 320,
|
|
19255
19273
|
height: 320
|
|
19256
19274
|
};
|
|
19257
|
-
function
|
|
19258
|
-
if (e === void 0 || !
|
|
19275
|
+
function yS(e, t) {
|
|
19276
|
+
if (e === void 0 || !uS.test(e)) throw Error(`Invalid sha256 for ${t}: expected 64 lowercase hex`);
|
|
19259
19277
|
return e;
|
|
19260
19278
|
}
|
|
19261
|
-
function
|
|
19279
|
+
function bS(e) {
|
|
19262
19280
|
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}`);
|
|
19263
19281
|
return e;
|
|
19264
19282
|
}
|
|
19265
|
-
function
|
|
19266
|
-
return `${
|
|
19283
|
+
function xS(e) {
|
|
19284
|
+
return `${dS}/${fS}/resolve/${pS}/${bS(e).split("/").map((e) => encodeURIComponent(e)).join("/")}`;
|
|
19267
19285
|
}
|
|
19268
|
-
function
|
|
19286
|
+
function SS(e) {
|
|
19269
19287
|
let t = e.find((e) => e.relativePath.endsWith("/Manifest.json"));
|
|
19270
19288
|
if (!t) throw Error("CoreML entry is missing Manifest.json");
|
|
19271
|
-
return
|
|
19289
|
+
return bS(t.relativePath.replace(/\/Manifest\.json$/, ""));
|
|
19272
19290
|
}
|
|
19273
|
-
function
|
|
19291
|
+
function CS(e) {
|
|
19274
19292
|
let t = e.family.slice(-1), n = e.precision === "int8" || e.precision === "uint8" || e.precision === "integer_quant" || e.precision === "full_integer_quant" || e.precision === "edgetpu", r = {
|
|
19275
19293
|
family: "yolov9",
|
|
19276
19294
|
tier: t,
|
|
@@ -19290,19 +19308,19 @@ function yS(e) {
|
|
|
19290
19308
|
name: s,
|
|
19291
19309
|
description: c,
|
|
19292
19310
|
formats: { coreml: {
|
|
19293
|
-
url:
|
|
19311
|
+
url: xS(SS(e.files)),
|
|
19294
19312
|
sizeMB: e.sizeMB,
|
|
19295
19313
|
isDirectory: !0,
|
|
19296
|
-
files: [...
|
|
19314
|
+
files: [..._S],
|
|
19297
19315
|
runtimes: ["python"]
|
|
19298
19316
|
} },
|
|
19299
|
-
inputSize:
|
|
19300
|
-
labels:
|
|
19317
|
+
inputSize: vS,
|
|
19318
|
+
labels: gS,
|
|
19301
19319
|
preprocessMode: "resize",
|
|
19302
|
-
classMap:
|
|
19320
|
+
classMap: hS,
|
|
19303
19321
|
group: r,
|
|
19304
19322
|
provider: "scrypted",
|
|
19305
|
-
license:
|
|
19323
|
+
license: cS
|
|
19306
19324
|
};
|
|
19307
19325
|
if (e.format === "openvino") {
|
|
19308
19326
|
let t = e.files.find((e) => e.relativePath.endsWith(".xml")), n = e.files.find((e) => e.relativePath.endsWith(".bin"));
|
|
@@ -19313,18 +19331,18 @@ function yS(e) {
|
|
|
19313
19331
|
name: s,
|
|
19314
19332
|
description: c,
|
|
19315
19333
|
formats: { openvino: {
|
|
19316
|
-
url:
|
|
19334
|
+
url: xS(t.relativePath),
|
|
19317
19335
|
sizeMB: e.sizeMB,
|
|
19318
19336
|
files: [i],
|
|
19319
19337
|
runtimes: ["python"]
|
|
19320
19338
|
} },
|
|
19321
|
-
inputSize:
|
|
19322
|
-
labels:
|
|
19339
|
+
inputSize: vS,
|
|
19340
|
+
labels: gS,
|
|
19323
19341
|
preprocessMode: "resize",
|
|
19324
|
-
classMap:
|
|
19342
|
+
classMap: hS,
|
|
19325
19343
|
group: r,
|
|
19326
19344
|
provider: "scrypted",
|
|
19327
|
-
license:
|
|
19345
|
+
license: cS
|
|
19328
19346
|
};
|
|
19329
19347
|
}
|
|
19330
19348
|
let l = e.files[0];
|
|
@@ -19334,25 +19352,25 @@ function yS(e) {
|
|
|
19334
19352
|
name: s,
|
|
19335
19353
|
description: c,
|
|
19336
19354
|
formats: { [e.format]: {
|
|
19337
|
-
url:
|
|
19355
|
+
url: xS(l.relativePath),
|
|
19338
19356
|
sizeMB: e.sizeMB,
|
|
19339
19357
|
runtimes: e.format === "tflite" ? ["python"] : void 0
|
|
19340
19358
|
} },
|
|
19341
|
-
inputSize:
|
|
19342
|
-
labels:
|
|
19359
|
+
inputSize: vS,
|
|
19360
|
+
labels: gS,
|
|
19343
19361
|
preprocessMode: "resize",
|
|
19344
|
-
classMap:
|
|
19362
|
+
classMap: hS,
|
|
19345
19363
|
group: r,
|
|
19346
19364
|
provider: "scrypted",
|
|
19347
|
-
license:
|
|
19365
|
+
license: cS,
|
|
19348
19366
|
...e.format === "tflite" ? { postprocessor: "yolo-split-dfl" } : {}
|
|
19349
19367
|
};
|
|
19350
19368
|
}
|
|
19351
|
-
function
|
|
19369
|
+
function wS(e) {
|
|
19352
19370
|
let t = e.files.map((e) => Object.freeze({
|
|
19353
|
-
relativePath:
|
|
19371
|
+
relativePath: bS(e.relativePath),
|
|
19354
19372
|
size: e.size,
|
|
19355
|
-
sha256:
|
|
19373
|
+
sha256: yS(e.sha256, e.relativePath)
|
|
19356
19374
|
}));
|
|
19357
19375
|
return Object.freeze({
|
|
19358
19376
|
id: e.id,
|
|
@@ -19361,22 +19379,22 @@ function bS(e) {
|
|
|
19361
19379
|
variant: e.variant,
|
|
19362
19380
|
format: e.format,
|
|
19363
19381
|
precision: e.precision,
|
|
19364
|
-
inputSize:
|
|
19382
|
+
inputSize: vS,
|
|
19365
19383
|
files: Object.freeze(t),
|
|
19366
|
-
model:
|
|
19384
|
+
model: CS({
|
|
19367
19385
|
...e,
|
|
19368
19386
|
files: t
|
|
19369
19387
|
})
|
|
19370
19388
|
});
|
|
19371
19389
|
}
|
|
19372
|
-
var
|
|
19390
|
+
var TS = Object.freeze(sS.map(wS)), ES = [
|
|
19373
19391
|
"ok",
|
|
19374
19392
|
"missing",
|
|
19375
19393
|
"size-changed",
|
|
19376
19394
|
"unavailable"
|
|
19377
19395
|
];
|
|
19378
|
-
function
|
|
19379
|
-
return
|
|
19396
|
+
function DS(e) {
|
|
19397
|
+
return ES.includes(e.status) ? {
|
|
19380
19398
|
manifestId: e.manifestId,
|
|
19381
19399
|
status: e.status,
|
|
19382
19400
|
...e.details === void 0 ? {} : { details: e.details }
|
|
@@ -19388,11 +19406,11 @@ function CS(e) {
|
|
|
19388
19406
|
}
|
|
19389
19407
|
//#endregion
|
|
19390
19408
|
//#region src/model-studio-actions.ts
|
|
19391
|
-
var
|
|
19409
|
+
var OS = $({
|
|
19392
19410
|
sha256: Q(),
|
|
19393
19411
|
bytes: Pb(),
|
|
19394
19412
|
at: Pb()
|
|
19395
|
-
}),
|
|
19413
|
+
}), kS = kx((e) => {
|
|
19396
19414
|
if (typeof e != "object" || !e || Array.isArray(e)) return e;
|
|
19397
19415
|
let t = e;
|
|
19398
19416
|
return typeof t.formats == "object" && t.formats !== null && !Array.isArray(t.formats) ? { formats: t.formats } : typeof t.format == "string" ? { formats: { [t.format]: {
|
|
@@ -19400,15 +19418,15 @@ var wS = $({
|
|
|
19400
19418
|
bytes: typeof t.bytes == "number" ? t.bytes : 0,
|
|
19401
19419
|
at: typeof t.at == "number" ? t.at : 0
|
|
19402
19420
|
} } } : e;
|
|
19403
|
-
}, $({ formats: ex(nx(P),
|
|
19404
|
-
function
|
|
19421
|
+
}, $({ formats: ex(nx(P), OS) })), AS = $b(Q(), $b(Q(), kS));
|
|
19422
|
+
function jS(e) {
|
|
19405
19423
|
return `frigate-plus-${e}`;
|
|
19406
19424
|
}
|
|
19407
|
-
var
|
|
19425
|
+
var MS = $({
|
|
19408
19426
|
relativePath: Q(),
|
|
19409
19427
|
size: Pb(),
|
|
19410
19428
|
sha256: Q().regex(/^[0-9a-f]{64}$/)
|
|
19411
|
-
}),
|
|
19429
|
+
}), NS = $({
|
|
19412
19430
|
id: Q(),
|
|
19413
19431
|
label: Q(),
|
|
19414
19432
|
family: nx([
|
|
@@ -19429,9 +19447,9 @@ var OS = $({
|
|
|
19429
19447
|
width: Pb(),
|
|
19430
19448
|
height: Pb()
|
|
19431
19449
|
}),
|
|
19432
|
-
files: Kb(
|
|
19450
|
+
files: Kb(MS).readonly(),
|
|
19433
19451
|
model: Xe
|
|
19434
|
-
}),
|
|
19452
|
+
}), PS = $({
|
|
19435
19453
|
manifestId: Q(),
|
|
19436
19454
|
status: nx([
|
|
19437
19455
|
"ok",
|
|
@@ -19440,14 +19458,14 @@ var OS = $({
|
|
|
19440
19458
|
"unavailable"
|
|
19441
19459
|
]),
|
|
19442
19460
|
details: Q().optional()
|
|
19443
|
-
}),
|
|
19461
|
+
}), FS = $({
|
|
19444
19462
|
id: Q(),
|
|
19445
19463
|
label: Q(),
|
|
19446
19464
|
format: nx(P),
|
|
19447
19465
|
sizeMB: Pb(),
|
|
19448
19466
|
inputSize: Pb(),
|
|
19449
19467
|
notes: Q()
|
|
19450
|
-
}),
|
|
19468
|
+
}), IS = $({
|
|
19451
19469
|
id: Q(),
|
|
19452
19470
|
name: Q(),
|
|
19453
19471
|
type: Q(),
|
|
@@ -19530,7 +19548,7 @@ Qe({
|
|
|
19530
19548
|
sha256: Q(),
|
|
19531
19549
|
bytes: Pb()
|
|
19532
19550
|
}), { kind: "mutation" }),
|
|
19533
|
-
listAvailability: ke(Wb(),
|
|
19551
|
+
listAvailability: ke(Wb(), AS),
|
|
19534
19552
|
beginModelUpload: ke($({
|
|
19535
19553
|
filename: Q(),
|
|
19536
19554
|
totalBytes: Pb().int().positive()
|
|
@@ -19545,7 +19563,7 @@ Qe({
|
|
|
19545
19563
|
sha256: Q()
|
|
19546
19564
|
}), { kind: "mutation" }),
|
|
19547
19565
|
abortModelUpload: ke($({ uploadId: Q() }), $({ ok: ix(!0) }), { kind: "mutation" }),
|
|
19548
|
-
listFrigateCatalog: ke(Wb(), Kb(
|
|
19566
|
+
listFrigateCatalog: ke(Wb(), Kb(FS).readonly()),
|
|
19549
19567
|
importFrigateCatalogModel: ke($({
|
|
19550
19568
|
catalogId: Q(),
|
|
19551
19569
|
modelId: Q().optional(),
|
|
@@ -19557,8 +19575,8 @@ Qe({
|
|
|
19557
19575
|
bytes: Pb()
|
|
19558
19576
|
}), { kind: "mutation" }),
|
|
19559
19577
|
listScryptedCatalog: ke(Wb(), $({
|
|
19560
|
-
entries: Kb(
|
|
19561
|
-
drift: Kb(
|
|
19578
|
+
entries: Kb(NS).readonly(),
|
|
19579
|
+
drift: Kb(PS).readonly()
|
|
19562
19580
|
})),
|
|
19563
19581
|
importScryptedCatalogModel: ke($({
|
|
19564
19582
|
manifestId: Q(),
|
|
@@ -19574,7 +19592,7 @@ Qe({
|
|
|
19574
19592
|
ok: Rb(),
|
|
19575
19593
|
error: Q().optional()
|
|
19576
19594
|
}), { kind: "mutation" }),
|
|
19577
|
-
frigatePlusListModels: ke(Wb(), Kb(
|
|
19595
|
+
frigatePlusListModels: ke(Wb(), Kb(IS).readonly()),
|
|
19578
19596
|
importFrigatePlusModel: ke($({
|
|
19579
19597
|
plusModelId: Q(),
|
|
19580
19598
|
modelId: Q().optional(),
|
|
@@ -19609,10 +19627,10 @@ Qe({
|
|
|
19609
19627
|
artifacts: Kb(Te).readonly()
|
|
19610
19628
|
}), { kind: "mutation" })
|
|
19611
19629
|
});
|
|
19612
|
-
var
|
|
19613
|
-
function
|
|
19630
|
+
var LS = /[\u0000-\u001f\u007f]/;
|
|
19631
|
+
function RS(e) {
|
|
19614
19632
|
let t = e.replace(/\s+/g, " ").trim();
|
|
19615
|
-
return t.length === 0 ? { kind: "reset" } :
|
|
19633
|
+
return t.length === 0 ? { kind: "reset" } : LS.test(t) ? {
|
|
19616
19634
|
kind: "invalid",
|
|
19617
19635
|
reason: "The name contains control characters."
|
|
19618
19636
|
} : t.length > 80 ? {
|
|
@@ -19623,30 +19641,30 @@ function PS(e) {
|
|
|
19623
19641
|
name: t
|
|
19624
19642
|
};
|
|
19625
19643
|
}
|
|
19626
|
-
function
|
|
19644
|
+
function zS(e) {
|
|
19627
19645
|
let t = e.name?.trim() ?? "";
|
|
19628
19646
|
return t.length > 0 ? t : e.id;
|
|
19629
19647
|
}
|
|
19630
19648
|
//#endregion
|
|
19631
19649
|
//#region src/ui/model-studio-ui.ts
|
|
19632
|
-
var
|
|
19633
|
-
function
|
|
19634
|
-
return e.stepId ===
|
|
19650
|
+
var BS = "object-detection";
|
|
19651
|
+
function VS(e) {
|
|
19652
|
+
return e.stepId === BS ? he(e.entry, {
|
|
19635
19653
|
labels: [],
|
|
19636
19654
|
classMap: Ie
|
|
19637
19655
|
}) : [];
|
|
19638
19656
|
}
|
|
19639
|
-
var
|
|
19657
|
+
var HS = [
|
|
19640
19658
|
"onnx",
|
|
19641
19659
|
"coreml",
|
|
19642
19660
|
"openvino",
|
|
19643
19661
|
"tflite",
|
|
19644
19662
|
"pt"
|
|
19645
19663
|
];
|
|
19646
|
-
function
|
|
19647
|
-
return
|
|
19664
|
+
function US(e) {
|
|
19665
|
+
return HS.filter((t) => e.formats[t] !== void 0);
|
|
19648
19666
|
}
|
|
19649
|
-
function
|
|
19667
|
+
function WS(e, t) {
|
|
19650
19668
|
let n = e[t];
|
|
19651
19669
|
if (n === void 0) return [];
|
|
19652
19670
|
let r = [];
|
|
@@ -19657,7 +19675,7 @@ function BS(e, t) {
|
|
|
19657
19675
|
});
|
|
19658
19676
|
return r.toSorted((e, t) => e.nodeId.localeCompare(t.nodeId) || e.format.localeCompare(t.format));
|
|
19659
19677
|
}
|
|
19660
|
-
function
|
|
19678
|
+
function GS(e) {
|
|
19661
19679
|
let t = /* @__PURE__ */ new Set(), n = [];
|
|
19662
19680
|
for (let r of e.slots) for (let e of r.addons) t.has(e.id) || (t.add(e.id), n.push({
|
|
19663
19681
|
id: e.id,
|
|
@@ -19666,7 +19684,7 @@ function VS(e) {
|
|
|
19666
19684
|
}));
|
|
19667
19685
|
return n;
|
|
19668
19686
|
}
|
|
19669
|
-
function
|
|
19687
|
+
function KS(e) {
|
|
19670
19688
|
let t = {};
|
|
19671
19689
|
for (let n of e.slots) for (let e of n.addons) typeof e.defaultModelId != "string" || e.defaultModelId.length === 0 || (t[e.id] = {
|
|
19672
19690
|
id: e.id,
|
|
@@ -19681,7 +19699,7 @@ function HS(e) {
|
|
|
19681
19699
|
});
|
|
19682
19700
|
return t;
|
|
19683
19701
|
}
|
|
19684
|
-
function
|
|
19702
|
+
function qS(e, t) {
|
|
19685
19703
|
return {
|
|
19686
19704
|
format: e,
|
|
19687
19705
|
sizeMB: t.sizeMB,
|
|
@@ -19690,14 +19708,14 @@ function US(e, t) {
|
|
|
19690
19708
|
...t.precision === void 0 ? {} : { precision: t.precision }
|
|
19691
19709
|
};
|
|
19692
19710
|
}
|
|
19693
|
-
function
|
|
19694
|
-
let t =
|
|
19711
|
+
function JS(e) {
|
|
19712
|
+
let t = HS.flatMap((t) => {
|
|
19695
19713
|
let n = e[t];
|
|
19696
|
-
return n === void 0 ? [] : [
|
|
19697
|
-
}), n = Object.entries(e).filter(([e]) => !
|
|
19714
|
+
return n === void 0 ? [] : [qS(t, n)];
|
|
19715
|
+
}), n = Object.entries(e).filter(([e]) => !HS.includes(e)).map(([e, t]) => qS(e, t));
|
|
19698
19716
|
return [...t, ...n];
|
|
19699
19717
|
}
|
|
19700
|
-
function
|
|
19718
|
+
function YS(e) {
|
|
19701
19719
|
let t = [];
|
|
19702
19720
|
for (let n of e.slots) for (let e of n.addons) for (let n of e.models) {
|
|
19703
19721
|
if (n.legacy === !0) continue;
|
|
@@ -19708,29 +19726,29 @@ function GS(e) {
|
|
|
19708
19726
|
stepName: e.name,
|
|
19709
19727
|
modelId: n.id,
|
|
19710
19728
|
name: n.name,
|
|
19711
|
-
formats:
|
|
19712
|
-
group:
|
|
19713
|
-
...
|
|
19729
|
+
formats: JS(n.formats),
|
|
19730
|
+
group: ZS(r, n.group),
|
|
19731
|
+
...XS(n.suppliesSteps)
|
|
19714
19732
|
});
|
|
19715
19733
|
}
|
|
19716
19734
|
return t;
|
|
19717
19735
|
}
|
|
19718
|
-
function
|
|
19736
|
+
function XS(e) {
|
|
19719
19737
|
return e !== void 0 && e.length > 0 ? { supplies: e } : {};
|
|
19720
19738
|
}
|
|
19721
|
-
function
|
|
19739
|
+
function ZS(e, t) {
|
|
19722
19740
|
if (t !== void 0) return e === "camstack" ? t : {
|
|
19723
19741
|
...t,
|
|
19724
19742
|
family: `${e}:${t.family}`
|
|
19725
19743
|
};
|
|
19726
19744
|
}
|
|
19727
|
-
function
|
|
19745
|
+
function QS(e, t) {
|
|
19728
19746
|
let n = /^(scrypted|frigate|custom):(.+)$/i.exec(e);
|
|
19729
19747
|
if (n === null) return t;
|
|
19730
19748
|
let r = n[2];
|
|
19731
19749
|
return r === "yolov9" ? "YOLOv9" : r === "yolo26" ? "YOLO26" : r === "ssdlite-mobiledet" ? "SSDLite MobileDet" : r === "yolonas" ? "YOLO-NAS" : r.toUpperCase();
|
|
19732
19750
|
}
|
|
19733
|
-
function
|
|
19751
|
+
function $S(e) {
|
|
19734
19752
|
let t = /* @__PURE__ */ new Set(), n = [];
|
|
19735
19753
|
for (let r of e) t.has(r.stepId) || (t.add(r.stepId), n.push({
|
|
19736
19754
|
id: r.stepId,
|
|
@@ -19738,16 +19756,16 @@ function YS(e) {
|
|
|
19738
19756
|
}));
|
|
19739
19757
|
return n;
|
|
19740
19758
|
}
|
|
19741
|
-
function
|
|
19759
|
+
function eC(e, t) {
|
|
19742
19760
|
return e.filter((e) => e.stepId === t);
|
|
19743
19761
|
}
|
|
19744
|
-
function
|
|
19762
|
+
function tC(e) {
|
|
19745
19763
|
return e.filter((e) => e.group !== void 0);
|
|
19746
19764
|
}
|
|
19747
|
-
function
|
|
19765
|
+
function nC(e) {
|
|
19748
19766
|
return e.filter((e) => e.group === void 0);
|
|
19749
19767
|
}
|
|
19750
|
-
function
|
|
19768
|
+
function rC(e) {
|
|
19751
19769
|
let t = {};
|
|
19752
19770
|
for (let n of e.formats) t[n.format] = { sizeMB: n.sizeMB };
|
|
19753
19771
|
return {
|
|
@@ -19757,29 +19775,29 @@ function $S(e) {
|
|
|
19757
19775
|
formats: t
|
|
19758
19776
|
};
|
|
19759
19777
|
}
|
|
19760
|
-
function
|
|
19778
|
+
function iC(e) {
|
|
19761
19779
|
return e <= 0 ? "—" : e >= 1e3 ? `${(e / 1e3).toFixed(2)} GB` : `${e.toFixed(e >= 100 ? 0 : 1)} MB`;
|
|
19762
19780
|
}
|
|
19763
19781
|
//#endregion
|
|
19764
19782
|
//#region src/ui/api.ts
|
|
19765
|
-
var
|
|
19766
|
-
function
|
|
19783
|
+
var aC = "model-studio";
|
|
19784
|
+
function oC(e) {
|
|
19767
19785
|
return e;
|
|
19768
19786
|
}
|
|
19769
|
-
function
|
|
19770
|
-
return
|
|
19787
|
+
function sC(e) {
|
|
19788
|
+
return oC(e).addons.custom;
|
|
19771
19789
|
}
|
|
19772
|
-
async function
|
|
19773
|
-
return
|
|
19774
|
-
addonId:
|
|
19790
|
+
async function cC(e, t, n) {
|
|
19791
|
+
return sC(e).mutate({
|
|
19792
|
+
addonId: aC,
|
|
19775
19793
|
action: t,
|
|
19776
19794
|
input: n
|
|
19777
19795
|
});
|
|
19778
19796
|
}
|
|
19779
|
-
function
|
|
19797
|
+
function lC(e) {
|
|
19780
19798
|
return typeof e == "object" && !!e && !Array.isArray(e);
|
|
19781
19799
|
}
|
|
19782
|
-
function
|
|
19800
|
+
function uC(e, t, n) {
|
|
19783
19801
|
let r = [];
|
|
19784
19802
|
for (let [i, a] of t.entries()) {
|
|
19785
19803
|
let t = e.safeParse(a);
|
|
@@ -19787,7 +19805,7 @@ function oC(e, t, n) {
|
|
|
19787
19805
|
}
|
|
19788
19806
|
return r;
|
|
19789
19807
|
}
|
|
19790
|
-
function
|
|
19808
|
+
function dC(e, t, n) {
|
|
19791
19809
|
let r = e.safeParse(t);
|
|
19792
19810
|
if (!r.success) {
|
|
19793
19811
|
let e = r.error.issues.map((e) => `${e.path.join(".") || "<root>"}: ${e.message}`).join("; ");
|
|
@@ -19795,34 +19813,34 @@ function sC(e, t, n) {
|
|
|
19795
19813
|
}
|
|
19796
19814
|
return r.data;
|
|
19797
19815
|
}
|
|
19798
|
-
function
|
|
19799
|
-
return Array.isArray(e) ?
|
|
19816
|
+
function fC(e) {
|
|
19817
|
+
return Array.isArray(e) ? uC(pe, e, "listCustomModels") : [];
|
|
19800
19818
|
}
|
|
19801
|
-
function
|
|
19802
|
-
if (!
|
|
19819
|
+
function pC(e) {
|
|
19820
|
+
if (!lC(e)) return {};
|
|
19803
19821
|
let t = {};
|
|
19804
19822
|
for (let [n, r] of Object.entries(e)) {
|
|
19805
|
-
if (!
|
|
19823
|
+
if (!lC(r)) {
|
|
19806
19824
|
console.warn(`[model-studio] listAvailability: dropping "${n}" — not an object`, r);
|
|
19807
19825
|
continue;
|
|
19808
19826
|
}
|
|
19809
19827
|
let e = {};
|
|
19810
19828
|
for (let [t, i] of Object.entries(r)) {
|
|
19811
|
-
let r =
|
|
19829
|
+
let r = kS.safeParse(i);
|
|
19812
19830
|
r.success ? e[t] = r.data : console.warn(`[model-studio] listAvailability: dropping ${n}/${t} — ${r.error.issues.map((e) => `${e.path.join(".") || "<root>"}: ${e.message}`).join("; ")}`);
|
|
19813
19831
|
}
|
|
19814
19832
|
t[n] = e;
|
|
19815
19833
|
}
|
|
19816
19834
|
return t;
|
|
19817
19835
|
}
|
|
19818
|
-
async function
|
|
19819
|
-
return
|
|
19836
|
+
async function mC(e) {
|
|
19837
|
+
return fC(await cC(e, "listCustomModels", void 0));
|
|
19820
19838
|
}
|
|
19821
|
-
async function
|
|
19822
|
-
return
|
|
19839
|
+
async function hC(e) {
|
|
19840
|
+
return pC(await cC(e, "listAvailability", void 0));
|
|
19823
19841
|
}
|
|
19824
|
-
function
|
|
19825
|
-
return Array.isArray(e) ? e.filter(
|
|
19842
|
+
function gC(e) {
|
|
19843
|
+
return Array.isArray(e) ? e.filter(lC).flatMap((e) => {
|
|
19826
19844
|
let t = e.format === "openvino" || e.format === "coreml" ? e.format : null;
|
|
19827
19845
|
return t === null ? [] : [{
|
|
19828
19846
|
format: t,
|
|
@@ -19832,104 +19850,104 @@ function fC(e) {
|
|
|
19832
19850
|
}];
|
|
19833
19851
|
}) : [];
|
|
19834
19852
|
}
|
|
19835
|
-
async function
|
|
19836
|
-
let n = await
|
|
19837
|
-
return
|
|
19853
|
+
async function _C(e, t) {
|
|
19854
|
+
let n = await cC(e, "registerCustomModel", t);
|
|
19855
|
+
return lC(n) ? { conversions: gC(n.conversions) } : { conversions: [] };
|
|
19838
19856
|
}
|
|
19839
|
-
async function
|
|
19840
|
-
let n = await
|
|
19841
|
-
if (!
|
|
19857
|
+
async function vC(e, t) {
|
|
19858
|
+
let n = await cC(e, "renameCustomModel", t);
|
|
19859
|
+
if (!lC(n)) throw Error("renameCustomModel: unexpected response shape");
|
|
19842
19860
|
return {
|
|
19843
|
-
modelId:
|
|
19844
|
-
name:
|
|
19861
|
+
modelId: AC(n, "modelId"),
|
|
19862
|
+
name: AC(n, "name")
|
|
19845
19863
|
};
|
|
19846
19864
|
}
|
|
19847
|
-
async function
|
|
19848
|
-
await
|
|
19865
|
+
async function yC(e, t) {
|
|
19866
|
+
await cC(e, "removeModelFromNode", t);
|
|
19849
19867
|
}
|
|
19850
|
-
async function
|
|
19851
|
-
let r = await
|
|
19868
|
+
async function bC(e, t, n) {
|
|
19869
|
+
let r = await cC(e, "ensureModelFormats", {
|
|
19852
19870
|
modelId: t,
|
|
19853
19871
|
formats: n
|
|
19854
19872
|
});
|
|
19855
|
-
return
|
|
19873
|
+
return lC(r) ? { conversions: gC(r.conversions) } : { conversions: [] };
|
|
19856
19874
|
}
|
|
19857
|
-
function
|
|
19858
|
-
return
|
|
19875
|
+
function xC(e) {
|
|
19876
|
+
return oC(e).pipelineExecutor.getSchema;
|
|
19859
19877
|
}
|
|
19860
|
-
function
|
|
19861
|
-
return
|
|
19878
|
+
function SC(e) {
|
|
19879
|
+
return lC(e) && Array.isArray(e.slots);
|
|
19862
19880
|
}
|
|
19863
|
-
async function
|
|
19864
|
-
let t = await
|
|
19865
|
-
if (!
|
|
19866
|
-
return
|
|
19881
|
+
async function CC(e) {
|
|
19882
|
+
let t = await xC(e).query();
|
|
19883
|
+
if (!SC(t)) throw Error("pipeline schema unavailable — cannot enumerate step ids");
|
|
19884
|
+
return GS(t);
|
|
19867
19885
|
}
|
|
19868
|
-
function
|
|
19869
|
-
return
|
|
19886
|
+
function wC(e) {
|
|
19887
|
+
return lC(e) && Array.isArray(e.slots);
|
|
19870
19888
|
}
|
|
19871
|
-
async function
|
|
19872
|
-
return (await
|
|
19889
|
+
async function TC(e, t) {
|
|
19890
|
+
return (await EC(e, t)).seeds;
|
|
19873
19891
|
}
|
|
19874
|
-
async function
|
|
19875
|
-
let n = await
|
|
19876
|
-
if (!
|
|
19892
|
+
async function EC(e, t) {
|
|
19893
|
+
let n = await xC(e).query(t === void 0 ? void 0 : { nodeId: t });
|
|
19894
|
+
if (!wC(n)) throw Error("pipeline schema unavailable — cannot list CamStack seeds");
|
|
19877
19895
|
return {
|
|
19878
|
-
seeds:
|
|
19879
|
-
stepCatalogs:
|
|
19896
|
+
seeds: YS(n),
|
|
19897
|
+
stepCatalogs: KS(n)
|
|
19880
19898
|
};
|
|
19881
19899
|
}
|
|
19882
|
-
async function
|
|
19883
|
-
await
|
|
19900
|
+
async function DC(e, t) {
|
|
19901
|
+
await oC(e).pipelineExecutor.downloadModel.mutate(t);
|
|
19884
19902
|
}
|
|
19885
|
-
async function
|
|
19886
|
-
let n = await
|
|
19887
|
-
if (!
|
|
19903
|
+
async function OC(e, t) {
|
|
19904
|
+
let n = await cC(e, "deleteSeedFromNode", t);
|
|
19905
|
+
if (!lC(n) || n.success !== !0) throw Error("deleteSeedFromNode: unexpected response");
|
|
19888
19906
|
}
|
|
19889
|
-
var
|
|
19890
|
-
function
|
|
19907
|
+
var kC = 512 * 1024;
|
|
19908
|
+
function AC(e, t) {
|
|
19891
19909
|
let n = e[t];
|
|
19892
19910
|
if (typeof n != "string") throw Error(`upload: missing "${t}" in response`);
|
|
19893
19911
|
return n;
|
|
19894
19912
|
}
|
|
19895
|
-
async function
|
|
19896
|
-
let r = await
|
|
19913
|
+
async function jC(e, t, n) {
|
|
19914
|
+
let r = await cC(e, "beginModelUpload", {
|
|
19897
19915
|
filename: t.name,
|
|
19898
19916
|
totalBytes: t.size
|
|
19899
19917
|
});
|
|
19900
|
-
if (!
|
|
19901
|
-
let i =
|
|
19918
|
+
if (!lC(r)) throw Error("beginModelUpload: unexpected response shape");
|
|
19919
|
+
let i = AC(r, "uploadId");
|
|
19902
19920
|
try {
|
|
19903
19921
|
let r = new Uint8Array(await t.arrayBuffer());
|
|
19904
|
-
for (let t = 0; t < r.length; t +=
|
|
19922
|
+
for (let t = 0; t < r.length; t += kC) await cC(e, "appendModelUpload", {
|
|
19905
19923
|
uploadId: i,
|
|
19906
|
-
chunkBase64:
|
|
19907
|
-
}), n?.(Math.min(t +
|
|
19908
|
-
let a = await
|
|
19909
|
-
if (!
|
|
19924
|
+
chunkBase64: MC(r.subarray(t, t + kC))
|
|
19925
|
+
}), n?.(Math.min(t + kC, r.length), r.length);
|
|
19926
|
+
let a = await cC(e, "commitModelUpload", { uploadId: i });
|
|
19927
|
+
if (!lC(a)) throw Error("commitModelUpload: unexpected response shape");
|
|
19910
19928
|
return {
|
|
19911
|
-
filename:
|
|
19929
|
+
filename: AC(a, "filename"),
|
|
19912
19930
|
bytes: typeof a.bytes == "number" ? a.bytes : t.size,
|
|
19913
|
-
sha256:
|
|
19931
|
+
sha256: AC(a, "sha256")
|
|
19914
19932
|
};
|
|
19915
19933
|
} catch (t) {
|
|
19916
|
-
throw await
|
|
19934
|
+
throw await cC(e, "abortModelUpload", { uploadId: i }).catch(() => void 0), t;
|
|
19917
19935
|
}
|
|
19918
19936
|
}
|
|
19919
|
-
function
|
|
19937
|
+
function MC(e) {
|
|
19920
19938
|
let t = "", n = 32768;
|
|
19921
19939
|
for (let r = 0; r < e.length; r += n) t += String.fromCharCode(...e.subarray(r, r + n));
|
|
19922
19940
|
return btoa(t);
|
|
19923
19941
|
}
|
|
19924
|
-
function
|
|
19925
|
-
return
|
|
19942
|
+
function NC(e) {
|
|
19943
|
+
return oC(e).live.onEvent;
|
|
19926
19944
|
}
|
|
19927
|
-
function
|
|
19928
|
-
let r =
|
|
19945
|
+
function PC(e, t, n) {
|
|
19946
|
+
let r = NC(e);
|
|
19929
19947
|
try {
|
|
19930
19948
|
return r.subscribe({ category: "model-convert.progress" }, {
|
|
19931
19949
|
onData: (e) => {
|
|
19932
|
-
let n =
|
|
19950
|
+
let n = lC(e.data) ? e.data : void 0;
|
|
19933
19951
|
n !== void 0 && t({
|
|
19934
19952
|
phase: typeof n.phase == "string" ? n.phase : "working",
|
|
19935
19953
|
pct: typeof n.pct == "number" ? n.pct : void 0,
|
|
@@ -19944,17 +19962,17 @@ function AC(e, t, n) {
|
|
|
19944
19962
|
return n?.(e), null;
|
|
19945
19963
|
}
|
|
19946
19964
|
}
|
|
19947
|
-
async function
|
|
19948
|
-
let n = await
|
|
19949
|
-
if (!
|
|
19965
|
+
async function FC(e, t) {
|
|
19966
|
+
let n = await cC(e, "importFrigateCatalogModel", t);
|
|
19967
|
+
if (!lC(n)) throw Error("importFrigateCatalogModel: unexpected response shape");
|
|
19950
19968
|
return {
|
|
19951
|
-
modelId:
|
|
19969
|
+
modelId: AC(n, "modelId"),
|
|
19952
19970
|
bytes: typeof n.bytes == "number" ? n.bytes : 0
|
|
19953
19971
|
};
|
|
19954
19972
|
}
|
|
19955
|
-
async function
|
|
19956
|
-
let t = await
|
|
19957
|
-
return
|
|
19973
|
+
async function IC(e) {
|
|
19974
|
+
let t = await cC(e, "frigatePlusStatus", void 0);
|
|
19975
|
+
return lC(t) ? {
|
|
19958
19976
|
configured: t.configured === !0,
|
|
19959
19977
|
keyFormatValid: t.keyFormatValid === !0
|
|
19960
19978
|
} : {
|
|
@@ -19962,9 +19980,9 @@ async function MC(e) {
|
|
|
19962
19980
|
keyFormatValid: !1
|
|
19963
19981
|
};
|
|
19964
19982
|
}
|
|
19965
|
-
async function
|
|
19966
|
-
let t = await
|
|
19967
|
-
return
|
|
19983
|
+
async function LC(e) {
|
|
19984
|
+
let t = await cC(e, "frigatePlusTest", void 0);
|
|
19985
|
+
return lC(t) ? {
|
|
19968
19986
|
ok: t.ok === !0,
|
|
19969
19987
|
...typeof t.error == "string" ? { error: t.error } : {}
|
|
19970
19988
|
} : {
|
|
@@ -19972,70 +19990,70 @@ async function NC(e) {
|
|
|
19972
19990
|
error: "unexpected response"
|
|
19973
19991
|
};
|
|
19974
19992
|
}
|
|
19975
|
-
async function
|
|
19976
|
-
let t = await
|
|
19977
|
-
return Array.isArray(t) ?
|
|
19993
|
+
async function RC(e) {
|
|
19994
|
+
let t = await cC(e, "frigatePlusListModels", void 0);
|
|
19995
|
+
return Array.isArray(t) ? uC(IS, t, "frigatePlusListModels") : [];
|
|
19978
19996
|
}
|
|
19979
|
-
async function
|
|
19980
|
-
let n = await
|
|
19981
|
-
if (!
|
|
19997
|
+
async function zC(e, t) {
|
|
19998
|
+
let n = await cC(e, "importFrigatePlusModel", t);
|
|
19999
|
+
if (!lC(n)) throw Error("importFrigatePlusModel: unexpected response shape");
|
|
19982
20000
|
return {
|
|
19983
|
-
modelId:
|
|
20001
|
+
modelId: AC(n, "modelId"),
|
|
19984
20002
|
bytes: typeof n.bytes == "number" ? n.bytes : 0,
|
|
19985
|
-
conversions:
|
|
20003
|
+
conversions: gC(n.conversions)
|
|
19986
20004
|
};
|
|
19987
20005
|
}
|
|
19988
|
-
async function
|
|
19989
|
-
await
|
|
19990
|
-
addonId:
|
|
20006
|
+
async function BC(e, t) {
|
|
20007
|
+
await oC(e).addonSettings.updateGlobalSettings.mutate({
|
|
20008
|
+
addonId: aC,
|
|
19991
20009
|
patch: { frigatePlusApiKey: t }
|
|
19992
20010
|
});
|
|
19993
20011
|
}
|
|
19994
|
-
function
|
|
19995
|
-
return
|
|
20012
|
+
function VC(e) {
|
|
20013
|
+
return lC(e) && Array.isArray(e.devices);
|
|
19996
20014
|
}
|
|
19997
|
-
async function
|
|
19998
|
-
let n = await
|
|
19999
|
-
return
|
|
20015
|
+
async function HC(e, t) {
|
|
20016
|
+
let n = await oC(e).pipelineOrchestrator.getNodeInferenceDevices.query({ nodeId: t });
|
|
20017
|
+
return VC(n) ? n.devices : [];
|
|
20000
20018
|
}
|
|
20001
|
-
async function
|
|
20002
|
-
let n = await
|
|
20003
|
-
return
|
|
20019
|
+
async function UC(e, t) {
|
|
20020
|
+
let n = await oC(e).pipelineExecutor.listLoadedEngines.query({ nodeId: t });
|
|
20021
|
+
return dC(Re.methods.listLoadedEngines.output, n, "listLoadedEngines");
|
|
20004
20022
|
}
|
|
20005
|
-
async function
|
|
20006
|
-
await
|
|
20023
|
+
async function WC(e, t) {
|
|
20024
|
+
await oC(e).pipelineOrchestrator.setAgentInferenceDevices.mutate(t);
|
|
20007
20025
|
}
|
|
20008
|
-
async function
|
|
20009
|
-
return ce(await
|
|
20026
|
+
async function GC(e) {
|
|
20027
|
+
return ce(await oC(e).addonSettings.getGlobalSettings.query({ addonId: "pipeline-orchestrator" }));
|
|
20010
20028
|
}
|
|
20011
|
-
async function
|
|
20012
|
-
await
|
|
20029
|
+
async function KC(e, t) {
|
|
20030
|
+
await oC(e).addonSettings.updateGlobalSettings.mutate({
|
|
20013
20031
|
addonId: "pipeline-orchestrator",
|
|
20014
20032
|
patch: t
|
|
20015
20033
|
});
|
|
20016
20034
|
}
|
|
20017
|
-
function
|
|
20018
|
-
return
|
|
20035
|
+
function qC(e) {
|
|
20036
|
+
return lC(e) && Array.isArray(e.slots);
|
|
20019
20037
|
}
|
|
20020
|
-
async function
|
|
20021
|
-
let r = await
|
|
20022
|
-
if (!
|
|
20038
|
+
async function JC(e, t, n) {
|
|
20039
|
+
let r = await xC(e).query(n === void 0 ? void 0 : { nodeId: n });
|
|
20040
|
+
if (!qC(r)) return null;
|
|
20023
20041
|
for (let e of r.slots) for (let n of e.addons) if (n.id === t) return n;
|
|
20024
20042
|
return null;
|
|
20025
20043
|
}
|
|
20026
|
-
async function
|
|
20027
|
-
let t = await
|
|
20028
|
-
return !
|
|
20044
|
+
async function YC(e) {
|
|
20045
|
+
let t = await cC(e, "tfliteSupport", {});
|
|
20046
|
+
return !lC(t) || !Array.isArray(t.nodes) ? [] : t.nodes.filter((e) => typeof e == "string");
|
|
20029
20047
|
}
|
|
20030
|
-
async function
|
|
20031
|
-
let t = await
|
|
20032
|
-
return !
|
|
20048
|
+
async function XC(e) {
|
|
20049
|
+
let t = await cC(e, "listScryptedCatalog", void 0);
|
|
20050
|
+
return !lC(t) || !Array.isArray(t.entries) || !Array.isArray(t.drift) ? {
|
|
20033
20051
|
entries: [],
|
|
20034
20052
|
drift: []
|
|
20035
20053
|
} : {
|
|
20036
|
-
entries:
|
|
20037
|
-
drift: t.drift.filter(
|
|
20038
|
-
let t =
|
|
20054
|
+
entries: uC(NS, t.entries, "listScryptedCatalog.entries"),
|
|
20055
|
+
drift: t.drift.filter(lC).map((e) => {
|
|
20056
|
+
let t = DS({
|
|
20039
20057
|
manifestId: typeof e.manifestId == "string" ? e.manifestId : "",
|
|
20040
20058
|
status: typeof e.status == "string" ? e.status : "",
|
|
20041
20059
|
...typeof e.details == "string" ? { details: e.details } : {}
|
|
@@ -20048,8 +20066,8 @@ async function KC(e) {
|
|
|
20048
20066
|
})
|
|
20049
20067
|
};
|
|
20050
20068
|
}
|
|
20051
|
-
async function
|
|
20052
|
-
return
|
|
20069
|
+
async function ZC(e, t) {
|
|
20070
|
+
return dC(pe, await cC(e, "importScryptedCatalogModel", {
|
|
20053
20071
|
manifestId: t.manifestId,
|
|
20054
20072
|
...t.name === void 0 ? {} : { name: t.name },
|
|
20055
20073
|
...t.targetNodeId === void 0 ? {} : { targetNodeId: t.targetNodeId }
|
|
@@ -20057,7 +20075,7 @@ async function qC(e, t) {
|
|
|
20057
20075
|
}
|
|
20058
20076
|
//#endregion
|
|
20059
20077
|
//#region src/components/NodeSelector.tsx
|
|
20060
|
-
function
|
|
20078
|
+
function QC({ selectedNodeId: e, onSelect: t }) {
|
|
20061
20079
|
return /* @__PURE__ */ z(Xx, {
|
|
20062
20080
|
selectedNodeId: e,
|
|
20063
20081
|
onSelect: t,
|
|
@@ -20067,7 +20085,7 @@ function JC({ selectedNodeId: e, onSelect: t }) {
|
|
|
20067
20085
|
}
|
|
20068
20086
|
//#endregion
|
|
20069
20087
|
//#region src/components/Form.tsx
|
|
20070
|
-
function
|
|
20088
|
+
function $C({ label: e, children: t }) {
|
|
20071
20089
|
return /* @__PURE__ */ B("label", {
|
|
20072
20090
|
className: "space-y-1 block",
|
|
20073
20091
|
children: [/* @__PURE__ */ z("span", {
|
|
@@ -20076,8 +20094,8 @@ function YC({ label: e, children: t }) {
|
|
|
20076
20094
|
}), t]
|
|
20077
20095
|
});
|
|
20078
20096
|
}
|
|
20079
|
-
function
|
|
20080
|
-
return /* @__PURE__ */ z(
|
|
20097
|
+
function ew({ label: e, value: t, onChange: n, placeholder: r }) {
|
|
20098
|
+
return /* @__PURE__ */ z($C, {
|
|
20081
20099
|
label: e,
|
|
20082
20100
|
children: /* @__PURE__ */ z("input", {
|
|
20083
20101
|
type: "text",
|
|
@@ -20088,8 +20106,8 @@ function XC({ label: e, value: t, onChange: n, placeholder: r }) {
|
|
|
20088
20106
|
})
|
|
20089
20107
|
});
|
|
20090
20108
|
}
|
|
20091
|
-
function
|
|
20092
|
-
return /* @__PURE__ */ z(
|
|
20109
|
+
function tw({ label: e, value: t, onChange: n, min: r, max: i, step: a }) {
|
|
20110
|
+
return /* @__PURE__ */ z($C, {
|
|
20093
20111
|
label: e,
|
|
20094
20112
|
children: /* @__PURE__ */ z("input", {
|
|
20095
20113
|
type: "number",
|
|
@@ -20107,14 +20125,14 @@ function ZC({ label: e, value: t, onChange: n, min: r, max: i, step: a }) {
|
|
|
20107
20125
|
}
|
|
20108
20126
|
//#endregion
|
|
20109
20127
|
//#region src/components/ImportProgressModal.tsx
|
|
20110
|
-
var
|
|
20128
|
+
var nw = {
|
|
20111
20129
|
pending: "bg-surface-hover",
|
|
20112
20130
|
active: "bg-warning animate-pulse",
|
|
20113
20131
|
done: "bg-success",
|
|
20114
20132
|
error: "bg-danger",
|
|
20115
20133
|
skipped: "bg-surface-hover"
|
|
20116
20134
|
};
|
|
20117
|
-
function
|
|
20135
|
+
function rw({ title: e, steps: t, progress: n, logs: r, status: i, errorMessage: a, onClose: o }) {
|
|
20118
20136
|
return /* @__PURE__ */ z("div", {
|
|
20119
20137
|
className: "fixed inset-0 z-50 flex items-center justify-center bg-black/60 p-4",
|
|
20120
20138
|
role: "dialog",
|
|
@@ -20144,7 +20162,7 @@ function $C({ title: e, steps: t, progress: n, logs: r, status: i, errorMessage:
|
|
|
20144
20162
|
className: "space-y-1.5",
|
|
20145
20163
|
children: t.map((e) => /* @__PURE__ */ B("li", {
|
|
20146
20164
|
className: "flex items-center gap-2 text-xs",
|
|
20147
|
-
children: [/* @__PURE__ */ z("span", { className: `w-1.5 h-1.5 rounded-full shrink-0 ${
|
|
20165
|
+
children: [/* @__PURE__ */ z("span", { className: `w-1.5 h-1.5 rounded-full shrink-0 ${nw[e.status]}` }), /* @__PURE__ */ B("span", {
|
|
20148
20166
|
className: e.status === "active" ? "text-foreground font-medium" : e.status === "pending" || e.status === "skipped" ? "text-foreground-subtle" : "text-foreground",
|
|
20149
20167
|
children: [e.label, e.status === "skipped" ? " (skipped)" : ""]
|
|
20150
20168
|
})]
|
|
@@ -20189,7 +20207,7 @@ function $C({ title: e, steps: t, progress: n, logs: r, status: i, errorMessage:
|
|
|
20189
20207
|
})
|
|
20190
20208
|
});
|
|
20191
20209
|
}
|
|
20192
|
-
function
|
|
20210
|
+
function iw(e, t, n = 400) {
|
|
20193
20211
|
let r = t.log !== void 0 && t.log.length > 0 ? t.log : t.phase === "log" ? t.detail ?? "" : `[${t.phase}]${t.detail === void 0 ? "" : ` ${t.detail}`}${t.pct === void 0 ? "" : ` ${t.pct.toFixed(0)}%`}`;
|
|
20194
20212
|
if (r.trim().length === 0) return e;
|
|
20195
20213
|
let i = [...e, r];
|
|
@@ -20197,13 +20215,13 @@ function ew(e, t, n = 400) {
|
|
|
20197
20215
|
}
|
|
20198
20216
|
//#endregion
|
|
20199
20217
|
//#region src/ui/operation-sessions.ts
|
|
20200
|
-
var
|
|
20201
|
-
function
|
|
20202
|
-
for (let e of
|
|
20218
|
+
var aw = 80, ow = [], sw = /* @__PURE__ */ new Set();
|
|
20219
|
+
function cw() {
|
|
20220
|
+
for (let e of sw) e();
|
|
20203
20221
|
}
|
|
20204
|
-
function
|
|
20222
|
+
function lw(e) {
|
|
20205
20223
|
let t = `op-${Date.now()}-${Math.random().toString(36).slice(2, 8)}`;
|
|
20206
|
-
return
|
|
20224
|
+
return ow = [{
|
|
20207
20225
|
id: t,
|
|
20208
20226
|
kind: e.kind,
|
|
20209
20227
|
title: e.title,
|
|
@@ -20213,40 +20231,40 @@ function aw(e) {
|
|
|
20213
20231
|
status: "running",
|
|
20214
20232
|
logs: e.logs ?? [],
|
|
20215
20233
|
startedAt: Date.now()
|
|
20216
|
-
}, ...
|
|
20234
|
+
}, ...ow].slice(0, aw), cw(), t;
|
|
20217
20235
|
}
|
|
20218
|
-
function
|
|
20219
|
-
|
|
20236
|
+
function uw(e, t) {
|
|
20237
|
+
ow = ow.map((n) => n.id === e ? {
|
|
20220
20238
|
...n,
|
|
20221
20239
|
logs: [...n.logs, t]
|
|
20222
|
-
} : n),
|
|
20240
|
+
} : n), cw();
|
|
20223
20241
|
}
|
|
20224
|
-
function
|
|
20225
|
-
|
|
20242
|
+
function dw(e, t) {
|
|
20243
|
+
ow = ow.map((n) => n.id === e ? {
|
|
20226
20244
|
...n,
|
|
20227
20245
|
status: t.status,
|
|
20228
20246
|
...t.errorMessage === void 0 ? {} : { errorMessage: t.errorMessage },
|
|
20229
20247
|
finishedAt: Date.now()
|
|
20230
|
-
} : n),
|
|
20248
|
+
} : n), cw();
|
|
20231
20249
|
}
|
|
20232
|
-
function
|
|
20233
|
-
|
|
20250
|
+
function fw(e, t) {
|
|
20251
|
+
ow = ow.map((n) => n.id === e ? {
|
|
20234
20252
|
...n,
|
|
20235
20253
|
logs: t
|
|
20236
|
-
} : n),
|
|
20254
|
+
} : n), cw();
|
|
20237
20255
|
}
|
|
20238
20256
|
//#endregion
|
|
20239
20257
|
//#region src/components/OperationModalProvider.tsx
|
|
20240
20258
|
t();
|
|
20241
|
-
var
|
|
20242
|
-
function
|
|
20243
|
-
let e = c(
|
|
20259
|
+
var pw = p(null);
|
|
20260
|
+
function mw() {
|
|
20261
|
+
let e = c(pw);
|
|
20244
20262
|
if (e === null) throw Error("useOperationModal: missing OperationModalProvider");
|
|
20245
20263
|
return e;
|
|
20246
20264
|
}
|
|
20247
|
-
function
|
|
20265
|
+
function hw({ children: e }) {
|
|
20248
20266
|
let [t, r] = a(null), i = n((e) => {
|
|
20249
|
-
let t = e.initialLog === void 0 ? [] : [e.initialLog], n =
|
|
20267
|
+
let t = e.initialLog === void 0 ? [] : [e.initialLog], n = lw({
|
|
20250
20268
|
kind: e.kind,
|
|
20251
20269
|
title: e.title,
|
|
20252
20270
|
...e.modelId === void 0 ? {} : { modelId: e.modelId },
|
|
@@ -20268,27 +20286,27 @@ function dw({ children: e }) {
|
|
|
20268
20286
|
steps: t([...n.steps])
|
|
20269
20287
|
});
|
|
20270
20288
|
}, []), s = n((e, t) => {
|
|
20271
|
-
|
|
20289
|
+
uw(e, t), r((n) => n === null || n.sessionId !== e ? n : {
|
|
20272
20290
|
...n,
|
|
20273
20291
|
logs: [...n.logs, t]
|
|
20274
20292
|
});
|
|
20275
20293
|
}, []), c = n((e, t) => {
|
|
20276
20294
|
r((n) => {
|
|
20277
20295
|
if (n === null || n.sessionId !== e) return n;
|
|
20278
|
-
let r =
|
|
20279
|
-
return
|
|
20296
|
+
let r = iw(n.logs, t);
|
|
20297
|
+
return fw(e, r), {
|
|
20280
20298
|
...n,
|
|
20281
20299
|
progress: t.phase === "log" ? n.progress : t,
|
|
20282
20300
|
logs: r
|
|
20283
20301
|
};
|
|
20284
20302
|
});
|
|
20285
20303
|
}, []), u = n((e) => {
|
|
20286
|
-
|
|
20304
|
+
dw(e, { status: "success" }), r((t) => t !== null && t.sessionId === e ? {
|
|
20287
20305
|
...t,
|
|
20288
20306
|
status: "success"
|
|
20289
20307
|
} : t);
|
|
20290
20308
|
}, []), d = n((e, t) => {
|
|
20291
|
-
|
|
20309
|
+
dw(e, {
|
|
20292
20310
|
status: "error",
|
|
20293
20311
|
errorMessage: t
|
|
20294
20312
|
}), r((n) => n !== null && n.sessionId === e ? {
|
|
@@ -20333,9 +20351,9 @@ function dw({ children: e }) {
|
|
|
20333
20351
|
d,
|
|
20334
20352
|
f
|
|
20335
20353
|
]);
|
|
20336
|
-
return /* @__PURE__ */ B(
|
|
20354
|
+
return /* @__PURE__ */ B(pw.Provider, {
|
|
20337
20355
|
value: p,
|
|
20338
|
-
children: [e, t !== null && /* @__PURE__ */ z(
|
|
20356
|
+
children: [e, t !== null && /* @__PURE__ */ z(rw, {
|
|
20339
20357
|
title: t.title,
|
|
20340
20358
|
steps: t.steps,
|
|
20341
20359
|
progress: t.progress,
|
|
@@ -20348,22 +20366,22 @@ function dw({ children: e }) {
|
|
|
20348
20366
|
}
|
|
20349
20367
|
//#endregion
|
|
20350
20368
|
//#region src/scrypted/scrypted-catalog-selectors.ts
|
|
20351
|
-
function
|
|
20369
|
+
function gw(e) {
|
|
20352
20370
|
return typeof e == "string" ? e.includes("x") || e.includes("×") ? e.replace("×", "x") : e : `${e.width}x${e.height}`;
|
|
20353
20371
|
}
|
|
20354
|
-
function
|
|
20372
|
+
function _w(e, t) {
|
|
20355
20373
|
return e.find((e) => e.manifestId === t)?.status;
|
|
20356
20374
|
}
|
|
20357
|
-
function
|
|
20375
|
+
function vw(e) {
|
|
20358
20376
|
if (e.imported) return "Already imported on this hub.";
|
|
20359
20377
|
if (e.registryKnown, e.availabilityKnown, e.driftStatus !== "ok") return e.driftStatus === "missing" ? "Import blocked: remote artifact is missing from the verified tree." : e.driftStatus === "size-changed" ? "Import blocked: remote artifact size no longer matches the verified manifesto." : e.driftStatus === "unavailable" ? "Import blocked: catalog drift is unavailable and cannot be verified." : "Import blocked: catalog drift is unknown and cannot be verified.";
|
|
20360
20378
|
}
|
|
20361
|
-
function
|
|
20379
|
+
function yw(e, t) {
|
|
20362
20380
|
return "has" in e ? e.has(t) : e.includes(t);
|
|
20363
20381
|
}
|
|
20364
20382
|
//#endregion
|
|
20365
20383
|
//#region src/scrypted/scrypted-canonical.ts
|
|
20366
|
-
var
|
|
20384
|
+
var bw = [
|
|
20367
20385
|
"edgetpu",
|
|
20368
20386
|
"int8",
|
|
20369
20387
|
"full_integer_quant",
|
|
@@ -20371,99 +20389,99 @@ var gw = [
|
|
|
20371
20389
|
"float16",
|
|
20372
20390
|
"float32"
|
|
20373
20391
|
];
|
|
20374
|
-
function
|
|
20392
|
+
function xw(e) {
|
|
20375
20393
|
return /^yolov9([tsmc])$/i.exec(e)?.[1]?.toLowerCase() ?? e;
|
|
20376
20394
|
}
|
|
20377
|
-
function
|
|
20395
|
+
function Sw(e) {
|
|
20378
20396
|
let t = e.toLowerCase();
|
|
20379
20397
|
return t === "int8" || t === "uint8" || t === "integer_quant" || t === "full_integer_quant" || t === "edgetpu";
|
|
20380
20398
|
}
|
|
20381
|
-
function
|
|
20382
|
-
let t =
|
|
20383
|
-
return
|
|
20399
|
+
function Cw(e) {
|
|
20400
|
+
let t = xw(e.family), n = e.inputSize.width === e.inputSize.height ? e.inputSize.width : Math.max(e.inputSize.width, e.inputSize.height), r = `scrypted-yolov9${t}-${e.variant}`;
|
|
20401
|
+
return Sw(e.precision) && (r += "-int8"), r += `-${n}`, r;
|
|
20384
20402
|
}
|
|
20385
|
-
function
|
|
20386
|
-
let t =
|
|
20403
|
+
function ww(e) {
|
|
20404
|
+
let t = TS.filter((t) => t.format === "tflite" && Cw(t) === e);
|
|
20387
20405
|
if (t.length !== 0) return t.toSorted((e, t) => {
|
|
20388
|
-
let n =
|
|
20406
|
+
let n = bw.indexOf(e.precision.toLowerCase()), r = bw.indexOf(t.precision.toLowerCase());
|
|
20389
20407
|
return (n === -1 ? 99 : n) - (r === -1 ? 99 : r);
|
|
20390
20408
|
})[0];
|
|
20391
20409
|
}
|
|
20392
|
-
function
|
|
20393
|
-
if (t === "tflite") return
|
|
20394
|
-
let n =
|
|
20410
|
+
function Tw(e, t) {
|
|
20411
|
+
if (t === "tflite") return ww(e)?.id;
|
|
20412
|
+
let n = TS.filter((n) => n.format === t && Cw(n) === e);
|
|
20395
20413
|
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;
|
|
20396
20414
|
}
|
|
20397
20415
|
//#endregion
|
|
20398
20416
|
//#region src/scrypted/scrypted-as-variant-sources.ts
|
|
20399
|
-
var
|
|
20417
|
+
var Ew = new Set([
|
|
20400
20418
|
"onnx",
|
|
20401
20419
|
"openvino",
|
|
20402
20420
|
"coreml",
|
|
20403
20421
|
"tflite",
|
|
20404
20422
|
"pt"
|
|
20405
|
-
]),
|
|
20423
|
+
]), Dw = {
|
|
20406
20424
|
t: "Tiny",
|
|
20407
20425
|
s: "Small",
|
|
20408
20426
|
m: "Medium",
|
|
20409
20427
|
c: "Compact"
|
|
20410
20428
|
};
|
|
20411
|
-
function
|
|
20412
|
-
return
|
|
20429
|
+
function Ow(e) {
|
|
20430
|
+
return Ew.has(e);
|
|
20413
20431
|
}
|
|
20414
|
-
function
|
|
20432
|
+
function kw(e) {
|
|
20415
20433
|
return /^yolov9([tsmc])$/i.exec(e)?.[1]?.toLowerCase() ?? e;
|
|
20416
20434
|
}
|
|
20417
|
-
function
|
|
20435
|
+
function Aw(e) {
|
|
20418
20436
|
let t = e.toLowerCase();
|
|
20419
20437
|
return t === "int8" || t === "uint8" || t === "integer_quant" || t === "full_integer_quant" || t === "edgetpu" ? "int8" : "fp32";
|
|
20420
20438
|
}
|
|
20421
|
-
function
|
|
20422
|
-
let t =
|
|
20439
|
+
function jw(e) {
|
|
20440
|
+
let t = gw(e.inputSize), n = /^(\d+)x(\d+)$/i.exec(t);
|
|
20423
20441
|
if (!n) return;
|
|
20424
20442
|
let r = Number(n[1]), i = Number(n[2]);
|
|
20425
20443
|
if (!(!Number.isFinite(r) || !Number.isFinite(i))) return r === i ? r : Math.max(r, i);
|
|
20426
20444
|
}
|
|
20427
|
-
function
|
|
20445
|
+
function Mw(e) {
|
|
20428
20446
|
let t = e.model.formats[e.format]?.sizeMB;
|
|
20429
20447
|
return typeof t == "number" && t > 0 ? t : e.files.reduce((e, t) => e + t.size, 0) / 1e6;
|
|
20430
20448
|
}
|
|
20431
|
-
function
|
|
20432
|
-
let n =
|
|
20449
|
+
function Nw(e, t) {
|
|
20450
|
+
let n = Dw[e] ?? e.toUpperCase();
|
|
20433
20451
|
return t === "int8" ? `YOLOv9 ${n} · Int8` : `YOLOv9 ${n}`;
|
|
20434
20452
|
}
|
|
20435
|
-
function
|
|
20453
|
+
function Pw(e) {
|
|
20436
20454
|
return [
|
|
20437
20455
|
"yolov9",
|
|
20438
|
-
|
|
20456
|
+
kw(e.family),
|
|
20439
20457
|
e.variant,
|
|
20440
|
-
|
|
20441
|
-
String(
|
|
20458
|
+
Aw(e.precision),
|
|
20459
|
+
String(jw(e) ?? "")
|
|
20442
20460
|
].join("|");
|
|
20443
20461
|
}
|
|
20444
|
-
function
|
|
20445
|
-
return
|
|
20462
|
+
function Fw(e) {
|
|
20463
|
+
return Cw(e);
|
|
20446
20464
|
}
|
|
20447
|
-
function
|
|
20465
|
+
function Iw(e) {
|
|
20448
20466
|
let t = /* @__PURE__ */ new Map();
|
|
20449
20467
|
for (let n of e) {
|
|
20450
|
-
if (!
|
|
20451
|
-
let e =
|
|
20468
|
+
if (!Ow(n.format)) continue;
|
|
20469
|
+
let e = kw(n.family), r = Aw(n.precision), i = Pw(n), a = Mw(n), o = t.get(i);
|
|
20452
20470
|
if (o) {
|
|
20453
20471
|
let e = o.formats[n.format];
|
|
20454
20472
|
(e === void 0 || a < e.sizeMB) && (o.formats[n.format] = { sizeMB: a });
|
|
20455
20473
|
continue;
|
|
20456
20474
|
}
|
|
20457
20475
|
t.set(i, {
|
|
20458
|
-
sourceId:
|
|
20459
|
-
name:
|
|
20476
|
+
sourceId: Fw(n),
|
|
20477
|
+
name: Nw(e, r),
|
|
20460
20478
|
formats: { [n.format]: { sizeMB: a } },
|
|
20461
20479
|
group: {
|
|
20462
20480
|
family: "yolov9",
|
|
20463
20481
|
tier: e,
|
|
20464
20482
|
precision: r,
|
|
20465
20483
|
...n.variant === "relu_test" ? { optimization: "test" } : {},
|
|
20466
|
-
...
|
|
20484
|
+
...jw(n) === void 0 ? {} : { resolution: jw(n) }
|
|
20467
20485
|
}
|
|
20468
20486
|
});
|
|
20469
20487
|
}
|
|
@@ -20476,18 +20494,18 @@ function Mw(e) {
|
|
|
20476
20494
|
}
|
|
20477
20495
|
//#endregion
|
|
20478
20496
|
//#region src/components/register-shared.tsx
|
|
20479
|
-
var
|
|
20480
|
-
function
|
|
20497
|
+
var Lw = "w-full px-3 py-1.5 text-xs rounded-md border border-border bg-surface text-foreground focus:outline-none focus:border-primary/50 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-primary motion-reduce:transition-none disabled:opacity-50";
|
|
20498
|
+
function Rw(e) {
|
|
20481
20499
|
return e.count === void 0 ? e.label : `${e.label} (${e.count})`;
|
|
20482
20500
|
}
|
|
20483
|
-
function
|
|
20484
|
-
return n.length === 0 ? null : o && n.length === 1 ? c ? /* @__PURE__ */ z(it, { children: c }) : null : /* @__PURE__ */ B(
|
|
20501
|
+
function zw({ label: e, value: t, options: n, onChange: r, disabled: i = !1, placeholder: a = "Select…", compactWhenSingle: o = !1, formatOption: s = Rw, hint: c }) {
|
|
20502
|
+
return n.length === 0 ? null : o && n.length === 1 ? c ? /* @__PURE__ */ z(it, { children: c }) : null : /* @__PURE__ */ B($C, {
|
|
20485
20503
|
label: e,
|
|
20486
20504
|
children: [/* @__PURE__ */ B("select", {
|
|
20487
20505
|
value: t,
|
|
20488
20506
|
onChange: (e) => r(e.target.value),
|
|
20489
20507
|
disabled: i || n.length === 0,
|
|
20490
|
-
className:
|
|
20508
|
+
className: Lw,
|
|
20491
20509
|
children: [t === "" && /* @__PURE__ */ z("option", {
|
|
20492
20510
|
value: "",
|
|
20493
20511
|
disabled: !0,
|
|
@@ -20502,7 +20520,7 @@ function Fw({ label: e, value: t, options: n, onChange: r, disabled: i = !1, pla
|
|
|
20502
20520
|
//#endregion
|
|
20503
20521
|
//#region src/components/SourceModelBrowser.tsx
|
|
20504
20522
|
t();
|
|
20505
|
-
function
|
|
20523
|
+
function Bw({ preSelectors: e = [], catalog: t, value: n, onChange: r, title: i, subtitle: o, actionRow: s, renderActionRow: c, footer: l, emptyMessage: u = "No models match the current filters.", testId: d = "source-model-browser" }) {
|
|
20506
20524
|
let f = Je(t), [p, m] = a({});
|
|
20507
20525
|
return /* @__PURE__ */ B("div", {
|
|
20508
20526
|
className: "space-y-3",
|
|
@@ -20511,7 +20529,7 @@ function Iw({ preSelectors: e = [], catalog: t, value: n, onChange: r, title: i,
|
|
|
20511
20529
|
e.length > 0 && /* @__PURE__ */ z("div", {
|
|
20512
20530
|
className: "space-y-3",
|
|
20513
20531
|
"data-testid": "source-pre-selectors",
|
|
20514
|
-
children: e.map((e) => /* @__PURE__ */ z(
|
|
20532
|
+
children: e.map((e) => /* @__PURE__ */ z(zw, {
|
|
20515
20533
|
label: e.label,
|
|
20516
20534
|
value: e.value,
|
|
20517
20535
|
options: e.options,
|
|
@@ -20562,22 +20580,22 @@ function Iw({ preSelectors: e = [], catalog: t, value: n, onChange: r, title: i,
|
|
|
20562
20580
|
}
|
|
20563
20581
|
//#endregion
|
|
20564
20582
|
//#region src/components/FormatImportRow.tsx
|
|
20565
|
-
var
|
|
20583
|
+
var Vw = {
|
|
20566
20584
|
onnx: "ONNX",
|
|
20567
20585
|
openvino: "OpenVINO",
|
|
20568
20586
|
coreml: "CoreML",
|
|
20569
20587
|
tflite: "TFLite",
|
|
20570
20588
|
pt: "PyTorch"
|
|
20571
20589
|
};
|
|
20572
|
-
function
|
|
20573
|
-
let c = (e) => n === void 0 ? t === null ? !1 :
|
|
20590
|
+
function Hw({ entries: e, registeredIds: t, isImported: n, presence: r = [], busyId: i, onImport: a, onDistributeAll: o, distributeBusy: s = !1 }) {
|
|
20591
|
+
let c = (e) => n === void 0 ? t === null ? !1 : yw(t, e.id) : n(e), l = t !== null && e.some((e) => c(e));
|
|
20574
20592
|
return /* @__PURE__ */ B("div", {
|
|
20575
20593
|
className: "space-y-2 pt-1",
|
|
20576
20594
|
children: [
|
|
20577
20595
|
/* @__PURE__ */ z("div", {
|
|
20578
20596
|
className: "flex flex-wrap gap-2",
|
|
20579
20597
|
children: e.map((e) => {
|
|
20580
|
-
let n = c(e), r =
|
|
20598
|
+
let n = c(e), r = vw({
|
|
20581
20599
|
driftStatus: e.driftStatus ?? "ok",
|
|
20582
20600
|
imported: n,
|
|
20583
20601
|
registryKnown: t !== null
|
|
@@ -20587,11 +20605,11 @@ function Rw({ entries: e, registeredIds: t, isImported: n, presence: r = [], bus
|
|
|
20587
20605
|
children: [
|
|
20588
20606
|
/* @__PURE__ */ z("span", {
|
|
20589
20607
|
className: "font-mono text-foreground",
|
|
20590
|
-
children:
|
|
20608
|
+
children: Vw[e.format] ?? e.format
|
|
20591
20609
|
}),
|
|
20592
20610
|
typeof e.sizeMB == "number" && /* @__PURE__ */ z("span", {
|
|
20593
20611
|
className: "text-foreground-subtle",
|
|
20594
|
-
children:
|
|
20612
|
+
children: iC(e.sizeMB)
|
|
20595
20613
|
}),
|
|
20596
20614
|
n ? /* @__PURE__ */ z("span", {
|
|
20597
20615
|
className: "text-success",
|
|
@@ -20638,11 +20656,11 @@ function Rw({ entries: e, registeredIds: t, isImported: n, presence: r = [], bus
|
|
|
20638
20656
|
}
|
|
20639
20657
|
//#endregion
|
|
20640
20658
|
//#region src/components/DisplayNameField.tsx
|
|
20641
|
-
function
|
|
20642
|
-
let r =
|
|
20659
|
+
function Uw({ value: e, onChange: t, defaultName: n }) {
|
|
20660
|
+
let r = RS(e);
|
|
20643
20661
|
return /* @__PURE__ */ B("div", {
|
|
20644
20662
|
className: "space-y-1",
|
|
20645
|
-
children: [/* @__PURE__ */ z(
|
|
20663
|
+
children: [/* @__PURE__ */ z($C, {
|
|
20646
20664
|
label: "Display name (optional)",
|
|
20647
20665
|
children: /* @__PURE__ */ z("input", {
|
|
20648
20666
|
type: "text",
|
|
@@ -20658,40 +20676,40 @@ function zw({ value: e, onChange: t, defaultName: n }) {
|
|
|
20658
20676
|
})]
|
|
20659
20677
|
});
|
|
20660
20678
|
}
|
|
20661
|
-
function
|
|
20662
|
-
let t =
|
|
20679
|
+
function Ww(e) {
|
|
20680
|
+
let t = RS(e);
|
|
20663
20681
|
return t.kind === "set" ? t.name : void 0;
|
|
20664
20682
|
}
|
|
20665
|
-
function
|
|
20666
|
-
return
|
|
20683
|
+
function Gw(e) {
|
|
20684
|
+
return RS(e).kind === "invalid";
|
|
20667
20685
|
}
|
|
20668
20686
|
//#endregion
|
|
20669
20687
|
//#region src/tabs/ScryptedTab.tsx
|
|
20670
20688
|
t();
|
|
20671
|
-
var
|
|
20689
|
+
var Kw = [
|
|
20672
20690
|
"onnx",
|
|
20673
20691
|
"openvino",
|
|
20674
20692
|
"coreml",
|
|
20675
20693
|
"tflite"
|
|
20676
|
-
],
|
|
20694
|
+
], qw = [{
|
|
20677
20695
|
value: "relu",
|
|
20678
20696
|
label: "Standard"
|
|
20679
20697
|
}, {
|
|
20680
20698
|
value: "relu_test",
|
|
20681
20699
|
label: "Test"
|
|
20682
20700
|
}];
|
|
20683
|
-
function
|
|
20684
|
-
let i =
|
|
20701
|
+
function Jw({ trpc: e, landNodeId: t, onImported: r }) {
|
|
20702
|
+
let i = mw(), [s, c] = a(null), [u, d] = a([]), [f, p] = a(null), [h, g] = a({}), [_, v] = a({}), [y, b] = a(null), [x, S] = a(null), [C, w] = a(null), [T, E] = a("relu"), [D, O] = a(""), [k, ee] = a(""), [A, te] = a(null), [j, ne] = a(""), re = o(0), M = o(!1), ie = t !== void 0 && t.length > 0 ? t : j.length > 0 ? j : void 0, ae = n(async () => {
|
|
20685
20703
|
let t = ++re.current;
|
|
20686
20704
|
b(null);
|
|
20687
20705
|
try {
|
|
20688
|
-
let n =
|
|
20706
|
+
let n = XC(e), r = mC(e).then((e) => ({
|
|
20689
20707
|
ok: !0,
|
|
20690
20708
|
value: e
|
|
20691
|
-
}), () => ({ ok: !1 })), i =
|
|
20709
|
+
}), () => ({ ok: !1 })), i = hC(e).then((e) => ({
|
|
20692
20710
|
ok: !0,
|
|
20693
20711
|
value: e
|
|
20694
|
-
}), () => ({ ok: !1 })), a =
|
|
20712
|
+
}), () => ({ ok: !1 })), a = YC(e).then((e) => e, () => []), [o, s, l, u] = await Promise.all([
|
|
20695
20713
|
n,
|
|
20696
20714
|
r,
|
|
20697
20715
|
i,
|
|
@@ -20701,12 +20719,12 @@ function Ww({ trpc: e, landNodeId: t, onImported: r }) {
|
|
|
20701
20719
|
if (c(o.entries), d(o.drift), te(u), u.length > 0 && ne((e) => e.length > 0 && u.includes(e) ? e : u[0]), s.ok) {
|
|
20702
20720
|
p(new Set(s.value.map((e) => e.entry.id)));
|
|
20703
20721
|
let e = {};
|
|
20704
|
-
for (let t of s.value) e[t.entry.id] =
|
|
20722
|
+
for (let t of s.value) e[t.entry.id] = US(t.entry);
|
|
20705
20723
|
g(e);
|
|
20706
20724
|
} else p(null), g({});
|
|
20707
20725
|
if (l.ok && s.ok) {
|
|
20708
20726
|
let e = {};
|
|
20709
|
-
for (let t of s.value) e[t.entry.id] =
|
|
20727
|
+
for (let t of s.value) e[t.entry.id] = WS(l.value, t.entry.id);
|
|
20710
20728
|
v(e);
|
|
20711
20729
|
} else v({});
|
|
20712
20730
|
} catch (e) {
|
|
@@ -20717,9 +20735,9 @@ function Ww({ trpc: e, landNodeId: t, onImported: r }) {
|
|
|
20717
20735
|
m(() => {
|
|
20718
20736
|
ae();
|
|
20719
20737
|
}, [ae]);
|
|
20720
|
-
let oe = l(() => (s ?? []).filter((e) => e.variant === T), [s, T]), se = l(() =>
|
|
20721
|
-
if (M.current ||
|
|
20722
|
-
let a =
|
|
20738
|
+
let oe = l(() => (s ?? []).filter((e) => e.variant === T), [s, T]), se = l(() => Iw(oe), [oe]), N = l(() => new Map(se.map((e) => [e.id, e])), [se]), P = D.length > 0 && N.has(D) ? D : se[0]?.id ?? "", ce = n(async (n) => {
|
|
20739
|
+
if (M.current || Gw(k)) return;
|
|
20740
|
+
let a = Ww(k);
|
|
20723
20741
|
M.current = !0, S(n.id), w(null);
|
|
20724
20742
|
let o = n.format === "tflite" ? ie : t !== void 0 && t.length > 0 ? t : void 0;
|
|
20725
20743
|
try {
|
|
@@ -20740,18 +20758,18 @@ function Ww({ trpc: e, landNodeId: t, onImported: r }) {
|
|
|
20740
20758
|
}]],
|
|
20741
20759
|
initialLog: `Starting ${n.format} import for ${n.canonicalId}…`
|
|
20742
20760
|
}, async ({ appendLog: t, patchSteps: r }) => {
|
|
20743
|
-
if (n.mode === "native") await
|
|
20761
|
+
if (n.mode === "native") await ZC(e, {
|
|
20744
20762
|
manifestId: n.manifestId,
|
|
20745
20763
|
...a === void 0 ? {} : { name: a },
|
|
20746
20764
|
...o === void 0 ? {} : { targetNodeId: o }
|
|
20747
20765
|
}), t(o === void 0 ? `Imported ${n.format} into the registry` : `Imported and landed on ${o}`);
|
|
20748
20766
|
else {
|
|
20749
20767
|
let r = f?.has(n.canonicalId) === !0, i = (h[n.canonicalId] ?? []).includes("onnx");
|
|
20750
|
-
(!r || !i) && (t("ONNX not present — importing first…"), await
|
|
20768
|
+
(!r || !i) && (t("ONNX not present — importing first…"), await ZC(e, {
|
|
20751
20769
|
manifestId: n.onnxManifestId,
|
|
20752
20770
|
...a === void 0 ? {} : { name: a },
|
|
20753
20771
|
...o === void 0 ? {} : { targetNodeId: o }
|
|
20754
|
-
})), t(`Converting ONNX → ${n.format}…`), await
|
|
20772
|
+
})), t(`Converting ONNX → ${n.format}…`), await bC(e, n.canonicalId, [n.format]), t(`Converted to ${n.format}`);
|
|
20755
20773
|
}
|
|
20756
20774
|
r((e) => e.map((e) => e.status === "active" || e.status === "pending" ? {
|
|
20757
20775
|
...e,
|
|
@@ -20792,7 +20810,7 @@ function Ww({ trpc: e, landNodeId: t, onImported: r }) {
|
|
|
20792
20810
|
children: "Retry"
|
|
20793
20811
|
})]
|
|
20794
20812
|
});
|
|
20795
|
-
let le = N.get(P), F = le && s ?
|
|
20813
|
+
let le = N.get(P), F = le && s ? Zw({
|
|
20796
20814
|
filtered: oe,
|
|
20797
20815
|
drift: u,
|
|
20798
20816
|
sourceId: le.id
|
|
@@ -20840,14 +20858,14 @@ function Ww({ trpc: e, landNodeId: t, onImported: r }) {
|
|
|
20840
20858
|
children: t
|
|
20841
20859
|
})]
|
|
20842
20860
|
}),
|
|
20843
|
-
/* @__PURE__ */ z(
|
|
20861
|
+
/* @__PURE__ */ z(Bw, {
|
|
20844
20862
|
testId: "scrypted-browser",
|
|
20845
20863
|
title: "YOLOv9",
|
|
20846
20864
|
preSelectors: [{
|
|
20847
20865
|
id: "variant",
|
|
20848
20866
|
label: "Variant",
|
|
20849
20867
|
value: T,
|
|
20850
|
-
options:
|
|
20868
|
+
options: qw.map((e) => ({
|
|
20851
20869
|
value: e.value,
|
|
20852
20870
|
label: e.label,
|
|
20853
20871
|
count: (s ?? []).filter((t) => t.variant === e.value).length
|
|
@@ -20863,11 +20881,11 @@ function Ww({ trpc: e, landNodeId: t, onImported: r }) {
|
|
|
20863
20881
|
emptyMessage: "No Scrypted artifacts for this variant.",
|
|
20864
20882
|
actionRow: le && ue.length > 0 ? /* @__PURE__ */ B("div", {
|
|
20865
20883
|
className: "space-y-2",
|
|
20866
|
-
children: [/* @__PURE__ */ z(
|
|
20884
|
+
children: [/* @__PURE__ */ z(Uw, {
|
|
20867
20885
|
value: k,
|
|
20868
20886
|
onChange: ee,
|
|
20869
20887
|
defaultName: le.name
|
|
20870
|
-
}), /* @__PURE__ */ z(
|
|
20888
|
+
}), /* @__PURE__ */ z(Hw, {
|
|
20871
20889
|
entries: ue,
|
|
20872
20890
|
registeredIds: f,
|
|
20873
20891
|
isImported: (e) => {
|
|
@@ -20886,7 +20904,7 @@ function Ww({ trpc: e, landNodeId: t, onImported: r }) {
|
|
|
20886
20904
|
]
|
|
20887
20905
|
});
|
|
20888
20906
|
}
|
|
20889
|
-
var
|
|
20907
|
+
var Yw = [
|
|
20890
20908
|
"edgetpu",
|
|
20891
20909
|
"int8",
|
|
20892
20910
|
"full_integer_quant",
|
|
@@ -20894,25 +20912,25 @@ var Gw = [
|
|
|
20894
20912
|
"float16",
|
|
20895
20913
|
"float32"
|
|
20896
20914
|
];
|
|
20897
|
-
function
|
|
20915
|
+
function Xw(e, t, n) {
|
|
20898
20916
|
let r = e.filter((e) => e.format === t);
|
|
20899
20917
|
if (r.length !== 0) {
|
|
20900
20918
|
if (t === "tflite") {
|
|
20901
|
-
let e =
|
|
20919
|
+
let e = Tw(n, "tflite");
|
|
20902
20920
|
return (e === void 0 ? void 0 : r.find((t) => t.id === e)) || r.toSorted((e, t) => {
|
|
20903
|
-
let n =
|
|
20921
|
+
let n = Yw.indexOf(e.precision.toLowerCase()), r = Yw.indexOf(t.precision.toLowerCase());
|
|
20904
20922
|
return (n === -1 ? 99 : n) - (r === -1 ? 99 : r);
|
|
20905
20923
|
})[0];
|
|
20906
20924
|
}
|
|
20907
20925
|
return r.toSorted((e, t) => e.files.reduce((e, t) => e + t.size, 0) - t.files.reduce((e, t) => e + t.size, 0))[0];
|
|
20908
20926
|
}
|
|
20909
20927
|
}
|
|
20910
|
-
function
|
|
20911
|
-
let t = e.sourceId, n = e.filtered.filter((e) =>
|
|
20928
|
+
function Zw(e) {
|
|
20929
|
+
let t = e.sourceId, n = e.filtered.filter((e) => Fw(e) === t);
|
|
20912
20930
|
if (n.length === 0) return [];
|
|
20913
|
-
let r =
|
|
20914
|
-
for (let a of
|
|
20915
|
-
let o =
|
|
20931
|
+
let r = Xw(n, "onnx", t)?.id ?? Tw(t, "onnx"), i = [];
|
|
20932
|
+
for (let a of Kw) {
|
|
20933
|
+
let o = Xw(n, a, t);
|
|
20916
20934
|
if (o) {
|
|
20917
20935
|
i.push({
|
|
20918
20936
|
id: `${t}::${a}`,
|
|
@@ -20922,7 +20940,7 @@ function qw(e) {
|
|
|
20922
20940
|
canonicalId: t,
|
|
20923
20941
|
onnxManifestId: r ?? o.id,
|
|
20924
20942
|
sizeMB: o.model.formats[a]?.sizeMB,
|
|
20925
|
-
driftStatus:
|
|
20943
|
+
driftStatus: _w(e.drift, o.id)
|
|
20926
20944
|
});
|
|
20927
20945
|
continue;
|
|
20928
20946
|
}
|
|
@@ -20940,14 +20958,14 @@ function qw(e) {
|
|
|
20940
20958
|
}
|
|
20941
20959
|
//#endregion
|
|
20942
20960
|
//#region src/frigate/frigate-import.ts
|
|
20943
|
-
function
|
|
20961
|
+
function Qw(e, t) {
|
|
20944
20962
|
return {
|
|
20945
20963
|
family: e === "mobiledet" ? "ssdlite-mobiledet" : e,
|
|
20946
20964
|
tier: "default",
|
|
20947
20965
|
resolution: t
|
|
20948
20966
|
};
|
|
20949
20967
|
}
|
|
20950
|
-
var
|
|
20968
|
+
var $w = {
|
|
20951
20969
|
yolov9: {
|
|
20952
20970
|
type: "yolov9",
|
|
20953
20971
|
label: "YOLOv9 (ONNX)",
|
|
@@ -20976,7 +20994,7 @@ var Yw = {
|
|
|
20976
20994
|
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)."
|
|
20977
20995
|
}
|
|
20978
20996
|
};
|
|
20979
|
-
function
|
|
20997
|
+
function eT(e) {
|
|
20980
20998
|
let t = e.includes("\n") || !e.includes(",") ? e.split("\n") : e.split(","), n = [];
|
|
20981
20999
|
for (let e of t) {
|
|
20982
21000
|
let t = e.trim();
|
|
@@ -20986,7 +21004,7 @@ function Xw(e) {
|
|
|
20986
21004
|
}
|
|
20987
21005
|
return n;
|
|
20988
21006
|
}
|
|
20989
|
-
var
|
|
21007
|
+
var tT = [{
|
|
20990
21008
|
id: "frigate-mobiledet-edgetpu",
|
|
20991
21009
|
label: "Frigate default — SSDLite MobileDet (EdgeTPU)",
|
|
20992
21010
|
format: "tflite",
|
|
@@ -20995,13 +21013,13 @@ var Zw = [{
|
|
|
20995
21013
|
inputSize: 320,
|
|
20996
21014
|
postprocessor: "ssd",
|
|
20997
21015
|
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("."),
|
|
20998
|
-
license:
|
|
21016
|
+
license: lS,
|
|
20999
21017
|
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."
|
|
21000
|
-
}],
|
|
21001
|
-
function
|
|
21002
|
-
return
|
|
21018
|
+
}], nT = /^[a-z0-9]{8}-[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{12}:[a-z0-9]{40}$/;
|
|
21019
|
+
function rT(e) {
|
|
21020
|
+
return nT.test(e);
|
|
21003
21021
|
}
|
|
21004
|
-
var
|
|
21022
|
+
var iT = {
|
|
21005
21023
|
n: "Nano",
|
|
21006
21024
|
t: "Tiny",
|
|
21007
21025
|
s: "Small",
|
|
@@ -21010,14 +21028,14 @@ var eT = {
|
|
|
21010
21028
|
l: "Large",
|
|
21011
21029
|
x: "Extra large"
|
|
21012
21030
|
};
|
|
21013
|
-
function
|
|
21031
|
+
function aT(e) {
|
|
21014
21032
|
let t = /^(yolov\d+)([a-z])$/.exec(e);
|
|
21015
21033
|
if (t !== null) {
|
|
21016
21034
|
let e = t[2];
|
|
21017
21035
|
return {
|
|
21018
21036
|
architecture: t[1],
|
|
21019
21037
|
weight: e,
|
|
21020
|
-
weightLabel:
|
|
21038
|
+
weightLabel: iT[e] ?? e.toUpperCase()
|
|
21021
21039
|
};
|
|
21022
21040
|
}
|
|
21023
21041
|
return {
|
|
@@ -21026,20 +21044,20 @@ function tT(e) {
|
|
|
21026
21044
|
weightLabel: ""
|
|
21027
21045
|
};
|
|
21028
21046
|
}
|
|
21029
|
-
function
|
|
21047
|
+
function oT(e) {
|
|
21030
21048
|
let t = e.supportedDetectors;
|
|
21031
|
-
return t.includes("onnx") || t.includes("openvino") ? "neural" : t.includes("edgetpu") ? "coral" : t.length === 0 ?
|
|
21049
|
+
return t.includes("onnx") || t.includes("openvino") ? "neural" : t.includes("edgetpu") ? "coral" : t.length === 0 ? pT(e.type).format === "tflite" ? "coral" : "neural" : null;
|
|
21032
21050
|
}
|
|
21033
|
-
function
|
|
21051
|
+
function sT(e) {
|
|
21034
21052
|
return e.width !== void 0 && e.height !== void 0 ? `${e.width}x${e.height}` : "";
|
|
21035
21053
|
}
|
|
21036
|
-
var
|
|
21037
|
-
function
|
|
21054
|
+
var cT = (e, t) => t.trainDate.localeCompare(e.trainDate);
|
|
21055
|
+
function lT(e, t) {
|
|
21038
21056
|
let n = /* @__PURE__ */ new Map();
|
|
21039
21057
|
for (let r of e) for (let e of t(r)) e !== "" && n.set(e, (n.get(e) ?? 0) + 1);
|
|
21040
21058
|
return n;
|
|
21041
21059
|
}
|
|
21042
|
-
function
|
|
21060
|
+
function uT(e, t, n) {
|
|
21043
21061
|
let r = [
|
|
21044
21062
|
"kind",
|
|
21045
21063
|
"release",
|
|
@@ -21047,46 +21065,46 @@ function oT(e, t, n) {
|
|
|
21047
21065
|
"architecture",
|
|
21048
21066
|
"weight",
|
|
21049
21067
|
"dimensions"
|
|
21050
|
-
], i = r.indexOf(n), a =
|
|
21068
|
+
], i = r.indexOf(n), a = aT(e.name);
|
|
21051
21069
|
for (let n = 0; n <= i; n++) {
|
|
21052
21070
|
let i = r[n];
|
|
21053
|
-
if (i === "kind" && t.kind !== void 0 && t.kind === "base" !== e.isBaseModel || i === "release" && t.release !== void 0 && e.baseModel !== t.release || i === "detector" && t.detector !== void 0 && !e.supportedDetectors.includes(t.detector) || i === "architecture" && t.architecture !== void 0 && a.architecture !== t.architecture || i === "weight" && t.weight !== void 0 && a.weight !== t.weight || i === "dimensions" && t.dimensions !== void 0 &&
|
|
21071
|
+
if (i === "kind" && t.kind !== void 0 && t.kind === "base" !== e.isBaseModel || i === "release" && t.release !== void 0 && e.baseModel !== t.release || i === "detector" && t.detector !== void 0 && !e.supportedDetectors.includes(t.detector) || i === "architecture" && t.architecture !== void 0 && a.architecture !== t.architecture || i === "weight" && t.weight !== void 0 && a.weight !== t.weight || i === "dimensions" && t.dimensions !== void 0 && sT(e) !== t.dimensions) return !1;
|
|
21054
21072
|
}
|
|
21055
21073
|
return !0;
|
|
21056
21074
|
}
|
|
21057
|
-
function
|
|
21058
|
-
let n =
|
|
21075
|
+
function dT(e, t) {
|
|
21076
|
+
let n = lT(e, (e) => [e.isBaseModel ? "base" : "custom"]);
|
|
21059
21077
|
return {
|
|
21060
21078
|
kind: ["custom", "base"].filter((e) => (n.get(e) ?? 0) > 0).map((e) => ({
|
|
21061
21079
|
value: e,
|
|
21062
21080
|
label: e === "custom" ? "My trainings" : "Official base",
|
|
21063
21081
|
count: n.get(e)
|
|
21064
21082
|
})),
|
|
21065
|
-
release: [...
|
|
21083
|
+
release: [...lT(e.filter((e) => uT(e, t, "kind")), (e) => [e.baseModel]).entries()].toSorted((e, t) => t[0].localeCompare(e[0], void 0, { numeric: !0 })).map(([e, t]) => ({
|
|
21066
21084
|
value: e,
|
|
21067
21085
|
label: e,
|
|
21068
21086
|
count: t
|
|
21069
21087
|
})),
|
|
21070
21088
|
detector: [],
|
|
21071
|
-
architecture: [...
|
|
21089
|
+
architecture: [...lT(e.filter((e) => uT(e, t, "detector")), (e) => [aT(e.name).architecture]).entries()].toSorted((e, t) => e[0].localeCompare(t[0])).map(([e, t]) => ({
|
|
21072
21090
|
value: e,
|
|
21073
21091
|
label: e,
|
|
21074
21092
|
count: t
|
|
21075
21093
|
})),
|
|
21076
|
-
weight: [...
|
|
21094
|
+
weight: [...lT(e.filter((e) => uT(e, t, "architecture")), (e) => [aT(e.name).weight]).entries()].toSorted((e, t) => e[0].localeCompare(t[0])).map(([e, t]) => ({
|
|
21077
21095
|
value: e,
|
|
21078
|
-
label:
|
|
21096
|
+
label: iT[e] ?? e.toUpperCase(),
|
|
21079
21097
|
count: t
|
|
21080
21098
|
})),
|
|
21081
|
-
dimensions: [...
|
|
21099
|
+
dimensions: [...lT(e.filter((e) => uT(e, t, "weight")), (e) => [sT(e)]).entries()].toSorted((e, t) => e[0].localeCompare(t[0], void 0, { numeric: !0 })).map(([e, t]) => ({
|
|
21082
21100
|
value: e,
|
|
21083
21101
|
label: e.replace("x", "×"),
|
|
21084
21102
|
count: t
|
|
21085
21103
|
})),
|
|
21086
|
-
entries: e.filter((e) =>
|
|
21104
|
+
entries: e.filter((e) => uT(e, t, "dimensions")).toSorted(cT)
|
|
21087
21105
|
};
|
|
21088
21106
|
}
|
|
21089
|
-
var
|
|
21107
|
+
var fT = {
|
|
21090
21108
|
mobiledet: {
|
|
21091
21109
|
format: "tflite",
|
|
21092
21110
|
postprocessor: "ssd",
|
|
@@ -21111,8 +21129,8 @@ var cT = {
|
|
|
21111
21129
|
extension: ".onnx"
|
|
21112
21130
|
}
|
|
21113
21131
|
};
|
|
21114
|
-
function
|
|
21115
|
-
return
|
|
21132
|
+
function pT(e) {
|
|
21133
|
+
return fT[e] ?? {
|
|
21116
21134
|
format: "onnx",
|
|
21117
21135
|
extension: ".onnx"
|
|
21118
21136
|
};
|
|
@@ -21120,12 +21138,12 @@ function lT(e) {
|
|
|
21120
21138
|
//#endregion
|
|
21121
21139
|
//#region src/components/TfliteGate.tsx
|
|
21122
21140
|
t();
|
|
21123
|
-
function
|
|
21141
|
+
function mT(e, t) {
|
|
21124
21142
|
let [n, r] = a(null);
|
|
21125
21143
|
return m(() => {
|
|
21126
21144
|
if (!t) return;
|
|
21127
21145
|
let n = !1;
|
|
21128
|
-
return
|
|
21146
|
+
return YC(e).then((e) => {
|
|
21129
21147
|
n || r(e);
|
|
21130
21148
|
}).catch(() => {
|
|
21131
21149
|
n || r([]);
|
|
@@ -21134,7 +21152,7 @@ function uT(e, t) {
|
|
|
21134
21152
|
};
|
|
21135
21153
|
}, [e, t]), t ? n : [];
|
|
21136
21154
|
}
|
|
21137
|
-
function
|
|
21155
|
+
function hT({ nodes: e }) {
|
|
21138
21156
|
return e === null ? /* @__PURE__ */ z("div", {
|
|
21139
21157
|
className: "text-[10px] text-foreground-subtle",
|
|
21140
21158
|
children: "Checking Coral availability…"
|
|
@@ -21152,7 +21170,7 @@ function dT({ nodes: e }) {
|
|
|
21152
21170
|
}
|
|
21153
21171
|
//#endregion
|
|
21154
21172
|
//#region src/frigate/frigate-as-variant-sources.ts
|
|
21155
|
-
var
|
|
21173
|
+
var gT = {
|
|
21156
21174
|
n: "Nano",
|
|
21157
21175
|
t: "Tiny",
|
|
21158
21176
|
s: "Small",
|
|
@@ -21160,30 +21178,30 @@ var fT = {
|
|
|
21160
21178
|
c: "Compact",
|
|
21161
21179
|
l: "Large",
|
|
21162
21180
|
x: "Extra large"
|
|
21163
|
-
},
|
|
21181
|
+
}, _T = [
|
|
21164
21182
|
"onnx",
|
|
21165
21183
|
"openvino",
|
|
21166
21184
|
"coreml",
|
|
21167
21185
|
"tflite"
|
|
21168
21186
|
];
|
|
21169
|
-
function
|
|
21170
|
-
return e.filter((e) =>
|
|
21187
|
+
function vT(e) {
|
|
21188
|
+
return e.filter((e) => oT(e) !== null);
|
|
21171
21189
|
}
|
|
21172
|
-
function
|
|
21190
|
+
function yT(e) {
|
|
21173
21191
|
if (e.width !== void 0 && e.height !== void 0) return e.width === e.height ? e.width : Math.max(e.width, e.height);
|
|
21174
|
-
let t = /^(\d+)x(\d+)$/.exec(
|
|
21192
|
+
let t = /^(\d+)x(\d+)$/.exec(sT(e));
|
|
21175
21193
|
if (!t) return;
|
|
21176
21194
|
let n = Number(t[1]), r = Number(t[2]);
|
|
21177
21195
|
if (!(!Number.isFinite(n) || !Number.isFinite(r))) return n === r ? n : Math.max(n, r);
|
|
21178
21196
|
}
|
|
21179
|
-
function
|
|
21197
|
+
function bT(e, t) {
|
|
21180
21198
|
if (t.length === 0) return e === "mobiledet" ? "SSDLite MobileDet" : e === "yolonas" ? "YOLO-NAS" : e.toUpperCase();
|
|
21181
|
-
let n =
|
|
21199
|
+
let n = gT[t] ?? t.toUpperCase();
|
|
21182
21200
|
return e.startsWith("yolo") ? `${e.replace(/^yolo/i, "YOLO")} ${n}` : `${e} ${n}`;
|
|
21183
21201
|
}
|
|
21184
|
-
var
|
|
21185
|
-
function
|
|
21186
|
-
let t = [...e].toSorted(
|
|
21202
|
+
var xT = (e, t) => t.trainDate.localeCompare(e.trainDate);
|
|
21203
|
+
function ST(e) {
|
|
21204
|
+
let t = [...e].toSorted(xT), n = t.find((e) => oT(e) === "neural"), r = t.find((e) => oT(e) === "coral"), i = [];
|
|
21187
21205
|
return n !== void 0 && (i.push({
|
|
21188
21206
|
format: "onnx",
|
|
21189
21207
|
plusModelId: n.id,
|
|
@@ -21204,33 +21222,33 @@ function vT(e) {
|
|
|
21204
21222
|
plusModelId: r.id,
|
|
21205
21223
|
via: "download",
|
|
21206
21224
|
needsCoral: !0
|
|
21207
|
-
}), i.toSorted((e, t) =>
|
|
21225
|
+
}), i.toSorted((e, t) => _T.indexOf(e.format) - _T.indexOf(t.format));
|
|
21208
21226
|
}
|
|
21209
|
-
function
|
|
21227
|
+
function CT(e) {
|
|
21210
21228
|
let t = /* @__PURE__ */ new Map();
|
|
21211
21229
|
for (let n of e) {
|
|
21212
21230
|
let e = n.trainDate.slice(0, 10);
|
|
21213
21231
|
t.set(e, [...t.get(e) ?? [], n]);
|
|
21214
21232
|
}
|
|
21215
21233
|
return [...t.entries()].map(([e, t]) => {
|
|
21216
|
-
let n = t.toSorted(
|
|
21234
|
+
let n = t.toSorted(xT);
|
|
21217
21235
|
return {
|
|
21218
21236
|
key: e,
|
|
21219
21237
|
trainDate: n[0]?.trainDate ?? "",
|
|
21220
21238
|
verifiedImages: Math.max(0, ...n.map((e) => e.verifiedImages)),
|
|
21221
21239
|
builds: n,
|
|
21222
|
-
offers:
|
|
21240
|
+
offers: ST(n)
|
|
21223
21241
|
};
|
|
21224
21242
|
}).filter((e) => e.offers.length > 0).toSorted((e, t) => t.trainDate.localeCompare(e.trainDate));
|
|
21225
21243
|
}
|
|
21226
|
-
function
|
|
21244
|
+
function wT(e) {
|
|
21227
21245
|
let t = /* @__PURE__ */ new Map();
|
|
21228
|
-
for (let n of
|
|
21229
|
-
let e =
|
|
21246
|
+
for (let n of vT(e)) {
|
|
21247
|
+
let e = aT(n.name), r = e.weight.length > 0 ? e.weight : "default", i = yT(n), a = `${n.name}${i === void 0 ? "" : `-${i}`}`, o = t.get(a) ?? {
|
|
21230
21248
|
family: e.architecture,
|
|
21231
21249
|
tier: r,
|
|
21232
21250
|
...i === void 0 ? {} : { resolution: i },
|
|
21233
|
-
name:
|
|
21251
|
+
name: bT(e.architecture, e.weight),
|
|
21234
21252
|
builds: []
|
|
21235
21253
|
};
|
|
21236
21254
|
t.set(a, {
|
|
@@ -21240,7 +21258,7 @@ function bT(e) {
|
|
|
21240
21258
|
}
|
|
21241
21259
|
let n = /* @__PURE__ */ new Map(), r = [];
|
|
21242
21260
|
for (let [e, i] of t) {
|
|
21243
|
-
let t =
|
|
21261
|
+
let t = CT(i.builds), a = t[0];
|
|
21244
21262
|
a !== void 0 && (n.set(e, {
|
|
21245
21263
|
sourceId: e,
|
|
21246
21264
|
family: i.family,
|
|
@@ -21267,16 +21285,16 @@ function bT(e) {
|
|
|
21267
21285
|
//#endregion
|
|
21268
21286
|
//#region src/tabs/use-plus-import.ts
|
|
21269
21287
|
t();
|
|
21270
|
-
function
|
|
21288
|
+
function TT(e) {
|
|
21271
21289
|
return e.length === 0 ? "" : ` Engine conversions: ${e.map((e) => e.ok ? `${e.format} ✓${e.nodeId ? ` (${e.nodeId})` : ""}` : `${e.format} ✗ — ${e.error ?? "failed"}`).join("; ")}.`;
|
|
21272
21290
|
}
|
|
21273
|
-
function
|
|
21291
|
+
function ET({ trpc: e, onRegistered: t, onError: r, landNodeId: i }) {
|
|
21274
21292
|
let [o, s] = a(null), [c, l] = a({}), [u, d] = a({}), [f, p] = a(null), [h, g] = a(null), _ = n(async () => {
|
|
21275
21293
|
try {
|
|
21276
|
-
let [t, n] = await Promise.all([
|
|
21294
|
+
let [t, n] = await Promise.all([mC(e), hC(e)]);
|
|
21277
21295
|
s(new Set(t.map((e) => e.entry.id)));
|
|
21278
21296
|
let r = {}, i = {};
|
|
21279
|
-
for (let e of t) r[e.entry.id] =
|
|
21297
|
+
for (let e of t) r[e.entry.id] = US(e.entry), i[e.entry.id] = WS(n, e.entry.id);
|
|
21280
21298
|
l(r), d(i);
|
|
21281
21299
|
} catch {
|
|
21282
21300
|
s(null), l({}), d({});
|
|
@@ -21286,7 +21304,7 @@ function ST({ trpc: e, onRegistered: t, onError: r, landNodeId: i }) {
|
|
|
21286
21304
|
_();
|
|
21287
21305
|
}, [_]);
|
|
21288
21306
|
let v = n(async (n, a, s, l) => {
|
|
21289
|
-
let u =
|
|
21307
|
+
let u = jS(n);
|
|
21290
21308
|
p(`${u}::${a}`);
|
|
21291
21309
|
let d = a === "openvino" || a === "coreml", f = [
|
|
21292
21310
|
{
|
|
@@ -21315,7 +21333,7 @@ function ST({ trpc: e, onRegistered: t, onError: r, landNodeId: i }) {
|
|
|
21315
21333
|
progress: null,
|
|
21316
21334
|
logs: [`Starting ${a} import for ${n}…`],
|
|
21317
21335
|
status: "running",
|
|
21318
|
-
sessionId:
|
|
21336
|
+
sessionId: lw({
|
|
21319
21337
|
kind: d ? "convert" : "import",
|
|
21320
21338
|
title: `Import ${s} · ${a}`,
|
|
21321
21339
|
modelId: u,
|
|
@@ -21330,9 +21348,9 @@ function ST({ trpc: e, onRegistered: t, onError: r, landNodeId: i }) {
|
|
|
21330
21348
|
steps: e([...t.steps])
|
|
21331
21349
|
});
|
|
21332
21350
|
}, h = (e) => {
|
|
21333
|
-
g((t) => t === null ? t : (
|
|
21351
|
+
g((t) => t === null ? t : (uw(t.sessionId, e), {
|
|
21334
21352
|
...t,
|
|
21335
|
-
logs:
|
|
21353
|
+
logs: iw(t.logs, {
|
|
21336
21354
|
phase: "log",
|
|
21337
21355
|
log: e
|
|
21338
21356
|
})
|
|
@@ -21342,11 +21360,11 @@ function ST({ trpc: e, onRegistered: t, onError: r, landNodeId: i }) {
|
|
|
21342
21360
|
...n,
|
|
21343
21361
|
status: t
|
|
21344
21362
|
} : n));
|
|
21345
|
-
}, y =
|
|
21363
|
+
}, y = PC(e, (e) => {
|
|
21346
21364
|
g((t) => {
|
|
21347
21365
|
if (t === null) return t;
|
|
21348
|
-
let n =
|
|
21349
|
-
return
|
|
21366
|
+
let n = iw(t.logs, e);
|
|
21367
|
+
return fw(t.sessionId, n), {
|
|
21350
21368
|
...t,
|
|
21351
21369
|
progress: e.phase === "log" ? t.progress : e,
|
|
21352
21370
|
logs: n
|
|
@@ -21358,7 +21376,7 @@ function ST({ trpc: e, onRegistered: t, onError: r, landNodeId: i }) {
|
|
|
21358
21376
|
if (a === "onnx" || a === "tflite") if (i) h(`${a} already in Library`), v("download", "done"), v("register", "done");
|
|
21359
21377
|
else {
|
|
21360
21378
|
h(`Downloading native ${a}…`);
|
|
21361
|
-
let r = await
|
|
21379
|
+
let r = await zC(e, {
|
|
21362
21380
|
plusModelId: n,
|
|
21363
21381
|
...l === void 0 ? {} : { name: l },
|
|
21364
21382
|
ensureFormats: [],
|
|
@@ -21368,21 +21386,21 @@ function ST({ trpc: e, onRegistered: t, onError: r, landNodeId: i }) {
|
|
|
21368
21386
|
}
|
|
21369
21387
|
else if (d) if (!r) {
|
|
21370
21388
|
h("ONNX missing — downloading first…");
|
|
21371
|
-
let r = await
|
|
21389
|
+
let r = await zC(e, {
|
|
21372
21390
|
plusModelId: n,
|
|
21373
21391
|
...l === void 0 ? {} : { name: l },
|
|
21374
21392
|
ensureFormats: [a],
|
|
21375
21393
|
format: "onnx"
|
|
21376
21394
|
});
|
|
21377
|
-
v("download", "done"), v("register", "done"), v("convert", r.conversions.some((e) => e.format === a && e.ok) ? "done" : "error"), h(`Registered ${r.modelId}.${
|
|
21395
|
+
v("download", "done"), v("register", "done"), v("convert", r.conversions.some((e) => e.format === a && e.ok) ? "done" : "error"), h(`Registered ${r.modelId}.${TT(r.conversions)}`), t(`Imported "${r.modelId}" + ${a}.${TT(r.conversions)}`);
|
|
21378
21396
|
} else if (i) v("download", "done"), v("register", "done"), v("convert", "done"), h(`${a} already present on ${u}`);
|
|
21379
21397
|
else {
|
|
21380
21398
|
v("download", "done"), v("register", "done"), v("convert", "active"), h(`Converting ONNX → ${a} on a capable node…`);
|
|
21381
|
-
let n = await
|
|
21382
|
-
if (v("convert", r ? "done" : "error"), h(`Conversion:${
|
|
21383
|
-
t(`Converted "${u}" → ${a}.${
|
|
21399
|
+
let n = await bC(e, u, [a]), r = n.conversions.some((e) => e.format === a && e.ok);
|
|
21400
|
+
if (v("convert", r ? "done" : "error"), h(`Conversion:${TT(n.conversions)}`), !r) throw Error(n.conversions.find((e) => e.format === a)?.error ?? `${a} conversion failed`);
|
|
21401
|
+
t(`Converted "${u}" → ${a}.${TT(n.conversions)}`);
|
|
21384
21402
|
}
|
|
21385
|
-
await _(), g((e) => e === null ? e : (
|
|
21403
|
+
await _(), g((e) => e === null ? e : (dw(e.sessionId, { status: "success" }), {
|
|
21386
21404
|
...e,
|
|
21387
21405
|
status: "success",
|
|
21388
21406
|
steps: e.steps.map((e) => e.status === "active" || e.status === "pending" ? {
|
|
@@ -21393,7 +21411,7 @@ function ST({ trpc: e, onRegistered: t, onError: r, landNodeId: i }) {
|
|
|
21393
21411
|
}));
|
|
21394
21412
|
} catch (e) {
|
|
21395
21413
|
let t = e instanceof Error ? e.message : "Import failed";
|
|
21396
|
-
g((e) => e === null ? e : (
|
|
21414
|
+
g((e) => e === null ? e : (dw(e.sessionId, {
|
|
21397
21415
|
status: "error",
|
|
21398
21416
|
errorMessage: t
|
|
21399
21417
|
}), {
|
|
@@ -21430,11 +21448,11 @@ function ST({ trpc: e, onRegistered: t, onError: r, landNodeId: i }) {
|
|
|
21430
21448
|
//#endregion
|
|
21431
21449
|
//#region src/tabs/FrigatePlusCatalog.tsx
|
|
21432
21450
|
t();
|
|
21433
|
-
var
|
|
21434
|
-
function
|
|
21451
|
+
var DT = ["kind", "release"];
|
|
21452
|
+
function OT(e, t) {
|
|
21435
21453
|
let n = { ...t };
|
|
21436
|
-
for (let t of
|
|
21437
|
-
let r =
|
|
21454
|
+
for (let t of DT) {
|
|
21455
|
+
let r = dT(e, n)[t], i = n[t], a = r[0];
|
|
21438
21456
|
a !== void 0 && (i === void 0 || !r.some((e) => e.value === i)) && (n = t === "kind" ? {
|
|
21439
21457
|
...n,
|
|
21440
21458
|
kind: a.value === "base" ? "base" : "custom"
|
|
@@ -21445,23 +21463,23 @@ function wT(e, t) {
|
|
|
21445
21463
|
}
|
|
21446
21464
|
return n;
|
|
21447
21465
|
}
|
|
21448
|
-
function
|
|
21466
|
+
function kT(e) {
|
|
21449
21467
|
return e === null ? "checking Coral…" : e.length === 0 ? "needs a Coral" : void 0;
|
|
21450
21468
|
}
|
|
21451
|
-
function
|
|
21452
|
-
let [o, s] = a({}), [c, u] = a(""), d =
|
|
21469
|
+
function AT({ trpc: e, models: t, onRegistered: n, onError: r, landNodeId: i }) {
|
|
21470
|
+
let [o, s] = a({}), [c, u] = a(""), d = ET({
|
|
21453
21471
|
trpc: e,
|
|
21454
21472
|
onRegistered: n,
|
|
21455
21473
|
onError: r,
|
|
21456
21474
|
...i === void 0 ? {} : { landNodeId: i }
|
|
21457
|
-
}), f = l(() =>
|
|
21475
|
+
}), f = l(() => vT(t), [t]), p = OT(f, o), m = dT(f, {
|
|
21458
21476
|
kind: p.kind,
|
|
21459
21477
|
release: p.release
|
|
21460
|
-
}), h = l(() =>
|
|
21478
|
+
}), h = l(() => wT(m.entries), [
|
|
21461
21479
|
f,
|
|
21462
21480
|
p.kind,
|
|
21463
21481
|
p.release
|
|
21464
|
-
]), g =
|
|
21482
|
+
]), g = mT(e, l(() => [...h.combos.values()].some((e) => e.trainings.some((e) => e.offers.some((e) => e.format === "tflite"))), [h])), _ = (e, t) => {
|
|
21465
21483
|
s(e === "kind" ? { kind: t === "base" ? "base" : "custom" } : {
|
|
21466
21484
|
...p.kind === void 0 ? {} : { kind: p.kind },
|
|
21467
21485
|
release: t
|
|
@@ -21472,7 +21490,7 @@ function ET({ trpc: e, models: t, onRegistered: n, onError: r, landNodeId: i })
|
|
|
21472
21490
|
children: "No models this cluster can run are visible to this account yet — train one on Frigate+."
|
|
21473
21491
|
});
|
|
21474
21492
|
let v = h.combos.has(c) ? c : "";
|
|
21475
|
-
return /* @__PURE__ */ B(it, { children: [d.modal !== null && /* @__PURE__ */ z(
|
|
21493
|
+
return /* @__PURE__ */ B(it, { children: [d.modal !== null && /* @__PURE__ */ z(rw, {
|
|
21476
21494
|
title: d.modal.title,
|
|
21477
21495
|
steps: d.modal.steps,
|
|
21478
21496
|
progress: d.modal.progress,
|
|
@@ -21480,7 +21498,7 @@ function ET({ trpc: e, models: t, onRegistered: n, onError: r, landNodeId: i })
|
|
|
21480
21498
|
status: d.modal.status,
|
|
21481
21499
|
...d.modal.errorMessage === void 0 ? {} : { errorMessage: d.modal.errorMessage },
|
|
21482
21500
|
onClose: d.closeModal
|
|
21483
|
-
}), /* @__PURE__ */ z(
|
|
21501
|
+
}), /* @__PURE__ */ z(Bw, {
|
|
21484
21502
|
testId: "frigate-browser",
|
|
21485
21503
|
preSelectors: [{
|
|
21486
21504
|
id: "kind",
|
|
@@ -21503,7 +21521,7 @@ function ET({ trpc: e, models: t, onRegistered: n, onError: r, landNodeId: i })
|
|
|
21503
21521
|
emptyMessage: "No Frigate+ models in this release that the cluster can run.",
|
|
21504
21522
|
renderActionRow: (e) => {
|
|
21505
21523
|
let t = h.combos.get(e);
|
|
21506
|
-
return t === void 0 ? null : /* @__PURE__ */ z(
|
|
21524
|
+
return t === void 0 ? null : /* @__PURE__ */ z(MT, {
|
|
21507
21525
|
combo: t,
|
|
21508
21526
|
tfliteNodes: g,
|
|
21509
21527
|
registeredIds: d.registeredIds,
|
|
@@ -21515,25 +21533,25 @@ function ET({ trpc: e, models: t, onRegistered: n, onError: r, landNodeId: i })
|
|
|
21515
21533
|
}
|
|
21516
21534
|
})] });
|
|
21517
21535
|
}
|
|
21518
|
-
var
|
|
21519
|
-
function
|
|
21536
|
+
var jT = (e) => `${jS(e.plusModelId)}::${e.format}`;
|
|
21537
|
+
function MT({ combo: e, tfliteNodes: t, registeredIds: n, registryFormats: r, presenceByModel: i, busyId: o, onImport: s }) {
|
|
21520
21538
|
let [c, l] = a(e.trainings[0]?.key ?? ""), [u, d] = a("");
|
|
21521
21539
|
m(() => {
|
|
21522
21540
|
l(e.trainings[0]?.key ?? "");
|
|
21523
21541
|
}, [e]);
|
|
21524
21542
|
let f = e.trainings.find((e) => e.key === c) ?? e.trainings[0], p = f?.builds[0];
|
|
21525
21543
|
if (f === void 0 || p === void 0) return null;
|
|
21526
|
-
let h = f.offers.some((e) => e.format === "onnx"), g = f.offers.some((e) => e.format === "tflite"), _ =
|
|
21527
|
-
id:
|
|
21544
|
+
let h = f.offers.some((e) => e.format === "onnx"), g = f.offers.some((e) => e.format === "tflite"), _ = kT(t), v = f.offers.map((e) => ({
|
|
21545
|
+
id: jT(e),
|
|
21528
21546
|
format: e.format,
|
|
21529
21547
|
driftStatus: e.needsCoral ? _ ?? "ok" : "ok"
|
|
21530
|
-
})), y = [...new Set(f.offers.map((e) =>
|
|
21548
|
+
})), y = [...new Set(f.offers.map((e) => jS(e.plusModelId)))].flatMap((e) => i[e] ?? []), b = `${e.name}${e.resolution === void 0 ? "" : ` ${e.resolution}`}`;
|
|
21531
21549
|
return /* @__PURE__ */ B("div", {
|
|
21532
21550
|
className: "space-y-3",
|
|
21533
21551
|
"data-testid": "plus-combo-panel",
|
|
21534
21552
|
"data-combo": e.sourceId,
|
|
21535
21553
|
children: [
|
|
21536
|
-
e.trainings.length > 1 && /* @__PURE__ */ z(
|
|
21554
|
+
e.trainings.length > 1 && /* @__PURE__ */ z(zw, {
|
|
21537
21555
|
label: "Training",
|
|
21538
21556
|
value: f.key,
|
|
21539
21557
|
options: e.trainings.map((e) => ({
|
|
@@ -21563,7 +21581,7 @@ function OT({ combo: e, tfliteNodes: t, registeredIds: n, registryFormats: r, pr
|
|
|
21563
21581
|
}),
|
|
21564
21582
|
" · input",
|
|
21565
21583
|
" ",
|
|
21566
|
-
|
|
21584
|
+
sT(p).replace("x", "×"),
|
|
21567
21585
|
f.verifiedImages > 0 ? /* @__PURE__ */ B(it, { children: [
|
|
21568
21586
|
" · ",
|
|
21569
21587
|
f.verifiedImages,
|
|
@@ -21579,21 +21597,21 @@ function OT({ combo: e, tfliteNodes: t, registeredIds: n, registryFormats: r, pr
|
|
|
21579
21597
|
})
|
|
21580
21598
|
]
|
|
21581
21599
|
}),
|
|
21582
|
-
g && /* @__PURE__ */ z(
|
|
21583
|
-
/* @__PURE__ */ z(
|
|
21600
|
+
g && /* @__PURE__ */ z(hT, { nodes: t }),
|
|
21601
|
+
/* @__PURE__ */ z(Uw, {
|
|
21584
21602
|
value: u,
|
|
21585
21603
|
onChange: d,
|
|
21586
21604
|
defaultName: p.name
|
|
21587
21605
|
}),
|
|
21588
|
-
/* @__PURE__ */ z(
|
|
21606
|
+
/* @__PURE__ */ z(Hw, {
|
|
21589
21607
|
entries: v,
|
|
21590
21608
|
registeredIds: n,
|
|
21591
21609
|
isImported: (e) => (r[e.id.split("::")[0] ?? ""] ?? []).includes(e.format),
|
|
21592
21610
|
presence: y,
|
|
21593
21611
|
busyId: o,
|
|
21594
21612
|
onImport: (e) => {
|
|
21595
|
-
let t = f.offers.find((t) =>
|
|
21596
|
-
t === void 0 ||
|
|
21613
|
+
let t = f.offers.find((t) => jT(t) === e);
|
|
21614
|
+
t === void 0 || Gw(u) || s(t, b, Ww(u));
|
|
21597
21615
|
}
|
|
21598
21616
|
})
|
|
21599
21617
|
]
|
|
@@ -21602,12 +21620,12 @@ function OT({ combo: e, tfliteNodes: t, registeredIds: n, registryFormats: r, pr
|
|
|
21602
21620
|
//#endregion
|
|
21603
21621
|
//#region src/tabs/FrigateSourceSections.tsx
|
|
21604
21622
|
t();
|
|
21605
|
-
var
|
|
21606
|
-
function
|
|
21623
|
+
var NT = "https://docs.frigate.video/integrations/plus/";
|
|
21624
|
+
function PT({ trpc: e, status: t, onStatusChange: r }) {
|
|
21607
21625
|
let [i, o] = a(""), [s, c] = a(null), [l, u] = a(!1), [d, f] = a(null), [p, m] = a(!1), [h, g] = a(!1), _ = n(async () => {
|
|
21608
21626
|
m(!0), f(null);
|
|
21609
21627
|
try {
|
|
21610
|
-
let t = await
|
|
21628
|
+
let t = await LC(e);
|
|
21611
21629
|
f(t.ok ? "Connection OK" : t.error ?? "Connection failed");
|
|
21612
21630
|
} catch (e) {
|
|
21613
21631
|
f(e instanceof Error ? e.message : "Connection failed");
|
|
@@ -21616,13 +21634,13 @@ function AT({ trpc: e, status: t, onStatusChange: r }) {
|
|
|
21616
21634
|
}
|
|
21617
21635
|
}, [e]), v = n(async () => {
|
|
21618
21636
|
let t = i.trim();
|
|
21619
|
-
if (c(null),
|
|
21637
|
+
if (c(null), !rT(t)) {
|
|
21620
21638
|
c("The key does not match the documented \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx:40-hex\" format shown in your Frigate+ account.");
|
|
21621
21639
|
return;
|
|
21622
21640
|
}
|
|
21623
21641
|
u(!0);
|
|
21624
21642
|
try {
|
|
21625
|
-
await
|
|
21643
|
+
await BC(e, t), o(""), g(!1), r(await IC(e)), await _();
|
|
21626
21644
|
} catch (e) {
|
|
21627
21645
|
c(e instanceof Error ? e.message : "Failed to save the API key");
|
|
21628
21646
|
} finally {
|
|
@@ -21645,7 +21663,7 @@ function AT({ trpc: e, status: t, onStatusChange: r }) {
|
|
|
21645
21663
|
"Required to list your account models.",
|
|
21646
21664
|
" ",
|
|
21647
21665
|
/* @__PURE__ */ z("a", {
|
|
21648
|
-
href:
|
|
21666
|
+
href: NT,
|
|
21649
21667
|
target: "_blank",
|
|
21650
21668
|
rel: "noreferrer",
|
|
21651
21669
|
className: "text-primary hover:underline",
|
|
@@ -21686,7 +21704,7 @@ function AT({ trpc: e, status: t, onStatusChange: r }) {
|
|
|
21686
21704
|
y && /* @__PURE__ */ B("div", {
|
|
21687
21705
|
className: "space-y-1",
|
|
21688
21706
|
children: [
|
|
21689
|
-
/* @__PURE__ */ z(
|
|
21707
|
+
/* @__PURE__ */ z($C, {
|
|
21690
21708
|
label: "Frigate+ API key",
|
|
21691
21709
|
children: /* @__PURE__ */ z("input", {
|
|
21692
21710
|
type: "password",
|
|
@@ -21727,11 +21745,11 @@ function AT({ trpc: e, status: t, onStatusChange: r }) {
|
|
|
21727
21745
|
]
|
|
21728
21746
|
});
|
|
21729
21747
|
}
|
|
21730
|
-
function
|
|
21748
|
+
function FT({ trpc: e, onRegistered: t, onError: r, onPrefillUpload: i, landNodeId: o }) {
|
|
21731
21749
|
let [s, c] = a(null), [l, u] = a(null), [d, f] = a(!1), p = n(async () => {
|
|
21732
21750
|
f(!0);
|
|
21733
21751
|
try {
|
|
21734
|
-
u(await
|
|
21752
|
+
u(await RC(e));
|
|
21735
21753
|
} catch (e) {
|
|
21736
21754
|
r(e instanceof Error ? e.message : "Failed to list Frigate+ models");
|
|
21737
21755
|
} finally {
|
|
@@ -21742,7 +21760,7 @@ function jT({ trpc: e, onRegistered: t, onError: r, onPrefillUpload: i, landNode
|
|
|
21742
21760
|
}, [p]);
|
|
21743
21761
|
return m(() => {
|
|
21744
21762
|
let t = !1;
|
|
21745
|
-
return
|
|
21763
|
+
return IC(e).then((e) => {
|
|
21746
21764
|
t || (c(e), e.configured && p());
|
|
21747
21765
|
}).catch(() => {
|
|
21748
21766
|
t || c({
|
|
@@ -21758,7 +21776,7 @@ function jT({ trpc: e, onRegistered: t, onError: r, onPrefillUpload: i, landNode
|
|
|
21758
21776
|
}) : s.configured ? /* @__PURE__ */ B("div", {
|
|
21759
21777
|
className: "space-y-3",
|
|
21760
21778
|
children: [
|
|
21761
|
-
/* @__PURE__ */ z(
|
|
21779
|
+
/* @__PURE__ */ z(PT, {
|
|
21762
21780
|
trpc: e,
|
|
21763
21781
|
status: s,
|
|
21764
21782
|
onStatusChange: h
|
|
@@ -21777,7 +21795,7 @@ function jT({ trpc: e, onRegistered: t, onError: r, onPrefillUpload: i, landNode
|
|
|
21777
21795
|
className: "text-xs text-foreground-subtle",
|
|
21778
21796
|
children: "Loading your Frigate+ models…"
|
|
21779
21797
|
}),
|
|
21780
|
-
l !== null && /* @__PURE__ */ z(
|
|
21798
|
+
l !== null && /* @__PURE__ */ z(AT, {
|
|
21781
21799
|
models: l,
|
|
21782
21800
|
trpc: e,
|
|
21783
21801
|
onRegistered: t,
|
|
@@ -21787,7 +21805,7 @@ function jT({ trpc: e, onRegistered: t, onError: r, onPrefillUpload: i, landNode
|
|
|
21787
21805
|
]
|
|
21788
21806
|
}) : /* @__PURE__ */ B("div", {
|
|
21789
21807
|
className: "space-y-4",
|
|
21790
|
-
children: [/* @__PURE__ */ z(
|
|
21808
|
+
children: [/* @__PURE__ */ z(PT, {
|
|
21791
21809
|
trpc: e,
|
|
21792
21810
|
status: s,
|
|
21793
21811
|
onStatusChange: h
|
|
@@ -21796,7 +21814,7 @@ function jT({ trpc: e, onRegistered: t, onError: r, onPrefillUpload: i, landNode
|
|
|
21796
21814
|
children: [/* @__PURE__ */ z("div", {
|
|
21797
21815
|
className: "text-[11px] text-foreground-subtle",
|
|
21798
21816
|
children: "Public default (no key required):"
|
|
21799
|
-
}),
|
|
21817
|
+
}), tT.map((n) => /* @__PURE__ */ z(IT, {
|
|
21800
21818
|
trpc: e,
|
|
21801
21819
|
catalogId: n.id,
|
|
21802
21820
|
onRegistered: t,
|
|
@@ -21807,8 +21825,8 @@ function jT({ trpc: e, onRegistered: t, onError: r, onPrefillUpload: i, landNode
|
|
|
21807
21825
|
})]
|
|
21808
21826
|
});
|
|
21809
21827
|
}
|
|
21810
|
-
function
|
|
21811
|
-
let s =
|
|
21828
|
+
function IT({ trpc: e, catalogId: t, onRegistered: n, onError: r, onPrefillUpload: i, landNodeId: o }) {
|
|
21829
|
+
let s = tT.find((e) => e.id === t), [c, l] = a(!1), [u, d] = a(""), [f, p] = a(null), h = mT(e, s?.format === "tflite"), [g, _] = a("");
|
|
21812
21830
|
if (m(() => {
|
|
21813
21831
|
if (o !== void 0 && o.length > 0) {
|
|
21814
21832
|
_(o);
|
|
@@ -21824,7 +21842,7 @@ function MT({ trpc: e, catalogId: t, onRegistered: n, onError: r, onPrefillUploa
|
|
|
21824
21842
|
return /* @__PURE__ */ B("div", {
|
|
21825
21843
|
className: "rounded-md border border-border bg-surface px-3 py-2 space-y-2",
|
|
21826
21844
|
children: [
|
|
21827
|
-
f !== null && /* @__PURE__ */ z(
|
|
21845
|
+
f !== null && /* @__PURE__ */ z(rw, {
|
|
21828
21846
|
title: f.title,
|
|
21829
21847
|
steps: f.steps,
|
|
21830
21848
|
progress: f.progress,
|
|
@@ -21855,7 +21873,7 @@ function MT({ trpc: e, catalogId: t, onRegistered: n, onError: r, onPrefillUploa
|
|
|
21855
21873
|
})
|
|
21856
21874
|
]
|
|
21857
21875
|
}),
|
|
21858
|
-
s.format === "tflite" && /* @__PURE__ */ z(
|
|
21876
|
+
s.format === "tflite" && /* @__PURE__ */ z(hT, { nodes: h }),
|
|
21859
21877
|
o === void 0 && s.format === "tflite" && h !== null && h.length > 0 && /* @__PURE__ */ B("label", {
|
|
21860
21878
|
className: "flex items-center gap-2 text-[11px] text-foreground",
|
|
21861
21879
|
children: [/* @__PURE__ */ z("span", {
|
|
@@ -21878,7 +21896,7 @@ function MT({ trpc: e, catalogId: t, onRegistered: n, onError: r, onPrefillUploa
|
|
|
21878
21896
|
children: o
|
|
21879
21897
|
})]
|
|
21880
21898
|
}),
|
|
21881
|
-
/* @__PURE__ */ z(
|
|
21899
|
+
/* @__PURE__ */ z(Uw, {
|
|
21882
21900
|
value: u,
|
|
21883
21901
|
onChange: d,
|
|
21884
21902
|
defaultName: s.label
|
|
@@ -21888,7 +21906,7 @@ function MT({ trpc: e, catalogId: t, onRegistered: n, onError: r, onPrefillUploa
|
|
|
21888
21906
|
children: [/* @__PURE__ */ z("button", {
|
|
21889
21907
|
onClick: () => {
|
|
21890
21908
|
l(!0);
|
|
21891
|
-
let t = b ? y : void 0, i = `Import ${s.label}`, a =
|
|
21909
|
+
let t = b ? y : void 0, i = `Import ${s.label}`, a = lw({
|
|
21892
21910
|
kind: "import",
|
|
21893
21911
|
title: i,
|
|
21894
21912
|
modelId: s.id,
|
|
@@ -21912,14 +21930,14 @@ function MT({ trpc: e, catalogId: t, onRegistered: n, onError: r, onPrefillUploa
|
|
|
21912
21930
|
status: "running",
|
|
21913
21931
|
sessionId: a
|
|
21914
21932
|
});
|
|
21915
|
-
let o =
|
|
21916
|
-
|
|
21933
|
+
let o = Ww(u);
|
|
21934
|
+
FC(e, {
|
|
21917
21935
|
catalogId: s.id,
|
|
21918
21936
|
...o === void 0 ? {} : { name: o },
|
|
21919
21937
|
...t === void 0 ? {} : { targetNodeId: t }
|
|
21920
21938
|
}).then((e) => {
|
|
21921
21939
|
let r = t === void 0 ? `Registered "${e.modelId}" (${(e.bytes / 1e6).toFixed(1)} MB).` : `Registered "${e.modelId}" and landed on ${t} (${(e.bytes / 1e6).toFixed(1)} MB).`;
|
|
21922
|
-
|
|
21940
|
+
uw(a, r), dw(a, { status: "success" }), p((e) => e === null ? e : {
|
|
21923
21941
|
...e,
|
|
21924
21942
|
status: "success",
|
|
21925
21943
|
logs: [...e.logs, r],
|
|
@@ -21930,7 +21948,7 @@ function MT({ trpc: e, catalogId: t, onRegistered: n, onError: r, onPrefillUploa
|
|
|
21930
21948
|
}), n(r);
|
|
21931
21949
|
}).catch((e) => {
|
|
21932
21950
|
let t = e instanceof Error ? e.message : "Catalog import failed";
|
|
21933
|
-
|
|
21951
|
+
dw(a, {
|
|
21934
21952
|
status: "error",
|
|
21935
21953
|
errorMessage: t
|
|
21936
21954
|
}), p((e) => e === null ? e : {
|
|
@@ -21944,7 +21962,7 @@ function MT({ trpc: e, catalogId: t, onRegistered: n, onError: r, onPrefillUploa
|
|
|
21944
21962
|
}), r(t);
|
|
21945
21963
|
}).finally(() => l(!1));
|
|
21946
21964
|
},
|
|
21947
|
-
disabled: c || v ||
|
|
21965
|
+
disabled: c || v || Gw(u),
|
|
21948
21966
|
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",
|
|
21949
21967
|
children: c ? "Importing…" : b ? `Import + land on ${y}` : "Register"
|
|
21950
21968
|
}), /* @__PURE__ */ z("button", {
|
|
@@ -21965,10 +21983,10 @@ function MT({ trpc: e, catalogId: t, onRegistered: n, onError: r, onPrefillUploa
|
|
|
21965
21983
|
//#endregion
|
|
21966
21984
|
//#region src/tabs/CatalogTab.tsx
|
|
21967
21985
|
t();
|
|
21968
|
-
function
|
|
21986
|
+
function LT(e) {
|
|
21969
21987
|
return e === "scrypted" || e === "frigate" || e === "camstack" ? e : "camstack";
|
|
21970
21988
|
}
|
|
21971
|
-
var
|
|
21989
|
+
var RT = [
|
|
21972
21990
|
{
|
|
21973
21991
|
value: "camstack",
|
|
21974
21992
|
label: "CamStack"
|
|
@@ -21981,11 +21999,11 @@ var PT = [
|
|
|
21981
21999
|
value: "frigate",
|
|
21982
22000
|
label: "Frigate"
|
|
21983
22001
|
}
|
|
21984
|
-
],
|
|
21985
|
-
function
|
|
21986
|
-
return
|
|
22002
|
+
], zT = new Set(P);
|
|
22003
|
+
function BT(e) {
|
|
22004
|
+
return zT.has(e);
|
|
21987
22005
|
}
|
|
21988
|
-
function
|
|
22006
|
+
function VT({ seed: e, nodeId: t, busyKey: n, onDownload: r }) {
|
|
21989
22007
|
return /* @__PURE__ */ z("div", {
|
|
21990
22008
|
className: "flex flex-wrap gap-2 pt-1",
|
|
21991
22009
|
children: e.formats.map((i) => {
|
|
@@ -21999,7 +22017,7 @@ function LT({ seed: e, nodeId: t, busyKey: n, onDownload: r }) {
|
|
|
21999
22017
|
}),
|
|
22000
22018
|
/* @__PURE__ */ z("span", {
|
|
22001
22019
|
className: "text-foreground-subtle",
|
|
22002
|
-
children:
|
|
22020
|
+
children: iC(i.sizeMB)
|
|
22003
22021
|
}),
|
|
22004
22022
|
i.downloaded ? /* @__PURE__ */ B("span", {
|
|
22005
22023
|
className: "text-success",
|
|
@@ -22016,8 +22034,8 @@ function LT({ seed: e, nodeId: t, busyKey: n, onDownload: r }) {
|
|
|
22016
22034
|
})
|
|
22017
22035
|
});
|
|
22018
22036
|
}
|
|
22019
|
-
function
|
|
22020
|
-
let o =
|
|
22037
|
+
function HT({ seeds: e, nodeId: t, busyKey: n, selectedByFamily: r, onSelectFamily: i, onDownload: a }) {
|
|
22038
|
+
let o = tC(e), s = nC(e), c = o.map(rC), l = Je(c), u = new Map(e.map((e) => [e.modelId, e]));
|
|
22021
22039
|
return l.length === 0 && s.length === 0 ? null : /* @__PURE__ */ B("div", {
|
|
22022
22040
|
className: "space-y-3",
|
|
22023
22041
|
"data-testid": "catalog-provider",
|
|
@@ -22033,7 +22051,7 @@ function RT({ seeds: e, nodeId: t, busyKey: n, selectedByFamily: r, onSelectFami
|
|
|
22033
22051
|
className: "flex items-baseline justify-between gap-2",
|
|
22034
22052
|
children: [/* @__PURE__ */ z("span", {
|
|
22035
22053
|
className: "text-sm font-medium text-foreground",
|
|
22036
|
-
children:
|
|
22054
|
+
children: QS(e.family, e.label)
|
|
22037
22055
|
}), /* @__PURE__ */ z("span", {
|
|
22038
22056
|
className: "text-[10px] font-mono text-foreground-subtle",
|
|
22039
22057
|
children: s
|
|
@@ -22044,7 +22062,7 @@ function RT({ seeds: e, nodeId: t, busyKey: n, selectedByFamily: r, onSelectFami
|
|
|
22044
22062
|
value: s,
|
|
22045
22063
|
onChange: (t) => i(e.family, t)
|
|
22046
22064
|
}),
|
|
22047
|
-
l && /* @__PURE__ */ z(
|
|
22065
|
+
l && /* @__PURE__ */ z(VT, {
|
|
22048
22066
|
seed: l,
|
|
22049
22067
|
nodeId: t,
|
|
22050
22068
|
busyKey: n,
|
|
@@ -22064,7 +22082,7 @@ function RT({ seeds: e, nodeId: t, busyKey: n, selectedByFamily: r, onSelectFami
|
|
|
22064
22082
|
className: "text-[10px] font-mono text-foreground-subtle",
|
|
22065
22083
|
children: e.modelId
|
|
22066
22084
|
})]
|
|
22067
|
-
}), /* @__PURE__ */ z(
|
|
22085
|
+
}), /* @__PURE__ */ z(VT, {
|
|
22068
22086
|
seed: e,
|
|
22069
22087
|
nodeId: t,
|
|
22070
22088
|
busyKey: n,
|
|
@@ -22073,11 +22091,11 @@ function RT({ seeds: e, nodeId: t, busyKey: n, selectedByFamily: r, onSelectFami
|
|
|
22073
22091
|
}, `${e.stepId}:${e.modelId}`))]
|
|
22074
22092
|
});
|
|
22075
22093
|
}
|
|
22076
|
-
function
|
|
22094
|
+
function UT({ trpc: e, refreshKey: t, nodeId: r }) {
|
|
22077
22095
|
let [i, o] = a([]), [s, c] = a(""), [u, d] = a(!0), [f, p] = a(null), [h, g] = a(null), [_, v] = a(null), [y, b] = a({}), x = n(async () => {
|
|
22078
22096
|
p(null);
|
|
22079
22097
|
try {
|
|
22080
|
-
let t = await
|
|
22098
|
+
let t = await TC(e, r);
|
|
22081
22099
|
o(t), c((e) => e && t.some((t) => t.stepId === e) ? e : t[0]?.stepId ?? "");
|
|
22082
22100
|
} catch (e) {
|
|
22083
22101
|
p(e instanceof Error ? e.message : "Failed to load catalog");
|
|
@@ -22088,7 +22106,7 @@ function zT({ trpc: e, refreshKey: t, nodeId: r }) {
|
|
|
22088
22106
|
m(() => {
|
|
22089
22107
|
d(!0), x();
|
|
22090
22108
|
}, [x, t]);
|
|
22091
|
-
let S = l(() =>
|
|
22109
|
+
let S = l(() => $S(i), [i]), C = l(() => eC(i, s).filter((e) => e.provider === "camstack"), [i, s]), w = l(() => Je(tC(C).map(rC)), [C]), T = l(() => {
|
|
22092
22110
|
let e = /* @__PURE__ */ new Map();
|
|
22093
22111
|
for (let t of C) e.set(t.modelId, t);
|
|
22094
22112
|
return e;
|
|
@@ -22103,8 +22121,8 @@ function zT({ trpc: e, refreshKey: t, nodeId: r }) {
|
|
|
22103
22121
|
return !n && Object.keys(e).length === Object.keys(t).length ? e : t;
|
|
22104
22122
|
});
|
|
22105
22123
|
}, [w, T]);
|
|
22106
|
-
let E =
|
|
22107
|
-
if (
|
|
22124
|
+
let E = mw(), D = n(async (t, n) => {
|
|
22125
|
+
if (BT(n)) {
|
|
22108
22126
|
g(`${t.stepId}/${t.modelId}/${n}`), v(null);
|
|
22109
22127
|
try {
|
|
22110
22128
|
await E.run({
|
|
@@ -22120,7 +22138,7 @@ function zT({ trpc: e, refreshKey: t, nodeId: r }) {
|
|
|
22120
22138
|
}],
|
|
22121
22139
|
initialLog: `Downloading ${t.modelId} (${n}) → ${r}…`
|
|
22122
22140
|
}, async ({ appendLog: i, patchSteps: a }) => {
|
|
22123
|
-
await
|
|
22141
|
+
await DC(e, {
|
|
22124
22142
|
addonId: t.stepId,
|
|
22125
22143
|
modelId: t.modelId,
|
|
22126
22144
|
format: n,
|
|
@@ -22156,7 +22174,7 @@ function zT({ trpc: e, refreshKey: t, nodeId: r }) {
|
|
|
22156
22174
|
className: "rounded-md border border-danger/30 bg-danger/10 px-3 py-2 text-xs text-danger",
|
|
22157
22175
|
children: _
|
|
22158
22176
|
}),
|
|
22159
|
-
/* @__PURE__ */ z(
|
|
22177
|
+
/* @__PURE__ */ z($C, {
|
|
22160
22178
|
label: "Step",
|
|
22161
22179
|
children: /* @__PURE__ */ z(Ga, {
|
|
22162
22180
|
"aria-label": "Step",
|
|
@@ -22175,7 +22193,7 @@ function zT({ trpc: e, refreshKey: t, nodeId: r }) {
|
|
|
22175
22193
|
C.length === 0 ? /* @__PURE__ */ z("div", {
|
|
22176
22194
|
className: "rounded-xl border border-border bg-surface text-center text-xs text-foreground-subtle italic py-10",
|
|
22177
22195
|
children: "No CamStack models for this step."
|
|
22178
|
-
}) : /* @__PURE__ */ z(
|
|
22196
|
+
}) : /* @__PURE__ */ z(HT, {
|
|
22179
22197
|
seeds: C,
|
|
22180
22198
|
nodeId: r,
|
|
22181
22199
|
busyKey: h,
|
|
@@ -22189,7 +22207,7 @@ function zT({ trpc: e, refreshKey: t, nodeId: r }) {
|
|
|
22189
22207
|
]
|
|
22190
22208
|
});
|
|
22191
22209
|
}
|
|
22192
|
-
function
|
|
22210
|
+
function WT({ trpc: e, refreshKey: t, source: n, onSourceChange: r, onRegistered: i, onPrefillUpload: o }) {
|
|
22193
22211
|
let [s, c] = a("hub");
|
|
22194
22212
|
return /* @__PURE__ */ B("div", {
|
|
22195
22213
|
className: x,
|
|
@@ -22204,7 +22222,7 @@ function BT({ trpc: e, refreshKey: t, source: n, onSourceChange: r, onRegistered
|
|
|
22204
22222
|
"data-source": n,
|
|
22205
22223
|
role: "group",
|
|
22206
22224
|
"aria-label": "Catalog source",
|
|
22207
|
-
children:
|
|
22225
|
+
children: RT.map((e) => /* @__PURE__ */ z("button", {
|
|
22208
22226
|
type: "button",
|
|
22209
22227
|
"aria-pressed": n === e.value,
|
|
22210
22228
|
onClick: () => r(e.value),
|
|
@@ -22212,22 +22230,22 @@ function BT({ trpc: e, refreshKey: t, source: n, onSourceChange: r, onRegistered
|
|
|
22212
22230
|
children: e.label
|
|
22213
22231
|
}, e.value))
|
|
22214
22232
|
}),
|
|
22215
|
-
end: /* @__PURE__ */ z(
|
|
22233
|
+
end: /* @__PURE__ */ z(QC, {
|
|
22216
22234
|
selectedNodeId: s,
|
|
22217
22235
|
onSelect: c
|
|
22218
22236
|
})
|
|
22219
22237
|
}),
|
|
22220
|
-
n === "camstack" && /* @__PURE__ */ z(
|
|
22238
|
+
n === "camstack" && /* @__PURE__ */ z(UT, {
|
|
22221
22239
|
trpc: e,
|
|
22222
22240
|
refreshKey: t,
|
|
22223
22241
|
nodeId: s
|
|
22224
22242
|
}),
|
|
22225
|
-
n === "scrypted" && /* @__PURE__ */ z(
|
|
22243
|
+
n === "scrypted" && /* @__PURE__ */ z(Jw, {
|
|
22226
22244
|
trpc: e,
|
|
22227
22245
|
landNodeId: s,
|
|
22228
22246
|
onImported: () => i?.()
|
|
22229
22247
|
}),
|
|
22230
|
-
n === "frigate" && /* @__PURE__ */ z(
|
|
22248
|
+
n === "frigate" && /* @__PURE__ */ z(FT, {
|
|
22231
22249
|
trpc: e,
|
|
22232
22250
|
landNodeId: s,
|
|
22233
22251
|
onRegistered: (e) => {
|
|
@@ -22241,15 +22259,15 @@ function BT({ trpc: e, refreshKey: t, source: n, onSourceChange: r, onRegistered
|
|
|
22241
22259
|
}
|
|
22242
22260
|
//#endregion
|
|
22243
22261
|
//#region src/ensure-formats.ts
|
|
22244
|
-
function
|
|
22262
|
+
function GT(e) {
|
|
22245
22263
|
return e.length === 0 ? "" : ` Engine conversions: ${e.map((e) => e.ok ? `${e.format} ✓${e.nodeId ? ` (${e.nodeId})` : ""}` : `${e.format} ✗ — ${e.error ?? "failed"}`).join("; ")}.`;
|
|
22246
22264
|
}
|
|
22247
22265
|
//#endregion
|
|
22248
22266
|
//#region src/frigate/registration.ts
|
|
22249
|
-
var
|
|
22250
|
-
function
|
|
22251
|
-
let t = e.type === "custom" ? null :
|
|
22252
|
-
if (!
|
|
22267
|
+
var KT = /^[a-zA-Z0-9._-]+$/;
|
|
22268
|
+
function qT(e) {
|
|
22269
|
+
let t = e.type === "custom" ? null : $w[e.type];
|
|
22270
|
+
if (!KT.test(e.modelId)) throw Error(`Model id "${e.modelId}" is invalid — letters, digits, dot, underscore, hyphen only`);
|
|
22253
22271
|
if (!e.name.trim()) throw Error("Display name is required");
|
|
22254
22272
|
if (!e.stepId.trim()) throw Error("Step is required");
|
|
22255
22273
|
if (!(e.inputWidth > 0) || !(e.inputHeight > 0)) throw Error("Input size must be positive");
|
|
@@ -22281,7 +22299,7 @@ function UT(e) {
|
|
|
22281
22299
|
...e.defaultClassFloors === void 0 ? {} : { defaultClassFloors: { ...e.defaultClassFloors } }
|
|
22282
22300
|
} : {
|
|
22283
22301
|
provider: "frigate",
|
|
22284
|
-
group:
|
|
22302
|
+
group: Qw(e.type, e.inputWidth),
|
|
22285
22303
|
...F(e.labels),
|
|
22286
22304
|
defaultClassFloors: Ce("stock", e.defaultClassFloors)
|
|
22287
22305
|
}
|
|
@@ -22294,11 +22312,11 @@ function UT(e) {
|
|
|
22294
22312
|
//#endregion
|
|
22295
22313
|
//#region src/components/StepSelect.tsx
|
|
22296
22314
|
t();
|
|
22297
|
-
function
|
|
22315
|
+
function JT({ trpc: e, label: t = "Step", value: n, onChange: r, slots: i }) {
|
|
22298
22316
|
let [o, s] = a(null), [c, l] = a(null);
|
|
22299
22317
|
return m(() => {
|
|
22300
22318
|
let t = !1;
|
|
22301
|
-
return
|
|
22319
|
+
return CC(e).then((e) => {
|
|
22302
22320
|
if (t) return;
|
|
22303
22321
|
let a = i ? e.filter((e) => i.includes(e.slot)) : e;
|
|
22304
22322
|
s(a), l(null), a.length > 0 && !a.some((e) => e.id === n) && r(a[0].id);
|
|
@@ -22307,7 +22325,7 @@ function WT({ trpc: e, label: t = "Step", value: n, onChange: r, slots: i }) {
|
|
|
22307
22325
|
}), () => {
|
|
22308
22326
|
t = !0;
|
|
22309
22327
|
};
|
|
22310
|
-
}, [e]), /* @__PURE__ */ B(
|
|
22328
|
+
}, [e]), /* @__PURE__ */ B($C, {
|
|
22311
22329
|
label: t,
|
|
22312
22330
|
children: [/* @__PURE__ */ B("select", {
|
|
22313
22331
|
value: n,
|
|
@@ -22340,7 +22358,7 @@ function WT({ trpc: e, label: t = "Step", value: n, onChange: r, slots: i }) {
|
|
|
22340
22358
|
}
|
|
22341
22359
|
//#endregion
|
|
22342
22360
|
//#region src/ui/probe-custom-model.ts
|
|
22343
|
-
var
|
|
22361
|
+
var YT = {
|
|
22344
22362
|
".onnx": "onnx",
|
|
22345
22363
|
".tflite": "tflite",
|
|
22346
22364
|
".pt": "pt",
|
|
@@ -22349,30 +22367,30 @@ var GT = {
|
|
|
22349
22367
|
".mlmodel": "coreml",
|
|
22350
22368
|
".xml": "openvino"
|
|
22351
22369
|
};
|
|
22352
|
-
function
|
|
22370
|
+
function XT(e) {
|
|
22353
22371
|
let t = (e.split(/[/?#]/).pop() ?? e).toLowerCase();
|
|
22354
22372
|
if (t.endsWith(".mlpackage")) return ".mlpackage";
|
|
22355
22373
|
let n = t.lastIndexOf(".");
|
|
22356
22374
|
return n >= 0 ? t.slice(n) : "";
|
|
22357
22375
|
}
|
|
22358
|
-
function
|
|
22376
|
+
function ZT(e) {
|
|
22359
22377
|
return (e.split(/[/?#]/).pop() ?? e).replace(/\.(onnx|tflite|pt|pth|xml|mlmodel|mlpackage)$/i, "");
|
|
22360
22378
|
}
|
|
22361
|
-
function
|
|
22379
|
+
function QT(e) {
|
|
22362
22380
|
let t = e.trim().toLowerCase().replace(/[^a-z0-9._-]+/g, "-").replace(/^-+|-+$/g, "");
|
|
22363
22381
|
return t.length > 0 ? t : "custom-model";
|
|
22364
22382
|
}
|
|
22365
|
-
function
|
|
22383
|
+
function $T(e) {
|
|
22366
22384
|
return /\b640\b/.test(e) || /[_-]640([_-]|$)/.test(e) ? 640 : (/\b320\b/.test(e) || /[_-]320([_-]|$)/.test(e), 320);
|
|
22367
22385
|
}
|
|
22368
|
-
function
|
|
22386
|
+
function eE(e) {
|
|
22369
22387
|
let t = e.replace(/[_-]+/g, " ").trim();
|
|
22370
22388
|
return t.length === 0 ? "Custom model" : t.replace(/\b\w/g, (e) => e.toUpperCase());
|
|
22371
22389
|
}
|
|
22372
|
-
function
|
|
22373
|
-
let t = [], n = e.kind === "file" ? e.filename : e.url, r =
|
|
22390
|
+
function tE(e) {
|
|
22391
|
+
let t = [], n = e.kind === "file" ? e.filename : e.url, r = YT[XT(n)] ?? null;
|
|
22374
22392
|
r === null && n.trim().length > 0 && t.push("Could not infer format from extension — pick it below.");
|
|
22375
|
-
let i =
|
|
22393
|
+
let i = ZT(n), a = QT(i), o = eE(i), s = $T(i);
|
|
22376
22394
|
s === 640 ? t.push("Input size guessed 640 from the name.") : t.push("Input size default 320 (edit if the model expects another).");
|
|
22377
22395
|
let c = null;
|
|
22378
22396
|
return e.kind === "file" && typeof e.bytes == "number" && e.bytes > 0 && (c = Number((e.bytes / 1e6).toFixed(1))), t.push("Decode (postprocessor) is not inferred — choose to match the model output."), {
|
|
@@ -22387,13 +22405,13 @@ function ZT(e) {
|
|
|
22387
22405
|
//#endregion
|
|
22388
22406
|
//#region src/tabs/RegisterTab.tsx
|
|
22389
22407
|
t();
|
|
22390
|
-
var
|
|
22408
|
+
var nE = [
|
|
22391
22409
|
"onnx",
|
|
22392
22410
|
"openvino",
|
|
22393
22411
|
"coreml",
|
|
22394
22412
|
"tflite",
|
|
22395
22413
|
"pt"
|
|
22396
|
-
],
|
|
22414
|
+
], rE = [
|
|
22397
22415
|
"yolo",
|
|
22398
22416
|
"yolonas",
|
|
22399
22417
|
"ssd",
|
|
@@ -22406,24 +22424,24 @@ var QT = [
|
|
|
22406
22424
|
"ctc",
|
|
22407
22425
|
"plate-slots",
|
|
22408
22426
|
"saliency"
|
|
22409
|
-
],
|
|
22427
|
+
], iE = [
|
|
22410
22428
|
".onnx",
|
|
22411
22429
|
".tflite",
|
|
22412
22430
|
".pt"
|
|
22413
|
-
],
|
|
22431
|
+
], aE = [{
|
|
22414
22432
|
value: "upload",
|
|
22415
22433
|
label: "Upload file"
|
|
22416
22434
|
}, {
|
|
22417
22435
|
value: "url",
|
|
22418
22436
|
label: "Remote URL"
|
|
22419
22437
|
}];
|
|
22420
|
-
function
|
|
22421
|
-
let s =
|
|
22438
|
+
function oE({ trpc: e, onRegistered: t, initialPrefill: r = null, onPrefillConsumed: i }) {
|
|
22439
|
+
let s = mw(), [c, u] = a("upload"), [d, f] = a(""), [p, h] = a(""), [g, _] = a("object-detection"), [v, y] = a("onnx"), [b, x] = a(""), [S, C] = a(""), [w, T] = a(0), [E, D] = a(320), [O, k] = a(320), [ee, A] = a(""), [te, j] = a(null), [ne, re] = a([]), [M, ie] = a({ state: "idle" }), [ae, oe] = a(!1), [se, N] = a(null), [P, ce] = a(null), le = o(null), F = l(() => eT(ee), [ee]);
|
|
22422
22440
|
m(() => {
|
|
22423
22441
|
r != null && (u("upload"), y(r.format), x(r.postprocessor ?? ""), D(r.inputSize), k(r.inputSize), A(r.labels.join("\n")), j(r.sourceLabel), N(null), ce(null), i?.());
|
|
22424
22442
|
}, [r, i]);
|
|
22425
22443
|
let ue = n((e, t) => {
|
|
22426
|
-
let n =
|
|
22444
|
+
let n = tE(e);
|
|
22427
22445
|
re(n.hints), n.format !== null && y(n.format), D(n.inputSize), k(n.inputSize), (t?.forceId || !d) && f(n.modelId), p || h(n.name), n.sizeMB !== null && e.kind === "url" && T(n.sizeMB);
|
|
22428
22446
|
}, [d, p]), de = n(async (t) => {
|
|
22429
22447
|
N(null), ue({
|
|
@@ -22437,7 +22455,7 @@ function nE({ trpc: e, onRegistered: t, initialPrefill: r = null, onPrefillConsu
|
|
|
22437
22455
|
try {
|
|
22438
22456
|
ie({
|
|
22439
22457
|
state: "done",
|
|
22440
|
-
file: await
|
|
22458
|
+
file: await jC(e, t, (e, t) => {
|
|
22441
22459
|
ie({
|
|
22442
22460
|
state: "uploading",
|
|
22443
22461
|
pct: Math.round(e / t * 100)
|
|
@@ -22479,13 +22497,13 @@ function nE({ trpc: e, onRegistered: t, initialPrefill: r = null, onPrefillConsu
|
|
|
22479
22497
|
sizeMB: w
|
|
22480
22498
|
} : null;
|
|
22481
22499
|
if (n === null) return N(c === "upload" ? "Upload the model file first" : "Model URL is required");
|
|
22482
|
-
if (
|
|
22500
|
+
if (Gw(p)) return N("The display name is not acceptable");
|
|
22483
22501
|
oe(!0);
|
|
22484
22502
|
try {
|
|
22485
|
-
let r =
|
|
22503
|
+
let r = rE.find((e) => e === b), i = qT({
|
|
22486
22504
|
type: "custom",
|
|
22487
22505
|
modelId: d.trim(),
|
|
22488
|
-
name:
|
|
22506
|
+
name: Ww(p) ?? d.trim(),
|
|
22489
22507
|
stepId: g,
|
|
22490
22508
|
source: n,
|
|
22491
22509
|
format: v,
|
|
@@ -22510,11 +22528,11 @@ function nE({ trpc: e, onRegistered: t, initialPrefill: r = null, onPrefillConsu
|
|
|
22510
22528
|
}],
|
|
22511
22529
|
initialLog: `Registering "${i.entry.name}"…`
|
|
22512
22530
|
}, async ({ appendLog: t, patchSteps: n }) => {
|
|
22513
|
-
let r = await
|
|
22531
|
+
let r = await _C(e, i);
|
|
22514
22532
|
n((e) => e.map((e) => e.status === "active" || e.status === "pending" ? {
|
|
22515
22533
|
...e,
|
|
22516
22534
|
status: "done"
|
|
22517
|
-
} : e)), t(`Registered for step ${g}.${
|
|
22535
|
+
} : e)), t(`Registered for step ${g}.${GT(r.conversions)}`);
|
|
22518
22536
|
});
|
|
22519
22537
|
let a = `Registered "${i.entry.name}".`;
|
|
22520
22538
|
ce(a), t(a);
|
|
@@ -22559,7 +22577,7 @@ function nE({ trpc: e, onRegistered: t, initialPrefill: r = null, onPrefillConsu
|
|
|
22559
22577
|
children: "Source"
|
|
22560
22578
|
}), /* @__PURE__ */ z("div", {
|
|
22561
22579
|
className: "inline-flex rounded-md border border-border overflow-hidden",
|
|
22562
|
-
children:
|
|
22580
|
+
children: aE.map((e) => /* @__PURE__ */ z("button", {
|
|
22563
22581
|
type: "button",
|
|
22564
22582
|
onClick: () => {
|
|
22565
22583
|
N(null), ce(null), u(e.value);
|
|
@@ -22581,8 +22599,8 @@ function nE({ trpc: e, onRegistered: t, initialPrefill: r = null, onPrefillConsu
|
|
|
22581
22599
|
". Upload your exported file below."
|
|
22582
22600
|
]
|
|
22583
22601
|
}),
|
|
22584
|
-
c === "upload" ? /* @__PURE__ */ B(
|
|
22585
|
-
label: `Model file (${
|
|
22602
|
+
c === "upload" ? /* @__PURE__ */ B($C, {
|
|
22603
|
+
label: `Model file (${iE.join(" / ")})`,
|
|
22586
22604
|
children: [
|
|
22587
22605
|
/* @__PURE__ */ B("div", {
|
|
22588
22606
|
className: "flex items-center gap-3 flex-wrap",
|
|
@@ -22614,7 +22632,7 @@ function nE({ trpc: e, onRegistered: t, initialPrefill: r = null, onPrefillConsu
|
|
|
22614
22632
|
/* @__PURE__ */ z("input", {
|
|
22615
22633
|
ref: le,
|
|
22616
22634
|
type: "file",
|
|
22617
|
-
accept:
|
|
22635
|
+
accept: iE.join(","),
|
|
22618
22636
|
className: "hidden",
|
|
22619
22637
|
onChange: (e) => {
|
|
22620
22638
|
let t = e.target.files?.[0];
|
|
@@ -22635,13 +22653,13 @@ function nE({ trpc: e, onRegistered: t, initialPrefill: r = null, onPrefillConsu
|
|
|
22635
22653
|
className: "grid grid-cols-1 sm:grid-cols-3 gap-3",
|
|
22636
22654
|
children: [/* @__PURE__ */ z("div", {
|
|
22637
22655
|
className: "sm:col-span-2",
|
|
22638
|
-
children: /* @__PURE__ */ z(
|
|
22656
|
+
children: /* @__PURE__ */ z(ew, {
|
|
22639
22657
|
label: "Model URL / HuggingFace path",
|
|
22640
22658
|
value: S,
|
|
22641
22659
|
onChange: C,
|
|
22642
22660
|
placeholder: "https://… or hf://org/repo/model.onnx"
|
|
22643
22661
|
})
|
|
22644
|
-
}), /* @__PURE__ */ z(
|
|
22662
|
+
}), /* @__PURE__ */ z(tw, {
|
|
22645
22663
|
label: "Size (MB)",
|
|
22646
22664
|
value: w,
|
|
22647
22665
|
onChange: T,
|
|
@@ -22660,12 +22678,12 @@ function nE({ trpc: e, onRegistered: t, initialPrefill: r = null, onPrefillConsu
|
|
|
22660
22678
|
}),
|
|
22661
22679
|
/* @__PURE__ */ B("div", {
|
|
22662
22680
|
className: "grid grid-cols-1 sm:grid-cols-2 gap-3",
|
|
22663
|
-
children: [/* @__PURE__ */ z(
|
|
22681
|
+
children: [/* @__PURE__ */ z(ew, {
|
|
22664
22682
|
label: "Model id",
|
|
22665
22683
|
value: d,
|
|
22666
22684
|
onChange: f,
|
|
22667
22685
|
placeholder: "my-detector"
|
|
22668
|
-
}), /* @__PURE__ */ z(
|
|
22686
|
+
}), /* @__PURE__ */ z(Uw, {
|
|
22669
22687
|
value: p,
|
|
22670
22688
|
onChange: h,
|
|
22671
22689
|
defaultName: d.trim() || "My Detector"
|
|
@@ -22674,18 +22692,18 @@ function nE({ trpc: e, onRegistered: t, initialPrefill: r = null, onPrefillConsu
|
|
|
22674
22692
|
/* @__PURE__ */ B("div", {
|
|
22675
22693
|
className: "grid grid-cols-1 sm:grid-cols-3 gap-3",
|
|
22676
22694
|
children: [
|
|
22677
|
-
/* @__PURE__ */ z(
|
|
22695
|
+
/* @__PURE__ */ z(JT, {
|
|
22678
22696
|
trpc: e,
|
|
22679
22697
|
value: g,
|
|
22680
22698
|
onChange: _
|
|
22681
22699
|
}),
|
|
22682
|
-
/* @__PURE__ */ z(
|
|
22700
|
+
/* @__PURE__ */ z(tw, {
|
|
22683
22701
|
label: "Input width",
|
|
22684
22702
|
value: E,
|
|
22685
22703
|
onChange: D,
|
|
22686
22704
|
min: 1
|
|
22687
22705
|
}),
|
|
22688
|
-
/* @__PURE__ */ z(
|
|
22706
|
+
/* @__PURE__ */ z(tw, {
|
|
22689
22707
|
label: "Input height",
|
|
22690
22708
|
value: O,
|
|
22691
22709
|
onChange: k,
|
|
@@ -22695,21 +22713,21 @@ function nE({ trpc: e, onRegistered: t, initialPrefill: r = null, onPrefillConsu
|
|
|
22695
22713
|
}),
|
|
22696
22714
|
/* @__PURE__ */ B("div", {
|
|
22697
22715
|
className: "grid grid-cols-1 sm:grid-cols-2 gap-3",
|
|
22698
|
-
children: [/* @__PURE__ */ z(
|
|
22716
|
+
children: [/* @__PURE__ */ z($C, {
|
|
22699
22717
|
label: "Format",
|
|
22700
22718
|
children: /* @__PURE__ */ z("select", {
|
|
22701
22719
|
value: v,
|
|
22702
22720
|
onChange: (e) => {
|
|
22703
|
-
let t =
|
|
22721
|
+
let t = nE.find((t) => t === e.target.value);
|
|
22704
22722
|
t !== void 0 && y(t);
|
|
22705
22723
|
},
|
|
22706
22724
|
className: "w-full px-3 py-1.5 text-xs rounded-md border border-border bg-surface text-foreground focus:outline-none focus:border-primary/50",
|
|
22707
|
-
children:
|
|
22725
|
+
children: nE.map((e) => /* @__PURE__ */ z("option", {
|
|
22708
22726
|
value: e,
|
|
22709
22727
|
children: e
|
|
22710
22728
|
}, e))
|
|
22711
22729
|
})
|
|
22712
|
-
}), /* @__PURE__ */ B(
|
|
22730
|
+
}), /* @__PURE__ */ B($C, {
|
|
22713
22731
|
label: "Decode (postprocessor)",
|
|
22714
22732
|
children: [/* @__PURE__ */ B("select", {
|
|
22715
22733
|
value: b,
|
|
@@ -22718,7 +22736,7 @@ function nE({ trpc: e, onRegistered: t, initialPrefill: r = null, onPrefillConsu
|
|
|
22718
22736
|
children: [/* @__PURE__ */ z("option", {
|
|
22719
22737
|
value: "",
|
|
22720
22738
|
children: "Step default"
|
|
22721
|
-
}),
|
|
22739
|
+
}), rE.map((e) => /* @__PURE__ */ z("option", {
|
|
22722
22740
|
value: e,
|
|
22723
22741
|
children: e
|
|
22724
22742
|
}, e))]
|
|
@@ -22728,7 +22746,7 @@ function nE({ trpc: e, onRegistered: t, initialPrefill: r = null, onPrefillConsu
|
|
|
22728
22746
|
})]
|
|
22729
22747
|
})]
|
|
22730
22748
|
}),
|
|
22731
|
-
/* @__PURE__ */ z(
|
|
22749
|
+
/* @__PURE__ */ z($C, {
|
|
22732
22750
|
label: `Labelmap (${F.length} labels — order = model output index)`,
|
|
22733
22751
|
children: /* @__PURE__ */ z("textarea", {
|
|
22734
22752
|
value: ee,
|
|
@@ -22753,7 +22771,7 @@ function nE({ trpc: e, onRegistered: t, initialPrefill: r = null, onPrefillConsu
|
|
|
22753
22771
|
//#endregion
|
|
22754
22772
|
//#region src/tabs/ImportTab.tsx
|
|
22755
22773
|
t();
|
|
22756
|
-
function
|
|
22774
|
+
function sE({ trpc: e, onRegistered: t, initialPrefill: n = null, onPrefillConsumed: r }) {
|
|
22757
22775
|
let [i, o] = a(null), [s, c] = a(null), [l, u] = a(n);
|
|
22758
22776
|
return m(() => {
|
|
22759
22777
|
n !== null && u(n);
|
|
@@ -22769,7 +22787,7 @@ function rE({ trpc: e, onRegistered: t, initialPrefill: n = null, onPrefillConsu
|
|
|
22769
22787
|
className: "rounded-md border border-success/30 bg-success/10 px-3 py-2 text-xs text-success",
|
|
22770
22788
|
children: s
|
|
22771
22789
|
}),
|
|
22772
|
-
/* @__PURE__ */ z(
|
|
22790
|
+
/* @__PURE__ */ z(oE, {
|
|
22773
22791
|
trpc: e,
|
|
22774
22792
|
onRegistered: (e) => {
|
|
22775
22793
|
c(e ?? "Registered."), o(null), t();
|
|
@@ -22784,7 +22802,7 @@ function rE({ trpc: e, onRegistered: t, initialPrefill: n = null, onPrefillConsu
|
|
|
22784
22802
|
}
|
|
22785
22803
|
//#endregion
|
|
22786
22804
|
//#region src/ui/installed-activation.ts
|
|
22787
|
-
function
|
|
22805
|
+
function cE(e, t, n, r, i) {
|
|
22788
22806
|
if (r == null || de(t)) return [];
|
|
22789
22807
|
let a = [];
|
|
22790
22808
|
for (let o of e) o.enabled && i.has(o.format) && Uo(r.models, o.format) && Wo({
|
|
@@ -22798,10 +22816,10 @@ function iE(e, t, n, r, i) {
|
|
|
22798
22816
|
});
|
|
22799
22817
|
return a;
|
|
22800
22818
|
}
|
|
22801
|
-
function
|
|
22819
|
+
function lE(e, t) {
|
|
22802
22820
|
return { [Ne(e)]: t };
|
|
22803
22821
|
}
|
|
22804
|
-
function
|
|
22822
|
+
function uE(e, t, n) {
|
|
22805
22823
|
let r = Object.keys(t).length > 0;
|
|
22806
22824
|
return {
|
|
22807
22825
|
enabled: n ? !0 : e.enabled,
|
|
@@ -22810,18 +22828,18 @@ function oE(e, t, n) {
|
|
|
22810
22828
|
...r ? { steps: t } : {}
|
|
22811
22829
|
};
|
|
22812
22830
|
}
|
|
22813
|
-
function
|
|
22831
|
+
function dE(e, t, n, r) {
|
|
22814
22832
|
let i = new Set(r), a = {};
|
|
22815
22833
|
for (let r of e) {
|
|
22816
22834
|
let e = { ...r.steps };
|
|
22817
22835
|
i.has(r.key) && (e[t] = {
|
|
22818
22836
|
...e[t],
|
|
22819
22837
|
modelId: n
|
|
22820
|
-
}), a[r.key] =
|
|
22838
|
+
}), a[r.key] = uE(r, e, i.has(r.key));
|
|
22821
22839
|
}
|
|
22822
22840
|
return a;
|
|
22823
22841
|
}
|
|
22824
|
-
function
|
|
22842
|
+
function fE(e, t, n, r, i) {
|
|
22825
22843
|
let a = {};
|
|
22826
22844
|
for (let o of e) {
|
|
22827
22845
|
let e = { ...o.steps };
|
|
@@ -22837,52 +22855,52 @@ function cE(e, t, n, r, i) {
|
|
|
22837
22855
|
Object.keys(i).length > 0 ? e[t] = i : delete e[t];
|
|
22838
22856
|
}
|
|
22839
22857
|
}
|
|
22840
|
-
a[o.key] =
|
|
22858
|
+
a[o.key] = uE(o, e, o.key === i);
|
|
22841
22859
|
}
|
|
22842
22860
|
return a;
|
|
22843
22861
|
}
|
|
22844
22862
|
//#endregion
|
|
22845
22863
|
//#region src/ui/installed-inventory.ts
|
|
22846
|
-
function
|
|
22864
|
+
function pE(e) {
|
|
22847
22865
|
return Po(e);
|
|
22848
22866
|
}
|
|
22849
|
-
function
|
|
22867
|
+
function mE(e) {
|
|
22850
22868
|
return e.map((e) => ({
|
|
22851
22869
|
value: e.key,
|
|
22852
|
-
label:
|
|
22870
|
+
label: pE(e),
|
|
22853
22871
|
enabled: e.enabled
|
|
22854
22872
|
}));
|
|
22855
22873
|
}
|
|
22856
|
-
var
|
|
22857
|
-
function
|
|
22858
|
-
let n =
|
|
22874
|
+
var hE = /\[([^\]]+)\]\s*$/;
|
|
22875
|
+
function gE(e, t) {
|
|
22876
|
+
let n = hE.exec(e.engineKey)?.[1];
|
|
22859
22877
|
return n === void 0 ? e.engine.format === t.format ? e.engine.backend === t.backend ? e.engine.device === t.device : t.key === "cpu" && e.engine.device === "cpu" : !1 : n === t.key;
|
|
22860
22878
|
}
|
|
22861
|
-
function
|
|
22879
|
+
function _E(e, t, n, r) {
|
|
22862
22880
|
if (e === null) return null;
|
|
22863
22881
|
let i = `${n}/${r}`;
|
|
22864
|
-
return e.some((e) =>
|
|
22882
|
+
return e.some((e) => gE(e, t) && e.modelsLoaded.includes(i));
|
|
22865
22883
|
}
|
|
22866
|
-
var
|
|
22867
|
-
function
|
|
22884
|
+
var vE = new Set(["audio-classifier"]);
|
|
22885
|
+
function yE(e, t, n) {
|
|
22868
22886
|
return t?.[e] ?? n?.defaultModelId;
|
|
22869
22887
|
}
|
|
22870
|
-
function
|
|
22888
|
+
function bE(e, t) {
|
|
22871
22889
|
if (e.onDisk !== "current") return /* @__PURE__ */ new Set();
|
|
22872
22890
|
let n = t.stepCatalogs[e.stepId], r = new Set([e.format]);
|
|
22873
|
-
return de(e.stepId) ?
|
|
22891
|
+
return de(e.stepId) ? yE(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(cE(t.devices, e.stepId, e.modelId, n, r).map((e) => e.deviceKey));
|
|
22874
22892
|
}
|
|
22875
|
-
function
|
|
22893
|
+
function xE(e, t, n) {
|
|
22876
22894
|
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";
|
|
22877
22895
|
}
|
|
22878
|
-
function
|
|
22879
|
-
let n =
|
|
22896
|
+
function SE(e, t) {
|
|
22897
|
+
let n = bE(e, t), r = t.devices.filter((t) => t.format === e.format).map((r) => ({
|
|
22880
22898
|
deviceKey: r.key,
|
|
22881
|
-
label:
|
|
22899
|
+
label: pE(r),
|
|
22882
22900
|
enabled: r.enabled,
|
|
22883
|
-
loaded:
|
|
22901
|
+
loaded: _E(t.engines, r, e.stepId, e.modelId),
|
|
22884
22902
|
configured: n.has(r.key)
|
|
22885
|
-
})).toSorted((e, t) => e.label.localeCompare(t.label)), i = t.stepCatalogs[e.stepId]?.slot, a =
|
|
22903
|
+
})).toSorted((e, t) => e.label.localeCompare(t.label)), i = t.stepCatalogs[e.stepId]?.slot, a = xE(r, i !== void 0 && vE.has(i), t.engines !== null);
|
|
22886
22904
|
return {
|
|
22887
22905
|
...e,
|
|
22888
22906
|
key: `${e.stepId}::${e.modelId}::${e.format}`,
|
|
@@ -22893,7 +22911,7 @@ function vE(e, t) {
|
|
|
22893
22911
|
removable: a === "idle" || a === "unused"
|
|
22894
22912
|
};
|
|
22895
22913
|
}
|
|
22896
|
-
function
|
|
22914
|
+
function CE(e, t, n) {
|
|
22897
22915
|
return t.onDisk === "missing" ? null : {
|
|
22898
22916
|
stepId: e.stepId,
|
|
22899
22917
|
modelId: e.modelId,
|
|
@@ -22905,17 +22923,17 @@ function yE(e, t, n) {
|
|
|
22905
22923
|
...t.precision === void 0 ? {} : { precision: t.precision },
|
|
22906
22924
|
onDisk: t.onDisk,
|
|
22907
22925
|
origin: n.has(e.modelId) ? "registry" : "pipeline",
|
|
22908
|
-
...
|
|
22926
|
+
...XS(e.supplies)
|
|
22909
22927
|
};
|
|
22910
22928
|
}
|
|
22911
|
-
function
|
|
22929
|
+
function wE(e, t) {
|
|
22912
22930
|
let n = [];
|
|
22913
22931
|
for (let r of e.registry) {
|
|
22914
22932
|
let i = r.entry.id, a = e.availability[i]?.[e.nodeId];
|
|
22915
22933
|
if (a !== void 0) for (let [e, o] of Object.entries(a.formats)) t.has(`${r.stepId}::${i}::${e}`) || n.push({
|
|
22916
22934
|
stepId: r.stepId,
|
|
22917
22935
|
modelId: i,
|
|
22918
|
-
name:
|
|
22936
|
+
name: zS(r.entry),
|
|
22919
22937
|
description: r.entry.description,
|
|
22920
22938
|
provider: we({
|
|
22921
22939
|
id: i,
|
|
@@ -22926,33 +22944,33 @@ function bE(e, t) {
|
|
|
22926
22944
|
sizeMB: o.bytes / 1e6,
|
|
22927
22945
|
onDisk: "current",
|
|
22928
22946
|
origin: "registry",
|
|
22929
|
-
...
|
|
22947
|
+
...XS(VS(r))
|
|
22930
22948
|
});
|
|
22931
22949
|
}
|
|
22932
22950
|
return n;
|
|
22933
22951
|
}
|
|
22934
|
-
function
|
|
22952
|
+
function TE(e) {
|
|
22935
22953
|
let t = new Set(e.registry.map((e) => e.entry.id)), n = e.seeds.flatMap((e) => e.formats.flatMap((n) => {
|
|
22936
|
-
let r =
|
|
22954
|
+
let r = CE(e, n, t);
|
|
22937
22955
|
return r === null ? [] : [r];
|
|
22938
22956
|
})), r = new Set(n.map((e) => `${e.stepId}::${e.modelId}::${e.format}`)), i = new Map(e.registry.map((e) => [e.entry.id, e.entry.description]));
|
|
22939
|
-
return [...n, ...
|
|
22957
|
+
return [...n, ...wE(e, r)].map((e) => ({
|
|
22940
22958
|
...e,
|
|
22941
22959
|
description: i.get(e.modelId) ?? e.description
|
|
22942
|
-
})).map((t) =>
|
|
22960
|
+
})).map((t) => SE(t, e)).toSorted((e, t) => e.name.localeCompare(t.name) || e.format.localeCompare(t.format));
|
|
22943
22961
|
}
|
|
22944
|
-
function
|
|
22962
|
+
function EE(e, t, n) {
|
|
22945
22963
|
let r = n.device === "all" ? void 0 : t.find((e) => e.key === n.device)?.format;
|
|
22946
22964
|
return e.filter((e) => !(n.provider !== "all" && e.provider !== n.provider || n.step !== "all" && e.stepId !== n.step || n.device !== "all" && e.format !== r));
|
|
22947
22965
|
}
|
|
22948
|
-
function
|
|
22966
|
+
function DE(e) {
|
|
22949
22967
|
return e.filter((e) => e.removable).reduce((e, t) => e + t.sizeMB, 0);
|
|
22950
22968
|
}
|
|
22951
|
-
function
|
|
22969
|
+
function OE(e, t, n, r) {
|
|
22952
22970
|
let i = e.devices.filter((e) => e.enabled && e.format === r).map((r) => ({
|
|
22953
22971
|
deviceKey: r.key,
|
|
22954
|
-
label:
|
|
22955
|
-
loaded:
|
|
22972
|
+
label: pE(r),
|
|
22973
|
+
loaded: _E(e.engines, r, t, n)
|
|
22956
22974
|
})).toSorted((e, t) => e.label.localeCompare(t.label)), a = e.stepCatalogs[t]?.models.find((e) => e.id === n), o = e.seeds.find((e) => e.stepId === t && e.modelId === n)?.formats.find((e) => e.format === r)?.onDisk ?? "missing";
|
|
22957
22975
|
return {
|
|
22958
22976
|
format: r,
|
|
@@ -22961,7 +22979,7 @@ function wE(e, t, n, r) {
|
|
|
22961
22979
|
onDisk: o
|
|
22962
22980
|
};
|
|
22963
22981
|
}
|
|
22964
|
-
function
|
|
22982
|
+
function kE(e, t, n) {
|
|
22965
22983
|
return {
|
|
22966
22984
|
stepId: e,
|
|
22967
22985
|
modelId: t,
|
|
@@ -22974,7 +22992,7 @@ function TE(e, t, n) {
|
|
|
22974
22992
|
let r = [...new Set(n.devices.filter((e) => e.enabled).map((e) => e.format))];
|
|
22975
22993
|
return {
|
|
22976
22994
|
nodeId: n.nodeId,
|
|
22977
|
-
entries: r.map((r) =>
|
|
22995
|
+
entries: r.map((r) => OE(n, e, t, r))
|
|
22978
22996
|
};
|
|
22979
22997
|
})
|
|
22980
22998
|
};
|
|
@@ -22982,7 +23000,7 @@ function TE(e, t, n) {
|
|
|
22982
23000
|
//#endregion
|
|
22983
23001
|
//#region src/components/InstalledSettingsModal.tsx
|
|
22984
23002
|
t();
|
|
22985
|
-
function
|
|
23003
|
+
function AE({ trpc: e, nodeId: t, stepId: r, modelId: i, modelName: o, devices: s, deviceKey: c, onClose: l, onDone: u }) {
|
|
22986
23004
|
let [d, f] = a(!1), [p, h] = a(null), [g, _] = a(null), [v, y] = a({
|
|
22987
23005
|
enabled: !0,
|
|
22988
23006
|
modelId: i,
|
|
@@ -22990,7 +23008,7 @@ function EE({ trpc: e, nodeId: t, stepId: r, modelId: i, modelName: o, devices:
|
|
|
22990
23008
|
}), b = s.find((e) => e.key === c);
|
|
22991
23009
|
m(() => {
|
|
22992
23010
|
let n = !1;
|
|
22993
|
-
return
|
|
23011
|
+
return JC(e, r, t).then((e) => {
|
|
22994
23012
|
if (n) return;
|
|
22995
23013
|
_(e);
|
|
22996
23014
|
let t = b?.steps?.[r];
|
|
@@ -23012,9 +23030,9 @@ function EE({ trpc: e, nodeId: t, stepId: r, modelId: i, modelName: o, devices:
|
|
|
23012
23030
|
let x = n(async () => {
|
|
23013
23031
|
f(!0), h(null);
|
|
23014
23032
|
try {
|
|
23015
|
-
await
|
|
23033
|
+
await WC(e, {
|
|
23016
23034
|
agentNodeId: t,
|
|
23017
|
-
inferenceDevices:
|
|
23035
|
+
inferenceDevices: fE(s, r, v.modelId ?? i, v.settings ?? {}, c)
|
|
23018
23036
|
}), u(), l();
|
|
23019
23037
|
} catch (e) {
|
|
23020
23038
|
h(e instanceof Error ? e.message : "Save settings failed");
|
|
@@ -23104,12 +23122,12 @@ function EE({ trpc: e, nodeId: t, stepId: r, modelId: i, modelName: o, devices:
|
|
|
23104
23122
|
//#endregion
|
|
23105
23123
|
//#region src/components/installed/use-cluster-placement.ts
|
|
23106
23124
|
t();
|
|
23107
|
-
async function
|
|
23125
|
+
async function jE(e, t) {
|
|
23108
23126
|
try {
|
|
23109
23127
|
let [n, r, i] = await Promise.all([
|
|
23110
|
-
|
|
23111
|
-
|
|
23112
|
-
|
|
23128
|
+
EC(e, t),
|
|
23129
|
+
HC(e, t),
|
|
23130
|
+
UC(e, t).catch(() => null)
|
|
23113
23131
|
]);
|
|
23114
23132
|
return {
|
|
23115
23133
|
nodeId: t,
|
|
@@ -23125,11 +23143,11 @@ async function DE(e, t) {
|
|
|
23125
23143
|
};
|
|
23126
23144
|
}
|
|
23127
23145
|
}
|
|
23128
|
-
function
|
|
23146
|
+
function ME(e, t, n) {
|
|
23129
23147
|
let [r, i] = a(null), o = t.join("\n");
|
|
23130
23148
|
return m(() => {
|
|
23131
23149
|
let t = !1, n = o.length === 0 ? [] : o.split("\n");
|
|
23132
|
-
return Promise.all(n.map((t) =>
|
|
23150
|
+
return Promise.all(n.map((t) => jE(e, t))).then((e) => {
|
|
23133
23151
|
t || i(e);
|
|
23134
23152
|
}), () => {
|
|
23135
23153
|
t = !0;
|
|
@@ -23143,14 +23161,14 @@ function OE(e, t, n) {
|
|
|
23143
23161
|
//#endregion
|
|
23144
23162
|
//#region src/components/installed/use-online-node-ids.ts
|
|
23145
23163
|
t();
|
|
23146
|
-
function
|
|
23164
|
+
function NE() {
|
|
23147
23165
|
let { nodes: e } = Rr();
|
|
23148
23166
|
return l(() => e.filter((e) => e.isOnline).map((e) => e.id), [e]);
|
|
23149
23167
|
}
|
|
23150
23168
|
//#endregion
|
|
23151
23169
|
//#region src/components/installed/ClusterModelsSection.tsx
|
|
23152
23170
|
t();
|
|
23153
|
-
function
|
|
23171
|
+
function PE({ row: e }) {
|
|
23154
23172
|
if (e.entry === null) return /* @__PURE__ */ z(Ia, {
|
|
23155
23173
|
variant: "danger",
|
|
23156
23174
|
className: "text-[10px] px-1.5 py-0",
|
|
@@ -23178,7 +23196,7 @@ function AE({ row: e }) {
|
|
|
23178
23196
|
})]
|
|
23179
23197
|
});
|
|
23180
23198
|
}
|
|
23181
|
-
var
|
|
23199
|
+
var FE = [
|
|
23182
23200
|
{
|
|
23183
23201
|
key: "node",
|
|
23184
23202
|
header: "Node",
|
|
@@ -23207,11 +23225,11 @@ var jE = [
|
|
|
23207
23225
|
{
|
|
23208
23226
|
key: "state",
|
|
23209
23227
|
header: "State",
|
|
23210
|
-
render: (e) => /* @__PURE__ */ z(
|
|
23228
|
+
render: (e) => /* @__PURE__ */ z(PE, { row: e })
|
|
23211
23229
|
}
|
|
23212
23230
|
];
|
|
23213
|
-
function
|
|
23214
|
-
return
|
|
23231
|
+
function IE(e, t, n) {
|
|
23232
|
+
return kE(e.stepId, t, n).nodes.flatMap((e) => e.entries.length === 0 ? [{
|
|
23215
23233
|
key: e.nodeId,
|
|
23216
23234
|
nodeId: e.nodeId,
|
|
23217
23235
|
entry: null,
|
|
@@ -23222,7 +23240,7 @@ function ME(e, t, n) {
|
|
|
23222
23240
|
entry: t
|
|
23223
23241
|
})));
|
|
23224
23242
|
}
|
|
23225
|
-
function
|
|
23243
|
+
function LE(e, t) {
|
|
23226
23244
|
let n = new Map(e.options.map((e) => [e.id, e.label]));
|
|
23227
23245
|
for (let r of t ?? []) if (r.error === void 0) for (let t of r.seeds) t.stepId === e.stepId && !n.has(t.modelId) && n.set(t.modelId, t.name);
|
|
23228
23246
|
return [...n].map(([e, t]) => ({
|
|
@@ -23230,14 +23248,14 @@ function NE(e, t) {
|
|
|
23230
23248
|
label: t
|
|
23231
23249
|
}));
|
|
23232
23250
|
}
|
|
23233
|
-
function
|
|
23251
|
+
function RE({ step: e, current: t, inputs: n, onChange: r }) {
|
|
23234
23252
|
let [i, o] = a(t);
|
|
23235
23253
|
m(() => o(t), [t]);
|
|
23236
|
-
let s = l(() => n === null ? [] :
|
|
23254
|
+
let s = l(() => n === null ? [] : IE(e, t, n), [
|
|
23237
23255
|
e,
|
|
23238
23256
|
t,
|
|
23239
23257
|
n
|
|
23240
|
-
]), c = l(() =>
|
|
23258
|
+
]), c = l(() => LE(e, n), [e, n]), u = (e) => c.find((t) => t.id === e)?.label ?? e;
|
|
23241
23259
|
return /* @__PURE__ */ B("section", {
|
|
23242
23260
|
"aria-labelledby": `cluster-${e.stepId}`,
|
|
23243
23261
|
className: E,
|
|
@@ -23290,7 +23308,7 @@ function PE({ step: e, current: t, inputs: n, onChange: r }) {
|
|
|
23290
23308
|
/* @__PURE__ */ z("div", {
|
|
23291
23309
|
className: "p-2 sm:p-3",
|
|
23292
23310
|
children: /* @__PURE__ */ z(cc, {
|
|
23293
|
-
columns:
|
|
23311
|
+
columns: FE,
|
|
23294
23312
|
rows: s,
|
|
23295
23313
|
rowKey: (e) => e.key,
|
|
23296
23314
|
minWidthPx: 420,
|
|
@@ -23302,8 +23320,8 @@ function PE({ step: e, current: t, inputs: n, onChange: r }) {
|
|
|
23302
23320
|
]
|
|
23303
23321
|
});
|
|
23304
23322
|
}
|
|
23305
|
-
function
|
|
23306
|
-
let a = Ha(), o =
|
|
23323
|
+
function zE({ trpc: e, refreshKey: t, clusterModels: n, onChanged: r, onError: i }) {
|
|
23324
|
+
let a = Ha(), o = ME(e, NE(), t), s = async (t, n, o) => {
|
|
23307
23325
|
if (await a({
|
|
23308
23326
|
title: "Activate cluster-wide?",
|
|
23309
23327
|
message: `Set "${o}" as the ONE cluster model for ${t}. Shared vector index — every node uses this encoder.`,
|
|
@@ -23311,7 +23329,7 @@ function FE({ trpc: e, refreshKey: t, clusterModels: n, onChanged: r, onError: i
|
|
|
23311
23329
|
cancelLabel: "Cancel",
|
|
23312
23330
|
variant: "default"
|
|
23313
23331
|
})) try {
|
|
23314
|
-
await
|
|
23332
|
+
await KC(e, lE(t, n)), r();
|
|
23315
23333
|
} catch (e) {
|
|
23316
23334
|
i(e instanceof Error ? e.message : "Activate failed");
|
|
23317
23335
|
}
|
|
@@ -23323,7 +23341,7 @@ function FE({ trpc: e, refreshKey: t, clusterModels: n, onChanged: r, onError: i
|
|
|
23323
23341
|
id: "installed-cluster-models",
|
|
23324
23342
|
className: T,
|
|
23325
23343
|
children: "Cluster models"
|
|
23326
|
-
}), Ge.map((e) => /* @__PURE__ */ z(
|
|
23344
|
+
}), Ge.map((e) => /* @__PURE__ */ z(RE, {
|
|
23327
23345
|
step: e,
|
|
23328
23346
|
current: n?.[e.stepId] ?? e.defaultModelId,
|
|
23329
23347
|
inputs: o,
|
|
@@ -23333,19 +23351,19 @@ function FE({ trpc: e, refreshKey: t, clusterModels: n, onChanged: r, onError: i
|
|
|
23333
23351
|
}
|
|
23334
23352
|
//#endregion
|
|
23335
23353
|
//#region src/components/FillBadges.tsx
|
|
23336
|
-
function
|
|
23354
|
+
function BE(e) {
|
|
23337
23355
|
if (e.kind === "mask") return "Emits an instance mask with every detection: the Segmentation step can take its masks from this model instead of running its own.";
|
|
23338
23356
|
if (e.kind === "crop") return e.stepId === "face-detection" ? "Draws face boxes inside people: face detection can refine them for recognition (from a 640 px or larger model input), once \"Use the root model\" is checked on that step." : "Draws plate boxes inside vehicles: plate detection can use them, and the plate reader reads them, once \"Use the root model\" is checked on that step.";
|
|
23339
23357
|
let t = Le[e.stepId] ? `${e.stepId} takes this model's labels by default — its own model does not run` : `${e.stepId} can take this model's labels`;
|
|
23340
23358
|
return e.uncovered.length > 0 ? `${t}; this model cannot produce ${e.uncovered.join(", ")}.` : `${t}, for every class.`;
|
|
23341
23359
|
}
|
|
23342
|
-
function
|
|
23360
|
+
function VE({ supplies: e }) {
|
|
23343
23361
|
return e === void 0 || e.length === 0 ? null : /* @__PURE__ */ z("span", {
|
|
23344
23362
|
className: "flex flex-wrap gap-1",
|
|
23345
23363
|
"data-testid": "fill-badges",
|
|
23346
23364
|
children: e.map((e) => /* @__PURE__ */ z("span", {
|
|
23347
23365
|
className: "inline-flex items-center px-1.5 py-0.5 rounded text-[10px] font-medium border bg-primary/10 text-primary border-primary/30",
|
|
23348
|
-
title:
|
|
23366
|
+
title: BE(e),
|
|
23349
23367
|
children: je(e)
|
|
23350
23368
|
}, e.stepId))
|
|
23351
23369
|
});
|
|
@@ -23353,7 +23371,7 @@ function LE({ supplies: e }) {
|
|
|
23353
23371
|
//#endregion
|
|
23354
23372
|
//#region src/components/InlineRename.tsx
|
|
23355
23373
|
t();
|
|
23356
|
-
function
|
|
23374
|
+
function HE({ name: e, modelId: t, onRename: n, onError: r }) {
|
|
23357
23375
|
let [i, o] = a(null), [s, c] = a(!1);
|
|
23358
23376
|
if (i === null) return /* @__PURE__ */ B("span", {
|
|
23359
23377
|
className: "flex items-center gap-1 min-w-0",
|
|
@@ -23379,7 +23397,7 @@ function RE({ name: e, modelId: t, onRename: n, onError: r }) {
|
|
|
23379
23397
|
})
|
|
23380
23398
|
})]
|
|
23381
23399
|
});
|
|
23382
|
-
let l =
|
|
23400
|
+
let l = RS(i), u = async () => {
|
|
23383
23401
|
if (l.kind !== "invalid") {
|
|
23384
23402
|
c(!0);
|
|
23385
23403
|
try {
|
|
@@ -23450,19 +23468,19 @@ function RE({ name: e, modelId: t, onRename: n, onError: r }) {
|
|
|
23450
23468
|
}
|
|
23451
23469
|
//#endregion
|
|
23452
23470
|
//#region src/components/installed/DeviceChips.tsx
|
|
23453
|
-
function
|
|
23471
|
+
function UE(e) {
|
|
23454
23472
|
return e.enabled ? e.loaded === !0 ? e.configured ? "loaded, configured" : "loaded" : e.configured ? "configured, not loaded" : e.loaded === null ? "load state unknown" : "not used" : "off";
|
|
23455
23473
|
}
|
|
23456
|
-
function
|
|
23474
|
+
function WE(e) {
|
|
23457
23475
|
return e.enabled ? e.loaded === !0 ? "border-success/40 bg-success/10 text-success" : e.configured ? "border-primary/50 bg-primary/10 text-primary" : "border-border bg-surface text-foreground-subtle" : "border-border bg-foreground-subtle/35";
|
|
23458
23476
|
}
|
|
23459
|
-
function
|
|
23477
|
+
function GE({ chip: e }) {
|
|
23460
23478
|
return /* @__PURE__ */ z("span", {
|
|
23461
23479
|
"aria-hidden": !0,
|
|
23462
23480
|
className: G("h-1.5 w-1.5 rounded-full", e.loaded === !0 ? "bg-success" : e.configured ? "border border-primary" : "border border-foreground-subtle/60")
|
|
23463
23481
|
});
|
|
23464
23482
|
}
|
|
23465
|
-
function
|
|
23483
|
+
function KE({ chips: e, onChip: t, disabled: n = !1 }) {
|
|
23466
23484
|
return e.length === 0 ? /* @__PURE__ */ z("span", {
|
|
23467
23485
|
className: "text-[10px] text-foreground-subtle",
|
|
23468
23486
|
children: "no device of this format"
|
|
@@ -23470,15 +23488,15 @@ function HE({ chips: e, onChip: t, disabled: n = !1 }) {
|
|
|
23470
23488
|
className: "flex flex-wrap gap-1",
|
|
23471
23489
|
"data-testid": "installed-device-chips",
|
|
23472
23490
|
children: e.map((e) => {
|
|
23473
|
-
let r =
|
|
23491
|
+
let r = UE(e);
|
|
23474
23492
|
if (!e.enabled) return /* @__PURE__ */ z("span", {
|
|
23475
|
-
className: G(C,
|
|
23493
|
+
className: G(C, WE(e), "min-w-[1.75rem] justify-center px-1.5"),
|
|
23476
23494
|
"data-device-key": e.deviceKey,
|
|
23477
23495
|
"data-state": r,
|
|
23478
23496
|
"aria-label": `${e.label} (${e.deviceKey}): ${r}`,
|
|
23479
23497
|
title: `${e.deviceKey} — ${r}`
|
|
23480
23498
|
}, e.deviceKey);
|
|
23481
|
-
let i = t !== void 0 && !n, a = G(C,
|
|
23499
|
+
let i = t !== void 0 && !n, a = G(C, WE(e), i && "hover:border-primary/60"), o = /* @__PURE__ */ B(it, { children: [/* @__PURE__ */ z(GE, { chip: e }), e.label] });
|
|
23482
23500
|
return i ? /* @__PURE__ */ z("button", {
|
|
23483
23501
|
type: "button",
|
|
23484
23502
|
className: a,
|
|
@@ -23501,7 +23519,7 @@ function HE({ chips: e, onChip: t, disabled: n = !1 }) {
|
|
|
23501
23519
|
}
|
|
23502
23520
|
//#endregion
|
|
23503
23521
|
//#region src/components/installed/UsageBadge.tsx
|
|
23504
|
-
var
|
|
23522
|
+
var qE = {
|
|
23505
23523
|
"in-use": {
|
|
23506
23524
|
label: "in use",
|
|
23507
23525
|
variant: "success",
|
|
@@ -23532,30 +23550,30 @@ var UE = {
|
|
|
23532
23550
|
variant: "default",
|
|
23533
23551
|
title: "The loaded-engine read failed: whether a pool holds it cannot be told."
|
|
23534
23552
|
}
|
|
23535
|
-
},
|
|
23536
|
-
function
|
|
23537
|
-
let t =
|
|
23553
|
+
}, JE = "text-[10px] px-1.5 py-0";
|
|
23554
|
+
function YE({ usage: e }) {
|
|
23555
|
+
let t = qE[e];
|
|
23538
23556
|
return /* @__PURE__ */ z(Ia, {
|
|
23539
23557
|
variant: t.variant,
|
|
23540
|
-
className:
|
|
23558
|
+
className: JE,
|
|
23541
23559
|
title: t.title,
|
|
23542
23560
|
"data-usage": e,
|
|
23543
23561
|
children: t.label
|
|
23544
23562
|
});
|
|
23545
23563
|
}
|
|
23546
|
-
function
|
|
23564
|
+
function XE() {
|
|
23547
23565
|
return /* @__PURE__ */ z(Ia, {
|
|
23548
23566
|
variant: "warning",
|
|
23549
23567
|
style: "outline",
|
|
23550
|
-
className: `${
|
|
23568
|
+
className: `${JE} border-warning/40`,
|
|
23551
23569
|
title: "On disk, but not proven to be the current catalog build: it is replaced the next time the model is needed.",
|
|
23552
23570
|
children: "stale"
|
|
23553
23571
|
});
|
|
23554
23572
|
}
|
|
23555
|
-
function
|
|
23573
|
+
function ZE({ precision: e }) {
|
|
23556
23574
|
return /* @__PURE__ */ z(Ia, {
|
|
23557
23575
|
style: "outline",
|
|
23558
|
-
className: `${
|
|
23576
|
+
className: `${JE} border-border text-foreground-subtle uppercase`,
|
|
23559
23577
|
title: "Numeric precision of this build",
|
|
23560
23578
|
children: e
|
|
23561
23579
|
});
|
|
@@ -23563,13 +23581,13 @@ function qE({ precision: e }) {
|
|
|
23563
23581
|
//#endregion
|
|
23564
23582
|
//#region src/components/installed/InstalledFilesTable.tsx
|
|
23565
23583
|
t();
|
|
23566
|
-
var
|
|
23584
|
+
var QE = {
|
|
23567
23585
|
camstack: "CamStack",
|
|
23568
23586
|
scrypted: "Scrypted",
|
|
23569
23587
|
frigate: "Frigate",
|
|
23570
23588
|
custom: "Custom"
|
|
23571
23589
|
};
|
|
23572
|
-
function
|
|
23590
|
+
function $E({ row: e, onRename: t, onError: n }) {
|
|
23573
23591
|
return /* @__PURE__ */ B("div", {
|
|
23574
23592
|
className: "flex min-w-0 flex-col gap-0.5 whitespace-normal",
|
|
23575
23593
|
"data-testid": "installed-file",
|
|
@@ -23577,7 +23595,7 @@ function YE({ row: e, onRename: t, onError: n }) {
|
|
|
23577
23595
|
"data-usage": e.usage,
|
|
23578
23596
|
"data-removable": e.removable ? "true" : "false",
|
|
23579
23597
|
children: [
|
|
23580
|
-
e.renameable ? /* @__PURE__ */ z(
|
|
23598
|
+
e.renameable ? /* @__PURE__ */ z(HE, {
|
|
23581
23599
|
name: e.name,
|
|
23582
23600
|
modelId: e.modelId,
|
|
23583
23601
|
onRename: t,
|
|
@@ -23598,16 +23616,16 @@ function YE({ row: e, onRename: t, onError: n }) {
|
|
|
23598
23616
|
children: [
|
|
23599
23617
|
e.stepId,
|
|
23600
23618
|
" · ",
|
|
23601
|
-
|
|
23619
|
+
QE[e.provider] ?? e.provider,
|
|
23602
23620
|
e.clusterScoped ? " · cluster model" : "",
|
|
23603
23621
|
e.description ? ` · ${e.description}` : ""
|
|
23604
23622
|
]
|
|
23605
23623
|
}),
|
|
23606
|
-
/* @__PURE__ */ z(
|
|
23624
|
+
/* @__PURE__ */ z(VE, { supplies: e.supplies })
|
|
23607
23625
|
]
|
|
23608
23626
|
});
|
|
23609
23627
|
}
|
|
23610
|
-
function
|
|
23628
|
+
function eD({ row: e }) {
|
|
23611
23629
|
return /* @__PURE__ */ B("span", {
|
|
23612
23630
|
className: "inline-flex flex-wrap items-center gap-1",
|
|
23613
23631
|
children: [
|
|
@@ -23615,12 +23633,12 @@ function XE({ row: e }) {
|
|
|
23615
23633
|
className: "font-mono text-[11px] text-foreground",
|
|
23616
23634
|
children: e.format
|
|
23617
23635
|
}),
|
|
23618
|
-
e.precision !== void 0 && /* @__PURE__ */ z(
|
|
23619
|
-
e.onDisk === "stale" && /* @__PURE__ */ z(
|
|
23636
|
+
e.precision !== void 0 && /* @__PURE__ */ z(ZE, { precision: e.precision }),
|
|
23637
|
+
e.onDisk === "stale" && /* @__PURE__ */ z(XE, {})
|
|
23620
23638
|
]
|
|
23621
23639
|
});
|
|
23622
23640
|
}
|
|
23623
|
-
function
|
|
23641
|
+
function tD({ row: e, busy: t, onRemove: n }) {
|
|
23624
23642
|
return e.removable ? /* @__PURE__ */ B("button", {
|
|
23625
23643
|
type: "button",
|
|
23626
23644
|
className: ee,
|
|
@@ -23634,7 +23652,7 @@ function ZE({ row: e, busy: t, onRemove: n }) {
|
|
|
23634
23652
|
}), "Remove"]
|
|
23635
23653
|
}) : null;
|
|
23636
23654
|
}
|
|
23637
|
-
function
|
|
23655
|
+
function nD() {
|
|
23638
23656
|
let [e, t] = a(/* @__PURE__ */ new Set());
|
|
23639
23657
|
return {
|
|
23640
23658
|
busy: e,
|
|
@@ -23648,8 +23666,8 @@ function QE() {
|
|
|
23648
23666
|
}
|
|
23649
23667
|
};
|
|
23650
23668
|
}
|
|
23651
|
-
function
|
|
23652
|
-
let { busy: o, run: s } =
|
|
23669
|
+
function rD({ rows: e, emptyMessage: t, onRemove: n, onRename: r, onChip: i, onError: a }) {
|
|
23670
|
+
let { busy: o, run: s } = nD(), c = (e, t) => {
|
|
23653
23671
|
s(e.key, async () => {
|
|
23654
23672
|
try {
|
|
23655
23673
|
await t();
|
|
@@ -23665,7 +23683,7 @@ function $E({ rows: e, emptyMessage: t, onRemove: n, onRename: r, onChip: i, onE
|
|
|
23665
23683
|
header: "Model",
|
|
23666
23684
|
nowrap: !1,
|
|
23667
23685
|
sortValue: (e) => e.name,
|
|
23668
|
-
render: (e) => /* @__PURE__ */ z(
|
|
23686
|
+
render: (e) => /* @__PURE__ */ z($E, {
|
|
23669
23687
|
row: e,
|
|
23670
23688
|
onRename: (t) => r(e, t),
|
|
23671
23689
|
onError: a
|
|
@@ -23675,7 +23693,7 @@ function $E({ rows: e, emptyMessage: t, onRemove: n, onRename: r, onChip: i, onE
|
|
|
23675
23693
|
key: "format",
|
|
23676
23694
|
header: "Format",
|
|
23677
23695
|
sortValue: (e) => e.format,
|
|
23678
|
-
render: (e) => /* @__PURE__ */ z(
|
|
23696
|
+
render: (e) => /* @__PURE__ */ z(eD, { row: e })
|
|
23679
23697
|
},
|
|
23680
23698
|
{
|
|
23681
23699
|
key: "size",
|
|
@@ -23684,7 +23702,7 @@ function $E({ rows: e, emptyMessage: t, onRemove: n, onRename: r, onChip: i, onE
|
|
|
23684
23702
|
sortValue: (e) => e.sizeMB,
|
|
23685
23703
|
render: (e) => /* @__PURE__ */ z("span", {
|
|
23686
23704
|
className: "font-mono text-[11px]",
|
|
23687
|
-
children:
|
|
23705
|
+
children: iC(e.sizeMB)
|
|
23688
23706
|
})
|
|
23689
23707
|
},
|
|
23690
23708
|
{
|
|
@@ -23692,7 +23710,7 @@ function $E({ rows: e, emptyMessage: t, onRemove: n, onRename: r, onChip: i, onE
|
|
|
23692
23710
|
header: "Devices",
|
|
23693
23711
|
nowrap: !1,
|
|
23694
23712
|
notSortableReason: "A list of devices has no order that means something.",
|
|
23695
|
-
render: (e) => /* @__PURE__ */ z(
|
|
23713
|
+
render: (e) => /* @__PURE__ */ z(KE, {
|
|
23696
23714
|
chips: e.chips,
|
|
23697
23715
|
disabled: o.has(e.key),
|
|
23698
23716
|
onChip: e.clusterScoped || e.origin !== "pipeline" || e.usage === "outside-pools" ? void 0 : (t) => c(e, () => i(e, t))
|
|
@@ -23702,12 +23720,12 @@ function $E({ rows: e, emptyMessage: t, onRemove: n, onRename: r, onChip: i, onE
|
|
|
23702
23720
|
key: "status",
|
|
23703
23721
|
header: "Status",
|
|
23704
23722
|
sortValue: (e) => e.usage,
|
|
23705
|
-
render: (e) => /* @__PURE__ */ z(
|
|
23723
|
+
render: (e) => /* @__PURE__ */ z(YE, { usage: e.usage })
|
|
23706
23724
|
},
|
|
23707
23725
|
{
|
|
23708
23726
|
key: "actions",
|
|
23709
23727
|
align: "right",
|
|
23710
|
-
render: (e) => /* @__PURE__ */ z(
|
|
23728
|
+
render: (e) => /* @__PURE__ */ z(tD, {
|
|
23711
23729
|
row: e,
|
|
23712
23730
|
busy: o.has(e.key),
|
|
23713
23731
|
onRemove: () => c(e, () => n(e))
|
|
@@ -23728,24 +23746,24 @@ function $E({ rows: e, emptyMessage: t, onRemove: n, onRename: r, onChip: i, onE
|
|
|
23728
23746
|
}
|
|
23729
23747
|
//#endregion
|
|
23730
23748
|
//#region src/components/installed/InstalledFilters.tsx
|
|
23731
|
-
var
|
|
23749
|
+
var iD = [
|
|
23732
23750
|
"camstack",
|
|
23733
23751
|
"scrypted",
|
|
23734
23752
|
"frigate",
|
|
23735
23753
|
"custom"
|
|
23736
|
-
],
|
|
23754
|
+
], aD = {
|
|
23737
23755
|
camstack: "CamStack",
|
|
23738
23756
|
scrypted: "Scrypted",
|
|
23739
23757
|
frigate: "Frigate",
|
|
23740
23758
|
custom: "Custom"
|
|
23741
|
-
},
|
|
23759
|
+
}, oD = [{
|
|
23742
23760
|
value: "all",
|
|
23743
23761
|
label: "All"
|
|
23744
|
-
}, ...
|
|
23762
|
+
}, ...iD.map((e) => ({
|
|
23745
23763
|
value: e,
|
|
23746
|
-
label:
|
|
23764
|
+
label: aD[e]
|
|
23747
23765
|
}))];
|
|
23748
|
-
function
|
|
23766
|
+
function sD(e) {
|
|
23749
23767
|
let t = [{
|
|
23750
23768
|
value: "all",
|
|
23751
23769
|
label: "All devices"
|
|
@@ -23762,7 +23780,7 @@ function rD(e) {
|
|
|
23762
23780
|
role: "group",
|
|
23763
23781
|
"aria-label": "Provider",
|
|
23764
23782
|
"data-testid": "installed-provider-filter",
|
|
23765
|
-
children:
|
|
23783
|
+
children: oD.map((t) => /* @__PURE__ */ z("button", {
|
|
23766
23784
|
type: "button",
|
|
23767
23785
|
"aria-pressed": e.provider === t.value,
|
|
23768
23786
|
onClick: () => e.onProvider(t.value),
|
|
@@ -23799,7 +23817,7 @@ function rD(e) {
|
|
|
23799
23817
|
] }),
|
|
23800
23818
|
end: /* @__PURE__ */ z("div", {
|
|
23801
23819
|
className: "min-w-0 max-w-full overflow-x-auto",
|
|
23802
|
-
children: /* @__PURE__ */ z(
|
|
23820
|
+
children: /* @__PURE__ */ z(QC, {
|
|
23803
23821
|
selectedNodeId: e.nodeId,
|
|
23804
23822
|
onSelect: e.onNode
|
|
23805
23823
|
})
|
|
@@ -23809,27 +23827,27 @@ function rD(e) {
|
|
|
23809
23827
|
//#endregion
|
|
23810
23828
|
//#region src/tabs/InstalledTab.tsx
|
|
23811
23829
|
t();
|
|
23812
|
-
function
|
|
23830
|
+
function cD(e) {
|
|
23813
23831
|
return e === "camstack" || e === "scrypted" || e === "frigate" || e === "custom" ? e : "all";
|
|
23814
23832
|
}
|
|
23815
|
-
function
|
|
23833
|
+
function lD(e) {
|
|
23816
23834
|
return e === null || e.length === 0 || e === "all" ? "all" : e;
|
|
23817
23835
|
}
|
|
23818
|
-
var
|
|
23819
|
-
function
|
|
23836
|
+
var uD = lD, dD = lD;
|
|
23837
|
+
function fD(e) {
|
|
23820
23838
|
return e === null || e.length === 0 ? "hub" : e;
|
|
23821
23839
|
}
|
|
23822
|
-
function
|
|
23840
|
+
function pD(e) {
|
|
23823
23841
|
return P.some((t) => t === e);
|
|
23824
23842
|
}
|
|
23825
|
-
async function
|
|
23843
|
+
async function mD(e, t) {
|
|
23826
23844
|
let [n, r, i, a, o, s] = await Promise.all([
|
|
23827
|
-
|
|
23828
|
-
|
|
23829
|
-
|
|
23830
|
-
|
|
23831
|
-
|
|
23832
|
-
|
|
23845
|
+
mC(e),
|
|
23846
|
+
hC(e),
|
|
23847
|
+
EC(e, t),
|
|
23848
|
+
HC(e, t).catch(() => []),
|
|
23849
|
+
UC(e, t).catch(() => null),
|
|
23850
|
+
GC(e).catch(() => null)
|
|
23833
23851
|
]);
|
|
23834
23852
|
return {
|
|
23835
23853
|
models: n,
|
|
@@ -23841,15 +23859,15 @@ async function uD(e, t) {
|
|
|
23841
23859
|
clusterModels: s
|
|
23842
23860
|
};
|
|
23843
23861
|
}
|
|
23844
|
-
function
|
|
23845
|
-
let [i, a] =
|
|
23862
|
+
function hD(e, t, r) {
|
|
23863
|
+
let [i, a] = aS(e), o = n((e) => a(e === r ? null : e), [a, r]);
|
|
23846
23864
|
return [t(i), o];
|
|
23847
23865
|
}
|
|
23848
|
-
function
|
|
23849
|
-
let [r, i] =
|
|
23866
|
+
function gD({ trpc: e, refreshKey: t }) {
|
|
23867
|
+
let [r, i] = aS("provider"), o = cD(r), s = n((e) => i(e === "all" ? null : e), [i]), [c, u] = hD("type", uD, "all"), [d, f] = hD("device", dD, "all"), [p, h] = hD("node", fD, "hub"), g = Ha(), [_, v] = a(null), [y, b] = a(null), [S, C] = a(0), [w, T] = a(null), E = n(async () => {
|
|
23850
23868
|
b(null);
|
|
23851
23869
|
try {
|
|
23852
|
-
v(await
|
|
23870
|
+
v(await mD(e, p));
|
|
23853
23871
|
} catch (e) {
|
|
23854
23872
|
b(e instanceof Error ? e.message : "Failed to load installed models");
|
|
23855
23873
|
}
|
|
@@ -23859,7 +23877,7 @@ function fD({ trpc: e, refreshKey: t }) {
|
|
|
23859
23877
|
}, [E, t]);
|
|
23860
23878
|
let O = n(async () => {
|
|
23861
23879
|
await E(), C((e) => e + 1);
|
|
23862
|
-
}, [E]), k = l(() => _ === null ? [] :
|
|
23880
|
+
}, [E]), k = l(() => _ === null ? [] : TE({
|
|
23863
23881
|
nodeId: p,
|
|
23864
23882
|
seeds: _.seeds,
|
|
23865
23883
|
stepCatalogs: _.stepCatalogs,
|
|
@@ -23868,7 +23886,7 @@ function fD({ trpc: e, refreshKey: t }) {
|
|
|
23868
23886
|
clusterModels: _.clusterModels,
|
|
23869
23887
|
registry: _.models,
|
|
23870
23888
|
availability: _.availability
|
|
23871
|
-
}), [_, p]), ee = _?.devices ?? [], A = l(() =>
|
|
23889
|
+
}), [_, p]), ee = _?.devices ?? [], A = l(() => EE(k, ee, {
|
|
23872
23890
|
provider: o,
|
|
23873
23891
|
step: c,
|
|
23874
23892
|
device: d
|
|
@@ -23882,20 +23900,20 @@ function fD({ trpc: e, refreshKey: t }) {
|
|
|
23882
23900
|
let e = new Set(k.map((e) => e.stepId));
|
|
23883
23901
|
return c !== "all" && e.add(c), [...e].toSorted((e, t) => e.localeCompare(t));
|
|
23884
23902
|
}, [k, c]), j = n(async (t) => {
|
|
23885
|
-
if (!t.removable || !
|
|
23903
|
+
if (!t.removable || !pD(t.format)) return;
|
|
23886
23904
|
let n = {
|
|
23887
23905
|
modelId: t.modelId,
|
|
23888
23906
|
format: t.format,
|
|
23889
23907
|
nodeId: p
|
|
23890
23908
|
};
|
|
23891
|
-
t.origin === "registry" ? await
|
|
23909
|
+
t.origin === "registry" ? await yC(e, n) : await OC(e, {
|
|
23892
23910
|
...n,
|
|
23893
23911
|
addonId: t.stepId
|
|
23894
23912
|
});
|
|
23895
23913
|
}, [p, e]), ne = n(async (e) => {
|
|
23896
|
-
!e.removable || !
|
|
23914
|
+
!e.removable || !pD(e.format) || await g({
|
|
23897
23915
|
title: "Delete model file?",
|
|
23898
|
-
message: `Permanently delete the ${e.format} file of "${e.name}" (${e.modelId}, ${
|
|
23916
|
+
message: `Permanently delete the ${e.format} file of "${e.name}" (${e.modelId}, ${iC(e.sizeMB)}) from ${p}. Its other formats stay. This cannot be undone.`,
|
|
23899
23917
|
confirmLabel: "Delete file",
|
|
23900
23918
|
cancelLabel: "Cancel",
|
|
23901
23919
|
variant: "danger"
|
|
@@ -23910,7 +23928,7 @@ function fD({ trpc: e, refreshKey: t }) {
|
|
|
23910
23928
|
let e = re.reduce((e, t) => e + t.sizeMB, 0);
|
|
23911
23929
|
if (await g({
|
|
23912
23930
|
title: "Delete unused model files?",
|
|
23913
|
-
message: `Permanently delete ${re.length} unused ${re.length === 1 ? "file" : "files"} (${
|
|
23931
|
+
message: `Permanently delete ${re.length} unused ${re.length === 1 ? "file" : "files"} (${iC(e)}) from ${p}. No enabled device on this node runs these formats. Other formats of each model stay. This cannot be undone.`,
|
|
23914
23932
|
confirmLabel: "Delete unused files",
|
|
23915
23933
|
cancelLabel: "Cancel",
|
|
23916
23934
|
variant: "danger"
|
|
@@ -23925,7 +23943,7 @@ function fD({ trpc: e, refreshKey: t }) {
|
|
|
23925
23943
|
O,
|
|
23926
23944
|
re
|
|
23927
23945
|
]), ie = n(async (t, n) => {
|
|
23928
|
-
await
|
|
23946
|
+
await vC(e, {
|
|
23929
23947
|
modelId: t.modelId,
|
|
23930
23948
|
name: n
|
|
23931
23949
|
}), await O();
|
|
@@ -23943,9 +23961,9 @@ function fD({ trpc: e, refreshKey: t }) {
|
|
|
23943
23961
|
confirmLabel: "Activate",
|
|
23944
23962
|
cancelLabel: "Cancel",
|
|
23945
23963
|
variant: "default"
|
|
23946
|
-
}) && (await
|
|
23964
|
+
}) && (await WC(e, {
|
|
23947
23965
|
agentNodeId: p,
|
|
23948
|
-
inferenceDevices:
|
|
23966
|
+
inferenceDevices: dE(ee, t.stepId, t.modelId, [n.deviceKey])
|
|
23949
23967
|
}), await O());
|
|
23950
23968
|
}, [
|
|
23951
23969
|
g,
|
|
@@ -23962,14 +23980,14 @@ function fD({ trpc: e, refreshKey: t }) {
|
|
|
23962
23980
|
className: "rounded-md border border-danger/30 bg-danger/10 px-3 py-2 text-xs text-danger",
|
|
23963
23981
|
children: y
|
|
23964
23982
|
}),
|
|
23965
|
-
/* @__PURE__ */ z(
|
|
23983
|
+
/* @__PURE__ */ z(sD, {
|
|
23966
23984
|
provider: o,
|
|
23967
23985
|
onProvider: s,
|
|
23968
23986
|
step: c,
|
|
23969
23987
|
stepOptions: te,
|
|
23970
23988
|
onStep: u,
|
|
23971
23989
|
device: d,
|
|
23972
|
-
deviceOptions:
|
|
23990
|
+
deviceOptions: mE(ee),
|
|
23973
23991
|
onDevice: f,
|
|
23974
23992
|
nodeId: p,
|
|
23975
23993
|
onNode: h
|
|
@@ -23991,10 +24009,10 @@ function fD({ trpc: e, refreshKey: t }) {
|
|
|
23991
24009
|
p,
|
|
23992
24010
|
se ? ` (of ${k.length})` : "",
|
|
23993
24011
|
" · ",
|
|
23994
|
-
|
|
24012
|
+
iC(oe),
|
|
23995
24013
|
" on disk ·",
|
|
23996
24014
|
" ",
|
|
23997
|
-
|
|
24015
|
+
iC(DE(k)),
|
|
23998
24016
|
" reclaimable",
|
|
23999
24017
|
_?.engines === null ? " · loaded state unavailable" : ""
|
|
24000
24018
|
]
|
|
@@ -24010,7 +24028,7 @@ function fD({ trpc: e, refreshKey: t }) {
|
|
|
24010
24028
|
]
|
|
24011
24029
|
})]
|
|
24012
24030
|
}),
|
|
24013
|
-
/* @__PURE__ */ z(
|
|
24031
|
+
/* @__PURE__ */ z(rD, {
|
|
24014
24032
|
rows: A,
|
|
24015
24033
|
emptyMessage: k.length === 0 ? `No model files on ${p}.` : "No files match these filters.",
|
|
24016
24034
|
onRemove: ne,
|
|
@@ -24018,7 +24036,7 @@ function fD({ trpc: e, refreshKey: t }) {
|
|
|
24018
24036
|
onChip: ae,
|
|
24019
24037
|
onError: b
|
|
24020
24038
|
}),
|
|
24021
|
-
/* @__PURE__ */ z(
|
|
24039
|
+
/* @__PURE__ */ z(zE, {
|
|
24022
24040
|
trpc: e,
|
|
24023
24041
|
refreshKey: t + S,
|
|
24024
24042
|
clusterModels: _?.clusterModels ?? null,
|
|
@@ -24026,7 +24044,7 @@ function fD({ trpc: e, refreshKey: t }) {
|
|
|
24026
24044
|
onError: b
|
|
24027
24045
|
})
|
|
24028
24046
|
] }),
|
|
24029
|
-
w && /* @__PURE__ */ z(
|
|
24047
|
+
w && /* @__PURE__ */ z(AE, {
|
|
24030
24048
|
trpc: e,
|
|
24031
24049
|
nodeId: p,
|
|
24032
24050
|
stepId: w.row.stepId,
|
|
@@ -24042,13 +24060,13 @@ function fD({ trpc: e, refreshKey: t }) {
|
|
|
24042
24060
|
}
|
|
24043
24061
|
//#endregion
|
|
24044
24062
|
//#region src/tabs/LogsTab.tsx
|
|
24045
|
-
var
|
|
24046
|
-
function
|
|
24063
|
+
var _D = "model-studio";
|
|
24064
|
+
function vD() {
|
|
24047
24065
|
return /* @__PURE__ */ z("div", {
|
|
24048
24066
|
className: "space-y-3",
|
|
24049
24067
|
"data-testid": "logs-tab",
|
|
24050
24068
|
children: /* @__PURE__ */ z(Pl, {
|
|
24051
|
-
addonId:
|
|
24069
|
+
addonId: _D,
|
|
24052
24070
|
limit: 200,
|
|
24053
24071
|
maxHeight: "max-h-[70vh]",
|
|
24054
24072
|
showFilters: !0,
|
|
@@ -24059,7 +24077,7 @@ function mD() {
|
|
|
24059
24077
|
//#endregion
|
|
24060
24078
|
//#region src/page.tsx
|
|
24061
24079
|
t();
|
|
24062
|
-
var
|
|
24080
|
+
var yD = [
|
|
24063
24081
|
{
|
|
24064
24082
|
id: "catalog",
|
|
24065
24083
|
label: "Catalog"
|
|
@@ -24077,17 +24095,17 @@ var hD = [
|
|
|
24077
24095
|
label: "Logs"
|
|
24078
24096
|
}
|
|
24079
24097
|
];
|
|
24080
|
-
function
|
|
24098
|
+
function bD(e) {
|
|
24081
24099
|
return e === "library" ? "installed" : e === "convert" || e === "settings" ? "catalog" : e === "import" || e === "catalog" || e === "installed" || e === "logs" ? e : "catalog";
|
|
24082
24100
|
}
|
|
24083
|
-
function
|
|
24101
|
+
function xD(e) {
|
|
24084
24102
|
return `model-studio-tab-${e}`;
|
|
24085
24103
|
}
|
|
24086
|
-
function
|
|
24104
|
+
function SD(e) {
|
|
24087
24105
|
return `model-studio-panel-${e}`;
|
|
24088
24106
|
}
|
|
24089
|
-
function
|
|
24090
|
-
let [t, r] =
|
|
24107
|
+
function CD({ trpc: e }) {
|
|
24108
|
+
let [t, r] = aS("tab"), [i, s] = aS("source"), c = bD(t), l = LT(i), [u, d] = a(0), [f, p] = a(null), h = o(!1), g = n(() => d((e) => e + 1), []), _ = n((e, t = !1) => {
|
|
24091
24109
|
r(e === "catalog" ? null : e), e !== "catalog" && i !== null && (e === "import" || e === "logs" || e === "installed") && s(null), t && (h.current = !0);
|
|
24092
24110
|
}, [
|
|
24093
24111
|
r,
|
|
@@ -24097,7 +24115,7 @@ function yD({ trpc: e }) {
|
|
|
24097
24115
|
s(e === "camstack" ? null : e);
|
|
24098
24116
|
}, [s]);
|
|
24099
24117
|
return m(() => {
|
|
24100
|
-
h.current && (h.current = !1, document.getElementById(
|
|
24118
|
+
h.current && (h.current = !1, document.getElementById(xD(c))?.focus());
|
|
24101
24119
|
}, [c]), m(() => {
|
|
24102
24120
|
t === "convert" && r(null), t === "library" && r("installed"), t === "settings" && (r(null), s("frigate")), c !== "catalog" && i !== null && s(null), c === "catalog" && i === "custom" && (r("import"), s(null));
|
|
24103
24121
|
}, [
|
|
@@ -24106,7 +24124,7 @@ function yD({ trpc: e }) {
|
|
|
24106
24124
|
i,
|
|
24107
24125
|
r,
|
|
24108
24126
|
s
|
|
24109
|
-
]), /* @__PURE__ */ z(
|
|
24127
|
+
]), /* @__PURE__ */ z(hw, { children: /* @__PURE__ */ B(Zx, {
|
|
24110
24128
|
icon: xt,
|
|
24111
24129
|
title: "Model Studio",
|
|
24112
24130
|
children: [/* @__PURE__ */ z(Fs, {
|
|
@@ -24116,8 +24134,8 @@ function yD({ trpc: e }) {
|
|
|
24116
24134
|
},
|
|
24117
24135
|
children: /* @__PURE__ */ z(Is, {
|
|
24118
24136
|
"aria-label": "Model Studio sections",
|
|
24119
|
-
children:
|
|
24120
|
-
id:
|
|
24137
|
+
children: yD.map((e) => /* @__PURE__ */ z(Ls, {
|
|
24138
|
+
id: xD(e.id),
|
|
24121
24139
|
value: e.id,
|
|
24122
24140
|
children: e.label
|
|
24123
24141
|
}, e.id))
|
|
@@ -24125,10 +24143,10 @@ function yD({ trpc: e }) {
|
|
|
24125
24143
|
}), /* @__PURE__ */ B("div", {
|
|
24126
24144
|
className: "min-h-[400px]",
|
|
24127
24145
|
role: "tabpanel",
|
|
24128
|
-
id:
|
|
24129
|
-
"aria-labelledby":
|
|
24146
|
+
id: SD(c),
|
|
24147
|
+
"aria-labelledby": xD(c),
|
|
24130
24148
|
children: [
|
|
24131
|
-
c === "catalog" && /* @__PURE__ */ z(
|
|
24149
|
+
c === "catalog" && /* @__PURE__ */ z(WT, {
|
|
24132
24150
|
trpc: e,
|
|
24133
24151
|
refreshKey: u,
|
|
24134
24152
|
source: l,
|
|
@@ -24138,20 +24156,20 @@ function yD({ trpc: e }) {
|
|
|
24138
24156
|
p(e), _("import");
|
|
24139
24157
|
}
|
|
24140
24158
|
}),
|
|
24141
|
-
c === "installed" && /* @__PURE__ */ z(
|
|
24159
|
+
c === "installed" && /* @__PURE__ */ z(gD, {
|
|
24142
24160
|
trpc: e,
|
|
24143
24161
|
refreshKey: u
|
|
24144
24162
|
}),
|
|
24145
|
-
c === "import" && /* @__PURE__ */ z(
|
|
24163
|
+
c === "import" && /* @__PURE__ */ z(sE, {
|
|
24146
24164
|
trpc: e,
|
|
24147
24165
|
onRegistered: g,
|
|
24148
24166
|
initialPrefill: f,
|
|
24149
24167
|
onPrefillConsumed: () => p(null)
|
|
24150
24168
|
}),
|
|
24151
|
-
c === "logs" && /* @__PURE__ */ z(
|
|
24169
|
+
c === "logs" && /* @__PURE__ */ z(vD, {})
|
|
24152
24170
|
]
|
|
24153
24171
|
})]
|
|
24154
24172
|
}) });
|
|
24155
24173
|
}
|
|
24156
24174
|
//#endregion
|
|
24157
|
-
export {
|
|
24175
|
+
export { CD as default };
|