@tryhamster/gerbil 1.6.1 → 1.6.3

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 (59) hide show
  1. package/dist/browser/index.d.ts +6 -0
  2. package/dist/browser/index.d.ts.map +1 -1
  3. package/dist/cli.mjs +7 -7
  4. package/dist/cli.mjs.map +1 -1
  5. package/dist/frameworks/express.d.mts +1 -1
  6. package/dist/frameworks/express.mjs +1 -1
  7. package/dist/frameworks/fastify.d.mts +1 -1
  8. package/dist/frameworks/fastify.mjs +1 -1
  9. package/dist/frameworks/hono.d.mts +1 -1
  10. package/dist/frameworks/hono.mjs +1 -1
  11. package/dist/frameworks/next.d.mts +2 -2
  12. package/dist/frameworks/next.mjs +1 -1
  13. package/dist/frameworks/react.d.mts +1 -1
  14. package/dist/frameworks/trpc.d.mts +1 -1
  15. package/dist/frameworks/trpc.mjs +1 -1
  16. package/dist/{gerbil--YDNklsY.d.mts → gerbil-BHPSiECS.d.mts} +2 -2
  17. package/dist/{gerbil--YDNklsY.d.mts.map → gerbil-BHPSiECS.d.mts.map} +1 -1
  18. package/dist/gerbil-eX40N7oB.mjs +4 -0
  19. package/dist/{gerbil-D13QAlk2.mjs → gerbil-qJhKR8JR.mjs} +9 -6
  20. package/dist/gerbil-qJhKR8JR.mjs.map +1 -0
  21. package/dist/gpu/hooks.d.mts +5 -0
  22. package/dist/gpu/hooks.d.mts.map +1 -1
  23. package/dist/gpu/hooks.mjs +12 -3
  24. package/dist/gpu/hooks.mjs.map +1 -1
  25. package/dist/gpu/index.mjs +2 -2
  26. package/dist/{gpu-DtA28rES.mjs → gpu-BZVtzX9N.mjs} +44 -3
  27. package/dist/gpu-BZVtzX9N.mjs.map +1 -0
  28. package/dist/index-CZVIHkaH.d.mts.map +1 -1
  29. package/dist/index.d.mts +2 -2
  30. package/dist/index.mjs +4 -4
  31. package/dist/integrations/ai-sdk.d.mts +1 -1
  32. package/dist/integrations/ai-sdk.mjs +1 -1
  33. package/dist/integrations/langchain.d.mts +1 -1
  34. package/dist/integrations/langchain.mjs +1 -1
  35. package/dist/integrations/llamaindex.d.mts +1 -1
  36. package/dist/integrations/llamaindex.mjs +1 -1
  37. package/dist/integrations/mcp.d.mts +2 -2
  38. package/dist/integrations/mcp.mjs +4 -4
  39. package/dist/{mcp-DuaxaIwt.mjs → mcp-DIygAeaN.mjs} +3 -3
  40. package/dist/{mcp-DuaxaIwt.mjs.map → mcp-DIygAeaN.mjs.map} +1 -1
  41. package/dist/{moonshine-stt-BwX7NQ0O.mjs → moonshine-stt-BFIm_Xxk.mjs} +118 -7
  42. package/dist/moonshine-stt-BFIm_Xxk.mjs.map +1 -0
  43. package/dist/moonshine-stt-D7BqG2pU.mjs +4 -0
  44. package/dist/{one-liner-CMk_GZgS.mjs → one-liner-CGozk7xR.mjs} +2 -2
  45. package/dist/{one-liner-CMk_GZgS.mjs.map → one-liner-CGozk7xR.mjs.map} +1 -1
  46. package/dist/{repl-CD4NDrku.mjs → repl-C_-ogJ09.mjs} +3 -3
  47. package/dist/skills/index.d.mts +2 -2
  48. package/dist/skills/index.mjs +3 -3
  49. package/dist/{skills-CJHhljKM.mjs → skills-DJ0cCjfD.mjs} +2 -2
  50. package/dist/{skills-CJHhljKM.mjs.map → skills-DJ0cCjfD.mjs.map} +1 -1
  51. package/dist/{types-CjG36Vzj.d.mts → types-BBDAW4MS.d.mts} +7 -1
  52. package/dist/types-BBDAW4MS.d.mts.map +1 -0
  53. package/package.json +1 -1
  54. package/dist/gerbil-BPpEvMYU.mjs +0 -4
  55. package/dist/gerbil-D13QAlk2.mjs.map +0 -1
  56. package/dist/gpu-DtA28rES.mjs.map +0 -1
  57. package/dist/moonshine-stt-BkU9cx2d.mjs +0 -4
  58. package/dist/moonshine-stt-BwX7NQ0O.mjs.map +0 -1
  59. package/dist/types-CjG36Vzj.d.mts.map +0 -1
