@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
@@ -20,7 +20,7 @@ var node_path_default = {};
20
20
  var node_url_default = {};
21
21
 
22
22
  // src/env.js
23
- var VERSION = "4.0.0-next.8";
23
+ var VERSION = "4.0.0-next.9";
24
24
  var HAS_SELF = typeof self !== "undefined";
25
25
  var IS_FS_AVAILABLE = !isEmpty(node_fs_default);
26
26
  var IS_PATH_AVAILABLE = !isEmpty(node_path_default);
@@ -5754,14 +5754,14 @@ var Random = class {
5754
5754
  * @returns {number} A normally distributed random value.
5755
5755
  */
5756
5756
  gauss(mu = 0, sigma = 1) {
5757
- let z = this._gauss_next;
5757
+ let z2 = this._gauss_next;
5758
5758
  this._gauss_next = null;
5759
- if (z === null) {
5759
+ if (z2 === null) {
5760
5760
  const x2pi = this.random() * 2 * Math.PI, g2rad = Math.sqrt(-2 * Math.log(1 - this.random()));
5761
- z = Math.cos(x2pi) * g2rad;
5761
+ z2 = Math.cos(x2pi) * g2rad;
5762
5762
  this._gauss_next = Math.sin(x2pi) * g2rad;
5763
5763
  }
5764
- return mu + z * sigma;
5764
+ return mu + z2 * sigma;
5765
5765
  }
5766
5766
  /**
5767
5767
  * Shuffles an array in-place using the Fisher-Yates algorithm.
@@ -7485,7 +7485,7 @@ __export(onnxruntime_node_exports, {
7485
7485
  });
7486
7486
  var onnxruntime_node_default = {};
7487
7487
 
7488
- // ../../node_modules/.pnpm/onnxruntime-web@1.25.0-dev.20260307-d626b568e0/node_modules/onnxruntime-web/dist/ort.webgpu.bundle.min.mjs
7488
+ // ../../node_modules/.pnpm/onnxruntime-web@1.25.0-dev.20260323-a99aad9d36/node_modules/onnxruntime-web/dist/ort.webgpu.bundle.min.mjs
7489
7489
  var ort_webgpu_bundle_min_exports = {};
7490
7490
  __export(ort_webgpu_bundle_min_exports, {
7491
7491
  InferenceSession: () => Jf,
@@ -8253,7 +8253,7 @@ async function ts(a = {}) {
8253
8253
  throw L(e = "Aborted(" + e + ")"), W = true, e = new WebAssembly.RuntimeError(e + ". Build with -sASSERTIONS for more info."), R?.(e), e;
8254
8254
  }
8255
8255
  function Ye() {
8256
- 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 } };
8256
+ 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 } };
8257
8257
  }
8258
8258
  async function bt() {
8259
8259
  function e(o, u) {
@@ -8316,14 +8316,14 @@ async function ts(a = {}) {
8316
8316
  gt.push(t), Je[e.Nc] = t, t.Nc = e.Nc;
8317
8317
  var n = { Oc: "run", he: e.ge, Wc: e.Wc, Nc: e.Nc };
8318
8318
  return t.postMessage(n, e.Yc), 0;
8319
- }, z = 0, V = (e, t, ...n) => {
8319
+ }, G = 0, V = (e, t, ...n) => {
8320
8320
  var o, u = 16 * n.length, c = P(), h = Ft(u), b = h >>> 3;
8321
8321
  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);
8322
8322
  return e = Lo(e, 0, u, h, t), D(c), e;
8323
8323
  };
8324
8324
  function qe(e) {
8325
8325
  if (i) return V(0, 1, e);
8326
- if (S = e, !(0 < z)) {
8326
+ if (S = e, !(0 < G)) {
8327
8327
  for (var t of gt) Se(t);
8328
8328
  for (t of We) Se(t);
8329
8329
  We = [], gt = [], Je = {}, W = true;
@@ -8368,7 +8368,7 @@ async function ts(a = {}) {
8368
8368
  We.push(e);
8369
8369
  }
8370
8370
  var Fe, zs = (e, t) => {
8371
- z = 0, e = zr(e, t), 0 < z ? S = e : Fr(e);
8371
+ G = 0, e = zr(e, t), 0 < G ? S = e : Fr(e);
8372
8372
  }, Ct = [], Ut = 0, me = (e) => -9007199254740992 > e || 9007199254740992 < e ? NaN : Number(e);
8373
8373
  function Vs(e) {
8374
8374
  var t = new wr(e >>>= 0);
@@ -8720,7 +8720,7 @@ async function ts(a = {}) {
8720
8720
  }
8721
8721
  var he = (e) => {
8722
8722
  if (!W) try {
8723
- if (e(), !(0 < z)) try {
8723
+ if (e(), !(0 < G)) try {
8724
8724
  i ? Wt() && Fr(S) : br(S);
8725
8725
  } catch (t) {
8726
8726
  t instanceof wt || t == "unwind" || y(0, t);
@@ -8748,7 +8748,7 @@ async function ts(a = {}) {
8748
8748
  return (t ? Vr[t] : of[e])(...Ir);
8749
8749
  }
8750
8750
  var Ei = () => {
8751
- z = 0;
8751
+ G = 0;
8752
8752
  };
8753
8753
  function Si(e) {
8754
8754
  e >>>= 0, i ? postMessage({ Oc: "cleanupThread", ie: e }) : yn(Je[e]);
@@ -8768,7 +8768,7 @@ async function ts(a = {}) {
8768
8768
  try {
8769
8769
  return e(...n);
8770
8770
  } finally {
8771
- W || (_t.pop(), Me && Ge === 1 && _t.length === 0 && (Ge = 0, z += 1, Pt(wa), typeof Fibers < "u" && Fibers.De()));
8771
+ W || (_t.pop(), Me && Ge === 1 && _t.length === 0 && (Ge = 0, G += 1, Pt(wa), typeof Fibers < "u" && Fibers.De()));
8772
8772
  }
8773
8773
  };
8774
8774
  return jn.set(e, t), t;
@@ -8783,7 +8783,7 @@ async function ts(a = {}) {
8783
8783
  try {
8784
8784
  var c = (function() {
8785
8785
  var E = (p(), x)[Me + 8 >>> 2 >>> 0];
8786
- return E = Vn.get(E), E = jn.get(E), --z, E();
8786
+ return E = Vn.get(E), E = jn.get(E), --G, E();
8787
8787
  })();
8788
8788
  } catch (E) {
8789
8789
  c = E, u = true;
@@ -8974,7 +8974,7 @@ async function ts(a = {}) {
8974
8974
  return L(ct(e >>> 0, t >>> 0));
8975
8975
  }
8976
8976
  var ou = () => {
8977
- throw z += 1, "unwind";
8977
+ throw G += 1, "unwind";
8978
8978
  };
8979
8979
  function au() {
8980
8980
  return 4294901760;
@@ -9067,15 +9067,15 @@ async function ts(a = {}) {
9067
9067
  }
9068
9068
  (b = (p(), A)[c + 24 >>> 2 >>> 0]) && (b = { label: Ne(b + 4) }, e.defaultQueue = b), e.label = Ne(c + 4);
9069
9069
  }
9070
- z += 1, lt(t, h.requestDevice(e).then((B) => {
9071
- --z, he(() => {
9072
- ce[u >>> 0] = B.queue, ce[o >>> 0] = B, lt(n, B.lost.then((ue) => {
9070
+ G += 1, lt(t, h.requestDevice(e).then((B) => {
9071
+ --G, he(() => {
9072
+ ce[u >>> 0] = B.queue, ce[o >>> 0] = B, G += 1, lt(n, B.lost.then((ue) => {
9073
9073
  he(() => {
9074
9074
  B.onuncapturederror = () => {
9075
9075
  };
9076
9076
  var ye = P(), fe = Ce(ue.message);
9077
9077
  _r(n, yu[ue.reason], fe), D(ye);
9078
- });
9078
+ }), --G;
9079
9079
  })), B.onuncapturederror = (ue) => {
9080
9080
  var ye = 5;
9081
9081
  ue.error instanceof GPUValidationError ? ye = 2 : ue.error instanceof GPUOutOfMemoryError ? ye = 3 : ue.error instanceof GPUInternalError && (ye = 4);
@@ -9084,7 +9084,7 @@ async function ts(a = {}) {
9084
9084
  }, "adapterInfo" in B || (B.adapterInfo = h.info), kr(t, 1, o, 0);
9085
9085
  });
9086
9086
  }, (B) => {
9087
- --z, he(() => {
9087
+ --G, he(() => {
9088
9088
  var ue = P(), ye = Ce(B.message);
9089
9089
  kr(t, 3, o, ye), n && _r(n, 4, ye), D(ue);
9090
9090
  });
@@ -9127,12 +9127,12 @@ async function ts(a = {}) {
9127
9127
  function vu(e, t, n, o, u) {
9128
9128
  e >>>= 0, t = me(t), n = me(n), u >>>= 0;
9129
9129
  var c = O(e);
9130
- Re[e] = [], u == 4294967295 && (u = void 0), z += 1, lt(t, c.mapAsync(n, o >>> 0, u).then(() => {
9131
- --z, he(() => {
9130
+ Re[e] = [], u == 4294967295 && (u = void 0), G += 1, lt(t, c.mapAsync(n, o >>> 0, u).then(() => {
9131
+ --G, he(() => {
9132
9132
  Rr(t, 1, 0);
9133
9133
  });
9134
9134
  }, (h) => {
9135
- --z, he(() => {
9135
+ --G, he(() => {
9136
9136
  P();
9137
9137
  var b = Ce(h.message);
9138
9138
  Rr(t, h.name === "AbortError" ? 4 : h.name === "OperationError" ? 3 : 0, b), delete Re[e];
@@ -9161,12 +9161,12 @@ async function ts(a = {}) {
9161
9161
  return ce[n >>> 0] = u, o && (Re[n] = []), true;
9162
9162
  }
9163
9163
  function Iu(e, t, n, o) {
9164
- e >>>= 0, t = me(t), o >>>= 0, n = du(n >>> 0), e = O(e), z += 1, lt(t, e.createComputePipelineAsync(n).then((u) => {
9165
- --z, he(() => {
9164
+ e >>>= 0, t = me(t), o >>>= 0, n = du(n >>> 0), e = O(e), G += 1, lt(t, e.createComputePipelineAsync(n).then((u) => {
9165
+ --G, he(() => {
9166
9166
  ce[o >>> 0] = u, Pr(t, 1, o, 0);
9167
9167
  });
9168
9168
  }, (u) => {
9169
- --z, he(() => {
9169
+ --G, he(() => {
9170
9170
  var c = P(), h = Ce(u.message);
9171
9171
  Pr(t, u.reason === "validation" ? 3 : u.reason === "internal" ? 4 : 0, o, h), D(c);
9172
9172
  });
@@ -9181,15 +9181,15 @@ async function ts(a = {}) {
9181
9181
  (e = O(e)).onuncapturederror = null, e.destroy();
9182
9182
  };
9183
9183
  function Ou(e, t) {
9184
- t = me(t), e = O(e >>> 0), z += 1, lt(t, e.popErrorScope().then((n) => {
9185
- --z, he(() => {
9184
+ t = me(t), e = O(e >>> 0), G += 1, lt(t, e.popErrorScope().then((n) => {
9185
+ --G, he(() => {
9186
9186
  var o = 5;
9187
9187
  n ? n instanceof GPUValidationError ? o = 2 : n instanceof GPUOutOfMemoryError ? o = 3 : n instanceof GPUInternalError && (o = 4) : o = 1;
9188
9188
  var u = P(), c = n ? Ce(n.message) : 0;
9189
9189
  Nr(t, 1, o, c), D(u);
9190
9190
  });
9191
9191
  }, (n) => {
9192
- --z, he(() => {
9192
+ --G, he(() => {
9193
9193
  var o = P(), u = Ce(n.message);
9194
9194
  Nr(t, 1, 5, u), D(o);
9195
9195
  });
@@ -9200,8 +9200,8 @@ async function ts(a = {}) {
9200
9200
  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] };
9201
9201
  (e = (p(), A)[n >>> 2 >>> 0]) !== 0 && (p(), u.Fe = !!(p(), A)[e + 8 >>> 2 >>> 0]);
9202
9202
  }
9203
- "gpu" in navigator ? (z += 1, lt(t, navigator.gpu.requestAdapter(u).then((c) => {
9204
- --z, he(() => {
9203
+ "gpu" in navigator ? (G += 1, lt(t, navigator.gpu.requestAdapter(u).then((c) => {
9204
+ --G, he(() => {
9205
9205
  if (c) ce[o >>> 0] = c, Et(t, 1, o, 0);
9206
9206
  else {
9207
9207
  var h = P(), b = Ce("WebGPU not available on this browser (requestAdapter returned null)");
@@ -9209,7 +9209,7 @@ async function ts(a = {}) {
9209
9209
  }
9210
9210
  });
9211
9211
  }, (c) => {
9212
- --z, he(() => {
9212
+ --G, he(() => {
9213
9213
  var h = P(), b = Ce(c.message);
9214
9214
  Et(t, 4, o, b), D(h);
9215
9215
  });
@@ -9440,7 +9440,7 @@ async function ts(a = {}) {
9440
9440
  Te(`invalid type for getValue: ${t}`);
9441
9441
  }
9442
9442
  }, r.UTF8ToString = ct, r.stringToUTF8 = Pe, r.lengthBytesUTF8 = _e;
9443
- 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) => {
9443
+ 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) => {
9444
9444
  if (r === void 0 || !r.Uc) return 1;
9445
9445
  if ((e = ct(Number(e >>> 0))).startsWith("./") && (e = e.substring(2)), !(e = r.Uc.get(e))) return 2;
9446
9446
  if (t = Number(t >>> 0), n = Number(n >>> 0), o = Number(o >>> 0), t + n > e.byteLength) return 3;
@@ -9460,11 +9460,11 @@ async function ts(a = {}) {
9460
9460
  } catch {
9461
9461
  return 4;
9462
9462
  }
9463
- }, 926500: (e, t, n) => {
9463
+ }, 937836: (e, t, n) => {
9464
9464
  r.Sd(e, (p(), J).subarray(t >>> 0, t + n >>> 0));
9465
- }, 926564: () => r.me(), 926606: (e) => {
9465
+ }, 937900: () => r.me(), 937942: (e) => {
9466
9466
  r.jd(e);
9467
- }, 926643: () => typeof wasmOffsetConverter < "u" };
9467
+ }, 937979: () => typeof wasmOffsetConverter < "u" };
9468
9468
  function af(e, t, n, o) {
9469
9469
  var u = P();
9470
9470
  try {
@@ -9483,12 +9483,12 @@ async function ts(a = {}) {
9483
9483
  N(1, 0);
9484
9484
  }
9485
9485
  }
9486
- function uf(e, t, n) {
9487
- var o = P();
9486
+ function uf(e) {
9487
+ var t = P();
9488
9488
  try {
9489
- _o(e, t, n);
9490
- } catch (u) {
9491
- if (D(o), u !== u + 0) throw u;
9489
+ Ro(e);
9490
+ } catch (n) {
9491
+ if (D(t), n !== n + 0) throw n;
9492
9492
  N(1, 0);
9493
9493
  }
9494
9494
  }
@@ -9501,25 +9501,16 @@ async function ts(a = {}) {
9501
9501
  N(1, 0);
9502
9502
  }
9503
9503
  }
9504
- function cf(e) {
9505
- var t = P();
9506
- try {
9507
- Ro(e);
9508
- } catch (n) {
9509
- if (D(t), n !== n + 0) throw n;
9510
- N(1, 0);
9511
- }
9512
- }
9513
- function df(e, t, n, o, u, c, h) {
9514
- var b = P();
9504
+ function cf(e, t, n) {
9505
+ var o = P();
9515
9506
  try {
9516
- return Wo(e, t, n, o, u, c, h);
9517
- } catch (E) {
9518
- if (D(b), E !== E + 0) throw E;
9507
+ _o(e, t, n);
9508
+ } catch (u) {
9509
+ if (D(o), u !== u + 0) throw u;
9519
9510
  N(1, 0);
9520
9511
  }
9521
9512
  }
9522
- function lf(e, t) {
9513
+ function df(e, t) {
9523
9514
  var n = P();
9524
9515
  try {
9525
9516
  Vo(e, t);
@@ -9528,6 +9519,15 @@ async function ts(a = {}) {
9528
9519
  N(1, 0);
9529
9520
  }
9530
9521
  }
9522
+ function lf(e, t, n, o, u, c, h) {
9523
+ var b = P();
9524
+ try {
9525
+ return Wo(e, t, n, o, u, c, h);
9526
+ } catch (E) {
9527
+ if (D(b), E !== E + 0) throw E;
9528
+ N(1, 0);
9529
+ }
9530
+ }
9531
9531
  function pf(e, t, n, o, u, c) {
9532
9532
  var h = P();
9533
9533
  try {
@@ -9957,7 +9957,7 @@ var nc;
9957
9957
  var oc;
9958
9958
  var ac;
9959
9959
  var qt;
9960
- var $;
9960
+ var z;
9961
9961
  var je = k(() => {
9962
9962
  "use strict";
9963
9963
  Yt();
@@ -10013,19 +10013,19 @@ var je = k(() => {
10013
10013
  rr = false, ds = true, H(M);
10014
10014
  });
10015
10015
  })), await Promise.race(C), S) throw new Error(`WebAssembly backend initializing failed due to timeout: ${r}ms`);
10016
- }, $ = () => {
10016
+ }, z = () => {
10017
10017
  if (nn && rn) return rn;
10018
10018
  throw new Error("WebAssembly is not initialized yet.");
10019
10019
  };
10020
10020
  });
10021
10021
  var be;
10022
10022
  var Lt;
10023
- var G;
10023
+ var $;
10024
10024
  var nr = k(() => {
10025
10025
  "use strict";
10026
10026
  je();
10027
10027
  be = (a, r) => {
10028
- let s = $(), f = s.lengthBytesUTF8(a) + 1, i = s._malloc(f);
10028
+ let s = z(), f = s.lengthBytesUTF8(a) + 1, i = s._malloc(f);
10029
10029
  return s.stringToUTF8(a, i, f), r.push(i), i;
10030
10030
  }, Lt = (a, r, s, f) => {
10031
10031
  if (typeof a == "object" && a !== null) {
@@ -10039,8 +10039,8 @@ var nr = k(() => {
10039
10039
  else if (typeof d == "boolean") f(l, d ? "1" : "0");
10040
10040
  else throw new Error(`Can't handle extra config type: ${typeof d}`);
10041
10041
  });
10042
- }, G = (a) => {
10043
- let r = $(), s = r.stackSave();
10042
+ }, $ = (a) => {
10043
+ let r = z(), s = r.stackSave();
10044
10044
  try {
10045
10045
  let f = r.PTR_SIZE, i = r.stackAlloc(2 * f);
10046
10046
  r._OrtGetLastError(i, i + f);
@@ -10057,7 +10057,7 @@ var ps = k(() => {
10057
10057
  je();
10058
10058
  nr();
10059
10059
  ls = (a) => {
10060
- let r = $(), s = 0, f = [], i = a || {};
10060
+ let r = z(), s = 0, f = [], i = a || {};
10061
10061
  try {
10062
10062
  if (a?.logSeverityLevel === void 0) i.logSeverityLevel = 2;
10063
10063
  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}`);
@@ -10065,9 +10065,9 @@ var ps = k(() => {
10065
10065
  else if (typeof a.logVerbosityLevel != "number" || !Number.isInteger(a.logVerbosityLevel)) throw new Error(`log verbosity level is not valid: ${a.logVerbosityLevel}`);
10066
10066
  a?.terminate === void 0 && (i.terminate = false);
10067
10067
  let d = 0;
10068
- 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) => {
10068
+ 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) => {
10069
10069
  let y = be(l, f), w = be(m, f);
10070
- r._OrtAddRunConfigEntry(s, y, w) !== 0 && G(`Can't set a run config entry: ${l} - ${m}.`);
10070
+ r._OrtAddRunConfigEntry(s, y, w) !== 0 && $(`Can't set a run config entry: ${l} - ${m}.`);
10071
10071
  }), [s, f];
10072
10072
  } catch (d) {
10073
10073
  throw s !== 0 && r._OrtReleaseRunOptions(s), f.forEach((l) => r._free(l)), d;
@@ -10115,7 +10115,7 @@ var hs = k(() => {
10115
10115
  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);
10116
10116
  }, on = (a, r, s, f) => {
10117
10117
  let i = be(r, f), d = be(s, f);
10118
- $()._OrtAddSessionConfigEntry(a, i, d) !== 0 && G(`Can't set a session config entry: ${r} - ${s}.`);
10118
+ z()._OrtAddSessionConfigEntry(a, i, d) !== 0 && $(`Can't set a session config entry: ${r} - ${s}.`);
10119
10119
  }, ot = (a, r, s, f) => {
10120
10120
  let i = be(r, f), d = be(s, f);
10121
10121
  a.push([i, d]);
@@ -10146,7 +10146,7 @@ var hs = k(() => {
10146
10146
  }
10147
10147
  S.validationMode && ot(l, "validationMode", S.validationMode, s);
10148
10148
  }
10149
- let v = $().webgpuRegisterDevice(g);
10149
+ let v = z().webgpuRegisterDevice(g);
10150
10150
  if (v) {
10151
10151
  let [S, C, R] = v;
10152
10152
  ot(l, "deviceId", S.toString(), s), ot(l, "webgpuInstance", C.toString(), s), ot(l, "webgpuDevice", R.toString(), s);
@@ -10161,13 +10161,13 @@ var hs = k(() => {
10161
10161
  }
10162
10162
  let m = be(d, s), y = l.length, w = 0, T = 0;
10163
10163
  if (y > 0) {
10164
- w = $()._malloc(y * $().PTR_SIZE), s.push(w), T = $()._malloc(y * $().PTR_SIZE), s.push(T);
10165
- for (let g = 0; g < y; g++) $().setValue(w + g * $().PTR_SIZE, l[g][0], "*"), $().setValue(T + g * $().PTR_SIZE, l[g][1], "*");
10164
+ w = z()._malloc(y * z().PTR_SIZE), s.push(w), T = z()._malloc(y * z().PTR_SIZE), s.push(T);
10165
+ 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], "*");
10166
10166
  }
10167
- await $()._OrtAppendExecutionProvider(a, m, w, T, y) !== 0 && G(`Can't append execution provider: ${d}.`);
10167
+ await z()._OrtAppendExecutionProvider(a, m, w, T, y) !== 0 && $(`Can't append execution provider: ${d}.`);
10168
10168
  }
10169
10169
  }, ms = async (a) => {
10170
- let r = $(), s = 0, f = [], i = a || {};
10170
+ let r = z(), s = 0, f = [], i = a || {};
10171
10171
  uc(i);
10172
10172
  try {
10173
10173
  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;
@@ -10175,7 +10175,7 @@ var hs = k(() => {
10175
10175
  let w = i.logVerbosityLevel ?? 0;
10176
10176
  if (!Number.isInteger(w) || w < 0 || w > 4) throw new Error(`log verbosity level is not valid: ${w}`);
10177
10177
  let T = typeof i.optimizedModelFilePath == "string" ? be(i.optimizedModelFilePath, f) : 0;
10178
- 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) {
10178
+ 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) {
10179
10179
  if (typeof i.enableGraphCapture != "boolean") throw new Error(`enableGraphCapture must be a boolean value: ${i.enableGraphCapture}`);
10180
10180
  on(s, "enableGraphCapture", i.enableGraphCapture.toString(), f);
10181
10181
  }
@@ -10183,13 +10183,13 @@ var hs = k(() => {
10183
10183
  if (typeof g != "string") throw new Error(`free dimension override name must be a string: ${g}`);
10184
10184
  if (typeof v != "number" || !Number.isInteger(v) || v < 0) throw new Error(`free dimension override value must be a non-negative integer: ${v}`);
10185
10185
  let S = be(g, f);
10186
- r._OrtAddFreeDimensionOverride(s, S, v) !== 0 && G(`Can't set a free dimension override: ${g} - ${v}.`);
10186
+ r._OrtAddFreeDimensionOverride(s, S, v) !== 0 && $(`Can't set a free dimension override: ${g} - ${v}.`);
10187
10187
  }
10188
10188
  return i.extra !== void 0 && Lt(i.extra, "", /* @__PURE__ */ new WeakSet(), (g, v) => {
10189
10189
  on(s, g, v, f);
10190
10190
  }), [s, f];
10191
10191
  } catch (d) {
10192
- throw s !== 0 && r._OrtReleaseSessionOptions(s) !== 0 && G("Can't release session options."), f.forEach((l) => r._free(l)), d;
10192
+ throw s !== 0 && r._OrtReleaseSessionOptions(s) !== 0 && $("Can't release session options."), f.forEach((l) => r._free(l)), d;
10193
10193
  }
