@tryhamster/gerbil 1.11.2 → 1.11.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli.mjs +7 -7
- package/dist/cli.mjs.map +1 -1
- package/dist/frameworks/express.mjs +1 -1
- package/dist/frameworks/fastify.mjs +1 -1
- package/dist/frameworks/hono.mjs +1 -1
- package/dist/frameworks/next.d.mts +2 -2
- package/dist/frameworks/next.mjs +1 -1
- package/dist/frameworks/trpc.mjs +1 -1
- package/dist/{gerbil-Cs8L0iVm.d.mts → gerbil-5_80K0gA.d.mts} +2 -2
- package/dist/{gerbil-Cs8L0iVm.d.mts.map → gerbil-5_80K0gA.d.mts.map} +1 -1
- package/dist/gerbil-CTefAwKp.mjs +4 -0
- package/dist/{gerbil-CfNSSpgW.mjs → gerbil-CYVmU8sQ.mjs} +2 -2
- package/dist/{gerbil-CfNSSpgW.mjs.map → gerbil-CYVmU8sQ.mjs.map} +1 -1
- package/dist/gpu/hooks.d.mts +1 -1
- package/dist/gpu/index.d.mts +1 -1
- package/dist/gpu/index.mjs +2 -2
- package/dist/{gpu-BQ8I-VDx.mjs → gpu-CrzjQHv2.mjs} +38 -19
- package/dist/{gpu-BQ8I-VDx.mjs.map → gpu-CrzjQHv2.mjs.map} +1 -1
- package/dist/{index-t_hY-XWW.d.mts → index-h8TDu1qm.d.mts} +21 -1
- package/dist/{index-t_hY-XWW.d.mts.map → index-h8TDu1qm.d.mts.map} +1 -1
- package/dist/index.d.mts +2 -2
- package/dist/index.mjs +4 -4
- package/dist/integrations/ai-sdk.mjs +1 -1
- package/dist/integrations/langchain.mjs +1 -1
- package/dist/integrations/llamaindex.mjs +1 -1
- package/dist/integrations/mcp.d.mts +2 -2
- package/dist/integrations/mcp.mjs +4 -4
- package/dist/{mcp-BITYRhF6.mjs → mcp-CAsD7eCj.mjs} +3 -3
- package/dist/{mcp-BITYRhF6.mjs.map → mcp-CAsD7eCj.mjs.map} +1 -1
- package/dist/{moonshine-stt-BI-5UmD_.mjs → moonshine-stt-BXoZaHJE.mjs} +12 -1
- package/dist/moonshine-stt-BXoZaHJE.mjs.map +1 -0
- package/dist/moonshine-stt-DZVnKgPO.mjs +4 -0
- package/dist/{one-liner-BLz8g6Gz.mjs → one-liner-ppgw4jHH.mjs} +2 -2
- package/dist/{one-liner-BLz8g6Gz.mjs.map → one-liner-ppgw4jHH.mjs.map} +1 -1
- package/dist/{repl-CXCSbfES.mjs → repl-C0Ew7_Z-.mjs} +3 -3
- package/dist/skills/index.d.mts +4 -4
- package/dist/skills/index.mjs +3 -3
- package/dist/{skills-BPQb-p5b.mjs → skills-CQa1Gshd.mjs} +2 -2
- package/dist/{skills-BPQb-p5b.mjs.map → skills-CQa1Gshd.mjs.map} +1 -1
- package/dist/tune/index.d.mts.map +1 -1
- package/dist/tune/index.mjs +1 -1
- package/package.json +1 -1
- package/dist/gerbil-Cq20PKtz.mjs +0 -4
- package/dist/moonshine-stt-BI-5UmD_.mjs.map +0 -1
- package/dist/moonshine-stt-CZ00EdnB.mjs +0 -4
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { a as resolveDefaultRepo, i as isTTSRepo, n as OUTETTS_ASSETS, r as OUTETTS_PRESET_VOICES, t as DEFAULT_MODELS } from "./defaults-DfGx4d1m.mjs";
|
|
2
2
|
import { A as kaniSinTensor, C as computeKaniPositions, D as kaniAttentionLayerIndices, E as generateNanoCodecDecoderGraph, F as CANONICAL_KEYS, I as DTYPE_BYTES, L as GEMMA4_VIS_KEYS, M as parseKaniConfig, N as DEFAULT_GROUP_SIZE, O as kaniCosTensor, S as buildKaniLayerCosSin, T as generateKaniTtsGraph, a as PARLER_DAC_LATENT_DIM, b as KANI_START_OF_HUMAN, c as PARLER_SAMPLE_RATE, d as generateParlerEncoderGraph, f as parseParlerConfig, i as PARLER_DAC_DECODER_DIM, k as kaniLayerAlpha, l as buildT5RelativeBias, o as PARLER_DECODER_RATES, p as revertDelayPattern, r as PARLER_BOS_TOKEN_ID, s as PARLER_EOS_TOKEN_ID, u as generateParlerDecoderGraph, x as audioTokensToCodes, y as KANI_END_OF_HUMAN } from "./architectures-DmZMEFsA.mjs";
|
|
3
|
-
import { C as createUniformBuffer, D as verifyGPU, E as initGPU, S as createStorageBuffer, T as getOrCreatePipeline, a as loadModel, b as clearPipelineCache, c as loadParlerTTS, d as remapPrunedToken, g as fetchAdapter, h as buildLoRADeltas, i as loadKaniTTS, l as quantizeBackboneInt4, p as Executor, r as createKeyMapperForArch, s as loadOuteTTS, u as quantizeKaniBackbone, v as KERNEL_REGISTRY, w as destroyBuffers, x as createBindGroup, y as MATMUL_BIAS_F16C_SPEC } from "./moonshine-stt-
|
|
3
|
+
import { C as createUniformBuffer, D as verifyGPU, E as initGPU, S as createStorageBuffer, T as getOrCreatePipeline, a as loadModel, b as clearPipelineCache, c as loadParlerTTS, d as remapPrunedToken, g as fetchAdapter, h as buildLoRADeltas, i as loadKaniTTS, l as quantizeBackboneInt4, p as Executor, r as createKeyMapperForArch, s as loadOuteTTS, u as quantizeKaniBackbone, v as KERNEL_REGISTRY, w as destroyBuffers, x as createBindGroup, y as MATMUL_BIAS_F16C_SPEC } from "./moonshine-stt-BXoZaHJE.mjs";
|
|
4
4
|
|
|
5
5
|
//#region src/gpu/architectures/gemma4_vision.ts
|
|
6
6
|
/**
|
|
@@ -5579,6 +5579,19 @@ var WebGPUEngine = class WebGPUEngine {
|
|
|
5579
5579
|
release();
|
|
5580
5580
|
}
|
|
5581
5581
|
}
|
|
5582
|
+
/**
|
|
5583
|
+
* Resolve the end-of-turn stop token id, or null if the model has none.
|
|
5584
|
+
*
|
|
5585
|
+
* Chat models like Gemma 4 end an assistant turn with a dedicated end-of-turn
|
|
5586
|
+
* token (`<turn|>`, id 106) rather than the generic `<eos>`. Every text-decode
|
|
5587
|
+
* loop must treat it as a stop token or the model runs on past its answer and
|
|
5588
|
+
* repeats until it hits `maxTokens`. Resolved from the tokenizer's added tokens
|
|
5589
|
+
* so it is null for models without a turn delimiter (Qwen, LFM2, …), leaving
|
|
5590
|
+
* their decode behaviour unchanged.
|
|
5591
|
+
*/
|
|
5592
|
+
resolveEndOfTurnId() {
|
|
5593
|
+
return this.tokenizer.tokenToId("<turn|>") ?? this.tokenizer.tokenToId("<end_of_turn>");
|
|
5594
|
+
}
|
|
5582
5595
|
async _generateLocked(prompt, options = {}) {
|
|
5583
5596
|
this.checkDestroyed();
|
|
5584
5597
|
const { maxTokens = 512, stopSequences = [], sampling = {}, systemPrompt, onToken } = options;
|
|
@@ -5615,10 +5628,11 @@ var WebGPUEngine = class WebGPUEngine {
|
|
|
5615
5628
|
let finishReason = "max_tokens";
|
|
5616
5629
|
let generatedText = "";
|
|
5617
5630
|
const eosId = this.tokenizer.config.eosTokenId;
|
|
5631
|
+
const eotId = this.resolveEndOfTurnId();
|
|
5618
5632
|
const decodeStart = performance.now();
|
|
5619
5633
|
const consumeToken = (nextToken) => {
|
|
5620
5634
|
generatedIds.push(nextToken);
|
|
5621
|
-
if (eosId !== null && nextToken === eosId) {
|
|
5635
|
+
if (eosId !== null && nextToken === eosId || eotId !== null && nextToken === eotId) {
|
|
5622
5636
|
finishReason = "eos";
|
|
5623
5637
|
return true;
|
|
5624
5638
|
}
|
|
@@ -5645,9 +5659,10 @@ var WebGPUEngine = class WebGPUEngine {
|
|
|
5645
5659
|
};
|
|
5646
5660
|
const mmDecode = hasMRoPE;
|
|
5647
5661
|
let mmLogicalPos = inputIds.length;
|
|
5662
|
+
const streamsPle = this.executor.hasPleSource();
|
|
5648
5663
|
const keepPlan = this.config.vocabKeepPlan;
|
|
5649
5664
|
const remapTok = keepPlan ? (i) => remapPrunedToken(i, keepPlan) : (i) => i;
|
|
5650
|
-
if (isGreedy && !this.executor.needsMultiEncoder && !mmDecode) {
|
|
5665
|
+
if (isGreedy && !this.executor.needsMultiEncoder && !mmDecode && !streamsPle) {
|
|
5651
5666
|
const firstToken = remapTok(sampleToken(logits, sampling, [...inputIds, ...generatedIds]));
|
|
5652
5667
|
if (!consumeToken(firstToken)) {
|
|
5653
5668
|
const depth = Executor.PIPELINE_DEPTH;
|
|
@@ -5664,19 +5679,22 @@ var WebGPUEngine = class WebGPUEngine {
|
|
|
5664
5679
|
if (consumeToken(tok)) break;
|
|
5665
5680
|
}
|
|
5666
5681
|
}
|
|
5667
|
-
} else
|
|
5668
|
-
|
|
5669
|
-
|
|
5670
|
-
|
|
5671
|
-
if (
|
|
5672
|
-
|
|
5673
|
-
|
|
5674
|
-
|
|
5675
|
-
|
|
5676
|
-
|
|
5677
|
-
if (
|
|
5678
|
-
|
|
5679
|
-
|
|
5682
|
+
} else {
|
|
5683
|
+
const useCpuForward = !isGreedy || streamsPle;
|
|
5684
|
+
for (let step = 0; step < maxTokens; step++) {
|
|
5685
|
+
let nextToken;
|
|
5686
|
+
if (step === 0 || useCpuForward) nextToken = remapTok(sampleToken(logits, sampling, [...inputIds, ...generatedIds]));
|
|
5687
|
+
else {
|
|
5688
|
+
if (mmDecode) this.writeMRoPEDecodeStep(this.executor.currentSeqPos, mmLogicalPos);
|
|
5689
|
+
nextToken = await this.executor.forwardArgmax(new Uint32Array([generatedIds[generatedIds.length - 1]]));
|
|
5690
|
+
mmLogicalPos++;
|
|
5691
|
+
}
|
|
5692
|
+
if (consumeToken(nextToken)) break;
|
|
5693
|
+
if (useCpuForward) {
|
|
5694
|
+
if (mmDecode) this.writeMRoPEDecodeStep(this.executor.currentSeqPos, mmLogicalPos);
|
|
5695
|
+
logits = (await this.executor.forward(new Uint32Array([nextToken]))).logits;
|
|
5696
|
+
mmLogicalPos++;
|
|
5697
|
+
}
|
|
5680
5698
|
}
|
|
5681
5699
|
}
|
|
5682
5700
|
const totalTime = performance.now() - startTime;
|
|
@@ -6161,7 +6179,7 @@ var WebGPUEngine = class WebGPUEngine {
|
|
|
6161
6179
|
let finishReason = "max_tokens";
|
|
6162
6180
|
let generatedText = "";
|
|
6163
6181
|
const eosId = this.tokenizer.config.eosTokenId;
|
|
6164
|
-
const eotId = this.
|
|
6182
|
+
const eotId = this.resolveEndOfTurnId();
|
|
6165
6183
|
const consumeToken = (nextToken) => {
|
|
6166
6184
|
generatedIds.push(nextToken);
|
|
6167
6185
|
if (eosId !== null && nextToken === eosId || eotId !== null && nextToken === eotId) {
|
|
@@ -6238,10 +6256,11 @@ var WebGPUEngine = class WebGPUEngine {
|
|
|
6238
6256
|
let finishReason = "max_tokens";
|
|
6239
6257
|
let generatedText = "";
|
|
6240
6258
|
const eosId = this.tokenizer.config.eosTokenId;
|
|
6259
|
+
const eotId = this.resolveEndOfTurnId();
|
|
6241
6260
|
let mmLogicalPos = decodeStartPos;
|
|
6242
6261
|
const consumeToken = (nextToken) => {
|
|
6243
6262
|
generatedIds.push(nextToken);
|
|
6244
|
-
if (eosId !== null && nextToken === eosId) {
|
|
6263
|
+
if (eosId !== null && nextToken === eosId || eotId !== null && nextToken === eotId) {
|
|
6245
6264
|
finishReason = "eos";
|
|
6246
6265
|
return true;
|
|
6247
6266
|
}
|
|
@@ -6762,4 +6781,4 @@ var WebGPUEngine = class WebGPUEngine {
|
|
|
6762
6781
|
|
|
6763
6782
|
//#endregion
|
|
6764
6783
|
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 };
|
|
6765
|
-
//# sourceMappingURL=gpu-
|
|
6784
|
+
//# sourceMappingURL=gpu-CrzjQHv2.mjs.map
|