@runanywhere/web 0.1.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (205) hide show
  1. package/README.md +795 -0
  2. package/dist/Foundation/ErrorTypes.d.ts +61 -0
  3. package/dist/Foundation/ErrorTypes.d.ts.map +1 -0
  4. package/dist/Foundation/ErrorTypes.js +90 -0
  5. package/dist/Foundation/ErrorTypes.js.map +1 -0
  6. package/dist/Foundation/EventBus.d.ts +171 -0
  7. package/dist/Foundation/EventBus.d.ts.map +1 -0
  8. package/dist/Foundation/EventBus.js +113 -0
  9. package/dist/Foundation/EventBus.js.map +1 -0
  10. package/dist/Foundation/PlatformAdapter.d.ts +101 -0
  11. package/dist/Foundation/PlatformAdapter.d.ts.map +1 -0
  12. package/dist/Foundation/PlatformAdapter.js +417 -0
  13. package/dist/Foundation/PlatformAdapter.js.map +1 -0
  14. package/dist/Foundation/SDKLogger.d.ts +33 -0
  15. package/dist/Foundation/SDKLogger.d.ts.map +1 -0
  16. package/dist/Foundation/SDKLogger.js +82 -0
  17. package/dist/Foundation/SDKLogger.js.map +1 -0
  18. package/dist/Foundation/SherpaONNXBridge.d.ts +134 -0
  19. package/dist/Foundation/SherpaONNXBridge.d.ts.map +1 -0
  20. package/dist/Foundation/SherpaONNXBridge.js +332 -0
  21. package/dist/Foundation/SherpaONNXBridge.js.map +1 -0
  22. package/dist/Foundation/StructOffsets.d.ts +147 -0
  23. package/dist/Foundation/StructOffsets.d.ts.map +1 -0
  24. package/dist/Foundation/StructOffsets.js +161 -0
  25. package/dist/Foundation/StructOffsets.js.map +1 -0
  26. package/dist/Foundation/WASMBridge.d.ts +241 -0
  27. package/dist/Foundation/WASMBridge.d.ts.map +1 -0
  28. package/dist/Foundation/WASMBridge.js +393 -0
  29. package/dist/Foundation/WASMBridge.js.map +1 -0
  30. package/dist/Infrastructure/ArchiveUtility.d.ts +25 -0
  31. package/dist/Infrastructure/ArchiveUtility.d.ts.map +1 -0
  32. package/dist/Infrastructure/ArchiveUtility.js +139 -0
  33. package/dist/Infrastructure/ArchiveUtility.js.map +1 -0
  34. package/dist/Infrastructure/AudioCapture.d.ts +87 -0
  35. package/dist/Infrastructure/AudioCapture.d.ts.map +1 -0
  36. package/dist/Infrastructure/AudioCapture.js +231 -0
  37. package/dist/Infrastructure/AudioCapture.js.map +1 -0
  38. package/dist/Infrastructure/AudioPlayback.d.ts +53 -0
  39. package/dist/Infrastructure/AudioPlayback.d.ts.map +1 -0
  40. package/dist/Infrastructure/AudioPlayback.js +117 -0
  41. package/dist/Infrastructure/AudioPlayback.js.map +1 -0
  42. package/dist/Infrastructure/DeviceCapabilities.d.ts +39 -0
  43. package/dist/Infrastructure/DeviceCapabilities.d.ts.map +1 -0
  44. package/dist/Infrastructure/DeviceCapabilities.js +111 -0
  45. package/dist/Infrastructure/DeviceCapabilities.js.map +1 -0
  46. package/dist/Infrastructure/ExtensionRegistry.d.ts +30 -0
  47. package/dist/Infrastructure/ExtensionRegistry.d.ts.map +1 -0
  48. package/dist/Infrastructure/ExtensionRegistry.js +41 -0
  49. package/dist/Infrastructure/ExtensionRegistry.js.map +1 -0
  50. package/dist/Infrastructure/ModelDownloader.d.ts +98 -0
  51. package/dist/Infrastructure/ModelDownloader.d.ts.map +1 -0
  52. package/dist/Infrastructure/ModelDownloader.js +431 -0
  53. package/dist/Infrastructure/ModelDownloader.js.map +1 -0
  54. package/dist/Infrastructure/ModelLoaderTypes.d.ts +34 -0
  55. package/dist/Infrastructure/ModelLoaderTypes.d.ts.map +1 -0
  56. package/dist/Infrastructure/ModelLoaderTypes.js +12 -0
  57. package/dist/Infrastructure/ModelLoaderTypes.js.map +1 -0
  58. package/dist/Infrastructure/ModelManager.d.ts +219 -0
  59. package/dist/Infrastructure/ModelManager.d.ts.map +1 -0
  60. package/dist/Infrastructure/ModelManager.js +885 -0
  61. package/dist/Infrastructure/ModelManager.js.map +1 -0
  62. package/dist/Infrastructure/ModelRegistry.d.ts +131 -0
  63. package/dist/Infrastructure/ModelRegistry.d.ts.map +1 -0
  64. package/dist/Infrastructure/ModelRegistry.js +122 -0
  65. package/dist/Infrastructure/ModelRegistry.js.map +1 -0
  66. package/dist/Infrastructure/OPFSStorage.d.ts +143 -0
  67. package/dist/Infrastructure/OPFSStorage.d.ts.map +1 -0
  68. package/dist/Infrastructure/OPFSStorage.js +330 -0
  69. package/dist/Infrastructure/OPFSStorage.js.map +1 -0
  70. package/dist/Infrastructure/VLMWorkerBridge.d.ts +211 -0
  71. package/dist/Infrastructure/VLMWorkerBridge.d.ts.map +1 -0
  72. package/dist/Infrastructure/VLMWorkerBridge.js +264 -0
  73. package/dist/Infrastructure/VLMWorkerBridge.js.map +1 -0
  74. package/dist/Infrastructure/VLMWorkerRuntime.d.ts +38 -0
  75. package/dist/Infrastructure/VLMWorkerRuntime.d.ts.map +1 -0
  76. package/dist/Infrastructure/VLMWorkerRuntime.js +503 -0
  77. package/dist/Infrastructure/VLMWorkerRuntime.js.map +1 -0
  78. package/dist/Infrastructure/VideoCapture.d.ts +118 -0
  79. package/dist/Infrastructure/VideoCapture.d.ts.map +1 -0
  80. package/dist/Infrastructure/VideoCapture.js +207 -0
  81. package/dist/Infrastructure/VideoCapture.js.map +1 -0
  82. package/dist/Public/Extensions/DiffusionTypes.d.ts +64 -0
  83. package/dist/Public/Extensions/DiffusionTypes.d.ts.map +1 -0
  84. package/dist/Public/Extensions/DiffusionTypes.js +28 -0
  85. package/dist/Public/Extensions/DiffusionTypes.js.map +1 -0
  86. package/dist/Public/Extensions/EmbeddingsTypes.d.ts +33 -0
  87. package/dist/Public/Extensions/EmbeddingsTypes.d.ts.map +1 -0
  88. package/dist/Public/Extensions/EmbeddingsTypes.js +13 -0
  89. package/dist/Public/Extensions/EmbeddingsTypes.js.map +1 -0
  90. package/dist/Public/Extensions/RunAnywhere+Diffusion.d.ts +44 -0
  91. package/dist/Public/Extensions/RunAnywhere+Diffusion.d.ts.map +1 -0
  92. package/dist/Public/Extensions/RunAnywhere+Diffusion.js +189 -0
  93. package/dist/Public/Extensions/RunAnywhere+Diffusion.js.map +1 -0
  94. package/dist/Public/Extensions/RunAnywhere+Embeddings.d.ts +56 -0
  95. package/dist/Public/Extensions/RunAnywhere+Embeddings.d.ts.map +1 -0
  96. package/dist/Public/Extensions/RunAnywhere+Embeddings.js +240 -0
  97. package/dist/Public/Extensions/RunAnywhere+Embeddings.js.map +1 -0
  98. package/dist/Public/Extensions/RunAnywhere+ModelManagement.d.ts +53 -0
  99. package/dist/Public/Extensions/RunAnywhere+ModelManagement.d.ts.map +1 -0
  100. package/dist/Public/Extensions/RunAnywhere+ModelManagement.js +153 -0
  101. package/dist/Public/Extensions/RunAnywhere+ModelManagement.js.map +1 -0
  102. package/dist/Public/Extensions/RunAnywhere+STT.d.ts +95 -0
  103. package/dist/Public/Extensions/RunAnywhere+STT.d.ts.map +1 -0
  104. package/dist/Public/Extensions/RunAnywhere+STT.js +417 -0
  105. package/dist/Public/Extensions/RunAnywhere+STT.js.map +1 -0
  106. package/dist/Public/Extensions/RunAnywhere+StructuredOutput.d.ts +69 -0
  107. package/dist/Public/Extensions/RunAnywhere+StructuredOutput.d.ts.map +1 -0
  108. package/dist/Public/Extensions/RunAnywhere+StructuredOutput.js +196 -0
  109. package/dist/Public/Extensions/RunAnywhere+StructuredOutput.js.map +1 -0
  110. package/dist/Public/Extensions/RunAnywhere+TTS.d.ts +55 -0
  111. package/dist/Public/Extensions/RunAnywhere+TTS.d.ts.map +1 -0
  112. package/dist/Public/Extensions/RunAnywhere+TTS.js +253 -0
  113. package/dist/Public/Extensions/RunAnywhere+TTS.js.map +1 -0
  114. package/dist/Public/Extensions/RunAnywhere+TextGeneration.d.ts +80 -0
  115. package/dist/Public/Extensions/RunAnywhere+TextGeneration.d.ts.map +1 -0
  116. package/dist/Public/Extensions/RunAnywhere+TextGeneration.js +436 -0
  117. package/dist/Public/Extensions/RunAnywhere+TextGeneration.js.map +1 -0
  118. package/dist/Public/Extensions/RunAnywhere+ToolCalling.d.ts +82 -0
  119. package/dist/Public/Extensions/RunAnywhere+ToolCalling.d.ts.map +1 -0
  120. package/dist/Public/Extensions/RunAnywhere+ToolCalling.js +576 -0
  121. package/dist/Public/Extensions/RunAnywhere+ToolCalling.js.map +1 -0
  122. package/dist/Public/Extensions/RunAnywhere+VAD.d.ts +70 -0
  123. package/dist/Public/Extensions/RunAnywhere+VAD.d.ts.map +1 -0
  124. package/dist/Public/Extensions/RunAnywhere+VAD.js +231 -0
  125. package/dist/Public/Extensions/RunAnywhere+VAD.js.map +1 -0
  126. package/dist/Public/Extensions/RunAnywhere+VLM.d.ts +58 -0
  127. package/dist/Public/Extensions/RunAnywhere+VLM.d.ts.map +1 -0
  128. package/dist/Public/Extensions/RunAnywhere+VLM.js +262 -0
  129. package/dist/Public/Extensions/RunAnywhere+VLM.js.map +1 -0
  130. package/dist/Public/Extensions/RunAnywhere+VoiceAgent.d.ts +49 -0
  131. package/dist/Public/Extensions/RunAnywhere+VoiceAgent.d.ts.map +1 -0
  132. package/dist/Public/Extensions/RunAnywhere+VoiceAgent.js +222 -0
  133. package/dist/Public/Extensions/RunAnywhere+VoiceAgent.js.map +1 -0
  134. package/dist/Public/Extensions/RunAnywhere+VoicePipeline.d.ts +63 -0
  135. package/dist/Public/Extensions/RunAnywhere+VoicePipeline.d.ts.map +1 -0
  136. package/dist/Public/Extensions/RunAnywhere+VoicePipeline.js +168 -0
  137. package/dist/Public/Extensions/RunAnywhere+VoicePipeline.js.map +1 -0
  138. package/dist/Public/Extensions/STTTypes.d.ts +53 -0
  139. package/dist/Public/Extensions/STTTypes.d.ts.map +1 -0
  140. package/dist/Public/Extensions/STTTypes.js +16 -0
  141. package/dist/Public/Extensions/STTTypes.js.map +1 -0
  142. package/dist/Public/Extensions/TTSTypes.d.ts +31 -0
  143. package/dist/Public/Extensions/TTSTypes.d.ts.map +1 -0
  144. package/dist/Public/Extensions/TTSTypes.js +3 -0
  145. package/dist/Public/Extensions/TTSTypes.js.map +1 -0
  146. package/dist/Public/Extensions/ToolCallingTypes.d.ts +78 -0
  147. package/dist/Public/Extensions/ToolCallingTypes.d.ts.map +1 -0
  148. package/dist/Public/Extensions/ToolCallingTypes.js +8 -0
  149. package/dist/Public/Extensions/ToolCallingTypes.js.map +1 -0
  150. package/dist/Public/Extensions/VADTypes.d.ts +30 -0
  151. package/dist/Public/Extensions/VADTypes.d.ts.map +1 -0
  152. package/dist/Public/Extensions/VADTypes.js +8 -0
  153. package/dist/Public/Extensions/VADTypes.js.map +1 -0
  154. package/dist/Public/Extensions/VLMTypes.d.ts +56 -0
  155. package/dist/Public/Extensions/VLMTypes.d.ts.map +1 -0
  156. package/dist/Public/Extensions/VLMTypes.js +24 -0
  157. package/dist/Public/Extensions/VLMTypes.js.map +1 -0
  158. package/dist/Public/Extensions/VoiceAgentTypes.d.ts +42 -0
  159. package/dist/Public/Extensions/VoiceAgentTypes.d.ts.map +1 -0
  160. package/dist/Public/Extensions/VoiceAgentTypes.js +12 -0
  161. package/dist/Public/Extensions/VoiceAgentTypes.js.map +1 -0
  162. package/dist/Public/Extensions/VoicePipelineTypes.d.ts +69 -0
  163. package/dist/Public/Extensions/VoicePipelineTypes.d.ts.map +1 -0
  164. package/dist/Public/Extensions/VoicePipelineTypes.js +9 -0
  165. package/dist/Public/Extensions/VoicePipelineTypes.js.map +1 -0
  166. package/dist/Public/RunAnywhere.d.ts +121 -0
  167. package/dist/Public/RunAnywhere.d.ts.map +1 -0
  168. package/dist/Public/RunAnywhere.js +332 -0
  169. package/dist/Public/RunAnywhere.js.map +1 -0
  170. package/dist/index.d.ts +67 -0
  171. package/dist/index.d.ts.map +1 -0
  172. package/dist/index.js +53 -0
  173. package/dist/index.js.map +1 -0
  174. package/dist/types/LLMTypes.d.ts +48 -0
  175. package/dist/types/LLMTypes.d.ts.map +1 -0
  176. package/dist/types/LLMTypes.js +8 -0
  177. package/dist/types/LLMTypes.js.map +1 -0
  178. package/dist/types/enums.d.ts +144 -0
  179. package/dist/types/enums.d.ts.map +1 -0
  180. package/dist/types/enums.js +159 -0
  181. package/dist/types/enums.js.map +1 -0
  182. package/dist/types/index.d.ts +9 -0
  183. package/dist/types/index.d.ts.map +1 -0
  184. package/dist/types/index.js +8 -0
  185. package/dist/types/index.js.map +1 -0
  186. package/dist/types/models.d.ts +154 -0
  187. package/dist/types/models.d.ts.map +1 -0
  188. package/dist/types/models.js +8 -0
  189. package/dist/types/models.js.map +1 -0
  190. package/dist/workers/vlm-worker.d.ts +9 -0
  191. package/dist/workers/vlm-worker.d.ts.map +1 -0
  192. package/dist/workers/vlm-worker.js +10 -0
  193. package/dist/workers/vlm-worker.js.map +1 -0
  194. package/package.json +62 -0
  195. package/wasm/racommons-webgpu.js +156 -0
  196. package/wasm/racommons-webgpu.wasm +0 -0
  197. package/wasm/racommons.js +126 -0
  198. package/wasm/racommons.wasm +0 -0
  199. package/wasm/sherpa/sherpa-onnx-asr.js +1538 -0
  200. package/wasm/sherpa/sherpa-onnx-glue-original.js +19 -0
  201. package/wasm/sherpa/sherpa-onnx-glue.js +17 -0
  202. package/wasm/sherpa/sherpa-onnx-tts.js +657 -0
  203. package/wasm/sherpa/sherpa-onnx-vad.js +337 -0
  204. package/wasm/sherpa/sherpa-onnx-wave.js +88 -0
  205. package/wasm/sherpa/sherpa-onnx.wasm +0 -0
