edgeflowjs 0.1.0

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 (98) hide show
  1. package/README.md +473 -0
  2. package/dist/backends/index.d.ts +13 -0
  3. package/dist/backends/index.d.ts.map +1 -0
  4. package/dist/backends/index.js +32 -0
  5. package/dist/backends/index.js.map +1 -0
  6. package/dist/backends/onnx.d.ts +46 -0
  7. package/dist/backends/onnx.d.ts.map +1 -0
  8. package/dist/backends/onnx.js +249 -0
  9. package/dist/backends/onnx.js.map +1 -0
  10. package/dist/backends/wasm.d.ts +78 -0
  11. package/dist/backends/wasm.d.ts.map +1 -0
  12. package/dist/backends/wasm.js +358 -0
  13. package/dist/backends/wasm.js.map +1 -0
  14. package/dist/backends/webgpu.d.ts +143 -0
  15. package/dist/backends/webgpu.d.ts.map +1 -0
  16. package/dist/backends/webgpu.js +326 -0
  17. package/dist/backends/webgpu.js.map +1 -0
  18. package/dist/backends/webnn.d.ts +115 -0
  19. package/dist/backends/webnn.d.ts.map +1 -0
  20. package/dist/backends/webnn.js +202 -0
  21. package/dist/backends/webnn.js.map +1 -0
  22. package/dist/core/index.d.ts +9 -0
  23. package/dist/core/index.d.ts.map +1 -0
  24. package/dist/core/index.js +14 -0
  25. package/dist/core/index.js.map +1 -0
  26. package/dist/core/memory.d.ts +234 -0
  27. package/dist/core/memory.d.ts.map +1 -0
  28. package/dist/core/memory.js +554 -0
  29. package/dist/core/memory.js.map +1 -0
  30. package/dist/core/runtime.d.ts +129 -0
  31. package/dist/core/runtime.d.ts.map +1 -0
  32. package/dist/core/runtime.js +352 -0
  33. package/dist/core/runtime.js.map +1 -0
  34. package/dist/core/scheduler.d.ts +118 -0
  35. package/dist/core/scheduler.d.ts.map +1 -0
  36. package/dist/core/scheduler.js +600 -0
  37. package/dist/core/scheduler.js.map +1 -0
  38. package/dist/core/tensor.d.ts +149 -0
  39. package/dist/core/tensor.d.ts.map +1 -0
  40. package/dist/core/tensor.js +719 -0
  41. package/dist/core/tensor.js.map +1 -0
  42. package/dist/core/types.d.ts +367 -0
  43. package/dist/core/types.d.ts.map +1 -0
  44. package/dist/core/types.js +54 -0
  45. package/dist/core/types.js.map +1 -0
  46. package/dist/edgeflow.browser.js +5601 -0
  47. package/dist/edgeflow.browser.js.map +7 -0
  48. package/dist/edgeflow.browser.min.js +19 -0
  49. package/dist/edgeflow.browser.min.js.map +7 -0
  50. package/dist/index.d.ts +71 -0
  51. package/dist/index.d.ts.map +1 -0
  52. package/dist/index.js +158 -0
  53. package/dist/index.js.map +1 -0
  54. package/dist/pipelines/base.d.ts +122 -0
  55. package/dist/pipelines/base.d.ts.map +1 -0
  56. package/dist/pipelines/base.js +155 -0
  57. package/dist/pipelines/base.js.map +1 -0
  58. package/dist/pipelines/feature-extraction.d.ts +68 -0
  59. package/dist/pipelines/feature-extraction.d.ts.map +1 -0
  60. package/dist/pipelines/feature-extraction.js +197 -0
  61. package/dist/pipelines/feature-extraction.js.map +1 -0
  62. package/dist/pipelines/image-classification.d.ts +61 -0
  63. package/dist/pipelines/image-classification.d.ts.map +1 -0
  64. package/dist/pipelines/image-classification.js +140 -0
  65. package/dist/pipelines/image-classification.js.map +1 -0
  66. package/dist/pipelines/index.d.ts +58 -0
  67. package/dist/pipelines/index.d.ts.map +1 -0
  68. package/dist/pipelines/index.js +72 -0
  69. package/dist/pipelines/index.js.map +1 -0
  70. package/dist/pipelines/text-classification.d.ts +71 -0
  71. package/dist/pipelines/text-classification.d.ts.map +1 -0
  72. package/dist/pipelines/text-classification.js +175 -0
  73. package/dist/pipelines/text-classification.js.map +1 -0
  74. package/dist/tools/index.d.ts +143 -0
  75. package/dist/tools/index.d.ts.map +1 -0
  76. package/dist/tools/index.js +294 -0
  77. package/dist/tools/index.js.map +1 -0
  78. package/dist/utils/cache.d.ts +162 -0
  79. package/dist/utils/cache.d.ts.map +1 -0
  80. package/dist/utils/cache.js +443 -0
  81. package/dist/utils/cache.js.map +1 -0
  82. package/dist/utils/index.d.ts +8 -0
  83. package/dist/utils/index.d.ts.map +1 -0
  84. package/dist/utils/index.js +12 -0
  85. package/dist/utils/index.js.map +1 -0
  86. package/dist/utils/model-loader.d.ts +107 -0
  87. package/dist/utils/model-loader.d.ts.map +1 -0
  88. package/dist/utils/model-loader.js +694 -0
  89. package/dist/utils/model-loader.js.map +1 -0
  90. package/dist/utils/preprocessor.d.ts +147 -0
  91. package/dist/utils/preprocessor.d.ts.map +1 -0
  92. package/dist/utils/preprocessor.js +423 -0
  93. package/dist/utils/preprocessor.js.map +1 -0
  94. package/dist/utils/tokenizer.d.ts +140 -0
  95. package/dist/utils/tokenizer.d.ts.map +1 -0
  96. package/dist/utils/tokenizer.js +397 -0
  97. package/dist/utils/tokenizer.js.map +1 -0
  98. package/package.json +87 -0
