@azure/ai-voicelive 1.0.0-alpha.20251117.2

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 (212) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +358 -0
  3. package/dist/browser/auth/credentialHandler.d.ts +43 -0
  4. package/dist/browser/auth/credentialHandler.js +147 -0
  5. package/dist/browser/auth/credentialHandler.js.map +1 -0
  6. package/dist/browser/errors/connectionErrors.d.ts +68 -0
  7. package/dist/browser/errors/connectionErrors.js +136 -0
  8. package/dist/browser/errors/connectionErrors.js.map +1 -0
  9. package/dist/browser/errors/index.d.ts +2 -0
  10. package/dist/browser/errors/index.js +4 -0
  11. package/dist/browser/errors/index.js.map +1 -0
  12. package/dist/browser/handlers/sessionHandlers.d.ts +250 -0
  13. package/dist/browser/handlers/sessionHandlers.js +4 -0
  14. package/dist/browser/handlers/sessionHandlers.js.map +1 -0
  15. package/dist/browser/handlers/subscriptionManager.d.ts +54 -0
  16. package/dist/browser/handlers/subscriptionManager.js +250 -0
  17. package/dist/browser/handlers/subscriptionManager.js.map +1 -0
  18. package/dist/browser/index.d.ts +7 -0
  19. package/dist/browser/index.js +12 -0
  20. package/dist/browser/index.js.map +1 -0
  21. package/dist/browser/logger.d.ts +2 -0
  22. package/dist/browser/logger.js +5 -0
  23. package/dist/browser/logger.js.map +1 -0
  24. package/dist/browser/models/index.d.ts +2 -0
  25. package/dist/browser/models/index.js +4 -0
  26. package/dist/browser/models/index.js.map +1 -0
  27. package/dist/browser/models/models.d.ts +2154 -0
  28. package/dist/browser/models/models.js +2251 -0
  29. package/dist/browser/models/models.js.map +1 -0
  30. package/dist/browser/package.json +3 -0
  31. package/dist/browser/protocol/messageParser.d.ts +42 -0
  32. package/dist/browser/protocol/messageParser.js +150 -0
  33. package/dist/browser/protocol/messageParser.js.map +1 -0
  34. package/dist/browser/voiceLiveClient.d.ts +65 -0
  35. package/dist/browser/voiceLiveClient.js +81 -0
  36. package/dist/browser/voiceLiveClient.js.map +1 -0
  37. package/dist/browser/voiceLiveSession.d.ts +138 -0
  38. package/dist/browser/voiceLiveSession.js +429 -0
  39. package/dist/browser/voiceLiveSession.js.map +1 -0
  40. package/dist/browser/websocket/connectionManager.d.ts +88 -0
  41. package/dist/browser/websocket/connectionManager.js +183 -0
  42. package/dist/browser/websocket/connectionManager.js.map +1 -0
  43. package/dist/browser/websocket/websocketBrowser.d.ts +26 -0
  44. package/dist/browser/websocket/websocketBrowser.js +175 -0
  45. package/dist/browser/websocket/websocketBrowser.js.map +1 -0
  46. package/dist/browser/websocket/websocketFactory.d.ts +23 -0
  47. package/dist/browser/websocket/websocketFactory.js +80 -0
  48. package/dist/browser/websocket/websocketFactory.js.map +1 -0
  49. package/dist/browser/websocket/websocketLike.d.ts +78 -0
  50. package/dist/browser/websocket/websocketLike.js +13 -0
  51. package/dist/browser/websocket/websocketLike.js.map +1 -0
  52. package/dist/browser/websocket/websocketNode.d.ts +26 -0
  53. package/dist/browser/websocket/websocketNode.js +180 -0
  54. package/dist/browser/websocket/websocketNode.js.map +1 -0
  55. package/dist/commonjs/auth/credentialHandler.d.ts +43 -0
  56. package/dist/commonjs/auth/credentialHandler.js +151 -0
  57. package/dist/commonjs/auth/credentialHandler.js.map +1 -0
  58. package/dist/commonjs/errors/connectionErrors.d.ts +68 -0
  59. package/dist/commonjs/errors/connectionErrors.js +146 -0
  60. package/dist/commonjs/errors/connectionErrors.js.map +1 -0
  61. package/dist/commonjs/errors/index.d.ts +2 -0
  62. package/dist/commonjs/errors/index.js +7 -0
  63. package/dist/commonjs/errors/index.js.map +1 -0
  64. package/dist/commonjs/handlers/sessionHandlers.d.ts +250 -0
  65. package/dist/commonjs/handlers/sessionHandlers.js +5 -0
  66. package/dist/commonjs/handlers/sessionHandlers.js.map +1 -0
  67. package/dist/commonjs/handlers/subscriptionManager.d.ts +54 -0
  68. package/dist/commonjs/handlers/subscriptionManager.js +255 -0
  69. package/dist/commonjs/handlers/subscriptionManager.js.map +1 -0
  70. package/dist/commonjs/index.d.ts +7 -0
  71. package/dist/commonjs/index.js +45 -0
  72. package/dist/commonjs/index.js.map +1 -0
  73. package/dist/commonjs/logger.d.ts +2 -0
  74. package/dist/commonjs/logger.js +8 -0
  75. package/dist/commonjs/logger.js.map +1 -0
  76. package/dist/commonjs/models/index.d.ts +2 -0
  77. package/dist/commonjs/models/index.js +27 -0
  78. package/dist/commonjs/models/index.js.map +1 -0
  79. package/dist/commonjs/models/models.d.ts +2154 -0
  80. package/dist/commonjs/models/models.js +2463 -0
  81. package/dist/commonjs/models/models.js.map +1 -0
  82. package/dist/commonjs/package.json +3 -0
  83. package/dist/commonjs/protocol/messageParser.d.ts +42 -0
  84. package/dist/commonjs/protocol/messageParser.js +154 -0
  85. package/dist/commonjs/protocol/messageParser.js.map +1 -0
  86. package/dist/commonjs/tsdoc-metadata.json +11 -0
  87. package/dist/commonjs/voiceLiveClient.d.ts +65 -0
  88. package/dist/commonjs/voiceLiveClient.js +85 -0
  89. package/dist/commonjs/voiceLiveClient.js.map +1 -0
  90. package/dist/commonjs/voiceLiveSession.d.ts +138 -0
  91. package/dist/commonjs/voiceLiveSession.js +433 -0
  92. package/dist/commonjs/voiceLiveSession.js.map +1 -0
  93. package/dist/commonjs/websocket/connectionManager.d.ts +88 -0
  94. package/dist/commonjs/websocket/connectionManager.js +187 -0
  95. package/dist/commonjs/websocket/connectionManager.js.map +1 -0
  96. package/dist/commonjs/websocket/websocketBrowser.d.ts +26 -0
  97. package/dist/commonjs/websocket/websocketBrowser.js +179 -0
  98. package/dist/commonjs/websocket/websocketBrowser.js.map +1 -0
  99. package/dist/commonjs/websocket/websocketFactory.d.ts +23 -0
  100. package/dist/commonjs/websocket/websocketFactory.js +86 -0
  101. package/dist/commonjs/websocket/websocketFactory.js.map +1 -0
  102. package/dist/commonjs/websocket/websocketLike.d.ts +78 -0
  103. package/dist/commonjs/websocket/websocketLike.js +16 -0
  104. package/dist/commonjs/websocket/websocketLike.js.map +1 -0
  105. package/dist/commonjs/websocket/websocketNode.d.ts +26 -0
  106. package/dist/commonjs/websocket/websocketNode.js +185 -0
  107. package/dist/commonjs/websocket/websocketNode.js.map +1 -0
  108. package/dist/esm/auth/credentialHandler.d.ts +43 -0
  109. package/dist/esm/auth/credentialHandler.js +147 -0
  110. package/dist/esm/auth/credentialHandler.js.map +1 -0
  111. package/dist/esm/errors/connectionErrors.d.ts +68 -0
  112. package/dist/esm/errors/connectionErrors.js +136 -0
  113. package/dist/esm/errors/connectionErrors.js.map +1 -0
  114. package/dist/esm/errors/index.d.ts +2 -0
  115. package/dist/esm/errors/index.js +4 -0
  116. package/dist/esm/errors/index.js.map +1 -0
  117. package/dist/esm/handlers/sessionHandlers.d.ts +250 -0
  118. package/dist/esm/handlers/sessionHandlers.js +4 -0
  119. package/dist/esm/handlers/sessionHandlers.js.map +1 -0
  120. package/dist/esm/handlers/subscriptionManager.d.ts +54 -0
  121. package/dist/esm/handlers/subscriptionManager.js +250 -0
  122. package/dist/esm/handlers/subscriptionManager.js.map +1 -0
  123. package/dist/esm/index.d.ts +7 -0
  124. package/dist/esm/index.js +12 -0
  125. package/dist/esm/index.js.map +1 -0
  126. package/dist/esm/logger.d.ts +2 -0
  127. package/dist/esm/logger.js +5 -0
  128. package/dist/esm/logger.js.map +1 -0
  129. package/dist/esm/models/index.d.ts +2 -0
  130. package/dist/esm/models/index.js +4 -0
  131. package/dist/esm/models/index.js.map +1 -0
  132. package/dist/esm/models/models.d.ts +2154 -0
  133. package/dist/esm/models/models.js +2251 -0
  134. package/dist/esm/models/models.js.map +1 -0
  135. package/dist/esm/package.json +3 -0
  136. package/dist/esm/protocol/messageParser.d.ts +42 -0
  137. package/dist/esm/protocol/messageParser.js +150 -0
  138. package/dist/esm/protocol/messageParser.js.map +1 -0
  139. package/dist/esm/voiceLiveClient.d.ts +65 -0
  140. package/dist/esm/voiceLiveClient.js +81 -0
  141. package/dist/esm/voiceLiveClient.js.map +1 -0
  142. package/dist/esm/voiceLiveSession.d.ts +138 -0
  143. package/dist/esm/voiceLiveSession.js +429 -0
  144. package/dist/esm/voiceLiveSession.js.map +1 -0
  145. package/dist/esm/websocket/connectionManager.d.ts +88 -0
  146. package/dist/esm/websocket/connectionManager.js +183 -0
  147. package/dist/esm/websocket/connectionManager.js.map +1 -0
  148. package/dist/esm/websocket/websocketBrowser.d.ts +26 -0
  149. package/dist/esm/websocket/websocketBrowser.js +175 -0
  150. package/dist/esm/websocket/websocketBrowser.js.map +1 -0
  151. package/dist/esm/websocket/websocketFactory.d.ts +23 -0
  152. package/dist/esm/websocket/websocketFactory.js +80 -0
  153. package/dist/esm/websocket/websocketFactory.js.map +1 -0
  154. package/dist/esm/websocket/websocketLike.d.ts +78 -0
  155. package/dist/esm/websocket/websocketLike.js +13 -0
  156. package/dist/esm/websocket/websocketLike.js.map +1 -0
  157. package/dist/esm/websocket/websocketNode.d.ts +26 -0
  158. package/dist/esm/websocket/websocketNode.js +180 -0
  159. package/dist/esm/websocket/websocketNode.js.map +1 -0
  160. package/dist/react-native/auth/credentialHandler.d.ts +43 -0
  161. package/dist/react-native/auth/credentialHandler.js +147 -0
  162. package/dist/react-native/auth/credentialHandler.js.map +1 -0
  163. package/dist/react-native/errors/connectionErrors.d.ts +68 -0
  164. package/dist/react-native/errors/connectionErrors.js +136 -0
  165. package/dist/react-native/errors/connectionErrors.js.map +1 -0
  166. package/dist/react-native/errors/index.d.ts +2 -0
  167. package/dist/react-native/errors/index.js +4 -0
  168. package/dist/react-native/errors/index.js.map +1 -0
  169. package/dist/react-native/handlers/sessionHandlers.d.ts +250 -0
  170. package/dist/react-native/handlers/sessionHandlers.js +4 -0
  171. package/dist/react-native/handlers/sessionHandlers.js.map +1 -0
  172. package/dist/react-native/handlers/subscriptionManager.d.ts +54 -0
  173. package/dist/react-native/handlers/subscriptionManager.js +250 -0
  174. package/dist/react-native/handlers/subscriptionManager.js.map +1 -0
  175. package/dist/react-native/index.d.ts +7 -0
  176. package/dist/react-native/index.js +12 -0
  177. package/dist/react-native/index.js.map +1 -0
  178. package/dist/react-native/logger.d.ts +2 -0
  179. package/dist/react-native/logger.js +5 -0
  180. package/dist/react-native/logger.js.map +1 -0
  181. package/dist/react-native/models/index.d.ts +2 -0
  182. package/dist/react-native/models/index.js +4 -0
  183. package/dist/react-native/models/index.js.map +1 -0
  184. package/dist/react-native/models/models.d.ts +2154 -0
  185. package/dist/react-native/models/models.js +2251 -0
  186. package/dist/react-native/models/models.js.map +1 -0
  187. package/dist/react-native/package.json +3 -0
  188. package/dist/react-native/protocol/messageParser.d.ts +42 -0
  189. package/dist/react-native/protocol/messageParser.js +150 -0
  190. package/dist/react-native/protocol/messageParser.js.map +1 -0
  191. package/dist/react-native/voiceLiveClient.d.ts +65 -0
  192. package/dist/react-native/voiceLiveClient.js +81 -0
  193. package/dist/react-native/voiceLiveClient.js.map +1 -0
  194. package/dist/react-native/voiceLiveSession.d.ts +138 -0
  195. package/dist/react-native/voiceLiveSession.js +429 -0
  196. package/dist/react-native/voiceLiveSession.js.map +1 -0
  197. package/dist/react-native/websocket/connectionManager.d.ts +88 -0
  198. package/dist/react-native/websocket/connectionManager.js +183 -0
  199. package/dist/react-native/websocket/connectionManager.js.map +1 -0
  200. package/dist/react-native/websocket/websocketBrowser.d.ts +26 -0
  201. package/dist/react-native/websocket/websocketBrowser.js +175 -0
  202. package/dist/react-native/websocket/websocketBrowser.js.map +1 -0
  203. package/dist/react-native/websocket/websocketFactory.d.ts +23 -0
  204. package/dist/react-native/websocket/websocketFactory.js +80 -0
  205. package/dist/react-native/websocket/websocketFactory.js.map +1 -0
  206. package/dist/react-native/websocket/websocketLike.d.ts +78 -0
  207. package/dist/react-native/websocket/websocketLike.js +13 -0
  208. package/dist/react-native/websocket/websocketLike.js.map +1 -0
  209. package/dist/react-native/websocket/websocketNode.d.ts +26 -0
  210. package/dist/react-native/websocket/websocketNode.js +180 -0
  211. package/dist/react-native/websocket/websocketNode.js.map +1 -0
  212. package/package.json +150 -0
