@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
@@ -9,188 +9,154 @@
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
  // ---------------------------------------------------------------------------
25
22
  // Singleton
26
23
  // ---------------------------------------------------------------------------
27
- let _offsets = {};
24
+ let _offsets = null;
28
25
  /**
29
- * Get the cached struct offsets.
30
- * Returns the merged offsets from core + all registered backends.
26
+ * Get the cached struct offsets. Throws if `loadOffsets()` hasn't been called.
31
27
  */
32
28
  export function getOffsets() {
29
+ if (!_offsets) {
30
+ throw new Error('StructOffsets not loaded — call loadOffsets(module) after WASM init');
31
+ }
33
32
  return _offsets;
34
33
  }
35
34
  /**
36
35
  * Convenience re-export so callers can write `Offsets.vlmResult.text`.
37
- * Returns a Proxy that dynamically resolves from the cached offset store.
38
36
  */
39
37
  export const Offsets = new Proxy({}, {
40
38
  get(_target, prop) {
41
39
  return getOffsets()[prop];
42
40
  },
43
41
  });
44
- // ---------------------------------------------------------------------------
45
- // WASM offset helpers (exported for backend packages)
46
- // ---------------------------------------------------------------------------
47
- /**
48
- * Safely call a `_rac_wasm_offsetof_*` function. Returns 0 if the
49
- * function doesn't exist (e.g. backend not compiled in).
50
- */
51
- export function wasmOffsetOf(m, name) {
52
- const fn = m[`_rac_wasm_offsetof_${name}`];
53
- return typeof fn === 'function' ? fn() : 0;
54
- }
55
- /**
56
- * Safely call a `_rac_wasm_sizeof_*` function. Returns 0 if the
57
- * function doesn't exist.
58
- */
59
- export function wasmSizeOf(m, name) {
60
- const fn = m[`_rac_wasm_sizeof_${name}`];
61
- return typeof fn === 'function' ? fn() : 0;
62
- }
63
- // ---------------------------------------------------------------------------
64
- // Loading
65
- // ---------------------------------------------------------------------------
66
42
  /**
67
- * Load core struct field offsets from the WASM module.
68
- * Called once during SDK init (after WASM load).
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.
69
45
  *
70
46
  * @param m - The Emscripten WASM module instance
71
47
  */
