webml-kit 0.4.0 → 0.4.1

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 (62) hide show
  1. package/package.json +3 -3
  2. package/dist/cache.d.ts +0 -46
  3. package/dist/cache.d.ts.map +0 -1
  4. package/dist/cache.js +0 -161
  5. package/dist/cache.js.map +0 -1
  6. package/dist/decision.d.ts +0 -182
  7. package/dist/decision.d.ts.map +0 -1
  8. package/dist/decision.js +0 -789
  9. package/dist/decision.js.map +0 -1
  10. package/dist/device.d.ts +0 -86
  11. package/dist/device.d.ts.map +0 -1
  12. package/dist/device.js +0 -195
  13. package/dist/device.js.map +0 -1
  14. package/dist/gpu-recovery.d.ts +0 -61
  15. package/dist/gpu-recovery.d.ts.map +0 -1
  16. package/dist/gpu-recovery.js +0 -105
  17. package/dist/gpu-recovery.js.map +0 -1
  18. package/dist/hub.d.ts +0 -97
  19. package/dist/hub.d.ts.map +0 -1
  20. package/dist/hub.js +0 -142
  21. package/dist/hub.js.map +0 -1
  22. package/dist/index.d.ts +0 -63
  23. package/dist/index.d.ts.map +0 -1
  24. package/dist/index.js +0 -65
  25. package/dist/index.js.map +0 -1
  26. package/dist/inputs.d.ts +0 -27
  27. package/dist/inputs.d.ts.map +0 -1
  28. package/dist/inputs.js +0 -155
  29. package/dist/inputs.js.map +0 -1
  30. package/dist/loader.d.ts +0 -100
  31. package/dist/loader.d.ts.map +0 -1
  32. package/dist/loader.js +0 -246
  33. package/dist/loader.js.map +0 -1
  34. package/dist/model-client.d.ts +0 -149
  35. package/dist/model-client.d.ts.map +0 -1
  36. package/dist/model-client.js +0 -318
  37. package/dist/model-client.js.map +0 -1
  38. package/dist/model-worker.d.ts +0 -16
  39. package/dist/model-worker.d.ts.map +0 -1
  40. package/dist/model-worker.js +0 -340
  41. package/dist/model-worker.js.map +0 -1
  42. package/dist/onnx-pipeline.d.ts +0 -20
  43. package/dist/onnx-pipeline.d.ts.map +0 -1
  44. package/dist/onnx-pipeline.js +0 -462
  45. package/dist/onnx-pipeline.js.map +0 -1
  46. package/dist/pipelines/index.d.ts +0 -28
  47. package/dist/pipelines/index.d.ts.map +0 -1
  48. package/dist/pipelines/index.js +0 -140
  49. package/dist/pipelines/index.js.map +0 -1
  50. package/dist/shim-ort.d.ts +0 -6
  51. package/dist/shim-ort.d.ts.map +0 -1
  52. package/dist/shim-ort.js +0 -38
  53. package/dist/shim-ort.js.map +0 -1
  54. package/dist/streaming.d.ts +0 -55
  55. package/dist/streaming.d.ts.map +0 -1
  56. package/dist/streaming.js +0 -142
  57. package/dist/streaming.js.map +0 -1
  58. package/dist/types.d.ts +0 -200
  59. package/dist/types.d.ts.map +0 -1
  60. package/dist/types.js +0 -3
  61. package/dist/types.js.map +0 -1
  62. package/dist/webml-kit.browser.js +0 -2568
