@huggingface/transformers 4.0.0-next.8 → 4.0.0-next.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (44) hide show
  1. package/README.md +2 -2
  2. package/dist/ort-wasm-simd-threaded.jsep.mjs +26 -26
  3. package/dist/transformers.js +338 -230
  4. package/dist/transformers.min.js +22 -18
  5. package/dist/transformers.node.cjs +339 -228
  6. package/dist/transformers.node.min.cjs +23 -19
  7. package/dist/transformers.node.min.mjs +23 -19
  8. package/dist/transformers.node.mjs +336 -228
  9. package/dist/transformers.web.js +220 -112
  10. package/dist/transformers.web.min.js +18 -14
  11. package/package.json +2 -2
  12. package/src/env.js +1 -1
  13. package/src/models/gemma3/image_processing_gemma3.js +3 -0
  14. package/src/models/gemma3/modeling_gemma3.js +4 -1
  15. package/src/models/gemma3/processing_gemma3.js +45 -0
  16. package/src/models/image_processors.js +1 -0
  17. package/src/models/modeling_utils.js +46 -25
  18. package/src/models/processors.js +1 -0
  19. package/src/models/qwen2_vl/modeling_qwen2_vl.js +39 -32
  20. package/src/models/registry.js +2 -8
  21. package/src/utils/model_registry/ModelRegistry.js +36 -0
  22. package/src/utils/model_registry/get_available_dtypes.js +68 -0
  23. package/src/utils/model_registry/get_model_files.js +7 -60
  24. package/src/utils/model_registry/resolve_model_type.js +66 -0
  25. package/types/models/gemma3/image_processing_gemma3.d.ts +4 -0
  26. package/types/models/gemma3/image_processing_gemma3.d.ts.map +1 -0
  27. package/types/models/gemma3/modeling_gemma3.d.ts +4 -1
  28. package/types/models/gemma3/modeling_gemma3.d.ts.map +1 -1
  29. package/types/models/gemma3/processing_gemma3.d.ts +20 -0
  30. package/types/models/gemma3/processing_gemma3.d.ts.map +1 -0
  31. package/types/models/image_processors.d.ts +1 -0
  32. package/types/models/modeling_utils.d.ts +2 -3
  33. package/types/models/modeling_utils.d.ts.map +1 -1
  34. package/types/models/processors.d.ts +1 -0
  35. package/types/models/qwen2_vl/modeling_qwen2_vl.d.ts.map +1 -1
  36. package/types/models/registry.d.ts.map +1 -1
  37. package/types/utils/model_registry/ModelRegistry.d.ts +27 -0
  38. package/types/utils/model_registry/ModelRegistry.d.ts.map +1 -1
  39. package/types/utils/model_registry/get_available_dtypes.d.ts +26 -0
  40. package/types/utils/model_registry/get_available_dtypes.d.ts.map +1 -0
  41. package/types/utils/model_registry/get_model_files.d.ts +25 -0
  42. package/types/utils/model_registry/get_model_files.d.ts.map +1 -1
  43. package/types/utils/model_registry/resolve_model_type.d.ts +24 -0
  44. package/types/utils/model_registry/resolve_model_type.d.ts.map +1 -0
