@runanywhere/web 0.1.0-beta.1 → 0.1.0-beta.10
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 +85 -34
- package/dist/Foundation/ErrorTypes.js +7 -0
- package/dist/Foundation/ErrorTypes.js.map +1 -1
- package/dist/Foundation/EventBus.js.map +1 -1
- package/dist/Foundation/StructOffsets.js +6 -156
- package/dist/Foundation/StructOffsets.js.map +1 -1
- package/dist/Foundation/WASMBridge.js +7 -388
- package/dist/Foundation/WASMBridge.js.map +1 -1
- package/dist/Infrastructure/AudioFileLoader.js +57 -0
- package/dist/Infrastructure/AudioFileLoader.js.map +1 -0
- package/dist/Infrastructure/DeviceCapabilities.js +8 -3
- package/dist/Infrastructure/DeviceCapabilities.js.map +1 -1
- package/dist/Infrastructure/ExtensionPoint.js +225 -0
- package/dist/Infrastructure/ExtensionPoint.js.map +1 -0
- package/dist/Infrastructure/LocalFileStorage.js +462 -0
- package/dist/Infrastructure/LocalFileStorage.js.map +1 -0
- package/dist/Infrastructure/ModelDownloader.js +186 -16
- package/dist/Infrastructure/ModelDownloader.js.map +1 -1
- package/dist/Infrastructure/ModelFileInference.js +119 -0
- package/dist/Infrastructure/ModelFileInference.js.map +1 -0
- package/dist/Infrastructure/ModelLoaderTypes.js +7 -1
- package/dist/Infrastructure/ModelLoaderTypes.js.map +1 -1
- package/dist/Infrastructure/ModelManager.js +233 -566
- package/dist/Infrastructure/ModelManager.js.map +1 -1
- package/dist/Infrastructure/ModelRegistry.js +11 -0
- package/dist/Infrastructure/ModelRegistry.js.map +1 -1
- package/dist/Infrastructure/OPFSStorage.js +77 -0
- package/dist/Infrastructure/OPFSStorage.js.map +1 -1
- package/dist/Infrastructure/ProviderTypes.js +13 -0
- package/dist/Infrastructure/ProviderTypes.js.map +1 -0
- package/dist/Infrastructure/VideoCapture.js +15 -0
- package/dist/Infrastructure/VideoCapture.js.map +1 -1
- package/dist/Public/Extensions/RunAnywhere+ModelManagement.js +23 -51
- package/dist/Public/Extensions/RunAnywhere+ModelManagement.js.map +1 -1
- package/dist/Public/Extensions/RunAnywhere+VoiceAgent.js +63 -161
- package/dist/Public/Extensions/RunAnywhere+VoiceAgent.js.map +1 -1
- package/dist/Public/Extensions/RunAnywhere+VoicePipeline.js +30 -44
- package/dist/Public/Extensions/RunAnywhere+VoicePipeline.js.map +1 -1
- package/dist/Public/Extensions/VoicePipelineTypes.js +4 -1
- package/dist/Public/Extensions/VoicePipelineTypes.js.map +1 -1
- package/dist/Public/RunAnywhere.js +167 -211
- package/dist/Public/RunAnywhere.js.map +1 -1
- package/dist/index.js +24 -27
- package/dist/index.js.map +1 -1
- package/dist/services/AnalyticsEmitter.js +85 -0
- package/dist/services/AnalyticsEmitter.js.map +1 -0
- package/dist/services/HTTPService.js +255 -0
- package/dist/services/HTTPService.js.map +1 -0
- package/dist/{Foundation → types/Foundation}/ErrorTypes.d.ts +3 -0
- package/dist/types/Foundation/ErrorTypes.d.ts.map +1 -0
- package/dist/{Foundation → types/Foundation}/EventBus.d.ts +13 -2
- package/dist/types/Foundation/EventBus.d.ts.map +1 -0
- package/dist/types/Foundation/SDKLogger.d.ts.map +1 -0
- package/dist/{Foundation → types/Foundation}/StructOffsets.d.ts +6 -37
- package/dist/types/Foundation/StructOffsets.d.ts.map +1 -0
- package/dist/types/Foundation/WASMBridge.d.ts +13 -0
- package/dist/types/Foundation/WASMBridge.d.ts.map +1 -0
- package/dist/types/Infrastructure/ArchiveUtility.d.ts.map +1 -0
- package/dist/types/Infrastructure/AudioCapture.d.ts.map +1 -0
- package/dist/types/Infrastructure/AudioFileLoader.d.ts +32 -0
- package/dist/types/Infrastructure/AudioFileLoader.d.ts.map +1 -0
- package/dist/types/Infrastructure/AudioPlayback.d.ts.map +1 -0
- package/dist/types/Infrastructure/DeviceCapabilities.d.ts.map +1 -0
- package/dist/types/Infrastructure/ExtensionPoint.d.ts +138 -0
- package/dist/types/Infrastructure/ExtensionPoint.d.ts.map +1 -0
- package/dist/types/Infrastructure/ExtensionRegistry.d.ts.map +1 -0
- package/dist/types/Infrastructure/LocalFileStorage.d.ts +146 -0
- package/dist/types/Infrastructure/LocalFileStorage.d.ts.map +1 -0
- package/dist/{Infrastructure → types/Infrastructure}/ModelDownloader.d.ts +35 -5
- package/dist/types/Infrastructure/ModelDownloader.d.ts.map +1 -0
- package/dist/types/Infrastructure/ModelFileInference.d.ts +39 -0
- package/dist/types/Infrastructure/ModelFileInference.d.ts.map +1 -0
- package/dist/types/Infrastructure/ModelLoaderTypes.d.ts +124 -0
- package/dist/types/Infrastructure/ModelLoaderTypes.d.ts.map +1 -0
- package/dist/types/Infrastructure/ModelManager.d.ts +146 -0
- package/dist/types/Infrastructure/ModelManager.d.ts.map +1 -0
- package/dist/{Infrastructure → types/Infrastructure}/ModelRegistry.d.ts +6 -0
- package/dist/types/Infrastructure/ModelRegistry.d.ts.map +1 -0
- package/dist/{Infrastructure → types/Infrastructure}/OPFSStorage.d.ts +22 -0
- package/dist/types/Infrastructure/OPFSStorage.d.ts.map +1 -0
- package/dist/types/Infrastructure/ProviderTypes.d.ts +55 -0
- package/dist/types/Infrastructure/ProviderTypes.d.ts.map +1 -0
- package/dist/{Infrastructure → types/Infrastructure}/VideoCapture.d.ts +2 -0
- package/dist/types/Infrastructure/VideoCapture.d.ts.map +1 -0
- package/dist/{Public → types/Public}/Extensions/RunAnywhere+ModelManagement.d.ts +12 -4
- package/dist/types/Public/Extensions/RunAnywhere+ModelManagement.d.ts.map +1 -0
- package/dist/types/Public/Extensions/RunAnywhere+VoiceAgent.d.ts +81 -0
- package/dist/types/Public/Extensions/RunAnywhere+VoiceAgent.d.ts.map +1 -0
- package/dist/types/Public/Extensions/RunAnywhere+VoicePipeline.d.ts +37 -0
- package/dist/types/Public/Extensions/RunAnywhere+VoicePipeline.d.ts.map +1 -0
- package/dist/types/Public/Extensions/VoiceAgentTypes.d.ts.map +1 -0
- package/dist/types/Public/Extensions/VoicePipelineTypes.d.ts +60 -0
- package/dist/types/Public/Extensions/VoicePipelineTypes.d.ts.map +1 -0
- package/dist/types/Public/RunAnywhere.d.ts +65 -0
- package/dist/types/Public/RunAnywhere.d.ts.map +1 -0
- package/dist/types/STTTypes.js +9 -0
- package/dist/types/STTTypes.js.map +1 -0
- package/dist/types/TTSTypes.js +8 -0
- package/dist/types/TTSTypes.js.map +1 -0
- package/dist/types/VADTypes.js +13 -0
- package/dist/types/VADTypes.js.map +1 -0
- package/dist/types/VLMTypes.js +13 -0
- package/dist/types/VLMTypes.js.map +1 -0
- package/dist/types/enums.js +7 -0
- package/dist/types/enums.js.map +1 -1
- package/dist/types/index.d.ts +59 -5
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +6 -0
- package/dist/types/index.js.map +1 -1
- package/dist/types/services/AnalyticsEmitter.d.ts +53 -0
- package/dist/types/services/AnalyticsEmitter.d.ts.map +1 -0
- package/dist/types/services/HTTPService.d.ts +87 -0
- package/dist/types/services/HTTPService.d.ts.map +1 -0
- package/dist/types/{LLMTypes.d.ts → types/LLMTypes.d.ts} +1 -0
- package/dist/types/types/LLMTypes.d.ts.map +1 -0
- package/dist/types/types/STTTypes.d.ts +44 -0
- package/dist/types/types/STTTypes.d.ts.map +1 -0
- package/dist/types/types/TTSTypes.d.ts +24 -0
- package/dist/types/types/TTSTypes.d.ts.map +1 -0
- package/dist/types/types/VADTypes.d.ts +19 -0
- package/dist/types/types/VADTypes.d.ts.map +1 -0
- package/dist/{Public/Extensions → types/types}/VLMTypes.d.ts +6 -12
- package/dist/types/types/VLMTypes.d.ts.map +1 -0
- package/dist/types/{enums.d.ts → types/enums.d.ts} +7 -0
- package/dist/types/types/enums.d.ts.map +1 -0
- package/dist/types/types/index.d.ts +17 -0
- package/dist/types/types/index.d.ts.map +1 -0
- package/dist/types/{models.d.ts → types/models.d.ts} +1 -0
- package/dist/types/types/models.d.ts.map +1 -0
- package/dist/types/types.d.ts +65 -0
- package/dist/types/types.d.ts.map +1 -0
- package/dist/types.js +21 -0
- package/dist/types.js.map +1 -0
- package/package.json +28 -42
- package/dist/Foundation/ErrorTypes.d.ts.map +0 -1
- package/dist/Foundation/EventBus.d.ts.map +0 -1
- package/dist/Foundation/PlatformAdapter.d.ts +0 -101
- package/dist/Foundation/PlatformAdapter.d.ts.map +0 -1
- package/dist/Foundation/PlatformAdapter.js +0 -417
- package/dist/Foundation/PlatformAdapter.js.map +0 -1
- package/dist/Foundation/SDKLogger.d.ts.map +0 -1
- package/dist/Foundation/SherpaONNXBridge.d.ts +0 -134
- package/dist/Foundation/SherpaONNXBridge.d.ts.map +0 -1
- package/dist/Foundation/SherpaONNXBridge.js +0 -332
- package/dist/Foundation/SherpaONNXBridge.js.map +0 -1
- package/dist/Foundation/StructOffsets.d.ts.map +0 -1
- package/dist/Foundation/WASMBridge.d.ts +0 -241
- package/dist/Foundation/WASMBridge.d.ts.map +0 -1
- package/dist/Infrastructure/ArchiveUtility.d.ts.map +0 -1
- package/dist/Infrastructure/AudioCapture.d.ts.map +0 -1
- package/dist/Infrastructure/AudioPlayback.d.ts.map +0 -1
- package/dist/Infrastructure/DeviceCapabilities.d.ts.map +0 -1
- package/dist/Infrastructure/ExtensionRegistry.d.ts.map +0 -1
- package/dist/Infrastructure/ModelDownloader.d.ts.map +0 -1
- package/dist/Infrastructure/ModelLoaderTypes.d.ts +0 -34
- package/dist/Infrastructure/ModelLoaderTypes.d.ts.map +0 -1
- package/dist/Infrastructure/ModelManager.d.ts +0 -219
- package/dist/Infrastructure/ModelManager.d.ts.map +0 -1
- package/dist/Infrastructure/ModelRegistry.d.ts.map +0 -1
- package/dist/Infrastructure/OPFSStorage.d.ts.map +0 -1
- package/dist/Infrastructure/VLMWorkerBridge.d.ts +0 -211
- package/dist/Infrastructure/VLMWorkerBridge.d.ts.map +0 -1
- package/dist/Infrastructure/VLMWorkerBridge.js +0 -264
- package/dist/Infrastructure/VLMWorkerBridge.js.map +0 -1
- package/dist/Infrastructure/VLMWorkerRuntime.d.ts +0 -38
- package/dist/Infrastructure/VLMWorkerRuntime.d.ts.map +0 -1
- package/dist/Infrastructure/VLMWorkerRuntime.js +0 -503
- package/dist/Infrastructure/VLMWorkerRuntime.js.map +0 -1
- package/dist/Infrastructure/VideoCapture.d.ts.map +0 -1
- package/dist/Public/Extensions/DiffusionTypes.d.ts +0 -64
- package/dist/Public/Extensions/DiffusionTypes.d.ts.map +0 -1
- package/dist/Public/Extensions/DiffusionTypes.js +0 -28
- package/dist/Public/Extensions/DiffusionTypes.js.map +0 -1
- package/dist/Public/Extensions/EmbeddingsTypes.d.ts +0 -33
- package/dist/Public/Extensions/EmbeddingsTypes.d.ts.map +0 -1
- package/dist/Public/Extensions/EmbeddingsTypes.js +0 -13
- package/dist/Public/Extensions/EmbeddingsTypes.js.map +0 -1
- package/dist/Public/Extensions/RunAnywhere+Diffusion.d.ts +0 -44
- package/dist/Public/Extensions/RunAnywhere+Diffusion.d.ts.map +0 -1
- package/dist/Public/Extensions/RunAnywhere+Diffusion.js +0 -189
- package/dist/Public/Extensions/RunAnywhere+Diffusion.js.map +0 -1
- package/dist/Public/Extensions/RunAnywhere+Embeddings.d.ts +0 -56
- package/dist/Public/Extensions/RunAnywhere+Embeddings.d.ts.map +0 -1
- package/dist/Public/Extensions/RunAnywhere+Embeddings.js +0 -240
- package/dist/Public/Extensions/RunAnywhere+Embeddings.js.map +0 -1
- package/dist/Public/Extensions/RunAnywhere+ModelManagement.d.ts.map +0 -1
- package/dist/Public/Extensions/RunAnywhere+STT.d.ts +0 -95
- package/dist/Public/Extensions/RunAnywhere+STT.d.ts.map +0 -1
- package/dist/Public/Extensions/RunAnywhere+STT.js +0 -417
- package/dist/Public/Extensions/RunAnywhere+STT.js.map +0 -1
- package/dist/Public/Extensions/RunAnywhere+StructuredOutput.d.ts +0 -69
- package/dist/Public/Extensions/RunAnywhere+StructuredOutput.d.ts.map +0 -1
- package/dist/Public/Extensions/RunAnywhere+StructuredOutput.js +0 -196
- package/dist/Public/Extensions/RunAnywhere+StructuredOutput.js.map +0 -1
- package/dist/Public/Extensions/RunAnywhere+TTS.d.ts +0 -55
- package/dist/Public/Extensions/RunAnywhere+TTS.d.ts.map +0 -1
- package/dist/Public/Extensions/RunAnywhere+TTS.js +0 -253
- package/dist/Public/Extensions/RunAnywhere+TTS.js.map +0 -1
- package/dist/Public/Extensions/RunAnywhere+TextGeneration.d.ts +0 -80
- package/dist/Public/Extensions/RunAnywhere+TextGeneration.d.ts.map +0 -1
- package/dist/Public/Extensions/RunAnywhere+TextGeneration.js +0 -436
- package/dist/Public/Extensions/RunAnywhere+TextGeneration.js.map +0 -1
- package/dist/Public/Extensions/RunAnywhere+ToolCalling.d.ts +0 -82
- package/dist/Public/Extensions/RunAnywhere+ToolCalling.d.ts.map +0 -1
- package/dist/Public/Extensions/RunAnywhere+ToolCalling.js +0 -576
- package/dist/Public/Extensions/RunAnywhere+ToolCalling.js.map +0 -1
- package/dist/Public/Extensions/RunAnywhere+VAD.d.ts +0 -70
- package/dist/Public/Extensions/RunAnywhere+VAD.d.ts.map +0 -1
- package/dist/Public/Extensions/RunAnywhere+VAD.js +0 -231
- package/dist/Public/Extensions/RunAnywhere+VAD.js.map +0 -1
- package/dist/Public/Extensions/RunAnywhere+VLM.d.ts +0 -58
- package/dist/Public/Extensions/RunAnywhere+VLM.d.ts.map +0 -1
- package/dist/Public/Extensions/RunAnywhere+VLM.js +0 -262
- package/dist/Public/Extensions/RunAnywhere+VLM.js.map +0 -1
- package/dist/Public/Extensions/RunAnywhere+VoiceAgent.d.ts +0 -49
- package/dist/Public/Extensions/RunAnywhere+VoiceAgent.d.ts.map +0 -1
- package/dist/Public/Extensions/RunAnywhere+VoicePipeline.d.ts +0 -63
- package/dist/Public/Extensions/RunAnywhere+VoicePipeline.d.ts.map +0 -1
- package/dist/Public/Extensions/STTTypes.d.ts +0 -53
- package/dist/Public/Extensions/STTTypes.d.ts.map +0 -1
- package/dist/Public/Extensions/STTTypes.js +0 -16
- package/dist/Public/Extensions/STTTypes.js.map +0 -1
- package/dist/Public/Extensions/TTSTypes.d.ts +0 -31
- package/dist/Public/Extensions/TTSTypes.d.ts.map +0 -1
- package/dist/Public/Extensions/TTSTypes.js +0 -3
- package/dist/Public/Extensions/TTSTypes.js.map +0 -1
- package/dist/Public/Extensions/ToolCallingTypes.d.ts +0 -78
- package/dist/Public/Extensions/ToolCallingTypes.d.ts.map +0 -1
- package/dist/Public/Extensions/ToolCallingTypes.js +0 -8
- package/dist/Public/Extensions/ToolCallingTypes.js.map +0 -1
- package/dist/Public/Extensions/VADTypes.d.ts +0 -30
- package/dist/Public/Extensions/VADTypes.d.ts.map +0 -1
- package/dist/Public/Extensions/VADTypes.js +0 -8
- package/dist/Public/Extensions/VADTypes.js.map +0 -1
- package/dist/Public/Extensions/VLMTypes.d.ts.map +0 -1
- package/dist/Public/Extensions/VLMTypes.js +0 -24
- package/dist/Public/Extensions/VLMTypes.js.map +0 -1
- package/dist/Public/Extensions/VoiceAgentTypes.d.ts.map +0 -1
- package/dist/Public/Extensions/VoicePipelineTypes.d.ts +0 -69
- package/dist/Public/Extensions/VoicePipelineTypes.d.ts.map +0 -1
- package/dist/Public/RunAnywhere.d.ts +0 -121
- package/dist/Public/RunAnywhere.d.ts.map +0 -1
- package/dist/index.d.ts +0 -67
- package/dist/index.d.ts.map +0 -1
- package/dist/types/LLMTypes.d.ts.map +0 -1
- package/dist/types/enums.d.ts.map +0 -1
- package/dist/types/models.d.ts.map +0 -1
- package/dist/workers/vlm-worker.d.ts +0 -9
- package/dist/workers/vlm-worker.d.ts.map +0 -1
- package/dist/workers/vlm-worker.js +0 -10
- package/dist/workers/vlm-worker.js.map +0 -1
- package/wasm/racommons-webgpu.js +0 -156
- package/wasm/racommons-webgpu.wasm +0 -0
- package/wasm/racommons.js +0 -126
- package/wasm/racommons.wasm +0 -0
- package/wasm/sherpa/sherpa-onnx-asr.js +0 -1538
- package/wasm/sherpa/sherpa-onnx-glue-original.js +0 -19
- package/wasm/sherpa/sherpa-onnx-glue.js +0 -17
- package/wasm/sherpa/sherpa-onnx-tts.js +0 -657
- package/wasm/sherpa/sherpa-onnx-vad.js +0 -337
- package/wasm/sherpa/sherpa-onnx-wave.js +0 -88
- package/wasm/sherpa/sherpa-onnx.wasm +0 -0
- /package/dist/{Foundation → types/Foundation}/SDKLogger.d.ts +0 -0
- /package/dist/{Infrastructure → types/Infrastructure}/ArchiveUtility.d.ts +0 -0
- /package/dist/{Infrastructure → types/Infrastructure}/AudioCapture.d.ts +0 -0
- /package/dist/{Infrastructure → types/Infrastructure}/AudioPlayback.d.ts +0 -0
- /package/dist/{Infrastructure → types/Infrastructure}/DeviceCapabilities.d.ts +0 -0
- /package/dist/{Infrastructure → types/Infrastructure}/ExtensionRegistry.d.ts +0 -0
- /package/dist/{Public → types/Public}/Extensions/VoiceAgentTypes.d.ts +0 -0
package/README.md
CHANGED
|
@@ -100,25 +100,36 @@ On-device AI for the browser. Run LLMs, Speech-to-Text, Text-to-Speech, Vision,
|
|
|
100
100
|
|
|
101
101
|
## Package Structure
|
|
102
102
|
|
|
103
|
-
The Web SDK is
|
|
103
|
+
The Web SDK is split into three npm packages so you only ship the backends you need:
|
|
104
104
|
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
105
|
+
| Package | Description | Includes |
|
|
106
|
+
|---------|-------------|----------|
|
|
107
|
+
| [`@runanywhere/web`](https://www.npmjs.com/package/@runanywhere/web) | Core SDK — lifecycle, logging, events, model management, storage | TypeScript only (no WASM) |
|
|
108
|
+
| [`@runanywhere/web-llamacpp`](https://www.npmjs.com/package/@runanywhere/web-llamacpp) | LLM, VLM, tool calling, structured output, embeddings, diffusion | llama.cpp WASM (~3.7 MB CPU, ~3.9 MB WebGPU) |
|
|
109
|
+
| [`@runanywhere/web-onnx`](https://www.npmjs.com/package/@runanywhere/web-onnx) | STT, TTS, VAD, audio capture/playback | [sherpa-onnx](https://github.com/k2-fsa/sherpa-onnx) WASM (~12 MB, lazy-loaded) |
|
|
108
110
|
|
|
109
|
-
|
|
111
|
+
Install only what you need — `@runanywhere/web` is always required as the core.
|
|
110
112
|
|
|
111
113
|
---
|
|
112
114
|
|
|
113
115
|
## Installation
|
|
114
116
|
|
|
115
117
|
```bash
|
|
116
|
-
|
|
118
|
+
# Core + all backends
|
|
119
|
+
npm install @runanywhere/web @runanywhere/web-llamacpp @runanywhere/web-onnx
|
|
120
|
+
|
|
121
|
+
# LLM/VLM only (no speech)
|
|
122
|
+
npm install @runanywhere/web @runanywhere/web-llamacpp
|
|
123
|
+
|
|
124
|
+
# Speech only (no LLM)
|
|
125
|
+
npm install @runanywhere/web @runanywhere/web-onnx
|
|
117
126
|
```
|
|
118
127
|
|
|
119
|
-
### Serve WASM Files
|
|
128
|
+
### Serve WASM Files + Cross-Origin Isolation
|
|
120
129
|
|
|
121
|
-
|
|
130
|
+
WASM files are included in `@runanywhere/web-llamacpp` and `@runanywhere/web-onnx`. Configure your bundler to serve them as static assets.
|
|
131
|
+
|
|
132
|
+
> **Important:** Your server **must** set Cross-Origin Isolation headers for `SharedArrayBuffer` and multi-threaded WASM to work. Without these headers the SDK falls back to single-threaded mode, which is significantly slower. See [Cross-Origin Isolation Headers](#cross-origin-isolation-headers) for all platforms (Nginx, Vercel, Netlify, Cloudflare, AWS, Apache).
|
|
122
133
|
|
|
123
134
|
**Vite:**
|
|
124
135
|
|
|
@@ -132,9 +143,15 @@ export default defineConfig({
|
|
|
132
143
|
'Cross-Origin-Embedder-Policy': 'credentialless',
|
|
133
144
|
},
|
|
134
145
|
},
|
|
146
|
+
worker: { format: 'es' },
|
|
147
|
+
optimizeDeps: {
|
|
148
|
+
exclude: ['@runanywhere/web-llamacpp', '@runanywhere/web-onnx'],
|
|
149
|
+
},
|
|
135
150
|
});
|
|
136
151
|
```
|
|
137
152
|
|
|
153
|
+
> **Warning (Vite users):** You **must** add `@runanywhere/web-llamacpp` and `@runanywhere/web-onnx` to `optimizeDeps.exclude`. Vite's dependency pre-bundling flattens packages into `.vite/deps/`, which breaks the relative `import.meta.url` paths the SDK uses to locate its WASM files. Without this exclusion, WASM loading will fail with a "Failed to fetch dynamically imported module" error. This is a known Vite limitation with npm packages that resolve static assets via `import.meta.url`.
|
|
154
|
+
|
|
138
155
|
**Webpack:**
|
|
139
156
|
|
|
140
157
|
```javascript
|
|
@@ -145,9 +162,17 @@ module.exports = {
|
|
|
145
162
|
{ test: /\.wasm$/, type: 'asset/resource' },
|
|
146
163
|
],
|
|
147
164
|
},
|
|
165
|
+
devServer: {
|
|
166
|
+
headers: {
|
|
167
|
+
'Cross-Origin-Opener-Policy': 'same-origin',
|
|
168
|
+
'Cross-Origin-Embedder-Policy': 'credentialless',
|
|
169
|
+
},
|
|
170
|
+
},
|
|
148
171
|
};
|
|
149
172
|
```
|
|
150
173
|
|
|
174
|
+
> **Safari/iOS:** Safari does not support `credentialless` COEP. Use the COI service worker pattern shown in the [demo app](../../examples/web/RunAnywhereAI/) — it intercepts responses and injects `require-corp` headers at runtime.
|
|
175
|
+
|
|
151
176
|
---
|
|
152
177
|
|
|
153
178
|
## Quick Start
|
|
@@ -156,14 +181,20 @@ module.exports = {
|
|
|
156
181
|
|
|
157
182
|
```typescript
|
|
158
183
|
import { RunAnywhere } from '@runanywhere/web';
|
|
184
|
+
import { LlamaCPP, TextGeneration } from '@runanywhere/web-llamacpp';
|
|
185
|
+
import { ONNX, STT, STTModelType, TTS, VAD, SpeechActivity } from '@runanywhere/web-onnx';
|
|
159
186
|
|
|
160
187
|
await RunAnywhere.initialize({ environment: 'development', debug: true });
|
|
188
|
+
|
|
189
|
+
// Register backends
|
|
190
|
+
await LlamaCPP.register();
|
|
191
|
+
await ONNX.register();
|
|
161
192
|
```
|
|
162
193
|
|
|
163
194
|
### 2. Text Generation (LLM)
|
|
164
195
|
|
|
165
196
|
```typescript
|
|
166
|
-
import { TextGeneration } from '@runanywhere/web';
|
|
197
|
+
import { TextGeneration } from '@runanywhere/web-llamacpp';
|
|
167
198
|
|
|
168
199
|
// Load a GGUF model
|
|
169
200
|
await TextGeneration.loadModel('/models/qwen2.5-0.5b-instruct-q4_0.gguf', 'qwen2.5-0.5b');
|
|
@@ -181,7 +212,7 @@ for await (const token of TextGeneration.generateStream('Write a haiku about cod
|
|
|
181
212
|
### 3. Speech-to-Text (STT)
|
|
182
213
|
|
|
183
214
|
```typescript
|
|
184
|
-
import { STT } from '@runanywhere/web';
|
|
215
|
+
import { STT, STTModelType } from '@runanywhere/web-onnx';
|
|
185
216
|
|
|
186
217
|
await STT.loadModel({
|
|
187
218
|
modelId: 'whisper-tiny',
|
|
@@ -197,7 +228,7 @@ console.log(result.text);
|
|
|
197
228
|
### 4. Text-to-Speech (TTS)
|
|
198
229
|
|
|
199
230
|
```typescript
|
|
200
|
-
import { TTS } from '@runanywhere/web';
|
|
231
|
+
import { TTS } from '@runanywhere/web-onnx';
|
|
201
232
|
|
|
202
233
|
await TTS.loadVoice({
|
|
203
234
|
voiceId: 'piper-en',
|
|
@@ -213,7 +244,7 @@ const result = await TTS.synthesize('Hello from RunAnywhere!');
|
|
|
213
244
|
### 5. Voice Activity Detection (VAD)
|
|
214
245
|
|
|
215
246
|
```typescript
|
|
216
|
-
import { VAD, SpeechActivity } from '@runanywhere/web';
|
|
247
|
+
import { VAD, SpeechActivity } from '@runanywhere/web-onnx';
|
|
217
248
|
|
|
218
249
|
await VAD.initialize({ modelPath: '/models/silero_vad.onnx' });
|
|
219
250
|
|
|
@@ -231,7 +262,7 @@ VAD.processSamples(audioChunk);
|
|
|
231
262
|
### 6. Vision Language Model (VLM)
|
|
232
263
|
|
|
233
264
|
```typescript
|
|
234
|
-
import { VLM, VLMImageFormat } from '@runanywhere/web';
|
|
265
|
+
import { VLM, VLMImageFormat } from '@runanywhere/web-llamacpp';
|
|
235
266
|
|
|
236
267
|
await VLM.loadModel('/models/qwen2-vl.gguf', '/models/mmproj.gguf', 'qwen2-vl');
|
|
237
268
|
|
|
@@ -650,38 +681,46 @@ The demo app runs on Vite with Cross-Origin Isolation headers pre-configured.
|
|
|
650
681
|
|
|
651
682
|
---
|
|
652
683
|
|
|
653
|
-
## npm
|
|
654
|
-
|
|
655
|
-
```
|
|
656
|
-
@runanywhere/web
|
|
657
|
-
```
|
|
684
|
+
## npm Packages
|
|
658
685
|
|
|
659
|
-
###
|
|
686
|
+
### `@runanywhere/web` (core)
|
|
660
687
|
|
|
661
688
|
| Export | Description |
|
|
662
689
|
|--------|-------------|
|
|
663
690
|
| `RunAnywhere` | SDK lifecycle (initialize, shutdown, capabilities) |
|
|
691
|
+
| `ModelManager` | Model download, storage, and loading |
|
|
692
|
+
| `OPFSStorage` | Persistent storage via OPFS |
|
|
693
|
+
| `SDKLogger` | Structured logging |
|
|
694
|
+
| `SDKError` | Typed error hierarchy |
|
|
695
|
+
| `EventBus` | SDK event system |
|
|
696
|
+
| `detectCapabilities` | Browser feature detection |
|
|
697
|
+
|
|
698
|
+
### `@runanywhere/web-llamacpp`
|
|
699
|
+
|
|
700
|
+
| Export | Description |
|
|
701
|
+
|--------|-------------|
|
|
702
|
+
| `LlamaCPP` | Backend registration |
|
|
664
703
|
| `TextGeneration` | LLM text generation and streaming |
|
|
665
|
-
| `STT` | Speech-to-text transcription |
|
|
666
|
-
| `TTS` | Text-to-speech synthesis |
|
|
667
|
-
| `VAD` | Voice activity detection |
|
|
668
704
|
| `VLM` | Vision-language model inference |
|
|
669
|
-
| `
|
|
670
|
-
| `VoiceAgent` | Complete voice agent with C API pipeline |
|
|
671
|
-
| `ToolCalling` | Function calling with typed tool definitions |
|
|
705
|
+
| `ToolCalling` | Function calling with typed definitions |
|
|
672
706
|
| `StructuredOutput` | JSON schema-guided generation |
|
|
673
707
|
| `Embeddings` | Vector embedding generation |
|
|
674
|
-
| `Diffusion` | Image generation (WebGPU
|
|
708
|
+
| `Diffusion` | Image generation (WebGPU) |
|
|
709
|
+
| `VLMWorkerBridge` | Web Worker bridge for VLM inference |
|
|
710
|
+
| `VideoCapture` | Camera capture and frame extraction |
|
|
711
|
+
| `TelemetryService` | Telemetry and analytics |
|
|
712
|
+
|
|
713
|
+
### `@runanywhere/web-onnx`
|
|
714
|
+
|
|
715
|
+
| Export | Description |
|
|
716
|
+
|--------|-------------|
|
|
717
|
+
| `ONNX` | Backend registration |
|
|
718
|
+
| `STT` | Speech-to-text transcription |
|
|
719
|
+
| `TTS` | Text-to-speech synthesis |
|
|
720
|
+
| `VAD` | Voice activity detection |
|
|
675
721
|
| `AudioCapture` | Microphone capture via Web Audio API |
|
|
676
722
|
| `AudioPlayback` | Audio playback via Web Audio API |
|
|
677
|
-
| `
|
|
678
|
-
| `ModelManager` | Advanced model download/storage/loading |
|
|
679
|
-
| `OPFSStorage` | Low-level OPFS persistence |
|
|
680
|
-
| `VLMWorkerBridge` | Web Worker bridge for VLM inference |
|
|
681
|
-
| `SDKLogger` | Structured logging |
|
|
682
|
-
| `SDKError` | Typed error hierarchy |
|
|
683
|
-
| `EventBus` | SDK event system |
|
|
684
|
-
| `detectCapabilities` | Browser feature detection |
|
|
723
|
+
| `AudioFileLoader` | Audio file loading and decoding |
|
|
685
724
|
|
|
686
725
|
---
|
|
687
726
|
|
|
@@ -715,6 +754,18 @@ Yes. Any GGUF-format model compatible with llama.cpp works for LLM/VLM. STT mode
|
|
|
715
754
|
|
|
716
755
|
## Troubleshooting
|
|
717
756
|
|
|
757
|
+
### "Failed to fetch dynamically imported module" / WASM not loading (Vite)
|
|
758
|
+
|
|
759
|
+
**Cause:** Vite pre-bundles npm dependencies into `.vite/deps/`, which breaks the relative `import.meta.url` paths used by `@runanywhere/web-llamacpp` and `@runanywhere/web-onnx` to locate their WASM files.
|
|
760
|
+
|
|
761
|
+
**Fix:** Add both packages to `optimizeDeps.exclude` in your `vite.config.ts`:
|
|
762
|
+
|
|
763
|
+
```typescript
|
|
764
|
+
optimizeDeps: {
|
|
765
|
+
exclude: ['@runanywhere/web-llamacpp', '@runanywhere/web-onnx'],
|
|
766
|
+
},
|
|
767
|
+
```
|
|
768
|
+
|
|
718
769
|
### "SharedArrayBuffer is not defined"
|
|
719
770
|
|
|
720
771
|
**Cause:** Missing Cross-Origin Isolation headers.
|
|
@@ -83,8 +83,15 @@ export class SDKError extends Error {
|
|
|
83
83
|
static modelNotFound(modelId) {
|
|
84
84
|
return new SDKError(SDKErrorCode.ModelNotFound, `Model not found: ${modelId}`);
|
|
85
85
|
}
|
|
86
|
+
static componentNotReady(component, details) {
|
|
87
|
+
return new SDKError(SDKErrorCode.ComponentNotReady, `Component not ready: ${component}`, details);
|
|
88
|
+
}
|
|
86
89
|
static generationFailed(details) {
|
|
87
90
|
return new SDKError(SDKErrorCode.GenerationFailed, 'Generation failed', details);
|
|
88
91
|
}
|
|
89
92
|
}
|
|
93
|
+
/** Type guard: returns true if the value is an SDKError instance. */
|
|
94
|
+
export function isSDKError(error) {
|
|
95
|
+
return error instanceof SDKError;
|
|
96
|
+
}
|
|
90
97
|
//# sourceMappingURL=ErrorTypes.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ErrorTypes.js","sourceRoot":"","sources":["../../src/Foundation/ErrorTypes.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,kCAAkC;AAClC,MAAM,CAAN,IAAY,YAsDX;AAtDD,WAAY,YAAY;IACtB,UAAU;IACV,qDAAW,CAAA;IAEX,uCAAuC;IACvC,sEAAqB,CAAA;IACrB,8EAAyB,CAAA;IACzB,kFAA2B,CAAA;IAC3B,kFAA2B,CAAA;IAE3B,8BAA8B;IAC9B,oEAAoB,CAAA;IACpB,wEAAsB,CAAA;IACtB,8EAAyB,CAAA;IACzB,sEAAqB,CAAA;IACrB,8EAAyB,CAAA;IAEzB,mCAAmC;IACnC,0EAAuB,CAAA;IACvB,gFAA0B,CAAA;IAC1B,4EAAwB,CAAA;IACxB,oEAAoB,CAAA;IACpB,oFAA4B,CAAA;IAE5B,gCAAgC;IAChC,kEAAmB,CAAA;IACnB,sEAAqB,CAAA;IACrB,kFAA2B,CAAA;IAC3B,sEAAqB,CAAA;IACrB,4EAAwB,CAAA;IAExB,gCAAgC;IAChC,kEAAmB,CAAA;IACnB,gFAA0B,CAAA;IAC1B,kEAAmB,CAAA;IACnB,wEAAsB,CAAA;IAEtB,kCAAkC;IAClC,0EAAuB,CAAA;IAEvB,kCAAkC;IAClC,4EAAwB,CAAA;IACxB,oEAAoB,CAAA;IACpB,kEAAmB,CAAA;IAEnB,gCAAgC;IAChC,gFAA0B,CAAA;IAC1B,kEAAmB,CAAA;IAEnB,sCAAsC;IACtC,sEAAqB,CAAA;IACrB,oEAAoB,CAAA;IACpB,4EAAwB,CAAA;IACxB,wEAAsB,CAAA;AACxB,CAAC,EAtDW,YAAY,KAAZ,YAAY,QAsDvB;AAED;;GAEG;AACH,MAAM,OAAO,QAAS,SAAQ,KAAK;IACxB,IAAI,CAAe;IACnB,OAAO,CAAU;IAE1B,YAAY,IAAkB,EAAE,OAAe,EAAE,OAAgB;QAC/D,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC;QACvB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAED,sDAAsD;IACtD,MAAM,CAAC,aAAa,CAAC,UAAkB,EAAE,OAAgB;QACvD,MAAM,OAAO,GAAG,oBAAoB,UAAU,EAAE,CAAC;QACjD,OAAO,IAAI,QAAQ,CAAC,UAA0B,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IACpE,CAAC;IAED,4CAA4C;IAC5C,MAAM,CAAC,SAAS,CAAC,UAAkB;QACjC,OAAO,UAAU,KAAK,CAAC,CAAC;IAC1B,CAAC;IAED,+BAA+B;IAC/B,MAAM,CAAC,cAAc,CAAC,OAAO,GAAG,qBAAqB;QACnD,OAAO,IAAI,QAAQ,CAAC,YAAY,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;IAC5D,CAAC;IAED,MAAM,CAAC,aAAa,CAAC,OAAO,GAAG,wBAAwB;QACrD,OAAO,IAAI,QAAQ,CAAC,YAAY,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;IAC3D,CAAC;IAED,MAAM,CAAC,aAAa,CAAC,OAAe;QAClC,OAAO,IAAI,QAAQ,CACjB,YAAY,CAAC,aAAa,EAC1B,oBAAoB,OAAO,EAAE,CAC9B,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,gBAAgB,CAAC,OAAgB;QACtC,OAAO,IAAI,QAAQ,CACjB,YAAY,CAAC,gBAAgB,EAC7B,mBAAmB,EACnB,OAAO,CACR,CAAC;IACJ,CAAC;CACF"}
|
|
1
|
+
{"version":3,"file":"ErrorTypes.js","sourceRoot":"","sources":["../../src/Foundation/ErrorTypes.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EventBus.js","sourceRoot":"","sources":["../../src/Foundation/EventBus.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC,UAAU,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"EventBus.js","sourceRoot":"","sources":["../../src/Foundation/EventBus.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,161 +1,11 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* RunAnywhere Web SDK -
|
|
2
|
+
* RunAnywhere Web SDK - Struct Offset Types
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
* and leads to silent data corruption when the C layout changes.
|
|
4
|
+
* Core is now pure TypeScript. Struct offset loading happens in each
|
|
5
|
+
* backend package's bridge (LlamaCppBridge, SherpaONNXBridge).
|
|
7
6
|
*
|
|
8
|
-
* This
|
|
9
|
-
*
|
|
10
|
-
* loaded, and caches the results for the lifetime of the page.
|
|
11
|
-
*
|
|
12
|
-
* Usage:
|
|
13
|
-
* import { Offsets, loadOffsets } from '../Foundation/StructOffsets';
|
|
14
|
-
*
|
|
15
|
-
* // Called once during SDK init (after WASM load):
|
|
16
|
-
* loadOffsets(wasmModule);
|
|
17
|
-
*
|
|
18
|
-
* // Then anywhere:
|
|
19
|
-
* m.setValue(optPtr + Offsets.llmOptions.temperature, 0.8, 'float');
|
|
20
|
-
*/
|
|
21
|
-
// ---------------------------------------------------------------------------
|
|
22
|
-
// Singleton
|
|
23
|
-
// ---------------------------------------------------------------------------
|
|
24
|
-
let _offsets = null;
|
|
25
|
-
/**
|
|
26
|
-
* Get the cached struct offsets. Throws if `loadOffsets()` hasn't been called.
|
|
27
|
-
*/
|
|
28
|
-
export function getOffsets() {
|
|
29
|
-
if (!_offsets) {
|
|
30
|
-
throw new Error('StructOffsets not loaded — call loadOffsets(module) after WASM init');
|
|
31
|
-
}
|
|
32
|
-
return _offsets;
|
|
33
|
-
}
|
|
34
|
-
/**
|
|
35
|
-
* Convenience re-export so callers can write `Offsets.vlmResult.text`.
|
|
36
|
-
*/
|
|
37
|
-
export const Offsets = new Proxy({}, {
|
|
38
|
-
get(_target, prop) {
|
|
39
|
-
return getOffsets()[prop];
|
|
40
|
-
},
|
|
41
|
-
});
|
|
42
|
-
/**
|
|
43
|
-
* Read all struct field offsets from the WASM module and cache them.
|
|
44
|
-
* Must be called exactly once, after the WASM module is loaded.
|
|
45
|
-
*
|
|
46
|
-
* @param m - The Emscripten WASM module instance
|
|
47
|
-
*/
|
|
48
|
-
export function loadOffsets(m) {
|
|
49
|
-
// Helper: safely call an offset function, returning 0 if it doesn't exist
|
|
50
|
-
// (e.g. when a backend wasn't compiled in).
|
|
51
|
-
const off = (name) => {
|
|
52
|
-
const fn = m[`_rac_wasm_offsetof_${name}`];
|
|
53
|
-
return typeof fn === 'function' ? fn() : 0;
|
|
54
|
-
};
|
|
55
|
-
const sz = (name) => {
|
|
56
|
-
const fn = m[`_rac_wasm_sizeof_${name}`];
|
|
57
|
-
return typeof fn === 'function' ? fn() : 0;
|
|
58
|
-
};
|
|
59
|
-
_offsets = {
|
|
60
|
-
config: {
|
|
61
|
-
logLevel: off('config_log_level'),
|
|
62
|
-
},
|
|
63
|
-
llmOptions: {
|
|
64
|
-
maxTokens: off('llm_options_max_tokens'),
|
|
65
|
-
temperature: off('llm_options_temperature'),
|
|
66
|
-
topP: off('llm_options_top_p'),
|
|
67
|
-
},
|
|
68
|
-
llmResult: {
|
|
69
|
-
text: off('llm_result_text'),
|
|
70
|
-
promptTokens: off('llm_result_prompt_tokens'),
|
|
71
|
-
completionTokens: off('llm_result_completion_tokens'),
|
|
72
|
-
},
|
|
73
|
-
vlmImage: {
|
|
74
|
-
format: off('vlm_image_format'),
|
|
75
|
-
filePath: off('vlm_image_file_path'),
|
|
76
|
-
pixelData: off('vlm_image_pixel_data'),
|
|
77
|
-
base64Data: off('vlm_image_base64_data'),
|
|
78
|
-
width: off('vlm_image_width'),
|
|
79
|
-
height: off('vlm_image_height'),
|
|
80
|
-
dataSize: off('vlm_image_data_size'),
|
|
81
|
-
},
|
|
82
|
-
vlmOptions: {
|
|
83
|
-
maxTokens: off('vlm_options_max_tokens'),
|
|
84
|
-
temperature: off('vlm_options_temperature'),
|
|
85
|
-
topP: off('vlm_options_top_p'),
|
|
86
|
-
streamingEnabled: off('vlm_options_streaming_enabled'),
|
|
87
|
-
systemPrompt: off('vlm_options_system_prompt'),
|
|
88
|
-
modelFamily: off('vlm_options_model_family'),
|
|
89
|
-
},
|
|
90
|
-
vlmResult: {
|
|
91
|
-
text: off('vlm_result_text'),
|
|
92
|
-
promptTokens: off('vlm_result_prompt_tokens'),
|
|
93
|
-
imageTokens: off('vlm_result_image_tokens'),
|
|
94
|
-
completionTokens: off('vlm_result_completion_tokens'),
|
|
95
|
-
totalTokens: off('vlm_result_total_tokens'),
|
|
96
|
-
timeToFirstTokenMs: off('vlm_result_time_to_first_token_ms'),
|
|
97
|
-
imageEncodeTimeMs: off('vlm_result_image_encode_time_ms'),
|
|
98
|
-
totalTimeMs: off('vlm_result_total_time_ms'),
|
|
99
|
-
tokensPerSecond: off('vlm_result_tokens_per_second'),
|
|
100
|
-
},
|
|
101
|
-
structuredOutputConfig: {
|
|
102
|
-
jsonSchema: off('structured_output_config_json_schema'),
|
|
103
|
-
includeSchemaInPrompt: off('structured_output_config_include_schema'),
|
|
104
|
-
},
|
|
105
|
-
structuredOutputValidation: {
|
|
106
|
-
isValid: off('structured_output_validation_is_valid'),
|
|
107
|
-
errorMessage: off('structured_output_validation_error_message'),
|
|
108
|
-
extractedJson: off('structured_output_validation_extracted_json'),
|
|
109
|
-
},
|
|
110
|
-
embeddingsOptions: {
|
|
111
|
-
normalize: off('embeddings_options_normalize'),
|
|
112
|
-
pooling: off('embeddings_options_pooling'),
|
|
113
|
-
nThreads: off('embeddings_options_n_threads'),
|
|
114
|
-
},
|
|
115
|
-
embeddingsResult: {
|
|
116
|
-
embeddings: off('embeddings_result_embeddings'),
|
|
117
|
-
numEmbeddings: off('embeddings_result_num_embeddings'),
|
|
118
|
-
dimension: off('embeddings_result_dimension'),
|
|
119
|
-
processingTimeMs: off('embeddings_result_processing_time_ms'),
|
|
120
|
-
totalTokens: off('embeddings_result_total_tokens'),
|
|
121
|
-
},
|
|
122
|
-
embeddingVector: {
|
|
123
|
-
data: off('embedding_vector_data'),
|
|
124
|
-
dimension: off('embedding_vector_dimension'),
|
|
125
|
-
structSize: sz('embedding_vector'),
|
|
126
|
-
},
|
|
127
|
-
diffusionOptions: {
|
|
128
|
-
prompt: off('diffusion_options_prompt'),
|
|
129
|
-
negativePrompt: off('diffusion_options_negative_prompt'),
|
|
130
|
-
width: off('diffusion_options_width'),
|
|
131
|
-
height: off('diffusion_options_height'),
|
|
132
|
-
steps: off('diffusion_options_steps'),
|
|
133
|
-
guidanceScale: off('diffusion_options_guidance_scale'),
|
|
134
|
-
seed: off('diffusion_options_seed'),
|
|
135
|
-
scheduler: off('diffusion_options_scheduler'),
|
|
136
|
-
mode: off('diffusion_options_mode'),
|
|
137
|
-
denoiseStrength: off('diffusion_options_denoise_strength'),
|
|
138
|
-
reportIntermediate: off('diffusion_options_report_intermediate'),
|
|
139
|
-
progressStride: off('diffusion_options_progress_stride'),
|
|
140
|
-
},
|
|
141
|
-
diffusionResult: {
|
|
142
|
-
imageData: off('diffusion_result_image_data'),
|
|
143
|
-
imageSize: off('diffusion_result_image_size'),
|
|
144
|
-
width: off('diffusion_result_width'),
|
|
145
|
-
height: off('diffusion_result_height'),
|
|
146
|
-
seedUsed: off('diffusion_result_seed_used'),
|
|
147
|
-
generationTimeMs: off('diffusion_result_generation_time_ms'),
|
|
148
|
-
safetyFlagged: off('diffusion_result_safety_flagged'),
|
|
149
|
-
},
|
|
150
|
-
};
|
|
151
|
-
}
|
|
152
|
-
/**
|
|
153
|
-
* Load offsets for a standalone WASM module (e.g. in a Web Worker).
|
|
154
|
-
* Returns the offsets directly instead of storing them in the singleton.
|
|
155
|
-
* Useful when the Worker has its own WASM instance.
|
|
7
|
+
* This file only exports the offset interface types for use by
|
|
8
|
+
* backend packages that need them.
|
|
156
9
|
*/
|
|
157
|
-
export
|
|
158
|
-
loadOffsets(m);
|
|
159
|
-
return _offsets;
|
|
160
|
-
}
|
|
10
|
+
export {};
|
|
161
11
|
//# sourceMappingURL=StructOffsets.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StructOffsets.js","sourceRoot":"","sources":["../../src/Foundation/StructOffsets.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"StructOffsets.js","sourceRoot":"","sources":["../../src/Foundation/StructOffsets.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG"}
|