@tryhamster/gerbil 1.0.0-rc.20 → 1.0.0-rc.22
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/browser/index.d.ts +5 -0
- package/dist/browser/index.d.ts.map +1 -1
- package/dist/browser/index.js +69 -22
- package/dist/browser/index.js.map +1 -1
- 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.mjs +1 -1
- package/dist/frameworks/react.d.mts.map +1 -1
- package/dist/frameworks/trpc.mjs +1 -1
- package/dist/{gerbil-BZklpDhM.mjs → gerbil-DzZ-L6n8.mjs} +11 -1
- package/dist/gerbil-DzZ-L6n8.mjs.map +1 -0
- package/dist/{gerbil-CAMb_nrK.mjs → gerbil-PzPtcdeM.mjs} +1 -1
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs +2 -2
- 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.mjs +4 -4
- package/dist/{mcp-ZCC5OR7B.mjs → mcp-D161vL_C.mjs} +3 -3
- package/dist/{mcp-ZCC5OR7B.mjs.map → mcp-D161vL_C.mjs.map} +1 -1
- package/dist/{one-liner-mH5SKPvT.mjs → one-liner-C-pRqDK2.mjs} +2 -2
- package/dist/{one-liner-mH5SKPvT.mjs.map → one-liner-C-pRqDK2.mjs.map} +1 -1
- package/dist/{repl-CSM1IBP1.mjs → repl-D9x3TnQc.mjs} +3 -3
- package/dist/skills/index.d.mts +5 -5
- package/dist/skills/index.d.mts.map +1 -1
- package/dist/skills/index.mjs +3 -3
- package/dist/{skills-CPB_9YfF.mjs → skills-D14RwyUN.mjs} +2 -2
- package/dist/{skills-CPB_9YfF.mjs.map → skills-D14RwyUN.mjs.map} +1 -1
- package/package.json +1 -1
- package/dist/gerbil-BZklpDhM.mjs.map +0 -1
package/dist/browser/index.d.ts
CHANGED
|
@@ -1189,8 +1189,13 @@ declare function checkWebGPUCapabilities(modelId?: string): Promise<{
|
|
|
1189
1189
|
*/
|
|
1190
1190
|
declare function getBrowserDiagnostics(): Promise<{
|
|
1191
1191
|
browser: string;
|
|
1192
|
+
browserVersion: number | null;
|
|
1193
|
+
platform: "ios" | "android" | "macos" | "windows" | "linux" | "unknown";
|
|
1192
1194
|
isSafari: boolean;
|
|
1193
1195
|
isIOS: boolean;
|
|
1196
|
+
isAndroid: boolean;
|
|
1197
|
+
isMobile: boolean;
|
|
1198
|
+
webgpuExpected: boolean;
|
|
1194
1199
|
webgpu: {
|
|
1195
1200
|
supported: boolean;
|
|
1196
1201
|
reason?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","names":[],"sources":["../../src/core/types.ts","../../src/core/models.ts","../../src/browser/index.ts"],"sourcesContent":[],"mappings":";;;;AAyBY,KAfA,WAAA,GAeW;EASX,EAAA,EAAA,MAAA;EAWA,IAAA,EAAA,MAAA;EAmCA,WAAA,EAAA,MAAc;EA8Bd,IAAA,EAAA,MAAA;EAkBA,aAAA,EAAY,MAAA;EAQZ,gBAAW,EAAA,OAAA;EAWX,YAAA,EAAA,OAAY;EAWZ;EAkBA,cAAW,CAAA,EAAA,OAAA;EAqBX;EAYA,iBAAY,CAAA,EAAA,MAAA;EAiBZ,MAAA,EAAA,MAAW,GAAA,QAAA,GAAA,KAAA,GAAA,SAAA,GAAA,OAAA,GAAA,OAAA;AAiBvB,CAAA;AAqBY,KA/OA,WAAA,GA+OY;EAUZ,IAAA,EAAA,SAAU,GAAA,aAAA,GAAA,OAAA;EAOV,IAAA,EAAA,MAAA;AAyBZ,CAAA;AAWY,KA3RA,UAAA,GA2RA;EAYA;EAeA,MAAA,EAAA,MAAA;EAmBA;EAWA,GAAA,CAAA,EAAA,MAAA;AAWZ,CAAA;AAaY,KAjWA,eAAA,GAiWc;EAWd;EAiBA,SAAA,CAAA,EAAA,MAAA;EASA;EASA,WAAA,CAAA,EAAA,MAAgB;EAahB;EAWA,IAAA,CAAA,EAAA,MAAA;EAeA;EAES,IAAA,CAAA,EAAA,MAAA;EAEN;EAID,aAAA,CAAA,EAAA,MAAA,EAAA;EAAO;;;;EC/dR;;;WD2DF;
|
|
1
|
+
{"version":3,"file":"index.d.ts","names":[],"sources":["../../src/core/types.ts","../../src/core/models.ts","../../src/browser/index.ts"],"sourcesContent":[],"mappings":"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"}
|
package/dist/browser/index.js
CHANGED
|
@@ -10,6 +10,16 @@ const BUILTIN_MODELS = {
|
|
|
10
10
|
supportsJson: true,
|
|
11
11
|
family: "qwen"
|
|
12
12
|
},
|
|
13
|
+
"qwen3-1.7b": {
|
|
14
|
+
id: "qwen3-1.7b",
|
|
15
|
+
repo: "onnx-community/Qwen3-1.7B-ONNX",
|
|
16
|
+
description: "Qwen3 1.7B - Higher quality, supports thinking",
|
|
17
|
+
size: "~1.2GB",
|
|
18
|
+
contextLength: 32768,
|
|
19
|
+
supportsThinking: true,
|
|
20
|
+
supportsJson: true,
|
|
21
|
+
family: "qwen"
|
|
22
|
+
},
|
|
13
23
|
"qwen2.5-0.5b": {
|
|
14
24
|
id: "qwen2.5-0.5b",
|
|
15
25
|
repo: "onnx-community/Qwen2.5-0.5B-Instruct",
|
|
@@ -180,15 +190,21 @@ const CDN_FALLBACK_CODE = `
|
|
|
180
190
|
`;
|
|
181
191
|
/**
|
|
182
192
|
* Get a helpful error message when WebGPU is not supported.
|
|
183
|
-
* Detects
|
|
193
|
+
* Detects browser/platform for tailored guidance.
|
|
184
194
|
*/
|
|
185
195
|
function getWebGPUErrorMessage() {
|
|
186
196
|
if (typeof navigator === "undefined") return "WebGPU requires a browser environment.";
|
|
187
197
|
const ua = navigator.userAgent;
|
|
188
198
|
const isSafari = /Safari/.test(ua) && !/Chrome/.test(ua);
|
|
189
199
|
const isIOS = /iPhone|iPad|iPod/.test(ua);
|
|
190
|
-
|
|
191
|
-
|
|
200
|
+
const isAndroid = /Android/.test(ua);
|
|
201
|
+
const isFirefox = /Firefox/.test(ua);
|
|
202
|
+
if (isIOS) return "WebGPU requires iOS 26+ with Safari. Most iOS devices don't support this yet. Try Chrome on Android or desktop browsers.";
|
|
203
|
+
if (isSafari) return "WebGPU requires Safari 26+ (macOS Tahoe). Update macOS or use Chrome/Edge.";
|
|
204
|
+
if (isFirefox && isAndroid) return "Firefox on Android doesn't support WebGPU yet. Use Chrome for Android instead.";
|
|
205
|
+
if (isFirefox) return "WebGPU requires Firefox 141+. Update Firefox or use Chrome/Edge.";
|
|
206
|
+
if (isAndroid) return "WebGPU requires Chrome 121+ on Android 12+. Update Chrome or try Samsung Internet.";
|
|
207
|
+
return "WebGPU not supported. Use Chrome 113+, Edge 113+, Firefox 141+, or Safari 26+.";
|
|
192
208
|
}
|
|
193
209
|
/**
|
|
194
210
|
* Create a Gerbil worker for streaming WebGPU inference
|
|
@@ -3387,28 +3403,27 @@ async function checkWebGPUReady() {
|
|
|
3387
3403
|
supported: false,
|
|
3388
3404
|
reason: "Not in browser environment"
|
|
3389
3405
|
};
|
|
3390
|
-
if (!("gpu" in navigator)) {
|
|
3391
|
-
|
|
3392
|
-
|
|
3393
|
-
|
|
3394
|
-
if (isSafari || isIOS) return {
|
|
3395
|
-
supported: false,
|
|
3396
|
-
reason: "WebGPU requires Safari 26+ (iOS 19+). Update your device or use Chrome/Edge."
|
|
3397
|
-
};
|
|
3398
|
-
return {
|
|
3399
|
-
supported: false,
|
|
3400
|
-
reason: "WebGPU not available. Use Chrome 113+, Edge 113+, or Safari 26+."
|
|
3401
|
-
};
|
|
3402
|
-
}
|
|
3406
|
+
if (!("gpu" in navigator)) return {
|
|
3407
|
+
supported: false,
|
|
3408
|
+
reason: getWebGPUErrorMessage()
|
|
3409
|
+
};
|
|
3403
3410
|
try {
|
|
3404
3411
|
const adapter = await navigator.gpu.requestAdapter();
|
|
3405
3412
|
if (!adapter) return {
|
|
3406
3413
|
supported: false,
|
|
3407
3414
|
reason: "No GPU adapter found. Your device may not have compatible graphics hardware."
|
|
3408
3415
|
};
|
|
3416
|
+
let info = null;
|
|
3417
|
+
if (adapter.info) info = adapter.info;
|
|
3418
|
+
else if (typeof adapter.requestAdapterInfo === "function") try {
|
|
3419
|
+
info = await adapter.requestAdapterInfo();
|
|
3420
|
+
} catch {}
|
|
3409
3421
|
return {
|
|
3410
3422
|
supported: true,
|
|
3411
|
-
adapter:
|
|
3423
|
+
adapter: info || {
|
|
3424
|
+
vendor: "unknown",
|
|
3425
|
+
device: "unknown"
|
|
3426
|
+
}
|
|
3412
3427
|
};
|
|
3413
3428
|
} catch (e) {
|
|
3414
3429
|
return {
|
|
@@ -3439,7 +3454,7 @@ const MODEL_BUFFER_REQUIREMENTS = {
|
|
|
3439
3454
|
"smollm2-135m": 2e8,
|
|
3440
3455
|
"smollm2-360m": 45e7,
|
|
3441
3456
|
"qwen3-0.6b": 7e8,
|
|
3442
|
-
"qwen3-1.7b":
|
|
3457
|
+
"qwen3-1.7b": 25e8,
|
|
3443
3458
|
"whisper-tiny": 15e7,
|
|
3444
3459
|
"kokoro-82m": 4e8
|
|
3445
3460
|
};
|
|
@@ -3497,11 +3512,38 @@ async function getBrowserDiagnostics() {
|
|
|
3497
3512
|
const ua = typeof navigator !== "undefined" ? navigator.userAgent : "";
|
|
3498
3513
|
const isSafari = /Safari/.test(ua) && !/Chrome/.test(ua);
|
|
3499
3514
|
const isIOS = /iPhone|iPad|iPod/.test(ua);
|
|
3515
|
+
const isAndroid = /Android/.test(ua);
|
|
3516
|
+
const isMobile = isIOS || isAndroid || /Mobile/.test(ua);
|
|
3517
|
+
let platform = "unknown";
|
|
3518
|
+
if (isIOS) platform = "ios";
|
|
3519
|
+
else if (isAndroid) platform = "android";
|
|
3520
|
+
else if (/Mac/.test(ua)) platform = "macos";
|
|
3521
|
+
else if (/Win/.test(ua)) platform = "windows";
|
|
3522
|
+
else if (/Linux/.test(ua)) platform = "linux";
|
|
3500
3523
|
let browser = "Unknown";
|
|
3501
|
-
|
|
3502
|
-
|
|
3503
|
-
|
|
3504
|
-
|
|
3524
|
+
let browserVersion = null;
|
|
3525
|
+
if (/Chrome\/(\d+)/.test(ua)) {
|
|
3526
|
+
browser = `Chrome ${RegExp.$1}`;
|
|
3527
|
+
browserVersion = parseInt(RegExp.$1, 10);
|
|
3528
|
+
} else if (/Firefox\/(\d+)/.test(ua)) {
|
|
3529
|
+
browser = `Firefox ${RegExp.$1}`;
|
|
3530
|
+
browserVersion = parseInt(RegExp.$1, 10);
|
|
3531
|
+
} else if (/Version\/(\d+).*Safari/.test(ua)) {
|
|
3532
|
+
browser = `Safari ${RegExp.$1}`;
|
|
3533
|
+
browserVersion = parseInt(RegExp.$1, 10);
|
|
3534
|
+
} else if (/Edg\/(\d+)/.test(ua)) {
|
|
3535
|
+
browser = `Edge ${RegExp.$1}`;
|
|
3536
|
+
browserVersion = parseInt(RegExp.$1, 10);
|
|
3537
|
+
} else if (/SamsungBrowser\/(\d+)/.test(ua)) {
|
|
3538
|
+
browser = `Samsung Internet ${RegExp.$1}`;
|
|
3539
|
+
browserVersion = parseInt(RegExp.$1, 10);
|
|
3540
|
+
}
|
|
3541
|
+
let webgpuExpected = false;
|
|
3542
|
+
if (browser.startsWith("Chrome") && browserVersion && browserVersion >= 113) webgpuExpected = !isAndroid || browserVersion >= 121;
|
|
3543
|
+
else if (browser.startsWith("Edge") && browserVersion && browserVersion >= 113) webgpuExpected = !isAndroid || browserVersion >= 121;
|
|
3544
|
+
else if (browser.startsWith("Firefox") && browserVersion && browserVersion >= 141) webgpuExpected = !isAndroid;
|
|
3545
|
+
else if (browser.startsWith("Safari") && browserVersion && browserVersion >= 26) webgpuExpected = true;
|
|
3546
|
+
else if (browser.startsWith("Samsung") && browserVersion && browserVersion >= 24) webgpuExpected = true;
|
|
3505
3547
|
const webgpuResult = await checkWebGPUReady();
|
|
3506
3548
|
const webgpu = {
|
|
3507
3549
|
supported: webgpuResult.supported,
|
|
@@ -3532,8 +3574,13 @@ async function getBrowserDiagnostics() {
|
|
|
3532
3574
|
}
|
|
3533
3575
|
return {
|
|
3534
3576
|
browser,
|
|
3577
|
+
browserVersion,
|
|
3578
|
+
platform,
|
|
3535
3579
|
isSafari,
|
|
3536
3580
|
isIOS,
|
|
3581
|
+
isAndroid,
|
|
3582
|
+
isMobile,
|
|
3583
|
+
webgpuExpected,
|
|
3537
3584
|
webgpu,
|
|
3538
3585
|
moduleWorkers,
|
|
3539
3586
|
indexedDB
|