edgeflowjs 0.1.0 → 0.2.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 (152) hide show
  1. package/README.md +200 -66
  2. package/dist/backends/index.d.ts +9 -2
  3. package/dist/backends/index.d.ts.map +1 -1
  4. package/dist/backends/index.js +13 -13
  5. package/dist/backends/index.js.map +1 -1
  6. package/dist/backends/onnx.d.ts +11 -4
  7. package/dist/backends/onnx.d.ts.map +1 -1
  8. package/dist/backends/onnx.js +97 -78
  9. package/dist/backends/onnx.js.map +1 -1
  10. package/dist/backends/transformers-adapter.d.ts +99 -0
  11. package/dist/backends/transformers-adapter.d.ts.map +1 -0
  12. package/dist/backends/transformers-adapter.js +171 -0
  13. package/dist/backends/transformers-adapter.js.map +1 -0
  14. package/dist/backends/webgpu.d.ts +7 -5
  15. package/dist/backends/webgpu.d.ts.map +1 -1
  16. package/dist/backends/webgpu.js +7 -5
  17. package/dist/backends/webgpu.js.map +1 -1
  18. package/dist/backends/webnn.d.ts +6 -5
  19. package/dist/backends/webnn.d.ts.map +1 -1
  20. package/dist/backends/webnn.js +6 -5
  21. package/dist/backends/webnn.js.map +1 -1
  22. package/dist/core/composer.d.ts +118 -0
  23. package/dist/core/composer.d.ts.map +1 -0
  24. package/dist/core/composer.js +163 -0
  25. package/dist/core/composer.js.map +1 -0
  26. package/dist/core/device-profiler.d.ts +75 -0
  27. package/dist/core/device-profiler.d.ts.map +1 -0
  28. package/dist/core/device-profiler.js +131 -0
  29. package/dist/core/device-profiler.js.map +1 -0
  30. package/dist/core/index.d.ts +4 -0
  31. package/dist/core/index.d.ts.map +1 -1
  32. package/dist/core/index.js +8 -0
  33. package/dist/core/index.js.map +1 -1
  34. package/dist/core/memory.d.ts +22 -2
  35. package/dist/core/memory.d.ts.map +1 -1
  36. package/dist/core/memory.js +49 -13
  37. package/dist/core/memory.js.map +1 -1
  38. package/dist/core/plugin.d.ts +100 -0
  39. package/dist/core/plugin.d.ts.map +1 -0
  40. package/dist/core/plugin.js +106 -0
  41. package/dist/core/plugin.js.map +1 -0
  42. package/dist/core/runtime.d.ts +4 -0
  43. package/dist/core/runtime.d.ts.map +1 -1
  44. package/dist/core/runtime.js +18 -0
  45. package/dist/core/runtime.js.map +1 -1
  46. package/dist/core/scheduler.d.ts +17 -0
  47. package/dist/core/scheduler.d.ts.map +1 -1
  48. package/dist/core/scheduler.js +101 -3
  49. package/dist/core/scheduler.js.map +1 -1
  50. package/dist/core/types.d.ts +14 -0
  51. package/dist/core/types.d.ts.map +1 -1
  52. package/dist/core/types.js.map +1 -1
  53. package/dist/core/worker.d.ts +202 -0
  54. package/dist/core/worker.d.ts.map +1 -0
  55. package/dist/core/worker.js +477 -0
  56. package/dist/core/worker.js.map +1 -0
  57. package/dist/edgeflow.browser.js +9770 -4383
  58. package/dist/edgeflow.browser.js.map +4 -4
  59. package/dist/edgeflow.browser.min.js +435 -5
  60. package/dist/edgeflow.browser.min.js.map +4 -4
  61. package/dist/index.d.ts +7 -4
  62. package/dist/index.d.ts.map +1 -1
  63. package/dist/index.js +28 -10
  64. package/dist/index.js.map +1 -1
  65. package/dist/pipelines/automatic-speech-recognition.d.ts +63 -0
  66. package/dist/pipelines/automatic-speech-recognition.d.ts.map +1 -0
  67. package/dist/pipelines/automatic-speech-recognition.js +269 -0
  68. package/dist/pipelines/automatic-speech-recognition.js.map +1 -0
  69. package/dist/pipelines/base.d.ts +6 -1
  70. package/dist/pipelines/base.d.ts.map +1 -1
  71. package/dist/pipelines/base.js +12 -2
  72. package/dist/pipelines/base.js.map +1 -1
  73. package/dist/pipelines/feature-extraction.d.ts +5 -40
  74. package/dist/pipelines/feature-extraction.d.ts.map +1 -1
  75. package/dist/pipelines/feature-extraction.js +44 -63
  76. package/dist/pipelines/feature-extraction.js.map +1 -1
  77. package/dist/pipelines/image-classification.d.ts +4 -36
  78. package/dist/pipelines/image-classification.d.ts.map +1 -1
  79. package/dist/pipelines/image-classification.js +22 -60
  80. package/dist/pipelines/image-classification.js.map +1 -1
  81. package/dist/pipelines/image-segmentation.d.ts +221 -0
  82. package/dist/pipelines/image-segmentation.d.ts.map +1 -0
  83. package/dist/pipelines/image-segmentation.js +535 -0
  84. package/dist/pipelines/image-segmentation.js.map +1 -0
  85. package/dist/pipelines/index.d.ts +18 -0
  86. package/dist/pipelines/index.d.ts.map +1 -1
  87. package/dist/pipelines/index.js +51 -2
  88. package/dist/pipelines/index.js.map +1 -1
  89. package/dist/pipelines/object-detection.d.ts +44 -0
  90. package/dist/pipelines/object-detection.d.ts.map +1 -0
  91. package/dist/pipelines/object-detection.js +218 -0
  92. package/dist/pipelines/object-detection.js.map +1 -0
  93. package/dist/pipelines/question-answering.d.ts +41 -0
  94. package/dist/pipelines/question-answering.d.ts.map +1 -0
  95. package/dist/pipelines/question-answering.js +164 -0
  96. package/dist/pipelines/question-answering.js.map +1 -0
  97. package/dist/pipelines/text-classification.d.ts +3 -39
  98. package/dist/pipelines/text-classification.d.ts.map +1 -1
  99. package/dist/pipelines/text-classification.js +29 -67
  100. package/dist/pipelines/text-classification.js.map +1 -1
  101. package/dist/pipelines/text-generation.d.ts +281 -0
  102. package/dist/pipelines/text-generation.d.ts.map +1 -0
  103. package/dist/pipelines/text-generation.js +766 -0
  104. package/dist/pipelines/text-generation.js.map +1 -0
  105. package/dist/pipelines/zero-shot-classification.d.ts +45 -0
  106. package/dist/pipelines/zero-shot-classification.d.ts.map +1 -0
  107. package/dist/pipelines/zero-shot-classification.js +140 -0
  108. package/dist/pipelines/zero-shot-classification.js.map +1 -0
  109. package/dist/tools/benchmark.d.ts +92 -0
  110. package/dist/tools/benchmark.d.ts.map +1 -0
  111. package/dist/tools/benchmark.js +213 -0
  112. package/dist/tools/benchmark.js.map +1 -0
  113. package/dist/tools/debugger.d.ts +258 -0
  114. package/dist/tools/debugger.d.ts.map +1 -0
  115. package/dist/tools/debugger.js +624 -0
  116. package/dist/tools/debugger.js.map +1 -0
  117. package/dist/tools/index.d.ts +8 -0
  118. package/dist/tools/index.d.ts.map +1 -1
  119. package/dist/tools/index.js +16 -0
  120. package/dist/tools/index.js.map +1 -1
  121. package/dist/tools/monitor.d.ts +284 -0
  122. package/dist/tools/monitor.d.ts.map +1 -0
  123. package/dist/tools/monitor.js +921 -0
  124. package/dist/tools/monitor.js.map +1 -0
  125. package/dist/tools/quantization.d.ts +235 -0
  126. package/dist/tools/quantization.d.ts.map +1 -0
  127. package/dist/tools/quantization.js +830 -0
  128. package/dist/tools/quantization.js.map +1 -0
  129. package/dist/utils/hub.d.ts +162 -0
  130. package/dist/utils/hub.d.ts.map +1 -0
  131. package/dist/utils/hub.js +311 -0
  132. package/dist/utils/hub.js.map +1 -0
  133. package/dist/utils/index.d.ts +3 -1
  134. package/dist/utils/index.d.ts.map +1 -1
  135. package/dist/utils/index.js +5 -1
  136. package/dist/utils/index.js.map +1 -1
  137. package/dist/utils/model-loader.d.ts.map +1 -1
  138. package/dist/utils/model-loader.js +106 -30
  139. package/dist/utils/model-loader.js.map +1 -1
  140. package/dist/utils/offline.d.ts +147 -0
  141. package/dist/utils/offline.d.ts.map +1 -0
  142. package/dist/utils/offline.js +405 -0
  143. package/dist/utils/offline.js.map +1 -0
  144. package/dist/utils/preprocessor.d.ts +82 -6
  145. package/dist/utils/preprocessor.d.ts.map +1 -1
  146. package/dist/utils/preprocessor.js +278 -21
  147. package/dist/utils/preprocessor.js.map +1 -1
  148. package/dist/utils/tokenizer.d.ts +197 -72
  149. package/dist/utils/tokenizer.d.ts.map +1 -1
  150. package/dist/utils/tokenizer.js +558 -274
  151. package/dist/utils/tokenizer.js.map +1 -1
  152. package/package.json +26 -11