@@ -0,0 +1,255 @@
1
+ "use strict";
2
+ // Copyright (c) Microsoft Corporation.
3
+ // Licensed under the MIT License.
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ exports.SubscriptionManager = exports.VoiceLiveSubscriptionImpl = void 0;
6
+ const logger_js_1 = require("../logger.js");
7
+ /**
8
+ * Internal implementation of VoiceLiveSubscription
9
+ */
10
+ class VoiceLiveSubscriptionImpl {
11
+ _isActive = true;
12
+ _handlers;
13
+ _subscriptionId;
14
+ constructor(handlers, subscriptionId) {
15
+ this._handlers = handlers;
16
+ this._subscriptionId = subscriptionId;
17
+ }
18
+ get isActive() {
19
+ return this._isActive;
20
+ }
21
+ get subscriptionId() {
22
+ return this._subscriptionId;
23
+ }
24
+ async close() {
25
+ if (!this._isActive) {
26
+ return;
27
+ }
28
+ this._isActive = false;
29
+ logger_js_1.logger.info("VoiceLive subscription closed", { subscriptionId: this._subscriptionId });
30
+ }
31
+ /**
32
+ * Process a connection event
33
+ */
34
+ async processConnectionEvent(eventType, args, context) {
35
+ if (!this._isActive) {
36
+ return;
37
+ }
38
+ try {
39
+ switch (eventType) {
40
+ case "connected":
41
+ await this._handlers.onConnected?.(args, context);
42
+ break;
43
+ case "disconnected":
44
+ await this._handlers.onDisconnected?.(args, context);
45
+ break;
46
+ case "error":
47
+ await this._handlers.onError?.(args, context);
48
+ break;
49
+ }
50
+ }
51
+ catch (error) {
52
+ logger_js_1.logger.error(`Error in ${eventType} handler`, {
53
+ error,
54
+ subscriptionId: this._subscriptionId,
55
+ });
56
+ // Don't rethrow - follow Azure SDK pattern of logging but not stopping other handlers
57
+ }
58
+ }
59
+ /**
60
+ * Process a server event
61
+ */
62
+ async processServerEvent(event, context) {
63
+ if (!this._isActive) {
64
+ return;
65
+ }
66
+ try {
67
+ // Call the general server event handler
68
+ await this._handlers.onServerEvent?.(event, context);
69
+ // Call specific handlers based on event type
70
+ switch (event.type) {
71
+ // Session events
72
+ case "session.created":
73
+ await this._handlers.onSessionCreated?.(event, context);
74
+ break;
75
+ case "session.updated":
76
+ await this._handlers.onSessionUpdated?.(event, context);
77
+ break;
78
+ case "session.avatar.connecting":
79
+ await this._handlers.onSessionAvatarConnecting?.(event, context);
80
+ break;
81
+ // Input audio buffer events
82
+ case "input_audio_buffer.committed":
83
+ await this._handlers.onInputAudioBufferCommitted?.(event, context);
84
+ break;
85
+ case "input_audio_buffer.cleared":
86
+ await this._handlers.onInputAudioBufferCleared?.(event, context);
87
+ break;
88
+ case "input_audio_buffer.speech_started":
89
+ await this._handlers.onInputAudioBufferSpeechStarted?.(event, context);
90
+ break;
91
+ case "input_audio_buffer.speech_stopped":
92
+ await this._handlers.onInputAudioBufferSpeechStopped?.(event, context);
93
+ break;
94
+ // Conversation item events
95
+ case "conversation.item.created":
96
+ await this._handlers.onConversationItemCreated?.(event, context);
97
+ break;
98
+ case "conversation.item.input_audio_transcription.completed":
99
+ await this._handlers.onConversationItemInputAudioTranscriptionCompleted?.(event, context);
100
+ break;
101
+ case "conversation.item.input_audio_transcription.failed":
102
+ await this._handlers.onConversationItemInputAudioTranscriptionFailed?.(event, context);
103
+ break;
104
+ case "conversation.item.input_audio_transcription.delta":
105
+ await this._handlers.onConversationItemInputAudioTranscriptionDelta?.(event, context);
106
+ break;
107
+ case "conversation.item.truncated":
108
+ await this._handlers.onConversationItemTruncated?.(event, context);
109
+ break;
110
+ case "conversation.item.deleted":
111
+ await this._handlers.onConversationItemDeleted?.(event, context);
112
+ break;
113
+ case "conversation.item.retrieved":
114
+ await this._handlers.onConversationItemRetrieved?.(event, context);
115
+ break;
116
+ // Response lifecycle events
117
+ case "response.created":
118
+ await this._handlers.onResponseCreated?.(event, context);
119
+ break;
120
+ case "response.done":
121
+ await this._handlers.onResponseDone?.(event, context);
122
+ break;
123
+ case "response.output_item.added":
124
+ await this._handlers.onResponseOutputItemAdded?.(event, context);
125
+ break;
126
+ case "response.output_item.done":
127
+ await this._handlers.onResponseOutputItemDone?.(event, context);
128
+ break;
129
+ case "response.content_part.added":
130
+ await this._handlers.onResponseContentPartAdded?.(event, context);
131
+ break;
132
+ case "response.content_part.done":
133
+ await this._handlers.onResponseContentPartDone?.(event, context);
134
+ break;
135
+ // Response text events
136
+ case "response.text.delta":
137
+ await this._handlers.onResponseTextDelta?.(event, context);
138
+ break;
139
+ case "response.text.done":
140
+ await this._handlers.onResponseTextDone?.(event, context);
141
+ break;
142
+ // Response audio events
143
+ case "response.audio.delta":
144
+ await this._handlers.onResponseAudioDelta?.(event, context);
145
+ break;
146
+ case "response.audio.done":
147
+ await this._handlers.onResponseAudioDone?.(event, context);
148
+ break;
149
+ case "response.audio_transcript.delta":
150
+ await this._handlers.onResponseAudioTranscriptDelta?.(event, context);
151
+ break;
152
+ case "response.audio_transcript.done":
153
+ await this._handlers.onResponseAudioTranscriptDone?.(event, context);
154
+ break;
155
+ // Response animation events
156
+ case "response.animation_blendshapes.delta":
157
+ await this._handlers.onResponseAnimationBlendshapeDelta?.(event, context);
158
+ break;
159
+ case "response.animation_blendshapes.done":
160
+ await this._handlers.onResponseAnimationBlendshapeDone?.(event, context);
161
+ break;
162
+ case "response.animation_viseme.delta":
163
+ await this._handlers.onResponseAnimationVisemeDelta?.(event, context);
164
+ break;
165
+ case "response.animation_viseme.done":
166
+ await this._handlers.onResponseAnimationVisemeDone?.(event, context);
167
+ break;
168
+ // Response timing events
169
+ case "response.audio_timestamp.delta":
170
+ await this._handlers.onResponseAudioTimestampDelta?.(event, context);
171
+ break;
172
+ case "response.audio_timestamp.done":
173
+ await this._handlers.onResponseAudioTimestampDone?.(event, context);
174
+ break;
175
+ // Function call events
176
+ case "response.function_call_arguments.delta":
177
+ await this._handlers.onResponseFunctionCallArgumentsDelta?.(event, context);
178
+ break;
179
+ case "response.function_call_arguments.done":
180
+ await this._handlers.onResponseFunctionCallArgumentsDone?.(event, context);
181
+ break;
182
+ // Error events
183
+ case "error":
184
+ await this._handlers.onServerError?.(event, context);
185
+ break;
186
+ // Note: No default case needed - any unmapped events will still trigger onServerEvent above
187
+ }
188
+ }
189
+ catch (error) {
190
+ logger_js_1.logger.error(`Error in server event handler for ${event.type}`, {
191
+ error,
192
+ eventType: event.type,
193
+ subscriptionId: this._subscriptionId,
194
+ });
195
+ // Don't rethrow - follow Azure SDK pattern
196
+ }
197
+ }
198
+ }
199
+ exports.VoiceLiveSubscriptionImpl = VoiceLiveSubscriptionImpl;
200
+ /**
201
+ * Manages multiple subscriptions for a VoiceLive session
202
+ */
203
+ class SubscriptionManager {
204
+ _subscriptions = new Map();
205
+ _nextSubscriptionId = 1;
206
+ /**
207
+ * Create a new subscription
208
+ */
209
+ createSubscription(handlers) {
210
+ const subscriptionId = `sub_${this._nextSubscriptionId++}`;
211
+ const subscription = new VoiceLiveSubscriptionImpl(handlers, subscriptionId);
212
+ this._subscriptions.set(subscriptionId, subscription);
213
+ logger_js_1.logger.info("VoiceLive subscription created", { subscriptionId });
214
+ return subscription;
215
+ }
216
+ /**
217
+ * Remove a subscription
218
+ */
219
+ removeSubscription(subscriptionId) {
220
+ this._subscriptions.delete(subscriptionId);
221
+ logger_js_1.logger.info("VoiceLive subscription removed", { subscriptionId });
222
+ }
223
+ /**
224
+ * Process a connection event for all active subscriptions
225
+ */
226
+ async processConnectionEvent(eventType, args, context) {
227
+ const activeSubscriptions = Array.from(this._subscriptions.values()).filter((sub) => sub.isActive);
228
+ // Process all subscriptions concurrently
229
+ await Promise.allSettled(activeSubscriptions.map((sub) => sub.processConnectionEvent(eventType, args, context)));
230
+ }
231
+ /**
232
+ * Process a server event for all active subscriptions
233
+ */
234
+ async processServerEvent(event, context) {
235
+ const activeSubscriptions = Array.from(this._subscriptions.values()).filter((sub) => sub.isActive);
236
+ // Process all subscriptions concurrently
237
+ await Promise.allSettled(activeSubscriptions.map((sub) => sub.processServerEvent(event, context)));
238
+ }
239
+ /**
240
+ * Close all subscriptions
241
+ */
242
+ async closeAll() {
243
+ const subscriptions = Array.from(this._subscriptions.values());
244
+ await Promise.allSettled(subscriptions.map((sub) => sub.close()));
245
+ this._subscriptions.clear();
246
+ }
247
+ /**
248
+ * Get count of active subscriptions
249
+ */
250
+ get activeCount() {
251
+ return Array.from(this._subscriptions.values()).filter((sub) => sub.isActive).length;
252
+ }
253
+ }
254
+ exports.SubscriptionManager = SubscriptionManager;
255
+ //# sourceMappingURL=subscriptionManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"subscriptionManager.js","sourceRoot":"","sources":["../../../src/handlers/subscriptionManager.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type {\n VoiceLiveSessionHandlers,\n VoiceLiveSubscription,\n ConnectionContext,\n SessionContext,\n ConnectedEventArgs,\n DisconnectedEventArgs,\n ErrorEventArgs,\n} from \"./sessionHandlers.js\";\nimport type { ServerEventUnion } from \"../models/index.js\";\nimport { logger } from \"../logger.js\";\n\n/**\n * Internal implementation of VoiceLiveSubscription\n */\nexport class VoiceLiveSubscriptionImpl implements VoiceLiveSubscription {\n private _isActive = true;\n private _handlers: VoiceLiveSessionHandlers;\n private _subscriptionId: string;\n\n constructor(handlers: VoiceLiveSessionHandlers, subscriptionId: string) {\n this._handlers = handlers;\n this._subscriptionId = subscriptionId;\n }\n\n get isActive(): boolean {\n return this._isActive;\n }\n\n get subscriptionId(): string {\n return this._subscriptionId;\n }\n\n async close(): Promise<void> {\n if (!this._isActive) {\n return;\n }\n\n this._isActive = false;\n logger.info(\"VoiceLive subscription closed\", { subscriptionId: this._subscriptionId });\n }\n\n /**\n * Process a connection event\n */\n async processConnectionEvent(\n eventType: \"connected\" | \"disconnected\" | \"error\",\n args: ConnectedEventArgs | DisconnectedEventArgs | ErrorEventArgs,\n context: ConnectionContext,\n ): Promise<void> {\n if (!this._isActive) {\n return;\n }\n\n try {\n switch (eventType) {\n case \"connected\":\n await this._handlers.onConnected?.(args as ConnectedEventArgs, context);\n break;\n case \"disconnected\":\n await this._handlers.onDisconnected?.(args as DisconnectedEventArgs, context);\n break;\n case \"error\":\n await this._handlers.onError?.(args as ErrorEventArgs, context);\n break;\n }\n } catch (error) {\n logger.error(`Error in ${eventType} handler`, {\n error,\n subscriptionId: this._subscriptionId,\n });\n // Don't rethrow - follow Azure SDK pattern of logging but not stopping other handlers\n }\n }\n\n /**\n * Process a server event\n */\n async processServerEvent(event: ServerEventUnion, context: SessionContext): Promise<void> {\n if (!this._isActive) {\n return;\n }\n\n try {\n // Call the general server event handler\n await this._handlers.onServerEvent?.(event, context);\n\n // Call specific handlers based on event type\n switch (event.type) {\n // Session events\n case \"session.created\":\n await this._handlers.onSessionCreated?.(event as any, context);\n break;\n case \"session.updated\":\n await this._handlers.onSessionUpdated?.(event as any, context);\n break;\n case \"session.avatar.connecting\":\n await this._handlers.onSessionAvatarConnecting?.(event as any, context);\n break;\n\n // Input audio buffer events\n case \"input_audio_buffer.committed\":\n await this._handlers.onInputAudioBufferCommitted?.(event as any, context);\n break;\n case \"input_audio_buffer.cleared\":\n await this._handlers.onInputAudioBufferCleared?.(event as any, context);\n break;\n case \"input_audio_buffer.speech_started\":\n await this._handlers.onInputAudioBufferSpeechStarted?.(event as any, context);\n break;\n case \"input_audio_buffer.speech_stopped\":\n await this._handlers.onInputAudioBufferSpeechStopped?.(event as any, context);\n break;\n\n // Conversation item events\n case \"conversation.item.created\":\n await this._handlers.onConversationItemCreated?.(event as any, context);\n break;\n case \"conversation.item.input_audio_transcription.completed\":\n await this._handlers.onConversationItemInputAudioTranscriptionCompleted?.(\n event as any,\n context,\n );\n break;\n case \"conversation.item.input_audio_transcription.failed\":\n await this._handlers.onConversationItemInputAudioTranscriptionFailed?.(\n event as any,\n context,\n );\n break;\n case \"conversation.item.input_audio_transcription.delta\":\n await this._handlers.onConversationItemInputAudioTranscriptionDelta?.(\n event as any,\n context,\n );\n break;\n case \"conversation.item.truncated\":\n await this._handlers.onConversationItemTruncated?.(event as any, context);\n break;\n case \"conversation.item.deleted\":\n await this._handlers.onConversationItemDeleted?.(event as any, context);\n break;\n case \"conversation.item.retrieved\":\n await this._handlers.onConversationItemRetrieved?.(event as any, context);\n break;\n\n // Response lifecycle events\n case \"response.created\":\n await this._handlers.onResponseCreated?.(event as any, context);\n break;\n case \"response.done\":\n await this._handlers.onResponseDone?.(event as any, context);\n break;\n case \"response.output_item.added\":\n await this._handlers.onResponseOutputItemAdded?.(event as any, context);\n break;\n case \"response.output_item.done\":\n await this._handlers.onResponseOutputItemDone?.(event as any, context);\n break;\n case \"response.content_part.added\":\n await this._handlers.onResponseContentPartAdded?.(event as any, context);\n break;\n case \"response.content_part.done\":\n await this._handlers.onResponseContentPartDone?.(event as any, context);\n break;\n\n // Response text events\n case \"response.text.delta\":\n await this._handlers.onResponseTextDelta?.(event as any, context);\n break;\n case \"response.text.done\":\n await this._handlers.onResponseTextDone?.(event as any, context);\n break;\n\n // Response audio events\n case \"response.audio.delta\":\n await this._handlers.onResponseAudioDelta?.(event as any, context);\n break;\n case \"response.audio.done\":\n await this._handlers.onResponseAudioDone?.(event as any, context);\n break;\n case \"response.audio_transcript.delta\":\n await this._handlers.onResponseAudioTranscriptDelta?.(event as any, context);\n break;\n case \"response.audio_transcript.done\":\n await this._handlers.onResponseAudioTranscriptDone?.(event as any, context);\n break;\n\n // Response animation events\n case \"response.animation_blendshapes.delta\":\n await this._handlers.onResponseAnimationBlendshapeDelta?.(event as any, context);\n break;\n case \"response.animation_blendshapes.done\":\n await this._handlers.onResponseAnimationBlendshapeDone?.(event as any, context);\n break;\n case \"response.animation_viseme.delta\":\n await this._handlers.onResponseAnimationVisemeDelta?.(event as any, context);\n break;\n case \"response.animation_viseme.done\":\n await this._handlers.onResponseAnimationVisemeDone?.(event as any, context);\n break;\n\n // Response timing events\n case \"response.audio_timestamp.delta\":\n await this._handlers.onResponseAudioTimestampDelta?.(event as any, context);\n break;\n case \"response.audio_timestamp.done\":\n await this._handlers.onResponseAudioTimestampDone?.(event as any, context);\n break;\n\n // Function call events\n case \"response.function_call_arguments.delta\":\n await this._handlers.onResponseFunctionCallArgumentsDelta?.(event as any, context);\n break;\n case \"response.function_call_arguments.done\":\n await this._handlers.onResponseFunctionCallArgumentsDone?.(event as any, context);\n break;\n\n // Error events\n case \"error\":\n await this._handlers.onServerError?.(event as any, context);\n break;\n\n // Note: No default case needed - any unmapped events will still trigger onServerEvent above\n }\n } catch (error) {\n logger.error(`Error in server event handler for ${event.type}`, {\n error,\n eventType: event.type,\n subscriptionId: this._subscriptionId,\n });\n // Don't rethrow - follow Azure SDK pattern\n }\n }\n}\n\n/**\n * Manages multiple subscriptions for a VoiceLive session\n */\nexport class SubscriptionManager {\n private _subscriptions = new Map<string, VoiceLiveSubscriptionImpl>();\n private _nextSubscriptionId = 1;\n\n /**\n * Create a new subscription\n */\n createSubscription(handlers: VoiceLiveSessionHandlers): VoiceLiveSubscription {\n const subscriptionId = `sub_${this._nextSubscriptionId++}`;\n const subscription = new VoiceLiveSubscriptionImpl(handlers, subscriptionId);\n\n this._subscriptions.set(subscriptionId, subscription);\n\n logger.info(\"VoiceLive subscription created\", { subscriptionId });\n return subscription;\n }\n\n /**\n * Remove a subscription\n */\n removeSubscription(subscriptionId: string): void {\n this._subscriptions.delete(subscriptionId);\n logger.info(\"VoiceLive subscription removed\", { subscriptionId });\n }\n\n /**\n * Process a connection event for all active subscriptions\n */\n async processConnectionEvent(\n eventType: \"connected\" | \"disconnected\" | \"error\",\n args: ConnectedEventArgs | DisconnectedEventArgs | ErrorEventArgs,\n context: ConnectionContext,\n ): Promise<void> {\n const activeSubscriptions = Array.from(this._subscriptions.values()).filter(\n (sub) => sub.isActive,\n );\n\n // Process all subscriptions concurrently\n await Promise.allSettled(\n activeSubscriptions.map((sub) => sub.processConnectionEvent(eventType, args, context)),\n );\n }\n\n /**\n * Process a server event for all active subscriptions\n */\n async processServerEvent(event: ServerEventUnion, context: SessionContext): Promise<void> {\n const activeSubscriptions = Array.from(this._subscriptions.values()).filter(\n (sub) => sub.isActive,\n );\n\n // Process all subscriptions concurrently\n await Promise.allSettled(\n activeSubscriptions.map((sub) => sub.processServerEvent(event, context)),\n );\n }\n\n /**\n * Close all subscriptions\n */\n async closeAll(): Promise<void> {\n const subscriptions = Array.from(this._subscriptions.values());\n await Promise.allSettled(subscriptions.map((sub) => sub.close()));\n this._subscriptions.clear();\n }\n\n /**\n * Get count of active subscriptions\n */\n get activeCount(): number {\n return Array.from(this._subscriptions.values()).filter((sub) => sub.isActive).length;\n }\n}\n"]}
@@ -0,0 +1,7 @@
1
+ export { VoiceLiveErrorDetails, ErrorResponse, LogProbProperties, ClientEvent, ClientEventUnion, KnownClientEventType, ClientEventType, ClientEventSessionUpdate, RequestSession, KnownModality, Modality, Animation, KnownAnimationOutputType, AnimationOutputType, Voice, KnownOAIVoice, OAIVoice, OpenAIVoice, AzureVoice, AzureVoiceUnion, KnownAzureVoiceType, AzureVoiceType, AzureCustomVoice, AzureStandardVoice, AzurePersonalVoice, KnownPersonalVoiceModels, PersonalVoiceModels, KnownInputAudioFormat, InputAudioFormat, KnownOutputAudioFormat, OutputAudioFormat, TurnDetection, TurnDetectionUnion, KnownTurnDetectionType, TurnDetectionType, ServerVad, EouDetection, EouDetectionUnion, AzureSemanticDetection, KnownEouThresholdLevel, EouThresholdLevel, AzureSemanticDetectionEn, AzureSemanticDetectionMultilingual, AzureSemanticVad, AzureSemanticVadEn, AzureSemanticVadMultilingual, AudioNoiseReduction, AudioEchoCancellation, AvatarConfig, IceServer, VideoParams, VideoCrop, VideoResolution, Background, AudioInputTranscriptionOptions, KnownAudioTimestampType, AudioTimestampType, Tool, ToolUnion, KnownToolType, ToolType, FunctionTool, ToolChoice, KnownToolChoiceLiteral, ToolChoiceLiteral, ToolChoiceSelection, ToolChoiceSelectionUnion, ToolChoiceFunctionSelection, ClientEventSessionAvatarConnect, ClientEventInputAudioTurnStart, ClientEventInputAudioTurnAppend, ClientEventInputAudioTurnEnd, ClientEventInputAudioTurnCancel, ClientEventInputAudioClear, ClientEventInputAudioBufferAppend, ClientEventInputAudioBufferCommit, ClientEventInputAudioBufferClear, ClientEventConversationItemCreate, ConversationRequestItem, ConversationRequestItemUnion, KnownItemType, ItemType, MessageItem, MessageItemUnion, KnownMessageRole, MessageRole, MessageContentPart, MessageContentPartUnion, KnownContentPartType, ContentPartType, InputTextContentPart, InputAudioContentPart, OutputTextContentPart, KnownItemParamStatus, ItemParamStatus, SystemMessageItem, UserMessageItem, AssistantMessageItem, FunctionCallItem, FunctionCallOutputItem, ClientEventConversationItemTruncate, ClientEventConversationItemDelete, ClientEventResponseCreate, ResponseCreateParams, ClientEventResponseCancel, ClientEventConversationItemRetrieve, SessionBase, ConversationItemBase, Response, KnownResponseStatus, ResponseStatus, ResponseStatusDetails, ResponseStatusDetailsUnion, ResponseCancelledDetails, ResponseIncompleteDetails, ResponseFailedDetails, ResponseItem, ResponseItemUnion, ResponseMessageItem, ContentPart, ContentPartUnion, RequestTextContentPart, RequestAudioContentPart, ResponseTextContentPart, ResponseAudioContentPart, KnownResponseItemStatus, ResponseItemStatus, ResponseFunctionCallItem, ResponseFunctionCallOutputItem, TokenUsage, InputTokenDetails, CachedTokenDetails, OutputTokenDetails, ServerEvent, ServerEventUnion, KnownServerEventType, ServerEventType, ServerEventError, ServerEventErrorDetails, ServerEventSessionCreated, ResponseSession, AgentConfig, ServerEventSessionUpdated, ServerEventSessionAvatarConnecting, ServerEventInputAudioBufferCommitted, ServerEventInputAudioBufferCleared, ServerEventInputAudioBufferSpeechStarted, ServerEventInputAudioBufferSpeechStopped, ServerEventConversationItemCreated, ServerEventConversationItemInputAudioTranscriptionCompleted, ServerEventConversationItemInputAudioTranscriptionFailed, ServerEventConversationItemTruncated, ServerEventConversationItemDeleted, ServerEventResponseCreated, ServerEventResponseDone, ServerEventResponseOutputItemAdded, ServerEventResponseOutputItemDone, ServerEventResponseContentPartAdded, ServerEventResponseContentPartDone, ServerEventResponseTextDelta, ServerEventResponseTextDone, ServerEventResponseAudioTranscriptDelta, ServerEventResponseAudioTranscriptDone, ServerEventResponseAudioDelta, ServerEventResponseAudioDone, ServerEventResponseAnimationBlendshapeDelta, ServerEventResponseAnimationBlendshapeDone, ServerEventResponseAudioTimestampDelta, ServerEventResponseAudioTimestampDone, ServerEventResponseAnimationVisemeDelta, ServerEventResponseAnimationVisemeDone, ServerEventConversationItemInputAudioTranscriptionDelta, ServerEventConversationItemRetrieved, ServerEventResponseFunctionCallArgumentsDelta, ServerEventResponseFunctionCallArgumentsDone, } from "./models/index.js";
2
+ export { VoiceLiveClient, VoiceLiveClientOptions } from "./voiceLiveClient.js";
3
+ export { VoiceLiveSession, VoiceLiveSessionOptions, ConnectOptions, SendEventOptions, AudioStreamOptions, TurnOptions, CreateSessionOptions, StartSessionOptions, } from "./voiceLiveSession.js";
4
+ export type { VoiceLiveSessionHandlers, VoiceLiveSubscription, ConnectionContext, SessionContext, ConnectedEventArgs, DisconnectedEventArgs, ErrorEventArgs, } from "./handlers/sessionHandlers.js";
5
+ export { ConnectionState } from "./websocket/connectionManager.js";
6
+ export { VoiceLiveError, VoiceLiveConnectionError, VoiceLiveAuthenticationError, VoiceLiveProtocolError, VoiceLiveErrorCodes, classifyConnectionError, classifyProtocolError, } from "./errors/index.js";
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+ // Copyright (c) Microsoft Corporation.
3
+ // Licensed under the MIT License.
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ exports.classifyProtocolError = exports.classifyConnectionError = exports.VoiceLiveErrorCodes = exports.VoiceLiveProtocolError = exports.VoiceLiveAuthenticationError = exports.VoiceLiveConnectionError = exports.VoiceLiveError = exports.ConnectionState = exports.VoiceLiveSession = exports.VoiceLiveClient = exports.KnownServerEventType = exports.KnownResponseItemStatus = exports.KnownResponseStatus = exports.KnownItemParamStatus = exports.KnownContentPartType = exports.KnownMessageRole = exports.KnownItemType = exports.KnownToolChoiceLiteral = exports.KnownToolType = exports.KnownAudioTimestampType = exports.KnownEouThresholdLevel = exports.KnownTurnDetectionType = exports.KnownOutputAudioFormat = exports.KnownInputAudioFormat = exports.KnownPersonalVoiceModels = exports.KnownAzureVoiceType = exports.KnownOAIVoice = exports.KnownAnimationOutputType = exports.KnownModality = exports.KnownClientEventType = void 0;
6
+ var index_js_1 = require("./models/index.js");
7
+ Object.defineProperty(exports, "KnownClientEventType", { enumerable: true, get: function () { return index_js_1.KnownClientEventType; } });
8
+ Object.defineProperty(exports, "KnownModality", { enumerable: true, get: function () { return index_js_1.KnownModality; } });
9
+ Object.defineProperty(exports, "KnownAnimationOutputType", { enumerable: true, get: function () { return index_js_1.KnownAnimationOutputType; } });
10
+ Object.defineProperty(exports, "KnownOAIVoice", { enumerable: true, get: function () { return index_js_1.KnownOAIVoice; } });
11
+ Object.defineProperty(exports, "KnownAzureVoiceType", { enumerable: true, get: function () { return index_js_1.KnownAzureVoiceType; } });
12
+ Object.defineProperty(exports, "KnownPersonalVoiceModels", { enumerable: true, get: function () { return index_js_1.KnownPersonalVoiceModels; } });
13
+ Object.defineProperty(exports, "KnownInputAudioFormat", { enumerable: true, get: function () { return index_js_1.KnownInputAudioFormat; } });
14
+ Object.defineProperty(exports, "KnownOutputAudioFormat", { enumerable: true, get: function () { return index_js_1.KnownOutputAudioFormat; } });
15
+ Object.defineProperty(exports, "KnownTurnDetectionType", { enumerable: true, get: function () { return index_js_1.KnownTurnDetectionType; } });
16
+ Object.defineProperty(exports, "KnownEouThresholdLevel", { enumerable: true, get: function () { return index_js_1.KnownEouThresholdLevel; } });
17
+ Object.defineProperty(exports, "KnownAudioTimestampType", { enumerable: true, get: function () { return index_js_1.KnownAudioTimestampType; } });
18
+ Object.defineProperty(exports, "KnownToolType", { enumerable: true, get: function () { return index_js_1.KnownToolType; } });
19
+ Object.defineProperty(exports, "KnownToolChoiceLiteral", { enumerable: true, get: function () { return index_js_1.KnownToolChoiceLiteral; } });
20
+ Object.defineProperty(exports, "KnownItemType", { enumerable: true, get: function () { return index_js_1.KnownItemType; } });
21
+ Object.defineProperty(exports, "KnownMessageRole", { enumerable: true, get: function () { return index_js_1.KnownMessageRole; } });
22
+ Object.defineProperty(exports, "KnownContentPartType", { enumerable: true, get: function () { return index_js_1.KnownContentPartType; } });
23
+ Object.defineProperty(exports, "KnownItemParamStatus", { enumerable: true, get: function () { return index_js_1.KnownItemParamStatus; } });
24
+ Object.defineProperty(exports, "KnownResponseStatus", { enumerable: true, get: function () { return index_js_1.KnownResponseStatus; } });
25
+ Object.defineProperty(exports, "KnownResponseItemStatus", { enumerable: true, get: function () { return index_js_1.KnownResponseItemStatus; } });
26
+ Object.defineProperty(exports, "KnownServerEventType", { enumerable: true, get: function () { return index_js_1.KnownServerEventType; } });
27
+ // Main client export
28
+ var voiceLiveClient_js_1 = require("./voiceLiveClient.js");
29
+ Object.defineProperty(exports, "VoiceLiveClient", { enumerable: true, get: function () { return voiceLiveClient_js_1.VoiceLiveClient; } });
30
+ // Session export
31
+ var voiceLiveSession_js_1 = require("./voiceLiveSession.js");
32
+ Object.defineProperty(exports, "VoiceLiveSession", { enumerable: true, get: function () { return voiceLiveSession_js_1.VoiceLiveSession; } });
33
+ // WebSocket and connection exports
34
+ var connectionManager_js_1 = require("./websocket/connectionManager.js");
35
+ Object.defineProperty(exports, "ConnectionState", { enumerable: true, get: function () { return connectionManager_js_1.ConnectionState; } });
36
+ // Error exports
37
+ var index_js_2 = require("./errors/index.js");
38
+ Object.defineProperty(exports, "VoiceLiveError", { enumerable: true, get: function () { return index_js_2.VoiceLiveError; } });
39
+ Object.defineProperty(exports, "VoiceLiveConnectionError", { enumerable: true, get: function () { return index_js_2.VoiceLiveConnectionError; } });
40
+ Object.defineProperty(exports, "VoiceLiveAuthenticationError", { enumerable: true, get: function () { return index_js_2.VoiceLiveAuthenticationError; } });
41
+ Object.defineProperty(exports, "VoiceLiveProtocolError", { enumerable: true, get: function () { return index_js_2.VoiceLiveProtocolError; } });
42
+ Object.defineProperty(exports, "VoiceLiveErrorCodes", { enumerable: true, get: function () { return index_js_2.VoiceLiveErrorCodes; } });
43
+ Object.defineProperty(exports, "classifyConnectionError", { enumerable: true, get: function () { return index_js_2.classifyConnectionError; } });
44
+ Object.defineProperty(exports, "classifyProtocolError", { enumerable: true, get: function () { return index_js_2.classifyProtocolError; } });
45
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,kCAAkC;;;AAElC,8CAgL2B;AA1KzB,gHAAA,oBAAoB,OAAA;AAIpB,yGAAA,aAAa,OAAA;AAGb,oHAAA,wBAAwB,OAAA;AAGxB,yGAAA,aAAa,OAAA;AAKb,+GAAA,mBAAmB,OAAA;AAKnB,oHAAA,wBAAwB,OAAA;AAExB,iHAAA,qBAAqB,OAAA;AAErB,kHAAA,sBAAsB,OAAA;AAItB,kHAAA,sBAAsB,OAAA;AAMtB,kHAAA,sBAAsB,OAAA;AAgBtB,mHAAA,uBAAuB,OAAA;AAIvB,yGAAA,aAAa,OAAA;AAIb,kHAAA,sBAAsB,OAAA;AAiBtB,yGAAA,aAAa,OAAA;AAIb,4GAAA,gBAAgB,OAAA;AAIhB,gHAAA,oBAAoB,OAAA;AAKpB,gHAAA,oBAAoB,OAAA;AAgBpB,+GAAA,mBAAmB,OAAA;AAgBnB,mHAAA,uBAAuB,OAAA;AAUvB,gHAAA,oBAAoB,OAAA;AA0CtB,qBAAqB;AACrB,2DAA+E;AAAtE,qHAAA,eAAe,OAAA;AAExB,iBAAiB;AACjB,6DAS+B;AAR7B,uHAAA,gBAAgB,OAAA;AAqBlB,mCAAmC;AACnC,yEAAmE;AAA1D,uHAAA,eAAe,OAAA;AAExB,gBAAgB;AAChB,8CAQ2B;AAPzB,0GAAA,cAAc,OAAA;AACd,oHAAA,wBAAwB,OAAA;AACxB,wHAAA,4BAA4B,OAAA;AAC5B,kHAAA,sBAAsB,OAAA;AACtB,+GAAA,mBAAmB,OAAA;AACnB,mHAAA,uBAAuB,OAAA;AACvB,iHAAA,qBAAqB,OAAA","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nexport {\n VoiceLiveErrorDetails,\n ErrorResponse,\n LogProbProperties,\n ClientEvent,\n ClientEventUnion,\n KnownClientEventType,\n ClientEventType,\n ClientEventSessionUpdate,\n RequestSession,\n KnownModality,\n Modality,\n Animation,\n KnownAnimationOutputType,\n AnimationOutputType,\n Voice,\n KnownOAIVoice,\n OAIVoice,\n OpenAIVoice,\n AzureVoice,\n AzureVoiceUnion,\n KnownAzureVoiceType,\n AzureVoiceType,\n AzureCustomVoice,\n AzureStandardVoice,\n AzurePersonalVoice,\n KnownPersonalVoiceModels,\n PersonalVoiceModels,\n KnownInputAudioFormat,\n InputAudioFormat,\n KnownOutputAudioFormat,\n OutputAudioFormat,\n TurnDetection,\n TurnDetectionUnion,\n KnownTurnDetectionType,\n TurnDetectionType,\n ServerVad,\n EouDetection,\n EouDetectionUnion,\n AzureSemanticDetection,\n KnownEouThresholdLevel,\n EouThresholdLevel,\n AzureSemanticDetectionEn,\n AzureSemanticDetectionMultilingual,\n AzureSemanticVad,\n AzureSemanticVadEn,\n AzureSemanticVadMultilingual,\n AudioNoiseReduction,\n AudioEchoCancellation,\n AvatarConfig,\n IceServer,\n VideoParams,\n VideoCrop,\n VideoResolution,\n Background,\n AudioInputTranscriptionOptions,\n KnownAudioTimestampType,\n AudioTimestampType,\n Tool,\n ToolUnion,\n KnownToolType,\n ToolType,\n FunctionTool,\n ToolChoice,\n KnownToolChoiceLiteral,\n ToolChoiceLiteral,\n ToolChoiceSelection,\n ToolChoiceSelectionUnion,\n ToolChoiceFunctionSelection,\n ClientEventSessionAvatarConnect,\n ClientEventInputAudioTurnStart,\n ClientEventInputAudioTurnAppend,\n ClientEventInputAudioTurnEnd,\n ClientEventInputAudioTurnCancel,\n ClientEventInputAudioClear,\n ClientEventInputAudioBufferAppend,\n ClientEventInputAudioBufferCommit,\n ClientEventInputAudioBufferClear,\n ClientEventConversationItemCreate,\n ConversationRequestItem,\n ConversationRequestItemUnion,\n KnownItemType,\n ItemType,\n MessageItem,\n MessageItemUnion,\n KnownMessageRole,\n MessageRole,\n MessageContentPart,\n MessageContentPartUnion,\n KnownContentPartType,\n ContentPartType,\n InputTextContentPart,\n InputAudioContentPart,\n OutputTextContentPart,\n KnownItemParamStatus,\n ItemParamStatus,\n SystemMessageItem,\n UserMessageItem,\n AssistantMessageItem,\n FunctionCallItem,\n FunctionCallOutputItem,\n ClientEventConversationItemTruncate,\n ClientEventConversationItemDelete,\n ClientEventResponseCreate,\n ResponseCreateParams,\n ClientEventResponseCancel,\n ClientEventConversationItemRetrieve,\n SessionBase,\n ConversationItemBase,\n Response,\n KnownResponseStatus,\n ResponseStatus,\n ResponseStatusDetails,\n ResponseStatusDetailsUnion,\n ResponseCancelledDetails,\n ResponseIncompleteDetails,\n ResponseFailedDetails,\n ResponseItem,\n ResponseItemUnion,\n ResponseMessageItem,\n ContentPart,\n ContentPartUnion,\n RequestTextContentPart,\n RequestAudioContentPart,\n ResponseTextContentPart,\n ResponseAudioContentPart,\n KnownResponseItemStatus,\n ResponseItemStatus,\n ResponseFunctionCallItem,\n ResponseFunctionCallOutputItem,\n TokenUsage,\n InputTokenDetails,\n CachedTokenDetails,\n OutputTokenDetails,\n ServerEvent,\n ServerEventUnion,\n KnownServerEventType,\n ServerEventType,\n ServerEventError,\n ServerEventErrorDetails,\n ServerEventSessionCreated,\n ResponseSession,\n AgentConfig,\n ServerEventSessionUpdated,\n ServerEventSessionAvatarConnecting,\n ServerEventInputAudioBufferCommitted,\n ServerEventInputAudioBufferCleared,\n ServerEventInputAudioBufferSpeechStarted,\n ServerEventInputAudioBufferSpeechStopped,\n ServerEventConversationItemCreated,\n ServerEventConversationItemInputAudioTranscriptionCompleted,\n ServerEventConversationItemInputAudioTranscriptionFailed,\n ServerEventConversationItemTruncated,\n ServerEventConversationItemDeleted,\n ServerEventResponseCreated,\n ServerEventResponseDone,\n ServerEventResponseOutputItemAdded,\n ServerEventResponseOutputItemDone,\n ServerEventResponseContentPartAdded,\n ServerEventResponseContentPartDone,\n ServerEventResponseTextDelta,\n ServerEventResponseTextDone,\n ServerEventResponseAudioTranscriptDelta,\n ServerEventResponseAudioTranscriptDone,\n ServerEventResponseAudioDelta,\n ServerEventResponseAudioDone,\n ServerEventResponseAnimationBlendshapeDelta,\n ServerEventResponseAnimationBlendshapeDone,\n ServerEventResponseAudioTimestampDelta,\n ServerEventResponseAudioTimestampDone,\n ServerEventResponseAnimationVisemeDelta,\n ServerEventResponseAnimationVisemeDone,\n ServerEventConversationItemInputAudioTranscriptionDelta,\n ServerEventConversationItemRetrieved,\n ServerEventResponseFunctionCallArgumentsDelta,\n ServerEventResponseFunctionCallArgumentsDone,\n} from \"./models/index.js\";\n\n// Main client export\nexport { VoiceLiveClient, VoiceLiveClientOptions } from \"./voiceLiveClient.js\";\n\n// Session export\nexport {\n VoiceLiveSession,\n VoiceLiveSessionOptions,\n ConnectOptions,\n SendEventOptions,\n AudioStreamOptions,\n TurnOptions,\n CreateSessionOptions,\n StartSessionOptions,\n} from \"./voiceLiveSession.js\";\n\n// Handler-based subscription exports (Azure SDK pattern)\nexport type {\n VoiceLiveSessionHandlers,\n VoiceLiveSubscription,\n ConnectionContext,\n SessionContext,\n ConnectedEventArgs,\n DisconnectedEventArgs,\n ErrorEventArgs,\n} from \"./handlers/sessionHandlers.js\";\n\n// WebSocket and connection exports\nexport { ConnectionState } from \"./websocket/connectionManager.js\";\n\n// Error exports\nexport {\n VoiceLiveError,\n VoiceLiveConnectionError,\n VoiceLiveAuthenticationError,\n VoiceLiveProtocolError,\n VoiceLiveErrorCodes,\n classifyConnectionError,\n classifyProtocolError,\n} from \"./errors/index.js\";\n"]}
@@ -0,0 +1,2 @@
1
+ export declare const logger: import("@azure/logger").AzureLogger;
2
+ //# sourceMappingURL=logger.d.ts.map
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ // Copyright (c) Microsoft Corporation.
3
+ // Licensed under the MIT License.
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ exports.logger = void 0;
6
+ const logger_1 = require("@azure/logger");
7
+ exports.logger = (0, logger_1.createClientLogger)("ai-voicelive");
8
+ //# sourceMappingURL=logger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/logger.ts"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,kCAAkC;;;AAElC,0CAAmD;AACtC,QAAA,MAAM,GAAG,IAAA,2BAAkB,EAAC,cAAc,CAAC,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { createClientLogger } from \"@azure/logger\";\nexport const logger = createClientLogger(\"ai-voicelive\");\n"]}
@@ -0,0 +1,2 @@
1
+ export { VoiceLiveErrorDetails, ErrorResponse, LogProbProperties, ClientEvent, ClientEventUnion, KnownClientEventType, ClientEventType, ClientEventSessionUpdate, RequestSession, KnownModality, Modality, Animation, KnownAnimationOutputType, AnimationOutputType, Voice, KnownOAIVoice, OAIVoice, OpenAIVoice, AzureVoice, AzureVoiceUnion, KnownAzureVoiceType, AzureVoiceType, AzureCustomVoice, AzureStandardVoice, AzurePersonalVoice, KnownPersonalVoiceModels, PersonalVoiceModels, KnownInputAudioFormat, InputAudioFormat, KnownOutputAudioFormat, OutputAudioFormat, TurnDetection, TurnDetectionUnion, KnownTurnDetectionType, TurnDetectionType, ServerVad, EouDetection, EouDetectionUnion, AzureSemanticDetection, KnownEouThresholdLevel, EouThresholdLevel, AzureSemanticDetectionEn, AzureSemanticDetectionMultilingual, AzureSemanticVad, AzureSemanticVadEn, AzureSemanticVadMultilingual, AudioNoiseReduction, AudioEchoCancellation, AvatarConfig, IceServer, VideoParams, VideoCrop, VideoResolution, Background, AudioInputTranscriptionOptions, KnownAudioTimestampType, AudioTimestampType, Tool, ToolUnion, KnownToolType, ToolType, FunctionTool, ToolChoice, KnownToolChoiceLiteral, ToolChoiceLiteral, ToolChoiceSelection, ToolChoiceSelectionUnion, ToolChoiceFunctionSelection, ClientEventSessionAvatarConnect, ClientEventInputAudioTurnStart, ClientEventInputAudioTurnAppend, ClientEventInputAudioTurnEnd, ClientEventInputAudioTurnCancel, ClientEventInputAudioClear, ClientEventInputAudioBufferAppend, ClientEventInputAudioBufferCommit, ClientEventInputAudioBufferClear, ClientEventConversationItemCreate, ConversationRequestItem, ConversationRequestItemUnion, KnownItemType, ItemType, MessageItem, MessageItemUnion, KnownMessageRole, MessageRole, MessageContentPart, MessageContentPartUnion, KnownContentPartType, ContentPartType, InputTextContentPart, InputAudioContentPart, OutputTextContentPart, KnownItemParamStatus, ItemParamStatus, SystemMessageItem, UserMessageItem, AssistantMessageItem, FunctionCallItem, FunctionCallOutputItem, ClientEventConversationItemTruncate, ClientEventConversationItemDelete, ClientEventResponseCreate, ResponseCreateParams, ClientEventResponseCancel, ClientEventConversationItemRetrieve, SessionBase, ConversationItemBase, Response, KnownResponseStatus, ResponseStatus, ResponseStatusDetails, ResponseStatusDetailsUnion, ResponseCancelledDetails, ResponseIncompleteDetails, ResponseFailedDetails, ResponseItem, ResponseItemUnion, ResponseMessageItem, ContentPart, ContentPartUnion, RequestTextContentPart, RequestAudioContentPart, ResponseTextContentPart, ResponseAudioContentPart, KnownResponseItemStatus, ResponseItemStatus, ResponseFunctionCallItem, ResponseFunctionCallOutputItem, TokenUsage, InputTokenDetails, CachedTokenDetails, OutputTokenDetails, ServerEvent, ServerEventUnion, KnownServerEventType, ServerEventType, ServerEventError, ServerEventErrorDetails, ServerEventSessionCreated, ResponseSession, AgentConfig, ServerEventSessionUpdated, ServerEventSessionAvatarConnecting, ServerEventInputAudioBufferCommitted, ServerEventInputAudioBufferCleared, ServerEventInputAudioBufferSpeechStarted, ServerEventInputAudioBufferSpeechStopped, ServerEventConversationItemCreated, ServerEventConversationItemInputAudioTranscriptionCompleted, ServerEventConversationItemInputAudioTranscriptionFailed, ServerEventConversationItemTruncated, ServerEventConversationItemDeleted, ServerEventResponseCreated, ServerEventResponseDone, ServerEventResponseOutputItemAdded, ServerEventResponseOutputItemDone, ServerEventResponseContentPartAdded, ServerEventResponseContentPartDone, ServerEventResponseTextDelta, ServerEventResponseTextDone, ServerEventResponseAudioTranscriptDelta, ServerEventResponseAudioTranscriptDone, ServerEventResponseAudioDelta, ServerEventResponseAudioDone, ServerEventResponseAnimationBlendshapeDelta, ServerEventResponseAnimationBlendshapeDone, ServerEventResponseAudioTimestampDelta, ServerEventResponseAudioTimestampDone, ServerEventResponseAnimationVisemeDelta, ServerEventResponseAnimationVisemeDone, ServerEventConversationItemInputAudioTranscriptionDelta, ServerEventConversationItemRetrieved, ServerEventResponseFunctionCallArgumentsDelta, ServerEventResponseFunctionCallArgumentsDone, } from "./models.js";
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ // Copyright (c) Microsoft Corporation.
3
+ // Licensed under the MIT License.
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ exports.KnownServerEventType = exports.KnownResponseItemStatus = exports.KnownResponseStatus = exports.KnownItemParamStatus = exports.KnownContentPartType = exports.KnownMessageRole = exports.KnownItemType = exports.KnownToolChoiceLiteral = exports.KnownToolType = exports.KnownAudioTimestampType = exports.KnownEouThresholdLevel = exports.KnownTurnDetectionType = exports.KnownOutputAudioFormat = exports.KnownInputAudioFormat = exports.KnownPersonalVoiceModels = exports.KnownAzureVoiceType = exports.KnownOAIVoice = exports.KnownAnimationOutputType = exports.KnownModality = exports.KnownClientEventType = void 0;
6
+ var models_js_1 = require("./models.js");
7
+ Object.defineProperty(exports, "KnownClientEventType", { enumerable: true, get: function () { return models_js_1.KnownClientEventType; } });
8
+ Object.defineProperty(exports, "KnownModality", { enumerable: true, get: function () { return models_js_1.KnownModality; } });
9
+ Object.defineProperty(exports, "KnownAnimationOutputType", { enumerable: true, get: function () { return models_js_1.KnownAnimationOutputType; } });
10
+ Object.defineProperty(exports, "KnownOAIVoice", { enumerable: true, get: function () { return models_js_1.KnownOAIVoice; } });
11
+ Object.defineProperty(exports, "KnownAzureVoiceType", { enumerable: true, get: function () { return models_js_1.KnownAzureVoiceType; } });
12
+ Object.defineProperty(exports, "KnownPersonalVoiceModels", { enumerable: true, get: function () { return models_js_1.KnownPersonalVoiceModels; } });
13
+ Object.defineProperty(exports, "KnownInputAudioFormat", { enumerable: true, get: function () { return models_js_1.KnownInputAudioFormat; } });
14
+ Object.defineProperty(exports, "KnownOutputAudioFormat", { enumerable: true, get: function () { return models_js_1.KnownOutputAudioFormat; } });
15
+ Object.defineProperty(exports, "KnownTurnDetectionType", { enumerable: true, get: function () { return models_js_1.KnownTurnDetectionType; } });
16
+ Object.defineProperty(exports, "KnownEouThresholdLevel", { enumerable: true, get: function () { return models_js_1.KnownEouThresholdLevel; } });
17
+ Object.defineProperty(exports, "KnownAudioTimestampType", { enumerable: true, get: function () { return models_js_1.KnownAudioTimestampType; } });
18
+ Object.defineProperty(exports, "KnownToolType", { enumerable: true, get: function () { return models_js_1.KnownToolType; } });
19
+ Object.defineProperty(exports, "KnownToolChoiceLiteral", { enumerable: true, get: function () { return models_js_1.KnownToolChoiceLiteral; } });
20
+ Object.defineProperty(exports, "KnownItemType", { enumerable: true, get: function () { return models_js_1.KnownItemType; } });
21
+ Object.defineProperty(exports, "KnownMessageRole", { enumerable: true, get: function () { return models_js_1.KnownMessageRole; } });
22
+ Object.defineProperty(exports, "KnownContentPartType", { enumerable: true, get: function () { return models_js_1.KnownContentPartType; } });
23
+ Object.defineProperty(exports, "KnownItemParamStatus", { enumerable: true, get: function () { return models_js_1.KnownItemParamStatus; } });
24
+ Object.defineProperty(exports, "KnownResponseStatus", { enumerable: true, get: function () { return models_js_1.KnownResponseStatus; } });
25
+ Object.defineProperty(exports, "KnownResponseItemStatus", { enumerable: true, get: function () { return models_js_1.KnownResponseItemStatus; } });
26
+ Object.defineProperty(exports, "KnownServerEventType", { enumerable: true, get: function () { return models_js_1.KnownServerEventType; } });
27
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/models/index.ts"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,kCAAkC;;;AAElC,yCAgLqB;AA1KnB,iHAAA,oBAAoB,OAAA;AAIpB,0GAAA,aAAa,OAAA;AAGb,qHAAA,wBAAwB,OAAA;AAGxB,0GAAA,aAAa,OAAA;AAKb,gHAAA,mBAAmB,OAAA;AAKnB,qHAAA,wBAAwB,OAAA;AAExB,kHAAA,qBAAqB,OAAA;AAErB,mHAAA,sBAAsB,OAAA;AAItB,mHAAA,sBAAsB,OAAA;AAMtB,mHAAA,sBAAsB,OAAA;AAgBtB,oHAAA,uBAAuB,OAAA;AAIvB,0GAAA,aAAa,OAAA;AAIb,mHAAA,sBAAsB,OAAA;AAiBtB,0GAAA,aAAa,OAAA;AAIb,6GAAA,gBAAgB,OAAA;AAIhB,iHAAA,oBAAoB,OAAA;AAKpB,iHAAA,oBAAoB,OAAA;AAgBpB,gHAAA,mBAAmB,OAAA;AAgBnB,oHAAA,uBAAuB,OAAA;AAUvB,iHAAA,oBAAoB,OAAA","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nexport {\n VoiceLiveErrorDetails,\n ErrorResponse,\n LogProbProperties,\n ClientEvent,\n ClientEventUnion,\n KnownClientEventType,\n ClientEventType,\n ClientEventSessionUpdate,\n RequestSession,\n KnownModality,\n Modality,\n Animation,\n KnownAnimationOutputType,\n AnimationOutputType,\n Voice,\n KnownOAIVoice,\n OAIVoice,\n OpenAIVoice,\n AzureVoice,\n AzureVoiceUnion,\n KnownAzureVoiceType,\n AzureVoiceType,\n AzureCustomVoice,\n AzureStandardVoice,\n AzurePersonalVoice,\n KnownPersonalVoiceModels,\n PersonalVoiceModels,\n KnownInputAudioFormat,\n InputAudioFormat,\n KnownOutputAudioFormat,\n OutputAudioFormat,\n TurnDetection,\n TurnDetectionUnion,\n KnownTurnDetectionType,\n TurnDetectionType,\n ServerVad,\n EouDetection,\n EouDetectionUnion,\n AzureSemanticDetection,\n KnownEouThresholdLevel,\n EouThresholdLevel,\n AzureSemanticDetectionEn,\n AzureSemanticDetectionMultilingual,\n AzureSemanticVad,\n AzureSemanticVadEn,\n AzureSemanticVadMultilingual,\n AudioNoiseReduction,\n AudioEchoCancellation,\n AvatarConfig,\n IceServer,\n VideoParams,\n VideoCrop,\n VideoResolution,\n Background,\n AudioInputTranscriptionOptions,\n KnownAudioTimestampType,\n AudioTimestampType,\n Tool,\n ToolUnion,\n KnownToolType,\n ToolType,\n FunctionTool,\n ToolChoice,\n KnownToolChoiceLiteral,\n ToolChoiceLiteral,\n ToolChoiceSelection,\n ToolChoiceSelectionUnion,\n ToolChoiceFunctionSelection,\n ClientEventSessionAvatarConnect,\n ClientEventInputAudioTurnStart,\n ClientEventInputAudioTurnAppend,\n ClientEventInputAudioTurnEnd,\n ClientEventInputAudioTurnCancel,\n ClientEventInputAudioClear,\n ClientEventInputAudioBufferAppend,\n ClientEventInputAudioBufferCommit,\n ClientEventInputAudioBufferClear,\n ClientEventConversationItemCreate,\n ConversationRequestItem,\n ConversationRequestItemUnion,\n KnownItemType,\n ItemType,\n MessageItem,\n MessageItemUnion,\n KnownMessageRole,\n MessageRole,\n MessageContentPart,\n MessageContentPartUnion,\n KnownContentPartType,\n ContentPartType,\n InputTextContentPart,\n InputAudioContentPart,\n OutputTextContentPart,\n KnownItemParamStatus,\n ItemParamStatus,\n SystemMessageItem,\n UserMessageItem,\n AssistantMessageItem,\n FunctionCallItem,\n FunctionCallOutputItem,\n ClientEventConversationItemTruncate,\n ClientEventConversationItemDelete,\n ClientEventResponseCreate,\n ResponseCreateParams,\n ClientEventResponseCancel,\n ClientEventConversationItemRetrieve,\n SessionBase,\n ConversationItemBase,\n Response,\n KnownResponseStatus,\n ResponseStatus,\n ResponseStatusDetails,\n ResponseStatusDetailsUnion,\n ResponseCancelledDetails,\n ResponseIncompleteDetails,\n ResponseFailedDetails,\n ResponseItem,\n ResponseItemUnion,\n ResponseMessageItem,\n ContentPart,\n ContentPartUnion,\n RequestTextContentPart,\n RequestAudioContentPart,\n ResponseTextContentPart,\n ResponseAudioContentPart,\n KnownResponseItemStatus,\n ResponseItemStatus,\n ResponseFunctionCallItem,\n ResponseFunctionCallOutputItem,\n TokenUsage,\n InputTokenDetails,\n CachedTokenDetails,\n OutputTokenDetails,\n ServerEvent,\n ServerEventUnion,\n KnownServerEventType,\n ServerEventType,\n ServerEventError,\n ServerEventErrorDetails,\n ServerEventSessionCreated,\n ResponseSession,\n AgentConfig,\n ServerEventSessionUpdated,\n ServerEventSessionAvatarConnecting,\n ServerEventInputAudioBufferCommitted,\n ServerEventInputAudioBufferCleared,\n ServerEventInputAudioBufferSpeechStarted,\n ServerEventInputAudioBufferSpeechStopped,\n ServerEventConversationItemCreated,\n ServerEventConversationItemInputAudioTranscriptionCompleted,\n ServerEventConversationItemInputAudioTranscriptionFailed,\n ServerEventConversationItemTruncated,\n ServerEventConversationItemDeleted,\n ServerEventResponseCreated,\n ServerEventResponseDone,\n ServerEventResponseOutputItemAdded,\n ServerEventResponseOutputItemDone,\n ServerEventResponseContentPartAdded,\n ServerEventResponseContentPartDone,\n ServerEventResponseTextDelta,\n ServerEventResponseTextDone,\n ServerEventResponseAudioTranscriptDelta,\n ServerEventResponseAudioTranscriptDone,\n ServerEventResponseAudioDelta,\n ServerEventResponseAudioDone,\n ServerEventResponseAnimationBlendshapeDelta,\n ServerEventResponseAnimationBlendshapeDone,\n ServerEventResponseAudioTimestampDelta,\n ServerEventResponseAudioTimestampDone,\n ServerEventResponseAnimationVisemeDelta,\n ServerEventResponseAnimationVisemeDone,\n ServerEventConversationItemInputAudioTranscriptionDelta,\n ServerEventConversationItemRetrieved,\n ServerEventResponseFunctionCallArgumentsDelta,\n ServerEventResponseFunctionCallArgumentsDone,\n} from \"./models.js\";\n"]}