@@ -0,0 +1,332 @@
1
+ /**
2
+ * RunAnywhere Web SDK - Main Entry Point
3
+ *
4
+ * The public API for the RunAnywhere Web SDK.
5
+ * Mirrors the pattern across all SDKs:
6
+ * - RunAnywhere.swift (iOS) - enum with static methods
7
+ * - RunAnywhere.kt (Kotlin) - object/class
8
+ * - RunAnywhere.ts (React Native) - object literal
9
+ * - RunAnywhere.dart (Flutter) - class
10
+ *
11
+ * All operations flow through the WASM bridge to RACommons C++.
12
+ *
13
+ * Usage:
14
+ * import { RunAnywhere } from '@runanywhere/web';
15
+ *
16
+ * await RunAnywhere.initialize({ environment: 'development' });
17
+ * const result = await RunAnywhere.generate('Hello!', { maxTokens: 100 });
18
+ */
19
+ import { SDKEnvironment, SDKEventType, AccelerationPreference } from '../types/enums';
20
+ import { SDKError, SDKErrorCode } from '../Foundation/ErrorTypes';
21
+ import { EventBus } from '../Foundation/EventBus';
22
+ import { SDKLogger, LogLevel } from '../Foundation/SDKLogger';
23
+ import { WASMBridge } from '../Foundation/WASMBridge';
24
+ import { SherpaONNXBridge } from '../Foundation/SherpaONNXBridge';
25
+ import { PlatformAdapter } from '../Foundation/PlatformAdapter';
26
+ import { loadOffsets } from '../Foundation/StructOffsets';
27
+ import { Offsets } from '../Foundation/StructOffsets';
28
+ import { ModelManager } from '../Infrastructure/ModelManager';
29
+ import { ExtensionRegistry } from '../Infrastructure/ExtensionRegistry';
30
+ // Extension imports for registration and shutdown cleanup
31
+ import { TextGeneration } from './Extensions/RunAnywhere+TextGeneration';
32
+ import { VLM } from './Extensions/RunAnywhere+VLM';
33
+ import { STT } from './Extensions/RunAnywhere+STT';
34
+ import { TTS } from './Extensions/RunAnywhere+TTS';
35
+ import { VAD } from './Extensions/RunAnywhere+VAD';
36
+ import { Embeddings } from './Extensions/RunAnywhere+Embeddings';
37
+ import { Diffusion } from './Extensions/RunAnywhere+Diffusion';
38
+ import { ToolCalling } from './Extensions/RunAnywhere+ToolCalling';
39
+ const logger = new SDKLogger('RunAnywhere');
40
+ // ---------------------------------------------------------------------------
41
+ // Internal State
42
+ // ---------------------------------------------------------------------------
43
+ let _isInitialized = false;
44
+ let _hasCompletedServicesInit = false;
45
+ let _platformAdapter = null;
46
+ let _initOptions = null;
47
+ /** Guard against concurrent initialize() calls */
48
+ let _initializingPromise = null;
49
+ // ---------------------------------------------------------------------------
50
+ // RunAnywhere Public API
51
+ // ---------------------------------------------------------------------------
52
+ export const RunAnywhere = {
53
+ // =========================================================================
54
+ // SDK State
55
+ // =========================================================================
56
+ /** Whether the SDK is initialized (Phase 1 complete) */
57
+ get isInitialized() {
58
+ return _isInitialized;
59
+ },
60
+ /** Whether services are fully ready (Phase 2 complete) */
61
+ get areServicesReady() {
62
+ return _hasCompletedServicesInit;
63
+ },
64
+ /** Current SDK version */
65
+ get version() {
66
+ return '0.1.0';
67
+ },
68
+ /** Current environment */
69
+ get environment() {
70
+ return _initOptions?.environment ?? null;
71
+ },
72
+ /** Access to the event bus */
73
+ get events() {
74
+ return EventBus.shared;
75
+ },
76
+ /** Whether the WASM module is loaded */
77
+ get isWASMLoaded() {
78
+ return WASMBridge.shared.isLoaded;
79
+ },
80
+ /** The active hardware acceleration mode ('webgpu' or 'cpu'). */
81
+ get accelerationMode() {
82
+ return WASMBridge.shared.accelerationMode;
83
+ },
84
+ // =========================================================================
85
+ // Initialization
86
+ // =========================================================================
87
+ /**
88
+ * Initialize the RunAnywhere SDK.
89
+ *
90
+ * This performs:
91
+ * 1. Load RACommons WASM module
92
+ * 2. Register JS platform adapter callbacks
93
+ * 3. Call rac_init() (same C function as iOS/Android)
94
+ * 4. Mark SDK as initialized
95
+ *
96
+ * @param options - SDK initialization options
97
+ * @param wasmUrl - Optional URL to the racommons.js glue file
98
+ *
99
+ * @example
100
+ * ```typescript
101
+ * // Development mode (default)
102
+ * await RunAnywhere.initialize();
103
+ *
104
+ * // Production mode
105
+ * await RunAnywhere.initialize({
106
+ * apiKey: 'your-key',
107
+ * baseURL: 'https://api.runanywhere.ai',
108
+ * environment: 'production',
109
+ * });
110
+ * ```
111
+ */
112
+ async initialize(options = {}, wasmUrl) {
113
+ // Guard: already done
114
+ if (_isInitialized) {
115
+ logger.debug('Already initialized');
116
+ return;
117
+ }
118
+ // Guard: another call is already in flight – wait for it instead of racing
119
+ if (_initializingPromise) {
120
+ logger.debug('Initialization already in progress, awaiting...');
121
+ return _initializingPromise;
122
+ }
123
+ _initializingPromise = (async () => {
124
+ try {
125
+ const env = options.environment ?? SDKEnvironment.Development;
126
+ _initOptions = { ...options, environment: env };
127
+ // Configure logging
128
+ if (options.debug) {
129
+ SDKLogger.level = LogLevel.Debug;
130
+ }
131
+ logger.info(`Initializing RunAnywhere Web SDK (${env})...`);
132
+ // Phase 1: Load WASM module (auto-detects WebGPU and loads correct variant)
133
+ const bridge = WASMBridge.shared;
134
+ const acceleration = options.acceleration ?? AccelerationPreference.Auto;
135
+ await bridge.load(wasmUrl, options.webgpuWasmUrl, acceleration);
136
+ logger.info(`Hardware acceleration: ${bridge.accelerationMode}`);
137
+ // Emit acceleration mode event so app UIs can show a badge
138
+ EventBus.shared.emit('sdk.accelerationMode', SDKEventType.Device, {
139
+ mode: bridge.accelerationMode,
140
+ });
141
+ // Phase 1b: Load struct field offsets from the WASM module.
142
+ // This must happen before any struct read/write in the SDK.
143
+ loadOffsets(bridge.module);
144
+ // Phase 2: Register platform adapter
145
+ _platformAdapter = new PlatformAdapter();
146
+ _platformAdapter.register();
147
+ // Phase 3: Initialize RACommons core
148
+ const m = bridge.module;
149
+ // Create rac_config_t in WASM memory
150
+ const configSize = m._rac_wasm_sizeof_config();
151
+ const configPtr = m._malloc(configSize);
152
+ // Zero-initialize
153
+ for (let i = 0; i < configSize; i++) {
154
+ m.setValue(configPtr + i, 0, 'i8');
155
+ }
156
+ // Set platform_adapter pointer (offset 0) -- always first field
157
+ m.setValue(configPtr, _platformAdapter.getAdapterPtr(), '*');
158
+ // Set log_level using compiler-provided offset
159
+ const logLevel = options.debug ? 1 : 2; // DEBUG=1, INFO=2
160
+ m.setValue(configPtr + Offsets.config.logLevel, logLevel, 'i32');
161
+ // {async: true} lets JSPI suspend during WebGPU adapter/device init.
162
+ const result = await bridge.callFunction('rac_init', 'number', ['number'], [configPtr], { async: true });
163
+ m._free(configPtr);
164
+ if (result !== 0) {
165
+ const errMsg = bridge.getErrorMessage(result);
166
+ throw new SDKError(SDKErrorCode.InitializationFailed, `rac_init failed: ${errMsg}`);
167
+ }
168
+ // Phase 4: Register available backends
169
+ // The llama.cpp LLM backend must be registered before any LLM/VLM operations.
170
+ // Check if the function exists (only present when built with --llamacpp).
171
+ if (typeof m['_rac_backend_llamacpp_register'] === 'function') {
172
+ const regResult = await bridge.callFunction('rac_backend_llamacpp_register', 'number', [], [], { async: true });
173
+ if (regResult === 0) {
174
+ logger.info('llama.cpp LLM backend registered');
175
+ }
176
+ else {
177
+ logger.warning(`llama.cpp backend registration returned: ${regResult}`);
178
+ }
179
+ }
180
+ // Phase 5: Register model loaders with ModelManager.
181
+ // This keeps the dependency flow correct: Public -> Infrastructure.
182
+ ModelManager.setLLMLoader(TextGeneration);
183
+ ModelManager.setSTTLoader(STT);
184
+ ModelManager.setTTSLoader(TTS);
185
+ ModelManager.setVADLoader(VAD);
186
+ // Phase 6: Register extensions with the lifecycle registry.
187
+ // Order matters: low-level components first (cleaned up last).
188
+ ExtensionRegistry.register(TextGeneration);
189
+ ExtensionRegistry.register(STT);
190
+ ExtensionRegistry.register(TTS);
191
+ ExtensionRegistry.register(VAD);
192
+ ExtensionRegistry.register(VLM);
193
+ ExtensionRegistry.register(Embeddings);
194
+ ExtensionRegistry.register(Diffusion);
195
+ ExtensionRegistry.register(ToolCalling);
196
+ _isInitialized = true;
197
+ _hasCompletedServicesInit = true;
198
+ logger.info('RunAnywhere Web SDK initialized successfully');
199
+ EventBus.shared.emit('sdk.initialized', SDKEventType.Initialization, {
200
+ environment: env,
201
+ accelerationMode: bridge.accelerationMode,
202
+ });
203
+ }
204
+ finally {
205
+ _initializingPromise = null;
206
+ }
207
+ })();
208
+ return _initializingPromise;
209
+ },
210
+ // =========================================================================
211
+ // Model Management (mirrors iOS RunAnywhere.registerModel / loadModel / etc.)
212
+ // =========================================================================
213
+ /**
214
+ * Register a catalog of models for download and loading.
215
+ * @param models - Compact model definitions to register
216
+ */
217
+ registerModels(models) {
218
+ ModelManager.registerModels(models);
219
+ },
220
+ /**
221
+ * Set the VLM (vision-language model) loader implementation.
222
+ * The app provides an implementation (typically backed by a Web Worker).
223
+ */
224
+ setVLMLoader(loader) {
225
+ ModelManager.setVLMLoader(loader);
226
+ },
227
+ /**
228
+ * Download a model (and any companion files) to persistent OPFS storage.
229
+ * @param modelId - The model ID to download
230
+ */
231
+ async downloadModel(modelId) {
232
+ return ModelManager.downloadModel(modelId);
233
+ },
234
+ /**
235
+ * Load a downloaded model into the inference engine.
236
+ * @param modelId - The model ID to load
237
+ * @returns true if loaded successfully
238
+ */
239
+ async loadModel(modelId) {
240
+ return ModelManager.loadModel(modelId);
241
+ },
242
+ /**
243
+ * Get all registered models with their current status.
244
+ */
245
+ availableModels() {
246
+ return ModelManager.getModels();
247
+ },
248
+ /**
249
+ * Get the currently loaded model for a given category.
250
+ * @param category - Optional model category filter
251
+ */
252
+ getLoadedModel(category) {
253
+ return ModelManager.getLoadedModel(category);
254
+ },
255
+ /**
256
+ * Unload ALL loaded models and free their resources.
257
+ *
258
+ * Useful when switching between features/tabs to ensure clean state
259
+ * and reclaim memory. Called automatically by `loadModel()`, but can
260
+ * also be called explicitly by the app.
261
+ */
262
+ async unloadAll() {
263
+ return ModelManager.unloadAll();
264
+ },
265
+ /**
266
+ * Delete a downloaded model from OPFS storage.
267
+ * @param modelId - The model ID to delete
268
+ */
269
+ async deleteModel(modelId) {
270
+ return ModelManager.deleteModel(modelId);
271
+ },
272
+ // =========================================================================
273
+ // Shutdown
274
+ // =========================================================================
275
+ /**
276
+ * Shutdown the SDK and release all resources.
277
+ *
278
+ * Cleans up extensions in reverse dependency order so that
279
+ * higher-level components (e.g. VoiceAgent pipeline) are torn
280
+ * down before the lower-level ones they depend on.
281
+ */
282
+ shutdown() {
283
+ logger.info('Shutting down RunAnywhere Web SDK...');
284
+ // ------------------------------------------------------------------
285
+ // 1. Clean up all registered extensions in reverse dependency order.
286
+ // Extensions were registered low-level first, so reverse cleanup
287
+ // tears down high-level orchestrations before their dependencies.
288
+ // ------------------------------------------------------------------
289
+ ExtensionRegistry.cleanupAll();
290
+ // ------------------------------------------------------------------
291
+ // 2. Shut down WASM bridges
292
+ // ------------------------------------------------------------------
293
+ // SherpaONNXBridge (STT/TTS/VAD WASM module)
294
+ try {
295
+ SherpaONNXBridge.shared.shutdown();
296
+ }
297
+ catch { /* ignore during shutdown */ }
298
+ // Platform adapter
299
+ if (_platformAdapter) {
300
+ try {
301
+ _platformAdapter.cleanup();
302
+ }
303
+ catch { /* ignore during shutdown */ }
304
+ _platformAdapter = null;
305
+ }
306
+ // RACommons WASM bridge
307
+ try {
308
+ WASMBridge.shared.shutdown();
309
+ }
310
+ catch { /* ignore during shutdown */ }
311
+ // ------------------------------------------------------------------
312
+ // 3. Reset SDK state
313
+ // ------------------------------------------------------------------
314
+ EventBus.reset();
315
+ ExtensionRegistry.reset();
316
+ _isInitialized = false;
317
+ _hasCompletedServicesInit = false;
318
+ _initOptions = null;
319
+ _initializingPromise = null;
320
+ logger.info('RunAnywhere Web SDK shut down');
321
+ },
322
+ // =========================================================================
323
+ // Reset (testing)
324
+ // =========================================================================
325
+ /**
326
+ * Reset SDK state (for testing purposes).
327
+ */
328
+ reset() {
329
+ RunAnywhere.shutdown();
330
+ },
331
+ };
332
+ //# sourceMappingURL=RunAnywhere.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RunAnywhere.js","sourceRoot":"","sources":["../../src/Public/RunAnywhere.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,67 @@
1
+ /**
2
+ * RunAnywhere Web SDK
3
+ *
4
+ * On-device AI inference in the browser via RACommons WebAssembly.
5
+ *
6
+ * @packageDocumentation
7
+ *
8
+ * @example
9
+ * ```typescript
10
+ * import { RunAnywhere } from '@runanywhere/web';
11
+ *
12
+ * // Initialize
13
+ * await RunAnywhere.initialize({ environment: 'development' });
14
+ *
15
+ * // Check capabilities
16
+ * console.log('WebGPU:', RunAnywhere.isWASMLoaded);
17
+ *
18
+ * // Future: Generate text
19
+ * // const result = await RunAnywhere.generate('Hello!', { maxTokens: 100 });
20
+ * ```
21
+ */
22
+ export { RunAnywhere } from './Public/RunAnywhere';
23
+ export { TextGeneration } from './Public/Extensions/RunAnywhere+TextGeneration';
24
+ export { STT, STTModelType } from './Public/Extensions/RunAnywhere+STT';
25
+ export type { STTModelConfig, STTWhisperFiles, STTZipformerFiles, STTParaformerFiles, STTTranscriptionResult, STTWord, STTTranscribeOptions, STTStreamCallback, STTStreamingSession, } from './Public/Extensions/RunAnywhere+STT';
26
+ export { TTS } from './Public/Extensions/RunAnywhere+TTS';
27
+ export type { TTSVoiceConfig, TTSSynthesisResult, TTSSynthesizeOptions } from './Public/Extensions/RunAnywhere+TTS';
28
+ export { VAD, SpeechActivity } from './Public/Extensions/RunAnywhere+VAD';
29
+ export type { SpeechActivityCallback, VADModelConfig, SpeechSegment } from './Public/Extensions/RunAnywhere+VAD';
30
+ export { VoiceAgent, VoiceAgentSession, PipelineState } from './Public/Extensions/RunAnywhere+VoiceAgent';
31
+ export type { VoiceAgentModels, VoiceTurnResult, VoiceAgentEventData, VoiceAgentEventCallback } from './Public/Extensions/RunAnywhere+VoiceAgent';
32
+ export { VoicePipeline } from './Public/Extensions/RunAnywhere+VoicePipeline';
33
+ export type { VoicePipelineCallbacks, VoicePipelineOptions, VoicePipelineTurnResult } from './Public/Extensions/VoicePipelineTypes';
34
+ export { VLM, VLMImageFormat, VLMModelFamily } from './Public/Extensions/RunAnywhere+VLM';
35
+ export type { VLMImage, VLMGenerationOptions, VLMGenerationResult, VLMStreamingResult } from './Public/Extensions/RunAnywhere+VLM';
36
+ export { ToolCalling, toToolValue, fromToolValue, getStringArg, getNumberArg } from './Public/Extensions/RunAnywhere+ToolCalling';
37
+ export type { ToolValue, ToolParameterType, ToolParameter, ToolDefinition, ToolCall, ToolResult, ToolCallFormat, ToolCallingOptions, ToolCallingResult, ToolExecutor, } from './Public/Extensions/RunAnywhere+ToolCalling';
38
+ export { StructuredOutput } from './Public/Extensions/RunAnywhere+StructuredOutput';
39
+ export type { StructuredOutputConfig, StructuredOutputValidation } from './Public/Extensions/RunAnywhere+StructuredOutput';
40
+ export { Diffusion } from './Public/Extensions/RunAnywhere+Diffusion';
41
+ export { DiffusionScheduler, DiffusionModelVariant, DiffusionMode } from './Public/Extensions/RunAnywhere+Diffusion';
42
+ export type { DiffusionGenerationOptions, DiffusionGenerationResult, DiffusionProgressCallback } from './Public/Extensions/RunAnywhere+Diffusion';
43
+ export { Embeddings } from './Public/Extensions/RunAnywhere+Embeddings';
44
+ export { EmbeddingsNormalize, EmbeddingsPooling } from './Public/Extensions/RunAnywhere+Embeddings';
45
+ export type { EmbeddingVector, EmbeddingsResult, EmbeddingsOptions } from './Public/Extensions/RunAnywhere+Embeddings';
46
+ export * from './types';
47
+ export { SDKError, SDKErrorCode } from './Foundation/ErrorTypes';
48
+ export { SDKLogger, LogLevel } from './Foundation/SDKLogger';
49
+ export { EventBus } from './Foundation/EventBus';
50
+ export type { EventListener, Unsubscribe, SDKEventEnvelope } from './Foundation/EventBus';
51
+ export { detectCapabilities, getDeviceInfo } from './Infrastructure/DeviceCapabilities';
52
+ export type { WebCapabilities } from './Infrastructure/DeviceCapabilities';
53
+ export { AudioCapture } from './Infrastructure/AudioCapture';
54
+ export type { AudioChunkCallback, AudioLevelCallback, AudioCaptureConfig } from './Infrastructure/AudioCapture';
55
+ export { VideoCapture } from './Infrastructure/VideoCapture';
56
+ export type { VideoCaptureConfig, CapturedFrame } from './Infrastructure/VideoCapture';
57
+ export { AudioPlayback } from './Infrastructure/AudioPlayback';
58
+ export type { PlaybackCompleteCallback, PlaybackConfig } from './Infrastructure/AudioPlayback';
59
+ /** @advanced — Most consumers should use `RunAnywhere.downloadModel / loadModel / registerModels` instead. */
60
+ export { ModelManager } from './Infrastructure/ModelManager';
61
+ export type { ManagedModel, CompactModelDef, DownloadProgress, ModelFileDescriptor, ArtifactType, VLMLoader, VLMLoadParams, } from './Infrastructure/ModelManager';
62
+ export type { QuotaCheckResult, EvictionCandidateInfo } from './Infrastructure/ModelDownloader';
63
+ export { OPFSStorage } from './Infrastructure/OPFSStorage';
64
+ export type { StoredModelInfo, MetadataMap, ModelMetadata } from './Infrastructure/OPFSStorage';
65
+ export { VLMWorkerBridge } from './Infrastructure/VLMWorkerBridge';
66
+ export type { VLMWorkerResult, VLMLoadModelParams, VLMProcessOptions, VLMWorkerCommand, VLMWorkerResponse, ProgressListener, } from './Infrastructure/VLMWorkerBridge';
67
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js ADDED
@@ -0,0 +1,53 @@
1
+ /**
2
+ * RunAnywhere Web SDK
3
+ *
4
+ * On-device AI inference in the browser via RACommons WebAssembly.
5
+ *
6
+ * @packageDocumentation
7
+ *
8
+ * @example
9
+ * ```typescript
10
+ * import { RunAnywhere } from '@runanywhere/web';
11
+ *
12
+ * // Initialize
13
+ * await RunAnywhere.initialize({ environment: 'development' });
14
+ *
15
+ * // Check capabilities
16
+ * console.log('WebGPU:', RunAnywhere.isWASMLoaded);
17
+ *
18
+ * // Future: Generate text
19
+ * // const result = await RunAnywhere.generate('Hello!', { maxTokens: 100 });
20
+ * ```
21
+ */
22
+ // Main entry point
23
+ export { RunAnywhere } from './Public/RunAnywhere';
24
+ // Extensions
25
+ export { TextGeneration } from './Public/Extensions/RunAnywhere+TextGeneration';
26
+ export { STT, STTModelType } from './Public/Extensions/RunAnywhere+STT';
27
+ export { TTS } from './Public/Extensions/RunAnywhere+TTS';
28
+ export { VAD, SpeechActivity } from './Public/Extensions/RunAnywhere+VAD';
29
+ export { VoiceAgent, VoiceAgentSession, PipelineState } from './Public/Extensions/RunAnywhere+VoiceAgent';
30
+ export { VoicePipeline } from './Public/Extensions/RunAnywhere+VoicePipeline';
31
+ export { VLM, VLMImageFormat, VLMModelFamily } from './Public/Extensions/RunAnywhere+VLM';
32
+ export { ToolCalling, toToolValue, fromToolValue, getStringArg, getNumberArg } from './Public/Extensions/RunAnywhere+ToolCalling';
33
+ export { StructuredOutput } from './Public/Extensions/RunAnywhere+StructuredOutput';
34
+ export { Diffusion } from './Public/Extensions/RunAnywhere+Diffusion';
35
+ export { DiffusionScheduler, DiffusionModelVariant, DiffusionMode } from './Public/Extensions/RunAnywhere+Diffusion';
36
+ export { Embeddings } from './Public/Extensions/RunAnywhere+Embeddings';
37
+ export { EmbeddingsNormalize, EmbeddingsPooling } from './Public/Extensions/RunAnywhere+Embeddings';
38
+ // Types
39
+ export * from './types';
40
+ // Foundation
41
+ export { SDKError, SDKErrorCode } from './Foundation/ErrorTypes';
42
+ export { SDKLogger, LogLevel } from './Foundation/SDKLogger';
43
+ export { EventBus } from './Foundation/EventBus';
44
+ // Infrastructure
45
+ export { detectCapabilities, getDeviceInfo } from './Infrastructure/DeviceCapabilities';
46
+ export { AudioCapture } from './Infrastructure/AudioCapture';
47
+ export { VideoCapture } from './Infrastructure/VideoCapture';
48
+ export { AudioPlayback } from './Infrastructure/AudioPlayback';
49
+ /** @advanced — Most consumers should use `RunAnywhere.downloadModel / loadModel / registerModels` instead. */
50
+ export { ModelManager } from './Infrastructure/ModelManager';
51
+ export { OPFSStorage } from './Infrastructure/OPFSStorage';
52
+ export { VLMWorkerBridge } from './Infrastructure/VLMWorkerBridge';
53
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,mBAAmB;AACnB,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAEnD,aAAa;AACb,OAAO,EAAE,cAAc,EAAE,MAAM,gDAAgD,CAAC;AAChF,OAAO,EAAE,GAAG,EAAE,YAAY,EAAE,MAAM,qCAAqC,CAAC;AAKxE,OAAO,EAAE,GAAG,EAAE,MAAM,qCAAqC,CAAC;AAE1D,OAAO,EAAE,GAAG,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAC;AAE1E,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,4CAA4C,CAAC;AAE1G,OAAO,EAAE,aAAa,EAAE,MAAM,+CAA+C,CAAC;AAE9E,OAAO,EAAE,GAAG,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAC;AAE1F,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,aAAa,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,6CAA6C,CAAC;AAKlI,OAAO,EAAE,gBAAgB,EAAE,MAAM,kDAAkD,CAAC;AAEpF,OAAO,EAAE,SAAS,EAAE,MAAM,2CAA2C,CAAC;AACtE,OAAO,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,aAAa,EAAE,MAAM,2CAA2C,CAAC;AAErH,OAAO,EAAE,UAAU,EAAE,MAAM,4CAA4C,CAAC;AACxE,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,4CAA4C,CAAC;AAGpG,QAAQ;AACR,cAAc,SAAS,CAAC;AAExB,aAAa;AACb,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAGjD,iBAAiB;AACjB,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAC;AAExF,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAE7D,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAE7D,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAE/D,8GAA8G;AAC9G,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAM7D,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAE3D,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC"}
@@ -0,0 +1,48 @@
1
+ /**
2
+ * RunAnywhere Web SDK - LLM Types
3
+ *
4
+ * Mirrored from: sdk/runanywhere-react-native/packages/core/src/types/LLMTypes.ts
5
+ * Source of truth: sdk/runanywhere-swift/Sources/RunAnywhere/Public/Extensions/LLM/LLMTypes.swift
6
+ */
7
+ import type { HardwareAcceleration, LLMFramework } from './enums';
8
+ export interface LLMGenerationOptions {
9
+ maxTokens?: number;
10
+ temperature?: number;
11
+ topP?: number;
12
+ topK?: number;
13
+ stopSequences?: string[];
14
+ systemPrompt?: string;
15
+ streamingEnabled?: boolean;
16
+ }
17
+ export interface LLMGenerationResult {
18
+ text: string;
19
+ thinkingContent?: string;
20
+ inputTokens: number;
21
+ tokensUsed: number;
22
+ modelUsed: string;
23
+ latencyMs: number;
24
+ framework: LLMFramework;
25
+ hardwareUsed: HardwareAcceleration;
26
+ tokensPerSecond: number;
27
+ timeToFirstTokenMs?: number;
28
+ thinkingTokens: number;
29
+ responseTokens: number;
30
+ }
31
+ export interface LLMStreamingResult {
32
+ stream: AsyncIterable<string>;
33
+ result: Promise<LLMGenerationResult>;
34
+ cancel: () => void;
35
+ }
36
+ export interface LLMStreamingMetrics {
37
+ fullText: string;
38
+ tokenCount: number;
39
+ timeToFirstTokenMs?: number;
40
+ totalTimeMs: number;
41
+ tokensPerSecond: number;
42
+ completed: boolean;
43
+ error?: string;
44
+ }
45
+ export type LLMTokenCallback = (token: string) => void;
46
+ export type LLMStreamCompleteCallback = (result: LLMGenerationResult) => void;
47
+ export type LLMStreamErrorCallback = (error: Error) => void;
48
+ //# sourceMappingURL=LLMTypes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LLMTypes.d.ts","sourceRoot":"","sources":["../../src/types/LLMTypes.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,oBAAoB,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAElE,MAAM,WAAW,oBAAoB;IACnC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,YAAY,CAAC;IACxB,YAAY,EAAE,oBAAoB,CAAC;IACnC,eAAe,EAAE,MAAM,CAAC;IACxB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IAC9B,MAAM,EAAE,OAAO,CAAC,mBAAmB,CAAC,CAAC;IACrC,MAAM,EAAE,MAAM,IAAI,CAAC;CACpB;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;IACxB,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,MAAM,gBAAgB,GAAG,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;AACvD,MAAM,MAAM,yBAAyB,GAAG,CAAC,MAAM,EAAE,mBAAmB,KAAK,IAAI,CAAC;AAC9E,MAAM,MAAM,sBAAsB,GAAG,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * RunAnywhere Web SDK - LLM Types
3
+ *
4
+ * Mirrored from: sdk/runanywhere-react-native/packages/core/src/types/LLMTypes.ts
5
+ * Source of truth: sdk/runanywhere-swift/Sources/RunAnywhere/Public/Extensions/LLM/LLMTypes.swift
6
+ */
7
+ export {};
8
+ //# sourceMappingURL=LLMTypes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LLMTypes.js","sourceRoot":"","sources":["../../src/types/LLMTypes.ts"],"names":[],"mappings":"AAAA;;;;;GAKG"}