@@ -2,69 +2,36 @@
2
2
  * edgeFlow.js - ONNX Runtime Backend
3
3
  *
4
4
  * Uses onnxruntime-web for real ONNX model inference.
5
- * Automatically loads ONNX Runtime from CDN when needed.
5
+ * onnxruntime-web is an optional peer dependency loaded dynamically.
6
6
  */
7
7
  import { EdgeFlowError, ErrorCodes, } from '../core/types.js';
8
8
  import { LoadedModelImpl } from '../core/runtime.js';
9
9
  import { EdgeFlowTensor } from '../core/tensor.js';
10
10
  import { getMemoryManager } from '../core/memory.js';
11
- // ONNX Runtime CDN configuration
12
- const ONNX_VERSION = '1.17.0';
13
- const ONNX_CDN_BASE = `https://cdn.jsdelivr.net/npm/onnxruntime-web@${ONNX_VERSION}/dist/`;
14
- const ONNX_SCRIPT_URL = `${ONNX_CDN_BASE}ort.min.js`;
15
- // Global ONNX Runtime reference (loaded dynamically)
11
+ // Lazy-loaded onnxruntime-web module
12
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
16
13
  let ort = null;
17
- let ortLoadPromise = null;
18
- /**
19
- * Dynamically load ONNX Runtime from CDN
20
- */
21
- async function loadONNXRuntime() {
22
- // Return cached instance
14
+ async function getOrt() {
23
15
  if (ort)
24
16
  return ort;
25
- // Return existing load promise to avoid duplicate loading
26
- if (ortLoadPromise)
27
- return ortLoadPromise;
28
- ortLoadPromise = new Promise((resolve, reject) => {
29
- // Check if already loaded globally (e.g., via script tag)
30
- if (typeof window !== 'undefined' && window.ort) {
31
- ort = window.ort;
32
- // Configure WASM paths
33
- ort.env.wasm.wasmPaths = ONNX_CDN_BASE;
34
- resolve(ort);
35
- return;
36
- }
37
- // Dynamically load the script
38
- const script = document.createElement('script');
39
- script.src = ONNX_SCRIPT_URL;
40
- script.async = true;
41
- script.onload = () => {
42
- if (window.ort) {
43
- ort = window.ort;
44
- // Configure WASM paths
45
- ort.env.wasm.wasmPaths = ONNX_CDN_BASE;
46
- console.log(`✓ ONNX Runtime v${ONNX_VERSION} loaded from CDN`);
47
- resolve(ort);
48
- }
49
- else {
50
- reject(new Error('ONNX Runtime loaded but ort global not found'));
51
- }
52
- };
53
- script.onerror = () => {
54
- reject(new Error(`Failed to load ONNX Runtime from ${ONNX_SCRIPT_URL}`));
55
- };
56
- document.head.appendChild(script);
57
- });
58
- return ortLoadPromise;
17
+ try {
18
+ // Import the WASM-only sub-path so Vite rewrites the bare specifier
19
+ // to ort.wasm.bundle.min.mjs. This avoids loading the JSEP/WebGPU
20
+ // worker module (jsep.mjs) that ort.bundle.min.mjs eagerly fetches
21
+ // whenever navigator.gpu exists which causes a 404 in dev servers
22
+ // that restrict ES module imports from /public.
23
+ ort = await import('onnxruntime-web/wasm');
24
+ return ort;
25
+ }
26
+ catch {
27
+ return null;
28
+ }
59
29
  }
60
30
  /**
61
- * Get ONNX Runtime instance (loads if needed)
31
+ * Check whether onnxruntime-web is importable.
62
32
  */
63
- async function getOrt() {
64
- if (!ort) {
65
- ort = await loadONNXRuntime();
66
- }
67
- return ort;
33
+ export async function isOnnxAvailable() {
34
+ return (await getOrt()) != null;
68
35
  }
69
36
  const sessionStore = new Map();
70
37
  // ============================================================================
@@ -72,7 +39,6 @@ const sessionStore = new Map();
72
39
  // ============================================================================
73
40
  /**
74
41
  * ONNXRuntime - Real ONNX model inference using onnxruntime-web
75
- * Automatically loads ONNX Runtime from CDN when first used.
76
42
  */
77
43
  export class ONNXRuntime {
78
44
  name = 'wasm'; // Register as wasm since it's the fallback
@@ -89,24 +55,30 @@ export class ONNXRuntime {
89
55
  };
90
56
  }
91
57
  /**
92
- * Check if ONNX Runtime is available (always true - will be loaded from CDN)
58
+ * Check if ONNX Runtime is available (peer dependency installed)
93
59
  */
94
60
  async isAvailable() {
95
- // Always return true - we'll load ONNX Runtime from CDN when needed
96
- return true;
61
+ return isOnnxAvailable();
97
62
  }
98
63
  /**
99
- * Initialize the ONNX runtime (loads from CDN if needed)
64
+ * Initialize the ONNX runtime
100
65
  */
101
66
  async initialize() {
102
67
  if (this.initialized)
103
68
  return;
104
- // Load ONNX Runtime from CDN
105
- const ortInstance = await getOrt();
106
- // Configure WASM paths
107
- ortInstance.env.wasm.wasmPaths = ONNX_CDN_BASE;
108
- // Use WASM execution provider (most compatible)
109
- this.executionProvider = 'wasm';
69
+ const ortModule = await getOrt();
70
+ if (!ortModule) {
71
+ throw new EdgeFlowError('onnxruntime-web is not installed. Install it with: npm install onnxruntime-web', ErrorCodes.RUNTIME_NOT_AVAILABLE);
72
+ }
73
+ // Configure WASM backend for browser use.
74
+ // numThreads=1 disables multi-threading so ort only needs the plain
75
+ // .wasm binary — the worker .mjs file is never requested, which avoids
76
+ // Vite's restriction on importing files from /public as ES modules.
77
+ // Consumers should copy onnxruntime-web/dist/*.wasm to public/ort/.
78
+ if (typeof window !== 'undefined' && ortModule.env?.wasm) {
79
+ ortModule.env.wasm.wasmPaths = '/ort/';
80
+ ortModule.env.wasm.numThreads = 1;
81
+ }
110
82
  this.initialized = true;
111
83
  }
112
84
  /**
@@ -116,16 +88,20 @@ export class ONNXRuntime {
116
88
  if (!this.initialized) {
117
89
  await this.initialize();
118
90
  }
119
- const ortInstance = await getOrt();
120
91
  try {
121
- // Create session options
92
+ const ortModule = await getOrt();
93
+ if (!ortModule) {
94
+ throw new Error('onnxruntime-web is not installed');
95
+ }
96
+ // WASM-only execution provider — WebGPU acceleration can be added
97
+ // later via the dedicated WebGPURuntime backend.
122
98
  const sessionOptions = {
123
- executionProviders: [this.executionProvider],
99
+ executionProviders: ['wasm'],
124
100
  graphOptimizationLevel: 'all',
125
101
  };
126
- // Create inference session (convert ArrayBuffer to Uint8Array)
127
102
  const modelBytes = new Uint8Array(modelData);
128
- const session = await ortInstance.InferenceSession.create(modelBytes, sessionOptions);
103
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
104
+ const session = await ortModule.InferenceSession.create(modelBytes, sessionOptions);
129
105
  // Get input/output names
130
106
  const inputNames = session.inputNames;
131
107
  const outputNames = session.outputNames;
@@ -141,12 +117,12 @@ export class ONNXRuntime {
141
117
  const metadata = {
142
118
  name: options.metadata?.name ?? 'onnx-model',
143
119
  version: '1.0.0',
144
- inputs: inputNames.map(name => ({
120
+ inputs: inputNames.map((name) => ({
145
121
  name,
146
122
  dtype: 'float32',
147
123
  shape: [-1], // Dynamic shape
148
124
  })),
149
- outputs: outputNames.map(name => ({
125
+ outputs: outputNames.map((name) => ({
150
126
  name,
151
127
  dtype: 'float32',
152
128
  shape: [-1],
@@ -175,35 +151,31 @@ export class ONNXRuntime {
175
151
  if (!sessionData) {
176
152
  throw new EdgeFlowError(`ONNX session not found for model ${model.id}`, ErrorCodes.MODEL_NOT_LOADED, { modelId: model.id });
177
153
  }
178
- const ortInstance = await getOrt();
179
154
  const { session, inputNames, outputNames } = sessionData;
180
155
  try {
181
- // Prepare input feeds
156
+ const ortModule = await getOrt();
182
157
  const feeds = {};
183
158
  for (let i = 0; i < Math.min(inputs.length, inputNames.length); i++) {
184
159
  const inputName = inputNames[i];
185
160
  const inputTensor = inputs[i];
186
161
  if (inputName && inputTensor) {
187
- // Convert to ONNX tensor with correct dtype
188
162
  const dtype = inputTensor.dtype;
189
163
  let ortTensor;
190
164
  if (dtype === 'int64') {
191
- // Get raw BigInt64Array data directly
192
165
  const data = inputTensor.data;
193
- ortTensor = new ortInstance.Tensor('int64', data, inputTensor.shape);
166
+ ortTensor = new ortModule.Tensor('int64', data, inputTensor.shape);
194
167
  }
195
168
  else if (dtype === 'int32') {
196
169
  const data = inputTensor.data;
197
- ortTensor = new ortInstance.Tensor('int32', data, inputTensor.shape);
170
+ ortTensor = new ortModule.Tensor('int32', data, inputTensor.shape);
198
171
  }
199
172
  else {
200
173
  const data = inputTensor.toFloat32Array();
201
- ortTensor = new ortInstance.Tensor('float32', data, inputTensor.shape);
174
+ ortTensor = new ortModule.Tensor('float32', data, inputTensor.shape);
202
175
  }
203
176
  feeds[inputName] = ortTensor;
204
177
  }
205
178
  }
206
- // Run inference
207
179
  const results = await session.run(feeds);
208
180
  // Convert outputs to EdgeFlowTensor
209
181
  const outputs = [];
@@ -221,6 +193,53 @@ export class ONNXRuntime {
221
193
  throw new EdgeFlowError(`ONNX inference failed: ${error instanceof Error ? error.message : String(error)}`, ErrorCodes.INFERENCE_FAILED, { modelId: model.id, error });
222
194
  }
223
195
  }
196
+ /**
197
+ * Run inference with named inputs
198
+ */
199
+ async runNamed(model, namedInputs) {
200
+ const sessionData = sessionStore.get(model.id);
201
+ if (!sessionData) {
202
+ throw new EdgeFlowError(`ONNX session not found for model ${model.id}`, ErrorCodes.MODEL_NOT_LOADED, { modelId: model.id });
203
+ }
204
+ const { session, inputNames, outputNames } = sessionData;
205
+ try {
206
+ const ortModule = await getOrt();
207
+ const feeds = {};
208
+ for (const [inputName, inputTensor] of namedInputs) {
209
+ const tensor = inputTensor;
210
+ const dtype = tensor.dtype;
211
+ let ortTensor;
212
+ if (dtype === 'int64') {
213
+ const data = tensor.data;
214
+ ortTensor = new ortModule.Tensor('int64', data, tensor.shape);
215
+ }
216
+ else if (dtype === 'int32') {
217
+ const data = tensor.data;
218
+ ortTensor = new ortModule.Tensor('int32', data, tensor.shape);
219
+ }
220
+ else {
221
+ const data = tensor.toFloat32Array();
222
+ ortTensor = new ortModule.Tensor('float32', data, tensor.shape);
223
+ }
224
+ feeds[inputName] = ortTensor;
225
+ }
226
+ const results = await session.run(feeds);
227
+ // Convert outputs to EdgeFlowTensor
228
+ const outputs = [];
229
+ for (const outputName of outputNames) {
230
+ const ortTensor = results[outputName];
231
+ if (ortTensor) {
232
+ const data = ortTensor.data;
233
+ const shape = Array.from(ortTensor.dims).map(d => Number(d));
234
+ outputs.push(new EdgeFlowTensor(new Float32Array(data), shape, 'float32'));
235
+ }
236
+ }
237
+ return outputs;
238
+ }
239
+ catch (error) {
240
+ throw new EdgeFlowError(`ONNX inference failed: ${error instanceof Error ? error.message : String(error)}`, ErrorCodes.INFERENCE_FAILED, { modelId: model.id, expectedInputs: inputNames, providedInputs: Array.from(namedInputs.keys()), error });
241
+ }
242
+ }
224
243
  /**
225
244
  * Unload a model
226
245
  */
@@ -1 +1 @@
1
- {"version":3,"file":"onnx.js","sourceRoot":"","sources":["../../src/backends/onnx.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"onnx.js","sourceRoot":"","sources":["../../src/backends/onnx.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,99 @@
1
+ /**
2
+ * edgeFlow.js - transformers.js Adapter Backend
3
+ *
4
+ * Wraps transformers.js (by Hugging Face) as an inference backend, giving
5
+ * users access to 1000+ HuggingFace models while adding edgeFlow.js's
6
+ * orchestration layer (scheduling, caching, memory management, workers).
7
+ *
8
+ * @example
9
+ * ```typescript
10
+ * import { useTransformersBackend } from 'edgeflowjs';
11
+ * import { pipeline as tfPipeline } from '@xenova/transformers';
12
+ *
13
+ * // Register the adapter
14
+ * useTransformersBackend();
15
+ *
16
+ * // Now use edgeFlow.js pipeline API — inference delegates to transformers.js
17
+ * const classifier = await pipeline('text-classification', {
18
+ * model: 'Xenova/distilbert-base-uncased-finetuned-sst-2-english',
19
+ * });
20
+ *
21
+ * // edgeFlow.js handles scheduling, batching, memory, caching
22
+ * const results = await classifier.runBatch(thousandsOfTexts);
23
+ * ```
24
+ */
25
+ import { Runtime, RuntimeType, RuntimeCapabilities, LoadedModel, ModelLoadOptions, Tensor } from '../core/types.js';
26
+ /**
27
+ * Minimal interface for a transformers.js pipeline instance.
28
+ * We avoid importing @xenova/transformers directly so edgeFlow.js
29
+ * does not add it as a hard dependency.
30
+ */
31
+ interface TransformersPipelineInstance {
32
+ (input: unknown, options?: unknown): Promise<unknown>;
33
+ dispose?: () => Promise<void> | void;
34
+ }
35
+ /**
36
+ * A factory that creates a transformers.js pipeline.
37
+ * Users pass this so we don't hard-depend on the library.
38
+ */
39
+ export type TransformersPipelineFactory = (task: string, model?: string, options?: Record<string, unknown>) => Promise<TransformersPipelineInstance>;
40
+ /**
41
+ * Options for configuring the transformers.js adapter.
42
+ */
43
+ export interface TransformersAdapterOptions {
44
+ /** The pipeline factory from transformers.js (e.g. the `pipeline` function) */
45
+ pipelineFactory: TransformersPipelineFactory;
46
+ /** Default device ('webgpu' | 'wasm' | 'cpu') — passed to transformers.js */
47
+ device?: string;
48
+ /** Default dtype ('fp32' | 'fp16' | 'q8' | 'q4') */
49
+ dtype?: string;
50
+ /** Cache directory (browser IndexedDB path) */
51
+ cacheDir?: string;
52
+ }
53
+ export declare class TransformersAdapterRuntime implements Runtime {
54
+ readonly name: RuntimeType;
55
+ get capabilities(): RuntimeCapabilities;
56
+ isAvailable(): Promise<boolean>;
57
+ initialize(): Promise<void>;
58
+ loadModel(modelData: ArrayBuffer, options?: ModelLoadOptions): Promise<LoadedModel>;
59
+ /**
60
+ * Load a transformers.js pipeline by task + model name
61
+ * (called by the higher-level adapter pipeline, not via the
62
+ * standard loadModel path).
63
+ */
64
+ loadPipeline(task: string, model: string, pipelineOptions?: Record<string, unknown>): Promise<string>;
65
+ /**
66
+ * Run inference by passing the raw input to the transformers.js pipeline.
67
+ * The result is returned as a single EdgeFlowTensor wrapping the JSON-encoded output
68
+ * (since transformers.js returns task-specific objects, not raw tensors).
69
+ */
70
+ run(model: LoadedModel, inputs: Tensor[]): Promise<Tensor[]>;
71
+ /**
72
+ * High-level: run the transformers.js pipeline directly with arbitrary input.
73
+ * Returns the raw result object (not a tensor).
74
+ */
75
+ runDirect(modelId: string, input: unknown, options?: Record<string, unknown>): Promise<unknown>;
76
+ dispose(): void;
77
+ }
78
+ /**
79
+ * Register the transformers.js adapter as the default inference backend.
80
+ *
81
+ * @example
82
+ * ```typescript
83
+ * import { pipeline } from '@xenova/transformers';
84
+ * import { useTransformersBackend } from 'edgeflowjs';
85
+ *
86
+ * useTransformersBackend({
87
+ * pipelineFactory: pipeline,
88
+ * device: 'webgpu',
89
+ * dtype: 'fp16',
90
+ * });
91
+ * ```
92
+ */
93
+ export declare function useTransformersBackend(options: TransformersAdapterOptions): void;
94
+ /**
95
+ * Get the adapter runtime instance (for advanced use).
96
+ */
97
+ export declare function getTransformersAdapter(): TransformersAdapterRuntime | null;
98
+ export {};
99
+ //# sourceMappingURL=transformers-adapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transformers-adapter.d.ts","sourceRoot":"","sources":["../../src/backends/transformers-adapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,EACL,OAAO,EACP,WAAW,EACX,mBAAmB,EACnB,WAAW,EACX,gBAAgB,EAEhB,MAAM,EAGP,MAAM,kBAAkB,CAAC;AAU1B;;;;GAIG;AACH,UAAU,4BAA4B;IACpC,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACtD,OAAO,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;CACtC;AAED;;;GAGG;AACH,MAAM,MAAM,2BAA2B,GAAG,CACxC,IAAI,EAAE,MAAM,EACZ,KAAK,CAAC,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAC9B,OAAO,CAAC,4BAA4B,CAAC,CAAC;AAE3C;;GAEG;AACH,MAAM,WAAW,0BAA0B;IACzC,+EAA+E;IAC/E,eAAe,EAAE,2BAA2B,CAAC;IAC7C,6EAA6E;IAC7E,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,oDAAoD;IACpD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,+CAA+C;IAC/C,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAkBD,qBAAa,0BAA2B,YAAW,OAAO;IACxD,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAU;IAEpC,IAAI,YAAY,IAAI,mBAAmB,CAStC;IAEK,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAI/B,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAU3B,SAAS,CACb,SAAS,EAAE,WAAW,EACtB,OAAO,GAAE,gBAAqB,GAC7B,OAAO,CAAC,WAAW,CAAC;IA6BvB;;;;OAIG;IACG,YAAY,CAChB,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EACb,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACxC,OAAO,CAAC,MAAM,CAAC;IAmBlB;;;;OAIG;IACG,GAAG,CAAC,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAqBlE;;;OAGG;IACG,SAAS,CACb,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,OAAO,EACd,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAChC,OAAO,CAAC,OAAO,CAAC;IAWnB,OAAO,IAAI,IAAI;CAQhB;AAQD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,0BAA0B,GAAG,IAAI,CAIhF;AAED;;GAEG;AACH,wBAAgB,sBAAsB,IAAI,0BAA0B,GAAG,IAAI,CAE1E"}
@@ -0,0 +1,171 @@
1
+ /**
2
+ * edgeFlow.js - transformers.js Adapter Backend
3
+ *
4
+ * Wraps transformers.js (by Hugging Face) as an inference backend, giving
5
+ * users access to 1000+ HuggingFace models while adding edgeFlow.js's
6
+ * orchestration layer (scheduling, caching, memory management, workers).
7
+ *
8
+ * @example
9
+ * ```typescript
10
+ * import { useTransformersBackend } from 'edgeflowjs';
11
+ * import { pipeline as tfPipeline } from '@xenova/transformers';
12
+ *
13
+ * // Register the adapter
14
+ * useTransformersBackend();
15
+ *
16
+ * // Now use edgeFlow.js pipeline API — inference delegates to transformers.js
17
+ * const classifier = await pipeline('text-classification', {
18
+ * model: 'Xenova/distilbert-base-uncased-finetuned-sst-2-english',
19
+ * });
20
+ *
21
+ * // edgeFlow.js handles scheduling, batching, memory, caching
22
+ * const results = await classifier.runBatch(thousandsOfTexts);
23
+ * ```
24
+ */
25
+ import { EdgeFlowError, ErrorCodes, } from '../core/types.js';
26
+ import { LoadedModelImpl } from '../core/runtime.js';
27
+ import { EdgeFlowTensor } from '../core/tensor.js';
28
+ import { getMemoryManager } from '../core/memory.js';
29
+ import { registerRuntime } from '../core/runtime.js';
30
+ // ---------------------------------------------------------------------------
31
+ // Session store: maps model IDs to transformers.js pipeline instances
32
+ // ---------------------------------------------------------------------------
33
+ const sessionStore = new Map();
34
+ let adapterOptions = null;
35
+ // ---------------------------------------------------------------------------
36
+ // Runtime implementation
37
+ // ---------------------------------------------------------------------------
38
+ export class TransformersAdapterRuntime {
39
+ name = 'wasm'; // registers under the wasm slot
40
+ get capabilities() {
41
+ return {
42
+ concurrency: true,
43
+ quantization: true,
44
+ float16: true,
45
+ dynamicShapes: true,
46
+ maxBatchSize: 128,
47
+ availableMemory: 1024 * 1024 * 1024,
48
+ };
49
+ }
50
+ async isAvailable() {
51
+ return adapterOptions?.pipelineFactory != null;
52
+ }
53
+ async initialize() {
54
+ if (!adapterOptions?.pipelineFactory) {
55
+ throw new EdgeFlowError('TransformersAdapterRuntime requires a pipelineFactory. ' +
56
+ 'Call useTransformersBackend({ pipelineFactory }) first.', ErrorCodes.RUNTIME_INIT_FAILED);
57
+ }
58
+ }
59
+ async loadModel(modelData, options = {}) {
60
+ // modelData is unused — transformers.js downloads its own models.
61
+ // Instead the model identifier comes via metadata.name or the URL.
62
+ const modelName = options.metadata?.name ?? 'default';
63
+ const metadata = {
64
+ name: modelName,
65
+ version: '1.0.0',
66
+ inputs: [{ name: 'input', dtype: 'float32', shape: [-1] }],
67
+ outputs: [{ name: 'output', dtype: 'float32', shape: [-1] }],
68
+ sizeBytes: modelData.byteLength || 0,
69
+ quantization: options.quantization ?? 'float32',
70
+ format: 'onnx',
71
+ };
72
+ const modelId = `tjs_${Date.now().toString(36)}_${Math.random().toString(36).slice(2, 6)}`;
73
+ const model = new LoadedModelImpl(metadata, this.name, () => {
74
+ const session = sessionStore.get(modelId);
75
+ if (session?.instance.dispose) {
76
+ session.instance.dispose();
77
+ }
78
+ sessionStore.delete(modelId);
79
+ });
80
+ getMemoryManager().trackModel(model, () => model.dispose());
81
+ return model;
82
+ }
83
+ /**
84
+ * Load a transformers.js pipeline by task + model name
85
+ * (called by the higher-level adapter pipeline, not via the
86
+ * standard loadModel path).
87
+ */
88
+ async loadPipeline(task, model, pipelineOptions) {
89
+ if (!adapterOptions?.pipelineFactory) {
90
+ throw new EdgeFlowError('Adapter not initialised', ErrorCodes.RUNTIME_NOT_INITIALIZED);
91
+ }
92
+ const opts = { ...pipelineOptions };
93
+ if (adapterOptions.device)
94
+ opts['device'] = adapterOptions.device;
95
+ if (adapterOptions.dtype)
96
+ opts['dtype'] = adapterOptions.dtype;
97
+ const instance = await adapterOptions.pipelineFactory(task, model, opts);
98
+ const modelId = `tjs_${Date.now().toString(36)}_${Math.random().toString(36).slice(2, 6)}`;
99
+ sessionStore.set(modelId, { instance, task, model });
100
+ return modelId;
101
+ }
102
+ /**
103
+ * Run inference by passing the raw input to the transformers.js pipeline.
104
+ * The result is returned as a single EdgeFlowTensor wrapping the JSON-encoded output
105
+ * (since transformers.js returns task-specific objects, not raw tensors).
106
+ */
107
+ async run(model, inputs) {
108
+ const session = sessionStore.get(model.id);
109
+ if (!session) {
110
+ throw new EdgeFlowError(`No transformers.js session for model ${model.id}`, ErrorCodes.MODEL_NOT_LOADED);
111
+ }
112
+ // Reconstruct input from tensor (simple: use the float data as-is)
113
+ const inputData = inputs[0]?.toFloat32Array() ?? new Float32Array(0);
114
+ const result = await session.instance(inputData);
115
+ // Wrap the result in a tensor — downstream pipelines can interpret it
116
+ const resultArray = Array.isArray(result)
117
+ ? new Float32Array(result.flat(Infinity))
118
+ : new Float32Array([0]);
119
+ return [new EdgeFlowTensor(resultArray, [resultArray.length], 'float32')];
120
+ }
121
+ /**
122
+ * High-level: run the transformers.js pipeline directly with arbitrary input.
123
+ * Returns the raw result object (not a tensor).
124
+ */
125
+ async runDirect(modelId, input, options) {
126
+ const session = sessionStore.get(modelId);
127
+ if (!session) {
128
+ throw new EdgeFlowError(`No transformers.js session for model ${modelId}`, ErrorCodes.MODEL_NOT_LOADED);
129
+ }
130
+ return session.instance(input, options);
131
+ }
132
+ dispose() {
133
+ for (const [id, session] of sessionStore) {
134
+ if (session.instance.dispose) {
135
+ session.instance.dispose();
136
+ }
137
+ sessionStore.delete(id);
138
+ }
139
+ }
140
+ }
141
+ // ---------------------------------------------------------------------------
142
+ // Public API
143
+ // ---------------------------------------------------------------------------
144
+ let adapterRuntime = null;
145
+ /**
146
+ * Register the transformers.js adapter as the default inference backend.
147
+ *
148
+ * @example
149
+ * ```typescript
150
+ * import { pipeline } from '@xenova/transformers';
151
+ * import { useTransformersBackend } from 'edgeflowjs';
152
+ *
153
+ * useTransformersBackend({
154
+ * pipelineFactory: pipeline,
155
+ * device: 'webgpu',
156
+ * dtype: 'fp16',
157
+ * });
158
+ * ```
159
+ */
160
+ export function useTransformersBackend(options) {
161
+ adapterOptions = options;
162
+ adapterRuntime = new TransformersAdapterRuntime();
163
+ registerRuntime('wasm', () => adapterRuntime);
164
+ }
165
+ /**
166
+ * Get the adapter runtime instance (for advanced use).
167
+ */
168
+ export function getTransformersAdapter() {
169
+ return adapterRuntime;
170
+ }
171
+ //# sourceMappingURL=transformers-adapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transformers-adapter.js","sourceRoot":"","sources":["../../src/backends/transformers-adapter.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,13 @@
1
1
  /**
2
2
  * edgeFlow.js - WebGPU Backend
3
3
  *
4
- * High-performance WebGPU runtime for GPU-accelerated inference.
5
- * Features:
6
- * - Native concurrency support
7
- * - Efficient memory management
8
- * - Compute shader execution
4
+ * **Status: Planned** - This is a skeleton implementation that initializes
5
+ * WebGPU and creates compute pipelines but does not perform real model
6
+ * inference. For GPU-accelerated inference, use the ONNX Runtime backend
7
+ * which supports WebGPU via its execution providers.
8
+ *
9
+ * This backend is intended for future custom WebGPU compute shader
10
+ * implementations that bypass ONNX Runtime for specialized ops.
9
11
  */
10
12
  import { Runtime, RuntimeType, RuntimeCapabilities, LoadedModel, ModelLoadOptions, Tensor } from '../core/types.js';
11
13
  declare global {
@@ -1 +1 @@
1
- {"version":3,"file":"webgpu.d.ts","sourceRoot":"","sources":["../../src/backends/webgpu.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"webgpu.d.ts","sourceRoot":"","sources":["../../src/backends/webgpu.ts"],"names":[],"mappings":"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"}