@@ -0,0 +1,162 @@
1
+ /**
2
+ * edgeFlow.js - Caching Utilities
3
+ *
4
+ * Smart caching for models, tensors, and inference results.
5
+ */
6
+ /**
7
+ * Cache strategy types
8
+ */
9
+ export type CacheStrategy = 'lru' | 'lfu' | 'fifo' | 'ttl';
10
+ /**
11
+ * Cache options
12
+ */
13
+ export interface CacheOptions {
14
+ /** Cache strategy */
15
+ strategy?: CacheStrategy;
16
+ /** Maximum cache size in bytes */
17
+ maxSize?: number;
18
+ /** Maximum number of entries */
19
+ maxEntries?: number;
20
+ /** Default TTL in milliseconds */
21
+ ttl?: number;
22
+ /** Enable persistence to IndexedDB */
23
+ persistent?: boolean;
24
+ /** Cache name for persistence */
25
+ name?: string;
26
+ }
27
+ /**
28
+ * Cache statistics
29
+ */
30
+ export interface CacheStats {
31
+ /** Number of entries */
32
+ entries: number;
33
+ /** Total size in bytes */
34
+ size: number;
35
+ /** Cache hits */
36
+ hits: number;
37
+ /** Cache misses */
38
+ misses: number;
39
+ /** Hit rate (0-1) */
40
+ hitRate: number;
41
+ }
42
+ /**
43
+ * Cache - Generic cache implementation
44
+ */
45
+ export declare class Cache<T> {
46
+ private readonly options;
47
+ private readonly cache;
48
+ private currentSize;
49
+ private hits;
50
+ private misses;
51
+ constructor(options?: CacheOptions);
52
+ /**
53
+ * Get value from cache
54
+ */
55
+ get(key: string): T | undefined;
56
+ /**
57
+ * Set value in cache
58
+ */
59
+ set(key: string, value: T, size: number, ttl?: number): void;
60
+ /**
61
+ * Check if key exists
62
+ */
63
+ has(key: string): boolean;
64
+ /**
65
+ * Delete entry
66
+ */
67
+ delete(key: string): boolean;
68
+ /**
69
+ * Clear the cache
70
+ */
71
+ clear(): void;
72
+ /**
73
+ * Get cache statistics
74
+ */
75
+ getStats(): CacheStats;
76
+ /**
77
+ * Evict an entry based on strategy
78
+ */
79
+ private evict;
80
+ /**
81
+ * Find least recently used entry
82
+ */
83
+ private findLRU;
84
+ /**
85
+ * Find least frequently used entry
86
+ */
87
+ private findLFU;
88
+ /**
89
+ * Find oldest entry (FIFO)
90
+ */
91
+ private findOldest;
92
+ /**
93
+ * Find expired entry
94
+ */
95
+ private findExpired;
96
+ /**
97
+ * Load cache from IndexedDB
98
+ */
99
+ private loadFromStorage;
100
+ /**
101
+ * Save cache to IndexedDB
102
+ */
103
+ private saveToStorage;
104
+ /**
105
+ * Clear IndexedDB storage
106
+ */
107
+ private clearStorage;
108
+ /**
109
+ * Open IndexedDB database
110
+ */
111
+ private openDB;
112
+ }
113
+ /**
114
+ * InferenceCache - Cache for inference results
115
+ */
116
+ export declare class InferenceCache extends Cache<Float32Array> {
117
+ /**
118
+ * Generate cache key from input
119
+ */
120
+ generateKey(modelId: string, input: Float32Array | number[]): string;
121
+ /**
122
+ * Simple hash function for arrays
123
+ */
124
+ private hashArray;
125
+ }
126
+ /**
127
+ * Model download cache using Cache API
128
+ */
129
+ export declare class ModelDownloadCache {
130
+ private readonly cacheName;
131
+ private cache;
132
+ constructor(cacheName?: string);
133
+ /**
134
+ * Initialize cache
135
+ */
136
+ private ensureCache;
137
+ /**
138
+ * Get cached response
139
+ */
140
+ get(url: string): Promise<Response | undefined>;
141
+ /**
142
+ * Store response in cache
143
+ */
144
+ put(url: string, response: Response): Promise<void>;
145
+ /**
146
+ * Delete cached response
147
+ */
148
+ delete(url: string): Promise<boolean>;
149
+ /**
150
+ * Clear all cached models
151
+ */
152
+ clear(): Promise<void>;
153
+ /**
154
+ * Get all cached URLs
155
+ */
156
+ keys(): Promise<string[]>;
157
+ }
158
+ /**
159
+ * Create a cache with common presets
160
+ */
161
+ export declare function createCache<T>(preset?: 'small' | 'medium' | 'large' | 'custom', options?: CacheOptions): Cache<T>;
162
+ //# sourceMappingURL=cache.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cache.d.ts","sourceRoot":"","sources":["../../src/utils/cache.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,443 @@
1
+ /**
2
+ * edgeFlow.js - Caching Utilities
3
+ *
4
+ * Smart caching for models, tensors, and inference results.
5
+ */
6
+ // ============================================================================
7
+ // Cache Implementation
8
+ // ============================================================================
9
+ /**
10
+ * Cache - Generic cache implementation
11
+ */
12
+ export class Cache {
13
+ options;
14
+ cache = new Map();
15
+ currentSize = 0;
16
+ hits = 0;
17
+ misses = 0;
18
+ constructor(options = {}) {
19
+ this.options = {
20
+ strategy: options.strategy ?? 'lru',
21
+ maxSize: options.maxSize ?? 100 * 1024 * 1024, // 100MB
22
+ maxEntries: options.maxEntries ?? 1000,
23
+ ttl: options.ttl ?? 0, // 0 = no TTL
24
+ persistent: options.persistent ?? false,
25
+ name: options.name ?? 'edgeflow-cache',
26
+ };
27
+ // Load from persistent storage if enabled
28
+ if (this.options.persistent) {
29
+ this.loadFromStorage();
30
+ }
31
+ }
32
+ /**
33
+ * Get value from cache
34
+ */
35
+ get(key) {
36
+ const entry = this.cache.get(key);
37
+ if (!entry) {
38
+ this.misses++;
39
+ return undefined;
40
+ }
41
+ // Check TTL
42
+ if (entry.ttl && Date.now() - entry.createdAt > entry.ttl) {
43
+ this.delete(key);
44
+ this.misses++;
45
+ return undefined;
46
+ }
47
+ // Update access stats
48
+ entry.accessedAt = Date.now();
49
+ entry.accessCount++;
50
+ this.hits++;
51
+ return entry.value;
52
+ }
53
+ /**
54
+ * Set value in cache
55
+ */
56
+ set(key, value, size, ttl) {
57
+ // Remove existing entry if present
58
+ if (this.cache.has(key)) {
59
+ this.delete(key);
60
+ }
61
+ // Evict entries if necessary
62
+ while ((this.currentSize + size > this.options.maxSize ||
63
+ this.cache.size >= this.options.maxEntries) &&
64
+ this.cache.size > 0) {
65
+ this.evict();
66
+ }
67
+ // Determine TTL value
68
+ const entryTtl = ttl !== undefined ? ttl : (this.options.ttl > 0 ? this.options.ttl : undefined);
69
+ // Add new entry
70
+ const entry = {
71
+ value,
72
+ size,
73
+ createdAt: Date.now(),
74
+ accessedAt: Date.now(),
75
+ accessCount: 1,
76
+ ttl: entryTtl,
77
+ };
78
+ this.cache.set(key, entry);
79
+ this.currentSize += size;
80
+ // Persist if enabled
81
+ if (this.options.persistent) {
82
+ this.saveToStorage();
83
+ }
84
+ }
85
+ /**
86
+ * Check if key exists
87
+ */
88
+ has(key) {
89
+ const entry = this.cache.get(key);
90
+ if (!entry)
91
+ return false;
92
+ // Check TTL
93
+ if (entry.ttl && Date.now() - entry.createdAt > entry.ttl) {
94
+ this.delete(key);
95
+ return false;
96
+ }
97
+ return true;
98
+ }
99
+ /**
100
+ * Delete entry
101
+ */
102
+ delete(key) {
103
+ const entry = this.cache.get(key);
104
+ if (entry) {
105
+ this.currentSize -= entry.size;
106
+ this.cache.delete(key);
107
+ if (this.options.persistent) {
108
+ this.saveToStorage();
109
+ }
110
+ return true;
111
+ }
112
+ return false;
113
+ }
114
+ /**
115
+ * Clear the cache
116
+ */
117
+ clear() {
118
+ this.cache.clear();
119
+ this.currentSize = 0;
120
+ this.hits = 0;
121
+ this.misses = 0;
122
+ if (this.options.persistent) {
123
+ this.clearStorage();
124
+ }
125
+ }
126
+ /**
127
+ * Get cache statistics
128
+ */
129
+ getStats() {
130
+ const total = this.hits + this.misses;
131
+ return {
132
+ entries: this.cache.size,
133
+ size: this.currentSize,
134
+ hits: this.hits,
135
+ misses: this.misses,
136
+ hitRate: total > 0 ? this.hits / total : 0,
137
+ };
138
+ }
139
+ /**
140
+ * Evict an entry based on strategy
141
+ */
142
+ evict() {
143
+ let keyToEvict = null;
144
+ switch (this.options.strategy) {
145
+ case 'lru':
146
+ keyToEvict = this.findLRU();
147
+ break;
148
+ case 'lfu':
149
+ keyToEvict = this.findLFU();
150
+ break;
151
+ case 'fifo':
152
+ keyToEvict = this.findOldest();
153
+ break;
154
+ case 'ttl':
155
+ keyToEvict = this.findExpired() ?? this.findOldest();
156
+ break;
157
+ }
158
+ if (keyToEvict) {
159
+ this.delete(keyToEvict);
160
+ }
161
+ }
162
+ /**
163
+ * Find least recently used entry
164
+ */
165
+ findLRU() {
166
+ let oldest = null;
167
+ let oldestTime = Infinity;
168
+ for (const [key, entry] of this.cache) {
169
+ if (entry.accessedAt < oldestTime) {
170
+ oldestTime = entry.accessedAt;
171
+ oldest = key;
172
+ }
173
+ }
174
+ return oldest;
175
+ }
176
+ /**
177
+ * Find least frequently used entry
178
+ */
179
+ findLFU() {
180
+ let lfu = null;
181
+ let minCount = Infinity;
182
+ for (const [key, entry] of this.cache) {
183
+ if (entry.accessCount < minCount) {
184
+ minCount = entry.accessCount;
185
+ lfu = key;
186
+ }
187
+ }
188
+ return lfu;
189
+ }
190
+ /**
191
+ * Find oldest entry (FIFO)
192
+ */
193
+ findOldest() {
194
+ let oldest = null;
195
+ let oldestTime = Infinity;
196
+ for (const [key, entry] of this.cache) {
197
+ if (entry.createdAt < oldestTime) {
198
+ oldestTime = entry.createdAt;
199
+ oldest = key;
200
+ }
201
+ }
202
+ return oldest;
203
+ }
204
+ /**
205
+ * Find expired entry
206
+ */
207
+ findExpired() {
208
+ const now = Date.now();
209
+ for (const [key, entry] of this.cache) {
210
+ if (entry.ttl && now - entry.createdAt > entry.ttl) {
211
+ return key;
212
+ }
213
+ }
214
+ return null;
215
+ }
216
+ /**
217
+ * Load cache from IndexedDB
218
+ */
219
+ async loadFromStorage() {
220
+ if (typeof indexedDB === 'undefined')
221
+ return;
222
+ try {
223
+ const db = await this.openDB();
224
+ const tx = db.transaction('cache', 'readonly');
225
+ const store = tx.objectStore('cache');
226
+ const request = store.getAll();
227
+ return new Promise((resolve, reject) => {
228
+ request.onsuccess = () => {
229
+ const entries = request.result;
230
+ for (const { key, entry } of entries) {
231
+ this.cache.set(key, entry);
232
+ this.currentSize += entry.size;
233
+ }
234
+ resolve();
235
+ };
236
+ request.onerror = () => reject(request.error);
237
+ });
238
+ }
239
+ catch {
240
+ // Ignore storage errors
241
+ }
242
+ }
243
+ /**
244
+ * Save cache to IndexedDB
245
+ */
246
+ async saveToStorage() {
247
+ if (typeof indexedDB === 'undefined')
248
+ return;
249
+ try {
250
+ const db = await this.openDB();
251
+ const tx = db.transaction('cache', 'readwrite');
252
+ const store = tx.objectStore('cache');
253
+ // Clear existing entries
254
+ store.clear();
255
+ // Add current entries
256
+ for (const [key, entry] of this.cache) {
257
+ store.put({ key, entry });
258
+ }
259
+ return new Promise((resolve, reject) => {
260
+ tx.oncomplete = () => resolve();
261
+ tx.onerror = () => reject(tx.error);
262
+ });
263
+ }
264
+ catch {
265
+ // Ignore storage errors
266
+ }
267
+ }
268
+ /**
269
+ * Clear IndexedDB storage
270
+ */
271
+ async clearStorage() {
272
+ if (typeof indexedDB === 'undefined')
273
+ return;
274
+ try {
275
+ const db = await this.openDB();
276
+ const tx = db.transaction('cache', 'readwrite');
277
+ const store = tx.objectStore('cache');
278
+ store.clear();
279
+ }
280
+ catch {
281
+ // Ignore storage errors
282
+ }
283
+ }
284
+ /**
285
+ * Open IndexedDB database
286
+ */
287
+ openDB() {
288
+ return new Promise((resolve, reject) => {
289
+ const request = indexedDB.open(this.options.name, 1);
290
+ request.onupgradeneeded = () => {
291
+ const db = request.result;
292
+ if (!db.objectStoreNames.contains('cache')) {
293
+ db.createObjectStore('cache', { keyPath: 'key' });
294
+ }
295
+ };
296
+ request.onsuccess = () => resolve(request.result);
297
+ request.onerror = () => reject(request.error);
298
+ });
299
+ }
300
+ }
301
+ // ============================================================================
302
+ // Inference Result Cache
303
+ // ============================================================================
304
+ /**
305
+ * InferenceCache - Cache for inference results
306
+ */
307
+ export class InferenceCache extends Cache {
308
+ /**
309
+ * Generate cache key from input
310
+ */
311
+ generateKey(modelId, input) {
312
+ // Create hash from input data
313
+ const inputArray = Array.isArray(input) ? input : Array.from(input);
314
+ const hash = this.hashArray(inputArray);
315
+ return `${modelId}:${hash}`;
316
+ }
317
+ /**
318
+ * Simple hash function for arrays
319
+ */
320
+ hashArray(arr) {
321
+ let hash = 0;
322
+ const sample = arr.length > 100
323
+ ? arr.filter((_, i) => i % Math.floor(arr.length / 100) === 0)
324
+ : arr;
325
+ for (let i = 0; i < sample.length; i++) {
326
+ const value = sample[i] ?? 0;
327
+ hash = ((hash << 5) - hash) + (value * 1000 | 0);
328
+ hash |= 0;
329
+ }
330
+ return hash.toString(36);
331
+ }
332
+ }
333
+ // ============================================================================
334
+ // Model Cache
335
+ // ============================================================================
336
+ /**
337
+ * Model download cache using Cache API
338
+ */
339
+ export class ModelDownloadCache {
340
+ cacheName;
341
+ cache = null;
342
+ constructor(cacheName = 'edgeflow-models') {
343
+ this.cacheName = cacheName;
344
+ }
345
+ /**
346
+ * Initialize cache
347
+ */
348
+ async ensureCache() {
349
+ if (!this.cache) {
350
+ if (typeof caches === 'undefined') {
351
+ throw new Error('Cache API is not available');
352
+ }
353
+ this.cache = await caches.open(this.cacheName);
354
+ }
355
+ return this.cache;
356
+ }
357
+ /**
358
+ * Get cached response
359
+ */
360
+ async get(url) {
361
+ try {
362
+ const cache = await this.ensureCache();
363
+ return await cache.match(url) ?? undefined;
364
+ }
365
+ catch {
366
+ return undefined;
367
+ }
368
+ }
369
+ /**
370
+ * Store response in cache
371
+ */
372
+ async put(url, response) {
373
+ try {
374
+ const cache = await this.ensureCache();
375
+ await cache.put(url, response.clone());
376
+ }
377
+ catch {
378
+ // Ignore cache errors
379
+ }
380
+ }
381
+ /**
382
+ * Delete cached response
383
+ */
384
+ async delete(url) {
385
+ try {
386
+ const cache = await this.ensureCache();
387
+ return await cache.delete(url);
388
+ }
389
+ catch {
390
+ return false;
391
+ }
392
+ }
393
+ /**
394
+ * Clear all cached models
395
+ */
396
+ async clear() {
397
+ try {
398
+ await caches.delete(this.cacheName);
399
+ this.cache = null;
400
+ }
401
+ catch {
402
+ // Ignore cache errors
403
+ }
404
+ }
405
+ /**
406
+ * Get all cached URLs
407
+ */
408
+ async keys() {
409
+ try {
410
+ const cache = await this.ensureCache();
411
+ const requests = await cache.keys();
412
+ return requests.map(r => r.url);
413
+ }
414
+ catch {
415
+ return [];
416
+ }
417
+ }
418
+ }
419
+ // ============================================================================
420
+ // Factory Functions
421
+ // ============================================================================
422
+ /**
423
+ * Create a cache with common presets
424
+ */
425
+ export function createCache(preset = 'medium', options = {}) {
426
+ const presets = {
427
+ small: {
428
+ maxSize: 10 * 1024 * 1024, // 10MB
429
+ maxEntries: 100,
430
+ },
431
+ medium: {
432
+ maxSize: 100 * 1024 * 1024, // 100MB
433
+ maxEntries: 500,
434
+ },
435
+ large: {
436
+ maxSize: 500 * 1024 * 1024, // 500MB
437
+ maxEntries: 2000,
438
+ },
439
+ custom: {},
440
+ };
441
+ return new Cache({ ...presets[preset], ...options });
442
+ }
443
+ //# sourceMappingURL=cache.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cache.js","sourceRoot":"","sources":["../../src/utils/cache.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * edgeFlow.js - Utilities Exports
3
+ */
4
+ export { Tokenizer, createBasicTokenizer, loadTokenizer, type TokenizerModel, type TokenizerOptions, } from './tokenizer.js';
5
+ export { ImagePreprocessor, AudioPreprocessor, preprocessText, createImagePreprocessor, createAudioPreprocessor, type ImagePreprocessorOptions, type AudioPreprocessorOptions, type TextPreprocessorOptions, } from './preprocessor.js';
6
+ export { Cache, InferenceCache, ModelDownloadCache, createCache, type CacheStrategy, type CacheOptions, type CacheStats, } from './cache.js';
7
+ export { loadModelData, preloadModel, preloadModels, isModelCached, getCachedModel, deleteCachedModel, clearModelCache, getModelCacheStats, getPreloadStatus, cancelPreload, getPreloadedModel, type DownloadProgress, type ModelLoaderOptions, type PreloadOptions, } from './model-loader.js';
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EACL,SAAS,EACT,oBAAoB,EACpB,aAAa,EACb,KAAK,cAAc,EACnB,KAAK,gBAAgB,GACtB,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EACjB,cAAc,EACd,uBAAuB,EACvB,uBAAuB,EACvB,KAAK,wBAAwB,EAC7B,KAAK,wBAAwB,EAC7B,KAAK,uBAAuB,GAC7B,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EACL,KAAK,EACL,cAAc,EACd,kBAAkB,EAClB,WAAW,EACX,KAAK,aAAa,EAClB,KAAK,YAAY,EACjB,KAAK,UAAU,GAChB,MAAM,YAAY,CAAC;AAGpB,OAAO,EACL,aAAa,EACb,YAAY,EACZ,aAAa,EACb,aAAa,EACb,cAAc,EACd,iBAAiB,EACjB,eAAe,EACf,kBAAkB,EAClB,gBAAgB,EAChB,aAAa,EACb,iBAAiB,EACjB,KAAK,gBAAgB,EACrB,KAAK,kBAAkB,EACvB,KAAK,cAAc,GACpB,MAAM,mBAAmB,CAAC"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * edgeFlow.js - Utilities Exports
3
+ */
4
+ // Tokenizer
5
+ export { Tokenizer, createBasicTokenizer, loadTokenizer, } from './tokenizer.js';
6
+ // Preprocessor
7
+ export { ImagePreprocessor, AudioPreprocessor, preprocessText, createImagePreprocessor, createAudioPreprocessor, } from './preprocessor.js';
8
+ // Cache
9
+ export { Cache, InferenceCache, ModelDownloadCache, createCache, } from './cache.js';
10
+ // Model Loader (Preloading, Sharding, Resume, Caching)
11
+ export { loadModelData, preloadModel, preloadModels, isModelCached, getCachedModel, deleteCachedModel, clearModelCache, getModelCacheStats, getPreloadStatus, cancelPreload, getPreloadedModel, } from './model-loader.js';
12
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,YAAY;AACZ,OAAO,EACL,SAAS,EACT,oBAAoB,EACpB,aAAa,GAGd,MAAM,gBAAgB,CAAC;AAExB,eAAe;AACf,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EACjB,cAAc,EACd,uBAAuB,EACvB,uBAAuB,GAIxB,MAAM,mBAAmB,CAAC;AAE3B,QAAQ;AACR,OAAO,EACL,KAAK,EACL,cAAc,EACd,kBAAkB,EAClB,WAAW,GAIZ,MAAM,YAAY,CAAC;AAEpB,uDAAuD;AACvD,OAAO,EACL,aAAa,EACb,YAAY,EACZ,aAAa,EACb,aAAa,EACb,cAAc,EACd,iBAAiB,EACjB,eAAe,EACf,kBAAkB,EAClB,gBAAgB,EAChB,aAAa,EACb,iBAAiB,GAIlB,MAAM,mBAAmB,CAAC"}