@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
@@ -329,8 +329,11 @@ __export(transformers_exports, {
329
329
  Gemma2Model: () => Gemma2Model,
330
330
  Gemma2PreTrainedModel: () => Gemma2PreTrainedModel,
331
331
  Gemma3ForCausalLM: () => Gemma3ForCausalLM,
332
+ Gemma3ForConditionalGeneration: () => Gemma3ForConditionalGeneration,
333
+ Gemma3ImageProcessor: () => Gemma3ImageProcessor,
332
334
  Gemma3Model: () => Gemma3Model,
333
335
  Gemma3PreTrainedModel: () => Gemma3PreTrainedModel,
336
+ Gemma3Processor: () => Gemma3Processor,
334
337
  Gemma3nAudioFeatureExtractor: () => Gemma3nAudioFeatureExtractor,
335
338
  Gemma3nForCausalLM: () => Gemma3nForCausalLM,
336
339
  Gemma3nForConditionalGeneration: () => Gemma3nForConditionalGeneration,
@@ -952,7 +955,7 @@ var import_node_fs = __toESM(require("fs"), 1);
952
955
  var import_node_path = __toESM(require("path"), 1);
953
956
  var import_node_url = __toESM(require("url"), 1);
954
957
  var import_meta = {};
955
- var VERSION = "4.0.0-next.8";
958
+ var VERSION = "4.0.0-next.9";
956
959
  var HAS_SELF = typeof self !== "undefined";
957
960
  var IS_FS_AVAILABLE = !isEmpty(import_node_fs.default);
958
961
  var IS_PATH_AVAILABLE = !isEmpty(import_node_path.default);
@@ -6691,14 +6694,14 @@ var Random = class {
6691
6694
  * @returns {number} A normally distributed random value.
6692
6695
  */
6693
6696
  gauss(mu = 0, sigma = 1) {
6694
- let z = this._gauss_next;
6697
+ let z2 = this._gauss_next;
6695
6698
  this._gauss_next = null;
6696
- if (z === null) {
6699
+ if (z2 === null) {
6697
6700
  const x2pi = this.random() * 2 * Math.PI, g2rad = Math.sqrt(-2 * Math.log(1 - this.random()));
6698
- z = Math.cos(x2pi) * g2rad;
6701
+ z2 = Math.cos(x2pi) * g2rad;
6699
6702
  this._gauss_next = Math.sin(x2pi) * g2rad;
6700
6703
  }
6701
- return mu + z * sigma;
6704
+ return mu + z2 * sigma;
6702
6705
  }
6703
6706
  /**
6704
6707
  * Shuffles an array in-place using the Fisher-Yates algorithm.
@@ -8419,7 +8422,7 @@ var uint16_to_float32 = /* @__PURE__ */ (function() {
8419
8422
  // src/backends/onnx.js
8420
8423
  var ONNX_NODE = __toESM(require("onnxruntime-node"), 1);
8421
8424
 
8422
- // ../../node_modules/.pnpm/onnxruntime-web@1.25.0-dev.20260307-d626b568e0/node_modules/onnxruntime-web/dist/ort.webgpu.bundle.min.mjs
8425
+ // ../../node_modules/.pnpm/onnxruntime-web@1.25.0-dev.20260323-a99aad9d36/node_modules/onnxruntime-web/dist/ort.webgpu.bundle.min.mjs
8423
8426
  var ort_webgpu_bundle_min_exports = {};
8424
8427
  __export(ort_webgpu_bundle_min_exports, {
8425
8428
  InferenceSession: () => Jf,
@@ -9188,7 +9191,7 @@ async function ts(a = {}) {
9188
9191
  throw L(e = "Aborted(" + e + ")"), W = true, e = new WebAssembly.RuntimeError(e + ". Build with -sASSERTIONS for more info."), R?.(e), e;
9189
9192
  }
9190
9193
  function Ye() {
9191
- 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 } };
9194
+ 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 } };
9192
9195
  }
9193
9196
  async function bt() {
9194
9197
  function e(o, u) {
@@ -9251,14 +9254,14 @@ async function ts(a = {}) {
9251
9254
  gt.push(t), Je[e.Nc] = t, t.Nc = e.Nc;
9252
9255
  var n = { Oc: "run", he: e.ge, Wc: e.Wc, Nc: e.Nc };
9253
9256
  return t.postMessage(n, e.Yc), 0;
9254
- }, z = 0, V = (e, t, ...n) => {
9257
+ }, G = 0, V = (e, t, ...n) => {
9255
9258
  var o, u = 16 * n.length, c = P(), h = Ft(u), b = h >>> 3;
9256
9259
  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);
9257
9260
  return e = Lo(e, 0, u, h, t), D(c), e;
9258
9261
  };
9259
9262
  function qe(e) {
9260
9263
  if (i) return V(0, 1, e);
9261
- if (S = e, !(0 < z)) {
9264
+ if (S = e, !(0 < G)) {
9262
9265
  for (var t of gt) Se(t);
9263
9266
  for (t of We) Se(t);
9264
9267
  We = [], gt = [], Je = {}, W = true;
@@ -9303,7 +9306,7 @@ async function ts(a = {}) {
9303
9306
  We.push(e);
9304
9307
  }
9305
9308
  var Fe, zs = (e, t) => {
9306
- z = 0, e = zr(e, t), 0 < z ? S = e : Fr(e);
9309
+ G = 0, e = zr(e, t), 0 < G ? S = e : Fr(e);
9307
9310
  }, Ct = [], Ut = 0, me = (e) => -9007199254740992 > e || 9007199254740992 < e ? NaN : Number(e);
9308
9311
  function Vs(e) {
9309
9312
  var t = new wr(e >>>= 0);
@@ -9655,7 +9658,7 @@ async function ts(a = {}) {
9655
9658
  }
9656
9659
  var he = (e) => {
9657
9660
  if (!W) try {
9658
- if (e(), !(0 < z)) try {
9661
+ if (e(), !(0 < G)) try {
9659
9662
  i ? Wt() && Fr(S) : br(S);
9660
9663
  } catch (t) {
9661
9664
  t instanceof wt || t == "unwind" || y(0, t);
@@ -9683,7 +9686,7 @@ async function ts(a = {}) {
9683
9686
  return (t ? Vr[t] : of[e])(...Ir);
9684
9687
  }
9685
9688
  var Ei = () => {
9686
- z = 0;
9689
+ G = 0;
9687
9690
  };
9688
9691
  function Si(e) {
9689
9692
  e >>>= 0, i ? postMessage({ Oc: "cleanupThread", ie: e }) : yn(Je[e]);
@@ -9703,7 +9706,7 @@ async function ts(a = {}) {
9703
9706
  try {
9704
9707
  return e(...n);
9705
9708
  } finally {
9706
- W || (_t.pop(), Me && Ge === 1 && _t.length === 0 && (Ge = 0, z += 1, Pt(wa), typeof Fibers < "u" && Fibers.De()));
9709
+ W || (_t.pop(), Me && Ge === 1 && _t.length === 0 && (Ge = 0, G += 1, Pt(wa), typeof Fibers < "u" && Fibers.De()));
9707
9710
  }
9708
9711
  };
9709
9712
  return jn.set(e, t), t;
@@ -9718,7 +9721,7 @@ async function ts(a = {}) {
9718
9721
  try {
9719
9722
  var c = (function() {
9720
9723
  var E = (p(), x)[Me + 8 >>> 2 >>> 0];
9721
- return E = Vn.get(E), E = jn.get(E), --z, E();
9724
+ return E = Vn.get(E), E = jn.get(E), --G, E();
9722
9725
  })();
9723
9726
  } catch (E) {
9724
9727
  c = E, u = true;
@@ -9909,7 +9912,7 @@ async function ts(a = {}) {
9909
9912
  return L(ct(e >>> 0, t >>> 0));
9910
9913
  }
9911
9914
  var ou = () => {
9912
- throw z += 1, "unwind";
9915
+ throw G += 1, "unwind";
9913
9916
  };
9914
9917
  function au() {
9915
9918
  return 4294901760;
@@ -10002,15 +10005,15 @@ async function ts(a = {}) {
10002
10005
  }
10003
10006
  (b = (p(), A)[c + 24 >>> 2 >>> 0]) && (b = { label: Ne(b + 4) }, e.defaultQueue = b), e.label = Ne(c + 4);
10004
10007
  }
10005
- z += 1, lt(t, h.requestDevice(e).then((B) => {
10006
- --z, he(() => {
10007
- ce[u >>> 0] = B.queue, ce[o >>> 0] = B, lt(n, B.lost.then((ue) => {
10008
+ G += 1, lt(t, h.requestDevice(e).then((B) => {
10009
+ --G, he(() => {
10010
+ ce[u >>> 0] = B.queue, ce[o >>> 0] = B, G += 1, lt(n, B.lost.then((ue) => {
10008
10011
  he(() => {
10009
10012
  B.onuncapturederror = () => {
10010
10013
  };
10011
10014
  var ye = P(), fe = Ce(ue.message);
10012
10015
  _r(n, yu[ue.reason], fe), D(ye);
10013
- });
10016
+ }), --G;
10014
10017
  })), B.onuncapturederror = (ue) => {
10015
10018
  var ye = 5;
10016
10019
  ue.error instanceof GPUValidationError ? ye = 2 : ue.error instanceof GPUOutOfMemoryError ? ye = 3 : ue.error instanceof GPUInternalError && (ye = 4);
@@ -10019,7 +10022,7 @@ async function ts(a = {}) {
10019
10022
  }, "adapterInfo" in B || (B.adapterInfo = h.info), kr(t, 1, o, 0);
10020
10023
  });
10021
10024
  }, (B) => {
10022
- --z, he(() => {
10025
+ --G, he(() => {
10023
10026
  var ue = P(), ye = Ce(B.message);
10024
10027
  kr(t, 3, o, ye), n && _r(n, 4, ye), D(ue);
10025
10028
  });
@@ -10062,12 +10065,12 @@ async function ts(a = {}) {
10062
10065
  function vu(e, t, n, o, u) {
10063
10066
  e >>>= 0, t = me(t), n = me(n), u >>>= 0;
10064
10067
  var c = O(e);
10065
- Re[e] = [], u == 4294967295 && (u = void 0), z += 1, lt(t, c.mapAsync(n, o >>> 0, u).then(() => {
10066
- --z, he(() => {
10068
+ Re[e] = [], u == 4294967295 && (u = void 0), G += 1, lt(t, c.mapAsync(n, o >>> 0, u).then(() => {
10069
+ --G, he(() => {
10067
10070
  Rr(t, 1, 0);
10068
10071
  });
10069
10072
  }, (h) => {
10070
- --z, he(() => {
10073
+ --G, he(() => {
10071
10074
  P();
10072
10075
  var b = Ce(h.message);
10073
10076
  Rr(t, h.name === "AbortError" ? 4 : h.name === "OperationError" ? 3 : 0, b), delete Re[e];
@@ -10096,12 +10099,12 @@ async function ts(a = {}) {
10096
10099
  return ce[n >>> 0] = u, o && (Re[n] = []), true;
10097
10100
  }
10098
10101
  function Iu(e, t, n, o) {
10099
- e >>>= 0, t = me(t), o >>>= 0, n = du(n >>> 0), e = O(e), z += 1, lt(t, e.createComputePipelineAsync(n).then((u) => {
10100
- --z, he(() => {
10102
+ e >>>= 0, t = me(t), o >>>= 0, n = du(n >>> 0), e = O(e), G += 1, lt(t, e.createComputePipelineAsync(n).then((u) => {
10103
+ --G, he(() => {
10101
10104
  ce[o >>> 0] = u, Pr(t, 1, o, 0);
10102
10105
  });
10103
10106
  }, (u) => {
10104
- --z, he(() => {
10107
+ --G, he(() => {
10105
10108
  var c = P(), h = Ce(u.message);
10106
10109
  Pr(t, u.reason === "validation" ? 3 : u.reason === "internal" ? 4 : 0, o, h), D(c);
10107
10110
  });
@@ -10116,15 +10119,15 @@ async function ts(a = {}) {
10116
10119
  (e = O(e)).onuncapturederror = null, e.destroy();
10117
10120
  };
10118
10121
  function Ou(e, t) {
10119
- t = me(t), e = O(e >>> 0), z += 1, lt(t, e.popErrorScope().then((n) => {
10120
- --z, he(() => {
10122
+ t = me(t), e = O(e >>> 0), G += 1, lt(t, e.popErrorScope().then((n) => {
10123
+ --G, he(() => {
10121
10124
  var o = 5;
10122
10125
  n ? n instanceof GPUValidationError ? o = 2 : n instanceof GPUOutOfMemoryError ? o = 3 : n instanceof GPUInternalError && (o = 4) : o = 1;
10123
10126
  var u = P(), c = n ? Ce(n.message) : 0;
10124
10127
  Nr(t, 1, o, c), D(u);
10125
10128
  });
10126
10129
  }, (n) => {
10127
- --z, he(() => {
10130
+ --G, he(() => {
10128
10131
  var o = P(), u = Ce(n.message);
10129
10132
  Nr(t, 1, 5, u), D(o);
10130
10133
  });
@@ -10135,8 +10138,8 @@ async function ts(a = {}) {
10135
10138
  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] };
10136
10139
  (e = (p(), A)[n >>> 2 >>> 0]) !== 0 && (p(), u.Fe = !!(p(), A)[e + 8 >>> 2 >>> 0]);
10137
10140
  }
10138
- "gpu" in navigator ? (z += 1, lt(t, navigator.gpu.requestAdapter(u).then((c) => {
10139
- --z, he(() => {
10141
+ "gpu" in navigator ? (G += 1, lt(t, navigator.gpu.requestAdapter(u).then((c) => {
10142
+ --G, he(() => {
10140
10143
  if (c) ce[o >>> 0] = c, Et(t, 1, o, 0);
10141
10144
  else {
10142
10145
  var h = P(), b = Ce("WebGPU not available on this browser (requestAdapter returned null)");
@@ -10144,7 +10147,7 @@ async function ts(a = {}) {
10144
10147
  }
10145
10148
  });
10146
10149
  }, (c) => {
10147
- --z, he(() => {
10150
+ --G, he(() => {
10148
10151
  var h = P(), b = Ce(c.message);
10149
10152
  Et(t, 4, o, b), D(h);
10150
10153
  });
@@ -10375,7 +10378,7 @@ async function ts(a = {}) {
10375
10378
  Te(`invalid type for getValue: ${t}`);
10376
10379
  }
10377
10380
  }, r.UTF8ToString = ct, r.stringToUTF8 = Pe, r.lengthBytesUTF8 = _e;
10378
- 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) => {
10381
+ 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) => {
10379
10382
  if (r === void 0 || !r.Uc) return 1;
10380
10383
  if ((e = ct(Number(e >>> 0))).startsWith("./") && (e = e.substring(2)), !(e = r.Uc.get(e))) return 2;
10381
10384
  if (t = Number(t >>> 0), n = Number(n >>> 0), o = Number(o >>> 0), t + n > e.byteLength) return 3;
@@ -10395,11 +10398,11 @@ async function ts(a = {}) {
10395
10398
  } catch {
10396
10399
  return 4;
10397
10400
  }
10398
- }, 926500: (e, t, n) => {
10401
+ }, 937836: (e, t, n) => {
10399
10402
  r.Sd(e, (p(), J).subarray(t >>> 0, t + n >>> 0));
10400
- }, 926564: () => r.me(), 926606: (e) => {
10403
+ }, 937900: () => r.me(), 937942: (e) => {
10401
10404
  r.jd(e);
10402
- }, 926643: () => typeof wasmOffsetConverter < "u" };
10405
+ }, 937979: () => typeof wasmOffsetConverter < "u" };
10403
10406
  function af(e, t, n, o) {
10404
10407
  var u = P();
10405
10408
  try {
@@ -10418,12 +10421,12 @@ async function ts(a = {}) {
10418
10421
  N(1, 0);
10419
10422
  }
10420
10423
  }
10421
- function uf(e, t, n) {
10422
- var o = P();
10424
+ function uf(e) {
10425
+ var t = P();
10423
10426
  try {
10424
- _o(e, t, n);
10425
- } catch (u) {
10426
- if (D(o), u !== u + 0) throw u;
10427
+ Ro(e);
10428
+ } catch (n) {
10429
+ if (D(t), n !== n + 0) throw n;
10427
10430
  N(1, 0);
10428
10431
  }
10429
10432
  }
@@ -10436,25 +10439,16 @@ async function ts(a = {}) {
10436
10439
  N(1, 0);
10437
10440
  }
10438
10441
  }
10439
- function cf(e) {
10440
- var t = P();
10441
- try {
10442
- Ro(e);
10443
- } catch (n) {
10444
- if (D(t), n !== n + 0) throw n;
10445
- N(1, 0);
10446
- }
10447
- }
10448
- function df(e, t, n, o, u, c, h) {
10449
- var b = P();
10442
+ function cf(e, t, n) {
10443
+ var o = P();
10450
10444
  try {
10451
- return Wo(e, t, n, o, u, c, h);
10452
- } catch (E) {
10453
- if (D(b), E !== E + 0) throw E;
10445
+ _o(e, t, n);
10446
+ } catch (u) {
10447
+ if (D(o), u !== u + 0) throw u;
10454
10448
  N(1, 0);
10455
10449
  }
10456
10450
  }
10457
- function lf(e, t) {
10451
+ function df(e, t) {
10458
10452
  var n = P();
10459
10453
  try {
10460
10454
  Vo(e, t);
@@ -10463,6 +10457,15 @@ async function ts(a = {}) {
10463
10457
  N(1, 0);
10464
10458
  }
10465
10459
  }
10460
+ function lf(e, t, n, o, u, c, h) {
10461
+ var b = P();
10462
+ try {
10463
+ return Wo(e, t, n, o, u, c, h);
10464
+ } catch (E) {
10465
+ if (D(b), E !== E + 0) throw E;
10466
+ N(1, 0);
10467
+ }
10468
+ }
10466
10469
  function pf(e, t, n, o, u, c) {
10467
10470
  var h = P();
10468
10471
  try {
@@ -10892,7 +10895,7 @@ var nc;
10892
10895
  var oc;
10893
10896
  var ac;
10894
10897
  var qt;
10895
- var $;
10898
+ var z;
10896
10899
  var je = k(() => {
10897
10900
  "use strict";
10898
10901
  Yt();
@@ -10948,19 +10951,19 @@ var je = k(() => {
10948
10951
  rr = false, ds = true, H(M);
10949
10952
  });
10950
10953
  })), await Promise.race(C), S) throw new Error(`WebAssembly backend initializing failed due to timeout: ${r}ms`);
10951
- }, $ = () => {
10954
+ }, z = () => {
10952
10955
  if (nn && rn) return rn;
10953
10956
  throw new Error("WebAssembly is not initialized yet.");
10954
10957
  };
10955
10958
  });
10956
10959
  var be;
10957
10960
  var Lt;
10958
- var G;
10961
+ var $;
10959
10962
  var nr = k(() => {
10960
10963
  "use strict";
10961
10964
  je();
10962
10965
  be = (a, r) => {
10963
- let s = $(), f = s.lengthBytesUTF8(a) + 1, i = s._malloc(f);
10966
+ let s = z(), f = s.lengthBytesUTF8(a) + 1, i = s._malloc(f);
10964
10967
  return s.stringToUTF8(a, i, f), r.push(i), i;
10965
10968
  }, Lt = (a, r, s, f) => {
10966
10969
  if (typeof a == "object" && a !== null) {
@@ -10974,8 +10977,8 @@ var nr = k(() => {
10974
10977
  else if (typeof d == "boolean") f(l, d ? "1" : "0");
10975
10978
  else throw new Error(`Can't handle extra config type: ${typeof d}`);
10976
10979
  });
10977
- }, G = (a) => {
10978
- let r = $(), s = r.stackSave();
10980
+ }, $ = (a) => {
10981
+ let r = z(), s = r.stackSave();
10979
10982
  try {
10980
10983
  let f = r.PTR_SIZE, i = r.stackAlloc(2 * f);
10981
10984
  r._OrtGetLastError(i, i + f);
@@ -10992,7 +10995,7 @@ var ps = k(() => {
10992
10995
  je();
10993
10996
  nr();
10994
10997
  ls = (a) => {
10995
- let r = $(), s = 0, f = [], i = a || {};
10998
+ let r = z(), s = 0, f = [], i = a || {};
10996
10999
  try {
10997
11000
  if (a?.logSeverityLevel === void 0) i.logSeverityLevel = 2;
10998
11001
  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}`);
@@ -11000,9 +11003,9 @@ var ps = k(() => {
11000
11003
  else if (typeof a.logVerbosityLevel != "number" || !Number.isInteger(a.logVerbosityLevel)) throw new Error(`log verbosity level is not valid: ${a.logVerbosityLevel}`);
11001
11004
  a?.terminate === void 0 && (i.terminate = false);
11002
11005
  let d = 0;
11003
- 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) => {
11006
+ 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) => {
11004
11007
  let y = be(l, f), w = be(m, f);
11005
- r._OrtAddRunConfigEntry(s, y, w) !== 0 && G(`Can't set a run config entry: ${l} - ${m}.`);
11008
+ r._OrtAddRunConfigEntry(s, y, w) !== 0 && $(`Can't set a run config entry: ${l} - ${m}.`);
11006
11009
  }), [s, f];
11007
11010
  } catch (d) {
11008
11011
  throw s !== 0 && r._OrtReleaseRunOptions(s), f.forEach((l) => r._free(l)), d;
@@ -11050,7 +11053,7 @@ var hs = k(() => {
11050
11053
  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);
11051
11054
  }, on = (a, r, s, f) => {
11052
11055
  let i = be(r, f), d = be(s, f);
11053
- $()._OrtAddSessionConfigEntry(a, i, d) !== 0 && G(`Can't set a session config entry: ${r} - ${s}.`);
11056
+ z()._OrtAddSessionConfigEntry(a, i, d) !== 0 && $(`Can't set a session config entry: ${r} - ${s}.`);
11054
11057
  }, ot = (a, r, s, f) => {
11055
11058
  let i = be(r, f), d = be(s, f);
11056
11059
  a.push([i, d]);
@@ -11081,7 +11084,7 @@ var hs = k(() => {
11081
11084
  }
11082
11085
  S.validationMode && ot(l, "validationMode", S.validationMode, s);
11083
11086
  }
11084
- let v = $().webgpuRegisterDevice(g);
11087
+ let v = z().webgpuRegisterDevice(g);
11085
11088
  if (v) {
11086
11089
  let [S, C, R] = v;
11087
11090
  ot(l, "deviceId", S.toString(), s), ot(l, "webgpuInstance", C.toString(), s), ot(l, "webgpuDevice", R.toString(), s);
@@ -11096,13 +11099,13 @@ var hs = k(() => {
11096
11099
  }
11097
11100
  let m = be(d, s), y = l.length, w = 0, T = 0;
11098
11101
  if (y > 0) {
11099
- w = $()._malloc(y * $().PTR_SIZE), s.push(w), T = $()._malloc(y * $().PTR_SIZE), s.push(T);
11100
- for (let g = 0; g < y; g++) $().setValue(w + g * $().PTR_SIZE, l[g][0], "*"), $().setValue(T + g * $().PTR_SIZE, l[g][1], "*");
11102
+ w = z()._malloc(y * z().PTR_SIZE), s.push(w), T = z()._malloc(y * z().PTR_SIZE), s.push(T);
11103
+ 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], "*");
11101
11104
  }
11102
- await $()._OrtAppendExecutionProvider(a, m, w, T, y) !== 0 && G(`Can't append execution provider: ${d}.`);
11105
+ await z()._OrtAppendExecutionProvider(a, m, w, T, y) !== 0 && $(`Can't append execution provider: ${d}.`);
11103
11106
  }
11104
11107
  }, ms = async (a) => {
11105
- let r = $(), s = 0, f = [], i = a || {};
11108
+ let r = z(), s = 0, f = [], i = a || {};
11106
11109
  uc(i);
11107
11110
  try {
11108
11111
  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;
@@ -11110,7 +11113,7 @@ var hs = k(() => {
11110
11113
  let w = i.logVerbosityLevel ?? 0;
11111
11114
  if (!Number.isInteger(w) || w < 0 || w > 4) throw new Error(`log verbosity level is not valid: ${w}`);
11112
11115
  let T = typeof i.optimizedModelFilePath == "string" ? be(i.optimizedModelFilePath, f) : 0;
11113
- 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) {
11116
+ 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) {
11114
11117
  if (typeof i.enableGraphCapture != "boolean") throw new Error(`enableGraphCapture must be a boolean value: ${i.enableGraphCapture}`);
11115
11118
  on(s, "enableGraphCapture", i.enableGraphCapture.toString(), f);
11116
11119
  }
@@ -11118,13 +11121,13 @@ var hs = k(() => {
11118
11121
  if (typeof g != "string") throw new Error(`free dimension override name must be a string: ${g}`);
11119
11122
  if (typeof v != "number" || !Number.isInteger(v) || v < 0) throw new Error(`free dimension override value must be a non-negative integer: ${v}`);
11120
11123
  let S = be(g, f);
11121
- r._OrtAddFreeDimensionOverride(s, S, v) !== 0 && G(`Can't set a free dimension override: ${g} - ${v}.`);
11124
+ r._OrtAddFreeDimensionOverride(s, S, v) !== 0 && $(`Can't set a free dimension override: ${g} - ${v}.`);
11122
11125
  }
11123
11126
  return i.extra !== void 0 && Lt(i.extra, "", /* @__PURE__ */ new WeakSet(), (g, v) => {
11124
11127
  on(s, g, v, f);
11125
11128
  }), [s, f];
11126
11129
  } catch (d) {
11127
- throw s !== 0 && r._OrtReleaseSessionOptions(s) !== 0 && G("Can't release session options."), f.forEach((l) => r._free(l)), d;
11130
+ throw s !== 0 && r._OrtReleaseSessionOptions(s) !== 0 && $("Can't release session options."), f.forEach((l) => r._free(l)), d;
11128
11131
  }
11129
11132
  };
11130
11133
  });
@@ -11694,7 +11697,7 @@ var Os = k(() => {
11694
11697
  return l ? l.push(d) : this.temporarySessionTensorIds.set(r, [d]), d;
11695
11698
  }
11696
11699
  uploadTensor(r, s) {
11697
- if (!$().shouldTransferToMLTensor) throw new Error("Trying to upload to a MLTensor while shouldTransferToMLTensor is false");
11700
+ if (!z().shouldTransferToMLTensor) throw new Error("Trying to upload to a MLTensor while shouldTransferToMLTensor is false");
11698
11701
  le("verbose", () => `[WebNN] uploadTensor {tensorId: ${r}, data: ${s.byteLength}}`), this.tensorManager.upload(r, s);
11699
11702
  }
11700
11703
  async downloadTensor(r, s) {
@@ -11800,11 +11803,11 @@ var Kr = k(() => {
11800
11803
  nr();
11801
11804
  sn();
11802
11805
  yc = (a, r) => {
11803
- $()._OrtInit(a, r) !== 0 && G("Can't initialize onnxruntime.");
11806
+ z()._OrtInit(a, r) !== 0 && $("Can't initialize onnxruntime.");
11804
11807
  }, Jt = async (a) => {
11805
11808
  yc(a.wasm.numThreads, Ot(a.logLevel));
11806
11809
  }, Xt = async (a, r) => {
11807
- $().asyncInit?.();
11810
+ z().asyncInit?.();
11808
11811
  let s = a.webgpu.adapter;
11809
11812
  if (r === "webgpu") {
11810
11813
  if (typeof navigator > "u" || !navigator.gpu) throw new Error("WebGPU is not supported in current environment");
@@ -11819,29 +11822,29 @@ var Kr = k(() => {
11819
11822
  }
11820
11823
  }
11821
11824
  if (r === "webnn" && (typeof navigator > "u" || !navigator.ml)) throw new Error("WebNN is not supported in current environment");
11822
- if (r === "webgpu" && $().webgpuInit((f) => {
11825
+ if (r === "webgpu" && z().webgpuInit((f) => {
11823
11826
  a.webgpu.device = f;
11824
11827
  }), r === "webnn") {
11825
11828
  let f = new (Os(), $t(Ls)).WebNNBackend(a);
11826
- $().webnnInit([f, () => f.reserveTensorId(), (i) => f.releaseTensorId(i), async (i, d, l, m, y) => f.ensureTensor(i, d, l, m, y), (i, d) => {
11829
+ z().webnnInit([f, () => f.reserveTensorId(), (i) => f.releaseTensorId(i), async (i, d, l, m, y) => f.ensureTensor(i, d, l, m, y), (i, d) => {
11827
11830
  f.uploadTensor(i, d);
11828
11831
  }, async (i, d) => f.downloadTensor(i, d), (i, d) => f.registerMLContext(i, d), !!a.trace]);
11829
11832
  }
11830
11833
  }, it = /* @__PURE__ */ new Map(), bc = (a) => {
11831
- let r = $(), s = r.stackSave();
11834
+ let r = z(), s = r.stackSave();
11832
11835
  try {
11833
11836
  let f = r.PTR_SIZE, i = r.stackAlloc(2 * f);
11834
- r._OrtGetInputOutputCount(a, i, i + f) !== 0 && G("Can't get session input/output count.");
11837
+ r._OrtGetInputOutputCount(a, i, i + f) !== 0 && $("Can't get session input/output count.");
11835
11838
  let l = f === 4 ? "i32" : "i64";
11836
11839
  return [Number(r.getValue(i, l)), Number(r.getValue(i + f, l))];
11837
11840
  } finally {
11838
11841
  r.stackRestore(s);
11839
11842
  }
11840
11843
  }, Bs = (a, r) => {
11841
- let s = $(), f = s.stackSave(), i = 0;
11844
+ let s = z(), f = s.stackSave(), i = 0;
11842
11845
  try {
11843
11846
  let d = s.PTR_SIZE, l = s.stackAlloc(2 * d);
11844
- s._OrtGetInputOutputMetadata(a, r, l, l + d) !== 0 && G("Can't get session input/output metadata.");
11847
+ s._OrtGetInputOutputMetadata(a, r, l, l + d) !== 0 && $("Can't get session input/output metadata.");
11845
11848
  let y = Number(s.getValue(l, "*"));
11846
11849
  i = Number(s.getValue(l + d, "*"));
11847
11850
  let w = s.HEAP32[i / 4];
@@ -11856,11 +11859,11 @@ var Kr = k(() => {
11856
11859
  s.stackRestore(f), i !== 0 && s._OrtFree(i);
11857
11860
  }
11858
11861
  }, xt = (a) => {
11859
- let r = $(), s = r._malloc(a.byteLength);
11862
+ let r = z(), s = r._malloc(a.byteLength);
11860
11863
  if (s === 0) throw new Error(`Can't create a session. failed to allocate a buffer of size ${a.byteLength}.`);
11861
11864
  return r.HEAPU8.set(a, s), [s, a.byteLength];
11862
11865
  }, Qt = async (a, r) => {
11863
- let s, f, i = $();
11866
+ let s, f, i = z();
11864
11867
  Array.isArray(a) ? [s, f] = a : a.buffer === i.HEAPU8.buffer ? [s, f] = [a.byteOffset, a.byteLength] : [s, f] = xt(a);
11865
11868
  let d = 0, l = 0, m = 0, y = [], w = [], T = [];
11866
11869
  try {
@@ -11881,17 +11884,17 @@ var Kr = k(() => {
11881
11884
  } else i.currentContext = await i.webnnCreateMLContext();
11882
11885
  break;
11883
11886
  }
11884
- 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);
11887
+ 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);
11885
11888
  let [g, v] = bc(d), S = !!r?.enableGraphCapture, C = [], R = [], H = [], U = [], M = [];
11886
11889
  for (let L = 0; L < g; L++) {
11887
11890
  let [W, oe, p] = Bs(d, L);
11888
- W === 0 && G("Can't get an input name."), w.push(W);
11891
+ W === 0 && $("Can't get an input name."), w.push(W);
11889
11892
  let ne = i.UTF8ToString(W);
11890
11893
  C.push(ne), H.push(oe === 0 ? { name: ne, isTensor: false } : { name: ne, isTensor: true, type: or(oe), shape: p });
11891
11894
  }
11892
11895
  for (let L = 0; L < v; L++) {
11893
11896
  let [W, oe, p] = Bs(d, L + g);
11894
- W === 0 && G("Can't get an output name."), T.push(W);
11897
+ W === 0 && $("Can't get an output name."), T.push(W);
11895
11898
  let ne = i.UTF8ToString(W);
11896
11899
  R.push(ne), U.push(oe === 0 ? { name: ne, isTensor: false } : { name: ne, isTensor: true, type: or(oe), shape: p });
11897
11900
  {
@@ -11910,23 +11913,23 @@ var Kr = k(() => {
11910
11913
  }
11911
11914
  }
11912
11915
  let Y = null;
11913
- 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];
11916
+ 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];
11914
11917
  } catch (g) {
11915
- 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;
11918
+ 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;
11916
11919
  } finally {
11917
- i._free(s), l !== 0 && i._OrtReleaseSessionOptions(l) !== 0 && G("Can't release session options."), y.forEach((g) => i._free(g)), i.unmountExternalData?.();
11920
+ i._free(s), l !== 0 && i._OrtReleaseSessionOptions(l) !== 0 && $("Can't release session options."), y.forEach((g) => i._free(g)), i.unmountExternalData?.();
11918
11921
  }
11919
11922
  }, Zt = (a) => {
11920
- let r = $(), s = it.get(a);
11923
+ let r = z(), s = it.get(a);
11921
11924
  if (!s) throw new Error(`cannot release session. invalid session id: ${a}`);
11922
11925
  let [f, i, d, l, m] = s;
11923
- 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);
11926
+ 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);
11924
11927
  }, Ms = async (a, r, s, f, i, d, l = false) => {
11925
11928
  if (!a) {
11926
11929
  r.push(0);
11927
11930
  return;
11928
11931
  }
11929
- let m = $(), y = m.PTR_SIZE, w = a[0], T = a[1], g = a[3], v = g, S, C;
11932
+ let m = z(), y = m.PTR_SIZE, w = a[0], T = a[1], g = a[3], v = g, S, C;
11930
11933
  if (w === "string" && (g === "gpu-buffer" || g === "ml-tensor")) throw new Error("String tensor is not supported on GPU.");
11931
11934
  if (l && g !== "gpu-buffer") throw new Error(`External buffer must be provided for input/output index ${d} when enableGraphCapture is true.`);
11932
11935
  if (g === "gpu-buffer") {
@@ -11970,12 +11973,12 @@ var Kr = k(() => {
11970
11973
  try {
11971
11974
  T.forEach((M, Y) => m.setValue(H + Y * y, M, y === 4 ? "i32" : "i64"));
11972
11975
  let U = m._OrtCreateTensor(He(w), S, C, H, T.length, an(v));
11973
- U === 0 && G(`Can't create tensor for input/output. session=${f}, index=${d}.`), r.push(U);
11976
+ U === 0 && $(`Can't create tensor for input/output. session=${f}, index=${d}.`), r.push(U);
11974
11977
  } finally {
11975
11978
  m.stackRestore(R);
11976
11979
  }
11977
11980
  }, Kt = async (a, r, s, f, i, d) => {
11978
- let l = $(), m = l.PTR_SIZE, y = it.get(a);
11981
+ let l = z(), m = l.PTR_SIZE, y = it.get(a);
11979
11982
  if (!y) throw new Error(`cannot run inference. invalid session id: ${a}`);
11980
11983
  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);
11981
11984
  try {
@@ -11991,33 +11994,33 @@ var Kr = k(() => {
11991
11994
  $e("wasm bindInputsOutputs");
11992
11995
  for (let q = 0; q < R; q++) {
11993
11996
  let we = r[q];
11994
- await l._OrtBindInput(_, T[we], Y[q]) !== 0 && G(`Can't bind input[${q}] for session=${a}.`);
11997
+ await l._OrtBindInput(_, T[we], Y[q]) !== 0 && $(`Can't bind input[${q}] for session=${a}.`);
11995
11998
  }
11996
11999
  for (let q = 0; q < H; q++) {
11997
12000
  let we = f[q];
11998
- 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}.`);
12001
+ 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}.`);
11999
12002
  }
12000
12003
  ze("wasm bindInputsOutputs"), it.set(a, [w, T, g, v, S, true]);
12001
12004
  }
12002
12005
  l.jsepOnRunStart?.(w), l.webnnOnRunStart?.(w);
12003
12006
  let Q;
12004
- 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().");
12007
+ 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().");
12005
12008
  let x = [], A = [];
12006
12009
  $e("wasm ProcessOutputTensor");
12007
12010
  for (let _ = 0; _ < H; _++) {
12008
12011
  let ae = Number(l.getValue(J + _ * m, "*"));
12009
12012
  if (ae === L[_] || oe.includes(L[_])) {
12010
- x.push(i[_]), ae !== L[_] && l._OrtReleaseTensor(ae) !== 0 && G("Can't release tensor.");
12013
+ x.push(i[_]), ae !== L[_] && l._OrtReleaseTensor(ae) !== 0 && $("Can't release tensor.");
12011
12014
  continue;
12012
12015
  }
12013
12016
  let pe = l.stackSave(), q = l.stackAlloc(4 * m), we = false, re, se = 0;
12014
12017
  try {
12015
- l._OrtGetTensorData(ae, q, q + m, q + 2 * m, q + 3 * m) !== 0 && G(`Can't access output tensor data on index ${_}.`);
12018
+ l._OrtGetTensorData(ae, q, q + m, q + 2 * m, q + 3 * m) !== 0 && $(`Can't access output tensor data on index ${_}.`);
12016
12019
  let Te = m === 4 ? "i32" : "i64", Ye = Number(l.getValue(q, Te));
12017
12020
  se = l.getValue(q + m, "*");
12018
12021
  let bt = l.getValue(q + m * 2, "*"), wt = Number(l.getValue(q + m * 3, Te)), Se = [];
12019
12022
  for (let ee = 0; ee < wt; ee++) Se.push(Number(l.getValue(bt + ee * m, Te)));
12020
- l._OrtFree(bt) !== 0 && G("Can't free memory for tensor dims.");
12023
+ l._OrtFree(bt) !== 0 && $("Can't free memory for tensor dims.");
12021
12024
  let Ae = Se.reduce((ee, Z) => ee * Z, 1);
12022
12025
  re = or(Ye);
12023
12026
  let Oe = v?.outputPreferredLocations[f[_]];
@@ -12025,24 +12028,24 @@ var Kr = k(() => {
12025
12028
  if (Oe === "gpu-buffer" || Oe === "ml-tensor") throw new Error("String tensor is not supported on GPU.");
12026
12029
  let ee = [];
12027
12030
  for (let Z = 0; Z < Ae; Z++) {
12028
- let z = l.getValue(se + Z * m, "*"), V = l.getValue(se + (Z + 1) * m, "*"), qe = Z === Ae - 1 ? void 0 : V - z;
12029
- ee.push(l.UTF8ToString(z, qe));
12031
+ let G = l.getValue(se + Z * m, "*"), V = l.getValue(se + (Z + 1) * m, "*"), qe = Z === Ae - 1 ? void 0 : V - G;
12032
+ ee.push(l.UTF8ToString(G, qe));
12030
12033
  }
12031
12034
  x.push([re, Se, ee, "cpu"]);
12032
12035
  } else if (Oe === "gpu-buffer" && Ae > 0) {
12033
12036
  let ee = l.webgpuGetBuffer;
12034
12037
  if (!ee) throw new Error('preferredLocation "gpu-buffer" is not supported without using WebGPU.');
12035
- let Z = ee(se), z = mt(Ye, Ae);
12036
- if (z === void 0 || !ar(re)) throw new Error(`Unsupported data type: ${re}`);
12038
+ let Z = ee(se), G = mt(Ye, Ae);
12039
+ if (G === void 0 || !ar(re)) throw new Error(`Unsupported data type: ${re}`);
12037
12040
  we = true;
12038
12041
  {
12039
12042
  l.webgpuRegisterBuffer(Z, a, se);
12040
- let V = l.webgpuCreateDownloader(Z, z, a);
12043
+ let V = l.webgpuCreateDownloader(Z, G, a);
12041
12044
  x.push([re, Se, { gpuBuffer: Z, download: async () => {
12042
12045
  let qe = await V();
12043
12046
  return new (at(re))(qe);
12044
12047
  }, dispose: () => {
12045
- l._OrtReleaseTensor(ae) !== 0 && G("Can't release tensor.");
12048
+ l._OrtReleaseTensor(ae) !== 0 && $("Can't release tensor.");
12046
12049
  } }, "gpu-buffer"]);
12047
12050
  }
12048
12051
  } else if (Oe === "ml-tensor" && Ae > 0) {
@@ -12057,8 +12060,8 @@ var Kr = k(() => {
12057
12060
  } else if (Oe === "ml-tensor-cpu-output" && Ae > 0) {
12058
12061
  let ee = l.webnnCreateMLTensorDownloader(se, re)(), Z = x.length;
12059
12062
  we = true, A.push((async () => {
12060
- let z = [Z, await ee];
12061
- return l.webnnReleaseTensorId(se), l._OrtReleaseTensor(ae), z;
12063
+ let G = [Z, await ee];
12064
+ return l.webnnReleaseTensorId(se), l._OrtReleaseTensor(ae), G;
12062
12065
  })()), x.push([re, Se, [], "cpu"]);
12063
12066
  } else {
12064
12067
  let ee = at(re), Z = new ee(Ae);
@@ -12068,7 +12071,7 @@ var Kr = k(() => {
12068
12071
  l.stackRestore(pe), re === "string" && se && l._free(se), we || l._OrtReleaseTensor(ae);
12069
12072
  }
12070
12073
  }
12071
- v && !S && (l._OrtClearBoundOutputs(v.handle) !== 0 && G("Can't clear bound outputs."), it.set(a, [w, T, g, v, S, false]));
12074
+ v && !S && (l._OrtClearBoundOutputs(v.handle) !== 0 && $("Can't clear bound outputs."), it.set(a, [w, T, g, v, S, false]));
12072
12075
  for (let [_, ae] of await Promise.all(A)) x[_][2] = ae;
12073
12076
  return ze("wasm ProcessOutputTensor"), x;
12074
12077
  } finally {
@@ -12079,10 +12082,10 @@ var Kr = k(() => {
12079
12082
  }), 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));
12080
12083
  }
12081
12084
  }, er = (a) => {
12082
- let r = $(), s = it.get(a);
12085
+ let r = z(), s = it.get(a);
12083
12086
  if (!s) throw new Error("invalid session id");
12084
12087
  let f = s[0], i = r._OrtEndProfiling(f);
12085
- i === 0 && G("Can't get an profile file name."), r._OrtFree(i);
12088
+ i === 0 && $("Can't get an profile file name."), r._OrtFree(i);
12086
12089
  }, tr = (a) => {
12087
12090
  let r = [];
12088
12091
  for (let s of a) {
@@ -12315,7 +12318,7 @@ var $s = k(() => {
12315
12318
  Ve();
12316
12319
  Ve();
12317
12320
  Ve();
12318
- var Xa = "1.25.0-dev.20260307-d626b568e0";
12321
+ var Xa = "1.25.0-dev.20260323-a99aad9d36";
12319
12322
  var Tl = Zr;
12320
12323
  {
12321
12324
  let a = ($s(), $t(Gs)).wasmBackend;
@@ -16671,6 +16674,7 @@ var processors_exports = {};
16671
16674
  __export(processors_exports, {
16672
16675
  ChatterboxProcessor: () => ChatterboxProcessor,
16673
16676
  Florence2Processor: () => Florence2Processor,
16677
+ Gemma3Processor: () => Gemma3Processor,
16674
16678
  Gemma3nProcessor: () => Gemma3nProcessor,
16675
16679
  Glm46VProcessor: () => Glm46VProcessor,
16676
16680
  GraniteSpeechProcessor: () => GraniteSpeechProcessor,
@@ -19661,6 +19665,7 @@ __export(image_processors_exports, {
19661
19665
  DonutImageProcessor: () => DonutImageProcessor,
19662
19666
  EfficientNetImageProcessor: () => EfficientNetImageProcessor,
19663
19667
  GLPNFeatureExtractor: () => GLPNFeatureExtractor,
19668
+ Gemma3ImageProcessor: () => Gemma3ImageProcessor,
19664
19669
  Glm46VImageProcessor: () => Glm46VImageProcessor,
19665
19670
  GroundingDinoImageProcessor: () => GroundingDinoImageProcessor,
19666
19671
  Idefics3ImageProcessor: () => Idefics3ImageProcessor,
@@ -19845,6 +19850,10 @@ var EfficientNetImageProcessor = class extends ImageProcessor {
19845
19850
  }
19846
19851
  };
19847
19852
 
19853
+ // src/models/gemma3/image_processing_gemma3.js
19854
+ var Gemma3ImageProcessor = class extends ImageProcessor {
19855
+ };
19856
+
19848
19857
  // src/models/qwen2_vl/image_processing_qwen2_vl.js
19849
19858
  var Qwen2VLImageProcessor = class extends ImageProcessor {
19850
19859
  constructor(config) {
@@ -21068,6 +21077,48 @@ var Florence2Processor = class extends Processor {
21068
21077
  }
21069
21078
  };
21070
21079
 
21080
+ // src/models/gemma3/processing_gemma3.js
21081
+ var Gemma3Processor = class extends Processor {
21082
+ static tokenizer_class = AutoTokenizer;
21083
+ static image_processor_class = AutoImageProcessor;
21084
+ static uses_processor_config = true;
21085
+ static uses_chat_template_file = true;
21086
+ constructor(config, components, chat_template) {
21087
+ super(config, components, chat_template);
21088
+ this.image_seq_length = this.config.image_seq_length;
21089
+ const { boi_token, image_token, eoi_token } = this.tokenizer.config;
21090
+ this.boi_token = boi_token;
21091
+ this.image_token = image_token;
21092
+ this.eoi_token = eoi_token;
21093
+ const image_tokens_expanded = image_token.repeat(this.image_seq_length);
21094
+ this.full_image_sequence = `
21095
+
21096
+ ${boi_token}${image_tokens_expanded}${eoi_token}
21097
+
21098
+ `;
21099
+ }
21100
+ /**
21101
+ * @param {string|string[]} text
21102
+ * @param {import('../../utils/image.js').RawImage|import('../../utils/image.js').RawImage[]} [images]
21103
+ * @param {Object} [options]
21104
+ */
21105
+ async _call(text, images = null, options = {}) {
21106
+ if (typeof text === "string") {
21107
+ text = [text];
21108
+ }
21109
+ let image_inputs;
21110
+ if (images) {
21111
+ image_inputs = await this.image_processor(images, options);
21112
+ text = text.map((prompt) => prompt.replaceAll(this.boi_token, this.full_image_sequence));
21113
+ }
21114
+ const text_inputs = this.tokenizer(text, options);
21115
+ return {
21116
+ ...text_inputs,
21117
+ ...image_inputs
21118
+ };
21119
+ }
21120
+ };
21121
+
21071
21122
  // src/models/gemma3n/processing_gemma3n.js
21072
21123
  var Gemma3nProcessor = class extends Processor {
21073
21124
  static image_processor_class = AutoImageProcessor;
@@ -24248,8 +24299,7 @@ var MODEL_TYPES = {
24248
24299
  ImageAudioTextToText: 13,
24249
24300
  Supertonic: 14,
24250
24301
  Chatterbox: 15,
24251
- MultimodalLanguageModelOnly: 16,
24252
- VoxtralRealtime: 17
24302
+ VoxtralRealtime: 16
24253
24303
  };
24254
24304
  var MODEL_TYPE_CONFIG = {
24255
24305
  [MODEL_TYPES.DecoderOnly]: {
@@ -24306,12 +24356,12 @@ var MODEL_TYPE_CONFIG = {
24306
24356
  can_generate: true,
24307
24357
  forward: image_text_to_text_forward,
24308
24358
  prepare_inputs: multimodal_text_to_text_prepare_inputs_for_generation,
24309
- sessions: (config) => {
24359
+ sessions: (config, options, textOnly) => {
24310
24360
  const s = {
24311
24361
  embed_tokens: "embed_tokens",
24312
- vision_encoder: "vision_encoder",
24313
24362
  decoder_model_merged: "decoder_model_merged"
24314
24363
  };
24364
+ if (!textOnly) s["vision_encoder"] = "vision_encoder";
24315
24365
  if (config.is_encoder_decoder) s["model"] = "encoder_model";
24316
24366
  return s;
24317
24367
  },
@@ -24333,12 +24383,17 @@ var MODEL_TYPE_CONFIG = {
24333
24383
  [MODEL_TYPES.ImageAudioTextToText]: {
24334
24384
  can_generate: true,
24335
24385
  prepare_inputs: multimodal_text_to_text_prepare_inputs_for_generation,
24336
- sessions: () => ({
24337
- embed_tokens: "embed_tokens",
24338
- audio_encoder: "audio_encoder",
24339
- vision_encoder: "vision_encoder",
24340
- decoder_model_merged: "decoder_model_merged"
24341
- }),
24386
+ sessions: (config, options, textOnly) => {
24387
+ const s = {
24388
+ embed_tokens: "embed_tokens",
24389
+ decoder_model_merged: "decoder_model_merged"
24390
+ };
24391
+ if (!textOnly) {
24392
+ s["audio_encoder"] = "audio_encoder";
24393
+ s["vision_encoder"] = "vision_encoder";
24394
+ }
24395
+ return s;
24396
+ },
24342
24397
  optional_configs: { generation_config: "generation_config.json" }
24343
24398
  },
24344
24399
  [MODEL_TYPES.Phi3V]: {
@@ -24389,14 +24444,6 @@ var MODEL_TYPE_CONFIG = {
24389
24444
  cache_sessions: { model: true },
24390
24445
  optional_configs: { generation_config: "generation_config.json" }
24391
24446
  },
24392
- [MODEL_TYPES.MultimodalLanguageModelOnly]: {
24393
- can_generate: true,
24394
- forward: image_text_to_text_forward,
24395
- prepare_inputs: multimodal_text_to_text_prepare_inputs_for_generation,
24396
- sessions: () => ({ embed_tokens: "embed_tokens", decoder_model_merged: "decoder_model_merged" }),
24397
- cache_sessions: { decoder_model_merged: true },
24398
- optional_configs: { generation_config: "generation_config.json" }
24399
- },
24400
24447
  [MODEL_TYPES.VoxtralRealtime]: {
24401
24448
  can_generate: true,
24402
24449
  prepare_inputs: decoder_prepare_inputs_for_generation,
@@ -24422,6 +24469,19 @@ function getSessionsConfig(modelType, config, options = {}) {
24422
24469
  optional_configs: typeConfig.optional_configs
24423
24470
  };
24424
24471
  }
24472
+ function resolveTypeConfig(modelName, config) {
24473
+ let modelType = MODEL_TYPE_MAPPING.get(modelName);
24474
+ let textOnly = false;
24475
+ const nativeArch = config?.architectures?.[0];
24476
+ if (nativeArch && nativeArch !== modelName && modelName?.endsWith("ForCausalLM") && nativeArch.endsWith("ForConditionalGeneration")) {
24477
+ const nativeType = MODEL_TYPE_MAPPING.get(nativeArch);
24478
+ if (nativeType !== void 0) {
24479
+ modelType = nativeType;
24480
+ textOnly = true;
24481
+ }
24482
+ }
24483
+ return { typeConfig: MODEL_TYPE_CONFIG[modelType] ?? MODEL_TYPE_CONFIG.default, textOnly, modelType };
24484
+ }
24425
24485
  var MODEL_TYPE_MAPPING = /* @__PURE__ */ new Map();
24426
24486
  var MODEL_NAME_TO_CLASS_MAPPING = /* @__PURE__ */ new Map();
24427
24487
  var MODEL_CLASS_TO_NAME_MAPPING = /* @__PURE__ */ new Map();
@@ -24441,8 +24501,7 @@ var PreTrainedModel = class extends Callable2 {
24441
24501
  this.sessions = sessions;
24442
24502
  this.configs = configs;
24443
24503
  const modelName = MODEL_CLASS_TO_NAME_MAPPING.get(this.constructor);
24444
- const modelType = MODEL_TYPE_MAPPING.get(modelName);
24445
- const typeConfig = MODEL_TYPE_CONFIG[modelType] ?? MODEL_TYPE_CONFIG.default;
24504
+ const { typeConfig } = resolveTypeConfig(modelName, config);
24446
24505
  this.can_generate = typeConfig.can_generate;
24447
24506
  this._forward = typeConfig.forward;
24448
24507
  this._prepare_inputs_for_generation = typeConfig.prepare_inputs;
@@ -24505,9 +24564,8 @@ var PreTrainedModel = class extends Callable2 {
24505
24564
  session_options
24506
24565
  };
24507
24566
  const modelName = MODEL_CLASS_TO_NAME_MAPPING.get(this);
24508
- const modelType = MODEL_TYPE_MAPPING.get(modelName);
24509
24567
  config = options.config = await AutoConfig.from_pretrained(pretrained_model_name_or_path, options);
24510
- const typeConfig = MODEL_TYPE_CONFIG[modelType] ?? MODEL_TYPE_CONFIG.default;
24568
+ const { typeConfig, textOnly, modelType } = resolveTypeConfig(modelName, config);
24511
24569
  if (modelType === void 0) {
24512
24570
  const type = modelName ?? config?.model_type;
24513
24571
  if (type !== "custom") {
@@ -24516,7 +24574,7 @@ var PreTrainedModel = class extends Callable2 {
24516
24574
  );
24517
24575
  }
24518
24576
  }
24519
- const sessions = typeConfig.sessions(config, options);
24577
+ const sessions = typeConfig.sessions(config, options, textOnly);
24520
24578
  const promises = [
24521
24579
  constructSessions(pretrained_model_name_or_path, sessions, options, typeConfig.cache_sessions)
24522
24580
  ];
@@ -25571,6 +25629,7 @@ __export(models_exports, {
25571
25629
  Gemma2Model: () => Gemma2Model,
25572
25630
  Gemma2PreTrainedModel: () => Gemma2PreTrainedModel,
25573
25631
  Gemma3ForCausalLM: () => Gemma3ForCausalLM,
25632
+ Gemma3ForConditionalGeneration: () => Gemma3ForConditionalGeneration,
25574
25633
  Gemma3Model: () => Gemma3Model,
25575
25634
  Gemma3PreTrainedModel: () => Gemma3PreTrainedModel,
25576
25635
  Gemma3nForCausalLM: () => Gemma3nForCausalLM,
@@ -27289,12 +27348,35 @@ var Gemma2Model = class extends Gemma2PreTrainedModel {
27289
27348
  var Gemma2ForCausalLM = class extends Gemma2PreTrainedModel {
27290
27349
  };
27291
27350
 
27351
+ // src/models/llava/modeling_llava.js
27352
+ var LlavaPreTrainedModel = class extends PreTrainedModel {
27353
+ forward_params = ["input_ids", "attention_mask", "pixel_values", "position_ids", "past_key_values"];
27354
+ };
27355
+ var LlavaForConditionalGeneration = class extends LlavaPreTrainedModel {
27356
+ _merge_input_ids_with_image_features(kwargs) {
27357
+ const vision_hidden_size = kwargs.image_features.dims.at(-1);
27358
+ const reshaped_image_hidden_states = kwargs.image_features.view(-1, vision_hidden_size);
27359
+ return default_merge_input_ids_with_image_features({
27360
+ // @ts-ignore
27361
+ image_token_id: this.config.image_token_index ?? this.config.image_token_id,
27362
+ ...kwargs,
27363
+ image_features: reshaped_image_hidden_states
27364
+ });
27365
+ }
27366
+ };
27367
+ var Moondream1ForConditionalGeneration = class extends LlavaForConditionalGeneration {
27368
+ };
27369
+ var LlavaQwen2ForCausalLM = class extends LlavaForConditionalGeneration {
27370
+ };
27371
+
27292
27372
  // src/models/gemma3/modeling_gemma3.js
27293
27373
  var Gemma3PreTrainedModel = class extends PreTrainedModel {
27294
27374
  };
27295
27375
  var Gemma3Model = class extends Gemma3PreTrainedModel {
27296
27376
  };
27297
- var Gemma3ForCausalLM = class extends Gemma3PreTrainedModel {
27377
+ var Gemma3ForConditionalGeneration = class extends LlavaForConditionalGeneration {
27378
+ };
27379
+ var Gemma3ForCausalLM = class extends Gemma3ForConditionalGeneration {
27298
27380
  };
27299
27381
 
27300
27382
  // src/models/gemma3n/modeling_gemma3n.js
@@ -27477,8 +27559,8 @@ var Qwen2VLForConditionalGeneration = class extends Qwen2VLPreTrainedModel {
27477
27559
  for (let x = 0; x < 3; ++x) {
27478
27560
  for (const val of llm_pos_ids_list) {
27479
27561
  const seg_len = val.length / 3;
27480
- for (let z = x * seg_len; z < (x + 1) * seg_len; ++z) {
27481
- llm_positions[index++] = val[z];
27562
+ for (let z2 = x * seg_len; z2 < (x + 1) * seg_len; ++z2) {
27563
+ llm_positions[index++] = val[z2];
27482
27564
  }
27483
27565
  }
27484
27566
  }
@@ -27660,40 +27742,45 @@ var Qwen2VLForConditionalGeneration = class extends Qwen2VLPreTrainedModel {
27660
27742
  });
27661
27743
  }
27662
27744
  prepare_inputs_for_generation(input_ids, model_inputs, generation_config) {
27663
- if (model_inputs.attention_mask && !model_inputs.position_ids) {
27664
- if (!model_inputs.past_key_values) {
27665
- [model_inputs.position_ids, model_inputs.rope_deltas] = this.get_rope_index(
27745
+ if (!model_inputs.attention_mask || model_inputs.position_ids) {
27746
+ return model_inputs;
27747
+ }
27748
+ const session = this.sessions["decoder_model_merged"] ?? this.sessions["model"];
27749
+ if (!session.inputNames.includes("position_ids")) {
27750
+ return model_inputs;
27751
+ }
27752
+ if (!model_inputs.past_key_values) {
27753
+ [model_inputs.position_ids, model_inputs.rope_deltas] = this.get_rope_index(
27754
+ model_inputs.input_ids,
27755
+ model_inputs.image_grid_thw,
27756
+ model_inputs.video_grid_thw,
27757
+ model_inputs.attention_mask
27758
+ );
27759
+ } else {
27760
+ model_inputs.pixel_values = null;
27761
+ const past_length = model_inputs.past_key_values.get_seq_length();
27762
+ if (past_length < model_inputs.input_ids.dims[1]) {
27763
+ const [full_position_ids, rope_deltas] = this.get_rope_index(
27666
27764
  model_inputs.input_ids,
27667
27765
  model_inputs.image_grid_thw,
27668
27766
  model_inputs.video_grid_thw,
27669
27767
  model_inputs.attention_mask
27670
27768
  );
27769
+ model_inputs.rope_deltas = rope_deltas;
27770
+ model_inputs.position_ids = full_position_ids.slice(null, null, [past_length, null]);
27771
+ model_inputs.input_ids = model_inputs.input_ids.slice(null, [past_length, null]);
27671
27772
  } else {
27672
- model_inputs.pixel_values = null;
27673
- const past_length = model_inputs.past_key_values.get_seq_length();
27674
- if (past_length < model_inputs.input_ids.dims[1]) {
27675
- const [full_position_ids, rope_deltas] = this.get_rope_index(
27773
+ if (!model_inputs.rope_deltas) {
27774
+ [, model_inputs.rope_deltas] = this.get_rope_index(
27676
27775
  model_inputs.input_ids,
27677
27776
  model_inputs.image_grid_thw,
27678
27777
  model_inputs.video_grid_thw,
27679
27778
  model_inputs.attention_mask
27680
27779
  );
27681
- model_inputs.rope_deltas = rope_deltas;
27682
- model_inputs.position_ids = full_position_ids.slice(null, null, [past_length, null]);
27683
- model_inputs.input_ids = model_inputs.input_ids.slice(null, [past_length, null]);
27684
- } else {
27685
- if (!model_inputs.rope_deltas) {
27686
- [, model_inputs.rope_deltas] = this.get_rope_index(
27687
- model_inputs.input_ids,
27688
- model_inputs.image_grid_thw,
27689
- model_inputs.video_grid_thw,
27690
- model_inputs.attention_mask
27691
- );
27692
- }
27693
- const delta = BigInt(past_length);
27694
- const rope_deltas_list = model_inputs.rope_deltas.map((x) => delta + x);
27695
- model_inputs.position_ids = stack([rope_deltas_list, rope_deltas_list, rope_deltas_list], 0);
27696
27780
  }
27781
+ const delta = BigInt(past_length);
27782
+ const rope_deltas_list = model_inputs.rope_deltas.map((x) => delta + x);
27783
+ model_inputs.position_ids = stack([rope_deltas_list, rope_deltas_list, rope_deltas_list], 0);
27697
27784
  }
27698
27785
  }
27699
27786
  return model_inputs;
@@ -27976,27 +28063,6 @@ var HunYuanDenseV1Model = class extends HunYuanDenseV1PreTrainedModel {
27976
28063
  var HunYuanDenseV1ForCausalLM = class extends HunYuanDenseV1PreTrainedModel {
27977
28064
  };
27978
28065
 
27979
- // src/models/llava/modeling_llava.js
27980
- var LlavaPreTrainedModel = class extends PreTrainedModel {
27981
- forward_params = ["input_ids", "attention_mask", "pixel_values", "position_ids", "past_key_values"];
27982
- };
27983
- var LlavaForConditionalGeneration = class extends LlavaPreTrainedModel {
27984
- _merge_input_ids_with_image_features(kwargs) {
27985
- const vision_hidden_size = kwargs.image_features.dims.at(-1);
27986
- const reshaped_image_hidden_states = kwargs.image_features.view(-1, vision_hidden_size);
27987
- return default_merge_input_ids_with_image_features({
27988
- // @ts-ignore
27989
- image_token_id: this.config.image_token_index ?? this.config.image_token_id,
27990
- ...kwargs,
27991
- image_features: reshaped_image_hidden_states
27992
- });
27993
- }
27994
- };
27995
- var Moondream1ForConditionalGeneration = class extends LlavaForConditionalGeneration {
27996
- };
27997
- var LlavaQwen2ForCausalLM = class extends LlavaForConditionalGeneration {
27998
- };
27999
-
28000
28066
  // src/models/idefics3/modeling_idefics3.js
28001
28067
  var Idefics3ForConditionalGeneration = class extends LlavaForConditionalGeneration {
28002
28068
  forward_params = [
@@ -30894,6 +30960,7 @@ var MODEL_FOR_CAUSAL_LM_MAPPING_NAMES = /* @__PURE__ */ new Map([
30894
30960
  ["qwen3_vl", "Qwen3VLForCausalLM"],
30895
30961
  ["qwen3_vl_moe", "Qwen3VLMoeForCausalLM"],
30896
30962
  ["qwen3_5", "Qwen3_5ForCausalLM"],
30963
+ ["qwen3_5_text", "Qwen3_5ForCausalLM"],
30897
30964
  ["qwen3_5_moe", "Qwen3_5MoeForCausalLM"],
30898
30965
  ["gemma3n", "Gemma3nForCausalLM"],
30899
30966
  ["phi", "PhiForCausalLM"],
@@ -30981,6 +31048,7 @@ var MODEL_FOR_IMAGE_TEXT_TO_TEXT_MAPPING_NAMES = /* @__PURE__ */ new Map([
30981
31048
  ["smolvlm", "SmolVLMForConditionalGeneration"],
30982
31049
  ["paligemma", "PaliGemmaForConditionalGeneration"],
30983
31050
  ["llava_qwen2", "LlavaQwen2ForCausalLM"],
31051
+ ["gemma3", "Gemma3ForConditionalGeneration"],
30984
31052
  ["gemma3n", "Gemma3nForConditionalGeneration"],
30985
31053
  ["mistral3", "Mistral3ForConditionalGeneration"],
30986
31054
  ["lighton_ocr", "LightOnOcrForConditionalGeneration"],
@@ -31175,13 +31243,6 @@ var CUSTOM_MAPPING = [
31175
31243
  ],
31176
31244
  ["SupertonicForConditionalGeneration", SupertonicForConditionalGeneration, MODEL_TYPES.Supertonic],
31177
31245
  ["ChatterboxModel", ChatterboxModel, MODEL_TYPES.Chatterbox],
31178
- ["Qwen2VLForCausalLM", Qwen2VLForCausalLM, MODEL_TYPES.MultimodalLanguageModelOnly],
31179
- ["Qwen2_5_VLForCausalLM", Qwen2_5_VLForCausalLM, MODEL_TYPES.MultimodalLanguageModelOnly],
31180
- ["Qwen3VLForCausalLM", Qwen3VLForCausalLM, MODEL_TYPES.MultimodalLanguageModelOnly],
31181
- ["Qwen3VLMoeForCausalLM", Qwen3VLMoeForCausalLM, MODEL_TYPES.MultimodalLanguageModelOnly],
31182
- ["Qwen3_5ForCausalLM", Qwen3_5ForCausalLM, MODEL_TYPES.MultimodalLanguageModelOnly],
31183
- ["Qwen3_5MoeForCausalLM", Qwen3_5MoeForCausalLM, MODEL_TYPES.MultimodalLanguageModelOnly],
31184
- ["Gemma3nForCausalLM", Gemma3nForCausalLM, MODEL_TYPES.MultimodalLanguageModelOnly],
31185
31246
  [
31186
31247
  "VoxtralRealtimeForConditionalGeneration",
31187
31248
  VoxtralRealtimeForConditionalGeneration,
@@ -32863,6 +32924,41 @@ var TASK_ALIASES = Object.freeze({
32863
32924
  embeddings: "feature-extraction"
32864
32925
  });
32865
32926
 
32927
+ // src/utils/model_registry/resolve_model_type.js
32928
+ function resolve_model_type(config, { warn = true } = {}) {
32929
+ const architectures = (
32930
+ /** @type {string[]} */
32931
+ config.architectures || []
32932
+ );
32933
+ for (const arch of architectures) {
32934
+ const mappedType = MODEL_TYPE_MAPPING.get(arch);
32935
+ if (mappedType !== void 0) {
32936
+ return mappedType;
32937
+ }
32938
+ }
32939
+ if (config.model_type) {
32940
+ const mappedType = MODEL_TYPE_MAPPING.get(config.model_type);
32941
+ if (mappedType !== void 0) {
32942
+ return mappedType;
32943
+ }
32944
+ for (const mapping of Object.values(MODEL_MAPPING_NAMES)) {
32945
+ if (mapping.has(config.model_type)) {
32946
+ const resolved = MODEL_TYPE_MAPPING.get(mapping.get(config.model_type));
32947
+ if (resolved !== void 0) {
32948
+ return resolved;
32949
+ }
32950
+ }
32951
+ }
32952
+ }
32953
+ if (warn) {
32954
+ const archList = architectures.length > 0 ? architectures.join(", ") : "(none)";
32955
+ logger.warn(
32956
+ `[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}`
32957
+ );
32958
+ }
32959
+ return MODEL_TYPES.EncoderOnly;
32960
+ }
32961
+
32866
32962
  // src/utils/model_registry/get_model_files.js
32867
32963
  function get_config(modelId, { config = null, cache_dir = null, local_files_only = false, revision = "main" } = {}) {
32868
32964
  if (config !== null) {
@@ -32885,43 +32981,7 @@ async function get_model_files(modelId, { config = null, dtype: overrideDtype =
32885
32981
  const subfolder = "onnx";
32886
32982
  const rawDevice = overrideDevice ?? custom_config.device;
32887
32983
  let dtype = overrideDtype ?? custom_config.dtype;
32888
- let modelType;
32889
- const architectures = (
32890
- /** @type {string[]} */
32891
- config.architectures || []
32892
- );
32893
- let foundInMapping = false;
32894
- for (const arch of architectures) {
32895
- const mappedType = MODEL_TYPE_MAPPING.get(arch);
32896
- if (mappedType !== void 0) {
32897
- modelType = mappedType;
32898
- foundInMapping = true;
32899
- break;
32900
- }
32901
- }
32902
- if (!foundInMapping && config.model_type) {
32903
- const mappedType = MODEL_TYPE_MAPPING.get(config.model_type);
32904
- if (mappedType !== void 0) {
32905
- modelType = mappedType;
32906
- foundInMapping = true;
32907
- }
32908
- if (!foundInMapping) {
32909
- for (const mapping of Object.values(MODEL_MAPPING_NAMES)) {
32910
- if (mapping.has(config.model_type)) {
32911
- modelType = MODEL_TYPE_MAPPING.get(mapping.get(config.model_type));
32912
- foundInMapping = true;
32913
- break;
32914
- }
32915
- }
32916
- }
32917
- }
32918
- if (!foundInMapping) {
32919
- const archList = architectures.length > 0 ? architectures.join(", ") : "(none)";
32920
- logger.warn(
32921
- `[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}`
32922
- );
32923
- modelType = MODEL_TYPES.EncoderOnly;
32924
- }
32984
+ const modelType = resolve_model_type(config);
32925
32985
  const add_model_file = (fileName, baseName = null) => {
32926
32986
  baseName = baseName ?? fileName;
32927
32987
  const selectedDevice = selectDevice(rawDevice, fileName);
@@ -33508,6 +33568,31 @@ async function clear_pipeline_cache(task, modelId, options = {}) {
33508
33568
  return await clear_files_from_cache(modelId, files, options);
33509
33569
  }
33510
33570
 
33571
+ // src/utils/model_registry/get_available_dtypes.js
33572
+ var CONCRETE_DTYPES = Object.keys(DEFAULT_DTYPE_SUFFIX_MAPPING);
33573
+ async function get_available_dtypes(modelId, { config = null, model_file_name = null, revision = "main", cache_dir = null, local_files_only = false } = {}) {
33574
+ config = await get_config(modelId, { config, cache_dir, local_files_only, revision });
33575
+ const subfolder = "onnx";
33576
+ const modelType = resolve_model_type(config);
33577
+ const { sessions } = getSessionsConfig(modelType, config, { model_file_name });
33578
+ const baseNames = Object.values(sessions);
33579
+ const metadataOptions = { revision, cache_dir, local_files_only };
33580
+ const probeResults = await Promise.all(
33581
+ CONCRETE_DTYPES.map(async (dtype) => {
33582
+ const suffix = DEFAULT_DTYPE_SUFFIX_MAPPING[dtype] ?? "";
33583
+ const allExist = await Promise.all(
33584
+ baseNames.map(async (baseName) => {
33585
+ const filename = `${subfolder}/${baseName}${suffix}.onnx`;
33586
+ const metadata = await get_file_metadata(modelId, filename, metadataOptions);
33587
+ return metadata.exists;
33588
+ })
33589
+ );
33590
+ return { dtype, available: allExist.every(Boolean) };
33591
+ })
33592
+ );
33593
+ return probeResults.filter((r) => r.available).map((r) => r.dtype);
33594
+ }
33595
+
33511
33596
  // src/utils/model_registry/ModelRegistry.js
33512
33597
  var ModelRegistry = class {
33513
33598
  /**
@@ -33594,6 +33679,29 @@ var ModelRegistry = class {
33594
33679
  static async get_processor_files(modelId) {
33595
33680
  return get_processor_files(modelId);
33596
33681
  }
33682
+ /**
33683
+ * Detects which quantization levels (dtypes) are available for a model
33684
+ * by checking which ONNX files exist on the hub or locally.
33685
+ *
33686
+ * A dtype is considered available if all required model session files
33687
+ * exist for that dtype.
33688
+ *
33689
+ * @param {string} modelId - The model id (e.g., "onnx-community/all-MiniLM-L6-v2-ONNX")
33690
+ * @param {Object} [options] - Optional parameters
33691
+ * @param {import('../../configs.js').PretrainedConfig} [options.config=null] - Pre-loaded config
33692
+ * @param {string} [options.model_file_name=null] - Override the model file name (excluding .onnx suffix)
33693
+ * @param {string} [options.revision='main'] - Model revision
33694
+ * @param {string} [options.cache_dir=null] - Custom cache directory
33695
+ * @param {boolean} [options.local_files_only=false] - Only check local files
33696
+ * @returns {Promise<string[]>} Array of available dtype strings (e.g., ['fp32', 'fp16', 'q4', 'q8'])
33697
+ *
33698
+ * @example
33699
+ * const dtypes = await ModelRegistry.get_available_dtypes('onnx-community/all-MiniLM-L6-v2-ONNX');
33700
+ * console.log(dtypes); // ['fp32', 'fp16', 'int8', 'uint8', 'q8', 'q4']
33701
+ */
33702
+ static async get_available_dtypes(modelId, options = {}) {
33703
+ return get_available_dtypes(modelId, options);
33704
+ }
33597
33705
  /**
33598
33706
  * Quickly checks if a model is fully cached by verifying `config.json` is present,
33599
33707
  * then confirming all required files are cached.
@@ -34041,8 +34149,11 @@ var ModelRegistry = class {
34041
34149
  Gemma2Model,
34042
34150
  Gemma2PreTrainedModel,
34043
34151
  Gemma3ForCausalLM,
34152
+ Gemma3ForConditionalGeneration,
34153
+ Gemma3ImageProcessor,
34044
34154
  Gemma3Model,
34045
34155
  Gemma3PreTrainedModel,
34156
+ Gemma3Processor,
34046
34157
  Gemma3nAudioFeatureExtractor,
34047
34158
  Gemma3nForCausalLM,
34048
34159
  Gemma3nForConditionalGeneration,
@@ -34661,7 +34772,7 @@ var ModelRegistry = class {
34661
34772
 
34662
34773
  onnxruntime-web/dist/ort.webgpu.bundle.min.mjs:
34663
34774
  (*!
34664
- * ONNX Runtime Web v1.25.0-dev.20260307-d626b568e0
34775
+ * ONNX Runtime Web v1.25.0-dev.20260323-a99aad9d36
34665
34776
  * Copyright (c) Microsoft Corporation. All rights reserved.
34666
34777
  * Licensed under the MIT License.
34667
34778
  *)