@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.
Files changed (269) hide show
  1. package/README.md +85 -34
  2. package/dist/Foundation/ErrorTypes.js +7 -0
  3. package/dist/Foundation/ErrorTypes.js.map +1 -1
  4. package/dist/Foundation/EventBus.js.map +1 -1
  5. package/dist/Foundation/StructOffsets.js +6 -156
  6. package/dist/Foundation/StructOffsets.js.map +1 -1
  7. package/dist/Foundation/WASMBridge.js +7 -388
  8. package/dist/Foundation/WASMBridge.js.map +1 -1
  9. package/dist/Infrastructure/AudioFileLoader.js +57 -0
  10. package/dist/Infrastructure/AudioFileLoader.js.map +1 -0
  11. package/dist/Infrastructure/DeviceCapabilities.js +8 -3
  12. package/dist/Infrastructure/DeviceCapabilities.js.map +1 -1
  13. package/dist/Infrastructure/ExtensionPoint.js +225 -0
  14. package/dist/Infrastructure/ExtensionPoint.js.map +1 -0
  15. package/dist/Infrastructure/LocalFileStorage.js +462 -0
  16. package/dist/Infrastructure/LocalFileStorage.js.map +1 -0
  17. package/dist/Infrastructure/ModelDownloader.js +186 -16
  18. package/dist/Infrastructure/ModelDownloader.js.map +1 -1
  19. package/dist/Infrastructure/ModelFileInference.js +119 -0
  20. package/dist/Infrastructure/ModelFileInference.js.map +1 -0
  21. package/dist/Infrastructure/ModelLoaderTypes.js +7 -1
  22. package/dist/Infrastructure/ModelLoaderTypes.js.map +1 -1
  23. package/dist/Infrastructure/ModelManager.js +233 -566
  24. package/dist/Infrastructure/ModelManager.js.map +1 -1
  25. package/dist/Infrastructure/ModelRegistry.js +11 -0
  26. package/dist/Infrastructure/ModelRegistry.js.map +1 -1
  27. package/dist/Infrastructure/OPFSStorage.js +77 -0
  28. package/dist/Infrastructure/OPFSStorage.js.map +1 -1
  29. package/dist/Infrastructure/ProviderTypes.js +13 -0
  30. package/dist/Infrastructure/ProviderTypes.js.map +1 -0
  31. package/dist/Infrastructure/VideoCapture.js +15 -0
  32. package/dist/Infrastructure/VideoCapture.js.map +1 -1
  33. package/dist/Public/Extensions/RunAnywhere+ModelManagement.js +23 -51
  34. package/dist/Public/Extensions/RunAnywhere+ModelManagement.js.map +1 -1
  35. package/dist/Public/Extensions/RunAnywhere+VoiceAgent.js +63 -161
  36. package/dist/Public/Extensions/RunAnywhere+VoiceAgent.js.map +1 -1
  37. package/dist/Public/Extensions/RunAnywhere+VoicePipeline.js +30 -44
  38. package/dist/Public/Extensions/RunAnywhere+VoicePipeline.js.map +1 -1
  39. package/dist/Public/Extensions/VoicePipelineTypes.js +4 -1
  40. package/dist/Public/Extensions/VoicePipelineTypes.js.map +1 -1
  41. package/dist/Public/RunAnywhere.js +167 -211
  42. package/dist/Public/RunAnywhere.js.map +1 -1
  43. package/dist/index.js +24 -27
  44. package/dist/index.js.map +1 -1
  45. package/dist/services/AnalyticsEmitter.js +85 -0
  46. package/dist/services/AnalyticsEmitter.js.map +1 -0
  47. package/dist/services/HTTPService.js +255 -0
  48. package/dist/services/HTTPService.js.map +1 -0
  49. package/dist/{Foundation → types/Foundation}/ErrorTypes.d.ts +3 -0
  50. package/dist/types/Foundation/ErrorTypes.d.ts.map +1 -0
  51. package/dist/{Foundation → types/Foundation}/EventBus.d.ts +13 -2
  52. package/dist/types/Foundation/EventBus.d.ts.map +1 -0
  53. package/dist/types/Foundation/SDKLogger.d.ts.map +1 -0
  54. package/dist/{Foundation → types/Foundation}/StructOffsets.d.ts +6 -37
  55. package/dist/types/Foundation/StructOffsets.d.ts.map +1 -0
  56. package/dist/types/Foundation/WASMBridge.d.ts +13 -0
  57. package/dist/types/Foundation/WASMBridge.d.ts.map +1 -0
  58. package/dist/types/Infrastructure/ArchiveUtility.d.ts.map +1 -0
  59. package/dist/types/Infrastructure/AudioCapture.d.ts.map +1 -0
  60. package/dist/types/Infrastructure/AudioFileLoader.d.ts +32 -0
  61. package/dist/types/Infrastructure/AudioFileLoader.d.ts.map +1 -0
  62. package/dist/types/Infrastructure/AudioPlayback.d.ts.map +1 -0
  63. package/dist/types/Infrastructure/DeviceCapabilities.d.ts.map +1 -0
  64. package/dist/types/Infrastructure/ExtensionPoint.d.ts +138 -0
  65. package/dist/types/Infrastructure/ExtensionPoint.d.ts.map +1 -0
  66. package/dist/types/Infrastructure/ExtensionRegistry.d.ts.map +1 -0
  67. package/dist/types/Infrastructure/LocalFileStorage.d.ts +146 -0
  68. package/dist/types/Infrastructure/LocalFileStorage.d.ts.map +1 -0
  69. package/dist/{Infrastructure → types/Infrastructure}/ModelDownloader.d.ts +35 -5
  70. package/dist/types/Infrastructure/ModelDownloader.d.ts.map +1 -0
  71. package/dist/types/Infrastructure/ModelFileInference.d.ts +39 -0
  72. package/dist/types/Infrastructure/ModelFileInference.d.ts.map +1 -0
  73. package/dist/types/Infrastructure/ModelLoaderTypes.d.ts +124 -0
  74. package/dist/types/Infrastructure/ModelLoaderTypes.d.ts.map +1 -0
  75. package/dist/types/Infrastructure/ModelManager.d.ts +146 -0
  76. package/dist/types/Infrastructure/ModelManager.d.ts.map +1 -0
  77. package/dist/{Infrastructure → types/Infrastructure}/ModelRegistry.d.ts +6 -0
  78. package/dist/types/Infrastructure/ModelRegistry.d.ts.map +1 -0
  79. package/dist/{Infrastructure → types/Infrastructure}/OPFSStorage.d.ts +22 -0
  80. package/dist/types/Infrastructure/OPFSStorage.d.ts.map +1 -0
  81. package/dist/types/Infrastructure/ProviderTypes.d.ts +55 -0
  82. package/dist/types/Infrastructure/ProviderTypes.d.ts.map +1 -0
  83. package/dist/{Infrastructure → types/Infrastructure}/VideoCapture.d.ts +2 -0
  84. package/dist/types/Infrastructure/VideoCapture.d.ts.map +1 -0
  85. package/dist/{Public → types/Public}/Extensions/RunAnywhere+ModelManagement.d.ts +12 -4
  86. package/dist/types/Public/Extensions/RunAnywhere+ModelManagement.d.ts.map +1 -0
  87. package/dist/types/Public/Extensions/RunAnywhere+VoiceAgent.d.ts +81 -0
  88. package/dist/types/Public/Extensions/RunAnywhere+VoiceAgent.d.ts.map +1 -0
  89. package/dist/types/Public/Extensions/RunAnywhere+VoicePipeline.d.ts +37 -0
  90. package/dist/types/Public/Extensions/RunAnywhere+VoicePipeline.d.ts.map +1 -0
  91. package/dist/types/Public/Extensions/VoiceAgentTypes.d.ts.map +1 -0
  92. package/dist/types/Public/Extensions/VoicePipelineTypes.d.ts +60 -0
  93. package/dist/types/Public/Extensions/VoicePipelineTypes.d.ts.map +1 -0
  94. package/dist/types/Public/RunAnywhere.d.ts +65 -0
  95. package/dist/types/Public/RunAnywhere.d.ts.map +1 -0
  96. package/dist/types/STTTypes.js +9 -0
  97. package/dist/types/STTTypes.js.map +1 -0
  98. package/dist/types/TTSTypes.js +8 -0
  99. package/dist/types/TTSTypes.js.map +1 -0
  100. package/dist/types/VADTypes.js +13 -0
  101. package/dist/types/VADTypes.js.map +1 -0
  102. package/dist/types/VLMTypes.js +13 -0
  103. package/dist/types/VLMTypes.js.map +1 -0
  104. package/dist/types/enums.js +7 -0
  105. package/dist/types/enums.js.map +1 -1
  106. package/dist/types/index.d.ts +59 -5
  107. package/dist/types/index.d.ts.map +1 -1
  108. package/dist/types/index.js +6 -0
  109. package/dist/types/index.js.map +1 -1
  110. package/dist/types/services/AnalyticsEmitter.d.ts +53 -0
  111. package/dist/types/services/AnalyticsEmitter.d.ts.map +1 -0
  112. package/dist/types/services/HTTPService.d.ts +87 -0
  113. package/dist/types/services/HTTPService.d.ts.map +1 -0
  114. package/dist/types/{LLMTypes.d.ts → types/LLMTypes.d.ts} +1 -0
  115. package/dist/types/types/LLMTypes.d.ts.map +1 -0
  116. package/dist/types/types/STTTypes.d.ts +44 -0
  117. package/dist/types/types/STTTypes.d.ts.map +1 -0
  118. package/dist/types/types/TTSTypes.d.ts +24 -0
  119. package/dist/types/types/TTSTypes.d.ts.map +1 -0
  120. package/dist/types/types/VADTypes.d.ts +19 -0
  121. package/dist/types/types/VADTypes.d.ts.map +1 -0
  122. package/dist/{Public/Extensions → types/types}/VLMTypes.d.ts +6 -12
  123. package/dist/types/types/VLMTypes.d.ts.map +1 -0
  124. package/dist/types/{enums.d.ts → types/enums.d.ts} +7 -0
  125. package/dist/types/types/enums.d.ts.map +1 -0
  126. package/dist/types/types/index.d.ts +17 -0
  127. package/dist/types/types/index.d.ts.map +1 -0
  128. package/dist/types/{models.d.ts → types/models.d.ts} +1 -0
  129. package/dist/types/types/models.d.ts.map +1 -0
  130. package/dist/types/types.d.ts +65 -0
  131. package/dist/types/types.d.ts.map +1 -0
  132. package/dist/types.js +21 -0
  133. package/dist/types.js.map +1 -0
  134. package/package.json +28 -42
  135. package/dist/Foundation/ErrorTypes.d.ts.map +0 -1
  136. package/dist/Foundation/EventBus.d.ts.map +0 -1
  137. package/dist/Foundation/PlatformAdapter.d.ts +0 -101
  138. package/dist/Foundation/PlatformAdapter.d.ts.map +0 -1
  139. package/dist/Foundation/PlatformAdapter.js +0 -417
  140. package/dist/Foundation/PlatformAdapter.js.map +0 -1
  141. package/dist/Foundation/SDKLogger.d.ts.map +0 -1
  142. package/dist/Foundation/SherpaONNXBridge.d.ts +0 -134
  143. package/dist/Foundation/SherpaONNXBridge.d.ts.map +0 -1
  144. package/dist/Foundation/SherpaONNXBridge.js +0 -332
  145. package/dist/Foundation/SherpaONNXBridge.js.map +0 -1
  146. package/dist/Foundation/StructOffsets.d.ts.map +0 -1
  147. package/dist/Foundation/WASMBridge.d.ts +0 -241
  148. package/dist/Foundation/WASMBridge.d.ts.map +0 -1
  149. package/dist/Infrastructure/ArchiveUtility.d.ts.map +0 -1
  150. package/dist/Infrastructure/AudioCapture.d.ts.map +0 -1
  151. package/dist/Infrastructure/AudioPlayback.d.ts.map +0 -1
  152. package/dist/Infrastructure/DeviceCapabilities.d.ts.map +0 -1
  153. package/dist/Infrastructure/ExtensionRegistry.d.ts.map +0 -1
  154. package/dist/Infrastructure/ModelDownloader.d.ts.map +0 -1
  155. package/dist/Infrastructure/ModelLoaderTypes.d.ts +0 -34
  156. package/dist/Infrastructure/ModelLoaderTypes.d.ts.map +0 -1
  157. package/dist/Infrastructure/ModelManager.d.ts +0 -219
  158. package/dist/Infrastructure/ModelManager.d.ts.map +0 -1
  159. package/dist/Infrastructure/ModelRegistry.d.ts.map +0 -1
  160. package/dist/Infrastructure/OPFSStorage.d.ts.map +0 -1
  161. package/dist/Infrastructure/VLMWorkerBridge.d.ts +0 -211
  162. package/dist/Infrastructure/VLMWorkerBridge.d.ts.map +0 -1
  163. package/dist/Infrastructure/VLMWorkerBridge.js +0 -264
  164. package/dist/Infrastructure/VLMWorkerBridge.js.map +0 -1
  165. package/dist/Infrastructure/VLMWorkerRuntime.d.ts +0 -38
  166. package/dist/Infrastructure/VLMWorkerRuntime.d.ts.map +0 -1
  167. package/dist/Infrastructure/VLMWorkerRuntime.js +0 -503
  168. package/dist/Infrastructure/VLMWorkerRuntime.js.map +0 -1
  169. package/dist/Infrastructure/VideoCapture.d.ts.map +0 -1
  170. package/dist/Public/Extensions/DiffusionTypes.d.ts +0 -64
  171. package/dist/Public/Extensions/DiffusionTypes.d.ts.map +0 -1
  172. package/dist/Public/Extensions/DiffusionTypes.js +0 -28
  173. package/dist/Public/Extensions/DiffusionTypes.js.map +0 -1
  174. package/dist/Public/Extensions/EmbeddingsTypes.d.ts +0 -33
  175. package/dist/Public/Extensions/EmbeddingsTypes.d.ts.map +0 -1
  176. package/dist/Public/Extensions/EmbeddingsTypes.js +0 -13
  177. package/dist/Public/Extensions/EmbeddingsTypes.js.map +0 -1
  178. package/dist/Public/Extensions/RunAnywhere+Diffusion.d.ts +0 -44
  179. package/dist/Public/Extensions/RunAnywhere+Diffusion.d.ts.map +0 -1
  180. package/dist/Public/Extensions/RunAnywhere+Diffusion.js +0 -189
  181. package/dist/Public/Extensions/RunAnywhere+Diffusion.js.map +0 -1
  182. package/dist/Public/Extensions/RunAnywhere+Embeddings.d.ts +0 -56
  183. package/dist/Public/Extensions/RunAnywhere+Embeddings.d.ts.map +0 -1
  184. package/dist/Public/Extensions/RunAnywhere+Embeddings.js +0 -240
  185. package/dist/Public/Extensions/RunAnywhere+Embeddings.js.map +0 -1
  186. package/dist/Public/Extensions/RunAnywhere+ModelManagement.d.ts.map +0 -1
  187. package/dist/Public/Extensions/RunAnywhere+STT.d.ts +0 -95
  188. package/dist/Public/Extensions/RunAnywhere+STT.d.ts.map +0 -1
  189. package/dist/Public/Extensions/RunAnywhere+STT.js +0 -417
  190. package/dist/Public/Extensions/RunAnywhere+STT.js.map +0 -1
  191. package/dist/Public/Extensions/RunAnywhere+StructuredOutput.d.ts +0 -69
  192. package/dist/Public/Extensions/RunAnywhere+StructuredOutput.d.ts.map +0 -1
  193. package/dist/Public/Extensions/RunAnywhere+StructuredOutput.js +0 -196
  194. package/dist/Public/Extensions/RunAnywhere+StructuredOutput.js.map +0 -1
  195. package/dist/Public/Extensions/RunAnywhere+TTS.d.ts +0 -55
  196. package/dist/Public/Extensions/RunAnywhere+TTS.d.ts.map +0 -1
  197. package/dist/Public/Extensions/RunAnywhere+TTS.js +0 -253
  198. package/dist/Public/Extensions/RunAnywhere+TTS.js.map +0 -1
  199. package/dist/Public/Extensions/RunAnywhere+TextGeneration.d.ts +0 -80
  200. package/dist/Public/Extensions/RunAnywhere+TextGeneration.d.ts.map +0 -1
  201. package/dist/Public/Extensions/RunAnywhere+TextGeneration.js +0 -436
  202. package/dist/Public/Extensions/RunAnywhere+TextGeneration.js.map +0 -1
  203. package/dist/Public/Extensions/RunAnywhere+ToolCalling.d.ts +0 -82
  204. package/dist/Public/Extensions/RunAnywhere+ToolCalling.d.ts.map +0 -1
  205. package/dist/Public/Extensions/RunAnywhere+ToolCalling.js +0 -576
  206. package/dist/Public/Extensions/RunAnywhere+ToolCalling.js.map +0 -1
  207. package/dist/Public/Extensions/RunAnywhere+VAD.d.ts +0 -70
  208. package/dist/Public/Extensions/RunAnywhere+VAD.d.ts.map +0 -1
  209. package/dist/Public/Extensions/RunAnywhere+VAD.js +0 -231
  210. package/dist/Public/Extensions/RunAnywhere+VAD.js.map +0 -1
  211. package/dist/Public/Extensions/RunAnywhere+VLM.d.ts +0 -58
  212. package/dist/Public/Extensions/RunAnywhere+VLM.d.ts.map +0 -1
  213. package/dist/Public/Extensions/RunAnywhere+VLM.js +0 -262
  214. package/dist/Public/Extensions/RunAnywhere+VLM.js.map +0 -1
  215. package/dist/Public/Extensions/RunAnywhere+VoiceAgent.d.ts +0 -49
  216. package/dist/Public/Extensions/RunAnywhere+VoiceAgent.d.ts.map +0 -1
  217. package/dist/Public/Extensions/RunAnywhere+VoicePipeline.d.ts +0 -63
  218. package/dist/Public/Extensions/RunAnywhere+VoicePipeline.d.ts.map +0 -1
  219. package/dist/Public/Extensions/STTTypes.d.ts +0 -53
  220. package/dist/Public/Extensions/STTTypes.d.ts.map +0 -1
  221. package/dist/Public/Extensions/STTTypes.js +0 -16
  222. package/dist/Public/Extensions/STTTypes.js.map +0 -1
  223. package/dist/Public/Extensions/TTSTypes.d.ts +0 -31
  224. package/dist/Public/Extensions/TTSTypes.d.ts.map +0 -1
  225. package/dist/Public/Extensions/TTSTypes.js +0 -3
  226. package/dist/Public/Extensions/TTSTypes.js.map +0 -1
  227. package/dist/Public/Extensions/ToolCallingTypes.d.ts +0 -78
  228. package/dist/Public/Extensions/ToolCallingTypes.d.ts.map +0 -1
  229. package/dist/Public/Extensions/ToolCallingTypes.js +0 -8
  230. package/dist/Public/Extensions/ToolCallingTypes.js.map +0 -1
  231. package/dist/Public/Extensions/VADTypes.d.ts +0 -30
  232. package/dist/Public/Extensions/VADTypes.d.ts.map +0 -1
  233. package/dist/Public/Extensions/VADTypes.js +0 -8
  234. package/dist/Public/Extensions/VADTypes.js.map +0 -1
  235. package/dist/Public/Extensions/VLMTypes.d.ts.map +0 -1
  236. package/dist/Public/Extensions/VLMTypes.js +0 -24
  237. package/dist/Public/Extensions/VLMTypes.js.map +0 -1
  238. package/dist/Public/Extensions/VoiceAgentTypes.d.ts.map +0 -1
  239. package/dist/Public/Extensions/VoicePipelineTypes.d.ts +0 -69
  240. package/dist/Public/Extensions/VoicePipelineTypes.d.ts.map +0 -1
  241. package/dist/Public/RunAnywhere.d.ts +0 -121
  242. package/dist/Public/RunAnywhere.d.ts.map +0 -1
  243. package/dist/index.d.ts +0 -67
  244. package/dist/index.d.ts.map +0 -1
  245. package/dist/types/LLMTypes.d.ts.map +0 -1
  246. package/dist/types/enums.d.ts.map +0 -1
  247. package/dist/types/models.d.ts.map +0 -1
  248. package/dist/workers/vlm-worker.d.ts +0 -9
  249. package/dist/workers/vlm-worker.d.ts.map +0 -1
  250. package/dist/workers/vlm-worker.js +0 -10
  251. package/dist/workers/vlm-worker.js.map +0 -1
  252. package/wasm/racommons-webgpu.js +0 -156
  253. package/wasm/racommons-webgpu.wasm +0 -0
  254. package/wasm/racommons.js +0 -126
  255. package/wasm/racommons.wasm +0 -0
  256. package/wasm/sherpa/sherpa-onnx-asr.js +0 -1538
  257. package/wasm/sherpa/sherpa-onnx-glue-original.js +0 -19
  258. package/wasm/sherpa/sherpa-onnx-glue.js +0 -17
  259. package/wasm/sherpa/sherpa-onnx-tts.js +0 -657
  260. package/wasm/sherpa/sherpa-onnx-vad.js +0 -337
  261. package/wasm/sherpa/sherpa-onnx-wave.js +0 -88
  262. package/wasm/sherpa/sherpa-onnx.wasm +0 -0
  263. /package/dist/{Foundation → types/Foundation}/SDKLogger.d.ts +0 -0
  264. /package/dist/{Infrastructure → types/Infrastructure}/ArchiveUtility.d.ts +0 -0
  265. /package/dist/{Infrastructure → types/Infrastructure}/AudioCapture.d.ts +0 -0
  266. /package/dist/{Infrastructure → types/Infrastructure}/AudioPlayback.d.ts +0 -0
  267. /package/dist/{Infrastructure → types/Infrastructure}/DeviceCapabilities.d.ts +0 -0
  268. /package/dist/{Infrastructure → types/Infrastructure}/ExtensionRegistry.d.ts +0 -0
  269. /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 a single npm package. Unlike native SDKs (iOS, Android, React Native, Flutter) which use separate packages per backend, the Web SDK compiles all inference backends into a single WebAssembly binary. Backend selection happens at WASM build time, not at the package level.