@@ -1,6 +1,6 @@
1
1
  import { i as resolveDefaultRepo, n as OUTETTS_ASSETS, r as OUTETTS_PRESET_VOICES, t as DEFAULT_MODELS } from "../defaults-KnrRSIeJ.mjs";
2
2
  import { a as generateMoonshineEncoderGraph, h as generateNanoCodecDecoderGraph, i as generateMoonshineDecoderGraph, m as generateKaniTtsGraph, o as moonshineEncoderFrames, r as MOONSHINE_REMAINING_WORK, s as parseMoonshineConfig, u as audioTokensToCodes, x as parseKaniConfig } from "../architectures-CpmH4Gha.mjs";
3
- import { A as dequantizeGemma4VisionProjection, C as audioTokensToDacCodes, D as parseOuteTtsConfig, E as generateOuteTtsBackboneGraph, M as generateGemma4VisionGraph, N as patchGemma4VisionClips, O as KaniTTS, P as resolveGemma4VisionInfo, S as loadOuteSpeaker, T as generateDacSpeechDecoderGraph, _ as smartResize, a as buildGemma4PosEmbeds, b as OuteTTS, c as buildMRoPECosSin, d as buildPositionIds, f as buildRotaryCosSin, g as preprocessImageGemma4, h as preprocessImage, i as buildGemma4PoolMatrix, j as dequantizeMLXProjection, k as generateQwen3_5VisionGraph, l as buildMRoPEPositionIds, m as mropeFreqDims, n as GEMMA4_IMAGE_PROCESSOR, o as buildGemma4RotaryCosSin, p as buildVisionPositionTensors, r as QWEN3_5_IMAGE_PROCESSOR, s as buildGemma4VisionPositionTensors, t as WebGPUEngine, u as buildPosEmbeds, v as VisionExecutor, w as dacOutputLength, x as buildOutePromptString, y as ParlerTTS } from "../gpu-DtA28rES.mjs";
4
- import { a as loadMoonshine, d as Tokenizer, f as Executor, i as loadModel, l as quantizeKaniBackbone, n as MoonshineEncoderExecutor, r as loadKaniTTS, t as MoonshineSTT, x as initGPU } from "../moonshine-stt-BwX7NQ0O.mjs";
3
+ import { A as dequantizeGemma4VisionProjection, C as audioTokensToDacCodes, D as parseOuteTtsConfig, E as generateOuteTtsBackboneGraph, M as generateGemma4VisionGraph, N as patchGemma4VisionClips, O as KaniTTS, P as resolveGemma4VisionInfo, S as loadOuteSpeaker, T as generateDacSpeechDecoderGraph, _ as smartResize, a as buildGemma4PosEmbeds, b as OuteTTS, c as buildMRoPECosSin, d as buildPositionIds, f as buildRotaryCosSin, g as preprocessImageGemma4, h as preprocessImage, i as buildGemma4PoolMatrix, j as dequantizeMLXProjection, k as generateQwen3_5VisionGraph, l as buildMRoPEPositionIds, m as mropeFreqDims, n as GEMMA4_IMAGE_PROCESSOR, o as buildGemma4RotaryCosSin, p as buildVisionPositionTensors, r as QWEN3_5_IMAGE_PROCESSOR, s as buildGemma4VisionPositionTensors, t as WebGPUEngine, u as buildPosEmbeds, v as VisionExecutor, w as dacOutputLength, x as buildOutePromptString, y as ParlerTTS } from "../gpu-BZVtzX9N.mjs";
4
+ import { a as loadMoonshine, d as Tokenizer, f as Executor, i as loadModel, l as quantizeKaniBackbone, n as MoonshineEncoderExecutor, r as loadKaniTTS, t as MoonshineSTT, x as initGPU } from "../moonshine-stt-BFIm_Xxk.mjs";
5
5
 
