@tryhamster/gerbil 1.0.0-rc.20 → 1.0.0-rc.21
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 +58 -21
- package/dist/browser/index.js.map +1 -1
- package/dist/cli.mjs +1 -1
- package/dist/cli.mjs.map +1 -1
- package/dist/frameworks/react.d.mts.map +1 -1
- package/dist/skills/index.d.mts +1 -1
- package/dist/skills/index.d.mts.map +1 -1
- package/package.json +1 -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
|
@@ -180,15 +180,21 @@ const CDN_FALLBACK_CODE = `
|
|
|
180
180
|
`;
|
|
181
181
|
/**
|
|
182
182
|
* Get a helpful error message when WebGPU is not supported.
|
|
183
|
-
* Detects
|
|
183
|
+
* Detects browser/platform for tailored guidance.
|
|
184
184
|
*/
|
|
185
185
|
function getWebGPUErrorMessage() {
|
|
186
186
|
if (typeof navigator === "undefined") return "WebGPU requires a browser environment.";
|
|
187
187
|
const ua = navigator.userAgent;
|
|
188
188
|
const isSafari = /Safari/.test(ua) && !/Chrome/.test(ua);
|
|
189
189
|
const isIOS = /iPhone|iPad|iPod/.test(ua);
|
|
190
|
-
|
|
191
|
-
|
|
190
|
+
const isAndroid = /Android/.test(ua);
|
|
191
|
+
const isFirefox = /Firefox/.test(ua);
|
|
192
|
+
if (isIOS) return "WebGPU requires iOS 26+ with Safari. Most iOS devices don't support this yet. Try Chrome on Android or desktop browsers.";
|
|
193
|
+
if (isSafari) return "WebGPU requires Safari 26+ (macOS Tahoe). Update macOS or use Chrome/Edge.";
|
|
194
|
+
if (isFirefox && isAndroid) return "Firefox on Android doesn't support WebGPU yet. Use Chrome for Android instead.";
|
|
195
|
+
if (isFirefox) return "WebGPU requires Firefox 141+. Update Firefox or use Chrome/Edge.";
|
|
196
|
+
if (isAndroid) return "WebGPU requires Chrome 121+ on Android 12+. Update Chrome or try Samsung Internet.";
|
|
197
|
+
return "WebGPU not supported. Use Chrome 113+, Edge 113+, Firefox 141+, or Safari 26+.";
|
|
192
198
|
}
|
|
193
199
|
/**
|
|
194
200
|
* Create a Gerbil worker for streaming WebGPU inference
|
|
@@ -3387,28 +3393,27 @@ async function checkWebGPUReady() {
|
|
|
3387
3393
|
supported: false,
|
|
3388
3394
|
reason: "Not in browser environment"
|
|
3389
3395
|
};
|
|
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
|
-
}
|
|
3396
|
+
if (!("gpu" in navigator)) return {
|
|
3397
|
+
supported: false,
|
|
3398
|
+
reason: getWebGPUErrorMessage()
|
|
3399
|
+
};
|
|
3403
3400
|
try {
|
|
3404
3401
|
const adapter = await navigator.gpu.requestAdapter();
|
|
3405
3402
|
if (!adapter) return {
|
|
3406
3403
|
supported: false,
|
|
3407
3404
|
reason: "No GPU adapter found. Your device may not have compatible graphics hardware."
|
|
3408
3405
|
};
|
|
3406
|
+
let info = null;
|
|
3407
|
+
if (adapter.info) info = adapter.info;
|
|
3408
|
+
else if (typeof adapter.requestAdapterInfo === "function") try {
|
|
3409
|
+
info = await adapter.requestAdapterInfo();
|
|
3410
|
+
} catch {}
|
|
3409
3411
|
return {
|
|
3410
3412
|
supported: true,
|
|
3411
|
-
adapter:
|
|
3413
|
+
adapter: info || {
|
|
3414
|
+
vendor: "unknown",
|
|
3415
|
+
device: "unknown"
|
|
3416
|
+
}
|
|
3412
3417
|
};
|
|
3413
3418
|
} catch (e) {
|
|
3414
3419
|
return {
|
|
@@ -3497,11 +3502,38 @@ async function getBrowserDiagnostics() {
|
|
|
3497
3502
|
const ua = typeof navigator !== "undefined" ? navigator.userAgent : "";
|
|
3498
3503
|
const isSafari = /Safari/.test(ua) && !/Chrome/.test(ua);
|
|
3499
3504
|
const isIOS = /iPhone|iPad|iPod/.test(ua);
|
|
3505
|
+
const isAndroid = /Android/.test(ua);
|
|
3506
|
+
const isMobile = isIOS || isAndroid || /Mobile/.test(ua);
|
|
3507
|
+
let platform = "unknown";
|
|
3508
|
+
if (isIOS) platform = "ios";
|
|
3509
|
+
else if (isAndroid) platform = "android";
|
|
3510
|
+
else if (/Mac/.test(ua)) platform = "macos";
|
|
3511
|
+
else if (/Win/.test(ua)) platform = "windows";
|
|
3512
|
+
else if (/Linux/.test(ua)) platform = "linux";
|
|
3500
3513
|
let browser = "Unknown";
|
|
3501
|
-
|
|
3502
|
-
|
|
3503
|
-
|
|
3504
|
-
|
|
3514
|
+
let browserVersion = null;
|
|
3515
|
+
if (/Chrome\/(\d+)/.test(ua)) {
|
|
3516
|
+
browser = `Chrome ${RegExp.$1}`;
|
|
3517
|
+
browserVersion = parseInt(RegExp.$1, 10);
|
|
3518
|
+
} else if (/Firefox\/(\d+)/.test(ua)) {
|
|
3519
|
+
browser = `Firefox ${RegExp.$1}`;
|
|
3520
|
+
browserVersion = parseInt(RegExp.$1, 10);
|
|
3521
|
+
} else if (/Version\/(\d+).*Safari/.test(ua)) {
|
|
3522
|
+
browser = `Safari ${RegExp.$1}`;
|
|
3523
|
+
browserVersion = parseInt(RegExp.$1, 10);
|
|
3524
|
+
} else if (/Edg\/(\d+)/.test(ua)) {
|
|
3525
|
+
browser = `Edge ${RegExp.$1}`;
|
|
3526
|
+
browserVersion = parseInt(RegExp.$1, 10);
|
|
3527
|
+
} else if (/SamsungBrowser\/(\d+)/.test(ua)) {
|
|
3528
|
+
browser = `Samsung Internet ${RegExp.$1}`;
|
|
3529
|
+
browserVersion = parseInt(RegExp.$1, 10);
|
|
3530
|
+
}
|
|
3531
|
+
let webgpuExpected = false;
|
|
3532
|
+
if (browser.startsWith("Chrome") && browserVersion && browserVersion >= 113) webgpuExpected = !isAndroid || browserVersion >= 121;
|
|
3533
|
+
else if (browser.startsWith("Edge") && browserVersion && browserVersion >= 113) webgpuExpected = !isAndroid || browserVersion >= 121;
|
|
3534
|
+
else if (browser.startsWith("Firefox") && browserVersion && browserVersion >= 141) webgpuExpected = !isAndroid;
|
|
3535
|
+
else if (browser.startsWith("Safari") && browserVersion && browserVersion >= 26) webgpuExpected = true;
|
|
3536
|
+
else if (browser.startsWith("Samsung") && browserVersion && browserVersion >= 24) webgpuExpected = true;
|
|
3505
3537
|
const webgpuResult = await checkWebGPUReady();
|
|
3506
3538
|
const webgpu = {
|
|
3507
3539
|
supported: webgpuResult.supported,
|
|
@@ -3532,8 +3564,13 @@ async function getBrowserDiagnostics() {
|
|
|
3532
3564
|
}
|
|
3533
3565
|
return {
|
|
3534
3566
|
browser,
|
|
3567
|
+
browserVersion,
|
|
3568
|
+
platform,
|
|
3535
3569
|
isSafari,
|
|
3536
3570
|
isIOS,
|
|
3571
|
+
isAndroid,
|
|
3572
|
+
isMobile,
|
|
3573
|
+
webgpuExpected,
|
|
3537
3574
|
webgpu,
|
|
3538
3575
|
moduleWorkers,
|
|
3539
3576
|
indexedDB
|