103
+ The Web SDK is split into three npm packages so you only ship the backends you need:
104
104
 
105
- ```
106
- @runanywhere/web -- TypeScript API + pre-built WASM (all backends)
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
- The pre-built WASM includes llama.cpp (LLM/VLM), whisper.cpp (STT), and sherpa-onnx (TTS/VAD). Developers who need a smaller WASM binary with specific backends can [build from source](#building-from-source) with selective flags.
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
- npm install @runanywhere/web
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
- The package includes pre-built WASM files in `node_modules/@runanywhere/web/wasm/`. Configure your bundler to serve these as static assets.
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 Package
654
-
655
- ```
656
- @runanywhere/web
657
- ```
684
+ ## npm Packages
658
685
 
659
- ### Published Exports
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
- | `VoicePipeline` | STT -> LLM -> TTS orchestration |
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, scaffold) |
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
- | `VideoCapture` | Camera capture and frame extraction |
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;AAsEzC;;;;;;GAMG;AACH,MAAM,OAAO,QAAQ;IACX,MAAM,CAAC,SAAS,GAAoB,IAAI,CAAC;IAEzC,SAAS,GAAG,IAAI,GAAG,EAA8B,CAAC;IAClD,iBAAiB,GAAG,IAAI,GAAG,EAAmC,CAAC;IAEvE,MAAM,KAAK,MAAM;QACf,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC;YACxB,QAAQ,CAAC,SAAS,GAAG,IAAI,QAAQ,EAAE,CAAC;QACtC,CAAC;QACD,OAAO,QAAQ,CAAC,SAAS,CAAC;IAC5B,CAAC;IAED;;;OAGG;IACH,EAAE,CAA8B,SAAY,EAAE,QAAuC;QACnF,MAAM,GAAG,GAAG,SAAmB,CAAC;QAChC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YAC7B,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,GAAG,EAAE,CAAC,CAAC;QACrC,CAAC;QACD,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAE,CAAC;QACrC,GAAG,CAAC,GAAG,CAAC,QAAyB,CAAC,CAAC;QAEnC,OAAO,GAAG,EAAE;YACV,GAAG,CAAC,MAAM,CAAC,QAAyB,CAAC,CAAC;YACtC,IAAI,GAAG,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;gBACnB,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAC7B,CAAC;QACH,CAAC,CAAC;IACJ,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,QAAyC;QAC7C,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACrC,OAAO,GAAG,EAAE;YACV,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC1C,CAAC,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,IAAI,CAA8B,SAAY,EAAE,QAAuC;QACrF,MAAM,WAAW,GAAG,IAAI,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,KAAK,EAAE,EAAE;YAC/C,WAAW,EAAE,CAAC;YACd,QAAQ,CAAC,KAAK,CAAC,CAAC;QAClB,CAAC,CAAC,CAAC;QACH,OAAO,WAAW,CAAC;IACrB,CAAC;IAED;;OAEG;IACH,IAAI,CAA8B,SAAY,EAAE,QAAsB,EAAE,IAAqB;QAC3F,MAAM,GAAG,GAAG,SAAmB,CAAC;QAChC,MAAM,OAAO,GAAG,CAAC,IAAI,IAAI,EAAE,CAA4B,CAAC;QACxD,MAAM,QAAQ,GAAqB;YACjC,IAAI,EAAE,GAAG;YACT,QAAQ;YACR,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;YACrB,IAAI,EAAE,OAAO;SACd,CAAC;QAEF,4BAA4B;QAC5B,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACzC,IAAI,QAAQ,EAAE,CAAC;YACb,KAAK,MAAM,QAAQ,IAAI,QAAQ,EAAE,CAAC;gBAChC,IAAI,CAAC;oBACH,QAAQ,CAAC,OAAO,CAAC,CAAC;gBACpB,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,MAAM,CAAC,KAAK,CAAC,sBAAsB,GAAG,KAAK,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;gBACvG,CAAC;YACH,CAAC;QACH,CAAC;QAED,4BAA4B;QAC5B,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC9C,IAAI,CAAC;gBACH,QAAQ,CAAC,QAAQ,CAAC,CAAC;YACrB,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,CAAC,KAAK,CAAC,4BAA4B,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YACrG,CAAC;QACH,CAAC;IACH,CAAC;IAED;;OAEG;IACH,SAAS;QACP,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;QACvB,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,CAAC;IACjC,CAAC;IAED,oCAAoC;IACpC,MAAM,CAAC,KAAK;QACV,IAAI,QAAQ,CAAC,SAAS,EAAE,CAAC;YACvB,QAAQ,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC;QACjC,CAAC;QACD,QAAQ,CAAC,SAAS,GAAG,IAAI,CAAC;IAC5B,CAAC"}
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;AAwEzC;;;;;;GAMG;AACH,MAAM,OAAO,QAAQ;IACX,MAAM,CAAC,SAAS,GAAoB,IAAI,CAAC;IAEzC,SAAS,GAAG,IAAI,GAAG,EAA8B,CAAC;IAClD,iBAAiB,GAAG,IAAI,GAAG,EAAmC,CAAC;IAEvE,MAAM,KAAK,MAAM;QACf,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC;YACxB,QAAQ,CAAC,SAAS,GAAG,IAAI,QAAQ,EAAE,CAAC;QACtC,CAAC;QACD,OAAO,QAAQ,CAAC,SAAS,CAAC;IAC5B,CAAC;IAED;;;OAGG;IACH,EAAE,CAA8B,SAAY,EAAE,QAAuC;QACnF,MAAM,GAAG,GAAG,SAAmB,CAAC;QAChC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YAC7B,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,GAAG,EAAE,CAAC,CAAC;QACrC,CAAC;QACD,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAE,CAAC;QACrC,GAAG,CAAC,GAAG,CAAC,QAAyB,CAAC,CAAC;QAEnC,OAAO,GAAG,EAAE;YACV,GAAG,CAAC,MAAM,CAAC,QAAyB,CAAC,CAAC;YACtC,IAAI,GAAG,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;gBACnB,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAC7B,CAAC;QACH,CAAC,CAAC;IACJ,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,QAAyC;QAC7C,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACrC,OAAO,GAAG,EAAE;YACV,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC1C,CAAC,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,IAAI,CAA8B,SAAY,EAAE,QAAuC;QACrF,MAAM,WAAW,GAAG,IAAI,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,KAAK,EAAE,EAAE;YAC/C,WAAW,EAAE,CAAC;YACd,QAAQ,CAAC,KAAK,CAAC,CAAC;QAClB,CAAC,CAAC,CAAC;QACH,OAAO,WAAW,CAAC;IACrB,CAAC;IAED;;OAEG;IACH,IAAI,CAA8B,SAAY,EAAE,QAAsB,EAAE,IAAqB;QAC3F,MAAM,GAAG,GAAG,SAAmB,CAAC;QAChC,MAAM,OAAO,GAAG,CAAC,IAAI,IAAI,EAAE,CAA4B,CAAC;QACxD,MAAM,QAAQ,GAAqB;YACjC,IAAI,EAAE,GAAG;YACT,QAAQ;YACR,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;YACrB,IAAI,EAAE,OAAO;SACd,CAAC;QAEF,4BAA4B;QAC5B,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACzC,IAAI,QAAQ,EAAE,CAAC;YACb,KAAK,MAAM,QAAQ,IAAI,QAAQ,EAAE,CAAC;gBAChC,IAAI,CAAC;oBACH,QAAQ,CAAC,OAAO,CAAC,CAAC;gBACpB,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,MAAM,CAAC,KAAK,CAAC,sBAAsB,GAAG,KAAK,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;gBACvG,CAAC;YACH,CAAC;QACH,CAAC;QAED,4BAA4B;QAC5B,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC9C,IAAI,CAAC;gBACH,QAAQ,CAAC,QAAQ,CAAC,CAAC;YACrB,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,CAAC,KAAK,CAAC,4BAA4B,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YACrG,CAAC;QACH,CAAC;IACH,CAAC;IAED;;OAEG;IACH,SAAS;QACP,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;QACvB,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,CAAC;IACjC,CAAC;IAED,oCAAoC;IACpC,MAAM,CAAC,KAAK;QACV,IAAI,QAAQ,CAAC,SAAS,EAAE,CAAC;YACvB,QAAQ,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC;QACjC,CAAC;QACD,QAAQ,CAAC,SAAS,GAAG,IAAI,CAAC;IAC5B,CAAC"}
@@ -1,161 +1,11 @@
1
1
  /**
2
- * RunAnywhere Web SDK - WASM Struct Field Offsets
2
+ * RunAnywhere Web SDK - Struct Offset Types
3
3
  *
4
- * C struct field offsets depend on alignment, padding, pointer size (wasm32
5
- * vs wasm64) and compiler flags. Hard-coding them in TypeScript is fragile
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 module queries `rac_wasm_offsetof_*()` helpers (compiled via
9
- * `offsetof()` in wasm_exports.cpp) exactly once after the WASM module is
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 function loadOffsetsFromModule(m) {
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":"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"}
1
+ {"version":3,"file":"StructOffsets.js","sourceRoot":"","sources":["../../src/Foundation/StructOffsets.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG"}