6
6
  export { DEFAULT_MODELS, Executor, GEMMA4_IMAGE_PROCESSOR, KaniTTS, MOONSHINE_REMAINING_WORK, MoonshineEncoderExecutor, MoonshineSTT, OUTETTS_ASSETS, OUTETTS_PRESET_VOICES, OuteTTS, ParlerTTS, QWEN3_5_IMAGE_PROCESSOR, Tokenizer, VisionExecutor, WebGPUEngine, audioTokensToCodes, audioTokensToDacCodes, buildGemma4PoolMatrix, buildGemma4PosEmbeds, buildGemma4RotaryCosSin, buildGemma4VisionPositionTensors, buildMRoPECosSin, buildMRoPEPositionIds, buildOutePromptString, buildPosEmbeds, buildPositionIds, buildRotaryCosSin, buildVisionPositionTensors, dacOutputLength, dequantizeGemma4VisionProjection, dequantizeMLXProjection, generateDacSpeechDecoderGraph, generateGemma4VisionGraph, generateKaniTtsGraph, generateMoonshineDecoderGraph, generateMoonshineEncoderGraph, generateNanoCodecDecoderGraph, generateOuteTtsBackboneGraph, generateQwen3_5VisionGraph, initGPU, loadKaniTTS, loadModel, loadMoonshine, loadOuteSpeaker, moonshineEncoderFrames, mropeFreqDims, parseKaniConfig, parseMoonshineConfig, parseOuteTtsConfig, patchGemma4VisionClips, preprocessImage, preprocessImageGemma4, quantizeKaniBackbone, resolveDefaultRepo, resolveGemma4VisionInfo, smartResize };
@@ -1,6 +1,6 @@
1
1
  import { i as resolveDefaultRepo, n as OUTETTS_ASSETS, r as OUTETTS_PRESET_VOICES, t as DEFAULT_MODELS } from "./defaults-KnrRSIeJ.mjs";
2
2
  import { E as GEMMA4_VIS_KEYS, S as DEFAULT_GROUP_SIZE, T as DTYPE_BYTES, _ as kaniCosTensor, c as KANI_END_OF_HUMAN, d as buildKaniLayerCosSin, f as computeKaniPositions, g as kaniAttentionLayerIndices, h as generateNanoCodecDecoderGraph, l as KANI_START_OF_HUMAN, m as generateKaniTtsGraph, u as audioTokensToCodes, v as kaniLayerAlpha, w as CANONICAL_KEYS, x as parseKaniConfig, y as kaniSinTensor } from "./architectures-CpmH4Gha.mjs";
3
- import { S as verifyGPU, _ as createStorageBuffer, b as getOrCreatePipeline, c as quantizeBackboneInt4, f as Executor, g as createBindGroup, h as clearPipelineCache, i as loadModel, l as quantizeKaniBackbone, m as MATMUL_BIAS_F16C_SPEC, o as loadOuteTTS, p as KERNEL_REGISTRY, r as loadKaniTTS, s as loadParlerTTS, u as remapPrunedToken, v as createUniformBuffer, x as initGPU, y as destroyBuffers } from "./moonshine-stt-BwX7NQ0O.mjs";
3
+ import { S as verifyGPU, _ as createStorageBuffer, b as getOrCreatePipeline, c as quantizeBackboneInt4, f as Executor, g as createBindGroup, h as clearPipelineCache, i as loadModel, l as quantizeKaniBackbone, m as MATMUL_BIAS_F16C_SPEC, o as loadOuteTTS, p as KERNEL_REGISTRY, r as loadKaniTTS, s as loadParlerTTS, u as remapPrunedToken, v as createUniformBuffer, x as initGPU, y as destroyBuffers } from "./moonshine-stt-BFIm_Xxk.mjs";
4
4
 
5
5
  //#region src/gpu/architectures/gemma4_vision.ts
