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

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 (189) hide show
  1. package/dist/Foundation/ErrorTypes.d.ts +1 -0
  2. package/dist/Foundation/ErrorTypes.d.ts.map +1 -1
  3. package/dist/Foundation/ErrorTypes.js +3 -0
  4. package/dist/Foundation/ErrorTypes.js.map +1 -1
  5. package/dist/Foundation/EventBus.d.ts +0 -1
  6. package/dist/Foundation/EventBus.d.ts.map +1 -1
  7. package/dist/Foundation/StructOffsets.d.ts +5 -37
  8. package/dist/Foundation/StructOffsets.d.ts.map +1 -1
  9. package/dist/Foundation/StructOffsets.js +6 -157
  10. package/dist/Foundation/StructOffsets.js.map +1 -1
  11. package/dist/Foundation/WASMBridge.d.ts +8 -236
  12. package/dist/Foundation/WASMBridge.d.ts.map +1 -1
  13. package/dist/Foundation/WASMBridge.js +7 -388
  14. package/dist/Foundation/WASMBridge.js.map +1 -1
  15. package/dist/Infrastructure/DeviceCapabilities.d.ts.map +1 -1
  16. package/dist/Infrastructure/DeviceCapabilities.js +1 -3
  17. package/dist/Infrastructure/DeviceCapabilities.js.map +1 -1
  18. package/dist/Infrastructure/ExtensionPoint.d.ts +114 -0
  19. package/dist/Infrastructure/ExtensionPoint.d.ts.map +1 -0
  20. package/dist/Infrastructure/ExtensionPoint.js +178 -0
  21. package/dist/Infrastructure/ExtensionPoint.js.map +1 -0
  22. package/dist/Infrastructure/LocalFileStorage.d.ts +134 -0
  23. package/dist/Infrastructure/LocalFileStorage.d.ts.map +1 -0
  24. package/dist/Infrastructure/LocalFileStorage.js +428 -0
  25. package/dist/Infrastructure/LocalFileStorage.js.map +1 -0
  26. package/dist/Infrastructure/ModelDownloader.d.ts +21 -5
  27. package/dist/Infrastructure/ModelDownloader.d.ts.map +1 -1
  28. package/dist/Infrastructure/ModelDownloader.js +79 -7
  29. package/dist/Infrastructure/ModelDownloader.js.map +1 -1
  30. package/dist/Infrastructure/ModelFileInference.d.ts +39 -0
  31. package/dist/Infrastructure/ModelFileInference.d.ts.map +1 -0
  32. package/dist/Infrastructure/ModelFileInference.js +119 -0
  33. package/dist/Infrastructure/ModelFileInference.js.map +1 -0
  34. package/dist/Infrastructure/ModelLoaderTypes.d.ts +91 -12
  35. package/dist/Infrastructure/ModelLoaderTypes.d.ts.map +1 -1
  36. package/dist/Infrastructure/ModelLoaderTypes.js +7 -1
  37. package/dist/Infrastructure/ModelLoaderTypes.js.map +1 -1
  38. package/dist/Infrastructure/ModelManager.d.ts +31 -104
  39. package/dist/Infrastructure/ModelManager.d.ts.map +1 -1
  40. package/dist/Infrastructure/ModelManager.js +207 -568
  41. package/dist/Infrastructure/ModelManager.js.map +1 -1
  42. package/dist/Infrastructure/ModelRegistry.d.ts +6 -8
  43. package/dist/Infrastructure/ModelRegistry.d.ts.map +1 -1
  44. package/dist/Infrastructure/ModelRegistry.js +11 -4
  45. package/dist/Infrastructure/ModelRegistry.js.map +1 -1
  46. package/dist/Infrastructure/OPFSStorage.d.ts +8 -0
  47. package/dist/Infrastructure/OPFSStorage.d.ts.map +1 -1
  48. package/dist/Infrastructure/OPFSStorage.js +37 -0
  49. package/dist/Infrastructure/OPFSStorage.js.map +1 -1
  50. package/dist/Public/Extensions/RunAnywhere+ModelManagement.d.ts +12 -4
  51. package/dist/Public/Extensions/RunAnywhere+ModelManagement.d.ts.map +1 -1
  52. package/dist/Public/Extensions/RunAnywhere+ModelManagement.js +23 -51
  53. package/dist/Public/Extensions/RunAnywhere+ModelManagement.js.map +1 -1
  54. package/dist/Public/Extensions/RunAnywhere+VoiceAgent.d.ts +42 -10
  55. package/dist/Public/Extensions/RunAnywhere+VoiceAgent.d.ts.map +1 -1
  56. package/dist/Public/Extensions/RunAnywhere+VoiceAgent.js +63 -161
  57. package/dist/Public/Extensions/RunAnywhere+VoiceAgent.js.map +1 -1
  58. package/dist/Public/Extensions/RunAnywhere+VoicePipeline.d.ts +3 -29
  59. package/dist/Public/Extensions/RunAnywhere+VoicePipeline.d.ts.map +1 -1
  60. package/dist/Public/Extensions/RunAnywhere+VoicePipeline.js +26 -42
  61. package/dist/Public/Extensions/RunAnywhere+VoicePipeline.js.map +1 -1
  62. package/dist/Public/Extensions/VoicePipelineTypes.d.ts +28 -37
  63. package/dist/Public/Extensions/VoicePipelineTypes.d.ts.map +1 -1
  64. package/dist/Public/Extensions/VoicePipelineTypes.js +4 -1
  65. package/dist/Public/Extensions/VoicePipelineTypes.js.map +1 -1
  66. package/dist/Public/RunAnywhere.d.ts +29 -85
  67. package/dist/Public/RunAnywhere.d.ts.map +1 -1
  68. package/dist/Public/RunAnywhere.js +169 -211
  69. package/dist/Public/RunAnywhere.js.map +1 -1
  70. package/dist/index.d.ts +19 -39
  71. package/dist/index.d.ts.map +1 -1
  72. package/dist/index.js +15 -31
  73. package/dist/index.js.map +1 -1
  74. package/dist/types/index.d.ts +0 -1
  75. package/dist/types/index.d.ts.map +1 -1
  76. package/dist/types/index.js +1 -0
  77. package/dist/types/index.js.map +1 -1
  78. package/package.json +4 -10
  79. package/dist/Foundation/PlatformAdapter.d.ts +0 -101
  80. package/dist/Foundation/PlatformAdapter.d.ts.map +0 -1
  81. package/dist/Foundation/PlatformAdapter.js +0 -417
  82. package/dist/Foundation/PlatformAdapter.js.map +0 -1
  83. package/dist/Foundation/SherpaONNXBridge.d.ts +0 -147
  84. package/dist/Foundation/SherpaONNXBridge.d.ts.map +0 -1
  85. package/dist/Foundation/SherpaONNXBridge.js +0 -345
  86. package/dist/Foundation/SherpaONNXBridge.js.map +0 -1
  87. package/dist/Infrastructure/AudioCapture.d.ts +0 -99
  88. package/dist/Infrastructure/AudioCapture.d.ts.map +0 -1
  89. package/dist/Infrastructure/AudioCapture.js +0 -264
  90. package/dist/Infrastructure/AudioCapture.js.map +0 -1
  91. package/dist/Infrastructure/AudioPlayback.d.ts +0 -53
  92. package/dist/Infrastructure/AudioPlayback.d.ts.map +0 -1
  93. package/dist/Infrastructure/AudioPlayback.js +0 -117
  94. package/dist/Infrastructure/AudioPlayback.js.map +0 -1
  95. package/dist/Infrastructure/VLMWorkerBridge.d.ts +0 -211
  96. package/dist/Infrastructure/VLMWorkerBridge.d.ts.map +0 -1
  97. package/dist/Infrastructure/VLMWorkerBridge.js +0 -264
  98. package/dist/Infrastructure/VLMWorkerBridge.js.map +0 -1
  99. package/dist/Infrastructure/VLMWorkerRuntime.d.ts +0 -38
  100. package/dist/Infrastructure/VLMWorkerRuntime.d.ts.map +0 -1
  101. package/dist/Infrastructure/VLMWorkerRuntime.js +0 -503
  102. package/dist/Infrastructure/VLMWorkerRuntime.js.map +0 -1
  103. package/dist/Infrastructure/VideoCapture.d.ts +0 -130
  104. package/dist/Infrastructure/VideoCapture.d.ts.map +0 -1
  105. package/dist/Infrastructure/VideoCapture.js +0 -236
  106. package/dist/Infrastructure/VideoCapture.js.map +0 -1
  107. package/dist/Public/Extensions/DiffusionTypes.d.ts +0 -64
  108. package/dist/Public/Extensions/DiffusionTypes.d.ts.map +0 -1
  109. package/dist/Public/Extensions/DiffusionTypes.js +0 -28
  110. package/dist/Public/Extensions/DiffusionTypes.js.map +0 -1
  111. package/dist/Public/Extensions/EmbeddingsTypes.d.ts +0 -33
  112. package/dist/Public/Extensions/EmbeddingsTypes.d.ts.map +0 -1
  113. package/dist/Public/Extensions/EmbeddingsTypes.js +0 -13
  114. package/dist/Public/Extensions/EmbeddingsTypes.js.map +0 -1
  115. package/dist/Public/Extensions/RunAnywhere+Diffusion.d.ts +0 -44
  116. package/dist/Public/Extensions/RunAnywhere+Diffusion.d.ts.map +0 -1
  117. package/dist/Public/Extensions/RunAnywhere+Diffusion.js +0 -189
  118. package/dist/Public/Extensions/RunAnywhere+Diffusion.js.map +0 -1
  119. package/dist/Public/Extensions/RunAnywhere+Embeddings.d.ts +0 -56
  120. package/dist/Public/Extensions/RunAnywhere+Embeddings.d.ts.map +0 -1
  121. package/dist/Public/Extensions/RunAnywhere+Embeddings.js +0 -240
  122. package/dist/Public/Extensions/RunAnywhere+Embeddings.js.map +0 -1
  123. package/dist/Public/Extensions/RunAnywhere+STT.d.ts +0 -97
  124. package/dist/Public/Extensions/RunAnywhere+STT.d.ts.map +0 -1
  125. package/dist/Public/Extensions/RunAnywhere+STT.js +0 -417
  126. package/dist/Public/Extensions/RunAnywhere+STT.js.map +0 -1
  127. package/dist/Public/Extensions/RunAnywhere+StructuredOutput.d.ts +0 -69
  128. package/dist/Public/Extensions/RunAnywhere+StructuredOutput.d.ts.map +0 -1
  129. package/dist/Public/Extensions/RunAnywhere+StructuredOutput.js +0 -196
  130. package/dist/Public/Extensions/RunAnywhere+StructuredOutput.js.map +0 -1
  131. package/dist/Public/Extensions/RunAnywhere+TTS.d.ts +0 -55
  132. package/dist/Public/Extensions/RunAnywhere+TTS.d.ts.map +0 -1
  133. package/dist/Public/Extensions/RunAnywhere+TTS.js +0 -253
  134. package/dist/Public/Extensions/RunAnywhere+TTS.js.map +0 -1
  135. package/dist/Public/Extensions/RunAnywhere+TextGeneration.d.ts +0 -80
  136. package/dist/Public/Extensions/RunAnywhere+TextGeneration.d.ts.map +0 -1
  137. package/dist/Public/Extensions/RunAnywhere+TextGeneration.js +0 -470
  138. package/dist/Public/Extensions/RunAnywhere+TextGeneration.js.map +0 -1
  139. package/dist/Public/Extensions/RunAnywhere+ToolCalling.d.ts +0 -82
  140. package/dist/Public/Extensions/RunAnywhere+ToolCalling.d.ts.map +0 -1
  141. package/dist/Public/Extensions/RunAnywhere+ToolCalling.js +0 -576
  142. package/dist/Public/Extensions/RunAnywhere+ToolCalling.js.map +0 -1
  143. package/dist/Public/Extensions/RunAnywhere+VAD.d.ts +0 -70
  144. package/dist/Public/Extensions/RunAnywhere+VAD.d.ts.map +0 -1
  145. package/dist/Public/Extensions/RunAnywhere+VAD.js +0 -231
  146. package/dist/Public/Extensions/RunAnywhere+VAD.js.map +0 -1
  147. package/dist/Public/Extensions/RunAnywhere+VLM.d.ts +0 -58
  148. package/dist/Public/Extensions/RunAnywhere+VLM.d.ts.map +0 -1
  149. package/dist/Public/Extensions/RunAnywhere+VLM.js +0 -262
  150. package/dist/Public/Extensions/RunAnywhere+VLM.js.map +0 -1
  151. package/dist/Public/Extensions/STTTypes.d.ts +0 -61
  152. package/dist/Public/Extensions/STTTypes.d.ts.map +0 -1
  153. package/dist/Public/Extensions/STTTypes.js +0 -16
  154. package/dist/Public/Extensions/STTTypes.js.map +0 -1
  155. package/dist/Public/Extensions/TTSTypes.d.ts +0 -31
  156. package/dist/Public/Extensions/TTSTypes.d.ts.map +0 -1
  157. package/dist/Public/Extensions/TTSTypes.js +0 -3
  158. package/dist/Public/Extensions/TTSTypes.js.map +0 -1
  159. package/dist/Public/Extensions/ToolCallingTypes.d.ts +0 -78
  160. package/dist/Public/Extensions/ToolCallingTypes.d.ts.map +0 -1
  161. package/dist/Public/Extensions/ToolCallingTypes.js +0 -8
  162. package/dist/Public/Extensions/ToolCallingTypes.js.map +0 -1
  163. package/dist/Public/Extensions/VADTypes.d.ts +0 -30
  164. package/dist/Public/Extensions/VADTypes.d.ts.map +0 -1
  165. package/dist/Public/Extensions/VADTypes.js +0 -8
  166. package/dist/Public/Extensions/VADTypes.js.map +0 -1
  167. package/dist/Public/Extensions/VLMTypes.d.ts +0 -56
  168. package/dist/Public/Extensions/VLMTypes.d.ts.map +0 -1
  169. package/dist/Public/Extensions/VLMTypes.js +0 -24
  170. package/dist/Public/Extensions/VLMTypes.js.map +0 -1
  171. package/dist/types/LLMTypes.d.ts +0 -48
  172. package/dist/types/LLMTypes.d.ts.map +0 -1
  173. package/dist/types/LLMTypes.js +0 -8
  174. package/dist/types/LLMTypes.js.map +0 -1
  175. package/dist/workers/vlm-worker.d.ts +0 -9
  176. package/dist/workers/vlm-worker.d.ts.map +0 -1
  177. package/dist/workers/vlm-worker.js +0 -10
  178. package/dist/workers/vlm-worker.js.map +0 -1
  179. package/wasm/racommons-webgpu.js +0 -156
  180. package/wasm/racommons-webgpu.wasm +0 -0
  181. package/wasm/racommons.js +0 -126
  182. package/wasm/racommons.wasm +0 -0
  183. package/wasm/sherpa/sherpa-onnx-asr.js +0 -1538
  184. package/wasm/sherpa/sherpa-onnx-glue-original.js +0 -19
  185. package/wasm/sherpa/sherpa-onnx-glue.js +0 -17
  186. package/wasm/sherpa/sherpa-onnx-tts.js +0 -657
  187. package/wasm/sherpa/sherpa-onnx-vad.js +0 -337
  188. package/wasm/sherpa/sherpa-onnx-wave.js +0 -88
  189. package/wasm/sherpa/sherpa-onnx.wasm +0 -0