72
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
+ };
73
59
  _offsets = {
74
- ..._offsets,
75
60
  config: {
76
- logLevel: wasmOffsetOf(m, 'config_log_level'),
61
+ logLevel: off('config_log_level'),
77
62
  },
78
- };
79
- }
80
- /**
81
- * Merge additional offsets from a backend package.
82
- * Called by backend providers during registration.
83
- *
84
- * @param offsets - Partial offset tables to merge
85
- */
86
- export function mergeOffsets(offsets) {
87
- _offsets = { ..._offsets, ...offsets };
88
- }
89
- /**
90
- * Load offsets for a standalone WASM module (e.g. in a Web Worker).
91
- * Returns the offsets directly instead of storing them in the singleton.
92
- * Useful when the Worker has its own WASM instance.
93
- */
94
- export function loadOffsetsFromModule(m) {
95
- loadOffsets(m);
96
- // Also load all llama.cpp offsets for the worker (VLM Worker needs these)
97
- loadLlamaCppOffsetsInto(m);
98
- return _offsets;
99
- }
100
- /**
101
- * Load llama.cpp-specific offsets into the singleton.
102
- * Called by LlamaCppProvider.register() and loadOffsetsFromModule().
103
- */
104
- export function loadLlamaCppOffsetsInto(m) {
105
- mergeOffsets({
106
63
  llmOptions: {
107
- maxTokens: wasmOffsetOf(m, 'llm_options_max_tokens'),
108
- temperature: wasmOffsetOf(m, 'llm_options_temperature'),
109
- topP: wasmOffsetOf(m, 'llm_options_top_p'),
110
- systemPrompt: wasmOffsetOf(m, 'llm_options_system_prompt'),
64
+ maxTokens: off('llm_options_max_tokens'),
65
+ temperature: off('llm_options_temperature'),
66
+ topP: off('llm_options_top_p'),
67
+ systemPrompt: off('llm_options_system_prompt'),
111
68
  },
112
69
  llmResult: {
113
- text: wasmOffsetOf(m, 'llm_result_text'),
114
- promptTokens: wasmOffsetOf(m, 'llm_result_prompt_tokens'),
115
- completionTokens: wasmOffsetOf(m, 'llm_result_completion_tokens'),
70
+ text: off('llm_result_text'),
71
+ promptTokens: off('llm_result_prompt_tokens'),
72
+ completionTokens: off('llm_result_completion_tokens'),
116
73
  },
117
74
  vlmImage: {
118
- format: wasmOffsetOf(m, 'vlm_image_format'),
119
- filePath: wasmOffsetOf(m, 'vlm_image_file_path'),
120
- pixelData: wasmOffsetOf(m, 'vlm_image_pixel_data'),
121
- base64Data: wasmOffsetOf(m, 'vlm_image_base64_data'),
122
- width: wasmOffsetOf(m, 'vlm_image_width'),
123
- height: wasmOffsetOf(m, 'vlm_image_height'),
124
- dataSize: wasmOffsetOf(m, 'vlm_image_data_size'),
75
+ format: off('vlm_image_format'),
76
+ filePath: off('vlm_image_file_path'),
77
+ pixelData: off('vlm_image_pixel_data'),
78
+ base64Data: off('vlm_image_base64_data'),
79
+ width: off('vlm_image_width'),
80
+ height: off('vlm_image_height'),
81
+ dataSize: off('vlm_image_data_size'),
125
82
  },
126
83
  vlmOptions: {
127
- maxTokens: wasmOffsetOf(m, 'vlm_options_max_tokens'),
128
- temperature: wasmOffsetOf(m, 'vlm_options_temperature'),
129
- topP: wasmOffsetOf(m, 'vlm_options_top_p'),
130
- streamingEnabled: wasmOffsetOf(m, 'vlm_options_streaming_enabled'),
131
- systemPrompt: wasmOffsetOf(m, 'vlm_options_system_prompt'),
132
- modelFamily: wasmOffsetOf(m, 'vlm_options_model_family'),
84
+ maxTokens: off('vlm_options_max_tokens'),
85
+ temperature: off('vlm_options_temperature'),
86
+ topP: off('vlm_options_top_p'),
87
+ streamingEnabled: off('vlm_options_streaming_enabled'),
88
+ systemPrompt: off('vlm_options_system_prompt'),
89
+ modelFamily: off('vlm_options_model_family'),
133
90
  },
134
91
  vlmResult: {
135
- text: wasmOffsetOf(m, 'vlm_result_text'),
136
- promptTokens: wasmOffsetOf(m, 'vlm_result_prompt_tokens'),
137
- imageTokens: wasmOffsetOf(m, 'vlm_result_image_tokens'),
138
- completionTokens: wasmOffsetOf(m, 'vlm_result_completion_tokens'),
139
- totalTokens: wasmOffsetOf(m, 'vlm_result_total_tokens'),
140
- timeToFirstTokenMs: wasmOffsetOf(m, 'vlm_result_time_to_first_token_ms'),
141
- imageEncodeTimeMs: wasmOffsetOf(m, 'vlm_result_image_encode_time_ms'),
142
- totalTimeMs: wasmOffsetOf(m, 'vlm_result_total_time_ms'),
143
- tokensPerSecond: wasmOffsetOf(m, 'vlm_result_tokens_per_second'),
92
+ text: off('vlm_result_text'),
93
+ promptTokens: off('vlm_result_prompt_tokens'),
94
+ imageTokens: off('vlm_result_image_tokens'),
95
+ completionTokens: off('vlm_result_completion_tokens'),
96
+ totalTokens: off('vlm_result_total_tokens'),
97
+ timeToFirstTokenMs: off('vlm_result_time_to_first_token_ms'),
98
+ imageEncodeTimeMs: off('vlm_result_image_encode_time_ms'),
99
+ totalTimeMs: off('vlm_result_total_time_ms'),
100
+ tokensPerSecond: off('vlm_result_tokens_per_second'),
144
101
  },
145
102
  structuredOutputConfig: {
146
- jsonSchema: wasmOffsetOf(m, 'structured_output_config_json_schema'),
147
- includeSchemaInPrompt: wasmOffsetOf(m, 'structured_output_config_include_schema'),
103
+ jsonSchema: off('structured_output_config_json_schema'),
104
+ includeSchemaInPrompt: off('structured_output_config_include_schema'),
148
105
  },
149
106
  structuredOutputValidation: {
150
- isValid: wasmOffsetOf(m, 'structured_output_validation_is_valid'),
151
- errorMessage: wasmOffsetOf(m, 'structured_output_validation_error_message'),
152
- extractedJson: wasmOffsetOf(m, 'structured_output_validation_extracted_json'),
107
+ isValid: off('structured_output_validation_is_valid'),
108
+ errorMessage: off('structured_output_validation_error_message'),
109
+ extractedJson: off('structured_output_validation_extracted_json'),
153
110
  },
154
111
  embeddingsOptions: {
155
- normalize: wasmOffsetOf(m, 'embeddings_options_normalize'),
156
- pooling: wasmOffsetOf(m, 'embeddings_options_pooling'),
157
- nThreads: wasmOffsetOf(m, 'embeddings_options_n_threads'),
112
+ normalize: off('embeddings_options_normalize'),
113
+ pooling: off('embeddings_options_pooling'),
114
+ nThreads: off('embeddings_options_n_threads'),
158
115
  },
159
116
  embeddingsResult: {
160
- embeddings: wasmOffsetOf(m, 'embeddings_result_embeddings'),
161
- numEmbeddings: wasmOffsetOf(m, 'embeddings_result_num_embeddings'),
162
- dimension: wasmOffsetOf(m, 'embeddings_result_dimension'),
163
- processingTimeMs: wasmOffsetOf(m, 'embeddings_result_processing_time_ms'),
164
- totalTokens: wasmOffsetOf(m, 'embeddings_result_total_tokens'),
117
+ embeddings: off('embeddings_result_embeddings'),
118
+ numEmbeddings: off('embeddings_result_num_embeddings'),
119
+ dimension: off('embeddings_result_dimension'),
120
+ processingTimeMs: off('embeddings_result_processing_time_ms'),
121
+ totalTokens: off('embeddings_result_total_tokens'),
165
122
  },
166
123
  embeddingVector: {
167
- data: wasmOffsetOf(m, 'embedding_vector_data'),
168
- dimension: wasmOffsetOf(m, 'embedding_vector_dimension'),
169
- structSize: wasmSizeOf(m, 'embedding_vector'),
124
+ data: off('embedding_vector_data'),
125
+ dimension: off('embedding_vector_dimension'),
126
+ structSize: sz('embedding_vector'),
170
127
  },
171
128
  diffusionOptions: {
172
- prompt: wasmOffsetOf(m, 'diffusion_options_prompt'),
173
- negativePrompt: wasmOffsetOf(m, 'diffusion_options_negative_prompt'),
174
- width: wasmOffsetOf(m, 'diffusion_options_width'),
175
- height: wasmOffsetOf(m, 'diffusion_options_height'),
176
- steps: wasmOffsetOf(m, 'diffusion_options_steps'),
177
- guidanceScale: wasmOffsetOf(m, 'diffusion_options_guidance_scale'),
178
- seed: wasmOffsetOf(m, 'diffusion_options_seed'),
179
- scheduler: wasmOffsetOf(m, 'diffusion_options_scheduler'),
180
- mode: wasmOffsetOf(m, 'diffusion_options_mode'),
181
- denoiseStrength: wasmOffsetOf(m, 'diffusion_options_denoise_strength'),
182
- reportIntermediate: wasmOffsetOf(m, 'diffusion_options_report_intermediate'),
183
- progressStride: wasmOffsetOf(m, 'diffusion_options_progress_stride'),
129
+ prompt: off('diffusion_options_prompt'),
130
+ negativePrompt: off('diffusion_options_negative_prompt'),
131
+ width: off('diffusion_options_width'),
132
+ height: off('diffusion_options_height'),
133
+ steps: off('diffusion_options_steps'),
134
+ guidanceScale: off('diffusion_options_guidance_scale'),
135
+ seed: off('diffusion_options_seed'),
136
+ scheduler: off('diffusion_options_scheduler'),
137
+ mode: off('diffusion_options_mode'),
138
+ denoiseStrength: off('diffusion_options_denoise_strength'),
139
+ reportIntermediate: off('diffusion_options_report_intermediate'),
140
+ progressStride: off('diffusion_options_progress_stride'),
184
141
  },
185
142
  diffusionResult: {
186
- imageData: wasmOffsetOf(m, 'diffusion_result_image_data'),
187
- imageSize: wasmOffsetOf(m, 'diffusion_result_image_size'),
188
- width: wasmOffsetOf(m, 'diffusion_result_width'),
189
- height: wasmOffsetOf(m, 'diffusion_result_height'),
190
- seedUsed: wasmOffsetOf(m, 'diffusion_result_seed_used'),
191
- generationTimeMs: wasmOffsetOf(m, 'diffusion_result_generation_time_ms'),
192
- safetyFlagged: wasmOffsetOf(m, 'diffusion_result_safety_flagged'),
143
+ imageData: off('diffusion_result_image_data'),
144
+ imageSize: off('diffusion_result_image_size'),
145
+ width: off('diffusion_result_width'),
146
+ height: off('diffusion_result_height'),
147
+ seedUsed: off('diffusion_result_seed_used'),
148
+ generationTimeMs: off('diffusion_result_generation_time_ms'),
149
+ safetyFlagged: off('diffusion_result_safety_flagged'),
193
150
  },
194
- });
151
+ };
152
+ }
153
+ /**
154
+ * Load offsets for a standalone WASM module (e.g. in a Web Worker).
155
+ * Returns the offsets directly instead of storing them in the singleton.
156
+ * Useful when the Worker has its own WASM instance.
157
+ */
158
+ export function loadOffsetsFromModule(m) {
159
+ loadOffsets(m);
160
+ return _offsets;
195
161
  }
