@runanywhere/web 0.1.0-beta.5 → 0.1.0-beta.6

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 (160) hide show
  1. package/dist/Foundation/SherpaONNXBridge.d.ts +147 -0
  2. package/dist/Foundation/SherpaONNXBridge.d.ts.map +1 -0
  3. package/dist/Foundation/SherpaONNXBridge.js +345 -0
  4. package/dist/Foundation/SherpaONNXBridge.js.map +1 -0
  5. package/dist/Foundation/StructOffsets.d.ts +5 -33
  6. package/dist/Foundation/StructOffsets.d.ts.map +1 -1
  7. package/dist/Foundation/StructOffsets.js +94 -128
  8. package/dist/Foundation/StructOffsets.js.map +1 -1
  9. package/dist/Infrastructure/AudioCapture.d.ts +99 -0
  10. package/dist/Infrastructure/AudioCapture.d.ts.map +1 -0
  11. package/dist/Infrastructure/AudioCapture.js +264 -0
  12. package/dist/Infrastructure/AudioCapture.js.map +1 -0
  13. package/dist/Infrastructure/AudioPlayback.d.ts +53 -0
  14. package/dist/Infrastructure/AudioPlayback.d.ts.map +1 -0
  15. package/dist/Infrastructure/AudioPlayback.js +117 -0
  16. package/dist/Infrastructure/AudioPlayback.js.map +1 -0
  17. package/dist/Infrastructure/ModelDownloader.d.ts +5 -16
  18. package/dist/Infrastructure/ModelDownloader.d.ts.map +1 -1
  19. package/dist/Infrastructure/ModelDownloader.js +7 -54
  20. package/dist/Infrastructure/ModelDownloader.js.map +1 -1
  21. package/dist/Infrastructure/ModelLoaderTypes.d.ts +11 -76
  22. package/dist/Infrastructure/ModelLoaderTypes.d.ts.map +1 -1
  23. package/dist/Infrastructure/ModelLoaderTypes.js +1 -7
  24. package/dist/Infrastructure/ModelLoaderTypes.js.map +1 -1
  25. package/dist/Infrastructure/ModelManager.d.ts +104 -30
  26. package/dist/Infrastructure/ModelManager.d.ts.map +1 -1
  27. package/dist/Infrastructure/ModelManager.js +546 -209
  28. package/dist/Infrastructure/ModelManager.js.map +1 -1
  29. package/dist/Infrastructure/ModelRegistry.d.ts +8 -6
  30. package/dist/Infrastructure/ModelRegistry.d.ts.map +1 -1
  31. package/dist/Infrastructure/ModelRegistry.js +4 -11
  32. package/dist/Infrastructure/ModelRegistry.js.map +1 -1
  33. package/dist/Infrastructure/VLMWorkerBridge.d.ts +211 -0
  34. package/dist/Infrastructure/VLMWorkerBridge.d.ts.map +1 -0
  35. package/dist/Infrastructure/VLMWorkerBridge.js +264 -0
  36. package/dist/Infrastructure/VLMWorkerBridge.js.map +1 -0
  37. package/dist/Infrastructure/VLMWorkerRuntime.d.ts +38 -0
  38. package/dist/Infrastructure/VLMWorkerRuntime.d.ts.map +1 -0
  39. package/dist/Infrastructure/VLMWorkerRuntime.js +503 -0
  40. package/dist/Infrastructure/VLMWorkerRuntime.js.map +1 -0
  41. package/dist/Infrastructure/VideoCapture.d.ts +130 -0
  42. package/dist/Infrastructure/VideoCapture.d.ts.map +1 -0
  43. package/dist/Infrastructure/VideoCapture.js +236 -0
  44. package/dist/Infrastructure/VideoCapture.js.map +1 -0
  45. package/dist/Public/Extensions/DiffusionTypes.d.ts +64 -0
  46. package/dist/Public/Extensions/DiffusionTypes.d.ts.map +1 -0
  47. package/dist/Public/Extensions/DiffusionTypes.js +28 -0
  48. package/dist/Public/Extensions/DiffusionTypes.js.map +1 -0
  49. package/dist/Public/Extensions/EmbeddingsTypes.d.ts +33 -0
  50. package/dist/Public/Extensions/EmbeddingsTypes.d.ts.map +1 -0
  51. package/dist/Public/Extensions/EmbeddingsTypes.js +13 -0
  52. package/dist/Public/Extensions/EmbeddingsTypes.js.map +1 -0
  53. package/dist/Public/Extensions/RunAnywhere+Diffusion.d.ts +44 -0
  54. package/dist/Public/Extensions/RunAnywhere+Diffusion.d.ts.map +1 -0
  55. package/dist/Public/Extensions/RunAnywhere+Diffusion.js +189 -0
  56. package/dist/Public/Extensions/RunAnywhere+Diffusion.js.map +1 -0
  57. package/dist/Public/Extensions/RunAnywhere+Embeddings.d.ts +56 -0
  58. package/dist/Public/Extensions/RunAnywhere+Embeddings.d.ts.map +1 -0
  59. package/dist/Public/Extensions/RunAnywhere+Embeddings.js +240 -0
  60. package/dist/Public/Extensions/RunAnywhere+Embeddings.js.map +1 -0
  61. package/dist/Public/Extensions/RunAnywhere+STT.d.ts +97 -0
  62. package/dist/Public/Extensions/RunAnywhere+STT.d.ts.map +1 -0
  63. package/dist/Public/Extensions/RunAnywhere+STT.js +417 -0
  64. package/dist/Public/Extensions/RunAnywhere+STT.js.map +1 -0
  65. package/dist/Public/Extensions/RunAnywhere+StructuredOutput.d.ts +69 -0
  66. package/dist/Public/Extensions/RunAnywhere+StructuredOutput.d.ts.map +1 -0
  67. package/dist/Public/Extensions/RunAnywhere+StructuredOutput.js +196 -0
  68. package/dist/Public/Extensions/RunAnywhere+StructuredOutput.js.map +1 -0
  69. package/dist/Public/Extensions/RunAnywhere+TTS.d.ts +55 -0
  70. package/dist/Public/Extensions/RunAnywhere+TTS.d.ts.map +1 -0
  71. package/dist/Public/Extensions/RunAnywhere+TTS.js +253 -0
  72. package/dist/Public/Extensions/RunAnywhere+TTS.js.map +1 -0
  73. package/dist/Public/Extensions/RunAnywhere+TextGeneration.d.ts +80 -0
  74. package/dist/Public/Extensions/RunAnywhere+TextGeneration.d.ts.map +1 -0
  75. package/dist/Public/Extensions/RunAnywhere+TextGeneration.js +470 -0
  76. package/dist/Public/Extensions/RunAnywhere+TextGeneration.js.map +1 -0
  77. package/dist/Public/Extensions/RunAnywhere+ToolCalling.d.ts +82 -0
  78. package/dist/Public/Extensions/RunAnywhere+ToolCalling.d.ts.map +1 -0
  79. package/dist/Public/Extensions/RunAnywhere+ToolCalling.js +576 -0
  80. package/dist/Public/Extensions/RunAnywhere+ToolCalling.js.map +1 -0
  81. package/dist/Public/Extensions/RunAnywhere+VAD.d.ts +70 -0
  82. package/dist/Public/Extensions/RunAnywhere+VAD.d.ts.map +1 -0
  83. package/dist/Public/Extensions/RunAnywhere+VAD.js +231 -0
  84. package/dist/Public/Extensions/RunAnywhere+VAD.js.map +1 -0
  85. package/dist/Public/Extensions/RunAnywhere+VLM.d.ts +58 -0
  86. package/dist/Public/Extensions/RunAnywhere+VLM.d.ts.map +1 -0
  87. package/dist/Public/Extensions/RunAnywhere+VLM.js +262 -0
  88. package/dist/Public/Extensions/RunAnywhere+VLM.js.map +1 -0
  89. package/dist/Public/Extensions/RunAnywhere+VoicePipeline.d.ts +29 -3
  90. package/dist/Public/Extensions/RunAnywhere+VoicePipeline.d.ts.map +1 -1
  91. package/dist/Public/Extensions/RunAnywhere+VoicePipeline.js +42 -46
  92. package/dist/Public/Extensions/RunAnywhere+VoicePipeline.js.map +1 -1
  93. package/dist/Public/Extensions/STTTypes.d.ts +61 -0
  94. package/dist/Public/Extensions/STTTypes.d.ts.map +1 -0
  95. package/dist/Public/Extensions/STTTypes.js +16 -0
  96. package/dist/Public/Extensions/STTTypes.js.map +1 -0
  97. package/dist/Public/Extensions/TTSTypes.d.ts +31 -0
  98. package/dist/Public/Extensions/TTSTypes.d.ts.map +1 -0
  99. package/dist/Public/Extensions/TTSTypes.js +3 -0
  100. package/dist/Public/Extensions/TTSTypes.js.map +1 -0
  101. package/dist/Public/Extensions/ToolCallingTypes.d.ts +78 -0
  102. package/dist/Public/Extensions/ToolCallingTypes.d.ts.map +1 -0
  103. package/dist/Public/Extensions/ToolCallingTypes.js +8 -0
  104. package/dist/Public/Extensions/ToolCallingTypes.js.map +1 -0
  105. package/dist/Public/Extensions/VADTypes.d.ts +30 -0
  106. package/dist/Public/Extensions/VADTypes.d.ts.map +1 -0
  107. package/dist/Public/Extensions/VADTypes.js +8 -0
  108. package/dist/Public/Extensions/VADTypes.js.map +1 -0
  109. package/dist/Public/Extensions/VLMTypes.d.ts +56 -0
  110. package/dist/Public/Extensions/VLMTypes.d.ts.map +1 -0
  111. package/dist/Public/Extensions/VLMTypes.js +24 -0
  112. package/dist/Public/Extensions/VLMTypes.js.map +1 -0
  113. package/dist/Public/Extensions/VoicePipelineTypes.d.ts +37 -28
  114. package/dist/Public/Extensions/VoicePipelineTypes.d.ts.map +1 -1
  115. package/dist/Public/Extensions/VoicePipelineTypes.js +1 -4
  116. package/dist/Public/Extensions/VoicePipelineTypes.js.map +1 -1
  117. package/dist/Public/RunAnywhere.d.ts +61 -65
  118. package/dist/Public/RunAnywhere.d.ts.map +1 -1
  119. package/dist/Public/RunAnywhere.js +141 -193
  120. package/dist/Public/RunAnywhere.js.map +1 -1
  121. package/dist/index.d.ts +39 -23
  122. package/dist/index.d.ts.map +1 -1
  123. package/dist/index.js +31 -19
  124. package/dist/index.js.map +1 -1
  125. package/dist/types/LLMTypes.d.ts +48 -0
  126. package/dist/types/LLMTypes.d.ts.map +1 -0
  127. package/dist/types/LLMTypes.js +8 -0
  128. package/dist/types/LLMTypes.js.map +1 -0
  129. package/dist/types/index.d.ts +1 -0
  130. package/dist/types/index.d.ts.map +1 -1
  131. package/dist/types/index.js +0 -1
  132. package/dist/types/index.js.map +1 -1
  133. package/dist/workers/vlm-worker.d.ts +9 -0
  134. package/dist/workers/vlm-worker.d.ts.map +1 -0
  135. package/dist/workers/vlm-worker.js +10 -0
  136. package/dist/workers/vlm-worker.js.map +1 -0
  137. package/package.json +5 -1
  138. package/wasm/racommons-webgpu.js +156 -0
  139. package/wasm/racommons-webgpu.wasm +0 -0
  140. package/wasm/racommons.js +91 -91
  141. package/wasm/racommons.wasm +0 -0
  142. package/wasm/sherpa/sherpa-onnx-asr.js +1538 -0
  143. package/wasm/sherpa/sherpa-onnx-glue-original.js +19 -0
  144. package/wasm/sherpa/sherpa-onnx-glue.js +17 -0
  145. package/wasm/sherpa/sherpa-onnx-tts.js +657 -0
  146. package/wasm/sherpa/sherpa-onnx-vad.js +337 -0
  147. package/wasm/sherpa/sherpa-onnx-wave.js +88 -0
  148. package/wasm/sherpa/sherpa-onnx.wasm +0 -0
  149. package/dist/Infrastructure/ExtensionPoint.d.ts +0 -78
  150. package/dist/Infrastructure/ExtensionPoint.d.ts.map +0 -1
  151. package/dist/Infrastructure/ExtensionPoint.js +0 -118
  152. package/dist/Infrastructure/ExtensionPoint.js.map +0 -1
  153. package/dist/Infrastructure/LocalFileStorage.d.ts +0 -116
  154. package/dist/Infrastructure/LocalFileStorage.d.ts.map +0 -1
  155. package/dist/Infrastructure/LocalFileStorage.js +0 -368
  156. package/dist/Infrastructure/LocalFileStorage.js.map +0 -1
  157. package/dist/Infrastructure/ModelFileInference.d.ts +0 -39
  158. package/dist/Infrastructure/ModelFileInference.d.ts.map +0 -1
  159. package/dist/Infrastructure/ModelFileInference.js +0 -110
  160. package/dist/Infrastructure/ModelFileInference.js.map +0 -1
