webml-kit 0.3.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.
- package/README.md +39 -0
- package/package.json +17 -5
- package/dist/cache.d.ts +0 -46
- package/dist/cache.d.ts.map +0 -1
- package/dist/cache.js +0 -160
- package/dist/cache.js.map +0 -1
- package/dist/device.d.ts +0 -86
- package/dist/device.d.ts.map +0 -1
- package/dist/device.js +0 -195
- package/dist/device.js.map +0 -1
- package/dist/gpu-recovery.d.ts +0 -61
- package/dist/gpu-recovery.d.ts.map +0 -1
- package/dist/gpu-recovery.js +0 -105
- package/dist/gpu-recovery.js.map +0 -1
- package/dist/hub.d.ts +0 -97
- package/dist/hub.d.ts.map +0 -1
- package/dist/hub.js +0 -142
- package/dist/hub.js.map +0 -1
- package/dist/index.d.ts +0 -61
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js +0 -63
- package/dist/index.js.map +0 -1
- package/dist/inputs.d.ts +0 -27
- package/dist/inputs.d.ts.map +0 -1
- package/dist/inputs.js +0 -123
- package/dist/inputs.js.map +0 -1
- package/dist/loader.d.ts +0 -87
- package/dist/loader.d.ts.map +0 -1
- package/dist/loader.js +0 -156
- package/dist/loader.js.map +0 -1
- package/dist/model-client.d.ts +0 -149
- package/dist/model-client.d.ts.map +0 -1
- package/dist/model-client.js +0 -318
- package/dist/model-client.js.map +0 -1
- package/dist/model-worker.d.ts +0 -16
- package/dist/model-worker.d.ts.map +0 -1
- package/dist/model-worker.js +0 -340
- package/dist/model-worker.js.map +0 -1
- package/dist/onnx-pipeline.d.ts +0 -20
- package/dist/onnx-pipeline.d.ts.map +0 -1
- package/dist/onnx-pipeline.js +0 -385
- package/dist/onnx-pipeline.js.map +0 -1
- package/dist/pipelines/index.d.ts +0 -28
- package/dist/pipelines/index.d.ts.map +0 -1
- package/dist/pipelines/index.js +0 -134
- package/dist/pipelines/index.js.map +0 -1
- package/dist/streaming.d.ts +0 -55
- package/dist/streaming.d.ts.map +0 -1
- package/dist/streaming.js +0 -142
- package/dist/streaming.js.map +0 -1
- package/dist/types.d.ts +0 -196
- package/dist/types.d.ts.map +0 -1
- package/dist/types.js +0 -3
- package/dist/types.js.map +0 -1
package/dist/gpu-recovery.d.ts
DELETED
|
@@ -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"}
|
package/dist/gpu-recovery.js
DELETED
|
@@ -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
|
package/dist/gpu-recovery.js.map
DELETED
|
@@ -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"}
|
package/dist/hub.js
DELETED
|
@@ -1,142 +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
|
-
// ─── Constants ───
|
|
7
|
-
const HF_API = 'https://huggingface.co/api';
|
|
8
|
-
/** Known orgs that publish ONNX/WebGPU-ready models */
|
|
9
|
-
export const WEBGPU_ORGS = [
|
|
10
|
-
'onnx-community',
|
|
11
|
-
'Xenova',
|
|
12
|
-
'webml-community',
|
|
13
|
-
];
|
|
14
|
-
// ─── Core functions ───
|
|
15
|
-
/**
|
|
16
|
-
* Search for models compatible with transformers.js (and thus WebGPU/WASM).
|
|
17
|
-
*
|
|
18
|
-
* ```ts
|
|
19
|
-
* import { searchModels } from 'webml-kit';
|
|
20
|
-
*
|
|
21
|
-
* const models = await searchModels({ task: 'text-generation', limit: 5 });
|
|
22
|
-
* for (const m of models) {
|
|
23
|
-
* console.log(`${m.modelId} — ${m.downloads} downloads`);
|
|
24
|
-
* }
|
|
25
|
-
* ```
|
|
26
|
-
*/
|
|
27
|
-
export async function searchModels(options = {}) {
|
|
28
|
-
const params = new URLSearchParams();
|
|
29
|
-
// Only show models that work with transformers.js
|
|
30
|
-
params.set('library', 'transformers.js');
|
|
31
|
-
if (options.task)
|
|
32
|
-
params.set('pipeline_tag', options.task);
|
|
33
|
-
if (options.query)
|
|
34
|
-
params.set('search', options.query);
|
|
35
|
-
if (options.author)
|
|
36
|
-
params.set('author', options.author);
|
|
37
|
-
if (options.sort === 'trending') {
|
|
38
|
-
params.set('sort', 'trending');
|
|
39
|
-
}
|
|
40
|
-
else if (options.sort) {
|
|
41
|
-
params.set('sort', options.sort === 'modified' ? 'lastModified' : options.sort);
|
|
42
|
-
params.set('direction', options.direction === 'asc' ? '1' : '-1');
|
|
43
|
-
}
|
|
44
|
-
else {
|
|
45
|
-
params.set('sort', 'downloads');
|
|
46
|
-
params.set('direction', '-1');
|
|
47
|
-
}
|
|
48
|
-
params.set('limit', String(Math.min(options.limit ?? 20, 100)));
|
|
49
|
-
const url = `${HF_API}/models?${params.toString()}`;
|
|
50
|
-
const response = await fetch(url);
|
|
51
|
-
if (!response.ok) {
|
|
52
|
-
throw new Error(`HF Hub API error: ${response.status} ${response.statusText}`);
|
|
53
|
-
}
|
|
54
|
-
const data = await response.json();
|
|
55
|
-
return data.map(normalizeModel);
|
|
56
|
-
}
|
|
57
|
-
/**
|
|
58
|
-
* List popular models for a specific task, sorted by downloads.
|
|
59
|
-
*
|
|
60
|
-
* ```ts
|
|
61
|
-
* import { listModelsForTask } from 'webml-kit';
|
|
62
|
-
*
|
|
63
|
-
* const models = await listModelsForTask('automatic-speech-recognition');
|
|
64
|
-
* // [{ modelId: 'onnx-community/whisper-tiny.en', downloads: 12345, ... }]
|
|
65
|
-
* ```
|
|
66
|
-
*/
|
|
67
|
-
export async function listModelsForTask(task, limit = 10) {
|
|
68
|
-
return searchModels({ task, sort: 'downloads', limit });
|
|
69
|
-
}
|
|
70
|
-
/**
|
|
71
|
-
* List trending transformers.js models right now.
|
|
72
|
-
*
|
|
73
|
-
* ```ts
|
|
74
|
-
* import { trendingModels } from 'webml-kit';
|
|
75
|
-
*
|
|
76
|
-
* const hot = await trendingModels(5);
|
|
77
|
-
* ```
|
|
78
|
-
*/
|
|
79
|
-
export async function trendingModels(limit = 10) {
|
|
80
|
-
return searchModels({ sort: 'trending', limit });
|
|
81
|
-
}
|
|
82
|
-
/**
|
|
83
|
-
* List all models from known WebGPU-friendly orgs
|
|
84
|
-
* (onnx-community, Xenova, webml-community).
|
|
85
|
-
*
|
|
86
|
-
* ```ts
|
|
87
|
-
* import { listWebGPUModels } from 'webml-kit';
|
|
88
|
-
*
|
|
89
|
-
* const models = await listWebGPUModels({ task: 'text-generation' });
|
|
90
|
-
* ```
|
|
91
|
-
*/
|
|
92
|
-
export async function listWebGPUModels(options = {}) {
|
|
93
|
-
const results = [];
|
|
94
|
-
for (const org of WEBGPU_ORGS) {
|
|
95
|
-
const models = await searchModels({ ...options, author: org });
|
|
96
|
-
results.push(...models);
|
|
97
|
-
}
|
|
98
|
-
// Deduplicate by modelId and sort by downloads
|
|
99
|
-
const seen = new Set();
|
|
100
|
-
return results
|
|
101
|
-
.filter((m) => {
|
|
102
|
-
if (seen.has(m.modelId))
|
|
103
|
-
return false;
|
|
104
|
-
seen.add(m.modelId);
|
|
105
|
-
return true;
|
|
106
|
-
})
|
|
107
|
-
.sort((a, b) => b.downloads - a.downloads);
|
|
108
|
-
}
|
|
109
|
-
/**
|
|
110
|
-
* Get detailed info about a specific model.
|
|
111
|
-
*
|
|
112
|
-
* ```ts
|
|
113
|
-
* import { getModelInfo } from 'webml-kit';
|
|
114
|
-
*
|
|
115
|
-
* const info = await getModelInfo('onnx-community/Bonsai-1.7B-ONNX');
|
|
116
|
-
* console.log(info.task, info.downloads, info.webgpuCompatible);
|
|
117
|
-
* ```
|
|
118
|
-
*/
|
|
119
|
-
export async function getModelInfo(modelId) {
|
|
120
|
-
const response = await fetch(`${HF_API}/models/${modelId}`);
|
|
121
|
-
if (!response.ok) {
|
|
122
|
-
throw new Error(`Model not found: ${modelId} (${response.status})`);
|
|
123
|
-
}
|
|
124
|
-
const data = await response.json();
|
|
125
|
-
return normalizeModel(data);
|
|
126
|
-
}
|
|
127
|
-
function normalizeModel(raw) {
|
|
128
|
-
const id = raw.modelId ?? raw.id ?? 'unknown';
|
|
129
|
-
const tags = raw.tags ?? [];
|
|
130
|
-
const author = raw.author ?? id.split('/')[0] ?? 'unknown';
|
|
131
|
-
return {
|
|
132
|
-
modelId: id,
|
|
133
|
-
task: (raw.pipeline_tag ?? 'unknown'),
|
|
134
|
-
author,
|
|
135
|
-
downloads: raw.downloads ?? 0,
|
|
136
|
-
likes: raw.likes ?? 0,
|
|
137
|
-
lastModified: raw.lastModified ?? '',
|
|
138
|
-
tags,
|
|
139
|
-
webgpuCompatible: tags.includes('onnx') || WEBGPU_ORGS.some((org) => id.startsWith(org)),
|
|
140
|
-
};
|
|
141
|
-
}
|
|
142
|
-
//# sourceMappingURL=hub.js.map
|
package/dist/hub.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"hub.js","sourceRoot":"","sources":["../src/hub.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
DELETED
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* webml-kit — Browser ML Made Easy
|
|
3
|
-
*
|
|
4
|
-
* Framework-agnostic utilities for loading and running ML models
|
|
5
|
-
* in the browser via WebGPU/WASM, powered by @huggingface/transformers.
|
|
6
|
-
*
|
|
7
|
-
* @example
|
|
8
|
-
* ```ts
|
|
9
|
-
* import { ModelClient, detectDevice, isCached } from 'webml-kit';
|
|
10
|
-
*
|
|
11
|
-
* // Check device
|
|
12
|
-
* const device = await detectDevice();
|
|
13
|
-
* console.log(device.backend); // 'webgpu'
|
|
14
|
-
*
|
|
15
|
-
* // Check cache
|
|
16
|
-
* if (await isCached('onnx-community/Bonsai-1.7B-ONNX')) {
|
|
17
|
-
* console.log('Model already downloaded!');
|
|
18
|
-
* }
|
|
19
|
-
*
|
|
20
|
-
* // Create client
|
|
21
|
-
* const client = new ModelClient(
|
|
22
|
-
* new URL('./model-worker.js', import.meta.url)
|
|
23
|
-
* );
|
|
24
|
-
*
|
|
25
|
-
* // Load model
|
|
26
|
-
* await client.load({
|
|
27
|
-
* task: 'text-generation',
|
|
28
|
-
* modelId: 'onnx-community/Bonsai-1.7B-ONNX',
|
|
29
|
-
* dtype: 'q4',
|
|
30
|
-
* onProgress: ({ percent }) => console.log(`${percent}%`),
|
|
31
|
-
* });
|
|
32
|
-
*
|
|
33
|
-
* // Stream tokens
|
|
34
|
-
* for await (const { token, tps } of client.stream('Hello!')) {
|
|
35
|
-
* process.stdout.write(token);
|
|
36
|
-
* }
|
|
37
|
-
* ```
|
|
38
|
-
*
|
|
39
|
-
* @packageDocumentation
|
|
40
|
-
*/
|
|
41
|
-
export { webml, inferTask } from './loader.js';
|
|
42
|
-
export type { WebMLOptions, LoadedModel } from './loader.js';
|
|
43
|
-
import webml from './loader.js';
|
|
44
|
-
export default webml;
|
|
45
|
-
export { coerceAudio, listenMic } from './inputs.js';
|
|
46
|
-
export type { ListenOptions, MicListener } from './inputs.js';
|
|
47
|
-
export { ModelClient } from './model-client.js';
|
|
48
|
-
export type { LoadOptions, ClientEventType } from './model-client.js';
|
|
49
|
-
export { detectDevice, checkWebGPU, checkWASM, getGPUAdapter, getGPUInfo, recommendDtype, canRun, parseSize, formatSize, } from './device.js';
|
|
50
|
-
export { getCacheBackend, isCached, getCacheSize, listCachedModels, clearCache, } from './cache.js';
|
|
51
|
-
export { TokenStream, collectStream } from './streaming.js';
|
|
52
|
-
export { GPURecovery } from './gpu-recovery.js';
|
|
53
|
-
export type { RecoveryState, GPURecoveryEvents } from './gpu-recovery.js';
|
|
54
|
-
export { PIPELINE_REGISTRY, getPipelineDefaults, supportsStreaming, } from './pipelines/index.js';
|
|
55
|
-
export type { PipelineDefaults } from './pipelines/index.js';
|
|
56
|
-
export { createOnnxPipeline, decodeCTC, decodeWavToFloat32, toFloat32Array, } from './onnx-pipeline.js';
|
|
57
|
-
export type { OnnxPipelineInstance } from './onnx-pipeline.js';
|
|
58
|
-
export { searchModels, listModelsForTask, trendingModels, listWebGPUModels, getModelInfo, WEBGPU_ORGS, } from './hub.js';
|
|
59
|
-
export type { HubModel, SearchOptions } from './hub.js';
|
|
60
|
-
export type { DeviceBackend, DeviceInfo, GPUInfo, QuantizationType, PipelineTask, ModelConfig, ProgressEvent, ProgressCallback, TokenEvent, ChatMessage, TextGenerationOptions, TextGenerationResult, ClassificationResult, DetectionResult, TranscriptionResult, EmbeddingResult, CaptionResult, TextResult, CacheBackend, CachedModel, } from './types.js';
|
|
61
|
-
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AAGH,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC/C,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC7D,OAAO,KAAK,MAAM,aAAa,CAAC;AAChC,eAAe,KAAK,CAAC;AAGrB,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACrD,YAAY,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAG9D,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,YAAY,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAGtE,OAAO,EACL,YAAY,EACZ,WAAW,EACX,SAAS,EACT,aAAa,EACb,UAAU,EACV,cAAc,EACd,MAAM,EACN,SAAS,EACT,UAAU,GACX,MAAM,aAAa,CAAC;AAGrB,OAAO,EACL,eAAe,EACf,QAAQ,EACR,YAAY,EACZ,gBAAgB,EAChB,UAAU,GACX,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAG5D,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,YAAY,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAG1E,OAAO,EACL,iBAAiB,EACjB,mBAAmB,EACnB,iBAAiB,GAClB,MAAM,sBAAsB,CAAC;AAC9B,YAAY,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAG7D,OAAO,EACL,kBAAkB,EAClB,SAAS,EACT,kBAAkB,EAClB,cAAc,GACf,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAG/D,OAAO,EACL,YAAY,EACZ,iBAAiB,EACjB,cAAc,EACd,gBAAgB,EAChB,YAAY,EACZ,WAAW,GACZ,MAAM,UAAU,CAAC;AAClB,YAAY,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAGxD,YAAY,EACV,aAAa,EACb,UAAU,EACV,OAAO,EACP,gBAAgB,EAChB,YAAY,EACZ,WAAW,EACX,aAAa,EACb,gBAAgB,EAChB,UAAU,EACV,WAAW,EACX,qBAAqB,EACrB,oBAAoB,EACpB,oBAAoB,EACpB,eAAe,EACf,mBAAmB,EACnB,eAAe,EACf,aAAa,EACb,UAAU,EACV,YAAY,EACZ,WAAW,GACZ,MAAM,YAAY,CAAC"}
|
package/dist/index.js
DELETED
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* webml-kit — Browser ML Made Easy
|
|
3
|
-
*
|
|
4
|
-
* Framework-agnostic utilities for loading and running ML models
|
|
5
|
-
* in the browser via WebGPU/WASM, powered by @huggingface/transformers.
|
|
6
|
-
*
|
|
7
|
-
* @example
|
|
8
|
-
* ```ts
|
|
9
|
-
* import { ModelClient, detectDevice, isCached } from 'webml-kit';
|
|
10
|
-
*
|
|
11
|
-
* // Check device
|
|
12
|
-
* const device = await detectDevice();
|
|
13
|
-
* console.log(device.backend); // 'webgpu'
|
|
14
|
-
*
|
|
15
|
-
* // Check cache
|
|
16
|
-
* if (await isCached('onnx-community/Bonsai-1.7B-ONNX')) {
|
|
17
|
-
* console.log('Model already downloaded!');
|
|
18
|
-
* }
|
|
19
|
-
*
|
|
20
|
-
* // Create client
|
|
21
|
-
* const client = new ModelClient(
|
|
22
|
-
* new URL('./model-worker.js', import.meta.url)
|
|
23
|
-
* );
|
|
24
|
-
*
|
|
25
|
-
* // Load model
|
|
26
|
-
* await client.load({
|
|
27
|
-
* task: 'text-generation',
|
|
28
|
-
* modelId: 'onnx-community/Bonsai-1.7B-ONNX',
|
|
29
|
-
* dtype: 'q4',
|
|
30
|
-
* onProgress: ({ percent }) => console.log(`${percent}%`),
|
|
31
|
-
* });
|
|
32
|
-
*
|
|
33
|
-
* // Stream tokens
|
|
34
|
-
* for await (const { token, tps } of client.stream('Hello!')) {
|
|
35
|
-
* process.stdout.write(token);
|
|
36
|
-
* }
|
|
37
|
-
* ```
|
|
38
|
-
*
|
|
39
|
-
* @packageDocumentation
|
|
40
|
-
*/
|
|
41
|
-
// ─── Functional API (Default Export) ───
|
|
42
|
-
export { webml, inferTask } from './loader.js';
|
|
43
|
-
import webml from './loader.js';
|
|
44
|
-
export default webml;
|
|
45
|
-
// ─── Input & Media Helpers ───
|
|
46
|
-
export { coerceAudio, listenMic } from './inputs.js';
|
|
47
|
-
// ─── Core ───
|
|
48
|
-
export { ModelClient } from './model-client.js';
|
|
49
|
-
// ─── Device Detection ───
|
|
50
|
-
export { detectDevice, checkWebGPU, checkWASM, getGPUAdapter, getGPUInfo, recommendDtype, canRun, parseSize, formatSize, } from './device.js';
|
|
51
|
-
// ─── Cache ───
|
|
52
|
-
export { getCacheBackend, isCached, getCacheSize, listCachedModels, clearCache, } from './cache.js';
|
|
53
|
-
// ─── Streaming ───
|
|
54
|
-
export { TokenStream, collectStream } from './streaming.js';
|
|
55
|
-
// ─── GPU Recovery ───
|
|
56
|
-
export { GPURecovery } from './gpu-recovery.js';
|
|
57
|
-
// ─── Pipelines ───
|
|
58
|
-
export { PIPELINE_REGISTRY, getPipelineDefaults, supportsStreaming, } from './pipelines/index.js';
|
|
59
|
-
// ─── ONNX Pipelines ───
|
|
60
|
-
export { createOnnxPipeline, decodeCTC, decodeWavToFloat32, toFloat32Array, } from './onnx-pipeline.js';
|
|
61
|
-
// ─── Hub Search ───
|
|
62
|
-
export { searchModels, listModelsForTask, trendingModels, listWebGPUModels, getModelInfo, WEBGPU_ORGS, } from './hub.js';
|
|
63
|
-
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AAEH,0CAA0C;AAC1C,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE/C,OAAO,KAAK,MAAM,aAAa,CAAC;AAChC,eAAe,KAAK,CAAC;AAErB,gCAAgC;AAChC,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAGrD,eAAe;AACf,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAGhD,2BAA2B;AAC3B,OAAO,EACL,YAAY,EACZ,WAAW,EACX,SAAS,EACT,aAAa,EACb,UAAU,EACV,cAAc,EACd,MAAM,EACN,SAAS,EACT,UAAU,GACX,MAAM,aAAa,CAAC;AAErB,gBAAgB;AAChB,OAAO,EACL,eAAe,EACf,QAAQ,EACR,YAAY,EACZ,gBAAgB,EAChB,UAAU,GACX,MAAM,YAAY,CAAC;AAEpB,oBAAoB;AACpB,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAE5D,uBAAuB;AACvB,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAGhD,oBAAoB;AACpB,OAAO,EACL,iBAAiB,EACjB,mBAAmB,EACnB,iBAAiB,GAClB,MAAM,sBAAsB,CAAC;AAG9B,yBAAyB;AACzB,OAAO,EACL,kBAAkB,EAClB,SAAS,EACT,kBAAkB,EAClB,cAAc,GACf,MAAM,oBAAoB,CAAC;AAG5B,qBAAqB;AACrB,OAAO,EACL,YAAY,EACZ,iBAAiB,EACjB,cAAc,EACd,gBAAgB,EAChB,YAAY,EACZ,WAAW,GACZ,MAAM,UAAU,CAAC"}
|
package/dist/inputs.d.ts
DELETED
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Universal input coercion and browser media helpers.
|
|
3
|
-
*
|
|
4
|
-
* Automatically converts URLs, Blobs, Files, AudioBuffers, and arrays
|
|
5
|
-
* into the exact formats expected by ML models.
|
|
6
|
-
*/
|
|
7
|
-
export interface ListenOptions {
|
|
8
|
-
/** Target sample rate in Hz (default: 16000) */
|
|
9
|
-
sampleRate?: number;
|
|
10
|
-
/** Chunk interval in seconds for streaming callback (default: 3) */
|
|
11
|
-
intervalSeconds?: number;
|
|
12
|
-
/** Callback fired for each audio chunk */
|
|
13
|
-
onChunk?: (pcm: Float32Array) => void;
|
|
14
|
-
}
|
|
15
|
-
export interface MicListener {
|
|
16
|
-
stop: () => void;
|
|
17
|
-
}
|
|
18
|
-
/**
|
|
19
|
-
* Coerces various audio formats (URL, File, Blob, AudioBuffer, ArrayBuffer, Array)
|
|
20
|
-
* into a standardized 16kHz Float32Array PCM buffer.
|
|
21
|
-
*/
|
|
22
|
-
export declare function coerceAudio(input: unknown): Promise<Float32Array>;
|
|
23
|
-
/**
|
|
24
|
-
* Capture microphone audio from browser and invoke callback with Float32Array PCM.
|
|
25
|
-
*/
|
|
26
|
-
export declare function listenMic(onChunk: (pcm: Float32Array) => void, options?: ListenOptions): Promise<MicListener>;
|
|
27
|
-
//# sourceMappingURL=inputs.d.ts.map
|
package/dist/inputs.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"inputs.d.ts","sourceRoot":"","sources":["../src/inputs.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,MAAM,WAAW,aAAa;IAC5B,gDAAgD;IAChD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,oEAAoE;IACpE,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,0CAA0C;IAC1C,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,YAAY,KAAK,IAAI,CAAC;CACvC;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,IAAI,CAAC;CAClB;AAED;;;GAGG;AACH,wBAAsB,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,YAAY,CAAC,CAkEvE;AAED;;GAEG;AACH,wBAAsB,SAAS,CAC7B,OAAO,EAAE,CAAC,GAAG,EAAE,YAAY,KAAK,IAAI,EACpC,OAAO,GAAE,aAAkB,GAC1B,OAAO,CAAC,WAAW,CAAC,CAwDtB"}
|