@@ -1 +0,0 @@
1
- {"version":3,"file":"decision.js","sourceRoot":"","sources":["../src/decision.ts"],"names":[],"mappings":"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"}
package/dist/device.d.ts DELETED
@@ -1,86 +0,0 @@
1
- /**
2
- * WebGPU / WASM device detection and capability probing.
3
- *
4
- * Detects the best available backend, extracts GPU adapter info,
5
- * and recommends a quantization level based on estimated VRAM.
6
- */
7
- import type { DeviceBackend, DeviceInfo, GPUInfo, QuantizationType } from './types.js';
8
- /**
9
- * Check if WebGPU is available and request an adapter.
10
- * Returns `null` if WebGPU is not supported.
11
- */
12
- export declare function getGPUAdapter(): Promise<GPUAdapter | null>;
13
- /**
14
- * Extract GPU info from an adapter.
15
- */
16
- export declare function getGPUInfo(adapter: GPUAdapter): Promise<GPUInfo>;
17
- /**
18
- * Recommend a quantization dtype based on available VRAM.
19
- */
20
- export declare function recommendDtype(vram: number): QuantizationType;
21
- /**
22
- * Check if WebGPU is available.
23
- */
24
- export declare function checkWebGPU(): Promise<boolean>;
25
- /**
26
- * Check if WebAssembly is available.
27
- */
28
- export declare function checkWASM(): boolean;
29
- /**
30
- * Detect the best available compute backend and return device info.
31
- *
32
- * Priority: WebGPU → WASM → CPU
33
- *
34
- * ```ts
35
- * const info = await detectDevice();
36
- * console.log(info.backend); // 'webgpu'
37
- * console.log(info.recommendedDtype); // 'q4'
38
- * console.log(info.gpu?.vendor); // 'apple'
39
- * ```
40
- */
41
- export declare function detectDevice(): Promise<DeviceInfo>;
42
- /**
43
- * Parse a human-readable size string into bytes.
44
- *
45
- * Accepts formats like '4GB', '512 MB', '1.5gb', '256mb'.
46
- * Also accepts raw numbers (passed through as-is).
47
- *
48
- * ```ts
49
- * parseSize('4GB') // 4294967296
50
- * parseSize('512MB') // 536870912
51
- * parseSize('1.5gb') // 1610612736
52
- * parseSize(1024) // 1024
53
- * ```
54
- */
55
- export declare function parseSize(input: string | number): number;
56
- /**
57
- * Format bytes into a human-readable string.
58
- *
59
- * ```ts
60
- * formatSize(4294967296) // '4 GB'
61
- * formatSize(536870912) // '512 MB'
62
- * formatSize(1536) // '1.5 KB'
63
- * ```
64
- */
65
- export declare function formatSize(bytes: number): string;
66
- /**
67
- * Check whether a model of a given size can likely run
68
- * on the current device without OOM.
69
- *
70
- * Accepts human-readable strings or raw byte counts:
71
- *
72
- * ```ts
73
- * await canRun('4GB');
74
- * await canRun('512MB');
75
- * await canRun(4_000_000_000);
76
- * ```
77
- *
78
- * This is a heuristic — real limits depend on browser, OS, and
79
- * other tabs consuming VRAM.
80
- */
81
- export declare function canRun(estimatedSize: string | number): Promise<{
82
- ok: boolean;
83
- backend: DeviceBackend;
84
- reason?: string;
85
- }>;
86
- //# sourceMappingURL=device.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"device.d.ts","sourceRoot":"","sources":["../src/device.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAWvF;;;GAGG;AACH,wBAAsB,aAAa,IAAI,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAYhE;AAED;;GAEG;AACH,wBAAsB,UAAU,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,CAetE;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,gBAAgB,CAK7D;AAED;;GAEG;AACH,wBAAsB,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC,CAGpD;AAED;;GAEG;AACH,wBAAgB,SAAS,IAAI,OAAO,CAEnC;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,YAAY,IAAI,OAAO,CAAC,UAAU,CAAC,CA2BxD;AAYD;;;;;;;;;;;;GAYG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAaxD;AAED;;;;;;;;GAQG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAMhD;AAID;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,MAAM,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;IACpE,EAAE,EAAE,OAAO,CAAC;IACZ,OAAO,EAAE,aAAa,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC,CAiBD"}
package/dist/device.js DELETED
@@ -1,195 +0,0 @@
1
- /**
2
- * WebGPU / WASM device detection and capability probing.
3
- *
4
- * Detects the best available backend, extracts GPU adapter info,
5
- * and recommends a quantization level based on estimated VRAM.
6
- */
7
- // ─── VRAM thresholds for dtype recommendation ───
8
- const VRAM_THRESHOLDS = [
9
- { min: 8 * 1024 ** 3, dtype: 'fp16' }, // 8 GB+ → fp16
10
- { min: 4 * 1024 ** 3, dtype: 'q8' }, // 4 GB+ → q8
11
- { min: 2 * 1024 ** 3, dtype: 'q4' }, // 2 GB+ → q4
12
- { min: 0, dtype: 'q4' }, // < 2 GB → q4 (safest)
13
- ];
14
- /**
15
- * Check if WebGPU is available and request an adapter.
16
- * Returns `null` if WebGPU is not supported.
17
- */
18
- export async function getGPUAdapter() {
19
- if (typeof navigator === 'undefined')
20
- return null;
21
- if (!('gpu' in navigator))
22
- return null;
23
- try {
24
- const adapter = await navigator.gpu.requestAdapter({
25
- powerPreference: 'high-performance',
26
- });
27
- return adapter;
28
- }
29
- catch {
30
- return null;
31
- }
32
- }
33
- /**
34
- * Extract GPU info from an adapter.
35
- */
36
- export async function getGPUInfo(adapter) {
37
- // adapterInfo is available synchronously on modern browsers
38
- const info = adapter.info ?? adapter.requestAdapterInfo?.();
39
- const resolved = info instanceof Promise ? await info : info;
40
- // maxBufferSize gives a rough VRAM lower-bound
41
- const vram = Number(adapter.limits?.maxBufferSize ?? 0);
42
- return {
43
- vendor: resolved?.vendor ?? 'unknown',
44
- architecture: resolved?.architecture ?? 'unknown',
45
- description: resolved?.description ?? 'unknown',
46
- vram,
47
- vramFormatted: formatSize(vram),
48
- };
49
- }
50
- /**
51
- * Recommend a quantization dtype based on available VRAM.
52
- */
53
- export function recommendDtype(vram) {
54
- for (const { min, dtype } of VRAM_THRESHOLDS) {
55
- if (vram >= min)
56
- return dtype;
57
- }
58
- return 'q4';
59
- }
60
- /**
61
- * Check if WebGPU is available.
62
- */
63
- export async function checkWebGPU() {
64
- const adapter = await getGPUAdapter();
65
- return adapter !== null;
66
- }
67
- /**
68
- * Check if WebAssembly is available.
69
- */
70
- export function checkWASM() {
71
- return typeof WebAssembly !== 'undefined';
72
- }
73
- /**
74
- * Detect the best available compute backend and return device info.
75
- *
76
- * Priority: WebGPU → WASM → CPU
77
- *
78
- * ```ts
79
- * const info = await detectDevice();
80
- * console.log(info.backend); // 'webgpu'
81
- * console.log(info.recommendedDtype); // 'q4'
82
- * console.log(info.gpu?.vendor); // 'apple'
83
- * ```
84
- */
85
- export async function detectDevice() {
86
- // Try WebGPU first
87
- const adapter = await getGPUAdapter();
88
- if (adapter) {
89
- const gpu = await getGPUInfo(adapter);
90
- return {
91
- backend: 'webgpu',
92
- gpu,
93
- recommendedDtype: recommendDtype(gpu.vram),
94
- };
95
- }
96
- // Fall back to WASM
97
- if (checkWASM()) {
98
- return {
99
- backend: 'wasm',
100
- gpu: null,
101
- recommendedDtype: 'q4',
102
- };
103
- }
104
- // CPU-only (rare)
105
- return {
106
- backend: 'cpu',
107
- gpu: null,
108
- recommendedDtype: 'q4',
109
- };
110
- }
111
- // ─── Size parsing / formatting ───
112
- const SIZE_UNITS = {
113
- b: 1,
114
- kb: 1024,
115
- mb: 1024 ** 2,
116
- gb: 1024 ** 3,
117
- tb: 1024 ** 4,
118
- };
119
- /**
120
- * Parse a human-readable size string into bytes.
121
- *
122
- * Accepts formats like '4GB', '512 MB', '1.5gb', '256mb'.
123
- * Also accepts raw numbers (passed through as-is).
124
- *
125
- * ```ts
126
- * parseSize('4GB') // 4294967296
127
- * parseSize('512MB') // 536870912
128
- * parseSize('1.5gb') // 1610612736
129
- * parseSize(1024) // 1024
130
- * ```
131
- */
132
- export function parseSize(input) {
133
- if (typeof input === 'number')
134
- return input;
135
- const match = input.trim().match(/^([\d.]+)\s*(b|kb|mb|gb|tb)$/i);
136
- if (!match) {
137
- throw new Error(`Invalid size format: "${input}". Use something like "4GB", "512MB", or a number in bytes.`);
138
- }
139
- const value = parseFloat(match[1]);
140
- const unit = match[2].toLowerCase();
141
- return Math.round(value * SIZE_UNITS[unit]);
142
- }
143
- /**
144
- * Format bytes into a human-readable string.
145
- *
146
- * ```ts
147
- * formatSize(4294967296) // '4 GB'
148
- * formatSize(536870912) // '512 MB'
149
- * formatSize(1536) // '1.5 KB'
150
- * ```
151
- */
152
- export function formatSize(bytes) {
153
- if (bytes >= 1024 ** 4)
154
- return `${(bytes / 1024 ** 4).toFixed(1)} TB`;
155
- if (bytes >= 1024 ** 3)
156
- return `${(bytes / 1024 ** 3).toFixed(1)} GB`;
157
- if (bytes >= 1024 ** 2)
158
- return `${(bytes / 1024 ** 2).toFixed(1)} MB`;
159
- if (bytes >= 1024)
160
- return `${(bytes / 1024).toFixed(1)} KB`;
161
- return `${bytes} B`;
162
- }
163
- // ─── canRun ───
164
- /**
165
- * Check whether a model of a given size can likely run
166
- * on the current device without OOM.
167
- *
168
- * Accepts human-readable strings or raw byte counts:
169
- *
170
- * ```ts
171
- * await canRun('4GB');
172
- * await canRun('512MB');
173
- * await canRun(4_000_000_000);
174
- * ```
175
- *
176
- * This is a heuristic — real limits depend on browser, OS, and
177
- * other tabs consuming VRAM.
178
- */
179
- export async function canRun(estimatedSize) {
180
- const bytes = parseSize(estimatedSize);
181
- const device = await detectDevice();
182
- if (device.backend === 'webgpu' && device.gpu) {
183
- // Leave ~500MB headroom for browser internals
184
- const available = device.gpu.vram - 512 * 1024 ** 2;
185
- if (bytes > available) {
186
- return {
187
- ok: false,
188
- backend: device.backend,
189
- reason: `Model (~${formatSize(bytes)}) exceeds available VRAM (~${formatSize(available)})`,
190
- };
191
- }
192
- }
193
- return { ok: true, backend: device.backend };
194
- }
195
- //# sourceMappingURL=device.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"device.js","sourceRoot":"","sources":["../src/device.ts"],"names":[],"mappings":"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"}
@@ -1,61 +0,0 @@
1
- /**
2
- * GPU device-lost recovery handler.
3
- *
4
- * WebGPU devices can be lost due to TDR resets, VRAM exhaustion, driver
5
- * updates, or mobile browsers reclaiming resources. This module provides
6
- * automatic recovery with exponential backoff.
7
- */
8
- export type RecoveryState = 'idle' | 'lost' | 'recovering' | 'recovered' | 'failed';
9
- export interface GPURecoveryEvents {
10
- 'state-change': RecoveryState;
11
- 'lost': {
12
- reason: string;
13
- };
14
- 'recovered': {
15
- adapter: GPUAdapter;
16
- };
17
- 'failed': {
18
- attempts: number;
19
- lastError: string;
20
- };
21
- }
22
- export type GPURecoveryListener<K extends keyof GPURecoveryEvents> = (data: GPURecoveryEvents[K]) => void;
23
- /**
24
- * Monitors a GPU device for loss and attempts automatic recovery.
25
- *
26
- * ```ts
27
- * const recovery = new GPURecovery();
28
- * recovery.on('lost', ({ reason }) => showBanner('GPU lost: ' + reason));
29
- * recovery.on('recovered', ({ adapter }) => reinitPipeline(adapter));
30
- * recovery.on('failed', () => showFallbackUI());
31
- *
32
- * const device = await recovery.watchDevice(existingDevice);
33
- * ```
34
- */
35
- export declare class GPURecovery {
36
- private state;
37
- private listeners;
38
- private maxRetries;
39
- private baseDelay;
40
- constructor(options?: {
41
- maxRetries?: number;
42
- baseDelayMs?: number;
43
- });
44
- /** Current recovery state. */
45
- getState(): RecoveryState;
46
- /** Register a listener for recovery events. */
47
- on<K extends keyof GPURecoveryEvents>(event: K, listener: GPURecoveryListener<K>): void;
48
- /** Remove a listener. */
49
- off<K extends keyof GPURecoveryEvents>(event: K, listener: GPURecoveryListener<K>): void;
50
- private emit;
51
- private setState;
52
- /**
53
- * Watch a GPU device for loss. When the device is lost, automatically
54
- * attempt to re-acquire an adapter.
55
- *
56
- * @returns The same device (for chaining)
57
- */
58
- watchDevice(device: GPUDevice): GPUDevice;
59
- private attemptRecovery;
60
- }
61
- //# sourceMappingURL=gpu-recovery.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"gpu-recovery.d.ts","sourceRoot":"","sources":["../src/gpu-recovery.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,MAAM,GAAG,YAAY,GAAG,WAAW,GAAG,QAAQ,CAAC;AAEpF,MAAM,WAAW,iBAAiB;IAChC,cAAc,EAAE,aAAa,CAAC;IAC9B,MAAM,EAAE;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAC3B,WAAW,EAAE;QAAE,OAAO,EAAE,UAAU,CAAA;KAAE,CAAC;IACrC,QAAQ,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;CACnD;AAED,MAAM,MAAM,mBAAmB,CAAC,CAAC,SAAS,MAAM,iBAAiB,IAC/D,CAAC,IAAI,EAAE,iBAAiB,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC;AAEvC;;;;;;;;;;;GAWG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,KAAK,CAAyB;IACtC,OAAO,CAAC,SAAS,CAAoC;IACrD,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,SAAS,CAAS;gBAEd,OAAO,CAAC,EAAE;QAAE,UAAU,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE;IAKnE,8BAA8B;IAC9B,QAAQ,IAAI,aAAa;IAIzB,+CAA+C;IAC/C,EAAE,CAAC,CAAC,SAAS,MAAM,iBAAiB,EAClC,KAAK,EAAE,CAAC,EACR,QAAQ,EAAE,mBAAmB,CAAC,CAAC,CAAC,GAC/B,IAAI;IAOP,yBAAyB;IACzB,GAAG,CAAC,CAAC,SAAS,MAAM,iBAAiB,EACnC,KAAK,EAAE,CAAC,EACR,QAAQ,EAAE,mBAAmB,CAAC,CAAC,CAAC,GAC/B,IAAI;IAIP,OAAO,CAAC,IAAI;IAOZ,OAAO,CAAC,QAAQ;IAKhB;;;;;OAKG;IACH,WAAW,CAAC,MAAM,EAAE,SAAS,GAAG,SAAS;YAmB3B,eAAe;CAqC9B"}
@@ -1,105 +0,0 @@
1
- /**
2
- * GPU device-lost recovery handler.
3
- *
4
- * WebGPU devices can be lost due to TDR resets, VRAM exhaustion, driver
5
- * updates, or mobile browsers reclaiming resources. This module provides
6
- * automatic recovery with exponential backoff.
7
- */
8
- /**
9
- * Monitors a GPU device for loss and attempts automatic recovery.
10
- *
11
- * ```ts
12
- * const recovery = new GPURecovery();
13
- * recovery.on('lost', ({ reason }) => showBanner('GPU lost: ' + reason));
14
- * recovery.on('recovered', ({ adapter }) => reinitPipeline(adapter));
15
- * recovery.on('failed', () => showFallbackUI());
16
- *
17
- * const device = await recovery.watchDevice(existingDevice);
18
- * ```
19
- */
20
- export class GPURecovery {
21
- state = 'idle';
22
- listeners = new Map();
23
- maxRetries;
24
- baseDelay;
25
- constructor(options) {
26
- this.maxRetries = options?.maxRetries ?? 3;
27
- this.baseDelay = options?.baseDelayMs ?? 1000;
28
- }
29
- /** Current recovery state. */
30
- getState() {
31
- return this.state;
32
- }
33
- /** Register a listener for recovery events. */
34
- on(event, listener) {
35
- if (!this.listeners.has(event)) {
36
- this.listeners.set(event, new Set());
37
- }
38
- this.listeners.get(event).add(listener);
39
- }
40
- /** Remove a listener. */
41
- off(event, listener) {
42
- this.listeners.get(event)?.delete(listener);
43
- }
44
- emit(event, data) {
45
- this.listeners.get(event)?.forEach(fn => fn(data));
46
- }
47
- setState(state) {
48
- this.state = state;
49
- this.emit('state-change', state);
50
- }
51
- /**
52
- * Watch a GPU device for loss. When the device is lost, automatically
53
- * attempt to re-acquire an adapter.
54
- *
55
- * @returns The same device (for chaining)
56
- */
57
- watchDevice(device) {
58
- device.lost.then((info) => {
59
- const reason = info.message || 'unknown';
60
- // If the device was intentionally destroyed, don't recover
61
- if (info.reason === 'destroyed') {
62
- this.setState('idle');
63
- return;
64
- }
65
- this.setState('lost');
66
- this.emit('lost', { reason });
67
- this.attemptRecovery(0);
68
- });
69
- this.setState('idle');
70
- return device;
71
- }
72
- async attemptRecovery(attempt) {
73
- if (attempt >= this.maxRetries) {
74
- this.setState('failed');
75
- this.emit('failed', {
76
- attempts: attempt,
77
- lastError: 'Max retries exceeded',
78
- });
79
- return;
80
- }
81
- this.setState('recovering');
82
- // Exponential backoff: 1s, 2s, 4s
83
- const delay = this.baseDelay * 2 ** attempt;
84
- await new Promise(r => setTimeout(r, delay));
85
- try {
86
- if (typeof navigator === 'undefined' || !('gpu' in navigator)) {
87
- throw new Error('WebGPU not available');
88
- }
89
- const adapter = await navigator.gpu.requestAdapter({
90
- powerPreference: 'high-performance',
91
- });
92
- if (!adapter) {
93
- throw new Error('No GPU adapter available');
94
- }
95
- this.setState('recovered');
96
- this.emit('recovered', { adapter });
97
- }
98
- catch (e) {
99
- const msg = e instanceof Error ? e.message : String(e);
100
- // Retry
101
- this.attemptRecovery(attempt + 1);
102
- }
103
- }
104
- }
105
- //# sourceMappingURL=gpu-recovery.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"gpu-recovery.js","sourceRoot":"","sources":["../src/gpu-recovery.ts"],"names":[],"mappings":"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"}
package/dist/hub.d.ts DELETED
@@ -1,97 +0,0 @@
1
- /**
2
- * Search and list WebGPU/ONNX-compatible models from the Hugging Face Hub.
3
- *
4
- * Uses the public HF Hub API — no auth token needed for public models.
5
- */
6
- import type { PipelineTask } from './types.js';
7
- export interface HubModel {
8
- /** Model ID (e.g. 'onnx-community/Bonsai-1.7B-ONNX') */
9
- modelId: string;
10
- /** Pipeline task (e.g. 'text-generation') */
11
- task: PipelineTask | string;
12
- /** Author or organization */
13
- author: string;
14
- /** Number of downloads in the last month */
15
- downloads: number;
16
- /** Number of likes */
17
- likes: number;
18
- /** Last modified date */
19
- lastModified: string;
20
- /** Tags on the model (e.g. ['onnx', 'webgpu']) */
21
- tags: string[];
22
- /** Whether it's likely WebGPU-compatible (has ONNX weights) */
23
- webgpuCompatible: boolean;
24
- }
25
- export interface SearchOptions {
26
- /** Filter by pipeline task */
27
- task?: PipelineTask | string;
28
- /** Free-text search query */
29
- query?: string;
30
- /** Sort by: 'downloads' | 'likes' | 'modified' | 'trending' */
31
- sort?: 'downloads' | 'likes' | 'modified' | 'trending';
32
- /** Sort direction */
33
- direction?: 'asc' | 'desc';
34
- /** Max results to return (default: 20, max: 100) */
35
- limit?: number;
36
- /** Filter by author/org (e.g. 'onnx-community', 'Xenova') */
37
- author?: string;
38
- }
39
- /** Known orgs that publish ONNX/WebGPU-ready models */
40
- export declare const WEBGPU_ORGS: readonly ["onnx-community", "Xenova", "webml-community"];
41
- /**
42
- * Search for models compatible with transformers.js (and thus WebGPU/WASM).
43
- *
44
- * ```ts
45
- * import { searchModels } from 'webml-kit';
46
- *
47
- * const models = await searchModels({ task: 'text-generation', limit: 5 });
48
- * for (const m of models) {
49
- * console.log(`${m.modelId} — ${m.downloads} downloads`);
50
- * }
51
- * ```
52
- */
53
- export declare function searchModels(options?: SearchOptions): Promise<HubModel[]>;
54
- /**
55
- * List popular models for a specific task, sorted by downloads.
56
- *
57
- * ```ts
58
- * import { listModelsForTask } from 'webml-kit';
59
- *
60
- * const models = await listModelsForTask('automatic-speech-recognition');
61
- * // [{ modelId: 'onnx-community/whisper-tiny.en', downloads: 12345, ... }]
62
- * ```
63
- */
64
- export declare function listModelsForTask(task: PipelineTask | string, limit?: number): Promise<HubModel[]>;
65
- /**
66
- * List trending transformers.js models right now.
67
- *
68
- * ```ts
69
- * import { trendingModels } from 'webml-kit';
70
- *
71
- * const hot = await trendingModels(5);
72
- * ```
73
- */
74
- export declare function trendingModels(limit?: number): Promise<HubModel[]>;
75
- /**
76
- * List all models from known WebGPU-friendly orgs
77
- * (onnx-community, Xenova, webml-community).
78
- *
79
- * ```ts
80
- * import { listWebGPUModels } from 'webml-kit';
81
- *
82
- * const models = await listWebGPUModels({ task: 'text-generation' });
83
- * ```
84
- */
85
- export declare function listWebGPUModels(options?: Omit<SearchOptions, 'author'>): Promise<HubModel[]>;
86
- /**
87
- * Get detailed info about a specific model.
88
- *
89
- * ```ts
90
- * import { getModelInfo } from 'webml-kit';
91
- *
92
- * const info = await getModelInfo('onnx-community/Bonsai-1.7B-ONNX');
93
- * console.log(info.task, info.downloads, info.webgpuCompatible);
94
- * ```
95
- */
96
- export declare function getModelInfo(modelId: string): Promise<HubModel>;
97
- //# sourceMappingURL=hub.d.ts.map
package/dist/hub.d.ts.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"hub.d.ts","sourceRoot":"","sources":["../src/hub.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAI/C,MAAM,WAAW,QAAQ;IACvB,wDAAwD;IACxD,OAAO,EAAE,MAAM,CAAC;IAChB,6CAA6C;IAC7C,IAAI,EAAE,YAAY,GAAG,MAAM,CAAC;IAC5B,6BAA6B;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,4CAA4C;IAC5C,SAAS,EAAE,MAAM,CAAC;IAClB,sBAAsB;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,yBAAyB;IACzB,YAAY,EAAE,MAAM,CAAC;IACrB,kDAAkD;IAClD,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,+DAA+D;IAC/D,gBAAgB,EAAE,OAAO,CAAC;CAC3B;AAED,MAAM,WAAW,aAAa;IAC5B,8BAA8B;IAC9B,IAAI,CAAC,EAAE,YAAY,GAAG,MAAM,CAAC;IAC7B,6BAA6B;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,+DAA+D;IAC/D,IAAI,CAAC,EAAE,WAAW,GAAG,OAAO,GAAG,UAAU,GAAG,UAAU,CAAC;IACvD,qBAAqB;IACrB,SAAS,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;IAC3B,oDAAoD;IACpD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,6DAA6D;IAC7D,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAMD,uDAAuD;AACvD,eAAO,MAAM,WAAW,0DAId,CAAC;AAIX;;;;;;;;;;;GAWG;AACH,wBAAsB,YAAY,CAAC,OAAO,GAAE,aAAkB,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC,CA8BnF;AAED;;;;;;;;;GASG;AACH,wBAAsB,iBAAiB,CACrC,IAAI,EAAE,YAAY,GAAG,MAAM,EAC3B,KAAK,SAAK,GACT,OAAO,CAAC,QAAQ,EAAE,CAAC,CAErB;AAED;;;;;;;;GAQG;AACH,wBAAsB,cAAc,CAAC,KAAK,SAAK,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC,CAEpE;AAED;;;;;;;;;GASG;AACH,wBAAsB,gBAAgB,CACpC,OAAO,GAAE,IAAI,CAAC,aAAa,EAAE,QAAQ,CAAM,GAC1C,OAAO,CAAC,QAAQ,EAAE,CAAC,CAiBrB;AAED;;;;;;;;;GASG;AACH,wBAAsB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAQrE"}