196
162
  //# 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":"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"}
@@ -0,0 +1,99 @@
1
+ /**
2
+ * RunAnywhere Web SDK - Audio Capture
3
+ *
4
+ * Captures microphone audio using Web Audio API and provides
5
+ * Float32Array PCM samples suitable for STT and VAD processing.
6
+ *
7
+ * Supports:
8
+ * - Real-time microphone capture via getUserMedia
9
+ * - Configurable sample rate (resampling via AudioContext)
10
+ * - Chunk-based callbacks for streaming STT/VAD
11
+ * - Buffer accumulation (getAudioBuffer, drainBuffer, clearBuffer)
12
+ * - Audio level monitoring via AnalyserNode (currentLevel getter)
13
+ */
14
+ export type AudioChunkCallback = (samples: Float32Array) => void;
15
+ export type AudioLevelCallback = (level: number) => void;
16
+ /** Callback invoked when the microphone track ends unexpectedly (OS/browser killed it). */
17
+ export type AudioTrackEndedCallback = () => void;
18
+ export interface AudioCaptureConfig {
19
+ /** Target sample rate (default: 16000 for STT) */
20
+ sampleRate?: number;
21
+ /** Chunk size in samples (default: 1600 = 100ms at 16kHz) */
22
+ chunkSize?: number;
23
+ /** Number of audio channels (default: 1, mono) */
24
+ channels?: number;
25
+ }
26
+ /**
27
+ * AudioCapture - Captures microphone audio for STT/VAD processing.
28
+ *
29
+ * Uses Web Audio API (AudioContext + ScriptProcessorNode) to capture
30
+ * microphone audio, resample to target rate, and deliver Float32Array
31
+ * PCM chunks to the consumer.
32
+ *
33
+ * Includes buffer accumulation for batch STT and an AnalyserNode for
34
+ * real-time audio level metering (0-1 range).
35
+ */
36
+ export declare class AudioCapture {
37
+ private audioContext;
38
+ private mediaStream;
39
+ private sourceNode;
40
+ private processorNode;
41
+ private _analyser;
42
+ private _animFrameId;
43
+ private _isCapturing;
44
+ private _currentLevel;
45
+ private _pcmChunks;
46
+ private readonly config;
47
+ private chunkCallback;
48
+ private levelCallback;
49
+ /**
50
+ * Callback invoked when the microphone track ends unexpectedly.
51
+ *
52
+ * On mobile browsers, the OS can revoke mic access due to power management,
53
+ * screen lock, another app requesting the mic, or AudioContext suspension.
54
+ * Set this to detect and recover from such interruptions.
55
+ */
56
+ onTrackEnded: AudioTrackEndedCallback | null;
57
+ /** Bound handler for the track 'ended' event (stored for cleanup). */
58
+ private _boundOnTrackEnded;
59
+ constructor(config?: AudioCaptureConfig);
60
+ get isCapturing(): boolean;
61
+ /** Current normalized audio level (0..1), updated per animation frame. */
62
+ get currentLevel(): number;
63
+ /**
64
+ * Get the actual sample rate of the audio context.
65
+ * May differ from requested rate if browser doesn't support it.
66
+ */
67
+ get actualSampleRate(): number;
68
+ /** Duration of collected audio in seconds based on configured sample rate. */
69
+ get bufferDurationSeconds(): number;
70
+ /**
71
+ * Start capturing microphone audio.
72
+ *
73
+ * @param onChunk - Optional callback receiving Float32Array chunks of PCM audio (streaming)
74
+ * @param onLevel - Optional callback invoked per animation frame with audio level 0..1
75
+ * @throws If microphone permission is denied
76
+ */
77
+ start(onChunk?: AudioChunkCallback, onLevel?: AudioLevelCallback): Promise<void>;
78
+ /**
79
+ * Stop capturing audio and release resources.
80
+ */
81
+ stop(): void;
82
+ /**
83
+ * Get all collected PCM audio as a single Float32Array.
84
+ * Does NOT clear the buffer — call `clearBuffer()` separately.
85
+ */
86
+ getAudioBuffer(): Float32Array;
87
+ /**
88
+ * Drain: return the current buffer and clear it for the next segment.
89
+ * Useful for live mode where we transcribe segments incrementally.
90
+ */
91
+ drainBuffer(): Float32Array;
92
+ /** Clear collected PCM data without stopping capture. */
93
+ clearBuffer(): void;
94
+ /** Start the requestAnimationFrame loop that reads the AnalyserNode. */
95
+ private startLevelMonitoring;
96
+ private cleanupResources;
97
+ private nearestPowerOf2;
98
+ }
99
+ //# sourceMappingURL=AudioCapture.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AudioCapture.d.ts","sourceRoot":"","sources":["../../src/Infrastructure/AudioCapture.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAMH,MAAM,MAAM,kBAAkB,GAAG,CAAC,OAAO,EAAE,YAAY,KAAK,IAAI,CAAC;AACjE,MAAM,MAAM,kBAAkB,GAAG,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;AACzD,2FAA2F;AAC3F,MAAM,MAAM,uBAAuB,GAAG,MAAM,IAAI,CAAC;AAEjD,MAAM,WAAW,kBAAkB;IACjC,kDAAkD;IAClD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,6DAA6D;IAC7D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,kDAAkD;IAClD,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;;;;;;;;GASG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,YAAY,CAA6B;IACjD,OAAO,CAAC,WAAW,CAA4B;IAC/C,OAAO,CAAC,UAAU,CAA2C;IAC7D,OAAO,CAAC,aAAa,CAAoC;IACzD,OAAO,CAAC,SAAS,CAA6B;IAC9C,OAAO,CAAC,YAAY,CAAuB;IAC3C,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,aAAa,CAAK;IAC1B,OAAO,CAAC,UAAU,CAAsB;IAExC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA+B;IACtD,OAAO,CAAC,aAAa,CAAmC;IACxD,OAAO,CAAC,aAAa,CAAmC;IAExD;;;;;;OAMG;IACH,YAAY,EAAE,uBAAuB,GAAG,IAAI,CAAQ;IAEpD,sEAAsE;IACtE,OAAO,CAAC,kBAAkB,CAA6B;gBAE3C,MAAM,GAAE,kBAAuB;IAQ3C,IAAI,WAAW,IAAI,OAAO,CAEzB;IAED,0EAA0E;IAC1E,IAAI,YAAY,IAAI,MAAM,CAEzB;IAED;;;OAGG;IACH,IAAI,gBAAgB,IAAI,MAAM,CAE7B;IAED,8EAA8E;IAC9E,IAAI,qBAAqB,IAAI,MAAM,CAGlC;IAED;;;;;;OAMG;IACG,KAAK,CAAC,OAAO,CAAC,EAAE,kBAAkB,EAAE,OAAO,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC;IAgGtF;;OAEG;IACH,IAAI,IAAI,IAAI;IAYZ;;;OAGG;IACH,cAAc,IAAI,YAAY;IAY9B;;;OAGG;IACH,WAAW,IAAI,YAAY;IAM3B,yDAAyD;IACzD,WAAW,IAAI,IAAI;IAInB,wEAAwE;IACxE,OAAO,CAAC,oBAAoB;IAkB5B,OAAO,CAAC,gBAAgB;IAkCxB,OAAO,CAAC,eAAe;CAOxB"}