@@ -0,0 +1,147 @@
1
+ /**
2
+ * RunAnywhere Web SDK - Sherpa-ONNX WASM Bridge
3
+ *
4
+ * Loads the sherpa-onnx WASM module (separate from RACommons) and provides
5
+ * typed access to the sherpa-onnx C API for:
6
+ * - STT (Speech-to-Text) via Whisper, Zipformer, Paraformer
7
+ * - TTS (Text-to-Speech) via Piper/VITS
8
+ * - VAD (Voice Activity Detection) via Silero
9
+ *
10
+ * Architecture:
11
+ * RACommons WASM handles LLM, VLM, Embeddings (llama.cpp)
12
+ * Sherpa-ONNX WASM handles STT, TTS, VAD (onnxruntime)
13
+ *
14
+ * The sherpa-onnx module is lazy-loaded on first use of STT/TTS/VAD.
15
+ */
16
+ /**
17
+ * Emscripten module interface for sherpa-onnx WASM.
18
+ * Based on sherpa-onnx's wasm/nodejs C API exports.
19
+ */
20
+ export interface SherpaONNXModule {
21
+ ccall: (ident: string, returnType: string | null, argTypes: string[], args: unknown[]) => unknown;
22
+ cwrap: (ident: string, returnType: string | null, argTypes: string[]) => (...args: unknown[]) => unknown;
23
+ _malloc: (size: number) => number;
24
+ _free: (ptr: number) => void;
25
+ setValue: (ptr: number, value: number, type: string) => void;
26
+ getValue: (ptr: number, type: string) => number;
27
+ UTF8ToString: (ptr: number) => string;
28
+ stringToUTF8: (str: string, ptr: number, maxLen: number) => void;
29
+ lengthBytesUTF8: (str: string) => number;
30
+ HEAPU8: Uint8Array;
31
+ HEAP16: Int16Array;
32
+ HEAP32: Int32Array;
33
+ HEAPF32: Float32Array;
34
+ HEAPF64: Float64Array;
35
+ FS: SherpaFS;
36
+ _SherpaOnnxCreateOfflineRecognizer: (configPtr: number) => number;
37
+ _SherpaOnnxDestroyOfflineRecognizer: (handle: number) => void;
38
+ _SherpaOnnxCreateOfflineStream: (handle: number) => number;
39
+ _SherpaOnnxDestroyOfflineStream: (stream: number) => void;
40
+ _SherpaOnnxAcceptWaveformOffline: (stream: number, sampleRate: number, samplesPtr: number, numSamples: number) => void;
41
+ _SherpaOnnxDecodeOfflineStream: (handle: number, stream: number) => void;
42
+ _SherpaOnnxGetOfflineStreamResultAsJson: (stream: number) => number;
43
+ _SherpaOnnxDestroyOfflineStreamResultJson: (ptr: number) => void;
44
+ _SherpaOnnxCreateOnlineRecognizer: (configPtr: number) => number;
45
+ _SherpaOnnxDestroyOnlineRecognizer: (handle: number) => void;
46
+ _SherpaOnnxCreateOnlineStream: (handle: number) => number;
47
+ _SherpaOnnxDestroyOnlineStream: (stream: number) => void;
48
+ _SherpaOnnxOnlineStreamAcceptWaveform: (stream: number, sampleRate: number, samplesPtr: number, numSamples: number) => void;
49
+ _SherpaOnnxIsOnlineStreamReady: (handle: number, stream: number) => number;
50
+ _SherpaOnnxDecodeOnlineStream: (handle: number, stream: number) => void;
51
+ _SherpaOnnxGetOnlineStreamResultAsJson: (handle: number, stream: number) => number;
52
+ _SherpaOnnxDestroyOnlineStreamResultJson: (ptr: number) => void;
53
+ _SherpaOnnxOnlineStreamInputFinished: (stream: number) => void;
54
+ _SherpaOnnxOnlineStreamIsEndpoint: (handle: number, stream: number) => number;
55
+ _SherpaOnnxOnlineStreamReset: (handle: number, stream: number) => void;
56
+ _SherpaOnnxCreateOfflineTts: (configPtr: number) => number;
57
+ _SherpaOnnxDestroyOfflineTts: (handle: number) => void;
58
+ _SherpaOnnxOfflineTtsGenerate: (handle: number, textPtr: number, sid: number, speed: number) => number;
59
+ _SherpaOnnxDestroyOfflineTtsGeneratedAudio: (audio: number) => void;
60
+ _SherpaOnnxOfflineTtsSampleRate: (handle: number) => number;
61
+ _SherpaOnnxOfflineTtsNumSpeakers: (handle: number) => number;
62
+ _SherpaOnnxCreateVoiceActivityDetector: (configPtr: number, bufferSizeInSeconds: number) => number;
63
+ _SherpaOnnxDestroyVoiceActivityDetector: (handle: number) => void;
64
+ _SherpaOnnxVoiceActivityDetectorAcceptWaveform: (handle: number, samplesPtr: number, numSamples: number) => void;
65
+ _SherpaOnnxVoiceActivityDetectorEmpty: (handle: number) => number;
66
+ _SherpaOnnxVoiceActivityDetectorDetected: (handle: number) => number;
67
+ _SherpaOnnxVoiceActivityDetectorPop: (handle: number) => void;
68
+ _SherpaOnnxVoiceActivityDetectorFront: (handle: number) => number;
69
+ _SherpaOnnxDestroySpeechSegment: (segment: number) => void;
70
+ _SherpaOnnxVoiceActivityDetectorReset: (handle: number) => void;
71
+ _SherpaOnnxVoiceActivityDetectorFlush: (handle: number) => void;
72
+ _CopyHeap?: (srcPtr: number, numBytes: number, dstPtr: number) => void;
73
+ }
74
+ interface SherpaFS {
75
+ mkdir: (path: string) => void;
76
+ writeFile: (path: string, data: Uint8Array | string) => void;
77
+ readFile: (path: string) => Uint8Array;
78
+ unlink: (path: string) => void;
79
+ analyzePath: (path: string) => {
80
+ exists: boolean;
81
+ };
82
+ }
83
+ /**
84
+ * SherpaONNXBridge - Loads and manages the sherpa-onnx WASM module.
85
+ *
86
+ * Singleton that provides access to sherpa-onnx C API functions.
87
+ * Lazy-loaded: only initializes when STT/TTS/VAD is first used.
88
+ */
89
+ export declare class SherpaONNXBridge {
90
+ private static _instance;
91
+ private _module;
92
+ private _loaded;
93
+ private _loading;
94
+ /**
95
+ * Override the default URL to the sherpa-onnx-glue.js file.
96
+ * Set this before any STT/TTS/VAD model is loaded.
97
+ *
98
+ * In a Vite app, resolve it like:
99
+ * ```typescript
100
+ * SherpaONNXBridge.shared.wasmUrl = new URL(
101
+ * '@runanywhere/web/wasm/sherpa/sherpa-onnx-glue.js',
102
+ * import.meta.url,
103
+ * ).href;
104
+ * ```
105
+ */
106
+ wasmUrl: string | null;
107
+ static get shared(): SherpaONNXBridge;
108
+ get isLoaded(): boolean;
109
+ get module(): SherpaONNXModule;
110
+ /**
111
+ * Ensure the sherpa-onnx WASM module is loaded.
112
+ * Safe to call multiple times -- will only load once.
113
+ *
114
+ * @param wasmUrl - URL/path to the sherpa-onnx glue JS file.
115
+ * Defaults to wasm/sherpa/sherpa-onnx-glue.js
116
+ */
117
+ ensureLoaded(wasmUrl?: string): Promise<void>;
118
+ private _doLoad;
119
+ /**
120
+ * Get the Emscripten FS object from the module.
121
+ * Handles both direct FS property and module-level helper functions.
122
+ */
123
+ private getFS;
124
+ /**
125
+ * Ensure a directory exists in the sherpa-onnx Emscripten virtual FS.
126
+ */
127
+ ensureDir(path: string): void;
128
+ /**
129
+ * Write a file into the sherpa-onnx Emscripten virtual FS.
130
+ * Used to stage model files before loading.
131
+ *
132
+ * Prefers FS_createDataFile over FS.writeFile for reliability —
133
+ * the module was compiled with NODERAWFS which can leave FS.writeFile
134
+ * in a broken state even after our browser patches.
135
+ */
136
+ writeFile(path: string, data: Uint8Array): void;
137
+ /**
138
+ * Download a file from a URL and write it to the sherpa-onnx FS.
139
+ */
140
+ downloadAndWrite(url: string, fsPath: string, onProgress?: (loaded: number, total: number) => void): Promise<void>;
141
+ allocString(str: string): number;
142
+ readString(ptr: number): string;
143
+ free(ptr: number): void;
144
+ shutdown(): void;
145
+ }
146
+ export {};
147
+ //# sourceMappingURL=SherpaONNXBridge.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SherpaONNXBridge.d.ts","sourceRoot":"","sources":["../../src/Foundation/SherpaONNXBridge.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,345 @@
1
+ /**
2
+ * RunAnywhere Web SDK - Sherpa-ONNX WASM Bridge
3
+ *
4
+ * Loads the sherpa-onnx WASM module (separate from RACommons) and provides
5
+ * typed access to the sherpa-onnx C API for:
6
+ * - STT (Speech-to-Text) via Whisper, Zipformer, Paraformer
7
+ * - TTS (Text-to-Speech) via Piper/VITS
8
+ * - VAD (Voice Activity Detection) via Silero
9
+ *
10
+ * Architecture:
11
+ * RACommons WASM handles LLM, VLM, Embeddings (llama.cpp)
12
+ * Sherpa-ONNX WASM handles STT, TTS, VAD (onnxruntime)
13
+ *
14
+ * The sherpa-onnx module is lazy-loaded on first use of STT/TTS/VAD.
15
+ */
16
+ import { SDKError, SDKErrorCode } from './ErrorTypes';
17
+ import { SDKLogger } from './SDKLogger';
18
+ const logger = new SDKLogger('SherpaONNX');
19
+ // ---------------------------------------------------------------------------
20
+ // SherpaONNXBridge
21
+ // ---------------------------------------------------------------------------
22
+ /**
23
+ * SherpaONNXBridge - Loads and manages the sherpa-onnx WASM module.
24
+ *
25
+ * Singleton that provides access to sherpa-onnx C API functions.
26
+ * Lazy-loaded: only initializes when STT/TTS/VAD is first used.
27
+ */
28
+ export class SherpaONNXBridge {
29
+ static _instance = null;
30
+ _module = null;
31
+ _loaded = false;
32
+ _loading = null;
33
+ /**
34
+ * Override the default URL to the sherpa-onnx-glue.js file.
35
+ * Set this before any STT/TTS/VAD model is loaded.
36
+ *
37
+ * In a Vite app, resolve it like:
38
+ * ```typescript
39
+ * SherpaONNXBridge.shared.wasmUrl = new URL(
40
+ * '@runanywhere/web/wasm/sherpa/sherpa-onnx-glue.js',
41
+ * import.meta.url,
42
+ * ).href;
43
+ * ```
44
+ */
45
+ wasmUrl = null;
46
+ static get shared() {
47
+ if (!SherpaONNXBridge._instance) {
48
+ SherpaONNXBridge._instance = new SherpaONNXBridge();
49
+ }
50
+ return SherpaONNXBridge._instance;
51
+ }
52
+ get isLoaded() {
53
+ return this._loaded && this._module !== null;
54
+ }
55
+ get module() {
56
+ if (!this._module) {
57
+ throw new SDKError(SDKErrorCode.WASMNotLoaded, 'Sherpa-ONNX WASM not loaded. Call ensureLoaded() first.');
58
+ }
59
+ return this._module;
60
+ }
61
+ /**
62
+ * Ensure the sherpa-onnx WASM module is loaded.
63
+ * Safe to call multiple times -- will only load once.
64
+ *
65
+ * @param wasmUrl - URL/path to the sherpa-onnx glue JS file.
66
+ * Defaults to wasm/sherpa/sherpa-onnx-glue.js
67
+ */
68
+ async ensureLoaded(wasmUrl) {
69
+ if (this._loaded)
70
+ return;
71
+ // Prevent duplicate loading
72
+ if (this._loading) {
73
+ await this._loading;
74
+ return;
75
+ }
76
+ this._loading = this._doLoad(wasmUrl);
77
+ await this._loading;
78
+ this._loading = null;
79
+ }
80
+ async _doLoad(wasmUrl) {
81
+ logger.info('Loading Sherpa-ONNX WASM module...');
82
+ try {
83
+ const moduleUrl = wasmUrl ?? this.wasmUrl ?? new URL('../../wasm/sherpa/sherpa-onnx-glue.js', import.meta.url).href;
84
+ const { default: createModule } = await import(/* @vite-ignore */ moduleUrl);
85
+ // Derive the base URL for the .wasm binary
86
+ const baseUrl = moduleUrl.substring(0, moduleUrl.lastIndexOf('/') + 1);
87
+ const wasmBinaryUrl = baseUrl + 'sherpa-onnx.wasm';
88
+ // Pre-fetch the WASM binary to avoid Emscripten's sync XHR
89
+ // (the Node.js-targeted build uses sync fetch which fails in browsers)
90
+ logger.info(`Fetching sherpa-onnx WASM binary from ${wasmBinaryUrl}`);
91
+ const wasmResponse = await fetch(wasmBinaryUrl);
92
+ if (!wasmResponse.ok) {
93
+ throw new Error(`Failed to fetch sherpa-onnx.wasm: ${wasmResponse.status} ${wasmResponse.statusText}`);
94
+ }
95
+ const wasmBinary = await wasmResponse.arrayBuffer();
96
+ logger.info(`Sherpa-ONNX WASM binary fetched: ${(wasmBinary.byteLength / 1_000_000).toFixed(1)} MB`);
97
+ // Use instantiateWasm for async compilation (Chrome blocks sync compile for >8MB).
98
+ //
99
+ // The sherpa-onnx glue JS was compiled with NODERAWFS but we patched it:
100
+ // 1. ENVIRONMENT_IS_NODE = false → forces browser code paths
101
+ // 2. NODERAWFS mounting skipped → FS uses MEMFS
102
+ // 3. receiveInstance patched → re-assigns Module exports after wasmExports is set
103
+ //
104
+ // We pass noFSInit: true to skip FS.init() (which creates /dev/stdin etc.).
105
+ // We don't need standard streams — only file operations for staging model files.
106
+ // This ensures initRuntime() succeeds and the ready promise resolves.
107
+ //
108
+ // We track a separate wasmReady promise so that if WebAssembly.instantiate
109
+ // itself fails, we get the actual error instead of a generic timeout.
110
+ let resolveWasm;
111
+ let rejectWasm;
112
+ const wasmReady = new Promise((resolve, reject) => {
113
+ resolveWasm = resolve;
114
+ rejectWasm = reject;
115
+ });
116
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
117
+ const mod = createModule({
118
+ noFSInit: true,
119
+ print: (text) => logger.debug(text),
120
+ printErr: (text) => logger.warning(text),
121
+ wasmBinary,
122
+ locateFile: (path) => baseUrl + path,
123
+ instantiateWasm: (imports, receiveInstance) => {
124
+ WebAssembly.instantiate(wasmBinary, imports)
125
+ .then((result) => {
126
+ try {
127
+ receiveInstance(result.instance, result.module);
128
+ resolveWasm();
129
+ }
130
+ catch (err) {
131
+ // receiveInstance may throw if initRuntime fails (e.g. FS errors).
132
+ // The WASM exports are already set by our patch at this point.
133
+ logger.warning(`receiveInstance completed with error (exports should still be set): ${err}`);
134
+ resolveWasm(); // Still resolve — exports are set before the throw point
135
+ }
136
+ })
137
+ .catch((err) => {
138
+ const error = err instanceof Error ? err : new Error(String(err));
139
+ logger.error(`WASM instantiation failed: ${error.message}`);
140
+ rejectWasm(error);
141
+ });
142
+ return {}; // Indicates async instantiation
143
+ },
144
+ });
145
+ // Wait for WASM instantiation + receiveInstance to complete.
146
+ // Also race with the module.ready promise (which resolves after full init).
147
+ const timeoutPromise = new Promise((_, reject) => {
148
+ setTimeout(() => reject(new Error('Sherpa-ONNX WASM module timed out after 30s')), 30_000);
149
+ });
150
+ await Promise.race([wasmReady, timeoutPromise]);
151
+ this._module = mod;
152
+ // Verify critical exports are available (set by our patched receiveInstance)
153
+ if (typeof mod._malloc !== 'function') {
154
+ const available = ['_malloc', '_free', '_SherpaOnnxCreateOfflineRecognizer']
155
+ .map(fn => `${fn}: ${typeof mod[fn]}`)
156
+ .join(', ');
157
+ throw new Error(`WASM exports not available after initialization. Available: ${available}`);
158
+ }
159
+ this._loaded = true;
160
+ logger.info('Sherpa-ONNX WASM module loaded successfully');
161
+ }
162
+ catch (error) {
163
+ this._module = null;
164
+ this._loaded = false;
165
+ const message = error instanceof Error ? error.message : String(error);
166
+ logger.error(`Failed to load Sherpa-ONNX WASM: ${message}`);
167
+ throw new SDKError(SDKErrorCode.WASMLoadFailed, `Failed to load Sherpa-ONNX WASM module: ${message}. ` +
168
+ 'Build with: ./wasm/scripts/build-sherpa-onnx.sh');
169
+ }
170
+ }
171
+ // -----------------------------------------------------------------------
172
+ // Filesystem Helpers
173
+ // -----------------------------------------------------------------------
174
+ /**
175
+ * Get the Emscripten FS object from the module.
176
+ * Handles both direct FS property and module-level helper functions.
177
+ */
178
+ getFS() {
179
+ const m = this.module;
180
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
181
+ const mod = m;
182
+ // First try direct FS property
183
+ if (m.FS && typeof m.FS.mkdir === 'function') {
184
+ return m.FS;
185
+ }
186
+ // Fallback: construct FS-like interface from Emscripten module-level helpers
187
+ if (typeof mod.FS_createPath === 'function') {
188
+ return {
189
+ mkdir: (p) => {
190
+ const parent = p.substring(0, p.lastIndexOf('/')) || '/';
191
+ const name = p.substring(p.lastIndexOf('/') + 1);
192
+ mod.FS_createPath(parent, name, true, true);
193
+ },
194
+ writeFile: (p, data) => {
195
+ const dir = p.substring(0, p.lastIndexOf('/')) || '/';
196
+ const name = p.substring(p.lastIndexOf('/') + 1);
197
+ try {
198
+ mod.FS_unlink(p);
199
+ }
200
+ catch { /* file may not exist */ }
201
+ mod.FS_createDataFile(dir, name, data, true, true, true);
202
+ },
203
+ readFile: (p) => mod.FS_readFile(p),
204
+ unlink: (p) => mod.FS_unlink(p),
205
+ analyzePath: (p) => {
206
+ try {
207
+ mod.FS_readFile(p);
208
+ return { exists: true };
209
+ }
210
+ catch {
211
+ return { exists: false };
212
+ }
213
+ },
214
+ };
215
+ }
216
+ throw new SDKError(SDKErrorCode.WASMNotLoaded, 'Sherpa-ONNX FS not available');
217
+ }
218
+ /**
219
+ * Ensure a directory exists in the sherpa-onnx Emscripten virtual FS.
220
+ */
221
+ ensureDir(path) {
222
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
223
+ const mod = this.module;
224
+ if (typeof mod.FS_createPath === 'function') {
225
+ // Use FS_createPath which creates all intermediate directories
226
+ mod.FS_createPath('/', path.replace(/^\//, ''), true, true);
227
+ return;
228
+ }
229
+ // Fallback to FS.mkdir
230
+ const fs = this.getFS();
231
+ const parts = path.split('/').filter(Boolean);
232
+ let current = '';
233
+ for (const part of parts) {
234
+ current += '/' + part;
235
+ if (!fs.analyzePath(current).exists) {
236
+ fs.mkdir(current);
237
+ }
238
+ }
239
+ }
240
+ /**
241
+ * Write a file into the sherpa-onnx Emscripten virtual FS.
242
+ * Used to stage model files before loading.
243
+ *
244
+ * Prefers FS_createDataFile over FS.writeFile for reliability —
245
+ * the module was compiled with NODERAWFS which can leave FS.writeFile
246
+ * in a broken state even after our browser patches.
247
+ */
248
+ writeFile(path, data) {
249
+ const dir = path.substring(0, path.lastIndexOf('/'));
250
+ if (dir)
251
+ this.ensureDir(dir);
252
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
253
+ const mod = this.module;
254
+ // Prefer FS_createDataFile — it creates the file node and writes data
255
+ // in one shot, avoiding potential issues with FS.open / FS.write on
256
+ // NODERAWFS-patched modules.
257
+ if (typeof mod.FS_createDataFile === 'function') {
258
+ const parentDir = dir || '/';
259
+ const filename = path.substring(path.lastIndexOf('/') + 1);
260
+ // Remove existing file first (FS_createDataFile throws if it exists)
261
+ try {
262
+ if (typeof mod.FS_unlink === 'function') {
263
+ mod.FS_unlink(path);
264
+ }
265
+ }
266
+ catch {
267
+ // File doesn't exist — that's fine
268
+ }
269
+ mod.FS_createDataFile(parentDir, filename, data, true, true, false);
270
+ logger.debug(`Wrote ${data.length} bytes to sherpa FS: ${path}`);
271
+ return;
272
+ }
273
+ // Fallback to FS.writeFile
274
+ const fs = this.getFS();
275
+ fs.writeFile(path, data);
276
+ logger.debug(`Wrote ${data.length} bytes to sherpa FS: ${path}`);
277
+ }
278
+ /**
279
+ * Download a file from a URL and write it to the sherpa-onnx FS.
280
+ */
281
+ async downloadAndWrite(url, fsPath, onProgress) {
282
+ logger.info(`Downloading ${url} -> ${fsPath}`);
283
+ const response = await fetch(url);
284
+ if (!response.ok) {
285
+ throw new SDKError(SDKErrorCode.NetworkError, `Failed to download ${url}: ${response.status} ${response.statusText}`);
286
+ }
287
+ const contentLength = Number(response.headers.get('content-length') ?? 0);
288
+ const reader = response.body?.getReader();
289
+ if (!reader) {
290
+ // Fallback: read all at once
291
+ const buffer = await response.arrayBuffer();
292
+ this.writeFile(fsPath, new Uint8Array(buffer));
293
+ return;
294
+ }
295
+ // Stream download with progress
296
+ const chunks = [];
297
+ let loaded = 0;
298
+ while (true) {
299
+ const { done, value } = await reader.read();
300
+ if (done)
301
+ break;
302
+ chunks.push(value);
303
+ loaded += value.length;
304
+ onProgress?.(loaded, contentLength);
305
+ }
306
+ // Combine chunks
307
+ const combined = new Uint8Array(loaded);
308
+ let offset = 0;
309
+ for (const chunk of chunks) {
310
+ combined.set(chunk, offset);
311
+ offset += chunk.length;
312
+ }
313
+ this.writeFile(fsPath, combined);
314
+ }
315
+ // -----------------------------------------------------------------------
316
+ // String Helpers
317
+ // -----------------------------------------------------------------------
318
+ allocString(str) {
319
+ const m = this.module;
320
+ const len = m.lengthBytesUTF8(str) + 1;
321
+ const ptr = m._malloc(len);
322
+ m.stringToUTF8(str, ptr, len);
323
+ return ptr;
324
+ }
325
+ readString(ptr) {
326
+ if (ptr === 0)
327
+ return '';
328
+ return this.module.UTF8ToString(ptr);
329
+ }
330
+ free(ptr) {
331
+ if (ptr !== 0)
332
+ this.module._free(ptr);
333
+ }
334
+ // -----------------------------------------------------------------------
335
+ // Cleanup
336
+ // -----------------------------------------------------------------------
337
+ shutdown() {
338
+ this._module = null;
339
+ this._loaded = false;
340
+ this._loading = null;
341
+ SherpaONNXBridge._instance = null;
342
+ logger.info('Sherpa-ONNX bridge shut down');
343
+ }
344
+ }
345
+ //# sourceMappingURL=SherpaONNXBridge.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SherpaONNXBridge.js","sourceRoot":"","sources":["../../src/Foundation/SherpaONNXBridge.ts"],"names":[],"mappings":"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"}
@@ -9,17 +9,14 @@
9
9
  * `offsetof()` in wasm_exports.cpp) exactly once after the WASM module is
10
10
  * loaded, and caches the results for the lifetime of the page.
11
11
  *
12
- * The offset system is extensible: backend packages (llamacpp, onnx) can
13
- * register additional offsets via `mergeOffsets()`.
14
- *
15
12
  * Usage:
16
- * import { Offsets, loadOffsets } from '@runanywhere/web';
13
+ * import { Offsets, loadOffsets } from '../Foundation/StructOffsets';
17
14
  *
18
15
  * // Called once during SDK init (after WASM load):
19
16
  * loadOffsets(wasmModule);
20
17
  *
21
18
  * // Then anywhere:
22
- * m.setValue(optPtr + Offsets.config.logLevel, 2, 'i32');
19
+ * m.setValue(optPtr + Offsets.llmOptions.temperature, 0.8, 'float');
23
20
  */
24
21
  export interface ConfigOffsets {
25
22
  logLevel: number;
@@ -112,7 +109,6 @@ export interface DiffusionResultOffsets {
112
109
  generationTimeMs: number;
113
110
  safetyFlagged: number;
114
111
  }
115
- /** All possible offsets. Core provides `config`; backend packages add the rest. */
116
112
  export interface AllOffsets {
117
113
  config: ConfigOffsets;
118
114
  llmOptions: LLMOptionsOffsets;
@@ -129,48 +125,24 @@ export interface AllOffsets {
129
125
  diffusionResult: DiffusionResultOffsets;
130
126
  }
131
127
  /**
132
- * Get the cached struct offsets.
133
- * Returns the merged offsets from core + all registered backends.
128
+ * Get the cached struct offsets. Throws if `loadOffsets()` hasn't been called.
134
129
  */
135
130
  export declare function getOffsets(): AllOffsets;
136
131
  /**
137
132
  * Convenience re-export so callers can write `Offsets.vlmResult.text`.
138
- * Returns a Proxy that dynamically resolves from the cached offset store.
139
133
  */
140
134
  export declare const Offsets: AllOffsets;
141
135
  /**
142
- * Safely call a `_rac_wasm_offsetof_*` function. Returns 0 if the
143
- * function doesn't exist (e.g. backend not compiled in).
144
- */
145
- export declare function wasmOffsetOf(m: any, name: string): number;
146
- /**
147
- * Safely call a `_rac_wasm_sizeof_*` function. Returns 0 if the
148
- * function doesn't exist.
149
- */
150
- export declare function wasmSizeOf(m: any, name: string): number;
151
- /**
152
- * Load core struct field offsets from the WASM module.
153
- * Called once during SDK init (after WASM load).
136
+ * Read all struct field offsets from the WASM module and cache them.
137
+ * Must be called exactly once, after the WASM module is loaded.
154
138
  *
155
139
  * @param m - The Emscripten WASM module instance
156
140
  */
157
141
  export declare function loadOffsets(m: any): void;
158
- /**
159
- * Merge additional offsets from a backend package.
160
- * Called by backend providers during registration.
161
- *
162
- * @param offsets - Partial offset tables to merge
163
- */
164
- export declare function mergeOffsets(offsets: Partial<AllOffsets>): void;
165
142
  /**
166
143
  * Load offsets for a standalone WASM module (e.g. in a Web Worker).
167
144
  * Returns the offsets directly instead of storing them in the singleton.
168
145
  * Useful when the Worker has its own WASM instance.
169
146
  */
170
147
  export declare function loadOffsetsFromModule(m: any): AllOffsets;
171
- /**
172
- * Load llama.cpp-specific offsets into the singleton.
173
- * Called by LlamaCppProvider.register() and loadOffsetsFromModule().
174
- */
175
- export declare function loadLlamaCppOffsetsInto(m: any): void;
176
148
  //# sourceMappingURL=StructOffsets.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"StructOffsets.d.ts","sourceRoot":"","sources":["../../src/Foundation/StructOffsets.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"StructOffsets.d.ts","sourceRoot":"","sources":["../../src/Foundation/StructOffsets.ts"],"names":[],"mappings":"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"}