@@ -16,181 +16,90 @@
16
16
  * console.log('Response:', result.response);
17
17
  */
18
18
  import { RunAnywhere } from '../RunAnywhere';
19
- import { WASMBridge } from '../../Foundation/WASMBridge';
20
19
  import { SDKError } from '../../Foundation/ErrorTypes';
21
20
  import { SDKLogger } from '../../Foundation/SDKLogger';
22
- import { EventBus } from '../../Foundation/EventBus';
23
- import { SDKEventType } from '../../types/enums';
24
21
  export { PipelineState } from './VoiceAgentTypes';
25
22
  const logger = new SDKLogger('VoiceAgent');
26
23
  // ---------------------------------------------------------------------------
27
24
  // VoiceAgent Instance
28
25
  // ---------------------------------------------------------------------------
26
+ /**
27
+ * VoiceAgentSession orchestrates the complete voice pipeline (VAD → STT → LLM → TTS).
28
+ *
29
+ * TODO: Refactor to use the ExtensionPoint/provider pattern.
30
+ * The previous implementation called rac_voice_agent_* C functions via WASMBridge,
31
+ * which has been removed from the core package. Each backend package (e.g.
32
+ * @runanywhere/web-llamacpp) should register a VoiceAgent provider through
33
+ * ExtensionPoint so that this session can delegate to it.
34
+ */
29
35
  export class VoiceAgentSession {
30
- handle;
31
- eventCallbackPtr = 0;
36
+ _handle;
32
37
  constructor(handle) {
33
- this.handle = handle;
38
+ this._handle = handle;
34
39
  }
35
40
  /**
36
41
  * Load models for all components.
42
+ *
43
+ * TODO: Delegate to backend provider via ExtensionPoint.
37
44
  */
38
45
  async loadModels(models) {
39
- const bridge = WASMBridge.shared;
40
- if (models.stt) {
46
+ if (models.stt)
41
47
  logger.info(`Loading STT model: ${models.stt.id}`);
42
- const pathPtr = bridge.allocString(models.stt.path);
43
- const idPtr = bridge.allocString(models.stt.id);
44
- const namePtr = bridge.allocString(models.stt.name ?? models.stt.id);
45
- try {
46
- bridge.callWithCheck('rac_voice_agent_load_stt_model', ['number', 'number', 'number', 'number'], [this.handle, pathPtr, idPtr, namePtr]);
47
- }
48
- finally {
49
- bridge.free(pathPtr);
50
- bridge.free(idPtr);
51
- bridge.free(namePtr);
52
- }
53
- }
54
- if (models.llm) {
48
+ if (models.llm)
55
49
  logger.info(`Loading LLM model: ${models.llm.id}`);
56
- const pathPtr = bridge.allocString(models.llm.path);
57
- const idPtr = bridge.allocString(models.llm.id);
58
- const namePtr = bridge.allocString(models.llm.name ?? models.llm.id);
59
- try {
60
- bridge.callWithCheck('rac_voice_agent_load_llm_model', ['number', 'number', 'number', 'number'], [this.handle, pathPtr, idPtr, namePtr]);
61
- }
62
- finally {
63
- bridge.free(pathPtr);
64
- bridge.free(idPtr);
65
- bridge.free(namePtr);
66
- }
67
- }
68
- if (models.tts) {
50
+ if (models.tts)
69
51
  logger.info(`Loading TTS voice: ${models.tts.id}`);
70
- const pathPtr = bridge.allocString(models.tts.path);
71
- const idPtr = bridge.allocString(models.tts.id);
72
- const namePtr = bridge.allocString(models.tts.name ?? models.tts.id);
73
- try {
74
- bridge.callWithCheck('rac_voice_agent_load_tts_voice', ['number', 'number', 'number', 'number'], [this.handle, pathPtr, idPtr, namePtr]);
75
- }
76
- finally {
77
- bridge.free(pathPtr);
78
- bridge.free(idPtr);
79
- bridge.free(namePtr);
80
- }
81
- }
82
- // Initialize with loaded models
83
- bridge.callWithCheck('rac_voice_agent_initialize_with_loaded_models', ['number'], [this.handle]);
84
- logger.info('VoiceAgent initialized with loaded models');
52
+ // TODO: Invoke backend-specific voice agent provider to load models.
53
+ throw SDKError.componentNotReady('VoiceAgent', 'No WASM backend registered — use a backend package (e.g. @runanywhere/web-llamacpp)');
85
54
  }
86
55
  /**
87
- * Process a complete voice turn (audio in -> text response + audio out).
56
+ * Process a complete voice turn (audio in text response + audio out).
57
+ *
58
+ * TODO: Delegate to backend provider via ExtensionPoint.
88
59
  */
89
- async processVoiceTurn(audioData) {
90
- const bridge = WASMBridge.shared;
91
- const m = bridge.module;
92
- const audioPtr = m._malloc(audioData.length);
93
- bridge.writeBytes(audioData, audioPtr);
94
- // rac_voice_agent_result_t: { speech_detected, transcription, response, synthesized_audio, audio_size }
95
- const resultSize = m._rac_wasm_sizeof_voice_agent_result();
96
- const resultPtr = m._malloc(resultSize);
97
- try {
98
- bridge.callWithCheck('rac_voice_agent_process_voice_turn', ['number', 'number', 'number', 'number'], [this.handle, audioPtr, audioData.length, resultPtr]);
99
- const speechDetected = m.getValue(resultPtr, 'i32') === 1;
100
- const transcriptionPtr = m.getValue(resultPtr + 4, '*');
101
- const responsePtr = m.getValue(resultPtr + 8, '*');
102
- const audioDataPtr = m.getValue(resultPtr + 12, '*');
103
- const audioSize = m.getValue(resultPtr + 16, 'i32');
104
- const result = {
105
- speechDetected,
106
- transcription: transcriptionPtr ? bridge.readString(transcriptionPtr) : undefined,
107
- response: responsePtr ? bridge.readString(responsePtr) : undefined,
108
- };
109
- if (audioDataPtr && audioSize > 0) {
110
- const numSamples = audioSize / 4;
111
- result.synthesizedAudio = bridge.readFloat32Array(audioDataPtr, numSamples);
112
- }
113
- // Free C result
114
- bridge.callFunction('rac_voice_agent_result_free', null, ['number'], [resultPtr]);
115
- EventBus.shared.emit('voice.turnCompleted', SDKEventType.Voice, {
116
- speechDetected,
117
- transcription: result.transcription ?? '',
118
- response: result.response ?? '',
119
- });
120
- return result;
121
- }
122
- finally {
123
- m._free(audioPtr);
124
- }
60
+ async processVoiceTurn(_audioData) {
61
+ // TODO: Invoke backend-specific voice agent provider.
62
+ throw SDKError.componentNotReady('VoiceAgent', 'No WASM backend registered — use a backend package (e.g. @runanywhere/web-llamacpp)');
125
63
  }
126
- /** Check if the voice agent is ready. */
64
+ /**
65
+ * Check if the voice agent is ready.
66
+ *
67
+ * TODO: Delegate to backend provider via ExtensionPoint.
68
+ */
127
69
  get isReady() {
128
- const bridge = WASMBridge.shared;
129
- const m = bridge.module;
130
- const outPtr = m._malloc(4);
131
- try {
132
- bridge.callFunction('rac_voice_agent_is_ready', 'number', ['number', 'number'], [this.handle, outPtr]);
133
- return m.getValue(outPtr, 'i32') === 1;
134
- }
135
- finally {
136
- m._free(outPtr);
137
- }
70
+ // TODO: Query backend provider readiness.
71
+ return false;
138
72
  }
139
- /** Transcribe audio without the full pipeline. */
140
- async transcribe(audioData) {
141
- const bridge = WASMBridge.shared;
142
- const m = bridge.module;
143
- const audioPtr = m._malloc(audioData.length);
144
- bridge.writeBytes(audioData, audioPtr);
145
- const outPtr = m._malloc(4);
146
- try {
147
- bridge.callWithCheck('rac_voice_agent_transcribe', ['number', 'number', 'number', 'number'], [this.handle, audioPtr, audioData.length, outPtr]);
148
- const textPtr = m.getValue(outPtr, '*');
149
- const text = bridge.readString(textPtr);
150
- if (textPtr)
151
- m._free(textPtr);
152
- return text;
153
- }
154
- finally {
155
- m._free(audioPtr);
156
- m._free(outPtr);
157
- }
73
+ /**
74
+ * Transcribe audio without the full pipeline.
75
+ *
76
+ * TODO: Delegate to backend provider via ExtensionPoint.
77
+ */
78
+ async transcribe(_audioData) {
79
+ // TODO: Invoke backend-specific STT provider.
80
+ throw SDKError.componentNotReady('VoiceAgent', 'No WASM backend registered — use a backend package (e.g. @runanywhere/web-llamacpp)');
158
81
  }
159
- /** Generate LLM response without the full pipeline. */
160
- async generateResponse(prompt) {
161
- const bridge = WASMBridge.shared;
162
- const m = bridge.module;
163
- const promptPtr = bridge.allocString(prompt);
164
- const outPtr = m._malloc(4);
165
- try {
166
- bridge.callWithCheck('rac_voice_agent_generate_response', ['number', 'number', 'number'], [this.handle, promptPtr, outPtr]);
167
- const textPtr = m.getValue(outPtr, '*');
168
- const text = bridge.readString(textPtr);
169
- if (textPtr)
170
- m._free(textPtr);
171
- return text;
172
- }
173
- finally {
174
- bridge.free(promptPtr);
175
- m._free(outPtr);
176
- }
82
+ /**
83
+ * Generate LLM response without the full pipeline.
84
+ *
85
+ * TODO: Delegate to backend provider via ExtensionPoint.
86
+ */
87
+ async generateResponse(_prompt) {
88
+ // TODO: Invoke backend-specific LLM provider.
89
+ throw SDKError.componentNotReady('VoiceAgent', 'No WASM backend registered — use a backend package (e.g. @runanywhere/web-llamacpp)');
177
90
  }
178
- /** Destroy the voice agent session. */
91
+ /** Get the native handle (used by backend providers). */
92
+ get handle() {
93
+ return this._handle;
94
+ }
95
+ /**
96
+ * Destroy the voice agent session.
97
+ *
98
+ * TODO: Delegate cleanup to backend provider via ExtensionPoint.
99
+ */
179
100
  destroy() {
180
- if (this.eventCallbackPtr !== 0) {
181
- try {
182
- WASMBridge.shared.module.removeFunction(this.eventCallbackPtr);
183
- }
184
- catch { /* ignore */ }
185
- this.eventCallbackPtr = 0;
186
- }
187
- if (this.handle !== 0) {
188
- try {
189
- WASMBridge.shared.callFunction('rac_voice_agent_destroy', null, ['number'], [this.handle]);
190
- }
191
- catch { /* ignore */ }
192
- this.handle = 0;
193
- }
101
+ // TODO: Invoke backend-specific cleanup.
102
+ this._handle = 0;
194
103
  }
195
104
  }
196
105
  // ---------------------------------------------------------------------------
@@ -200,23 +109,16 @@ export const VoiceAgent = {
200
109
  /**
201
110
  * Create a standalone VoiceAgent session.
202
111
  * The agent manages its own STT, LLM, TTS, and VAD components.
112
+ *
113
+ * TODO: Delegate to backend provider via ExtensionPoint.
203
114
  */
204
115
  async create() {
205
116
  if (!RunAnywhere.isInitialized) {
206
117
  throw SDKError.notInitialized();
207
118
  }
208
- const bridge = WASMBridge.shared;
209
- const m = bridge.module;
210
- const handlePtr = m._malloc(4);
211
- const result = bridge.callFunction('rac_voice_agent_create_standalone', 'number', ['number'], [handlePtr]);
212
- if (result !== 0) {
213
- m._free(handlePtr);
214
- throw SDKError.fromRACResult(result, 'rac_voice_agent_create_standalone');
215
- }
216
- const handle = m.getValue(handlePtr, 'i32');
217
- m._free(handlePtr);
218
- logger.info('VoiceAgent session created');
219
- return new VoiceAgentSession(handle);
119
+ // TODO: Look up a registered VoiceAgent provider from ExtensionPoint
120
+ // and delegate session creation to it.
121
+ throw SDKError.componentNotReady('VoiceAgent', 'No WASM backend registered — use a backend package (e.g. @runanywhere/web-llamacpp)');
220
122
  },
221
123
  };
222
124
  //# sourceMappingURL=RunAnywhere+VoiceAgent.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"RunAnywhere+VoiceAgent.js","sourceRoot":"","sources":["../../../src/Public/Extensions/RunAnywhere+VoiceAgent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"RunAnywhere+VoiceAgent.js","sourceRoot":"","sources":["../../../src/Public/Extensions/RunAnywhere+VoiceAgent.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AACvD,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAGvD,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAGlD,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC,YAAY,CAAC,CAAC;AAE3C,8EAA8E;AAC9E,sBAAsB;AACtB,8EAA8E;AAE9E;;;;;;;;GAQG;AACH,MAAM,OAAO,iBAAiB;IACpB,OAAO,CAAS;IAExB,YAAY,MAAc;QACxB,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;IACxB,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,UAAU,CAAC,MAAwB;QACvC,IAAI,MAAM,CAAC,GAAG;YAAE,MAAM,CAAC,IAAI,CAAC,sBAAsB,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC;QACnE,IAAI,MAAM,CAAC,GAAG;YAAE,MAAM,CAAC,IAAI,CAAC,sBAAsB,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC;QACnE,IAAI,MAAM,CAAC,GAAG;YAAE,MAAM,CAAC,IAAI,CAAC,sBAAsB,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC;QAEnE,qEAAqE;QACrE,MAAM,QAAQ,CAAC,iBAAiB,CAAC,YAAY,EAAE,qFAAqF,CAAC,CAAC;IACxI,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,gBAAgB,CAAC,UAAsB;QAC3C,sDAAsD;QACtD,MAAM,QAAQ,CAAC,iBAAiB,CAAC,YAAY,EAAE,qFAAqF,CAAC,CAAC;IACxI,CAAC;IAED;;;;OAIG;IACH,IAAI,OAAO;QACT,0CAA0C;QAC1C,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,UAAU,CAAC,UAAsB;QACrC,8CAA8C;QAC9C,MAAM,QAAQ,CAAC,iBAAiB,CAAC,YAAY,EAAE,qFAAqF,CAAC,CAAC;IACxI,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,gBAAgB,CAAC,OAAe;QACpC,8CAA8C;QAC9C,MAAM,QAAQ,CAAC,iBAAiB,CAAC,YAAY,EAAE,qFAAqF,CAAC,CAAC;IACxI,CAAC;IAED,yDAAyD;IACzD,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED;;;;OAIG;IACH,OAAO;QACL,yCAAyC;QACzC,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;IACnB,CAAC;CACF;AAED,8EAA8E;AAC9E,qBAAqB;AACrB,8EAA8E;AAE9E,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB;;;;;OAKG;IACH,KAAK,CAAC,MAAM;QACV,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE,CAAC;YAC/B,MAAM,QAAQ,CAAC,cAAc,EAAE,CAAC;QAClC,CAAC;QAED,qEAAqE;QACrE,uCAAuC;QACvC,MAAM,QAAQ,CAAC,iBAAiB,CAAC,YAAY,EAAE,qFAAqF,CAAC,CAAC;IACxI,CAAC;CACF,CAAC"}
@@ -3,10 +3,9 @@
3
3
  *
4
4
  * High-level streaming voice orchestrator: STT -> LLM (streaming) -> TTS.
5
5
  *
6
- * Unlike VoiceAgent (which uses the C API for a batch pipeline), VoicePipeline
7
- * composes the existing TypeScript SDK extensions (STT, TextGeneration, TTS)
8
- * and provides streaming callbacks so the UI can update in real-time as each
9
- * stage progresses.
6
+ * Uses runtime capability lookups via ExtensionPoint, so it doesn't import
7
+ * backend packages directly. Requires both @runanywhere/web-llamacpp and
8
+ * @runanywhere/web-onnx to be registered.
10
9
  *
11
10
  * Usage:
12
11
  * ```typescript
@@ -22,41 +21,16 @@
22
21
  * onSynthesisComplete: (audio, sr) => playAudio(audio, sr),
23
22
  * });
24
23
  * ```
25
- *
26
- * The pipeline does NOT handle audio capture, VAD, or playback — those are
27
- * app-level concerns (mic control, VAD thresholds, speaker output).
28
24
  */
29
25
  import { PipelineState } from './VoiceAgentTypes';
30
26
  import type { VoicePipelineCallbacks, VoicePipelineOptions, VoicePipelineTurnResult } from './VoicePipelineTypes';
31
27
  export { PipelineState } from './VoiceAgentTypes';
32
28
  export type { VoicePipelineCallbacks, VoicePipelineOptions, VoicePipelineTurnResult, } from './VoicePipelineTypes';
33
- /**
34
- * Streaming voice pipeline that orchestrates STT -> LLM -> TTS.
35
- *
36
- * Create one instance and reuse it across conversation turns. Each call to
37
- * `processTurn()` runs the full pipeline once and returns the result.
38
- *
39
- * The LLM step uses streaming generation, so the `onResponseToken` callback
40
- * fires for each token — enabling real-time UI updates.
41
- */
42
29
  export declare class VoicePipeline {
43
30
  private _cancelGeneration;
44
31
  private _state;
45
- /** Current pipeline state. */
46
32
  get state(): PipelineState;
47
- /**
48
- * Run a complete voice turn: audio in -> transcription -> LLM response -> TTS audio.
49
- *
50
- * @param audioData Float32Array of PCM samples (mono, typically 16 kHz).
51
- * @param options LLM / TTS / STT configuration for this turn.
52
- * @param callbacks Streaming callbacks for real-time UI updates.
53
- * @returns The full turn result once all stages complete.
54
- */
55
33
  processTurn(audioData: Float32Array, options?: VoicePipelineOptions, callbacks?: VoicePipelineCallbacks): Promise<VoicePipelineTurnResult>;
56
- /**
57
- * Cancel in-progress LLM generation.
58
- * Safe to call at any time — no-ops if nothing is in progress.
59
- */
60
34
  cancel(): void;
61
35
  private transition;
62
36
  }
@@ -1 +1 @@
1
- {"version":3,"file":"RunAnywhere+VoicePipeline.d.ts","sourceRoot":"","sources":["../../../src/Public/Extensions/RunAnywhere+VoicePipeline.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAMH,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,KAAK,EACV,sBAAsB,EACtB,oBAAoB,EACpB,uBAAuB,EACxB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,YAAY,EACV,sBAAsB,EACtB,oBAAoB,EACpB,uBAAuB,GACxB,MAAM,sBAAsB,CAAC;AAqB9B;;;;;;;;GAQG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,iBAAiB,CAA6B;IACtD,OAAO,CAAC,MAAM,CAAqC;IAEnD,8BAA8B;IAC9B,IAAI,KAAK,IAAI,aAAa,CAEzB;IAED;;;;;;;OAOG;IACG,WAAW,CACf,SAAS,EAAE,YAAY,EACvB,OAAO,CAAC,EAAE,oBAAoB,EAC9B,SAAS,CAAC,EAAE,sBAAsB,GACjC,OAAO,CAAC,uBAAuB,CAAC;IAgGnC;;;OAGG;IACH,MAAM,IAAI,IAAI;IAYd,OAAO,CAAC,UAAU;CAInB"}
1
+ {"version":3,"file":"RunAnywhere+VoicePipeline.d.ts","sourceRoot":"","sources":["../../../src/Public/Extensions/RunAnywhere+VoicePipeline.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAIH,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,KAAK,EACV,sBAAsB,EACtB,oBAAoB,EACpB,uBAAuB,EACxB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,YAAY,EACV,sBAAsB,EACtB,oBAAoB,EACpB,uBAAuB,GACxB,MAAM,sBAAsB,CAAC;AAyD9B,qBAAa,aAAa;IACxB,OAAO,CAAC,iBAAiB,CAA6B;IACtD,OAAO,CAAC,MAAM,CAAqC;IAEnD,IAAI,KAAK,IAAI,aAAa,CAEzB;IAEK,WAAW,CACf,SAAS,EAAE,YAAY,EACvB,OAAO,CAAC,EAAE,oBAAoB,EAC9B,SAAS,CAAC,EAAE,sBAAsB,GACjC,OAAO,CAAC,uBAAuB,CAAC;IAmGnC,MAAM,IAAI,IAAI;IAQd,OAAO,CAAC,UAAU;CAInB"}
@@ -3,10 +3,9 @@
3
3
  *
4
4
  * High-level streaming voice orchestrator: STT -> LLM (streaming) -> TTS.
5
5
  *
6
- * Unlike VoiceAgent (which uses the C API for a batch pipeline), VoicePipeline
7
- * composes the existing TypeScript SDK extensions (STT, TextGeneration, TTS)
8
- * and provides streaming callbacks so the UI can update in real-time as each
9
- * stage progresses.
6
+ * Uses runtime capability lookups via ExtensionPoint, so it doesn't import
7
+ * backend packages directly. Requires both @runanywhere/web-llamacpp and
8
+ * @runanywhere/web-onnx to be registered.
10
9
  *
11
10
  * Usage:
12
11
  * ```typescript
@@ -22,18 +21,25 @@
22
21
  * onSynthesisComplete: (audio, sr) => playAudio(audio, sr),
23
22
  * });
24
23
  * ```
25
- *
26
- * The pipeline does NOT handle audio capture, VAD, or playback — those are
27
- * app-level concerns (mic control, VAD thresholds, speaker output).
28
24
  */
29
- import { STT } from './RunAnywhere+STT';
30
- import { TextGeneration } from './RunAnywhere+TextGeneration';
31
- import { TTS } from './RunAnywhere+TTS';
32
25
  import { SDKLogger } from '../../Foundation/SDKLogger';
26
+ import { ExtensionPoint, ServiceKey } from '../../Infrastructure/ExtensionPoint';
33
27
  import { PipelineState } from './VoiceAgentTypes';
34
28
  export { PipelineState } from './VoiceAgentTypes';
35
29
  const logger = new SDKLogger('VoicePipeline');
36
30
  // ---------------------------------------------------------------------------
31
+ // Dynamic backend access helpers (typed via ExtensionPoint service registry)
32
+ // ---------------------------------------------------------------------------
33
+ function requireSTT() {
34
+ return ExtensionPoint.requireService(ServiceKey.STT, '@runanywhere/web-onnx');
35
+ }
36
+ function requireTextGeneration() {
37
+ return ExtensionPoint.requireService(ServiceKey.TextGeneration, '@runanywhere/web-llamacpp');
38
+ }
39
+ function requireTTS() {
40
+ return ExtensionPoint.requireService(ServiceKey.TTS, '@runanywhere/web-onnx');
41
+ }
42
+ // ---------------------------------------------------------------------------
37
43
  // Default options
38
44
  // ---------------------------------------------------------------------------
39
45
  const DEFAULT_OPTIONS = {
@@ -46,38 +52,21 @@ const DEFAULT_OPTIONS = {
46
52
  // ---------------------------------------------------------------------------
47
53
  // VoicePipeline
48
54
  // ---------------------------------------------------------------------------
49
- /**
50
- * Streaming voice pipeline that orchestrates STT -> LLM -> TTS.
51
- *
52
- * Create one instance and reuse it across conversation turns. Each call to
53
- * `processTurn()` runs the full pipeline once and returns the result.
54
- *
55
- * The LLM step uses streaming generation, so the `onResponseToken` callback
56
- * fires for each token — enabling real-time UI updates.
57
- */
58
55
  export class VoicePipeline {
59
56
  _cancelGeneration = null;
60
57
  _state = PipelineState.Idle;
61
- /** Current pipeline state. */
62
58
  get state() {
63
59
  return this._state;
64
60
  }
65
- /**
66
- * Run a complete voice turn: audio in -> transcription -> LLM response -> TTS audio.
67
- *
68
- * @param audioData Float32Array of PCM samples (mono, typically 16 kHz).
69
- * @param options LLM / TTS / STT configuration for this turn.
70
- * @param callbacks Streaming callbacks for real-time UI updates.
71
- * @returns The full turn result once all stages complete.
72
- */
73
61
  async processTurn(audioData, options, callbacks) {
74
62
  const opts = { ...DEFAULT_OPTIONS, ...options };
75
63
  const totalStart = performance.now();
76
- // ── Step 1: STT ────────────────────────────────────────────────────
64
+ // Step 1: STT
77
65
  this.transition(PipelineState.ProcessingSTT, callbacks);
78
66
  const sttStart = performance.now();
79
67
  logger.info(`STT: ${(audioData.length / opts.sampleRate).toFixed(1)}s of audio`);
80
- const sttResult = await STT.transcribe(audioData, {
68
+ const stt = requireSTT();
69
+ const sttResult = await stt.transcribe(audioData, {
81
70
  sampleRate: opts.sampleRate,
82
71
  });
83
72
  const sttMs = performance.now() - sttStart;
@@ -92,10 +81,11 @@ export class VoicePipeline {
92
81
  timing: { sttMs, llmMs: 0, ttsMs: 0, totalMs: performance.now() - totalStart },
93
82
  };
94
83
  }
95
- // ── Step 2: LLM (streaming) ────────────────────────────────────────
84
+ // Step 2: LLM (streaming)
96
85
  this.transition(PipelineState.GeneratingResponse, callbacks);
97
86
  const llmStart = performance.now();
98
- const { stream, result: llmResultPromise, cancel } = await TextGeneration.generateStream(userText, {
87
+ const textGen = requireTextGeneration();
88
+ const { stream, result: llmResultPromise, cancel } = await textGen.generateStream(userText, {
99
89
  maxTokens: opts.maxTokens,
100
90
  temperature: opts.temperature,
101
91
  systemPrompt: opts.systemPrompt,
@@ -121,16 +111,17 @@ export class VoicePipeline {
121
111
  llmResult,
122
112
  };
123
113
  }
124
- // ── Step 3: TTS ────────────────────────────────────────────────────
114
+ // Step 3: TTS
125
115
  this.transition(PipelineState.PlayingTTS, callbacks);
126
116
  const ttsStart = performance.now();
127
- const ttsResult = await TTS.synthesize(fullResponse.trim(), {
117
+ const tts = requireTTS();
118
+ const ttsResult = await tts.synthesize(fullResponse.trim(), {
128
119
  speed: opts.ttsSpeed,
129
120
  });
130
121
  const ttsMs = performance.now() - ttsStart;
131
122
  logger.info(`TTS complete: ${ttsResult.durationMs}ms audio in ${ttsResult.processingTimeMs}ms`);
132
123
  callbacks?.onSynthesisComplete?.(ttsResult.audioData, ttsResult.sampleRate, ttsResult);
133
- // ── Done ───────────────────────────────────────────────────────────
124
+ // Done
134
125
  this.transition(PipelineState.Idle, callbacks);
135
126
  return {
136
127
  transcription: userText,
@@ -146,10 +137,6 @@ export class VoicePipeline {
146
137
  llmResult,
147
138
  };
148
139
  }
149
- /**
150
- * Cancel in-progress LLM generation.
151
- * Safe to call at any time — no-ops if nothing is in progress.
152
- */
153
140
  cancel() {
154
141
  if (this._cancelGeneration) {
155
142
  this._cancelGeneration();
@@ -157,9 +144,6 @@ export class VoicePipeline {
157
144
  logger.info('Generation cancelled');
158
145
  }
159
146
  }
160
- // ---------------------------------------------------------------------------
161
- // Internals
162
- // ---------------------------------------------------------------------------
163
147
  transition(newState, callbacks) {
164
148
  this._state = newState;
165
149
  callbacks?.onStateChange?.(newState);
@@ -1 +1 @@
1
- {"version":3,"file":"RunAnywhere+VoicePipeline.js","sourceRoot":"","sources":["../../../src/Public/Extensions/RunAnywhere+VoicePipeline.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"RunAnywhere+VoicePipeline.js","sourceRoot":"","sources":["../../../src/Public/Extensions/RunAnywhere+VoicePipeline.ts"],"names":[],"mappings":"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"}
@@ -2,68 +2,59 @@
2
2
  * RunAnywhere Web SDK - VoicePipeline Types
3
3
  *
4
4
  * Types for the high-level streaming voice pipeline that orchestrates
5
- * STT -> LLM (streaming) -> TTS using the existing SDK extensions.
5
+ * STT -> LLM (streaming) -> TTS using backend extensions.
6
+ *
7
+ * These types use generic result shapes so the core VoicePipeline doesn't
8
+ * need to import types from backend packages.
6
9
  */
7
10
  import { PipelineState } from './VoiceAgentTypes';
8
- import type { STTTranscriptionResult } from './STTTypes';
9
- import type { LLMGenerationResult } from '../../types/LLMTypes';
10
- import type { TTSSynthesisResult } from './TTSTypes';
11
11
  export { PipelineState };
12
- /**
13
- * Streaming callbacks for each stage of the voice pipeline.
14
- *
15
- * All callbacks are optional — subscribe only to the stages you need
16
- * to update the UI.
17
- */
12
+ /** Generic STT result shape (matches STTTranscriptionResult). */
13
+ export interface VoicePipelineSTTResult {
14
+ text: string;
15
+ [key: string]: unknown;
16
+ }
17
+ /** Generic LLM result shape (matches LLMGenerationResult). */
18
+ export interface VoicePipelineLLMResult {
19
+ text: string;
20
+ tokensUsed: number;
21
+ tokensPerSecond: number;
22
+ [key: string]: unknown;
23
+ }
24
+ /** Generic TTS result shape (matches TTSSynthesisResult). */
25
+ export interface VoicePipelineTTSResult {
26
+ audioData: Float32Array;
27
+ sampleRate: number;
28
+ durationMs: number;
29
+ processingTimeMs: number;
30
+ [key: string]: unknown;
31
+ }
18
32
  export interface VoicePipelineCallbacks {
19
- /** Fires when the pipeline transitions between stages. */
20
33
  onStateChange?: (state: PipelineState) => void;
21
- /** Fires when STT completes with the transcribed user text. */
22
- onTranscription?: (text: string, result: STTTranscriptionResult) => void;
23
- /**
24
- * Fires for each LLM token during streaming generation.
25
- * @param token - The individual new token
26
- * @param accumulated - The full response so far
27
- */
34
+ onTranscription?: (text: string, result: VoicePipelineSTTResult) => void;
28
35
  onResponseToken?: (token: string, accumulated: string) => void;
29
- /** Fires when LLM generation is complete. */
30
- onResponseComplete?: (text: string, result: LLMGenerationResult) => void;
31
- /** Fires when TTS synthesis is complete with playable audio. */
32
- onSynthesisComplete?: (audio: Float32Array, sampleRate: number, result: TTSSynthesisResult) => void;
33
- /** Fires on any error during the pipeline. */
36
+ onResponseComplete?: (text: string, result: VoicePipelineLLMResult) => void;
37
+ onSynthesisComplete?: (audio: Float32Array, sampleRate: number, result: VoicePipelineTTSResult) => void;
34
38
  onError?: (error: Error, stage: PipelineState) => void;
35
39
  }
36
- /** Options for a single voice pipeline turn. */
37
40
  export interface VoicePipelineOptions {
38
- /** Max tokens for LLM generation (default: 150). */
39
41
  maxTokens?: number;
40
- /** LLM temperature (default: 0.7). */
41
42
  temperature?: number;
42
- /** System prompt for the LLM (default: conversational assistant). */
43
43
  systemPrompt?: string;
44
- /** TTS speech speed factor (default: 1.0). */
45
44
  ttsSpeed?: number;
46
- /** STT audio sample rate (default: 16000). */
47
45
  sampleRate?: number;
48
46
  }
49
- /** Result of a complete voice pipeline turn. */
50
47
  export interface VoicePipelineTurnResult {
51
- /** Transcribed user speech. Empty string if no speech detected. */
52
48
  transcription: string;
53
- /** LLM response text. */
54
49
  response: string;
55
- /** Synthesized audio (PCM Float32 samples). */
56
50
  synthesizedAudio?: Float32Array;
57
- /** Audio sample rate of synthesized audio. */
58
51
  sampleRate?: number;
59
- /** Time in ms for each stage. */
60
52
  timing: {
61
53
  sttMs: number;
62
54
  llmMs: number;
63
55
  ttsMs: number;
64
56
  totalMs: number;
65
57
  };
66
- /** LLM metrics (tokens, tok/s, etc.). */
67
- llmResult?: LLMGenerationResult;
58
+ llmResult?: VoicePipelineLLMResult;
68
59
  }
69
60
  //# sourceMappingURL=VoicePipelineTypes.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"VoicePipelineTypes.d.ts","sourceRoot":"","sources":["../../../src/Public/Extensions/VoicePipelineTypes.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AACzD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAErD,OAAO,EAAE,aAAa,EAAE,CAAC;AAMzB;;;;;GAKG;AACH,MAAM,WAAW,sBAAsB;IACrC,0DAA0D;IAC1D,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,CAAC;IAE/C,+DAA+D;IAC/D,eAAe,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,sBAAsB,KAAK,IAAI,CAAC;IAEzE;;;;OAIG;IACH,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,KAAK,IAAI,CAAC;IAE/D,6CAA6C;IAC7C,kBAAkB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,mBAAmB,KAAK,IAAI,CAAC;IAEzE,gEAAgE;IAChE,mBAAmB,CAAC,EAAE,CAAC,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,kBAAkB,KAAK,IAAI,CAAC;IAEpG,8CAA8C;IAC9C,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,aAAa,KAAK,IAAI,CAAC;CACxD;AAMD,gDAAgD;AAChD,MAAM,WAAW,oBAAoB;IACnC,oDAAoD;IACpD,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,sCAAsC;IACtC,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,qEAAqE;IACrE,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB,8CAA8C;IAC9C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,8CAA8C;IAC9C,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAMD,gDAAgD;AAChD,MAAM,WAAW,uBAAuB;IACtC,mEAAmE;IACnE,aAAa,EAAE,MAAM,CAAC;IAEtB,yBAAyB;IACzB,QAAQ,EAAE,MAAM,CAAC;IAEjB,+CAA+C;IAC/C,gBAAgB,CAAC,EAAE,YAAY,CAAC;IAEhC,8CAA8C;IAC9C,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,iCAAiC;IACjC,MAAM,EAAE;QACN,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,MAAM,CAAC;QACd,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;IAEF,yCAAyC;IACzC,SAAS,CAAC,EAAE,mBAAmB,CAAC;CACjC"}
1
+ {"version":3,"file":"VoicePipelineTypes.d.ts","sourceRoot":"","sources":["../../../src/Public/Extensions/VoicePipelineTypes.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAElD,OAAO,EAAE,aAAa,EAAE,CAAC;AAMzB,iEAAiE;AACjE,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,8DAA8D;AAC9D,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;IACxB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,6DAA6D;AAC7D,MAAM,WAAW,sBAAsB;IACrC,SAAS,EAAE,YAAY,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,gBAAgB,EAAE,MAAM,CAAC;IACzB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAMD,MAAM,WAAW,sBAAsB;IACrC,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,CAAC;IAC/C,eAAe,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,sBAAsB,KAAK,IAAI,CAAC;IACzE,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/D,kBAAkB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,sBAAsB,KAAK,IAAI,CAAC;IAC5E,mBAAmB,CAAC,EAAE,CAAC,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,sBAAsB,KAAK,IAAI,CAAC;IACxG,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,aAAa,KAAK,IAAI,CAAC;CACxD;AAMD,MAAM,WAAW,oBAAoB;IACnC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAMD,MAAM,WAAW,uBAAuB;IACtC,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,gBAAgB,CAAC,EAAE,YAAY,CAAC;IAChC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE;QACN,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,MAAM,CAAC;QACd,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,SAAS,CAAC,EAAE,sBAAsB,CAAC;CACpC"}