6
6
  /**
@@ -4424,11 +4424,24 @@ var VisionExecutor = class {
4424
4424
  q.writeBuffer(d.uniformBuffer, 0, params);
4425
4425
  sizes.push(d.spec.getDispatchSize(d.node, resolvedShapes, ctxRt));
4426
4426
  }
4427
- if (this.ctx.isWebKitWebGPU) {
4427
+ const multiEncoder = this.ctx.isWebKitWebGPU;
4428
+ const batchVit = globalThis.GERBIL_VIT_BATCH != null;
4429
+ let batchEnc = null;
4430
+ let batchPass = null;
4431
+ const flushBatch = async () => {
4432
+ if (!batchEnc || !batchPass) return;
4433
+ batchPass.end();
4434
+ q.submit([batchEnc.finish()]);
4435
+ await q.onSubmittedWorkDone();
4436
+ batchEnc = null;
4437
+ batchPass = null;
4438
+ };
4439
+ if (multiEncoder) {
4428
4440
  onStage?.("vit-encode-start", { total: this.dispatches.length });
4429
4441
  for (let i = 0; i < this.dispatches.length; i++) {
4430
4442
  const d = this.dispatches[i];
4431
4443
  if (d.node.opType === "Attention") {
4444
+ await flushBatch();
4432
4445
  const [gridX, gridY, gridZ] = sizes[i];
4433
4446
  const layer = Number.parseInt(d.node.id.replace(/\D+/g, ""), 10);
4434
4447
  if (!Number.isNaN(layer)) onStage?.("vit-attn", { layer });
@@ -4450,6 +4463,16 @@ var VisionExecutor = class {
4450
4463
  }
4451
4464
  continue;
4452
4465
  }
4466
+ if (batchVit) {
4467
+ if (!batchEnc) {
4468
+ batchEnc = this.ctx.device.createCommandEncoder();
4469
+ batchPass = batchEnc.beginComputePass();
4470
+ }
4471
+ batchPass.setPipeline(d.pipeline);
4472
+ batchPass.setBindGroup(0, d.bindGroup);
4473
+ batchPass.dispatchWorkgroups(...sizes[i]);
4474
+ continue;
4475
+ }
4453
4476
  const enc$1 = this.ctx.device.createCommandEncoder();
4454
4477
  const p = enc$1.beginComputePass();
4455
4478
  p.setPipeline(d.pipeline);
@@ -4459,6 +4482,7 @@ var VisionExecutor = class {
4459
4482
  q.submit([enc$1.finish()]);
4460
4483
  await q.onSubmittedWorkDone();
4461
4484
  }
4485
+ await flushBatch();
4462
4486
  onStage?.("vit-encode-done");
4463
4487
  } else {
4464
4488
  const enc$1 = this.ctx.device.createCommandEncoder({ label: "vision_encode" });
@@ -4634,8 +4658,24 @@ var VisionExecutor = class {
4634
4658
  return resolved;
4635
4659
  }
4636
4660
  allocateActivationBuffers() {
4661
+ const referenced = /* @__PURE__ */ new Set();
4662
+ for (const node of this.graph.nodes) {
4663
+ for (const t of node.inputs) referenced.add(t);
4664
+ for (const t of node.outputs) referenced.add(t);
4665
+ }
4666
+ let skippedBytes = 0;
4637
4667
  for (const [name, desc] of Object.entries(this.graph.tensors)) {
4638
4668
  if (desc.storage !== "activation") continue;
4669
+ if (!referenced.has(name)) {
4670
+ const shape = desc.shape.map((d) => {
4671
+ if (d === "N") return this.maxPatches;
4672
+ if (d === "Nm") return this.maxPatches / this.mergeUnit;
4673
+ if (d === "Np") return this.maxPooled();
4674
+ return d;
4675
+ });
4676
+ skippedBytes += shape.reduce((a, b) => a * b, 1) * DTYPE_BYTES[desc.dtype];
4677
+ continue;
4678
+ }
4639
4679
  const bytes = desc.shape.map((d) => {
4640
4680
  if (d === "N") return this.maxPatches;
4641
4681
  if (d === "Nm") return this.maxPatches / this.mergeUnit;
@@ -4644,6 +4684,7 @@ var VisionExecutor = class {
4644
4684
  }).reduce((a, b) => a * b, 1) * DTYPE_BYTES[desc.dtype];
4645
4685
  this.activationBuffers.set(name, createStorageBuffer(this.ctx, `vact_${name}`, bytes));
4646
4686
  }
4687
+ if (skippedBytes > 0) console.log(`[vision] skipped ${(skippedBytes / 1e6).toFixed(0)} MB of unreferenced activation tensors`);
4647
4688
  }
4648
4689
  gatherBuffers(spec, node, uniformBuffer) {
4649
4690
  const entries = [];
@@ -7035,4 +7076,4 @@ var WebGPUEngine = class WebGPUEngine {
7035
7076
 
7036
7077
  //#endregion
7037
7078
  export { dequantizeGemma4VisionProjection as A, audioTokensToDacCodes as C, parseOuteTtsConfig as D, generateOuteTtsBackboneGraph as E, generateGemma4VisionGraph as M, patchGemma4VisionClips as N, KaniTTS as O, resolveGemma4VisionInfo as P, loadOuteSpeaker as S, generateDacSpeechDecoderGraph as T, smartResize as _, buildGemma4PosEmbeds as a, OuteTTS as b, buildMRoPECosSin as c, buildPositionIds as d, buildRotaryCosSin as f, preprocessImageGemma4 as g, preprocessImage as h, buildGemma4PoolMatrix as i, dequantizeMLXProjection as j, generateQwen3_5VisionGraph as k, buildMRoPEPositionIds as l, mropeFreqDims as m, GEMMA4_IMAGE_PROCESSOR as n, buildGemma4RotaryCosSin as o, buildVisionPositionTensors as p, QWEN3_5_IMAGE_PROCESSOR as r, buildGemma4VisionPositionTensors as s, WebGPUEngine as t, buildPosEmbeds as u, VisionExecutor as v, dacOutputLength as w, buildOutePromptString as x, ParlerTTS as y };
7038
- //# sourceMappingURL=gpu-DtA28rES.mjs.map
7079
+ //# sourceMappingURL=gpu-BZVtzX9N.mjs.map