10194
10194
  };
10195
10195
  });
@@ -10759,7 +10759,7 @@ var Os = k(() => {
10759
10759
  return l ? l.push(d) : this.temporarySessionTensorIds.set(r, [d]), d;
10760
10760
  }
10761
10761
  uploadTensor(r, s) {
10762
- if (!$().shouldTransferToMLTensor) throw new Error("Trying to upload to a MLTensor while shouldTransferToMLTensor is false");
10762
+ if (!z().shouldTransferToMLTensor) throw new Error("Trying to upload to a MLTensor while shouldTransferToMLTensor is false");
10763
10763
  le("verbose", () => `[WebNN] uploadTensor {tensorId: ${r}, data: ${s.byteLength}}`), this.tensorManager.upload(r, s);
10764
10764
  }
10765
10765
  async downloadTensor(r, s) {
@@ -10865,11 +10865,11 @@ var Kr = k(() => {
10865
10865
  nr();
10866
10866
  sn();
10867
10867
  yc = (a, r) => {
10868
- $()._OrtInit(a, r) !== 0 && G("Can't initialize onnxruntime.");
10868
+ z()._OrtInit(a, r) !== 0 && $("Can't initialize onnxruntime.");
10869
10869
  }, Jt = async (a) => {
10870
10870
  yc(a.wasm.numThreads, Ot(a.logLevel));
10871
10871
  }, Xt = async (a, r) => {
10872
- $().asyncInit?.();
10872
+ z().asyncInit?.();
10873
10873
  let s = a.webgpu.adapter;
10874
10874
  if (r === "webgpu") {
10875
10875
  if (typeof navigator > "u" || !navigator.gpu) throw new Error("WebGPU is not supported in current environment");
@@ -10884,29 +10884,29 @@ var Kr = k(() => {
10884
10884
  }
10885
10885
  }
10886
10886
  if (r === "webnn" && (typeof navigator > "u" || !navigator.ml)) throw new Error("WebNN is not supported in current environment");
10887
- if (r === "webgpu" && $().webgpuInit((f) => {
10887
+ if (r === "webgpu" && z().webgpuInit((f) => {
10888
10888
  a.webgpu.device = f;
10889
10889
  }), r === "webnn") {
10890
10890
  let f = new (Os(), $t(Ls)).WebNNBackend(a);
10891
- $().webnnInit([f, () => f.reserveTensorId(), (i) => f.releaseTensorId(i), async (i, d, l, m, y) => f.ensureTensor(i, d, l, m, y), (i, d) => {
10891
+ z().webnnInit([f, () => f.reserveTensorId(), (i) => f.releaseTensorId(i), async (i, d, l, m, y) => f.ensureTensor(i, d, l, m, y), (i, d) => {
10892
10892
  f.uploadTensor(i, d);
10893
10893
  }, async (i, d) => f.downloadTensor(i, d), (i, d) => f.registerMLContext(i, d), !!a.trace]);
10894
10894
  }
10895
10895
  }, it = /* @__PURE__ */ new Map(), bc = (a) => {
10896
- let r = $(), s = r.stackSave();
10896
+ let r = z(), s = r.stackSave();
10897
10897
  try {
10898
10898
  let f = r.PTR_SIZE, i = r.stackAlloc(2 * f);
10899
- r._OrtGetInputOutputCount(a, i, i + f) !== 0 && G("Can't get session input/output count.");
10899
+ r._OrtGetInputOutputCount(a, i, i + f) !== 0 && $("Can't get session input/output count.");
10900
10900
  let l = f === 4 ? "i32" : "i64";
10901
10901
  return [Number(r.getValue(i, l)), Number(r.getValue(i + f, l))];
10902
10902
  } finally {
10903
10903
  r.stackRestore(s);
10904
10904
  }
10905
10905
  }, Bs = (a, r) => {
10906
- let s = $(), f = s.stackSave(), i = 0;
10906
+ let s = z(), f = s.stackSave(), i = 0;
10907
10907
  try {
10908
10908
  let d = s.PTR_SIZE, l = s.stackAlloc(2 * d);
10909
- s._OrtGetInputOutputMetadata(a, r, l, l + d) !== 0 && G("Can't get session input/output metadata.");
10909
+ s._OrtGetInputOutputMetadata(a, r, l, l + d) !== 0 && $("Can't get session input/output metadata.");
10910
10910
  let y = Number(s.getValue(l, "*"));
10911
10911
  i = Number(s.getValue(l + d, "*"));
10912
10912
  let w = s.HEAP32[i / 4];
@@ -10921,11 +10921,11 @@ var Kr = k(() => {
10921
10921
  s.stackRestore(f), i !== 0 && s._OrtFree(i);
10922
10922
  }
10923
10923
  }, xt = (a) => {
10924
- let r = $(), s = r._malloc(a.byteLength);
10924
+ let r = z(), s = r._malloc(a.byteLength);
10925
10925
  if (s === 0) throw new Error(`Can't create a session. failed to allocate a buffer of size ${a.byteLength}.`);
10926
10926
  return r.HEAPU8.set(a, s), [s, a.byteLength];
10927
10927
  }, Qt = async (a, r) => {
10928
- let s, f, i = $();
10928
+ let s, f, i = z();
10929
10929
  Array.isArray(a) ? [s, f] = a : a.buffer === i.HEAPU8.buffer ? [s, f] = [a.byteOffset, a.byteLength] : [s, f] = xt(a);
10930
10930
  let d = 0, l = 0, m = 0, y = [], w = [], T = [];
10931
10931
  try {
@@ -10946,17 +10946,17 @@ var Kr = k(() => {
10946
10946
  } else i.currentContext = await i.webnnCreateMLContext();
10947
10947
  break;
10948
10948
  }
10949
- 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);
10949
+ 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);
10950
10950
  let [g, v] = bc(d), S = !!r?.enableGraphCapture, C = [], R = [], H = [], U = [], M = [];
10951
10951
  for (let L = 0; L < g; L++) {
10952
10952
  let [W, oe, p] = Bs(d, L);
10953
- W === 0 && G("Can't get an input name."), w.push(W);
10953
+ W === 0 && $("Can't get an input name."), w.push(W);
10954
10954
  let ne = i.UTF8ToString(W);
10955
10955
  C.push(ne), H.push(oe === 0 ? { name: ne, isTensor: false } : { name: ne, isTensor: true, type: or(oe), shape: p });
10956
10956
  }
10957
10957
  for (let L = 0; L < v; L++) {
10958
10958
  let [W, oe, p] = Bs(d, L + g);
10959
- W === 0 && G("Can't get an output name."), T.push(W);
10959
+ W === 0 && $("Can't get an output name."), T.push(W);
10960
10960
  let ne = i.UTF8ToString(W);
10961
10961
  R.push(ne), U.push(oe === 0 ? { name: ne, isTensor: false } : { name: ne, isTensor: true, type: or(oe), shape: p });
10962
10962
  {
@@ -10975,23 +10975,23 @@ var Kr = k(() => {
10975
10975
  }
10976
10976
  }
10977
10977
  let Y = null;
10978
- 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];
10978
+ 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];
10979
10979
  } catch (g) {
10980
- 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;
10980
+ 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;
10981
10981
  } finally {
10982
- i._free(s), l !== 0 && i._OrtReleaseSessionOptions(l) !== 0 && G("Can't release session options."), y.forEach((g) => i._free(g)), i.unmountExternalData?.();
10982
+ i._free(s), l !== 0 && i._OrtReleaseSessionOptions(l) !== 0 && $("Can't release session options."), y.forEach((g) => i._free(g)), i.unmountExternalData?.();
10983
10983
  }
10984
10984
  }, Zt = (a) => {
10985
- let r = $(), s = it.get(a);
10985
+ let r = z(), s = it.get(a);
10986
10986
  if (!s) throw new Error(`cannot release session. invalid session id: ${a}`);
10987
10987
  let [f, i, d, l, m] = s;
10988
- 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);
10988
+ 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);
10989
10989
  }, Ms = async (a, r, s, f, i, d, l = false) => {
10990
10990
  if (!a) {
10991
10991
  r.push(0);
10992
10992
  return;
10993
10993
  }
10994
- let m = $(), y = m.PTR_SIZE, w = a[0], T = a[1], g = a[3], v = g, S, C;
10994
+ let m = z(), y = m.PTR_SIZE, w = a[0], T = a[1], g = a[3], v = g, S, C;
10995
10995
  if (w === "string" && (g === "gpu-buffer" || g === "ml-tensor")) throw new Error("String tensor is not supported on GPU.");
10996
10996
  if (l && g !== "gpu-buffer") throw new Error(`External buffer must be provided for input/output index ${d} when enableGraphCapture is true.`);
10997
10997
  if (g === "gpu-buffer") {
@@ -11035,12 +11035,12 @@ var Kr = k(() => {
11035
11035
  try {
11036
11036
  T.forEach((M, Y) => m.setValue(H + Y * y, M, y === 4 ? "i32" : "i64"));
11037
11037
  let U = m._OrtCreateTensor(He(w), S, C, H, T.length, an(v));
11038
- U === 0 && G(`Can't create tensor for input/output. session=${f}, index=${d}.`), r.push(U);
11038
+ U === 0 && $(`Can't create tensor for input/output. session=${f}, index=${d}.`), r.push(U);
11039
11039
  } finally {
11040
11040
  m.stackRestore(R);
11041
11041
  }
11042
11042
  }, Kt = async (a, r, s, f, i, d) => {
11043
- let l = $(), m = l.PTR_SIZE, y = it.get(a);
11043
+ let l = z(), m = l.PTR_SIZE, y = it.get(a);
11044
11044
  if (!y) throw new Error(`cannot run inference. invalid session id: ${a}`);
11045
11045
  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);
11046
11046
  try {
@@ -11056,33 +11056,33 @@ var Kr = k(() => {
11056
11056
  $e("wasm bindInputsOutputs");
11057
11057
  for (let q = 0; q < R; q++) {
11058
11058
  let we = r[q];
11059
- await l._OrtBindInput(_, T[we], Y[q]) !== 0 && G(`Can't bind input[${q}] for session=${a}.`);
11059
+ await l._OrtBindInput(_, T[we], Y[q]) !== 0 && $(`Can't bind input[${q}] for session=${a}.`);
11060
11060
  }
11061
11061
  for (let q = 0; q < H; q++) {
11062
11062
  let we = f[q];
11063
- 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}.`);
11063
+ 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}.`);
11064
11064
  }
11065
11065
  ze("wasm bindInputsOutputs"), it.set(a, [w, T, g, v, S, true]);
11066
11066
  }
11067
11067
  l.jsepOnRunStart?.(w), l.webnnOnRunStart?.(w);
11068
11068
  let Q;
11069
- 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().");
11069
+ 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().");
11070
11070
  let x = [], A = [];
11071
11071
  $e("wasm ProcessOutputTensor");
11072
11072
  for (let _ = 0; _ < H; _++) {
11073
11073
  let ae = Number(l.getValue(J + _ * m, "*"));
11074
11074
  if (ae === L[_] || oe.includes(L[_])) {
11075
- x.push(i[_]), ae !== L[_] && l._OrtReleaseTensor(ae) !== 0 && G("Can't release tensor.");
11075
+ x.push(i[_]), ae !== L[_] && l._OrtReleaseTensor(ae) !== 0 && $("Can't release tensor.");
11076
11076
  continue;
11077
11077
  }
11078
11078
  let pe = l.stackSave(), q = l.stackAlloc(4 * m), we = false, re, se = 0;
11079
11079
  try {
11080
- l._OrtGetTensorData(ae, q, q + m, q + 2 * m, q + 3 * m) !== 0 && G(`Can't access output tensor data on index ${_}.`);
11080
+ l._OrtGetTensorData(ae, q, q + m, q + 2 * m, q + 3 * m) !== 0 && $(`Can't access output tensor data on index ${_}.`);
11081
11081
  let Te = m === 4 ? "i32" : "i64", Ye = Number(l.getValue(q, Te));
11082
11082
  se = l.getValue(q + m, "*");
11083
11083
  let bt = l.getValue(q + m * 2, "*"), wt = Number(l.getValue(q + m * 3, Te)), Se = [];
11084
11084
  for (let ee = 0; ee < wt; ee++) Se.push(Number(l.getValue(bt + ee * m, Te)));
11085
- l._OrtFree(bt) !== 0 && G("Can't free memory for tensor dims.");
11085
+ l._OrtFree(bt) !== 0 && $("Can't free memory for tensor dims.");
11086
11086
  let Ae = Se.reduce((ee, Z) => ee * Z, 1);
11087
11087
  re = or(Ye);
11088
11088
  let Oe = v?.outputPreferredLocations[f[_]];
@@ -11090,24 +11090,24 @@ var Kr = k(() => {
11090
11090
  if (Oe === "gpu-buffer" || Oe === "ml-tensor") throw new Error("String tensor is not supported on GPU.");
11091
11091
  let ee = [];
11092
11092
  for (let Z = 0; Z < Ae; Z++) {
11093
- let z = l.getValue(se + Z * m, "*"), V = l.getValue(se + (Z + 1) * m, "*"), qe = Z === Ae - 1 ? void 0 : V - z;
11094
- ee.push(l.UTF8ToString(z, qe));
11093
+ let G = l.getValue(se + Z * m, "*"), V = l.getValue(se + (Z + 1) * m, "*"), qe = Z === Ae - 1 ? void 0 : V - G;
11094
+ ee.push(l.UTF8ToString(G, qe));
11095
11095
  }
11096
11096
  x.push([re, Se, ee, "cpu"]);
11097
11097
  } else if (Oe === "gpu-buffer" && Ae > 0) {
11098
11098
  let ee = l.webgpuGetBuffer;
11099
11099
  if (!ee) throw new Error('preferredLocation "gpu-buffer" is not supported without using WebGPU.');
11100
- let Z = ee(se), z = mt(Ye, Ae);
11101
- if (z === void 0 || !ar(re)) throw new Error(`Unsupported data type: ${re}`);
11100
+ let Z = ee(se), G = mt(Ye, Ae);
11101
+ if (G === void 0 || !ar(re)) throw new Error(`Unsupported data type: ${re}`);
11102
11102
  we = true;
11103
11103
  {
11104
11104
  l.webgpuRegisterBuffer(Z, a, se);
11105
- let V = l.webgpuCreateDownloader(Z, z, a);
11105
+ let V = l.webgpuCreateDownloader(Z, G, a);
11106
11106
  x.push([re, Se, { gpuBuffer: Z, download: async () => {
11107
11107
  let qe = await V();
11108
11108
  return new (at(re))(qe);
11109
11109
  }, dispose: () => {
11110
- l._OrtReleaseTensor(ae) !== 0 && G("Can't release tensor.");
11110
+ l._OrtReleaseTensor(ae) !== 0 && $("Can't release tensor.");
11111
11111
  } }, "gpu-buffer"]);
11112
11112
  }
11113
11113
  } else if (Oe === "ml-tensor" && Ae > 0) {
@@ -11122,8 +11122,8 @@ var Kr = k(() => {
11122
11122
  } else if (Oe === "ml-tensor-cpu-output" && Ae > 0) {
11123
11123
  let ee = l.webnnCreateMLTensorDownloader(se, re)(), Z = x.length;
11124
11124
  we = true, A.push((async () => {
11125
- let z = [Z, await ee];
11126
- return l.webnnReleaseTensorId(se), l._OrtReleaseTensor(ae), z;
11125
+ let G = [Z, await ee];
11126
+ return l.webnnReleaseTensorId(se), l._OrtReleaseTensor(ae), G;
11127
11127
  })()), x.push([re, Se, [], "cpu"]);
11128
11128
  } else {
11129
11129
  let ee = at(re), Z = new ee(Ae);
@@ -11133,7 +11133,7 @@ var Kr = k(() => {
11133
11133
  l.stackRestore(pe), re === "string" && se && l._free(se), we || l._OrtReleaseTensor(ae);
11134
11134
  }
11135
11135
  }
11136
- v && !S && (l._OrtClearBoundOutputs(v.handle) !== 0 && G("Can't clear bound outputs."), it.set(a, [w, T, g, v, S, false]));
11136
+ v && !S && (l._OrtClearBoundOutputs(v.handle) !== 0 && $("Can't clear bound outputs."), it.set(a, [w, T, g, v, S, false]));
11137
11137
  for (let [_, ae] of await Promise.all(A)) x[_][2] = ae;
11138
11138
  return ze("wasm ProcessOutputTensor"), x;
11139
11139
  } finally {
@@ -11144,10 +11144,10 @@ var Kr = k(() => {
11144
11144
  }), 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));
11145
11145
  }
11146
11146
  }, er = (a) => {
11147
- let r = $(), s = it.get(a);
11147
+ let r = z(), s = it.get(a);
11148
11148
  if (!s) throw new Error("invalid session id");
11149
11149
  let f = s[0], i = r._OrtEndProfiling(f);
11150
- i === 0 && G("Can't get an profile file name."), r._OrtFree(i);
11150
+ i === 0 && $("Can't get an profile file name."), r._OrtFree(i);
11151
11151
  }, tr = (a) => {
11152
11152
  let r = [];
11153
11153
  for (let s of a) {
@@ -11380,7 +11380,7 @@ var $s = k(() => {
11380
11380
  Ve();
11381
11381
  Ve();
11382
11382
  Ve();
11383
- var Xa = "1.25.0-dev.20260307-d626b568e0";
11383
+ var Xa = "1.25.0-dev.20260323-a99aad9d36";
11384
11384
  var Tl = Zr;
11385
11385
  {
11386
11386
  let a = ($s(), $t(Gs)).wasmBackend;
@@ -11531,10 +11531,10 @@ var tensorToDataURL = (tensor, options) => {
11531
11531
  for (let i = 0; i < height; i++) {
11532
11532
  for (let j = 0; j < width; j++) {
11533
11533
  const R = (tensor.data[rTensorPointer++] - normBias[0]) * normMean[0];
11534
- const G2 = (tensor.data[gTensorPointer++] - normBias[1]) * normMean[1];
11534
+ const G = (tensor.data[gTensorPointer++] - normBias[1]) * normMean[1];
11535
11535
  const B = (tensor.data[bTensorPointer++] - normBias[2]) * normMean[2];
11536
11536
  const A = aTensorPointer === -1 ? 255 : (tensor.data[aTensorPointer++] - normBias[3]) * normMean[3];
11537
- pixels2DContext.fillStyle = "rgba(" + R + "," + G2 + "," + B + "," + A + ")";
11537
+ pixels2DContext.fillStyle = "rgba(" + R + "," + G + "," + B + "," + A + ")";
11538
11538
  pixels2DContext.fillRect(j, i, 1, 1);
11539
11539
  }
11540
11540
  }
@@ -16499,6 +16499,7 @@ var processors_exports = {};
16499
16499
  __export(processors_exports, {
16500
16500
  ChatterboxProcessor: () => ChatterboxProcessor,
16501
16501
  Florence2Processor: () => Florence2Processor,
16502
+ Gemma3Processor: () => Gemma3Processor,
16502
16503
  Gemma3nProcessor: () => Gemma3nProcessor,
16503
16504
  Glm46VProcessor: () => Glm46VProcessor,
16504
16505
  GraniteSpeechProcessor: () => GraniteSpeechProcessor,
@@ -19498,6 +19499,7 @@ __export(image_processors_exports, {
19498
19499
  DonutImageProcessor: () => DonutImageProcessor,
19499
19500
  EfficientNetImageProcessor: () => EfficientNetImageProcessor,
19500
19501
  GLPNFeatureExtractor: () => GLPNFeatureExtractor,
19502
+ Gemma3ImageProcessor: () => Gemma3ImageProcessor,
19501
19503
  Glm46VImageProcessor: () => Glm46VImageProcessor,
19502
19504
  GroundingDinoImageProcessor: () => GroundingDinoImageProcessor,
19503
19505
  Idefics3ImageProcessor: () => Idefics3ImageProcessor,
@@ -19682,6 +19684,10 @@ var EfficientNetImageProcessor = class extends ImageProcessor {
19682
19684
  }
19683
19685
  };
19684
19686
 
19687
+ // src/models/gemma3/image_processing_gemma3.js
19688
+ var Gemma3ImageProcessor = class extends ImageProcessor {
19689
+ };
19690
+
19685
19691
  // src/models/qwen2_vl/image_processing_qwen2_vl.js
19686
19692
  var Qwen2VLImageProcessor = class extends ImageProcessor {
19687
19693
  constructor(config) {
@@ -20905,6 +20911,48 @@ var Florence2Processor = class extends Processor {
20905
20911
  }
20906
20912
  };
20907
20913
 
20914
+ // src/models/gemma3/processing_gemma3.js
20915
+ var Gemma3Processor = class extends Processor {
20916
+ static tokenizer_class = AutoTokenizer;
20917
+ static image_processor_class = AutoImageProcessor;
20918
+ static uses_processor_config = true;
20919
+ static uses_chat_template_file = true;
20920
+ constructor(config, components, chat_template) {
20921
+ super(config, components, chat_template);
20922
+ this.image_seq_length = this.config.image_seq_length;
20923
+ const { boi_token, image_token, eoi_token } = this.tokenizer.config;
20924
+ this.boi_token = boi_token;
20925
+ this.image_token = image_token;
20926
+ this.eoi_token = eoi_token;
20927
+ const image_tokens_expanded = image_token.repeat(this.image_seq_length);
20928
+ this.full_image_sequence = `
20929
+
20930
+ ${boi_token}${image_tokens_expanded}${eoi_token}
20931
+
20932
+ `;
20933
+ }
20934
+ /**
20935
+ * @param {string|string[]} text
20936
+ * @param {import('../../utils/image.js').RawImage|import('../../utils/image.js').RawImage[]} [images]
20937
+ * @param {Object} [options]
20938
+ */
20939
+ async _call(text, images = null, options = {}) {
20940
+ if (typeof text === "string") {
20941
+ text = [text];
20942
+ }
20943
+ let image_inputs;
20944
+ if (images) {
20945
+ image_inputs = await this.image_processor(images, options);
20946
+ text = text.map((prompt) => prompt.replaceAll(this.boi_token, this.full_image_sequence));
20947
+ }
20948
+ const text_inputs = this.tokenizer(text, options);
20949
+ return {
20950
+ ...text_inputs,
20951
+ ...image_inputs
20952
+ };
20953
+ }
20954
+ };
20955
+
20908
20956
  // src/models/gemma3n/processing_gemma3n.js
20909
20957
  var Gemma3nProcessor = class extends Processor {
20910
20958
  static image_processor_class = AutoImageProcessor;
@@ -24085,8 +24133,7 @@ var MODEL_TYPES = {
24085
24133
  ImageAudioTextToText: 13,
24086
24134
  Supertonic: 14,
24087
24135
  Chatterbox: 15,
24088
- MultimodalLanguageModelOnly: 16,
24089
- VoxtralRealtime: 17
24136
+ VoxtralRealtime: 16
24090
24137
  };
24091
24138
  var MODEL_TYPE_CONFIG = {
24092
24139
  [MODEL_TYPES.DecoderOnly]: {
@@ -24143,12 +24190,12 @@ var MODEL_TYPE_CONFIG = {
24143
24190
  can_generate: true,
24144
24191
  forward: image_text_to_text_forward,
24145
24192
  prepare_inputs: multimodal_text_to_text_prepare_inputs_for_generation,
24146
- sessions: (config) => {
24193
+ sessions: (config, options, textOnly) => {
24147
24194
  const s = {
24148
24195
  embed_tokens: "embed_tokens",
24149
- vision_encoder: "vision_encoder",
24150
24196
  decoder_model_merged: "decoder_model_merged"
24151
24197
  };
24198
+ if (!textOnly) s["vision_encoder"] = "vision_encoder";
24152
24199
  if (config.is_encoder_decoder) s["model"] = "encoder_model";
24153
24200
  return s;
24154
24201
  },
@@ -24170,12 +24217,17 @@ var MODEL_TYPE_CONFIG = {
24170
24217
  [MODEL_TYPES.ImageAudioTextToText]: {
24171
24218
  can_generate: true,
24172
24219
  prepare_inputs: multimodal_text_to_text_prepare_inputs_for_generation,
24173
- sessions: () => ({
24174
- embed_tokens: "embed_tokens",
24175
- audio_encoder: "audio_encoder",
24176
- vision_encoder: "vision_encoder",
24177
- decoder_model_merged: "decoder_model_merged"
24178
- }),
24220
+ sessions: (config, options, textOnly) => {
24221
+ const s = {
24222
+ embed_tokens: "embed_tokens",
24223
+ decoder_model_merged: "decoder_model_merged"
24224
+ };
24225
+ if (!textOnly) {
24226
+ s["audio_encoder"] = "audio_encoder";
24227
+ s["vision_encoder"] = "vision_encoder";
24228
+ }
24229
+ return s;
24230
+ },
24179
24231
  optional_configs: { generation_config: "generation_config.json" }
24180
24232
  },
24181
24233
  [MODEL_TYPES.Phi3V]: {
@@ -24226,14 +24278,6 @@ var MODEL_TYPE_CONFIG = {
24226
24278
  cache_sessions: { model: true },
24227
24279
  optional_configs: { generation_config: "generation_config.json" }
24228
24280
  },
24229
- [MODEL_TYPES.MultimodalLanguageModelOnly]: {
24230
- can_generate: true,
24231
- forward: image_text_to_text_forward,
24232
- prepare_inputs: multimodal_text_to_text_prepare_inputs_for_generation,
24233
- sessions: () => ({ embed_tokens: "embed_tokens", decoder_model_merged: "decoder_model_merged" }),
24234
- cache_sessions: { decoder_model_merged: true },
24235
- optional_configs: { generation_config: "generation_config.json" }
24236
- },
24237
24281
  [MODEL_TYPES.VoxtralRealtime]: {
24238
24282
  can_generate: true,
24239
24283
  prepare_inputs: decoder_prepare_inputs_for_generation,
@@ -24259,6 +24303,19 @@ function getSessionsConfig(modelType, config, options = {}) {
24259
24303
  optional_configs: typeConfig.optional_configs
24260
24304
  };
24261
24305
  }
24306
+ function resolveTypeConfig(modelName, config) {
24307
+ let modelType = MODEL_TYPE_MAPPING.get(modelName);
24308
+ let textOnly = false;
24309
+ const nativeArch = config?.architectures?.[0];
24310
+ if (nativeArch && nativeArch !== modelName && modelName?.endsWith("ForCausalLM") && nativeArch.endsWith("ForConditionalGeneration")) {
24311
+ const nativeType = MODEL_TYPE_MAPPING.get(nativeArch);
24312
+ if (nativeType !== void 0) {
24313
+ modelType = nativeType;
24314
+ textOnly = true;
24315
+ }
24316
+ }
24317
+ return { typeConfig: MODEL_TYPE_CONFIG[modelType] ?? MODEL_TYPE_CONFIG.default, textOnly, modelType };
24318
+ }
24262
24319
  var MODEL_TYPE_MAPPING = /* @__PURE__ */ new Map();
24263
24320
  var MODEL_NAME_TO_CLASS_MAPPING = /* @__PURE__ */ new Map();
24264
24321
  var MODEL_CLASS_TO_NAME_MAPPING = /* @__PURE__ */ new Map();
@@ -24278,8 +24335,7 @@ var PreTrainedModel = class extends Callable2 {
24278
24335
  this.sessions = sessions;
24279
24336
  this.configs = configs;
24280
24337
  const modelName = MODEL_CLASS_TO_NAME_MAPPING.get(this.constructor);
24281
- const modelType = MODEL_TYPE_MAPPING.get(modelName);
24282
- const typeConfig = MODEL_TYPE_CONFIG[modelType] ?? MODEL_TYPE_CONFIG.default;
24338
+ const { typeConfig } = resolveTypeConfig(modelName, config);
24283
24339
  this.can_generate = typeConfig.can_generate;
24284
24340
  this._forward = typeConfig.forward;
24285
24341
  this._prepare_inputs_for_generation = typeConfig.prepare_inputs;
@@ -24342,9 +24398,8 @@ var PreTrainedModel = class extends Callable2 {
24342
24398
  session_options
24343
24399
  };
24344
24400
  const modelName = MODEL_CLASS_TO_NAME_MAPPING.get(this);
24345
- const modelType = MODEL_TYPE_MAPPING.get(modelName);
24346
24401
  config = options.config = await AutoConfig.from_pretrained(pretrained_model_name_or_path, options);
24347
- const typeConfig = MODEL_TYPE_CONFIG[modelType] ?? MODEL_TYPE_CONFIG.default;
24402
+ const { typeConfig, textOnly, modelType } = resolveTypeConfig(modelName, config);
24348
24403
  if (modelType === void 0) {
24349
24404
  const type = modelName ?? config?.model_type;
24350
24405
  if (type !== "custom") {
@@ -24353,7 +24408,7 @@ var PreTrainedModel = class extends Callable2 {
24353
24408
  );
24354
24409
  }
24355
24410
  }
24356
- const sessions = typeConfig.sessions(config, options);
24411
+ const sessions = typeConfig.sessions(config, options, textOnly);
24357
24412
  const promises = [
24358
24413
  constructSessions(pretrained_model_name_or_path, sessions, options, typeConfig.cache_sessions)
24359
24414
  ];
@@ -25408,6 +25463,7 @@ __export(models_exports, {
25408
25463
  Gemma2Model: () => Gemma2Model,
25409
25464
  Gemma2PreTrainedModel: () => Gemma2PreTrainedModel,
25410
25465
  Gemma3ForCausalLM: () => Gemma3ForCausalLM,
25466
+ Gemma3ForConditionalGeneration: () => Gemma3ForConditionalGeneration,
25411
25467
  Gemma3Model: () => Gemma3Model,
25412
25468
  Gemma3PreTrainedModel: () => Gemma3PreTrainedModel,
25413
25469
  Gemma3nForCausalLM: () => Gemma3nForCausalLM,
@@ -27126,12 +27182,35 @@ var Gemma2Model = class extends Gemma2PreTrainedModel {
27126
27182
  var Gemma2ForCausalLM = class extends Gemma2PreTrainedModel {
27127
27183
  };
27128
27184
 
27185
+ // src/models/llava/modeling_llava.js
27186
+ var LlavaPreTrainedModel = class extends PreTrainedModel {
27187
+ forward_params = ["input_ids", "attention_mask", "pixel_values", "position_ids", "past_key_values"];
27188
+ };
27189
+ var LlavaForConditionalGeneration = class extends LlavaPreTrainedModel {
27190
+ _merge_input_ids_with_image_features(kwargs) {
27191
+ const vision_hidden_size = kwargs.image_features.dims.at(-1);
27192
+ const reshaped_image_hidden_states = kwargs.image_features.view(-1, vision_hidden_size);
27193
+ return default_merge_input_ids_with_image_features({
27194
+ // @ts-ignore
27195
+ image_token_id: this.config.image_token_index ?? this.config.image_token_id,
27196
+ ...kwargs,
27197
+ image_features: reshaped_image_hidden_states
27198
+ });
27199
+ }
27200
+ };
27201
+ var Moondream1ForConditionalGeneration = class extends LlavaForConditionalGeneration {
27202
+ };
27203
+ var LlavaQwen2ForCausalLM = class extends LlavaForConditionalGeneration {
27204
+ };
27205
+
27129
27206
  // src/models/gemma3/modeling_gemma3.js
27130
27207
  var Gemma3PreTrainedModel = class extends PreTrainedModel {
27131
27208
  };
27132
27209
  var Gemma3Model = class extends Gemma3PreTrainedModel {
27133
27210
  };
27134
- var Gemma3ForCausalLM = class extends Gemma3PreTrainedModel {
27211
+ var Gemma3ForConditionalGeneration = class extends LlavaForConditionalGeneration {
27212
+ };
27213
+ var Gemma3ForCausalLM = class extends Gemma3ForConditionalGeneration {
27135
27214
  };
27136
27215
 
27137
27216
  // src/models/gemma3n/modeling_gemma3n.js
@@ -27314,8 +27393,8 @@ var Qwen2VLForConditionalGeneration = class extends Qwen2VLPreTrainedModel {
27314
27393
  for (let x = 0; x < 3; ++x) {
27315
27394
  for (const val of llm_pos_ids_list) {
27316
27395
  const seg_len = val.length / 3;
27317
- for (let z = x * seg_len; z < (x + 1) * seg_len; ++z) {
27318
- llm_positions[index++] = val[z];
27396
+ for (let z2 = x * seg_len; z2 < (x + 1) * seg_len; ++z2) {
27397
+ llm_positions[index++] = val[z2];
27319
27398
  }
27320
27399
  }
27321
27400
  }
@@ -27497,40 +27576,45 @@ var Qwen2VLForConditionalGeneration = class extends Qwen2VLPreTrainedModel {
27497
27576
  });
27498
27577
  }
27499
27578
  prepare_inputs_for_generation(input_ids, model_inputs, generation_config) {
27500
- if (model_inputs.attention_mask && !model_inputs.position_ids) {
27501
- if (!model_inputs.past_key_values) {
27502
- [model_inputs.position_ids, model_inputs.rope_deltas] = this.get_rope_index(
27579
+ if (!model_inputs.attention_mask || model_inputs.position_ids) {
27580
+ return model_inputs;
27581
+ }
27582
+ const session = this.sessions["decoder_model_merged"] ?? this.sessions["model"];
27583
+ if (!session.inputNames.includes("position_ids")) {
27584
+ return model_inputs;
27585
+ }
27586
+ if (!model_inputs.past_key_values) {
27587
+ [model_inputs.position_ids, model_inputs.rope_deltas] = this.get_rope_index(
27588
+ model_inputs.input_ids,
27589
+ model_inputs.image_grid_thw,
27590
+ model_inputs.video_grid_thw,
27591
+ model_inputs.attention_mask
27592
+ );
27593
+ } else {
27594
+ model_inputs.pixel_values = null;
27595
+ const past_length = model_inputs.past_key_values.get_seq_length();
27596
+ if (past_length < model_inputs.input_ids.dims[1]) {
27597
+ const [full_position_ids, rope_deltas] = this.get_rope_index(
27503
27598
  model_inputs.input_ids,
27504
27599
  model_inputs.image_grid_thw,
27505
27600
  model_inputs.video_grid_thw,
27506
27601
  model_inputs.attention_mask
27507
27602
  );
27603
+ model_inputs.rope_deltas = rope_deltas;
27604
+ model_inputs.position_ids = full_position_ids.slice(null, null, [past_length, null]);
27605
+ model_inputs.input_ids = model_inputs.input_ids.slice(null, [past_length, null]);
27508
27606
  } else {
27509
- model_inputs.pixel_values = null;
27510
- const past_length = model_inputs.past_key_values.get_seq_length();
27511
- if (past_length < model_inputs.input_ids.dims[1]) {
27512
- const [full_position_ids, rope_deltas] = this.get_rope_index(
27607
+ if (!model_inputs.rope_deltas) {
27608
+ [, model_inputs.rope_deltas] = this.get_rope_index(
27513
27609
  model_inputs.input_ids,
27514
27610
  model_inputs.image_grid_thw,
27515
27611
  model_inputs.video_grid_thw,
27516
27612
  model_inputs.attention_mask
27517
27613
  );
27518
- model_inputs.rope_deltas = rope_deltas;
27519
- model_inputs.position_ids = full_position_ids.slice(null, null, [past_length, null]);
27520
- model_inputs.input_ids = model_inputs.input_ids.slice(null, [past_length, null]);
27521
- } else {
27522
- if (!model_inputs.rope_deltas) {
27523
- [, model_inputs.rope_deltas] = this.get_rope_index(
27524
- model_inputs.input_ids,
27525
- model_inputs.image_grid_thw,
27526
- model_inputs.video_grid_thw,
27527
- model_inputs.attention_mask
27528
- );
27529
- }
27530
- const delta = BigInt(past_length);
27531
- const rope_deltas_list = model_inputs.rope_deltas.map((x) => delta + x);
27532
- model_inputs.position_ids = stack([rope_deltas_list, rope_deltas_list, rope_deltas_list], 0);
27533
27614
  }
27615
+ const delta = BigInt(past_length);
27616
+ const rope_deltas_list = model_inputs.rope_deltas.map((x) => delta + x);
27617
+ model_inputs.position_ids = stack([rope_deltas_list, rope_deltas_list, rope_deltas_list], 0);
27534
27618
  }
27535
27619
  }
27536
27620
  return model_inputs;
@@ -27813,27 +27897,6 @@ var HunYuanDenseV1Model = class extends HunYuanDenseV1PreTrainedModel {
27813
27897
  var HunYuanDenseV1ForCausalLM = class extends HunYuanDenseV1PreTrainedModel {
27814
27898
  };
27815
27899
 
27816
- // src/models/llava/modeling_llava.js
27817
- var LlavaPreTrainedModel = class extends PreTrainedModel {
27818
- forward_params = ["input_ids", "attention_mask", "pixel_values", "position_ids", "past_key_values"];
27819
- };
27820
- var LlavaForConditionalGeneration = class extends LlavaPreTrainedModel {
27821
- _merge_input_ids_with_image_features(kwargs) {
27822
- const vision_hidden_size = kwargs.image_features.dims.at(-1);
27823
- const reshaped_image_hidden_states = kwargs.image_features.view(-1, vision_hidden_size);
27824
- return default_merge_input_ids_with_image_features({
27825
- // @ts-ignore
27826
- image_token_id: this.config.image_token_index ?? this.config.image_token_id,
27827
- ...kwargs,
27828
- image_features: reshaped_image_hidden_states
27829
- });
27830
- }
27831
- };
27832
- var Moondream1ForConditionalGeneration = class extends LlavaForConditionalGeneration {
27833
- };
27834
- var LlavaQwen2ForCausalLM = class extends LlavaForConditionalGeneration {
27835
- };
27836
-
27837
27900
  // src/models/idefics3/modeling_idefics3.js
27838
27901
  var Idefics3ForConditionalGeneration = class extends LlavaForConditionalGeneration {
27839
27902
  forward_params = [
@@ -30731,6 +30794,7 @@ var MODEL_FOR_CAUSAL_LM_MAPPING_NAMES = /* @__PURE__ */ new Map([
30731
30794
  ["qwen3_vl", "Qwen3VLForCausalLM"],
30732
30795
  ["qwen3_vl_moe", "Qwen3VLMoeForCausalLM"],
30733
30796
  ["qwen3_5", "Qwen3_5ForCausalLM"],
30797
+ ["qwen3_5_text", "Qwen3_5ForCausalLM"],
30734
30798
  ["qwen3_5_moe", "Qwen3_5MoeForCausalLM"],
30735
30799
  ["gemma3n", "Gemma3nForCausalLM"],
30736
30800
  ["phi", "PhiForCausalLM"],
@@ -30818,6 +30882,7 @@ var MODEL_FOR_IMAGE_TEXT_TO_TEXT_MAPPING_NAMES = /* @__PURE__ */ new Map([
30818
30882
  ["smolvlm", "SmolVLMForConditionalGeneration"],
30819
30883
  ["paligemma", "PaliGemmaForConditionalGeneration"],
30820
30884
  ["llava_qwen2", "LlavaQwen2ForCausalLM"],
30885
+ ["gemma3", "Gemma3ForConditionalGeneration"],
30821
30886
  ["gemma3n", "Gemma3nForConditionalGeneration"],
30822
30887
  ["mistral3", "Mistral3ForConditionalGeneration"],
30823
30888
  ["lighton_ocr", "LightOnOcrForConditionalGeneration"],
@@ -31012,13 +31077,6 @@ var CUSTOM_MAPPING = [
31012
31077
  ],
31013
31078
  ["SupertonicForConditionalGeneration", SupertonicForConditionalGeneration, MODEL_TYPES.Supertonic],
31014
31079
  ["ChatterboxModel", ChatterboxModel, MODEL_TYPES.Chatterbox],
31015
- ["Qwen2VLForCausalLM", Qwen2VLForCausalLM, MODEL_TYPES.MultimodalLanguageModelOnly],
31016
- ["Qwen2_5_VLForCausalLM", Qwen2_5_VLForCausalLM, MODEL_TYPES.MultimodalLanguageModelOnly],
31017
- ["Qwen3VLForCausalLM", Qwen3VLForCausalLM, MODEL_TYPES.MultimodalLanguageModelOnly],
31018
- ["Qwen3VLMoeForCausalLM", Qwen3VLMoeForCausalLM, MODEL_TYPES.MultimodalLanguageModelOnly],
31019
- ["Qwen3_5ForCausalLM", Qwen3_5ForCausalLM, MODEL_TYPES.MultimodalLanguageModelOnly],
31020
- ["Qwen3_5MoeForCausalLM", Qwen3_5MoeForCausalLM, MODEL_TYPES.MultimodalLanguageModelOnly],
31021
- ["Gemma3nForCausalLM", Gemma3nForCausalLM, MODEL_TYPES.MultimodalLanguageModelOnly],
31022
31080
  [
31023
31081
  "VoxtralRealtimeForConditionalGeneration",
31024
31082
  VoxtralRealtimeForConditionalGeneration,
@@ -32700,6 +32758,41 @@ var TASK_ALIASES = Object.freeze({
32700
32758
  embeddings: "feature-extraction"
32701
32759
  });
32702
32760
 
32761
+ // src/utils/model_registry/resolve_model_type.js
32762
+ function resolve_model_type(config, { warn = true } = {}) {
32763
+ const architectures = (
32764
+ /** @type {string[]} */
32765
+ config.architectures || []
32766
+ );
32767
+ for (const arch of architectures) {
32768
+ const mappedType = MODEL_TYPE_MAPPING.get(arch);
32769
+ if (mappedType !== void 0) {
32770
+ return mappedType;
32771
+ }
32772
+ }
32773
+ if (config.model_type) {
32774
+ const mappedType = MODEL_TYPE_MAPPING.get(config.model_type);
32775
+ if (mappedType !== void 0) {
32776
+ return mappedType;
32777
+ }
32778
+ for (const mapping of Object.values(MODEL_MAPPING_NAMES)) {
32779
+ if (mapping.has(config.model_type)) {
32780
+ const resolved = MODEL_TYPE_MAPPING.get(mapping.get(config.model_type));
32781
+ if (resolved !== void 0) {
32782
+ return resolved;
32783
+ }
32784
+ }
32785
+ }
32786
+ }
32787
+ if (warn) {
32788
+ const archList = architectures.length > 0 ? architectures.join(", ") : "(none)";
32789
+ logger.warn(
32790
+ `[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}`
32791
+ );
32792
+ }
32793
+ return MODEL_TYPES.EncoderOnly;
32794
+ }
32795
+
32703
32796
  // src/utils/model_registry/get_model_files.js
32704
32797
  function get_config(modelId, { config = null, cache_dir = null, local_files_only = false, revision = "main" } = {}) {
32705
32798
  if (config !== null) {
@@ -32722,43 +32815,7 @@ async function get_model_files(modelId, { config = null, dtype: overrideDtype =
32722
32815
  const subfolder = "onnx";
32723
32816
  const rawDevice = overrideDevice ?? custom_config.device;
32724
32817
  let dtype = overrideDtype ?? custom_config.dtype;
32725
- let modelType;
32726
- const architectures = (
32727
- /** @type {string[]} */
32728
- config.architectures || []
32729
- );
32730
- let foundInMapping = false;
32731
- for (const arch of architectures) {
32732
- const mappedType = MODEL_TYPE_MAPPING.get(arch);
32733
- if (mappedType !== void 0) {
32734
- modelType = mappedType;
32735
- foundInMapping = true;
32736
- break;
32737
- }
32738
- }
32739
- if (!foundInMapping && config.model_type) {
32740
- const mappedType = MODEL_TYPE_MAPPING.get(config.model_type);
32741
- if (mappedType !== void 0) {
32742
- modelType = mappedType;
32743
- foundInMapping = true;
32744
- }
32745
- if (!foundInMapping) {
32746
- for (const mapping of Object.values(MODEL_MAPPING_NAMES)) {
32747
- if (mapping.has(config.model_type)) {
32748
- modelType = MODEL_TYPE_MAPPING.get(mapping.get(config.model_type));
32749
- foundInMapping = true;
32750
- break;
32751
- }
32752
- }
32753
- }
32754
- }
32755
- if (!foundInMapping) {
32756
- const archList = architectures.length > 0 ? architectures.join(", ") : "(none)";
32757
- logger.warn(
32758
- `[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}`
32759
- );
32760
- modelType = MODEL_TYPES.EncoderOnly;
32761
- }
32818
+ const modelType = resolve_model_type(config);
32762
32819
  const add_model_file = (fileName, baseName = null) => {
32763
32820
  baseName = baseName ?? fileName;
32764
32821
  const selectedDevice = selectDevice(rawDevice, fileName);
@@ -33345,6 +33402,31 @@ async function clear_pipeline_cache(task, modelId, options = {}) {
33345
33402
  return await clear_files_from_cache(modelId, files, options);
33346
33403
  }
33347
33404
 
33405
+ // src/utils/model_registry/get_available_dtypes.js
33406
+ var CONCRETE_DTYPES = Object.keys(DEFAULT_DTYPE_SUFFIX_MAPPING);
33407
+ async function get_available_dtypes(modelId, { config = null, model_file_name = null, revision = "main", cache_dir = null, local_files_only = false } = {}) {
33408
+ config = await get_config(modelId, { config, cache_dir, local_files_only, revision });
33409
+ const subfolder = "onnx";
33410
+ const modelType = resolve_model_type(config);
33411
+ const { sessions } = getSessionsConfig(modelType, config, { model_file_name });
33412
+ const baseNames = Object.values(sessions);
33413
+ const metadataOptions = { revision, cache_dir, local_files_only };
33414
+ const probeResults = await Promise.all(
33415
+ CONCRETE_DTYPES.map(async (dtype) => {
33416
+ const suffix = DEFAULT_DTYPE_SUFFIX_MAPPING[dtype] ?? "";
33417
+ const allExist = await Promise.all(
33418
+ baseNames.map(async (baseName) => {
33419
+ const filename = `${subfolder}/${baseName}${suffix}.onnx`;
33420
+ const metadata = await get_file_metadata(modelId, filename, metadataOptions);
33421
+ return metadata.exists;
33422
+ })
33423
+ );
33424
+ return { dtype, available: allExist.every(Boolean) };
33425
+ })
33426
+ );
33427
+ return probeResults.filter((r) => r.available).map((r) => r.dtype);
33428
+ }
33429
+
33348
33430
  // src/utils/model_registry/ModelRegistry.js
33349
33431
  var ModelRegistry = class {
33350
33432
  /**
@@ -33431,6 +33513,29 @@ var ModelRegistry = class {
33431
33513
  static async get_processor_files(modelId) {
33432
33514
  return get_processor_files(modelId);
33433
33515
  }
33516
+ /**
33517
+ * Detects which quantization levels (dtypes) are available for a model
33518
+ * by checking which ONNX files exist on the hub or locally.
33519
+ *
33520
+ * A dtype is considered available if all required model session files
33521
+ * exist for that dtype.
33522
+ *
33523
+ * @param {string} modelId - The model id (e.g., "onnx-community/all-MiniLM-L6-v2-ONNX")
33524
+ * @param {Object} [options] - Optional parameters
33525
+ * @param {import('../../configs.js').PretrainedConfig} [options.config=null] - Pre-loaded config
33526
+ * @param {string} [options.model_file_name=null] - Override the model file name (excluding .onnx suffix)
33527
+ * @param {string} [options.revision='main'] - Model revision
33528
+ * @param {string} [options.cache_dir=null] - Custom cache directory
33529
+ * @param {boolean} [options.local_files_only=false] - Only check local files
33530
+ * @returns {Promise<string[]>} Array of available dtype strings (e.g., ['fp32', 'fp16', 'q4', 'q8'])
33531
+ *
33532
+ * @example
33533
+ * const dtypes = await ModelRegistry.get_available_dtypes('onnx-community/all-MiniLM-L6-v2-ONNX');
33534
+ * console.log(dtypes); // ['fp32', 'fp16', 'int8', 'uint8', 'q8', 'q4']
33535
+ */
33536
+ static async get_available_dtypes(modelId, options = {}) {
33537
+ return get_available_dtypes(modelId, options);
33538
+ }
33434
33539
  /**
33435
33540
  * Quickly checks if a model is fully cached by verifying `config.json` is present,
33436
33541
  * then confirming all required files are cached.
@@ -33877,8 +33982,11 @@ export {
33877
33982
  Gemma2Model,
33878
33983
  Gemma2PreTrainedModel,
33879
33984
  Gemma3ForCausalLM,
33985
+ Gemma3ForConditionalGeneration,
33986
+ Gemma3ImageProcessor,
33880
33987
  Gemma3Model,
33881
33988
  Gemma3PreTrainedModel,
33989
+ Gemma3Processor,
33882
33990
  Gemma3nAudioFeatureExtractor,
33883
33991
  Gemma3nForCausalLM,
33884
33992
  Gemma3nForConditionalGeneration,
@@ -34497,7 +34605,7 @@ export {
34497
34605
 
34498
34606
  onnxruntime-web/dist/ort.webgpu.bundle.min.mjs:
34499
34607
  (*!
34500
- * ONNX Runtime Web v1.25.0-dev.20260307-d626b568e0
34608
+ * ONNX Runtime Web v1.25.0-dev.20260323-a99aad9d36
34501
34609
  * Copyright (c) Microsoft Corporation. All rights reserved.
34502
34610
  * Licensed under the MIT License.
34503
34611
  *)