@@ -14,7 +14,7 @@ var __export = (target, all) => {
14
14
  import fs from "fs";
15
15
  import path from "path";
16
16
  import url from "url";
17
- var VERSION = "4.0.0-next.8";
17
+ var VERSION = "4.0.0-next.9";
18
18
  var HAS_SELF = typeof self !== "undefined";
19
19
  var IS_FS_AVAILABLE = !isEmpty(fs);
20
20
  var IS_PATH_AVAILABLE = !isEmpty(path);
@@ -5753,14 +5753,14 @@ var Random = class {
5753
5753
  * @returns {number} A normally distributed random value.
5754
5754
  */
5755
5755
  gauss(mu = 0, sigma = 1) {
5756
- let z = this._gauss_next;
5756
+ let z2 = this._gauss_next;
5757
5757
  this._gauss_next = null;
5758
- if (z === null) {
5758
+ if (z2 === null) {
5759
5759
  const x2pi = this.random() * 2 * Math.PI, g2rad = Math.sqrt(-2 * Math.log(1 - this.random()));
5760
- z = Math.cos(x2pi) * g2rad;
5760
+ z2 = Math.cos(x2pi) * g2rad;
5761
5761
  this._gauss_next = Math.sin(x2pi) * g2rad;
5762
5762
  }
5763
- return mu + z * sigma;
5763
+ return mu + z2 * sigma;
5764
5764
  }
5765
5765
  /**
5766
5766
  * Shuffles an array in-place using the Fisher-Yates algorithm.
@@ -7480,7 +7480,7 @@ var uint16_to_float32 = /* @__PURE__ */ (function() {
7480
7480
  // src/backends/onnx.js
7481
7481
  import * as ONNX_NODE from "onnxruntime-node";
7482
7482
 
7483
- // ../../node_modules/.pnpm/onnxruntime-web@1.25.0-dev.20260307-d626b568e0/node_modules/onnxruntime-web/dist/ort.webgpu.bundle.min.mjs
7483
+ // ../../node_modules/.pnpm/onnxruntime-web@1.25.0-dev.20260323-a99aad9d36/node_modules/onnxruntime-web/dist/ort.webgpu.bundle.min.mjs
7484
7484
  var ort_webgpu_bundle_min_exports = {};
7485
7485
  __export(ort_webgpu_bundle_min_exports, {
7486
7486
  InferenceSession: () => Jf,
@@ -8248,7 +8248,7 @@ async function ts(a = {}) {
8248
8248
  throw L(e = "Aborted(" + e + ")"), W = true, e = new WebAssembly.RuntimeError(e + ". Build with -sASSERTIONS for more info."), R?.(e), e;
8249
8249
  }
8250
8250
  function Ye() {
8251
- return { a: { f: Vs, J: js, k: Hs, p: Ys, l: qs, ta: Js, b: Xs, ca: Qs, Ka: Sn, s: Zs, da: Ln, _a: On, Ga: Bn, Ia: Mn, $a: Cn, Ya: Un, Ra: Dn, Xa: Pn, pa: _n, Ha: Rn, Yb: Nn, Za: kn, Fa: Wn, eb: Ks, Da: ti, Tb: ri, Rb: oi, Ca: si, M: ii, I: ui, Sb: fi, ka: yi, Ub: bi, Ua: wi, Wb: Ti, La: vi, Pb: Ei, la: Si, Ta: Ar, bb: Ai, U: Oi, n: Di, c: Er, sb: Pi, w: _i, L: Ri, z: Ni, j: ki, o: Yn, tb: Wi, G: Fi, T: Gi, h: $i, u: zi, m: Vi, i: ji, Oa: Hi, Pa: Yi, Qa: qi, Ma: Qn, Na: Zn, Qb: Kn, fb: Xi, db: Ki, Y: eu, rb: tu, ma: ru, cb: Qi, gb: nu, ab: ou, Xb: au, N: Ji, hb: su, X: iu, Vb: uu, ob: bu, C: wu, sa: gu, ra: Tu, qb: vu, W: Eu, v: Su, nb: Au, mb: Iu, lb: xu, pb: Lu, kb: Ou, jb: Bu, ib: Mu, Va: ao, Wa: so, Ja: br, ea: io, oa: uo, Sa: fo, na: co, Db: Gf, xa: Df, Eb: Ff, ya: Uf, F: Ef, e: ff, r: sf, x: af, D: gf, Ib: Bf, ba: Lf, B: df, za: Mf, $: Pf, ha: Of, Fb: kf, Gb: Nf, Ba: Sf, Aa: xf, Jb: Af, wa: Wf, aa: Cf, d: cf, A: lf, q: uf, Cb: $f, t: mf, y: Tf, H: pf, E: hf, K: vf, S: _f, ja: wf, _: Rf, Kb: bf, Lb: yf, P: If2, g: Uu, a: Fe, Ob: qe, Hb: Du, ia: Pu, O: _u, qa: Ru, Mb: Nu, Q: ku, zb: Wu, Ab: Fu, ua: Gu, fa: $u, R: zu, Ea: Vu, va: ju, Z: Hu, xb: Yu, Zb: qu, V: Ju, Bb: Xu, ub: Qu, vb: Ku, wb: ef, ga: tf, yb: rf, Nb: nf } };
8251
+ return { a: { f: Vs, J: js, k: Hs, p: Ys, l: qs, ta: Js, b: Xs, ca: Qs, Ka: Sn, q: Zs, da: Ln, _a: On, Ga: Bn, Ia: Mn, $a: Cn, Ya: Un, Ra: Dn, Xa: Pn, pa: _n, Ha: Rn, Yb: Nn, Za: kn, Fa: Wn, eb: Ks, Da: ti, Tb: ri, Rb: oi, Ca: si, M: ii, I: ui, Sb: fi, ka: yi, Ub: bi, Ua: wi, Wb: Ti, La: vi, Pb: Ei, la: Si, Ta: Ar, bb: Ai, U: Oi, n: Di, c: Er, sb: Pi, w: _i, L: Ri, z: Ni, j: ki, o: Yn, tb: Wi, G: Fi, T: Gi, h: $i, u: zi, m: Vi, i: ji, Oa: Hi, Pa: Yi, Qa: qi, Ma: Qn, Na: Zn, Qb: Kn, fb: Xi, db: Ki, Y: eu, rb: tu, ma: ru, cb: Qi, gb: nu, ab: ou, Xb: au, N: Ji, hb: su, X: iu, Vb: uu, ob: bu, C: wu, sa: gu, ra: Tu, qb: vu, W: Eu, v: Su, nb: Au, mb: Iu, lb: xu, pb: Lu, kb: Ou, jb: Bu, ib: Mu, Va: ao, Wa: so, Ja: br, ea: io, oa: uo, Sa: fo, na: co, Db: Gf, xa: Df, Eb: Ff, ya: Uf, F: Ef, e: ff, s: sf, x: af, D: gf, Ib: Bf, ba: Lf, B: lf, za: Mf, $: Pf, ha: Of, Fb: kf, Gb: Nf, Ba: Sf, Aa: xf, Jb: Af, wa: Wf, aa: Cf, d: uf, A: df, r: cf, Cb: $f, t: mf, y: Tf, H: pf, E: hf, K: vf, S: _f, ja: wf, _: Rf, Kb: bf, Lb: yf, P: If2, g: Uu, a: Fe, Ob: qe, Hb: Du, ia: Pu, O: _u, qa: Ru, Mb: Nu, Q: ku, zb: Wu, Ab: Fu, ua: Gu, fa: $u, R: zu, Ea: Vu, va: ju, Z: Hu, xb: Yu, Zb: qu, V: Ju, Bb: Xu, ub: Qu, vb: Ku, wb: ef, ga: tf, yb: rf, Nb: nf } };
8252
8252
  }
8253
8253
  async function bt() {
8254
8254
  function e(o, u) {
@@ -8311,14 +8311,14 @@ async function ts(a = {}) {
8311
8311
  gt.push(t), Je[e.Nc] = t, t.Nc = e.Nc;
8312
8312
  var n = { Oc: "run", he: e.ge, Wc: e.Wc, Nc: e.Nc };
8313
8313
  return t.postMessage(n, e.Yc), 0;
8314
- }, z = 0, V = (e, t, ...n) => {
8314
+ }, G = 0, V = (e, t, ...n) => {
8315
8315
  var o, u = 16 * n.length, c = P(), h = Ft(u), b = h >>> 3;
8316
8316
  for (o of n) typeof o == "bigint" ? ((p(), pe)[b++ >>> 0] = 1n, (p(), pe)[b++ >>> 0] = o) : ((p(), pe)[b++ >>> 0] = 0n, (p(), ae)[b++ >>> 0] = o);
8317
8317
  return e = Lo(e, 0, u, h, t), D(c), e;
8318
8318
  };
8319
8319
  function qe(e) {
8320
8320
  if (i) return V(0, 1, e);
8321
- if (S = e, !(0 < z)) {
8321
+ if (S = e, !(0 < G)) {
8322
8322
  for (var t of gt) Se(t);
8323
8323
  for (t of We) Se(t);
8324
8324
  We = [], gt = [], Je = {}, W = true;
@@ -8363,7 +8363,7 @@ async function ts(a = {}) {
8363
8363
  We.push(e);
8364
8364
  }
8365
8365
  var Fe, zs = (e, t) => {
8366
- z = 0, e = zr(e, t), 0 < z ? S = e : Fr(e);
8366
+ G = 0, e = zr(e, t), 0 < G ? S = e : Fr(e);
8367
8367
  }, Ct = [], Ut = 0, me = (e) => -9007199254740992 > e || 9007199254740992 < e ? NaN : Number(e);
8368
8368
  function Vs(e) {
8369
8369
  var t = new wr(e >>>= 0);
@@ -8715,7 +8715,7 @@ async function ts(a = {}) {
8715
8715
  }
8716
8716
  var he = (e) => {
8717
8717
  if (!W) try {
8718
- if (e(), !(0 < z)) try {
8718
+ if (e(), !(0 < G)) try {
8719
8719
  i ? Wt() && Fr(S) : br(S);
8720
8720
  } catch (t) {
8721
8721
  t instanceof wt || t == "unwind" || y(0, t);
@@ -8743,7 +8743,7 @@ async function ts(a = {}) {
8743
8743
  return (t ? Vr[t] : of[e])(...Ir);
8744
8744
  }
8745
8745
  var Ei = () => {
8746
- z = 0;
8746
+ G = 0;
8747
8747
  };
8748
8748
  function Si(e) {
8749
8749
  e >>>= 0, i ? postMessage({ Oc: "cleanupThread", ie: e }) : yn(Je[e]);
@@ -8763,7 +8763,7 @@ async function ts(a = {}) {
8763
8763
  try {
8764
8764
  return e(...n);
8765
8765
  } finally {
8766
- W || (_t.pop(), Me && Ge === 1 && _t.length === 0 && (Ge = 0, z += 1, Pt(wa), typeof Fibers < "u" && Fibers.De()));
8766
+ W || (_t.pop(), Me && Ge === 1 && _t.length === 0 && (Ge = 0, G += 1, Pt(wa), typeof Fibers < "u" && Fibers.De()));
8767
8767
  }
8768
8768
  };
8769
8769
  return jn.set(e, t), t;
@@ -8778,7 +8778,7 @@ async function ts(a = {}) {
8778
8778
  try {
8779
8779
  var c = (function() {
8780
8780
  var E = (p(), x)[Me + 8 >>> 2 >>> 0];
8781
- return E = Vn.get(E), E = jn.get(E), --z, E();
8781
+ return E = Vn.get(E), E = jn.get(E), --G, E();
8782
8782
  })();
8783
8783
  } catch (E) {
8784
8784
  c = E, u = true;
@@ -8969,7 +8969,7 @@ async function ts(a = {}) {
8969
8969
  return L(ct(e >>> 0, t >>> 0));
8970
8970
  }
8971
8971
  var ou = () => {
8972
- throw z += 1, "unwind";
8972
+ throw G += 1, "unwind";
8973
8973
  };
8974
8974
  function au() {
8975
8975
  return 4294901760;
@@ -9062,15 +9062,15 @@ async function ts(a = {}) {
9062
9062
  }
9063
9063
  (b = (p(), A)[c + 24 >>> 2 >>> 0]) && (b = { label: Ne(b + 4) }, e.defaultQueue = b), e.label = Ne(c + 4);
9064
9064
  }
9065
- z += 1, lt(t, h.requestDevice(e).then((B) => {
9066
- --z, he(() => {
9067
- ce[u >>> 0] = B.queue, ce[o >>> 0] = B, lt(n, B.lost.then((ue) => {
9065
+ G += 1, lt(t, h.requestDevice(e).then((B) => {
9066
+ --G, he(() => {
9067
+ ce[u >>> 0] = B.queue, ce[o >>> 0] = B, G += 1, lt(n, B.lost.then((ue) => {
9068
9068
  he(() => {
9069
9069
  B.onuncapturederror = () => {
9070
9070
  };
9071
9071
  var ye = P(), fe = Ce(ue.message);
9072
9072
  _r(n, yu[ue.reason], fe), D(ye);
9073
- });
9073
+ }), --G;
9074
9074
  })), B.onuncapturederror = (ue) => {
9075
9075
  var ye = 5;
9076
9076
  ue.error instanceof GPUValidationError ? ye = 2 : ue.error instanceof GPUOutOfMemoryError ? ye = 3 : ue.error instanceof GPUInternalError && (ye = 4);
@@ -9079,7 +9079,7 @@ async function ts(a = {}) {
9079
9079
  }, "adapterInfo" in B || (B.adapterInfo = h.info), kr(t, 1, o, 0);
9080
9080
  });
9081
9081
  }, (B) => {
9082
- --z, he(() => {
9082
+ --G, he(() => {
9083
9083
  var ue = P(), ye = Ce(B.message);
9084
9084
  kr(t, 3, o, ye), n && _r(n, 4, ye), D(ue);
9085
9085
  });
@@ -9122,12 +9122,12 @@ async function ts(a = {}) {
9122
9122
  function vu(e, t, n, o, u) {
9123
9123
  e >>>= 0, t = me(t), n = me(n), u >>>= 0;
9124
9124
  var c = O(e);
9125
- Re[e] = [], u == 4294967295 && (u = void 0), z += 1, lt(t, c.mapAsync(n, o >>> 0, u).then(() => {
9126
- --z, he(() => {
9125
+ Re[e] = [], u == 4294967295 && (u = void 0), G += 1, lt(t, c.mapAsync(n, o >>> 0, u).then(() => {
9126
+ --G, he(() => {
9127
9127
  Rr(t, 1, 0);
9128
9128
  });
9129
9129
  }, (h) => {
9130
- --z, he(() => {
9130
+ --G, he(() => {
9131
9131
  P();
9132
9132
  var b = Ce(h.message);
9133
9133
  Rr(t, h.name === "AbortError" ? 4 : h.name === "OperationError" ? 3 : 0, b), delete Re[e];
@@ -9156,12 +9156,12 @@ async function ts(a = {}) {
9156
9156
  return ce[n >>> 0] = u, o && (Re[n] = []), true;
9157
9157
  }
9158
9158
  function Iu(e, t, n, o) {
9159
- e >>>= 0, t = me(t), o >>>= 0, n = du(n >>> 0), e = O(e), z += 1, lt(t, e.createComputePipelineAsync(n).then((u) => {
9160
- --z, he(() => {
9159
+ e >>>= 0, t = me(t), o >>>= 0, n = du(n >>> 0), e = O(e), G += 1, lt(t, e.createComputePipelineAsync(n).then((u) => {
9160
+ --G, he(() => {
9161
9161
  ce[o >>> 0] = u, Pr(t, 1, o, 0);
9162
9162
  });
9163
9163
  }, (u) => {
9164
- --z, he(() => {
9164
+ --G, he(() => {
9165
9165
  var c = P(), h = Ce(u.message);
9166
9166
  Pr(t, u.reason === "validation" ? 3 : u.reason === "internal" ? 4 : 0, o, h), D(c);
9167
9167
  });
@@ -9176,15 +9176,15 @@ async function ts(a = {}) {
9176
9176
  (e = O(e)).onuncapturederror = null, e.destroy();
9177
9177
  };
9178
9178
  function Ou(e, t) {
9179
- t = me(t), e = O(e >>> 0), z += 1, lt(t, e.popErrorScope().then((n) => {
9180
- --z, he(() => {
9179
+ t = me(t), e = O(e >>> 0), G += 1, lt(t, e.popErrorScope().then((n) => {
9180
+ --G, he(() => {
9181
9181
  var o = 5;
9182
9182
  n ? n instanceof GPUValidationError ? o = 2 : n instanceof GPUOutOfMemoryError ? o = 3 : n instanceof GPUInternalError && (o = 4) : o = 1;
9183
9183
  var u = P(), c = n ? Ce(n.message) : 0;
9184
9184
  Nr(t, 1, o, c), D(u);
9185
9185
  });
9186
9186
  }, (n) => {
9187
- --z, he(() => {
9187
+ --G, he(() => {
9188
9188
  var o = P(), u = Ce(n.message);
9189
9189
  Nr(t, 1, 5, u), D(o);
9190
9190
  });
@@ -9195,8 +9195,8 @@ async function ts(a = {}) {
9195
9195
  var u = { featureLevel: pu[(p(), x)[n + 4 >>> 2 >>> 0]], powerPreference: mu[(p(), x)[n + 8 >>> 2 >>> 0]], forceFallbackAdapter: !!(p(), A)[n + 12 >>> 2 >>> 0] };
9196
9196
  (e = (p(), A)[n >>> 2 >>> 0]) !== 0 && (p(), u.Fe = !!(p(), A)[e + 8 >>> 2 >>> 0]);
9197
9197
  }
9198
- "gpu" in navigator ? (z += 1, lt(t, navigator.gpu.requestAdapter(u).then((c) => {
9199
- --z, he(() => {
9198
+ "gpu" in navigator ? (G += 1, lt(t, navigator.gpu.requestAdapter(u).then((c) => {
9199
+ --G, he(() => {
9200
9200
  if (c) ce[o >>> 0] = c, Et(t, 1, o, 0);
9201
9201
  else {
9202
9202
  var h = P(), b = Ce("WebGPU not available on this browser (requestAdapter returned null)");
@@ -9204,7 +9204,7 @@ async function ts(a = {}) {
9204
9204
  }
9205
9205
  });
9206
9206
  }, (c) => {
9207
- --z, he(() => {
9207
+ --G, he(() => {
9208
9208
  var h = P(), b = Ce(c.message);
9209
9209
  Et(t, 4, o, b), D(h);
9210
9210
  });
@@ -9435,7 +9435,7 @@ async function ts(a = {}) {
9435
9435
  Te(`invalid type for getValue: ${t}`);
9436
9436
  }
9437
9437
  }, r.UTF8ToString = ct, r.stringToUTF8 = Pe, r.lengthBytesUTF8 = _e;
9438
- var lo, po, Dr, Wt, xe, pt, mo, ho, yo, bo, wo, go, To, vo, Eo, So, Ao, Pr, _r, Rr, Nr, Et, kr, Io, Wr, xo, Lo, Oo, Fr, Bo, Mo, Gr, N, St, Co, D, Ft, P, Uo, $r, Do, Po, _o, zr, Ro, No, ko, Wo, Fo, Go, $o, zo, Vo, jo, Ho, Yo, qo, Jo, Xo, Qo, Zo, Ko, ea, ta, ra, na, oa, aa, sa, ia, ua, fa, ca, da, la, pa, ma, ha, ya, ba, wa, ga, Ta, ke, of = [qe, yr, En, Ln, On, Bn, Mn, Cn, Un, Dn, Pn, _n, Rn, Nn, kn, Wn, Qn, Zn, Kn, ao, so, io, uo, fo, co], Vr = { 925676: (e, t, n, o, u) => {
9438
+ var lo, po, Dr, Wt, xe, pt, mo, ho, yo, bo, wo, go, To, vo, Eo, So, Ao, Pr, _r, Rr, Nr, Et, kr, Io, Wr, xo, Lo, Oo, Fr, Bo, Mo, Gr, N, St, Co, D, Ft, P, Uo, $r, Do, Po, _o, zr, Ro, No, ko, Wo, Fo, Go, $o, zo, Vo, jo, Ho, Yo, qo, Jo, Xo, Qo, Zo, Ko, ea, ta, ra, na, oa, aa, sa, ia, ua, fa, ca, da, la, pa, ma, ha, ya, ba, wa, ga, Ta, ke, of = [qe, yr, En, Ln, On, Bn, Mn, Cn, Un, Dn, Pn, _n, Rn, Nn, kn, Wn, Qn, Zn, Kn, ao, so, io, uo, fo, co], Vr = { 937012: (e, t, n, o, u) => {
9439
9439
  if (r === void 0 || !r.Uc) return 1;
9440
9440
  if ((e = ct(Number(e >>> 0))).startsWith("./") && (e = e.substring(2)), !(e = r.Uc.get(e))) return 2;
9441
9441
  if (t = Number(t >>> 0), n = Number(n >>> 0), o = Number(o >>> 0), t + n > e.byteLength) return 3;
@@ -9455,11 +9455,11 @@ async function ts(a = {}) {
9455
9455
  } catch {
9456
9456
  return 4;
9457
9457
  }
9458
- }, 926500: (e, t, n) => {
9458
+ }, 937836: (e, t, n) => {
9459
9459
  r.Sd(e, (p(), J).subarray(t >>> 0, t + n >>> 0));
9460
- }, 926564: () => r.me(), 926606: (e) => {
9460
+ }, 937900: () => r.me(), 937942: (e) => {
9461
9461
  r.jd(e);
9462
- }, 926643: () => typeof wasmOffsetConverter < "u" };
9462
+ }, 937979: () => typeof wasmOffsetConverter < "u" };
9463
9463
  function af(e, t, n, o) {
9464
9464
  var u = P();
9465
9465
  try {
@@ -9478,12 +9478,12 @@ async function ts(a = {}) {
9478
9478
  N(1, 0);
9479
9479
  }
9480
9480
  }
9481
- function uf(e, t, n) {
9482
- var o = P();
9481
+ function uf(e) {
9482
+ var t = P();
9483
9483
  try {
9484
- _o(e, t, n);
9485
- } catch (u) {
9486
- if (D(o), u !== u + 0) throw u;
9484
+ Ro(e);
9485
+ } catch (n) {
9486
+ if (D(t), n !== n + 0) throw n;
9487
9487
  N(1, 0);
9488
9488
  }
9489
9489
  }
@@ -9496,25 +9496,16 @@ async function ts(a = {}) {
9496
9496
  N(1, 0);
9497
9497
  }
9498
9498
  }
9499
- function cf(e) {
9500
- var t = P();
9501
- try {
9502
- Ro(e);
9503
- } catch (n) {
9504
- if (D(t), n !== n + 0) throw n;
9505
- N(1, 0);
9506
- }
9507
- }
9508
- function df(e, t, n, o, u, c, h) {
9509
- var b = P();
9499
+ function cf(e, t, n) {
9500
+ var o = P();
9510
9501
  try {
9511
- return Wo(e, t, n, o, u, c, h);
9512
- } catch (E) {
9513
- if (D(b), E !== E + 0) throw E;
9502
+ _o(e, t, n);
9503
+ } catch (u) {
9504
+ if (D(o), u !== u + 0) throw u;
9514
9505
  N(1, 0);
9515
9506
  }
9516
9507
  }
9517
- function lf(e, t) {
9508
+ function df(e, t) {
9518
9509
  var n = P();
9519
9510
  try {
9520
9511
  Vo(e, t);
@@ -9523,6 +9514,15 @@ async function ts(a = {}) {
9523
9514
  N(1, 0);
9524
9515
  }
9525
9516
  }
9517
+ function lf(e, t, n, o, u, c, h) {
9518
+ var b = P();
9519
+ try {
9520
+ return Wo(e, t, n, o, u, c, h);
9521
+ } catch (E) {
9522
+ if (D(b), E !== E + 0) throw E;
9523
+ N(1, 0);
9524
+ }
9525
+ }
9526
9526
  function pf(e, t, n, o, u, c) {
9527
9527
  var h = P();
9528
9528
  try {
@@ -9952,7 +9952,7 @@ var nc;
9952
9952
  var oc;
9953
9953
  var ac;
9954
9954
  var qt;
9955
- var $;
9955
+ var z;
9956
9956
  var je = k(() => {
9957
9957
  "use strict";
9958
9958
  Yt();
@@ -10008,19 +10008,19 @@ var je = k(() => {
10008
10008
  rr = false, ds = true, H(M);
10009
10009
  });
10010
10010
  })), await Promise.race(C), S) throw new Error(`WebAssembly backend initializing failed due to timeout: ${r}ms`);
10011
- }, $ = () => {
10011
+ }, z = () => {
10012
10012
  if (nn && rn) return rn;
10013
10013
  throw new Error("WebAssembly is not initialized yet.");
10014
10014
  };
10015
10015
  });
10016
10016
  var be;
10017
10017
  var Lt;
10018
- var G;
10018
+ var $;
10019
10019
  var nr = k(() => {
10020
10020
  "use strict";
10021
10021
  je();
10022
10022
  be = (a, r) => {
10023
- let s = $(), f = s.lengthBytesUTF8(a) + 1, i = s._malloc(f);
10023
+ let s = z(), f = s.lengthBytesUTF8(a) + 1, i = s._malloc(f);
10024
10024
  return s.stringToUTF8(a, i, f), r.push(i), i;
10025
10025
  }, Lt = (a, r, s, f) => {
10026
10026
  if (typeof a == "object" && a !== null) {
@@ -10034,8 +10034,8 @@ var nr = k(() => {
10034
10034
  else if (typeof d == "boolean") f(l, d ? "1" : "0");
10035
10035
  else throw new Error(`Can't handle extra config type: ${typeof d}`);
10036
10036
  });
10037
- }, G = (a) => {
10038
- let r = $(), s = r.stackSave();
10037
+ }, $ = (a) => {
10038
+ let r = z(), s = r.stackSave();
10039
10039
  try {
10040
10040
  let f = r.PTR_SIZE, i = r.stackAlloc(2 * f);
10041
10041
  r._OrtGetLastError(i, i + f);
@@ -10052,7 +10052,7 @@ var ps = k(() => {
10052
10052
  je();
10053
10053
  nr();
10054
10054
  ls = (a) => {
10055
- let r = $(), s = 0, f = [], i = a || {};
10055
+ let r = z(), s = 0, f = [], i = a || {};
10056
10056
  try {
10057
10057
  if (a?.logSeverityLevel === void 0) i.logSeverityLevel = 2;
10058
10058
  else if (typeof a.logSeverityLevel != "number" || !Number.isInteger(a.logSeverityLevel) || a.logSeverityLevel < 0 || a.logSeverityLevel > 4) throw new Error(`log severity level is not valid: ${a.logSeverityLevel}`);
@@ -10060,9 +10060,9 @@ var ps = k(() => {
10060
10060
  else if (typeof a.logVerbosityLevel != "number" || !Number.isInteger(a.logVerbosityLevel)) throw new Error(`log verbosity level is not valid: ${a.logVerbosityLevel}`);
10061
10061
  a?.terminate === void 0 && (i.terminate = false);
10062
10062
  let d = 0;
10063
- return a?.tag !== void 0 && (d = be(a.tag, f)), s = r._OrtCreateRunOptions(i.logSeverityLevel, i.logVerbosityLevel, !!i.terminate, d), s === 0 && G("Can't create run options."), a?.extra !== void 0 && Lt(a.extra, "", /* @__PURE__ */ new WeakSet(), (l, m) => {
10063
+ return a?.tag !== void 0 && (d = be(a.tag, f)), s = r._OrtCreateRunOptions(i.logSeverityLevel, i.logVerbosityLevel, !!i.terminate, d), s === 0 && $("Can't create run options."), a?.extra !== void 0 && Lt(a.extra, "", /* @__PURE__ */ new WeakSet(), (l, m) => {
10064
10064
  let y = be(l, f), w = be(m, f);
10065
- r._OrtAddRunConfigEntry(s, y, w) !== 0 && G(`Can't set a run config entry: ${l} - ${m}.`);
10065
+ r._OrtAddRunConfigEntry(s, y, w) !== 0 && $(`Can't set a run config entry: ${l} - ${m}.`);
10066
10066
  }), [s, f];
10067
10067
  } catch (d) {
10068
10068
  throw s !== 0 && r._OrtReleaseRunOptions(s), f.forEach((l) => r._free(l)), d;
@@ -10110,7 +10110,7 @@ var hs = k(() => {
10110
10110
  r.use_ort_model_bytes_directly || (r.use_ort_model_bytes_directly = "1"), a.executionProviders && a.executionProviders.some((s) => (typeof s == "string" ? s : s.name) === "webgpu") && (a.enableMemPattern = false);
10111
10111
  }, on = (a, r, s, f) => {
10112
10112
  let i = be(r, f), d = be(s, f);
10113
- $()._OrtAddSessionConfigEntry(a, i, d) !== 0 && G(`Can't set a session config entry: ${r} - ${s}.`);
10113
+ z()._OrtAddSessionConfigEntry(a, i, d) !== 0 && $(`Can't set a session config entry: ${r} - ${s}.`);
10114
10114
  }, ot = (a, r, s, f) => {
10115
10115
  let i = be(r, f), d = be(s, f);
10116
10116
  a.push([i, d]);
@@ -10141,7 +10141,7 @@ var hs = k(() => {
10141
10141
  }
10142
10142
  S.validationMode && ot(l, "validationMode", S.validationMode, s);
10143
10143
  }
10144
- let v = $().webgpuRegisterDevice(g);
10144
+ let v = z().webgpuRegisterDevice(g);
10145
10145
  if (v) {
10146
10146
  let [S, C, R] = v;
10147
10147
  ot(l, "deviceId", S.toString(), s), ot(l, "webgpuInstance", C.toString(), s), ot(l, "webgpuDevice", R.toString(), s);
@@ -10156,13 +10156,13 @@ var hs = k(() => {
10156
10156
  }
10157
10157
  let m = be(d, s), y = l.length, w = 0, T = 0;
10158
10158
  if (y > 0) {
10159
- w = $()._malloc(y * $().PTR_SIZE), s.push(w), T = $()._malloc(y * $().PTR_SIZE), s.push(T);
10160
- for (let g = 0; g < y; g++) $().setValue(w + g * $().PTR_SIZE, l[g][0], "*"), $().setValue(T + g * $().PTR_SIZE, l[g][1], "*");
10159
+ w = z()._malloc(y * z().PTR_SIZE), s.push(w), T = z()._malloc(y * z().PTR_SIZE), s.push(T);
10160
+ for (let g = 0; g < y; g++) z().setValue(w + g * z().PTR_SIZE, l[g][0], "*"), z().setValue(T + g * z().PTR_SIZE, l[g][1], "*");
10161
10161
  }
10162
- await $()._OrtAppendExecutionProvider(a, m, w, T, y) !== 0 && G(`Can't append execution provider: ${d}.`);
10162
+ await z()._OrtAppendExecutionProvider(a, m, w, T, y) !== 0 && $(`Can't append execution provider: ${d}.`);
10163
10163
  }
10164
10164
  }, ms = async (a) => {
10165
- let r = $(), s = 0, f = [], i = a || {};
10165
+ let r = z(), s = 0, f = [], i = a || {};
10166
10166
  uc(i);
10167
10167
  try {
10168
10168
  let d = sc(i.graphOptimizationLevel ?? "all"), l = ic(i.executionMode ?? "sequential"), m = typeof i.logId == "string" ? be(i.logId, f) : 0, y = i.logSeverityLevel ?? 2;
@@ -10170,7 +10170,7 @@ var hs = k(() => {
10170
10170
  let w = i.logVerbosityLevel ?? 0;
10171
10171
  if (!Number.isInteger(w) || w < 0 || w > 4) throw new Error(`log verbosity level is not valid: ${w}`);
10172
10172
  let T = typeof i.optimizedModelFilePath == "string" ? be(i.optimizedModelFilePath, f) : 0;
10173
- if (s = r._OrtCreateSessionOptions(d, !!i.enableCpuMemArena, !!i.enableMemPattern, l, !!i.enableProfiling, 0, m, y, w, T), s === 0 && G("Can't create session options."), i.executionProviders && await fc(s, i, f), i.enableGraphCapture !== void 0) {
10173
+ if (s = r._OrtCreateSessionOptions(d, !!i.enableCpuMemArena, !!i.enableMemPattern, l, !!i.enableProfiling, 0, m, y, w, T), s === 0 && $("Can't create session options."), i.executionProviders && await fc(s, i, f), i.enableGraphCapture !== void 0) {
10174
10174
  if (typeof i.enableGraphCapture != "boolean") throw new Error(`enableGraphCapture must be a boolean value: ${i.enableGraphCapture}`);
10175
10175
  on(s, "enableGraphCapture", i.enableGraphCapture.toString(), f);
10176
10176
  }
@@ -10178,13 +10178,13 @@ var hs = k(() => {
10178
10178
  if (typeof g != "string") throw new Error(`free dimension override name must be a string: ${g}`);
10179
10179
  if (typeof v != "number" || !Number.isInteger(v) || v < 0) throw new Error(`free dimension override value must be a non-negative integer: ${v}`);
10180
10180
  let S = be(g, f);
10181
- r._OrtAddFreeDimensionOverride(s, S, v) !== 0 && G(`Can't set a free dimension override: ${g} - ${v}.`);
10181
+ r._OrtAddFreeDimensionOverride(s, S, v) !== 0 && $(`Can't set a free dimension override: ${g} - ${v}.`);
10182
10182
  }
10183
10183
  return i.extra !== void 0 && Lt(i.extra, "", /* @__PURE__ */ new WeakSet(), (g, v) => {
10184
10184
  on(s, g, v, f);
10185
10185
  }), [s, f];
10186
10186
  } catch (d) {
10187
- throw s !== 0 && r._OrtReleaseSessionOptions(s) !== 0 && G("Can't release session options."), f.forEach((l) => r._free(l)), d;
10187
+ throw s !== 0 && r._OrtReleaseSessionOptions(s) !== 0 && $("Can't release session options."), f.forEach((l) => r._free(l)), d;
10188
10188
  }
10189
10189
  };
10190
10190
  });
@@ -10754,7 +10754,7 @@ var Os = k(() => {
10754
10754
  return l ? l.push(d) : this.temporarySessionTensorIds.set(r, [d]), d;
10755
10755
  }
10756
10756
  uploadTensor(r, s) {
10757
- if (!$().shouldTransferToMLTensor) throw new Error("Trying to upload to a MLTensor while shouldTransferToMLTensor is false");
10757
+ if (!z().shouldTransferToMLTensor) throw new Error("Trying to upload to a MLTensor while shouldTransferToMLTensor is false");
10758
10758
  le("verbose", () => `[WebNN] uploadTensor {tensorId: ${r}, data: ${s.byteLength}}`), this.tensorManager.upload(r, s);
10759
10759
  }
10760
10760
  async downloadTensor(r, s) {
@@ -10860,11 +10860,11 @@ var Kr = k(() => {
10860
10860
  nr();
10861
10861
  sn();
10862
10862
  yc = (a, r) => {
10863
- $()._OrtInit(a, r) !== 0 && G("Can't initialize onnxruntime.");
10863
+ z()._OrtInit(a, r) !== 0 && $("Can't initialize onnxruntime.");
10864
10864
  }, Jt = async (a) => {
10865
10865
  yc(a.wasm.numThreads, Ot(a.logLevel));
10866
10866
  }, Xt = async (a, r) => {
10867
- $().asyncInit?.();
10867
+ z().asyncInit?.();
10868
10868
  let s = a.webgpu.adapter;
10869
10869
  if (r === "webgpu") {
10870
10870
  if (typeof navigator > "u" || !navigator.gpu) throw new Error("WebGPU is not supported in current environment");
@@ -10879,29 +10879,29 @@ var Kr = k(() => {
10879
10879
  }
10880
10880
  }
10881
10881
  if (r === "webnn" && (typeof navigator > "u" || !navigator.ml)) throw new Error("WebNN is not supported in current environment");
10882
- if (r === "webgpu" && $().webgpuInit((f) => {
10882
+ if (r === "webgpu" && z().webgpuInit((f) => {
10883
10883
  a.webgpu.device = f;
10884
10884
  }), r === "webnn") {
10885
10885
  let f = new (Os(), $t(Ls)).WebNNBackend(a);
10886
- $().webnnInit([f, () => f.reserveTensorId(), (i) => f.releaseTensorId(i), async (i, d, l, m, y) => f.ensureTensor(i, d, l, m, y), (i, d) => {
10886
+ z().webnnInit([f, () => f.reserveTensorId(), (i) => f.releaseTensorId(i), async (i, d, l, m, y) => f.ensureTensor(i, d, l, m, y), (i, d) => {
10887
10887
  f.uploadTensor(i, d);
10888
10888
  }, async (i, d) => f.downloadTensor(i, d), (i, d) => f.registerMLContext(i, d), !!a.trace]);
10889
10889
  }
10890
10890
  }, it = /* @__PURE__ */ new Map(), bc = (a) => {
10891
- let r = $(), s = r.stackSave();
10891
+ let r = z(), s = r.stackSave();
10892
10892
  try {
10893
10893
  let f = r.PTR_SIZE, i = r.stackAlloc(2 * f);
10894
- r._OrtGetInputOutputCount(a, i, i + f) !== 0 && G("Can't get session input/output count.");
10894
+ r._OrtGetInputOutputCount(a, i, i + f) !== 0 && $("Can't get session input/output count.");
10895
10895
  let l = f === 4 ? "i32" : "i64";
10896
10896
  return [Number(r.getValue(i, l)), Number(r.getValue(i + f, l))];
10897
10897
  } finally {
10898
10898
  r.stackRestore(s);
10899
10899
  }
10900
10900
  }, Bs = (a, r) => {
10901
- let s = $(), f = s.stackSave(), i = 0;
10901
+ let s = z(), f = s.stackSave(), i = 0;
10902
10902
  try {
10903
10903
  let d = s.PTR_SIZE, l = s.stackAlloc(2 * d);
10904
- s._OrtGetInputOutputMetadata(a, r, l, l + d) !== 0 && G("Can't get session input/output metadata.");
10904
+ s._OrtGetInputOutputMetadata(a, r, l, l + d) !== 0 && $("Can't get session input/output metadata.");
10905
10905
  let y = Number(s.getValue(l, "*"));
10906
10906
  i = Number(s.getValue(l + d, "*"));
10907
10907
  let w = s.HEAP32[i / 4];
@@ -10916,11 +10916,11 @@ var Kr = k(() => {
10916
10916
  s.stackRestore(f), i !== 0 && s._OrtFree(i);
10917
10917
  }
10918
10918
  }, xt = (a) => {
10919
- let r = $(), s = r._malloc(a.byteLength);
10919
+ let r = z(), s = r._malloc(a.byteLength);
10920
10920
  if (s === 0) throw new Error(`Can't create a session. failed to allocate a buffer of size ${a.byteLength}.`);
10921
10921
  return r.HEAPU8.set(a, s), [s, a.byteLength];
10922
10922
  }, Qt = async (a, r) => {
10923
- let s, f, i = $();
10923
+ let s, f, i = z();
10924
10924
  Array.isArray(a) ? [s, f] = a : a.buffer === i.HEAPU8.buffer ? [s, f] = [a.byteOffset, a.byteLength] : [s, f] = xt(a);
10925
10925
  let d = 0, l = 0, m = 0, y = [], w = [], T = [];
10926
10926
  try {
@@ -10941,17 +10941,17 @@ var Kr = k(() => {
10941
10941
  } else i.currentContext = await i.webnnCreateMLContext();
10942
10942
  break;
10943
10943
  }
10944
- d = await i._OrtCreateSession(s, f, l), i.webgpuOnCreateSession?.(d), d === 0 && G("Can't create a session."), i.jsepOnCreateSession?.(), i.currentContext && (i.webnnRegisterMLContext(d, i.currentContext), i.currentContext = void 0, i.shouldTransferToMLTensor = true);
10944
+ d = await i._OrtCreateSession(s, f, l), i.webgpuOnCreateSession?.(d), d === 0 && $("Can't create a session."), i.jsepOnCreateSession?.(), i.currentContext && (i.webnnRegisterMLContext(d, i.currentContext), i.currentContext = void 0, i.shouldTransferToMLTensor = true);
10945
10945
  let [g, v] = bc(d), S = !!r?.enableGraphCapture, C = [], R = [], H = [], U = [], M = [];
10946
10946
  for (let L = 0; L < g; L++) {
10947
10947
  let [W, oe, p] = Bs(d, L);
10948
- W === 0 && G("Can't get an input name."), w.push(W);
10948
+ W === 0 && $("Can't get an input name."), w.push(W);
10949
10949
  let ne = i.UTF8ToString(W);
10950
10950
  C.push(ne), H.push(oe === 0 ? { name: ne, isTensor: false } : { name: ne, isTensor: true, type: or(oe), shape: p });
10951
10951
  }
10952
10952
  for (let L = 0; L < v; L++) {
10953
10953
  let [W, oe, p] = Bs(d, L + g);
10954
- W === 0 && G("Can't get an output name."), T.push(W);
10954
+ W === 0 && $("Can't get an output name."), T.push(W);
10955
10955
  let ne = i.UTF8ToString(W);
10956
10956
  R.push(ne), U.push(oe === 0 ? { name: ne, isTensor: false } : { name: ne, isTensor: true, type: or(oe), shape: p });
10957
10957
  {
@@ -10970,23 +10970,23 @@ var Kr = k(() => {
10970
10970
  }
10971
10971
  }
10972
10972
  let Y = null;
10973
- return M.some((L) => L === "gpu-buffer" || L === "ml-tensor" || L === "ml-tensor-cpu-output") && (m = i._OrtCreateBinding(d), m === 0 && G("Can't create IO binding."), Y = { handle: m, outputPreferredLocations: M, outputPreferredLocationsEncoded: M.map((L) => L === "ml-tensor-cpu-output" ? "ml-tensor" : L).map((L) => an(L)) }), it.set(d, [d, w, T, Y, S, false]), [d, C, R, H, U];
10973
+ return M.some((L) => L === "gpu-buffer" || L === "ml-tensor" || L === "ml-tensor-cpu-output") && (m = i._OrtCreateBinding(d), m === 0 && $("Can't create IO binding."), Y = { handle: m, outputPreferredLocations: M, outputPreferredLocationsEncoded: M.map((L) => L === "ml-tensor-cpu-output" ? "ml-tensor" : L).map((L) => an(L)) }), it.set(d, [d, w, T, Y, S, false]), [d, C, R, H, U];
10974
10974
  } catch (g) {
10975
- throw w.forEach((v) => i._OrtFree(v)), T.forEach((v) => i._OrtFree(v)), m !== 0 && i._OrtReleaseBinding(m) !== 0 && G("Can't release IO binding."), d !== 0 && i._OrtReleaseSession(d) !== 0 && G("Can't release session."), g;
10975
+ throw w.forEach((v) => i._OrtFree(v)), T.forEach((v) => i._OrtFree(v)), m !== 0 && i._OrtReleaseBinding(m) !== 0 && $("Can't release IO binding."), d !== 0 && i._OrtReleaseSession(d) !== 0 && $("Can't release session."), g;
10976
10976
  } finally {
10977
- i._free(s), l !== 0 && i._OrtReleaseSessionOptions(l) !== 0 && G("Can't release session options."), y.forEach((g) => i._free(g)), i.unmountExternalData?.();
10977
+ i._free(s), l !== 0 && i._OrtReleaseSessionOptions(l) !== 0 && $("Can't release session options."), y.forEach((g) => i._free(g)), i.unmountExternalData?.();
10978
10978
  }
10979
10979
  }, Zt = (a) => {
10980
- let r = $(), s = it.get(a);
10980
+ let r = z(), s = it.get(a);
10981
10981
  if (!s) throw new Error(`cannot release session. invalid session id: ${a}`);
10982
10982
  let [f, i, d, l, m] = s;
10983
- l && (m && r._OrtClearBoundOutputs(l.handle) !== 0 && G("Can't clear bound outputs."), r._OrtReleaseBinding(l.handle) !== 0 && G("Can't release IO binding.")), r.jsepOnReleaseSession?.(a), r.webnnOnReleaseSession?.(a), r.webgpuOnReleaseSession?.(a), i.forEach((y) => r._OrtFree(y)), d.forEach((y) => r._OrtFree(y)), r._OrtReleaseSession(f) !== 0 && G("Can't release session."), it.delete(a);
10983
+ l && (m && r._OrtClearBoundOutputs(l.handle) !== 0 && $("Can't clear bound outputs."), r._OrtReleaseBinding(l.handle) !== 0 && $("Can't release IO binding.")), r.jsepOnReleaseSession?.(a), r.webnnOnReleaseSession?.(a), r.webgpuOnReleaseSession?.(a), i.forEach((y) => r._OrtFree(y)), d.forEach((y) => r._OrtFree(y)), r._OrtReleaseSession(f) !== 0 && $("Can't release session."), it.delete(a);
10984
10984
  }, Ms = async (a, r, s, f, i, d, l = false) => {
10985
10985
  if (!a) {
10986
10986
  r.push(0);
10987
10987
  return;
10988
10988
  }
10989
- let m = $(), y = m.PTR_SIZE, w = a[0], T = a[1], g = a[3], v = g, S, C;
10989
+ let m = z(), y = m.PTR_SIZE, w = a[0], T = a[1], g = a[3], v = g, S, C;
10990
10990
  if (w === "string" && (g === "gpu-buffer" || g === "ml-tensor")) throw new Error("String tensor is not supported on GPU.");
10991
10991
  if (l && g !== "gpu-buffer") throw new Error(`External buffer must be provided for input/output index ${d} when enableGraphCapture is true.`);
10992
10992
  if (g === "gpu-buffer") {
@@ -11030,12 +11030,12 @@ var Kr = k(() => {
11030
11030
  try {
11031
11031
  T.forEach((M, Y) => m.setValue(H + Y * y, M, y === 4 ? "i32" : "i64"));
11032
11032
  let U = m._OrtCreateTensor(He(w), S, C, H, T.length, an(v));
11033
- U === 0 && G(`Can't create tensor for input/output. session=${f}, index=${d}.`), r.push(U);
11033
+ U === 0 && $(`Can't create tensor for input/output. session=${f}, index=${d}.`), r.push(U);
11034
11034
  } finally {
11035
11035
  m.stackRestore(R);
11036
11036
  }
11037
11037
  }, Kt = async (a, r, s, f, i, d) => {
11038
- let l = $(), m = l.PTR_SIZE, y = it.get(a);
11038
+ let l = z(), m = l.PTR_SIZE, y = it.get(a);
11039
11039
  if (!y) throw new Error(`cannot run inference. invalid session id: ${a}`);
11040
11040
  let w = y[0], T = y[1], g = y[2], v = y[3], S = y[4], C = y[5], R = r.length, H = f.length, U = 0, M = [], Y = [], L = [], W = [], oe = [], p = l.stackSave(), ne = l.stackAlloc(R * m), X = l.stackAlloc(R * m), J = l.stackAlloc(H * m), Ue = l.stackAlloc(H * m);
11041
11041
  try {
@@ -11051,33 +11051,33 @@ var Kr = k(() => {
11051
11051
  $e("wasm bindInputsOutputs");
11052
11052
  for (let q = 0; q < R; q++) {
11053
11053
  let we = r[q];
11054
- await l._OrtBindInput(_, T[we], Y[q]) !== 0 && G(`Can't bind input[${q}] for session=${a}.`);
11054
+ await l._OrtBindInput(_, T[we], Y[q]) !== 0 && $(`Can't bind input[${q}] for session=${a}.`);
11055
11055
  }
11056
11056
  for (let q = 0; q < H; q++) {
11057
11057
  let we = f[q];
11058
- i[q]?.[3] ? (oe.push(L[q]), l._OrtBindOutput(_, g[we], L[q], 0) !== 0 && G(`Can't bind pre-allocated output[${q}] for session=${a}.`)) : l._OrtBindOutput(_, g[we], 0, pe[we]) !== 0 && G(`Can't bind output[${q}] to ${ae[q]} for session=${a}.`);
11058
+ i[q]?.[3] ? (oe.push(L[q]), l._OrtBindOutput(_, g[we], L[q], 0) !== 0 && $(`Can't bind pre-allocated output[${q}] for session=${a}.`)) : l._OrtBindOutput(_, g[we], 0, pe[we]) !== 0 && $(`Can't bind output[${q}] to ${ae[q]} for session=${a}.`);
11059
11059
  }
11060
11060
  ze("wasm bindInputsOutputs"), it.set(a, [w, T, g, v, S, true]);
11061
11061
  }
11062
11062
  l.jsepOnRunStart?.(w), l.webnnOnRunStart?.(w);
11063
11063
  let Q;
11064
- v ? Q = await l._OrtRunWithBinding(w, v.handle, H, J, U) : Q = await l._OrtRun(w, X, ne, R, Ue, H, J, U), Q !== 0 && G("failed to call OrtRun().");
11064
+ v ? Q = await l._OrtRunWithBinding(w, v.handle, H, J, U) : Q = await l._OrtRun(w, X, ne, R, Ue, H, J, U), Q !== 0 && $("failed to call OrtRun().");
11065
11065
  let x = [], A = [];
11066
11066
  $e("wasm ProcessOutputTensor");
11067
11067
  for (let _ = 0; _ < H; _++) {
11068
11068
  let ae = Number(l.getValue(J + _ * m, "*"));
11069
11069
  if (ae === L[_] || oe.includes(L[_])) {
11070
- x.push(i[_]), ae !== L[_] && l._OrtReleaseTensor(ae) !== 0 && G("Can't release tensor.");
11070
+ x.push(i[_]), ae !== L[_] && l._OrtReleaseTensor(ae) !== 0 && $("Can't release tensor.");
11071
11071
  continue;
11072
11072
  }
11073
11073
  let pe = l.stackSave(), q = l.stackAlloc(4 * m), we = false, re, se = 0;
11074
11074
  try {
11075
- l._OrtGetTensorData(ae, q, q + m, q + 2 * m, q + 3 * m) !== 0 && G(`Can't access output tensor data on index ${_}.`);
11075
+ l._OrtGetTensorData(ae, q, q + m, q + 2 * m, q + 3 * m) !== 0 && $(`Can't access output tensor data on index ${_}.`);
11076
11076
  let Te = m === 4 ? "i32" : "i64", Ye = Number(l.getValue(q, Te));
11077
11077
  se = l.getValue(q + m, "*");
11078
11078
  let bt = l.getValue(q + m * 2, "*"), wt = Number(l.getValue(q + m * 3, Te)), Se = [];
11079
11079
  for (let ee = 0; ee < wt; ee++) Se.push(Number(l.getValue(bt + ee * m, Te)));
11080
- l._OrtFree(bt) !== 0 && G("Can't free memory for tensor dims.");
11080
+ l._OrtFree(bt) !== 0 && $("Can't free memory for tensor dims.");
11081
11081
  let Ae = Se.reduce((ee, Z) => ee * Z, 1);
11082
11082
  re = or(Ye);
11083
11083
  let Oe = v?.outputPreferredLocations[f[_]];
@@ -11085,24 +11085,24 @@ var Kr = k(() => {
11085
11085
  if (Oe === "gpu-buffer" || Oe === "ml-tensor") throw new Error("String tensor is not supported on GPU.");
11086
11086
  let ee = [];
11087
11087
  for (let Z = 0; Z < Ae; Z++) {
11088
- let z = l.getValue(se + Z * m, "*"), V = l.getValue(se + (Z + 1) * m, "*"), qe = Z === Ae - 1 ? void 0 : V - z;
11089
- ee.push(l.UTF8ToString(z, qe));
11088
+ let G = l.getValue(se + Z * m, "*"), V = l.getValue(se + (Z + 1) * m, "*"), qe = Z === Ae - 1 ? void 0 : V - G;
11089
+ ee.push(l.UTF8ToString(G, qe));
11090
11090
  }
11091
11091
  x.push([re, Se, ee, "cpu"]);
11092
11092
  } else if (Oe === "gpu-buffer" && Ae > 0) {
11093
11093
  let ee = l.webgpuGetBuffer;
11094
11094
  if (!ee) throw new Error('preferredLocation "gpu-buffer" is not supported without using WebGPU.');
11095
- let Z = ee(se), z = mt(Ye, Ae);
11096
- if (z === void 0 || !ar(re)) throw new Error(`Unsupported data type: ${re}`);
11095
+ let Z = ee(se), G = mt(Ye, Ae);
11096
+ if (G === void 0 || !ar(re)) throw new Error(`Unsupported data type: ${re}`);
11097
11097
  we = true;
11098
11098
  {
11099
11099
  l.webgpuRegisterBuffer(Z, a, se);
11100
- let V = l.webgpuCreateDownloader(Z, z, a);
11100
+ let V = l.webgpuCreateDownloader(Z, G, a);
11101
11101
  x.push([re, Se, { gpuBuffer: Z, download: async () => {
11102
11102
  let qe = await V();
11103
11103
  return new (at(re))(qe);
11104
11104
  }, dispose: () => {
11105
- l._OrtReleaseTensor(ae) !== 0 && G("Can't release tensor.");
11105
+ l._OrtReleaseTensor(ae) !== 0 && $("Can't release tensor.");
11106
11106
  } }, "gpu-buffer"]);
11107
11107
  }
11108
11108
  } else if (Oe === "ml-tensor" && Ae > 0) {
@@ -11117,8 +11117,8 @@ var Kr = k(() => {
11117
11117
  } else if (Oe === "ml-tensor-cpu-output" && Ae > 0) {
11118
11118
  let ee = l.webnnCreateMLTensorDownloader(se, re)(), Z = x.length;
11119
11119
  we = true, A.push((async () => {
11120
- let z = [Z, await ee];
11121
- return l.webnnReleaseTensorId(se), l._OrtReleaseTensor(ae), z;
11120
+ let G = [Z, await ee];
11121
+ return l.webnnReleaseTensorId(se), l._OrtReleaseTensor(ae), G;
11122
11122
  })()), x.push([re, Se, [], "cpu"]);
11123
11123
  } else {
11124
11124
  let ee = at(re), Z = new ee(Ae);
@@ -11128,7 +11128,7 @@ var Kr = k(() => {
11128
11128
  l.stackRestore(pe), re === "string" && se && l._free(se), we || l._OrtReleaseTensor(ae);
11129
11129
  }
11130
11130
  }
11131
- v && !S && (l._OrtClearBoundOutputs(v.handle) !== 0 && G("Can't clear bound outputs."), it.set(a, [w, T, g, v, S, false]));
11131
+ v && !S && (l._OrtClearBoundOutputs(v.handle) !== 0 && $("Can't clear bound outputs."), it.set(a, [w, T, g, v, S, false]));
11132
11132
  for (let [_, ae] of await Promise.all(A)) x[_][2] = ae;
11133
11133
  return ze("wasm ProcessOutputTensor"), x;
11134
11134
  } finally {
@@ -11139,10 +11139,10 @@ var Kr = k(() => {
11139
11139
  }), Y.forEach((Q) => l._OrtReleaseTensor(Q)), L.forEach((Q) => l._OrtReleaseTensor(Q)), W.forEach((Q) => l._free(Q)), U !== 0 && l._OrtReleaseRunOptions(U), M.forEach((Q) => l._free(Q));
11140
11140
  }
11141
11141
  }, er = (a) => {
11142
- let r = $(), s = it.get(a);
11142
+ let r = z(), s = it.get(a);
11143
11143
  if (!s) throw new Error("invalid session id");
11144
11144
  let f = s[0], i = r._OrtEndProfiling(f);
11145
- i === 0 && G("Can't get an profile file name."), r._OrtFree(i);
11145
+ i === 0 && $("Can't get an profile file name."), r._OrtFree(i);
11146
11146
  }, tr = (a) => {
11147
11147
  let r = [];
11148
11148
  for (let s of a) {
@@ -11375,7 +11375,7 @@ var $s = k(() => {
11375
11375
  Ve();
11376
11376
  Ve();
11377
11377
  Ve();
11378
- var Xa = "1.25.0-dev.20260307-d626b568e0";
11378
+ var Xa = "1.25.0-dev.20260323-a99aad9d36";
11379
11379
  var Tl = Zr;
11380
11380
  {
11381
11381
  let a = ($s(), $t(Gs)).wasmBackend;
@@ -15731,6 +15731,7 @@ var processors_exports = {};
15731
15731
  __export(processors_exports, {
15732
15732
  ChatterboxProcessor: () => ChatterboxProcessor,
15733
15733
  Florence2Processor: () => Florence2Processor,
15734
+ Gemma3Processor: () => Gemma3Processor,
15734
15735
  Gemma3nProcessor: () => Gemma3nProcessor,
15735
15736
  Glm46VProcessor: () => Glm46VProcessor,
15736
15737
  GraniteSpeechProcessor: () => GraniteSpeechProcessor,
@@ -18721,6 +18722,7 @@ __export(image_processors_exports, {
18721
18722
  DonutImageProcessor: () => DonutImageProcessor,
18722
18723
  EfficientNetImageProcessor: () => EfficientNetImageProcessor,
18723
18724
  GLPNFeatureExtractor: () => GLPNFeatureExtractor,
18725
+ Gemma3ImageProcessor: () => Gemma3ImageProcessor,
18724
18726
  Glm46VImageProcessor: () => Glm46VImageProcessor,
18725
18727
  GroundingDinoImageProcessor: () => GroundingDinoImageProcessor,
18726
18728
  Idefics3ImageProcessor: () => Idefics3ImageProcessor,
@@ -18905,6 +18907,10 @@ var EfficientNetImageProcessor = class extends ImageProcessor {
18905
18907
  }
18906
18908
  };
18907
18909
 
18910
+ // src/models/gemma3/image_processing_gemma3.js
18911
+ var Gemma3ImageProcessor = class extends ImageProcessor {
18912
+ };
18913
+
18908
18914
  // src/models/qwen2_vl/image_processing_qwen2_vl.js
18909
18915
  var Qwen2VLImageProcessor = class extends ImageProcessor {
18910
18916
  constructor(config) {
@@ -20128,6 +20134,48 @@ var Florence2Processor = class extends Processor {
20128
20134
  }
20129
20135
  };
20130
20136
 
20137
+ // src/models/gemma3/processing_gemma3.js
20138
+ var Gemma3Processor = class extends Processor {
20139
+ static tokenizer_class = AutoTokenizer;
20140
+ static image_processor_class = AutoImageProcessor;
20141
+ static uses_processor_config = true;
20142
+ static uses_chat_template_file = true;
20143
+ constructor(config, components, chat_template) {
20144
+ super(config, components, chat_template);
20145
+ this.image_seq_length = this.config.image_seq_length;
20146
+ const { boi_token, image_token, eoi_token } = this.tokenizer.config;
20147
+ this.boi_token = boi_token;
20148
+ this.image_token = image_token;
20149
+ this.eoi_token = eoi_token;
20150
+ const image_tokens_expanded = image_token.repeat(this.image_seq_length);
20151
+ this.full_image_sequence = `
20152
+
20153
+ ${boi_token}${image_tokens_expanded}${eoi_token}
20154
+
20155
+ `;
20156
+ }
20157
+ /**
20158
+ * @param {string|string[]} text
20159
+ * @param {import('../../utils/image.js').RawImage|import('../../utils/image.js').RawImage[]} [images]
20160
+ * @param {Object} [options]
20161
+ */
20162
+ async _call(text, images = null, options = {}) {
20163
+ if (typeof text === "string") {
20164
+ text = [text];
20165
+ }
20166
+ let image_inputs;
20167
+ if (images) {
20168
+ image_inputs = await this.image_processor(images, options);
20169
+ text = text.map((prompt) => prompt.replaceAll(this.boi_token, this.full_image_sequence));
20170
+ }
20171
+ const text_inputs = this.tokenizer(text, options);
20172
+ return {
20173
+ ...text_inputs,
20174
+ ...image_inputs
20175
+ };
20176
+ }
20177
+ };
20178
+
20131
20179
  // src/models/gemma3n/processing_gemma3n.js
20132
20180
  var Gemma3nProcessor = class extends Processor {
20133
20181
  static image_processor_class = AutoImageProcessor;
@@ -23308,8 +23356,7 @@ var MODEL_TYPES = {
23308
23356
  ImageAudioTextToText: 13,
23309
23357
  Supertonic: 14,
23310
23358
  Chatterbox: 15,
23311
- MultimodalLanguageModelOnly: 16,
23312
- VoxtralRealtime: 17
23359
+ VoxtralRealtime: 16
23313
23360
  };
23314
23361
  var MODEL_TYPE_CONFIG = {
23315
23362
  [MODEL_TYPES.DecoderOnly]: {
@@ -23366,12 +23413,12 @@ var MODEL_TYPE_CONFIG = {
23366
23413
  can_generate: true,
23367
23414
  forward: image_text_to_text_forward,
23368
23415
  prepare_inputs: multimodal_text_to_text_prepare_inputs_for_generation,
23369
- sessions: (config) => {
23416
+ sessions: (config, options, textOnly) => {
23370
23417
  const s = {
23371
23418
  embed_tokens: "embed_tokens",
23372
- vision_encoder: "vision_encoder",
23373
23419
  decoder_model_merged: "decoder_model_merged"
23374
23420
  };
23421
+ if (!textOnly) s["vision_encoder"] = "vision_encoder";
23375
23422
  if (config.is_encoder_decoder) s["model"] = "encoder_model";
23376
23423
  return s;
23377
23424
  },
@@ -23393,12 +23440,17 @@ var MODEL_TYPE_CONFIG = {
23393
23440
  [MODEL_TYPES.ImageAudioTextToText]: {
23394
23441
  can_generate: true,
23395
23442
  prepare_inputs: multimodal_text_to_text_prepare_inputs_for_generation,
23396
- sessions: () => ({
23397
- embed_tokens: "embed_tokens",
23398
- audio_encoder: "audio_encoder",
23399
- vision_encoder: "vision_encoder",
23400
- decoder_model_merged: "decoder_model_merged"
23401
- }),
23443
+ sessions: (config, options, textOnly) => {
23444
+ const s = {
23445
+ embed_tokens: "embed_tokens",
23446
+ decoder_model_merged: "decoder_model_merged"
23447
+ };
23448
+ if (!textOnly) {
23449
+ s["audio_encoder"] = "audio_encoder";
23450
+ s["vision_encoder"] = "vision_encoder";
23451
+ }
23452
+ return s;
23453
+ },
23402
23454
  optional_configs: { generation_config: "generation_config.json" }
23403
23455
  },
23404
23456
  [MODEL_TYPES.Phi3V]: {
@@ -23449,14 +23501,6 @@ var MODEL_TYPE_CONFIG = {
23449
23501
  cache_sessions: { model: true },
23450
23502
  optional_configs: { generation_config: "generation_config.json" }
23451
23503
  },
23452
- [MODEL_TYPES.MultimodalLanguageModelOnly]: {
23453
- can_generate: true,
23454
- forward: image_text_to_text_forward,
23455
- prepare_inputs: multimodal_text_to_text_prepare_inputs_for_generation,
23456
- sessions: () => ({ embed_tokens: "embed_tokens", decoder_model_merged: "decoder_model_merged" }),
23457
- cache_sessions: { decoder_model_merged: true },
23458
- optional_configs: { generation_config: "generation_config.json" }
23459
- },
23460
23504
  [MODEL_TYPES.VoxtralRealtime]: {
23461
23505
  can_generate: true,
23462
23506
  prepare_inputs: decoder_prepare_inputs_for_generation,
@@ -23482,6 +23526,19 @@ function getSessionsConfig(modelType, config, options = {}) {
23482
23526
  optional_configs: typeConfig.optional_configs
23483
23527
  };
23484
23528
  }
23529
+ function resolveTypeConfig(modelName, config) {
23530
+ let modelType = MODEL_TYPE_MAPPING.get(modelName);
23531
+ let textOnly = false;
23532
+ const nativeArch = config?.architectures?.[0];
23533
+ if (nativeArch && nativeArch !== modelName && modelName?.endsWith("ForCausalLM") && nativeArch.endsWith("ForConditionalGeneration")) {
23534
+ const nativeType = MODEL_TYPE_MAPPING.get(nativeArch);
23535
+ if (nativeType !== void 0) {
23536
+ modelType = nativeType;
23537
+ textOnly = true;
23538
+ }
23539
+ }
23540
+ return { typeConfig: MODEL_TYPE_CONFIG[modelType] ?? MODEL_TYPE_CONFIG.default, textOnly, modelType };
23541
+ }
23485
23542
  var MODEL_TYPE_MAPPING = /* @__PURE__ */ new Map();
23486
23543
  var MODEL_NAME_TO_CLASS_MAPPING = /* @__PURE__ */ new Map();
23487
23544
  var MODEL_CLASS_TO_NAME_MAPPING = /* @__PURE__ */ new Map();
@@ -23501,8 +23558,7 @@ var PreTrainedModel = class extends Callable2 {
23501
23558
  this.sessions = sessions;
23502
23559
  this.configs = configs;
23503
23560
  const modelName = MODEL_CLASS_TO_NAME_MAPPING.get(this.constructor);
23504
- const modelType = MODEL_TYPE_MAPPING.get(modelName);
23505
- const typeConfig = MODEL_TYPE_CONFIG[modelType] ?? MODEL_TYPE_CONFIG.default;
23561
+ const { typeConfig } = resolveTypeConfig(modelName, config);
23506
23562
  this.can_generate = typeConfig.can_generate;
23507
23563
  this._forward = typeConfig.forward;
23508
23564
  this._prepare_inputs_for_generation = typeConfig.prepare_inputs;
@@ -23565,9 +23621,8 @@ var PreTrainedModel = class extends Callable2 {
23565
23621
  session_options
23566
23622
  };
23567
23623
  const modelName = MODEL_CLASS_TO_NAME_MAPPING.get(this);
23568
- const modelType = MODEL_TYPE_MAPPING.get(modelName);
23569
23624
  config = options.config = await AutoConfig.from_pretrained(pretrained_model_name_or_path, options);
23570
- const typeConfig = MODEL_TYPE_CONFIG[modelType] ?? MODEL_TYPE_CONFIG.default;
23625
+ const { typeConfig, textOnly, modelType } = resolveTypeConfig(modelName, config);
23571
23626
  if (modelType === void 0) {
23572
23627
  const type = modelName ?? config?.model_type;
23573
23628
  if (type !== "custom") {
@@ -23576,7 +23631,7 @@ var PreTrainedModel = class extends Callable2 {
23576
23631
  );
23577
23632
  }
23578
23633
  }
23579
- const sessions = typeConfig.sessions(config, options);
23634
+ const sessions = typeConfig.sessions(config, options, textOnly);
23580
23635
  const promises = [
23581
23636
  constructSessions(pretrained_model_name_or_path, sessions, options, typeConfig.cache_sessions)
23582
23637
  ];
@@ -24631,6 +24686,7 @@ __export(models_exports, {
24631
24686
  Gemma2Model: () => Gemma2Model,
24632
24687
  Gemma2PreTrainedModel: () => Gemma2PreTrainedModel,
24633
24688
  Gemma3ForCausalLM: () => Gemma3ForCausalLM,
24689
+ Gemma3ForConditionalGeneration: () => Gemma3ForConditionalGeneration,
24634
24690
  Gemma3Model: () => Gemma3Model,
24635
24691
  Gemma3PreTrainedModel: () => Gemma3PreTrainedModel,
24636
24692
  Gemma3nForCausalLM: () => Gemma3nForCausalLM,
@@ -26349,12 +26405,35 @@ var Gemma2Model = class extends Gemma2PreTrainedModel {
26349
26405
  var Gemma2ForCausalLM = class extends Gemma2PreTrainedModel {
26350
26406
  };
26351
26407
 
26408
+ // src/models/llava/modeling_llava.js
26409
+ var LlavaPreTrainedModel = class extends PreTrainedModel {
26410
+ forward_params = ["input_ids", "attention_mask", "pixel_values", "position_ids", "past_key_values"];
26411
+ };
26412
+ var LlavaForConditionalGeneration = class extends LlavaPreTrainedModel {
26413
+ _merge_input_ids_with_image_features(kwargs) {
26414
+ const vision_hidden_size = kwargs.image_features.dims.at(-1);
26415
+ const reshaped_image_hidden_states = kwargs.image_features.view(-1, vision_hidden_size);
26416
+ return default_merge_input_ids_with_image_features({
26417
+ // @ts-ignore
26418
+ image_token_id: this.config.image_token_index ?? this.config.image_token_id,
26419
+ ...kwargs,
26420
+ image_features: reshaped_image_hidden_states
26421
+ });
26422
+ }
26423
+ };
26424
+ var Moondream1ForConditionalGeneration = class extends LlavaForConditionalGeneration {
26425
+ };
26426
+ var LlavaQwen2ForCausalLM = class extends LlavaForConditionalGeneration {
26427
+ };
26428
+
26352
26429
  // src/models/gemma3/modeling_gemma3.js
26353
26430
  var Gemma3PreTrainedModel = class extends PreTrainedModel {
26354
26431
  };
26355
26432
  var Gemma3Model = class extends Gemma3PreTrainedModel {
26356
26433
  };
26357
- var Gemma3ForCausalLM = class extends Gemma3PreTrainedModel {
26434
+ var Gemma3ForConditionalGeneration = class extends LlavaForConditionalGeneration {
26435
+ };
26436
+ var Gemma3ForCausalLM = class extends Gemma3ForConditionalGeneration {
26358
26437
  };
26359
26438
 
26360
26439
  // src/models/gemma3n/modeling_gemma3n.js
@@ -26537,8 +26616,8 @@ var Qwen2VLForConditionalGeneration = class extends Qwen2VLPreTrainedModel {
26537
26616
  for (let x = 0; x < 3; ++x) {
26538
26617
  for (const val of llm_pos_ids_list) {
26539
26618
  const seg_len = val.length / 3;
26540
- for (let z = x * seg_len; z < (x + 1) * seg_len; ++z) {
26541
- llm_positions[index++] = val[z];
26619
+ for (let z2 = x * seg_len; z2 < (x + 1) * seg_len; ++z2) {
26620
+ llm_positions[index++] = val[z2];
26542
26621
  }
26543
26622
  }
26544
26623
  }
@@ -26720,40 +26799,45 @@ var Qwen2VLForConditionalGeneration = class extends Qwen2VLPreTrainedModel {
26720
26799
  });
26721
26800
  }
26722
26801
  prepare_inputs_for_generation(input_ids, model_inputs, generation_config) {
26723
- if (model_inputs.attention_mask && !model_inputs.position_ids) {
26724
- if (!model_inputs.past_key_values) {
26725
- [model_inputs.position_ids, model_inputs.rope_deltas] = this.get_rope_index(
26802
+ if (!model_inputs.attention_mask || model_inputs.position_ids) {
26803
+ return model_inputs;
26804
+ }
26805
+ const session = this.sessions["decoder_model_merged"] ?? this.sessions["model"];
26806
+ if (!session.inputNames.includes("position_ids")) {
26807
+ return model_inputs;
26808
+ }
26809
+ if (!model_inputs.past_key_values) {
26810
+ [model_inputs.position_ids, model_inputs.rope_deltas] = this.get_rope_index(
26811
+ model_inputs.input_ids,
26812
+ model_inputs.image_grid_thw,
26813
+ model_inputs.video_grid_thw,
26814
+ model_inputs.attention_mask
26815
+ );
26816
+ } else {
26817
+ model_inputs.pixel_values = null;
26818
+ const past_length = model_inputs.past_key_values.get_seq_length();
26819
+ if (past_length < model_inputs.input_ids.dims[1]) {
26820
+ const [full_position_ids, rope_deltas] = this.get_rope_index(
26726
26821
  model_inputs.input_ids,
26727
26822
  model_inputs.image_grid_thw,
26728
26823
  model_inputs.video_grid_thw,
26729
26824
  model_inputs.attention_mask
26730
26825
  );
26826
+ model_inputs.rope_deltas = rope_deltas;
26827
+ model_inputs.position_ids = full_position_ids.slice(null, null, [past_length, null]);
26828
+ model_inputs.input_ids = model_inputs.input_ids.slice(null, [past_length, null]);
26731
26829
  } else {
26732
- model_inputs.pixel_values = null;
26733
- const past_length = model_inputs.past_key_values.get_seq_length();
26734
- if (past_length < model_inputs.input_ids.dims[1]) {
26735
- const [full_position_ids, rope_deltas] = this.get_rope_index(
26830
+ if (!model_inputs.rope_deltas) {
26831
+ [, model_inputs.rope_deltas] = this.get_rope_index(
26736
26832
  model_inputs.input_ids,
26737
26833
  model_inputs.image_grid_thw,
26738
26834
  model_inputs.video_grid_thw,
26739
26835
  model_inputs.attention_mask
26740
26836
  );
26741
- model_inputs.rope_deltas = rope_deltas;
26742
- model_inputs.position_ids = full_position_ids.slice(null, null, [past_length, null]);
26743
- model_inputs.input_ids = model_inputs.input_ids.slice(null, [past_length, null]);
26744
- } else {
26745
- if (!model_inputs.rope_deltas) {
26746
- [, model_inputs.rope_deltas] = this.get_rope_index(
26747
- model_inputs.input_ids,
26748
- model_inputs.image_grid_thw,
26749
- model_inputs.video_grid_thw,
26750
- model_inputs.attention_mask
26751
- );
26752
- }
26753
- const delta = BigInt(past_length);
26754
- const rope_deltas_list = model_inputs.rope_deltas.map((x) => delta + x);
26755
- model_inputs.position_ids = stack([rope_deltas_list, rope_deltas_list, rope_deltas_list], 0);
26756
26837
  }
26838
+ const delta = BigInt(past_length);
26839
+ const rope_deltas_list = model_inputs.rope_deltas.map((x) => delta + x);
26840
+ model_inputs.position_ids = stack([rope_deltas_list, rope_deltas_list, rope_deltas_list], 0);
26757
26841
  }
26758
26842
  }
26759
26843
  return model_inputs;
@@ -27036,27 +27120,6 @@ var HunYuanDenseV1Model = class extends HunYuanDenseV1PreTrainedModel {
27036
27120
  var HunYuanDenseV1ForCausalLM = class extends HunYuanDenseV1PreTrainedModel {
27037
27121
  };
27038
27122
 
27039
- // src/models/llava/modeling_llava.js
27040
- var LlavaPreTrainedModel = class extends PreTrainedModel {
27041
- forward_params = ["input_ids", "attention_mask", "pixel_values", "position_ids", "past_key_values"];
27042
- };
27043
- var LlavaForConditionalGeneration = class extends LlavaPreTrainedModel {
27044
- _merge_input_ids_with_image_features(kwargs) {
27045
- const vision_hidden_size = kwargs.image_features.dims.at(-1);
27046
- const reshaped_image_hidden_states = kwargs.image_features.view(-1, vision_hidden_size);
27047
- return default_merge_input_ids_with_image_features({
27048
- // @ts-ignore
27049
- image_token_id: this.config.image_token_index ?? this.config.image_token_id,
27050
- ...kwargs,
27051
- image_features: reshaped_image_hidden_states
27052
- });
27053
- }
27054
- };
27055
- var Moondream1ForConditionalGeneration = class extends LlavaForConditionalGeneration {
27056
- };
27057
- var LlavaQwen2ForCausalLM = class extends LlavaForConditionalGeneration {
27058
- };
27059
-
27060
27123
  // src/models/idefics3/modeling_idefics3.js
27061
27124
  var Idefics3ForConditionalGeneration = class extends LlavaForConditionalGeneration {
27062
27125
  forward_params = [
@@ -29954,6 +30017,7 @@ var MODEL_FOR_CAUSAL_LM_MAPPING_NAMES = /* @__PURE__ */ new Map([
29954
30017
  ["qwen3_vl", "Qwen3VLForCausalLM"],
29955
30018
  ["qwen3_vl_moe", "Qwen3VLMoeForCausalLM"],
29956
30019
  ["qwen3_5", "Qwen3_5ForCausalLM"],
30020
+ ["qwen3_5_text", "Qwen3_5ForCausalLM"],
29957
30021
  ["qwen3_5_moe", "Qwen3_5MoeForCausalLM"],
29958
30022
  ["gemma3n", "Gemma3nForCausalLM"],
29959
30023
  ["phi", "PhiForCausalLM"],
@@ -30041,6 +30105,7 @@ var MODEL_FOR_IMAGE_TEXT_TO_TEXT_MAPPING_NAMES = /* @__PURE__ */ new Map([
30041
30105
  ["smolvlm", "SmolVLMForConditionalGeneration"],
30042
30106
  ["paligemma", "PaliGemmaForConditionalGeneration"],
30043
30107
  ["llava_qwen2", "LlavaQwen2ForCausalLM"],
30108
+ ["gemma3", "Gemma3ForConditionalGeneration"],
30044
30109
  ["gemma3n", "Gemma3nForConditionalGeneration"],
30045
30110
  ["mistral3", "Mistral3ForConditionalGeneration"],
30046
30111
  ["lighton_ocr", "LightOnOcrForConditionalGeneration"],
@@ -30235,13 +30300,6 @@ var CUSTOM_MAPPING = [
30235
30300
  ],
30236
30301
  ["SupertonicForConditionalGeneration", SupertonicForConditionalGeneration, MODEL_TYPES.Supertonic],
30237
30302
  ["ChatterboxModel", ChatterboxModel, MODEL_TYPES.Chatterbox],
30238
- ["Qwen2VLForCausalLM", Qwen2VLForCausalLM, MODEL_TYPES.MultimodalLanguageModelOnly],
30239
- ["Qwen2_5_VLForCausalLM", Qwen2_5_VLForCausalLM, MODEL_TYPES.MultimodalLanguageModelOnly],
30240
- ["Qwen3VLForCausalLM", Qwen3VLForCausalLM, MODEL_TYPES.MultimodalLanguageModelOnly],
30241
- ["Qwen3VLMoeForCausalLM", Qwen3VLMoeForCausalLM, MODEL_TYPES.MultimodalLanguageModelOnly],
30242
- ["Qwen3_5ForCausalLM", Qwen3_5ForCausalLM, MODEL_TYPES.MultimodalLanguageModelOnly],
30243
- ["Qwen3_5MoeForCausalLM", Qwen3_5MoeForCausalLM, MODEL_TYPES.MultimodalLanguageModelOnly],
30244
- ["Gemma3nForCausalLM", Gemma3nForCausalLM, MODEL_TYPES.MultimodalLanguageModelOnly],
30245
30303
  [
30246
30304
  "VoxtralRealtimeForConditionalGeneration",
30247
30305
  VoxtralRealtimeForConditionalGeneration,
@@ -31923,6 +31981,41 @@ var TASK_ALIASES = Object.freeze({
31923
31981
  embeddings: "feature-extraction"
31924
31982
  });
31925
31983
 
31984
+ // src/utils/model_registry/resolve_model_type.js
31985
+ function resolve_model_type(config, { warn = true } = {}) {
31986
+ const architectures = (
31987
+ /** @type {string[]} */
31988
+ config.architectures || []
31989
+ );
31990
+ for (const arch of architectures) {
31991
+ const mappedType = MODEL_TYPE_MAPPING.get(arch);
31992
+ if (mappedType !== void 0) {
31993
+ return mappedType;
31994
+ }
31995
+ }
31996
+ if (config.model_type) {
31997
+ const mappedType = MODEL_TYPE_MAPPING.get(config.model_type);
31998
+ if (mappedType !== void 0) {
31999
+ return mappedType;
32000
+ }
32001
+ for (const mapping of Object.values(MODEL_MAPPING_NAMES)) {
32002
+ if (mapping.has(config.model_type)) {
32003
+ const resolved = MODEL_TYPE_MAPPING.get(mapping.get(config.model_type));
32004
+ if (resolved !== void 0) {
32005
+ return resolved;
32006
+ }
32007
+ }
32008
+ }
32009
+ }
32010
+ if (warn) {
32011
+ const archList = architectures.length > 0 ? architectures.join(", ") : "(none)";
32012
+ logger.warn(
32013
+ `[resolve_model_type] Architecture(s) not found in MODEL_TYPE_MAPPING: [${archList}] for model type '${config.model_type}'. Falling back to EncoderOnly (single model.onnx file). If you encounter issues, please report at: ${GITHUB_ISSUE_URL}`
32014
+ );
32015
+ }
32016
+ return MODEL_TYPES.EncoderOnly;
32017
+ }
32018
+
31926
32019
  // src/utils/model_registry/get_model_files.js
31927
32020
  function get_config(modelId, { config = null, cache_dir = null, local_files_only = false, revision = "main" } = {}) {
31928
32021
  if (config !== null) {
@@ -31945,43 +32038,7 @@ async function get_model_files(modelId, { config = null, dtype: overrideDtype =
31945
32038
  const subfolder = "onnx";
31946
32039
  const rawDevice = overrideDevice ?? custom_config.device;
31947
32040
  let dtype = overrideDtype ?? custom_config.dtype;
31948
- let modelType;
31949
- const architectures = (
31950
- /** @type {string[]} */
31951
- config.architectures || []
31952
- );
31953
- let foundInMapping = false;
31954
- for (const arch of architectures) {
31955
- const mappedType = MODEL_TYPE_MAPPING.get(arch);
31956
- if (mappedType !== void 0) {
31957
- modelType = mappedType;
31958
- foundInMapping = true;
31959
- break;
31960
- }
31961
- }
31962
- if (!foundInMapping && config.model_type) {
31963
- const mappedType = MODEL_TYPE_MAPPING.get(config.model_type);
31964
- if (mappedType !== void 0) {
31965
- modelType = mappedType;
31966
- foundInMapping = true;
31967
- }
31968
- if (!foundInMapping) {
31969
- for (const mapping of Object.values(MODEL_MAPPING_NAMES)) {
31970
- if (mapping.has(config.model_type)) {
31971
- modelType = MODEL_TYPE_MAPPING.get(mapping.get(config.model_type));
31972
- foundInMapping = true;
31973
- break;
31974
- }
31975
- }
31976
- }
31977
- }
31978
- if (!foundInMapping) {
31979
- const archList = architectures.length > 0 ? architectures.join(", ") : "(none)";
31980
- logger.warn(
31981
- `[get_model_files] Architecture(s) not found in MODEL_TYPE_MAPPING: [${archList}] for model type '${config.model_type}'. Falling back to EncoderOnly (single model.onnx file). If you encounter issues, please report at: ${GITHUB_ISSUE_URL}`
31982
- );
31983
- modelType = MODEL_TYPES.EncoderOnly;
31984
- }
32041
+ const modelType = resolve_model_type(config);
31985
32042
  const add_model_file = (fileName, baseName = null) => {
31986
32043
  baseName = baseName ?? fileName;
31987
32044
  const selectedDevice = selectDevice(rawDevice, fileName);
@@ -32568,6 +32625,31 @@ async function clear_pipeline_cache(task, modelId, options = {}) {
32568
32625
  return await clear_files_from_cache(modelId, files, options);
32569
32626
  }
32570
32627
 
32628
+ // src/utils/model_registry/get_available_dtypes.js
32629
+ var CONCRETE_DTYPES = Object.keys(DEFAULT_DTYPE_SUFFIX_MAPPING);
32630
+ async function get_available_dtypes(modelId, { config = null, model_file_name = null, revision = "main", cache_dir = null, local_files_only = false } = {}) {
32631
+ config = await get_config(modelId, { config, cache_dir, local_files_only, revision });
32632
+ const subfolder = "onnx";
32633
+ const modelType = resolve_model_type(config);
32634
+ const { sessions } = getSessionsConfig(modelType, config, { model_file_name });
32635
+ const baseNames = Object.values(sessions);
32636
+ const metadataOptions = { revision, cache_dir, local_files_only };
32637
+ const probeResults = await Promise.all(
32638
+ CONCRETE_DTYPES.map(async (dtype) => {
32639
+ const suffix = DEFAULT_DTYPE_SUFFIX_MAPPING[dtype] ?? "";
32640
+ const allExist = await Promise.all(
32641
+ baseNames.map(async (baseName) => {
32642
+ const filename = `${subfolder}/${baseName}${suffix}.onnx`;
32643
+ const metadata = await get_file_metadata(modelId, filename, metadataOptions);
32644
+ return metadata.exists;
32645
+ })
32646
+ );
32647
+ return { dtype, available: allExist.every(Boolean) };
32648
+ })
32649
+ );
32650
+ return probeResults.filter((r) => r.available).map((r) => r.dtype);
32651
+ }
32652
+
32571
32653
  // src/utils/model_registry/ModelRegistry.js
32572
32654
  var ModelRegistry = class {
32573
32655
  /**
@@ -32654,6 +32736,29 @@ var ModelRegistry = class {
32654
32736
  static async get_processor_files(modelId) {
32655
32737
  return get_processor_files(modelId);
32656
32738
  }
32739
+ /**
32740
+ * Detects which quantization levels (dtypes) are available for a model
32741
+ * by checking which ONNX files exist on the hub or locally.
32742
+ *
32743
+ * A dtype is considered available if all required model session files
32744
+ * exist for that dtype.
32745
+ *
32746
+ * @param {string} modelId - The model id (e.g., "onnx-community/all-MiniLM-L6-v2-ONNX")
32747
+ * @param {Object} [options] - Optional parameters
32748
+ * @param {import('../../configs.js').PretrainedConfig} [options.config=null] - Pre-loaded config
32749
+ * @param {string} [options.model_file_name=null] - Override the model file name (excluding .onnx suffix)
32750
+ * @param {string} [options.revision='main'] - Model revision
32751
+ * @param {string} [options.cache_dir=null] - Custom cache directory
32752
+ * @param {boolean} [options.local_files_only=false] - Only check local files
32753
+ * @returns {Promise<string[]>} Array of available dtype strings (e.g., ['fp32', 'fp16', 'q4', 'q8'])
32754
+ *
32755
+ * @example
32756
+ * const dtypes = await ModelRegistry.get_available_dtypes('onnx-community/all-MiniLM-L6-v2-ONNX');
32757
+ * console.log(dtypes); // ['fp32', 'fp16', 'int8', 'uint8', 'q8', 'q4']
32758
+ */
32759
+ static async get_available_dtypes(modelId, options = {}) {
32760
+ return get_available_dtypes(modelId, options);
32761
+ }
32657
32762
  /**
32658
32763
  * Quickly checks if a model is fully cached by verifying `config.json` is present,
32659
32764
  * then confirming all required files are cached.
@@ -33100,8 +33205,11 @@ export {
33100
33205
  Gemma2Model,
33101
33206
  Gemma2PreTrainedModel,
33102
33207
  Gemma3ForCausalLM,
33208
+ Gemma3ForConditionalGeneration,
33209
+ Gemma3ImageProcessor,
33103
33210
  Gemma3Model,
33104
33211
  Gemma3PreTrainedModel,
33212
+ Gemma3Processor,
33105
33213
  Gemma3nAudioFeatureExtractor,
33106
33214
  Gemma3nForCausalLM,
33107
33215
  Gemma3nForConditionalGeneration,
@@ -33720,7 +33828,7 @@ export {
33720
33828
 
33721
33829
  onnxruntime-web/dist/ort.webgpu.bundle.min.mjs:
33722
33830
  (*!
33723
- * ONNX Runtime Web v1.25.0-dev.20260307-d626b568e0
33831
+ * ONNX Runtime Web v1.25.0-dev.20260323-a99aad9d36
33724
33832
  * Copyright (c) Microsoft Corporation. All rights reserved.
33725
33833
  * Licensed under the MIT License.
33726
33834
  *)