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
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "webml-kit",
3
- "version": "0.4.0",
3
+ "version": "0.4.1",
4
4
  "description": "Framework-agnostic utilities for loading and running ML models in the browser via WebGPU/WASM",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -52,9 +52,9 @@
52
52
  "url": "git+https://github.com/hemanth/webml-kit.git"
53
53
  },
54
54
  "dependencies": {
55
- "@huggingface/transformers": "^4.1.0",
55
+ "@huggingface/transformers": "^4.3.0",
56
56
  "kokoro-js": "^1.2.1",
57
- "onnxruntime-web": "^1.29.0"
57
+ "onnxruntime-web": "^1.30.0"
58
58
  },
59
59
  "devDependencies": {
60
60
  "@webgpu/types": "^0.1.69",
package/dist/cache.d.ts DELETED
@@ -1,46 +0,0 @@
1
- /**
2
- * Model cache visibility utilities.
3
- *
4
- * Transformers.js uses the Cache API internally to persist downloaded model
5
- * files. This module gives users visibility into what's cached, letting them
6
- * skip "downloading…" UX for returning users or clear storage on mobile.
7
- */
8
- import type { CachedModel, CacheBackend } from './types.js';
9
- /**
10
- * Detect which cache backend is available.
11
- * Priority: Cache API → OPFS → IndexedDB
12
- */
13
- export declare function getCacheBackend(): Promise<CacheBackend>;
14
- /**
15
- * Check if a specific model is already cached locally.
16
- *
17
- * ```ts
18
- * if (await isCached('onnx-community/Bonsai-1.7B-ONNX')) {
19
- * // Skip "downloading..." UI
20
- * }
21
- * ```
22
- */
23
- export declare function isCached(modelId: string): Promise<boolean>;
24
- /**
25
- * Get total cache size in bytes used by downloaded models.
26
- */
27
- export declare function getCacheSize(): Promise<number>;
28
- /**
29
- * List all cached models with metadata.
30
- */
31
- export declare function listCachedModels(): Promise<CachedModel[]>;
32
- /**
33
- * Clear cached model files.
34
- *
35
- * @param modelId - Specific model to clear, or omit to clear all.
36
- *
37
- * ```ts
38
- * // Clear a specific model
39
- * await clearCache('onnx-community/Bonsai-1.7B-ONNX');
40
- *
41
- * // Clear all cached models
42
- * await clearCache();
43
- * ```
44
- */
45
- export declare function clearCache(modelId?: string): Promise<void>;
46
- //# sourceMappingURL=cache.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"cache.d.ts","sourceRoot":"","sources":["../src/cache.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAU5D;;;GAGG;AACH,wBAAsB,eAAe,IAAI,OAAO,CAAC,YAAY,CAAC,CAmB7D;AAED;;;;;;;;GAQG;AACH,wBAAsB,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAoBhE;AAED;;GAEG;AACH,wBAAsB,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC,CASpD;AAED;;GAEG;AACH,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC,CA0C/D;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,UAAU,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CA4BhE"}
package/dist/cache.js DELETED
@@ -1,161 +0,0 @@
1
- /**
2
- * Model cache visibility utilities.
3
- *
4
- * Transformers.js uses the Cache API internally to persist downloaded model
5
- * files. This module gives users visibility into what's cached, letting them
6
- * skip "downloading…" UX for returning users or clear storage on mobile.
7
- */
8
- import { formatSize } from './device.js';
9
- /** Supported model cache name prefixes */
10
- const CACHE_PREFIXES = ['transformers-cache', 'webml-kit'];
11
- function isModelCache(name) {
12
- return CACHE_PREFIXES.some(prefix => name.startsWith(prefix));
13
- }
14
- /**
15
- * Detect which cache backend is available.
16
- * Priority: Cache API → OPFS → IndexedDB
17
- */
18
- export async function getCacheBackend() {
19
- if (typeof caches !== 'undefined') {
20
- return 'cache-api';
21
- }
22
- if (typeof navigator !== 'undefined' && 'storage' in navigator) {
23
- try {
24
- const root = await navigator.storage.getDirectory();
25
- if (root)
26
- return 'opfs';
27
- }
28
- catch {
29
- // OPFS not available
30
- }
31
- }
32
- if (typeof indexedDB !== 'undefined') {
33
- return 'indexeddb';
34
- }
35
- return 'cache-api'; // fallback, will fail gracefully
36
- }
37
- /**
38
- * Check if a specific model is already cached locally.
39
- *
40
- * ```ts
41
- * if (await isCached('onnx-community/Bonsai-1.7B-ONNX')) {
42
- * // Skip "downloading..." UI
43
- * }
44
- * ```
45
- */
46
- export async function isCached(modelId) {
47
- if (typeof caches === 'undefined')
48
- return false;
49
- try {
50
- const keys = await caches.keys();
51
- const matchedCaches = keys.filter(k => isModelCache(k));
52
- for (const cacheName of matchedCaches) {
53
- const cache = await caches.open(cacheName);
54
- const cacheKeys = await cache.keys();
55
- const hasModel = cacheKeys.some(req => req.url.includes(encodeURIComponent(modelId)) || req.url.includes(modelId));
56
- if (hasModel)
57
- return true;
58
- }
59
- }
60
- catch {
61
- // Cache API not available or permission denied
62
- }
63
- return false;
64
- }
65
- /**
66
- * Get total cache size in bytes used by downloaded models.
67
- */
68
- export async function getCacheSize() {
69
- if (typeof navigator === 'undefined' || !('storage' in navigator))
70
- return 0;
71
- try {
72
- const estimate = await navigator.storage.estimate();
73
- return estimate.usage ?? 0;
74
- }
75
- catch {
76
- return 0;
77
- }
78
- }
79
- /**
80
- * List all cached models with metadata.
81
- */
82
- export async function listCachedModels() {
83
- if (typeof caches === 'undefined')
84
- return [];
85
- const models = [];
86
- try {
87
- const keys = await caches.keys();
88
- const matchedCaches = keys.filter(k => isModelCache(k));
89
- for (const cacheName of matchedCaches) {
90
- const cache = await caches.open(cacheName);
91
- const cacheKeys = await cache.keys();
92
- // Group by model ID (extract from URL pattern)
93
- const modelUrls = new Map();
94
- for (const request of cacheKeys) {
95
- const url = request.url;
96
- // HF URLs: https://huggingface.co/{org}/{model}/resolve/{rev}/{file}
97
- const match = url.match(/huggingface\.co\/([^/]+\/[^/]+)\//);
98
- const id = match ? match[1] : (url.split('/').filter(Boolean).slice(-2).join('/') || url);
99
- const response = await cache.match(request);
100
- const size = response
101
- ? Number(response.headers.get('content-length') ?? 0)
102
- : 0;
103
- modelUrls.set(id, (modelUrls.get(id) ?? 0) + size);
104
- }
105
- for (const [modelId, sizeBytes] of modelUrls) {
106
- models.push({
107
- modelId,
108
- sizeBytes,
109
- size: formatSize(sizeBytes),
110
- lastAccessed: new Date(), // Cache API doesn't track this
111
- });
112
- }
113
- }
114
- }
115
- catch {
116
- // Cache API not available
117
- }
118
- return models;
119
- }
120
- /**
121
- * Clear cached model files.
122
- *
123
- * @param modelId - Specific model to clear, or omit to clear all.
124
- *
125
- * ```ts
126
- * // Clear a specific model
127
- * await clearCache('onnx-community/Bonsai-1.7B-ONNX');
128
- *
129
- * // Clear all cached models
130
- * await clearCache();
131
- * ```
132
- */
133
- export async function clearCache(modelId) {
134
- if (typeof caches === 'undefined')
135
- return;
136
- try {
137
- const keys = await caches.keys();
138
- const matchedCaches = keys.filter(k => isModelCache(k));
139
- for (const cacheName of matchedCaches) {
140
- if (!modelId) {
141
- // Clear entire cache
142
- await caches.delete(cacheName);
143
- }
144
- else {
145
- // Clear specific model
146
- const cache = await caches.open(cacheName);
147
- const cacheKeys = await cache.keys();
148
- for (const request of cacheKeys) {
149
- if (request.url.includes(encodeURIComponent(modelId)) ||
150
- request.url.includes(modelId)) {
151
- await cache.delete(request);
152
- }
153
- }
154
- }
155
- }
156
- }
157
- catch {
158
- // Cache API not available
159
- }
160
- }
161
- //# sourceMappingURL=cache.js.map
package/dist/cache.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"cache.js","sourceRoot":"","sources":["../src/cache.ts"],"names":[],"mappings":"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"}
@@ -1,182 +0,0 @@
1
- /**
2
- * Jev System One / OpenJev Decision Engine for webml-kit.
3
- *
4
- * Provides direct logit readout choice evaluation, direct binary evaluation (noul),
5
- * and continuous scoring evaluation over structured application state.
6
- *
7
- * Supports OpenJev models (minicpm5-2b, qwen3-0.6b, qwen3.5-4b) using @wllama/wllama
8
- * in browser/worker environments with WebGPU/WASM, and a high-performance,
9
- * calibrated zero-dependency heuristic fallback for Node.js, test, or offline environments.
10
- *
11
- * @packageDocumentation
12
- */
13
- export type OpenJevModelPreset = 'minicpm5-2b' | 'qwen3-0.6b' | 'qwen3.5-4b' | (string & {});
14
- export interface OpenJevModelInfo {
15
- id: string;
16
- name: string;
17
- url: string;
18
- family: 'minicpm' | 'qwen' | string;
19
- sizeMB: number;
20
- }
21
- export declare const OPENJEV_MODELS: Record<string, OpenJevModelInfo>;
22
- export interface DecisionProgressEvent {
23
- status: 'downloading' | 'loading' | 'compiling' | 'ready';
24
- loaded: number;
25
- total: number;
26
- percent: number;
27
- detail?: string;
28
- }
29
- export type DecisionProgressCallback = (event: DecisionProgressEvent) => void;
30
- export interface DecisionEngineOptions {
31
- /** Model preset or custom model ID (default: 'qwen3-0.6b') */
32
- model?: OpenJevModelPreset;
33
- /** Custom direct URL to GGUF model file */
34
- modelUrl?: string;
35
- /** Execution mode: 'auto' (try wllama, fallback to heuristic), 'wllama', or 'heuristic' */
36
- mode?: 'auto' | 'wllama' | 'heuristic';
37
- /** Path config for @wllama/wllama assets */
38
- wasmPaths?: {
39
- default?: string;
40
- 'single-thread/wllama.wasm'?: string;
41
- 'multi-thread/wllama.wasm'?: string;
42
- };
43
- /** Callback for model download and initialization progress */
44
- onProgress?: DecisionProgressCallback;
45
- /** Default threshold for noul evaluation (default: 0.5) */
46
- noulThreshold?: number;
47
- }
48
- export interface ChoiceInput {
49
- /** Application state context (object, string, array, etc.) */
50
- state: unknown;
51
- /** Question or instruction to evaluate */
52
- question?: string;
53
- /** Alternative alias for question */
54
- instructions?: string;
55
- /** Options to evaluate: array of labels or key-description criteria object */
56
- options: string[] | Record<string, string>;
57
- }
58
- export interface ChoiceResult {
59
- /** Selected winning option */
60
- choice: string;
61
- /** Confidence score between 0.0 and 1.0 */
62
- confidence: number;
63
- /** Probability distribution across options (sums to ~1.0) */
64
- probabilities: Record<string, number>;
65
- /** Execution time in milliseconds */
66
- latencyMs: number;
67
- }
68
- export interface NoulInput {
69
- /** Application state context */
70
- state: unknown;
71
- /** Condition or statement to evaluate */
72
- statement?: string;
73
- /** Alternative alias for statement */
74
- instructions?: string;
75
- /** Pass threshold (default: 0.5) */
76
- threshold?: number;
77
- }
78
- export interface NoulResult {
79
- /** Probability (0.0 to 1.0) that the condition holds true */
80
- noul: number;
81
- /** Whether noul >= threshold */
82
- passed: boolean;
83
- /** Execution time in milliseconds */
84
- latencyMs: number;
85
- }
86
- export interface ScoreInput {
87
- /** Application state context */
88
- state: unknown;
89
- /** Evaluation instructions */
90
- instructions?: string;
91
- /** Alternative alias for instructions */
92
- question?: string;
93
- /** Ordered evaluation levels: array of level names or level map */
94
- criteria: string[] | Record<string, string> | Record<number, string>;
95
- }
96
- export interface ScoreResult {
97
- /** Probability-weighted continuous score along levels */
98
- score: number;
99
- /** Confidence score between 0.0 and 1.0 */
100
- confidence: number;
101
- /** Probability distribution across criteria levels */
102
- probabilities: Record<string, number>;
103
- /** Execution time in milliseconds */
104
- latencyMs: number;
105
- }
106
- export interface DecisionEngine {
107
- readonly model: string;
108
- readonly isHeuristic: boolean;
109
- readonly isLoaded: boolean;
110
- init(): Promise<void>;
111
- choice(input: ChoiceInput): Promise<ChoiceResult>;
112
- directChoice(input: ChoiceInput): Promise<ChoiceResult>;
113
- noul(input: NoulInput): Promise<NoulResult>;
114
- score(input: ScoreInput): Promise<ScoreResult>;
115
- dispose(): Promise<void> | void;
116
- }
117
- interface NormalizedOption {
118
- key: string;
119
- description: string;
120
- }
121
- export declare function normalizeOptions(rawOptions: string[] | Record<string, string>): NormalizedOption[];
122
- interface NormalizedLevel {
123
- index: number;
124
- key: string;
125
- description: string;
126
- }
127
- export declare function normalizeCriteria(rawCriteria: string[] | Record<string, string> | Record<number, string>): NormalizedLevel[];
128
- export declare function validateModelOptions(options: DecisionEngineOptions): {
129
- modelId: string;
130
- modelUrl: string;
131
- mode: 'auto' | 'wllama' | 'heuristic';
132
- };
133
- export declare class HeuristicDecisionEngine implements DecisionEngine {
134
- readonly model: string;
135
- readonly isHeuristic: boolean;
136
- private _isLoaded;
137
- private options;
138
- constructor(options?: DecisionEngineOptions);
139
- get isLoaded(): boolean;
140
- init(): Promise<void>;
141
- choice(input: ChoiceInput): Promise<ChoiceResult>;
142
- directChoice(input: ChoiceInput): Promise<ChoiceResult>;
143
- noul(input: NoulInput): Promise<NoulResult>;
144
- score(input: ScoreInput): Promise<ScoreResult>;
145
- dispose(): void;
146
- }
147
- export declare class OpenJevWllamaEngine implements DecisionEngine {
148
- readonly model: string;
149
- readonly isHeuristic: boolean;
150
- private _isLoaded;
151
- private options;
152
- private modelUrl;
153
- private wllamaInstance;
154
- constructor(options?: DecisionEngineOptions);
155
- get isLoaded(): boolean;
156
- init(): Promise<void>;
157
- choice(input: ChoiceInput): Promise<ChoiceResult>;
158
- directChoice(input: ChoiceInput): Promise<ChoiceResult>;
159
- noul(input: NoulInput): Promise<NoulResult>;
160
- score(input: ScoreInput): Promise<ScoreResult>;
161
- dispose(): Promise<void>;
162
- }
163
- /**
164
- * Creates a DecisionEngine configured for OpenJev System One decision evaluations.
165
- *
166
- * Automatically selects OpenJev via Wllama in browser/worker environments with WebGPU/WASM,
167
- * and falls back to a calibrated zero-dependency heuristic engine in Node.js or test environments.
168
- *
169
- * @param options - Configuration options (model preset, mode, wasm paths, onProgress)
170
- * @returns Configured DecisionEngine instance
171
- */
172
- export declare function createDecisionEngine(options?: DecisionEngineOptions): DecisionEngine;
173
- /**
174
- * Executes a one-shot direct choice evaluation over application state with zero boilerplate.
175
- *
176
- * @param input - Evaluation state, question, and options (array or criteria record)
177
- * @param options - Decision engine configuration options
178
- * @returns ChoiceResult containing winning choice, confidence, and calibrated probabilities
179
- */
180
- export declare function directChoice(input: ChoiceInput, options?: DecisionEngineOptions): Promise<ChoiceResult>;
181
- export {};
182
- //# sourceMappingURL=decision.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"decision.d.ts","sourceRoot":"","sources":["../src/decision.ts"],"names":[],"mappings":"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"}