@memberjunction/ai-realtime-client 6.2.0-edge.2 → 6.2.0-edge.4

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 (206) hide show
  1. package/README.md +156 -29
  2. package/dist/audio/audioMeter.d.ts +71 -0
  3. package/dist/audio/audioMeter.d.ts.map +1 -1
  4. package/dist/audio/audioMeter.js +83 -0
  5. package/dist/audio/audioMeter.js.map +1 -1
  6. package/dist/audio/mediaElementAudioRouter.d.ts +41 -0
  7. package/dist/audio/mediaElementAudioRouter.d.ts.map +1 -0
  8. package/dist/audio/mediaElementAudioRouter.js +82 -0
  9. package/dist/audio/mediaElementAudioRouter.js.map +1 -0
  10. package/dist/audio/micCapture.d.ts +12 -3
  11. package/dist/audio/micCapture.d.ts.map +1 -1
  12. package/dist/audio/micCapture.js +15 -1
  13. package/dist/audio/micCapture.js.map +1 -1
  14. package/dist/audio/pcmPlayback.d.ts +72 -4
  15. package/dist/audio/pcmPlayback.d.ts.map +1 -1
  16. package/dist/audio/pcmPlayback.js +101 -1
  17. package/dist/audio/pcmPlayback.js.map +1 -1
  18. package/dist/drivers/assemblyAIRealtimeClient.d.ts +2 -0
  19. package/dist/drivers/assemblyAIRealtimeClient.d.ts.map +1 -1
  20. package/dist/drivers/assemblyAIRealtimeClient.js +14 -0
  21. package/dist/drivers/assemblyAIRealtimeClient.js.map +1 -1
  22. package/dist/drivers/elevenLabsRealtimeClient.d.ts +2 -0
  23. package/dist/drivers/elevenLabsRealtimeClient.d.ts.map +1 -1
  24. package/dist/drivers/elevenLabsRealtimeClient.js +14 -0
  25. package/dist/drivers/elevenLabsRealtimeClient.js.map +1 -1
  26. package/dist/drivers/geminiAvatarOutput.d.ts +132 -0
  27. package/dist/drivers/geminiAvatarOutput.d.ts.map +1 -0
  28. package/dist/drivers/geminiAvatarOutput.js +310 -0
  29. package/dist/drivers/geminiAvatarOutput.js.map +1 -0
  30. package/dist/drivers/geminiEnterpriseRealtimeClient.d.ts +38 -0
  31. package/dist/drivers/geminiEnterpriseRealtimeClient.d.ts.map +1 -0
  32. package/dist/drivers/geminiEnterpriseRealtimeClient.js +107 -0
  33. package/dist/drivers/geminiEnterpriseRealtimeClient.js.map +1 -0
  34. package/dist/drivers/geminiRealtimeClient.d.ts +314 -48
  35. package/dist/drivers/geminiRealtimeClient.d.ts.map +1 -1
  36. package/dist/drivers/geminiRealtimeClient.js +759 -176
  37. package/dist/drivers/geminiRealtimeClient.js.map +1 -1
  38. package/dist/drivers/openAILiveClient.d.ts +5 -8
  39. package/dist/drivers/openAILiveClient.d.ts.map +1 -1
  40. package/dist/drivers/openAILiveClient.js +19 -32
  41. package/dist/drivers/openAILiveClient.js.map +1 -1
  42. package/dist/drivers/openAIRealtimeClient.d.ts +23 -26
  43. package/dist/drivers/openAIRealtimeClient.d.ts.map +1 -1
  44. package/dist/drivers/openAIRealtimeClient.js +42 -57
  45. package/dist/drivers/openAIRealtimeClient.js.map +1 -1
  46. package/dist/generic/baseRealtimeClient.d.ts +188 -30
  47. package/dist/generic/baseRealtimeClient.d.ts.map +1 -1
  48. package/dist/generic/baseRealtimeClient.js +250 -14
  49. package/dist/generic/baseRealtimeClient.js.map +1 -1
  50. package/dist/generic/openAIProtocolClient.d.ts +57 -1
  51. package/dist/generic/openAIProtocolClient.d.ts.map +1 -1
  52. package/dist/generic/openAIProtocolClient.js +89 -4
  53. package/dist/generic/openAIProtocolClient.js.map +1 -1
  54. package/dist/index.d.ts +2 -3
  55. package/dist/index.d.ts.map +1 -1
  56. package/dist/index.js +3 -3
  57. package/dist/index.js.map +1 -1
  58. package/dist/media/attachVideoSource.d.ts +23 -0
  59. package/dist/media/attachVideoSource.d.ts.map +1 -0
  60. package/dist/media/attachVideoSource.js +49 -0
  61. package/dist/media/attachVideoSource.js.map +1 -0
  62. package/dist/media/channelVideoSource.d.ts +110 -14
  63. package/dist/media/channelVideoSource.d.ts.map +1 -1
  64. package/dist/media/channelVideoSource.js +183 -18
  65. package/dist/media/channelVideoSource.js.map +1 -1
  66. package/dist/media/decoders/frameScheduler.d.ts +119 -0
  67. package/dist/media/decoders/frameScheduler.d.ts.map +1 -0
  68. package/dist/media/decoders/frameScheduler.js +238 -0
  69. package/dist/media/decoders/frameScheduler.js.map +1 -0
  70. package/dist/media/decoders/imageFrameDecoder.d.ts +58 -0
  71. package/dist/media/decoders/imageFrameDecoder.d.ts.map +1 -0
  72. package/dist/media/decoders/imageFrameDecoder.js +110 -0
  73. package/dist/media/decoders/imageFrameDecoder.js.map +1 -0
  74. package/dist/media/decoders/mseFmp4Decoder.d.ts +130 -0
  75. package/dist/media/decoders/mseFmp4Decoder.d.ts.map +1 -0
  76. package/dist/media/decoders/mseFmp4Decoder.js +402 -0
  77. package/dist/media/decoders/mseFmp4Decoder.js.map +1 -0
  78. package/dist/media/decoders/streamCanvas.d.ts +46 -0
  79. package/dist/media/decoders/streamCanvas.d.ts.map +1 -0
  80. package/dist/media/decoders/streamCanvas.js +163 -0
  81. package/dist/media/decoders/streamCanvas.js.map +1 -0
  82. package/dist/media/decoders/videoMimeTypes.d.ts +29 -0
  83. package/dist/media/decoders/videoMimeTypes.d.ts.map +1 -0
  84. package/dist/media/decoders/videoMimeTypes.js +50 -0
  85. package/dist/media/decoders/videoMimeTypes.js.map +1 -0
  86. package/dist/media/decoders/webCodecsChunkDecoder.d.ts +99 -0
  87. package/dist/media/decoders/webCodecsChunkDecoder.d.ts.map +1 -0
  88. package/dist/media/decoders/webCodecsChunkDecoder.js +265 -0
  89. package/dist/media/decoders/webCodecsChunkDecoder.js.map +1 -0
  90. package/dist/media/displayCapture.d.ts +128 -0
  91. package/dist/media/displayCapture.d.ts.map +1 -0
  92. package/dist/media/displayCapture.js +245 -0
  93. package/dist/media/displayCapture.js.map +1 -0
  94. package/dist/media/frameCapture.d.ts +25 -8
  95. package/dist/media/frameCapture.d.ts.map +1 -1
  96. package/dist/media/frameCapture.js +42 -72
  97. package/dist/media/frameCapture.js.map +1 -1
  98. package/dist/media/frameSampler.d.ts +94 -0
  99. package/dist/media/frameSampler.d.ts.map +1 -0
  100. package/dist/media/frameSampler.js +134 -0
  101. package/dist/media/frameSampler.js.map +1 -0
  102. package/dist/media/index.d.ts +32 -0
  103. package/dist/media/index.d.ts.map +1 -0
  104. package/dist/media/index.js +32 -0
  105. package/dist/media/index.js.map +1 -0
  106. package/dist/media/localMediaController.d.ts +116 -0
  107. package/dist/media/localMediaController.d.ts.map +1 -0
  108. package/dist/media/localMediaController.js +281 -0
  109. package/dist/media/localMediaController.js.map +1 -0
  110. package/dist/media/mediaLayout.d.ts +93 -0
  111. package/dist/media/mediaLayout.d.ts.map +1 -0
  112. package/dist/media/mediaLayout.js +187 -0
  113. package/dist/media/mediaLayout.js.map +1 -0
  114. package/dist/media/mediaPreview.d.ts +94 -0
  115. package/dist/media/mediaPreview.d.ts.map +1 -0
  116. package/dist/media/mediaPreview.js +154 -0
  117. package/dist/media/mediaPreview.js.map +1 -0
  118. package/dist/media/mediaStage.d.ts +99 -0
  119. package/dist/media/mediaStage.d.ts.map +1 -0
  120. package/dist/media/mediaStage.js +171 -0
  121. package/dist/media/mediaStage.js.map +1 -0
  122. package/dist/media/model.d.ts +154 -0
  123. package/dist/media/model.d.ts.map +1 -0
  124. package/dist/media/model.js +9 -0
  125. package/dist/media/model.js.map +1 -0
  126. package/dist/media/playbackClock.d.ts +20 -0
  127. package/dist/media/playbackClock.d.ts.map +1 -0
  128. package/dist/media/playbackClock.js +13 -0
  129. package/dist/media/playbackClock.js.map +1 -0
  130. package/dist/media/videoFrameDecoder.d.ts +86 -0
  131. package/dist/media/videoFrameDecoder.d.ts.map +1 -0
  132. package/dist/media/videoFrameDecoder.js +2 -0
  133. package/dist/media/videoFrameDecoder.js.map +1 -0
  134. package/dist/media/videoFrameDecoderRegistry.d.ts +40 -0
  135. package/dist/media/videoFrameDecoderRegistry.d.ts.map +1 -0
  136. package/dist/media/videoFrameDecoderRegistry.js +69 -0
  137. package/dist/media/videoFrameDecoderRegistry.js.map +1 -0
  138. package/dist/media/videoPacing.d.ts +32 -0
  139. package/dist/media/videoPacing.d.ts.map +1 -0
  140. package/dist/media/videoPacing.js +37 -0
  141. package/dist/media/videoPacing.js.map +1 -0
  142. package/dist/media/videoPlayout.d.ts +168 -0
  143. package/dist/media/videoPlayout.d.ts.map +1 -0
  144. package/dist/media/videoPlayout.js +217 -0
  145. package/dist/media/videoPlayout.js.map +1 -0
  146. package/dist/media/videoSourceArbiter.d.ts +250 -0
  147. package/dist/media/videoSourceArbiter.d.ts.map +1 -0
  148. package/dist/media/videoSourceArbiter.js +423 -0
  149. package/dist/media/videoSourceArbiter.js.map +1 -0
  150. package/dist/testing/conformanceAssertions.d.ts +25 -0
  151. package/dist/testing/conformanceAssertions.d.ts.map +1 -0
  152. package/dist/testing/conformanceAssertions.js +64 -0
  153. package/dist/testing/conformanceAssertions.js.map +1 -0
  154. package/dist/testing/conformanceFixtures.d.ts +76 -0
  155. package/dist/testing/conformanceFixtures.d.ts.map +1 -0
  156. package/dist/testing/conformanceFixtures.js +169 -0
  157. package/dist/testing/conformanceFixtures.js.map +1 -0
  158. package/dist/testing/conformanceGates.d.ts +32 -0
  159. package/dist/testing/conformanceGates.d.ts.map +1 -0
  160. package/dist/testing/conformanceGates.js +35 -0
  161. package/dist/testing/conformanceGates.js.map +1 -0
  162. package/dist/testing/conformanceMicrophone.d.ts +10 -0
  163. package/dist/testing/conformanceMicrophone.d.ts.map +1 -0
  164. package/dist/testing/conformanceMicrophone.js +71 -0
  165. package/dist/testing/conformanceMicrophone.js.map +1 -0
  166. package/dist/testing/conformanceTimeline.d.ts +128 -0
  167. package/dist/testing/conformanceTimeline.d.ts.map +1 -0
  168. package/dist/testing/conformanceTimeline.js +32 -0
  169. package/dist/testing/conformanceTimeline.js.map +1 -0
  170. package/dist/testing/conformanceVideoStream.d.ts +29 -0
  171. package/dist/testing/conformanceVideoStream.d.ts.map +1 -0
  172. package/dist/testing/conformanceVideoStream.js +39 -0
  173. package/dist/testing/conformanceVideoStream.js.map +1 -0
  174. package/dist/testing/index.d.ts +29 -0
  175. package/dist/testing/index.d.ts.map +1 -0
  176. package/dist/testing/index.js +28 -0
  177. package/dist/testing/index.js.map +1 -0
  178. package/dist/testing/realtimeVideoConformance.d.ts +23 -0
  179. package/dist/testing/realtimeVideoConformance.d.ts.map +1 -0
  180. package/dist/testing/realtimeVideoConformance.js +139 -0
  181. package/dist/testing/realtimeVideoConformance.js.map +1 -0
  182. package/dist/testing/realtimeVideoConformanceChecks.d.ts +4 -0
  183. package/dist/testing/realtimeVideoConformanceChecks.d.ts.map +1 -0
  184. package/dist/testing/realtimeVideoConformanceChecks.js +164 -0
  185. package/dist/testing/realtimeVideoConformanceChecks.js.map +1 -0
  186. package/dist/testing/realtimeVideoConformanceFrameChecks.d.ts +4 -0
  187. package/dist/testing/realtimeVideoConformanceFrameChecks.d.ts.map +1 -0
  188. package/dist/testing/realtimeVideoConformanceFrameChecks.js +63 -0
  189. package/dist/testing/realtimeVideoConformanceFrameChecks.js.map +1 -0
  190. package/dist/testing/realtimeVideoConformanceSession.d.ts +108 -0
  191. package/dist/testing/realtimeVideoConformanceSession.d.ts.map +1 -0
  192. package/dist/testing/realtimeVideoConformanceSession.js +270 -0
  193. package/dist/testing/realtimeVideoConformanceSession.js.map +1 -0
  194. package/dist/testing/realtimeVideoConformanceTurnChecks.d.ts +4 -0
  195. package/dist/testing/realtimeVideoConformanceTurnChecks.d.ts.map +1 -0
  196. package/dist/testing/realtimeVideoConformanceTurnChecks.js +248 -0
  197. package/dist/testing/realtimeVideoConformanceTurnChecks.js.map +1 -0
  198. package/dist/testing/realtimeVideoConformanceTypes.d.ts +155 -0
  199. package/dist/testing/realtimeVideoConformanceTypes.d.ts.map +1 -0
  200. package/dist/testing/realtimeVideoConformanceTypes.js +2 -0
  201. package/dist/testing/realtimeVideoConformanceTypes.js.map +1 -0
  202. package/dist/testing/recordingPlayout.d.ts +84 -0
  203. package/dist/testing/recordingPlayout.d.ts.map +1 -0
  204. package/dist/testing/recordingPlayout.js +120 -0
  205. package/dist/testing/recordingPlayout.js.map +1 -0
  206. package/package.json +29 -4
@@ -1,5 +1,5 @@
1
1
  import { ResolveResponseDoneUsage } from '@memberjunction/ai';
2
- import { BaseRealtimeClient } from './baseRealtimeClient.js';
2
+ import { BaseRealtimeClient, ToProviderSessionConfig } from './baseRealtimeClient.js';
3
3
  import { Base64ToArrayBuffer } from '../audio/pcmUtils.js';
4
4
  import { RealtimePcmPlayback } from '../audio/pcmPlayback.js';
5
5
  import { RealtimeAudioMeter } from '../audio/audioMeter.js';
@@ -223,6 +223,9 @@ export class OpenAIProtocolRealtimeClient extends BaseRealtimeClient {
223
223
  * provider, and narration is disposable by contract, so the update is dropped with a debug
224
224
  * log rather than queued to come out late and stale. Hosts SHOULD still gate on
225
225
  * {@link IsBusy} / {@link IsAudioPlaying} for timing quality.
226
+ *
227
+ * The wire frame is built by {@link buildSpokenUpdateEvent}, which is where the identity
228
+ * rule lives — see that method for why the caller's direction is never sent on its own.
226
229
  */
227
230
  RequestSpokenUpdate(instructions) {
228
231
  if (!this.canSendEvents()) {
@@ -235,7 +238,68 @@ export class OpenAIProtocolRealtimeClient extends BaseRealtimeClient {
235
238
  this.responseActive = true;
236
239
  this.pendingNarrationKind = true;
237
240
  this.pendingLocalResponseCreates++;
238
- this.sendEvent({ type: 'response.create', response: { instructions } });
241
+ this.sendEvent(this.buildSpokenUpdateEvent(instructions));
242
+ }
243
+ /**
244
+ * The `response.create` frame for one spoken update — **carrying the session identity, not
245
+ * replacing it.**
246
+ *
247
+ * ⚠️ `response.instructions` IS A FULL OVERRIDE OF THE SESSION SYSTEM PROMPT for that one
248
+ * response, not an addition to it. That is the whole reason this method exists. The
249
+ * server-side twin of this driver (`openAIRealtime.ts`) already states the rule and guards
250
+ * the BLANK case on it — forwarding `''` "would wipe the co-agent identity framing" — but the
251
+ * NON-blank case was never guarded, so every caller that supplied a real direction wiped it
252
+ * just as thoroughly and much less visibly.
253
+ *
254
+ * What that cost, live: the one turn that rides this method had no persona, so the model fell
255
+ * back to its vendor default and opened a hiring interview with *"I'm ChatGPT, your friendly
256
+ * voice companion"* while every other turn in the same session correctly said *"I'm Sam
257
+ * Rivera, Support Team Lead"* (bizapps-caliber#397 / MJ#4591). Every commentary-style caller
258
+ * is exposed the same way — an opening turn, a silence check-in, a delegation narration — and
259
+ * none of them should have to restate an identity the session already carries.
260
+ *
261
+ * Three cases, and the middle one is the fix:
262
+ *
263
+ * - **Blank direction** → a bare `response.create`. "Respond now, under the session prompt"
264
+ * (the meeting-mode bridge trigger passes `''`). Matches the server twin exactly.
265
+ * - **Direction + session instructions** → `identity, then direction`. The identity leads
266
+ * because it is context, and the direction is LAST because it is the thing being asked for
267
+ * now — the most recent line is the one a model weights hardest.
268
+ * - **Direction, no session instructions** → the direction alone. A session minted without
269
+ * instructions has no identity to lose, and prefixing a blank line would be noise.
270
+ */
271
+ buildSpokenUpdateEvent(instructions) {
272
+ const direction = instructions?.trim() ?? '';
273
+ if (direction.length === 0) {
274
+ return { type: 'response.create' };
275
+ }
276
+ const identity = this.currentSessionInstructions();
277
+ return {
278
+ type: 'response.create',
279
+ response: { instructions: identity === null ? direction : `${identity}\n\n${direction}` },
280
+ };
281
+ }
282
+ /**
283
+ * The session-level instructions currently in force — the co-agent's identity, persona and
284
+ * standing directives, as applied by `session.update`.
285
+ *
286
+ * A SEAM, not a field read, because the pact lives in a different place per transport: the
287
+ * websocket subclass keeps it in `sessionObject`, the WebRTC driver in its own `sessionConfig`.
288
+ * The base holds no copy of either, so it answers "no identity on record" and each transport
289
+ * overrides with the one it actually applied. A transport that forgets to override loses only
290
+ * the carry — {@link buildSpokenUpdateEvent} still sends the caller's direction — which is the
291
+ * old behaviour rather than a new failure.
292
+ *
293
+ * Null rather than `''` for "this session carries no identity", so {@link buildSpokenUpdateEvent}
294
+ * can tell "nothing to preserve" from "preserve this".
295
+ */
296
+ currentSessionInstructions() {
297
+ return null;
298
+ }
299
+ /** Reads a session pact's `instructions`, or null when it carries none worth preserving. */
300
+ static readInstructions(pact) {
301
+ const value = pact?.['instructions'];
302
+ return typeof value === 'string' && value.trim().length > 0 ? value : null;
239
303
  }
240
304
  /**
241
305
  * Sends the tool result back as a `function_call_output` conversation item, then triggers
@@ -597,9 +661,12 @@ export class OpenAIProtocolWebSocketRealtimeClient extends OpenAIProtocolRealtim
597
661
  /** Rejects the in-flight Connect (open OR created phase); null outside Connect. */
598
662
  this.failPendingConnect = null;
599
663
  }
600
- /** Extracts the wire-shaped `session` object from the server pact. Default: the pact itself. */
664
+ /**
665
+ * Extracts the wire-shaped `session` object from the server pact. Default: the pact minus the
666
+ * client-only hints ({@link ToProviderSessionConfig}).
667
+ */
601
668
  resolveSessionObject(config) {
602
- return config.SessionConfig ?? {};
669
+ return ToProviderSessionConfig(config.SessionConfig ?? {});
603
670
  }
604
671
  /**
605
672
  * Whether the readiness boundary waits for the endpoint's `session.created` frame before
@@ -625,6 +692,7 @@ export class OpenAIProtocolWebSocketRealtimeClient extends OpenAIProtocolRealtim
625
692
  * `'listening'` only after all of that (obligation #7).
626
693
  */
627
694
  async Connect(config, micStream) {
695
+ this.AssertTransportSupported(config);
628
696
  this.sessionObject = this.resolveSessionObject(config);
629
697
  this.micStream = micStream;
630
698
  this.closedByConsumer = false;
@@ -717,6 +785,9 @@ export class OpenAIProtocolWebSocketRealtimeClient extends OpenAIProtocolRealtim
717
785
  this.applySessionConfig();
718
786
  const sampleRate = this.resolveSampleRate(config);
719
787
  this.playback = this.createPlayback(sampleRate);
788
+ // The agent voice plays through Web Audio only; publish it so a host recorder can mix
789
+ // it in (issue #5153). Null for playbacks with no output stream (fakes, no WebAudio).
790
+ this.publishRemoteMediaStream(this.playback.GetOutputStream?.() ?? null);
720
791
  this.micCapture = await this.createMicCapture(micStream, sampleRate, (base64Pcm16) => this.sendMicChunk(base64Pcm16));
721
792
  // Audio-activity capability (base obligation #9): agent side taps the playout engine's
722
793
  // master gain; user side meters the mic stream. Null-safe — test fakes / no-WebAudio
@@ -725,6 +796,15 @@ export class OpenAIProtocolWebSocketRealtimeClient extends OpenAIProtocolRealtim
725
796
  this.attachInputAudioMeter(RealtimeAudioMeter.ForMicStream(micStream));
726
797
  this.setState('listening');
727
798
  }
799
+ /** Rebinds the PCM capture and the input meter to the stream's current track (obligation #10); the socket stays open. */
800
+ async ReplaceMicrophone(micStream) {
801
+ if (!this.micCapture) {
802
+ return;
803
+ }
804
+ this.micCapture.Rebind(micStream);
805
+ this.micStream = micStream;
806
+ this.attachInputAudioMeter(RealtimeAudioMeter.ForMicStream(micStream));
807
+ }
728
808
  /**
729
809
  * Tears down the socket, mic capture, mic tracks, and playout engine, resets the response
730
810
  * state machine, and emits a final `'closed'` (unless already `'error'`). Safe to call
@@ -745,6 +825,7 @@ export class OpenAIProtocolWebSocketRealtimeClient extends OpenAIProtocolRealtim
745
825
  this.micCapture = null;
746
826
  this.playback?.Close();
747
827
  this.playback = null;
828
+ this.clearRemoteMediaStream();
748
829
  if (this.socket) {
749
830
  try {
750
831
  this.socket.close();
@@ -822,6 +903,10 @@ export class OpenAIProtocolWebSocketRealtimeClient extends OpenAIProtocolRealtim
822
903
  }
823
904
  this.sendEvent({ type: 'session.update', session: this.sessionObject });
824
905
  }
906
+ /** @inheritdoc — this transport's pact is {@link sessionObject}, applied over the socket. */
907
+ currentSessionInstructions() {
908
+ return OpenAIProtocolRealtimeClient.readInstructions(this.sessionObject);
909
+ }
825
910
  /** Streams one base64 PCM16 mic chunk as an `input_audio_buffer.append` frame. */
826
911
  sendMicChunk(base64Pcm16) {
827
912
  if (this.socket) {
@@ -1 +1 @@
1
- {"version":3,"file":"openAIProtocolClient.js","sourceRoot":"","sources":["../../src/generic/openAIProtocolClient.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"openAIProtocolClient.js","sourceRoot":"","sources":["../../src/generic/openAIProtocolClient.ts"],"names":[],"mappings":"AAAA,OAAO,EAA2C,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AACvG,OAAO,EAAE,kBAAkB,EAAuB,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AACxG,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAwB,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AACjF,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,mBAAmB,EAAkB,MAAM,qBAAqB,CAAC;AAuL1E,mFAAmF;AAEnF;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,OAAgB,4BAA6B,SAAQ,kBAAkB;IAA7E;;QACI,8EAA8E;QAC9E,0EAA0E;QAChE,yBAAoB,GAAG,EAAE,CAAC;QACpC,+FAA+F;QACrF,mBAAc,GAAG,KAAK,CAAC;QACjC,kGAAkG;QACxF,0BAAqB,GAAG,KAAK,CAAC;QACxC;;;;;WAKG;QACO,gCAA2B,GAAG,CAAC,CAAC;QAC1C;;;;;;;;WAQG;QACO,4BAAuB,GAAG,KAAK,CAAC;QAC1C;;;;;;WAMG;QACO,yBAAoB,GAAG,KAAK,CAAC;QACvC;;;;;WAKG;QACO,uBAAkB,GAA2B,QAAQ,CAAC;QAChE;;;;;WAKG;QACO,iBAAY,GAAwB,QAAQ,CAAC;QACvD,4FAA4F;QAClF,cAAS,GAAuB,IAAI,CAAC;IA6kBnD,CAAC;IA/jBG,8EAA8E;IAE9E,0DAA0D;IAC1D,IAAc,kBAAkB;QAC5B,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;IACjC,CAAC;IAED;;;;OAIG;IACO,qBAAqB,CAAC,YAAoB;QAChD,2EAA2E;IAC/E,CAAC;IAED;;;;;OAKG;IACO,qBAAqB,CAAC,UAAkB;QAC9C,IAAI,CAAC,cAAc,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;IAC3F,CAAC;IAED;;;;;OAKG;IACO,oBAAoB;QAC1B,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YAC7C,iFAAiF;YACjF,oFAAoF;YACpF,oFAAoF;YACpF,IAAI,CAAC,qBAAqB,GAAG,KAAK,CAAC;YACnC,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC5B,CAAC;QACD,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;IAC/B,CAAC;IAED;;;;;OAKG;IACH,IAAc,0BAA0B;QACpC,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,+FAA+F;IACrF,qBAAqB;QAC3B,kCAAkC;IACtC,CAAC;IAED,sEAAsE;IAC5D,eAAe,CAAC,MAAiC;QACvD,oDAAoD;IACxD,CAAC;IAED,wEAAwE;IAC9D,cAAc,CAAC,IAAY;QACjC,oDAAoD;IACxD,CAAC;IAED,gEAAgE;IACtD,gBAAgB,CAAC,MAAiC;QACxD,oDAAoD;IACxD,CAAC;IAED,8EAA8E;IAE9E;;;;;;;;;OASG;IACI,QAAQ,CAAC,IAAY;QACxB,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE,CAAC;YACxB,OAAO;QACX,CAAC;QACD,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAC5B,IAAI,CAAC,SAAS,CAAC;YACX,IAAI,EAAE,0BAA0B;YAChC,IAAI,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,EAAE;SACnF,CAAC,CAAC;QACH,IAAI,CAAC,qBAAqB,EAAE,CAAC;IACjC,CAAC;IAED;;;;;;;;;OASG;IACI,oBAAoB;QACvB,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE,CAAC;YACxB,OAAO;QACX,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,cAAc,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;YAC/C,OAAO,CAAC,qCAAqC;QACjD,CAAC;QACD,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACtB,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,iBAAiB,EAAE,CAAC,CAAC;YAC5C,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;YAC5B,IAAI,CAAC,oBAAoB,GAAG,KAAK,CAAC;YAClC,IAAI,CAAC,kBAAkB,GAAG,QAAQ,CAAC;YACnC,IAAI,CAAC,oBAAoB,GAAG,EAAE,CAAC;QACnC,CAAC;QACD,IAAI,CAAC,eAAe,EAAE,CAAC;QACvB,IAAI,IAAI,CAAC,YAAY,KAAK,UAAU,EAAE,CAAC;YACnC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;QAC/B,CAAC;IACL,CAAC;IAED;;;;;;OAMG;IACI,eAAe,CAAC,IAAY;QAC/B,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE,CAAC;YACxB,OAAO;QACX,CAAC;QACD,IAAI,CAAC,SAAS,CAAC;YACX,IAAI,EAAE,0BAA0B;YAChC,IAAI,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,EAAE;SACrF,CAAC,CAAC;IACP,CAAC;IAED;;;;;;;;;;;;;;;OAeG;IACI,mBAAmB,CAAC,YAAoB;QAC3C,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE,CAAC;YACxB,OAAO;QACX,CAAC;QACD,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACtB,OAAO,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,kBAAkB,4FAA4F,CAAC,CAAC;YACvI,OAAO;QACX,CAAC;QACD,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;QAC3B,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC;QACjC,IAAI,CAAC,2BAA2B,EAAE,CAAC;QACnC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,sBAAsB,CAAC,YAAY,CAAC,CAAC,CAAC;IAC9D,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2BG;IACO,sBAAsB,CAAC,YAAoB;QACjD,MAAM,SAAS,GAAG,YAAY,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;QAC7C,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,OAAO,EAAE,IAAI,EAAE,iBAAiB,EAAE,CAAC;QACvC,CAAC;QACD,MAAM,QAAQ,GAAG,IAAI,CAAC,0BAA0B,EAAE,CAAC;QACnD,OAAO;YACH,IAAI,EAAE,iBAAiB;YACvB,QAAQ,EAAE,EAAE,YAAY,EAAE,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,QAAQ,OAAO,SAAS,EAAE,EAAE;SAC5F,CAAC;IACN,CAAC;IAED;;;;;;;;;;;;;OAaG;IACO,0BAA0B;QAChC,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,4FAA4F;IAClF,MAAM,CAAC,gBAAgB,CAAC,IAAmC;QACjE,MAAM,KAAK,GAAG,IAAI,EAAE,CAAC,cAAc,CAAC,CAAC;QACrC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;IAC/E,CAAC;IAED;;;;;;OAMG;IACI,cAAc,CAAC,MAAc,EAAE,UAAkB;QACpD,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE,CAAC;YACxB,OAAO;QACX,CAAC;QACD,IAAI,CAAC,SAAS,CAAC;YACX,IAAI,EAAE,0BAA0B;YAChC,IAAI,EAAE,EAAE,IAAI,EAAE,sBAAsB,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE;SAC9E,CAAC,CAAC;QACH,IAAI,CAAC,qBAAqB,EAAE,CAAC;IACjC,CAAC;IAED;;;;OAIG;IACI,QAAQ,CAAC,KAAc;QAC1B,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,SAAS,EAAE,cAAc,EAAE,IAAI,EAAE,EAAE,CAAC;YACzD,KAAK,CAAC,OAAO,GAAG,CAAC,KAAK,CAAC;QAC3B,CAAC;IACL,CAAC;IAED,kBAAkB;IAClB,IAAW,MAAM;QACb,OAAO,IAAI,CAAC,cAAc,CAAC;IAC/B,CAAC;IAED,8EAA8E;IAE9E;;;OAGG;IACO,qBAAqB,CAAC,GAAW;QACvC,IAAI,KAAgC,CAAC;QACrC,IAAI,CAAC;YACD,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAA8B,CAAC;QACzD,CAAC;QAAC,MAAM,CAAC;YACL,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;YACzB,OAAO;QACX,CAAC;QACD,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9C,OAAO,CAAC,sEAAsE;QAClF,CAAC;QACD,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;QAC5B,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;IAC5B,CAAC;IAED,mFAAmF;IACzE,WAAW,CAAC,KAAgC;QAClD,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;YACjB,KAAK,iBAAiB;gBAClB,IAAI,CAAC,qBAAqB,EAAE,CAAC;gBAC7B,MAAM;YACV,KAAK,wCAAwC,CAAC;YAC9C,KAAK,iCAAiC;gBAClC,IAAI,CAAC,gBAAgB,CAAE,KAAoC,CAAC,KAAK,CAAC,CAAC;gBACnE,MAAM;YACV,KAAK,uCAAuC,CAAC;YAC7C,KAAK,gCAAgC;gBACjC,IAAI,CAAC,eAAe,CAAE,KAAmC,CAAC,UAAU,CAAC,CAAC;gBACtE,MAAM;YACV,KAAK,sBAAsB,CAAC;YAC5B,KAAK,6BAA6B;gBAC9B,IAAI,CAAC,YAAY,CAAE,KAA+B,CAAC,KAAK,CAAC,CAAC;gBAC1D,MAAM;YACV,KAAK,uDAAuD;gBACxD,IAAI,CAAC,qBAAqB,CAAE,KAAgD,CAAC,UAAU,CAAC,CAAC;gBACzF,MAAM;YACV,KAAK,uCAAuC;gBACxC,IAAI,CAAC,eAAe,CAAC,KAA6C,CAAC,CAAC;gBACpE,MAAM;YACV,KAAK,mCAAmC;gBACpC,IAAI,CAAC,oBAAoB,EAAE,CAAC;gBAC5B,MAAM;YACV,KAAK,kBAAkB,CAAC,CAAC,CAAC;gBACtB,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;gBAC3B,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC,CAAC,mCAAmC;gBACxE,IAAI,CAAC,iBAAiB,EAAE,CAAC;gBACzB,kFAAkF;gBAClF,mFAAmF;gBACnF,gFAAgF;gBAChF,oEAAoE;gBACpE,MAAM,cAAc,GAAG,IAAI,CAAC,2BAA2B,GAAG,CAAC,CAAC;gBAC5D,IAAI,cAAc,EAAE,CAAC;oBACjB,IAAI,CAAC,2BAA2B,EAAE,CAAC;gBACvC,CAAC;gBACD,6EAA6E;gBAC7E,wFAAwF;gBACxF,IAAI,CAAC,kBAAkB,GAAG,CAAC,cAAc,IAAI,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC;gBACjG,IAAI,cAAc,EAAE,CAAC;oBACjB,IAAI,CAAC,oBAAoB,GAAG,KAAK,CAAC;gBACtC,CAAC;gBACD,MAAM;YACV,CAAC;YACD,KAAK,6BAA6B;gBAC9B,IAAI,CAAC,0BAA0B,EAAE,CAAC;gBAClC,MAAM;YACV,KAAK,6BAA6B,CAAC;YACnC,KAAK,6BAA6B;gBAC9B,IAAI,CAAC,0BAA0B,EAAE,CAAC;gBAClC,MAAM;YACV,KAAK,eAAe;gBAChB,qFAAqF;gBACrF,uFAAuF;gBACvF,IAAI,CAAC,uBAAuB,GAAG,KAAK,CAAC;gBACrC,iFAAiF;gBACjF,iFAAiF;gBACjF,kFAAkF;gBAClF,mFAAmF;gBACnF,6BAA6B;gBAC7B,IAAI,IAAI,CAAC,2BAA2B,GAAG,CAAC,EAAE,CAAC;oBACvC,IAAI,CAAC,iBAAiB,CAAC,KAAgC,CAAC,CAAC;oBACzD,MAAM;gBACV,CAAC;gBACD,6EAA6E;gBAC7E,qEAAqE;gBACrE,uEAAuE;gBACvE,gEAAgE;gBAChE,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;gBAC5B,IAAI,CAAC,kBAAkB,GAAG,QAAQ,CAAC;gBACnC,IAAI,CAAC,iBAAiB,CAAC,KAAgC,CAAC,CAAC;gBACzD,IAAI,CAAC,0BAA0B,EAAE,CAAC;gBAClC,IAAI,IAAI,CAAC,YAAY,KAAK,UAAU,EAAE,CAAC;oBACnC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;gBAC/B,CAAC;gBACD,MAAM;YACV,KAAK,OAAO;gBACR,IAAI,CAAC,YAAY,CAAC,KAA8B,CAAC,CAAC;gBAClD,MAAM;YACV;gBACI,uEAAuE;gBACvE,MAAM;QACd,CAAC;IACL,CAAC;IAED;;;OAGG;IACO,iBAAiB;QACvB,gFAAgF;IACpF,CAAC;IAED,0FAA0F;IAChF,0BAA0B;QAChC,8DAA8D;IAClE,CAAC;IACS,0BAA0B;QAChC,8DAA8D;IAClE,CAAC;IAED,6FAA6F;IACrF,YAAY,CAAC,WAAmB;QACpC,IAAI,CAAC,WAAW,EAAE,CAAC;YACf,OAAO;QACX,CAAC;QACD,IAAI,IAAI,CAAC,YAAY,KAAK,UAAU,EAAE,CAAC;YACnC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;QAC9B,CAAC;QACD,IAAI,CAAC,qBAAqB,CAAC,WAAW,CAAC,CAAC;IAC5C,CAAC;IAED,yFAAyF;IACjF,gBAAgB,CAAC,KAAa;QAClC,IAAI,CAAC,KAAK,EAAE,CAAC;YACT,OAAO;QACX,CAAC;QACD,IAAI,IAAI,CAAC,YAAY,KAAK,UAAU,EAAE,CAAC;YACnC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;QAC9B,CAAC;QACD,IAAI,CAAC,oBAAoB,IAAI,KAAK,CAAC;QACnC,IAAI,CAAC,cAAc,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,kBAAkB,EAAE,CAAC,CAAC;IAC3G,CAAC;IAED;;;;;OAKG;IACK,eAAe,CAAC,UAAkB;QACtC,MAAM,SAAS,GAAG,UAAU,IAAI,IAAI,CAAC,oBAAoB,CAAC;QAC1D,IAAI,CAAC,oBAAoB,GAAG,EAAE,CAAC;QAC/B,IAAI,SAAS,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9B,IAAI,CAAC,cAAc,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,kBAAkB,EAAE,CAAC,CAAC;QAC9G,CAAC;QACD,IAAI,IAAI,CAAC,YAAY,KAAK,UAAU,EAAE,CAAC;YACnC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;QAC/B,CAAC;IACL,CAAC;IAED;;;;;OAKG;IACK,eAAe,CAAC,IAA0C;QAC9D,IAAI,IAAI,CAAC,YAAY,KAAK,UAAU,EAAE,CAAC;YACnC,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC;QACpC,CAAC;QACD,IAAI,IAAI,CAAC,0BAA0B,EAAE,CAAC;YAClC,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;QAChC,CAAC;QACD,IAAI,CAAC,YAAY,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC,IAAI,EAAE,aAAa,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;IACpG,CAAC;IAED;;;;OAIG;IACK,iBAAiB,CAAC,KAA8B;QACpD,MAAM,KAAK,GAAG,wBAAwB,CAAC,KAAK,CAAC,CAAC;QAC9C,IAAI,CAAC,KAAK,EAAE,CAAC;YACT,OAAO;QACX,CAAC;QACD,IAAI,CAAC,SAAS,CAAC;YACX,WAAW,EAAE,OAAO,KAAK,CAAC,YAAY,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS;YACpF,YAAY,EAAE,OAAO,KAAK,CAAC,aAAa,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS;YACvF,GAAG,EAAE,KAAK;SACb,CAAC,CAAC;IACP,CAAC;IAED;;;;;;;;;;;OAWG;IACK,YAAY,CAAC,KAA4B;QAC7C,IAAI,IAAI,CAAC,2BAA2B,GAAG,CAAC,EAAE,CAAC;YACvC,IAAI,CAAC,2BAA2B,EAAE,CAAC;YACnC,iFAAiF;YACjF,0FAA0F;YAC1F,0FAA0F;YAC1F,uFAAuF;YACvF,wFAAwF;YACxF,sFAAsF;YACtF,yFAAyF;YACzF,cAAc;YACd,IAAI,CAAC,oBAAoB,GAAG,KAAK,CAAC;YAClC,uFAAuF;YACvF,4FAA4F;YAC5F,4FAA4F;YAC5F,8CAA8C;YAC9C,IAAI,CAAC,IAAI,CAAC,uBAAuB,EAAE,CAAC;gBAChC,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;gBAC5B,IAAI,IAAI,CAAC,YAAY,KAAK,UAAU,EAAE,CAAC;oBACnC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;gBAC/B,CAAC;YACL,CAAC;QACL,CAAC;QACD,IAAI,CAAC,SAAS,CAAC;YACX,OAAO,EAAE,KAAK,CAAC,KAAK,EAAE,OAAO,IAAI,wBAAwB;YACzD,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,IAAI;YACvB,KAAK,EAAE,KAAK;SACf,CAAC,CAAC;IACP,CAAC;IAED,8EAA8E;IAE9E;;;;;;OAMG;IACO,qBAAqB;QAC3B,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE,CAAC;YACxB,OAAO;QACX,CAAC;QACD,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACtB,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC;YAClC,OAAO;QACX,CAAC;QACD,IAAI,CAAC,qBAAqB,GAAG,KAAK,CAAC;QACnC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;QAC3B,IAAI,CAAC,2BAA2B,EAAE,CAAC;QACnC,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,iBAAiB,EAAE,CAAC,CAAC;QAC5C,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;IAC9B,CAAC;IAED,0FAA0F;IAChF,0BAA0B;QAChC,IAAI,CAAC,IAAI,CAAC,qBAAqB,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE,CAAC;YACvD,OAAO;QACX,CAAC;QACD,IAAI,CAAC,qBAAqB,GAAG,KAAK,CAAC;QACnC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;QAC3B,IAAI,CAAC,2BAA2B,EAAE,CAAC;QACnC,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,iBAAiB,EAAE,CAAC,CAAC;QAC5C,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;IAC9B,CAAC;IAED,0EAA0E;IAChE,kBAAkB;QACxB,IAAI,CAAC,oBAAoB,GAAG,EAAE,CAAC;QAC/B,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;QAC5B,IAAI,CAAC,uBAAuB,GAAG,KAAK,CAAC;QACrC,IAAI,CAAC,qBAAqB,GAAG,KAAK,CAAC;QACnC,IAAI,CAAC,2BAA2B,GAAG,CAAC,CAAC;QACrC,IAAI,CAAC,oBAAoB,GAAG,KAAK,CAAC;QAClC,IAAI,CAAC,kBAAkB,GAAG,QAAQ,CAAC;IACvC,CAAC;IAED,8EAA8E;IAE9E,4EAA4E;IAClE,QAAQ,CAAC,KAA0B;QACzC,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;QAC1B,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;IAChC,CAAC;IAED,uFAAuF;IAC7E,SAAS,CAAC,KAAgC;QAChD,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE,CAAC;YACxB,OAAO;QACX,CAAC;QACD,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;QAC7B,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;IAClC,CAAC;CACJ;AAwBD;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,OAAgB,qCAAsC,SAAQ,4BAA4B;IAAhG;;QACI,0FAA0F;QAChF,WAAM,GAAuC,IAAI,CAAC;QAC5D,2DAA2D;QACjD,aAAQ,GAAgC,IAAI,CAAC;QACvD,mEAAmE;QACzD,eAAU,GAA0B,IAAI,CAAC;QACnD;;;WAGG;QACO,kBAAa,GAAe,EAAE,CAAC;QACzC,qFAAqF;QAC3E,qBAAgB,GAAG,KAAK,CAAC;QACnC,4FAA4F;QAClF,eAAU,GAAG,KAAK,CAAC;QAC7B,8FAA8F;QACtF,2BAAsB,GAAwB,IAAI,CAAC;QAC3D,mFAAmF;QAC3E,uBAAkB,GAAoC,IAAI,CAAC;IAoUvE,CAAC;IA9TG;;;OAGG;IACO,oBAAoB,CAAC,MAAmC;QAC9D,OAAO,uBAAuB,CAAC,MAAM,CAAC,aAAa,IAAI,EAAE,CAAC,CAAC;IAC/D,CAAC;IAGD;;;;OAIG;IACH,IAAc,sBAAsB;QAChC,OAAO,KAAK,CAAC;IACjB,CAAC;IAED;;;;OAIG;IACH,IAAc,gBAAgB;QAC1B,OAAO,MAAM,CAAC;IAClB,CAAC;IAED,+EAA+E;IAE/E;;;;;OAKG;IACI,KAAK,CAAC,OAAO,CAAC,MAAmC,EAAE,SAAsB;QAC5E,IAAI,CAAC,wBAAwB,CAAC,MAAM,CAAC,CAAC;QACtC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC;QACvD,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;QAC9B,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;QAE5B,IAAI,UAAU,GAAwB,IAAI,CAAC;QAC3C,MAAM,MAAM,GAAG,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;YACzC,UAAU,GAAG,OAAO,CAAC;QACzB,CAAC,CAAC,CAAC;QACH,MAAM,OAAO,GAAG,IAAI,CAAC,sBAAsB;YACvC,CAAC,CAAC,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;gBAC1B,IAAI,CAAC,sBAAsB,GAAG,OAAO,CAAC;YAC1C,CAAC,CAAC;YACJ,CAAC,CAAC,IAAI,CAAC;QACX,uFAAuF;QACvF,qFAAqF;QACrF,4EAA4E;QAC5E,MAAM,OAAO,GAAG,IAAI,OAAO,CAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE;YAC7C,IAAI,CAAC,kBAAkB,GAAG,MAAM,CAAC;QACrC,CAAC,CAAC,CAAC;QACH,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,yDAAyD;QACzF,MAAM,QAAQ,GAAG,UAAU,CACvB,GAAG,EAAE,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,kBAAkB,4BAA4B,IAAI,CAAC,gBAAgB,IAAI,CAAC,CAAC,EAC3H,IAAI,CAAC,gBAAgB,CACxB,CAAC;QACF,4FAA4F;QAC3F,QAAmC,CAAC,KAAK,EAAE,EAAE,CAAC;QAE/C,kFAAkF;QAClF,0FAA0F;QAC1F,gDAAgD;QAChD,IAAI,CAAC;YACD,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,CAAC,0DAA0D;YACnF,MAAM,MAAM,GAAG,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;YAC/C,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;YACrB,oFAAoF;YACpF,kFAAkF;YAClF,6EAA6E;YAC7E,MAAM,CAAC,MAAM,GAAG,GAAG,EAAE;gBACjB,IAAI,IAAI,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;oBAAC,OAAO;gBAAC,CAAC;gBACvC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;gBACvB,UAAU,EAAE,EAAE,CAAC;YACnB,CAAC,CAAC;YACF,MAAM,CAAC,SAAS,GAAG,CAAC,IAAI,EAAE,EAAE;gBACxB,IAAI,IAAI,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;oBAAC,OAAO;gBAAC,CAAC;gBACvC,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC;YACrC,CAAC,CAAC;YACF,MAAM,CAAC,OAAO,GAAG,CAAC,OAAO,EAAE,EAAE;gBACzB,IAAI,IAAI,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;oBAAC,OAAO;gBAAC,CAAC;gBACvC,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;gBACxB,IAAI,CAAC,kBAAkB,EAAE,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;gBAC9C,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;YACpC,CAAC,CAAC;YACF,MAAM,CAAC,OAAO,GAAG,GAAG,EAAE;gBAClB,IAAI,IAAI,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;oBAAC,OAAO;gBAAC,CAAC;gBACvC,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;gBACxB,IAAI,CAAC,kBAAkB,EAAE,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,kBAAkB,+BAA+B,CAAC,CAAC,CAAC;gBAChG,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC7B,CAAC,CAAC;YAEF,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;YACtC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;YAC3B,IAAI,OAAO,EAAE,CAAC;gBACV,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;YAC3C,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,iFAAiF;YACjF,kFAAkF;YAClF,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACvE,IAAI,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;gBAChC,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;gBAClD,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;gBACvB,IAAI,CAAC;oBAAC,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC;gBAAC,CAAC;gBAAC,MAAM,CAAC,CAAC,qBAAqB,CAAC,CAAC;YACjE,CAAC;YACD,MAAM,KAAK,CAAC;QAChB,CAAC;gBAAS,CAAC;YACP,YAAY,CAAC,QAAQ,CAAC,CAAC;YACvB,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;YAC/B,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC;QACvC,CAAC;QACD,sFAAsF;QACtF,sEAAsE;QACtE,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAE1B,MAAM,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;QAClD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;QAChD,sFAAsF;QACtF,sFAAsF;QACtF,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,QAAQ,CAAC,eAAe,EAAE,EAAE,IAAI,IAAI,CAAC,CAAC;QACzE,IAAI,CAAC,UAAU,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,UAAU,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC,CAAC;QACtH,uFAAuF;QACvF,qFAAqF;QACrF,oDAAoD;QACpD,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,QAAQ,EAAE,WAAW,EAAE,EAAE,IAAI,IAAI,CAAC,CAAC;QACpE,IAAI,CAAC,qBAAqB,CAAC,kBAAkB,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC;QACvE,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;IAC/B,CAAC;IAED,yHAAyH;IAClH,KAAK,CAAC,iBAAiB,CAAC,SAAsB;QACjD,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;YACnB,OAAO;QACX,CAAC;QACD,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAClC,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,qBAAqB,CAAC,kBAAkB,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC;IAC3E,CAAC;IAED;;;;OAIG;IACI,KAAK,CAAC,UAAU;QACnB,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;QAC7B,qFAAqF;QACrF,mDAAmD;QACnD,IAAI,CAAC,kBAAkB,EAAE,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,kBAAkB,8BAA8B,CAAC,CAAC,CAAC;QAC/F,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;QAC/B,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC;QACnC,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;QACxB,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACxB,IAAI,CAAC,SAAS,EAAE,SAAS,EAAE,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;QAC7D,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,IAAI,CAAC,UAAU,EAAE,IAAI,EAAE,CAAC;QACxB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACvB,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,CAAC;QACvB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,IAAI,CAAC,sBAAsB,EAAE,CAAC;QAC9B,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YACd,IAAI,CAAC;gBACD,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;YACxB,CAAC;YAAC,MAAM,CAAC;gBACL,qBAAqB;YACzB,CAAC;YACD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACvB,CAAC;QACD,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;QACxB,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC1B,IAAI,IAAI,CAAC,YAAY,KAAK,OAAO,EAAE,CAAC;YAChC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAC5B,CAAC;IACL,CAAC;IAED,8EAA8E;IAE9E,yFAAyF;IAC/E,aAAa;QACnB,OAAO,IAAI,CAAC,MAAM,KAAK,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC;IACnD,CAAC;IAED,kBAAkB;IACR,iBAAiB,CAAC,KAAgC;QACxD,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;IAC7C,CAAC;IAED,0FAA0F;IAChF,eAAe;QACrB,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,CAAC;IAC3B,CAAC;IAED,mFAAmF;IAChE,qBAAqB,CAAC,WAAmB;QACxD,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,mBAAmB,CAAC,WAAW,CAAC,CAAC,CAAC;IAC7D,CAAC;IAED;;;;;;OAMG;IACH,IAAW,cAAc;QACrB,OAAO,IAAI,CAAC,QAAQ,EAAE,SAAS,IAAI,KAAK,CAAC;IAC7C,CAAC;IAED;;;OAGG;IACgB,oBAAoB;QACnC,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YAC7C,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,CAAC;YACvB,gFAAgF;YAChF,IAAI,CAAC,qBAAqB,GAAG,KAAK,CAAC;YACnC,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC5B,CAAC;QACD,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;IAC/B,CAAC;IAED,iGAAiG;IACjG,IAAuB,0BAA0B;QAC7C,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,2EAA2E;IACxD,qBAAqB;QACpC,IAAI,CAAC,sBAAsB,EAAE,EAAE,CAAC;QAChC,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC;IACvC,CAAC;IAED,+EAA+E;IAE/E;;;;;OAKG;IACO,kBAAkB;QACxB,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC/C,OAAO;QACX,CAAC;QACD,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;IAC5E,CAAC;IAED,6FAA6F;IAC1E,0BAA0B;QACzC,OAAO,4BAA4B,CAAC,gBAAgB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAC7E,CAAC;IAED,kFAAkF;IACxE,YAAY,CAAC,WAAmB;QACtC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YACd,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,2BAA2B,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,CAAC;QAC9E,CAAC;IACL,CAAC;IAED,yFAAyF;IAC/E,oBAAoB,CAAC,OAAe;QAC1C,OAAO,OAAO,CAAC;IACnB,CAAC;IAED,kGAAkG;IAClG,IAAc,sBAAsB;QAChC,OAAO,GAAG,IAAI,CAAC,kBAAkB,iCAAiC,CAAC;IACvE,CAAC;IAED,oFAAoF;IAC1E,iBAAiB,CAAC,OAAe;QACvC,IAAI,IAAI,CAAC,YAAY,KAAK,OAAO,IAAI,IAAI,CAAC,YAAY,KAAK,QAAQ,EAAE,CAAC;YAClE,OAAO;QACX,CAAC;QACD,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAC7E,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IAC3B,CAAC;IAED;;;;;OAKG;IACO,iBAAiB;QACvB,IAAI,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,YAAY,KAAK,OAAO,IAAI,IAAI,CAAC,YAAY,KAAK,QAAQ,EAAE,CAAC;YAC3F,OAAO;QACX,CAAC;QACD,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,sBAAsB,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QACtE,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IAC3B,CAAC;IAED,8EAA8E;IAE9E;;;;OAIG;IACO,KAAK,CAAC,gBAAgB,CAC5B,SAAsB,EACtB,UAAkB,EAClB,UAAyC;QAEzC,OAAO,mBAAmB,CAAC,SAAS,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;IAClE,CAAC;IAED,uGAAuG;IAC7F,cAAc,CAAC,UAAkB;QACvC,OAAO,IAAI,mBAAmB,CAAC,UAAU,CAAC,CAAC;IAC/C,CAAC;CACJ"}
package/dist/index.d.ts CHANGED
@@ -1,13 +1,12 @@
1
1
  export * from './generic/baseRealtimeClient.js';
2
2
  export * from './generic/openAIProtocolClient.js';
3
3
  export * from './audio/pcmUtils.js';
4
- export * from './audio/audioMeter.js';
5
4
  export * from './audio/pcmPlayback.js';
6
5
  export * from './audio/micCapture.js';
7
- export * from './media/frameCapture.js';
8
- export * from './media/channelVideoSource.js';
6
+ export * from './media/index.js';
9
7
  export * from './drivers/openAIRealtimeClient.js';
10
8
  export * from './drivers/geminiRealtimeClient.js';
9
+ export * from './drivers/geminiEnterpriseRealtimeClient.js';
11
10
  export * from './drivers/elevenLabsRealtimeClient.js';
12
11
  export * from './drivers/assemblyAIRealtimeClient.js';
13
12
  export * from './drivers/xaiRealtimeClient.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,8BAA8B,CAAC;AAC7C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,oCAAoC,CAAC;AACnD,cAAc,oCAAoC,CAAC;AACnD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,qCAAqC,CAAC;AACpD,cAAc,4BAA4B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,8BAA8B,CAAC;AAC7C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AAEnC,cAAc,eAAe,CAAC;AAC9B,cAAc,gCAAgC,CAAC;AAC/C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,0CAA0C,CAAC;AACzD,cAAc,oCAAoC,CAAC;AACnD,cAAc,oCAAoC,CAAC;AACnD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,qCAAqC,CAAC;AACpD,cAAc,4BAA4B,CAAC"}
package/dist/index.js CHANGED
@@ -1,13 +1,13 @@
1
1
  export * from './generic/baseRealtimeClient.js';
2
2
  export * from './generic/openAIProtocolClient.js';
3
3
  export * from './audio/pcmUtils.js';
4
- export * from './audio/audioMeter.js';
5
4
  export * from './audio/pcmPlayback.js';
6
5
  export * from './audio/micCapture.js';
7
- export * from './media/frameCapture.js';
8
- export * from './media/channelVideoSource.js';
6
+ // Everything in the driver-free `/media` entry point, including the audio meter.
7
+ export * from './media/index.js';
9
8
  export * from './drivers/openAIRealtimeClient.js';
10
9
  export * from './drivers/geminiRealtimeClient.js';
10
+ export * from './drivers/geminiEnterpriseRealtimeClient.js';
11
11
  export * from './drivers/elevenLabsRealtimeClient.js';
12
12
  export * from './drivers/assemblyAIRealtimeClient.js';
13
13
  export * from './drivers/xaiRealtimeClient.js';
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,8BAA8B,CAAC;AAC7C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,oCAAoC,CAAC;AACnD,cAAc,oCAAoC,CAAC;AACnD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,qCAAqC,CAAC;AACpD,cAAc,4BAA4B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,8BAA8B,CAAC;AAC7C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,iFAAiF;AACjF,cAAc,eAAe,CAAC;AAC9B,cAAc,gCAAgC,CAAC;AAC/C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,0CAA0C,CAAC;AACzD,cAAc,oCAAoC,CAAC;AACnD,cAAc,oCAAoC,CAAC;AACnD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,qCAAqC,CAAC;AACpD,cAAc,4BAA4B,CAAC"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * @fileoverview ATTACH VIDEO SOURCE: shows any {@link MediaVideoSource} in a `<video>` element and hands back
3
+ * a function that takes it out again. UI code calls this instead of a vendor's `track.attach(element)`, so a
4
+ * tile renders a camera, a shared screen, a meeting participant or an avatar the same way.
5
+ *
6
+ * - A **stream** source (a camera, a shared screen, a WebRTC track) plays muted and inline. A video surface
7
+ * never plays audio: the realtime client or the meeting room plays each voice exactly once.
8
+ * - An **element** source (a player that must own the element, such as MSE playout of an avatar's MP4) is
9
+ * handed the element and decides everything, including its audio: an avatar's voice is in its video.
10
+ *
11
+ * Detaching never stops the source's tracks; whoever opened them stops them.
12
+ *
13
+ * @module @memberjunction/ai-realtime-client/media
14
+ */
15
+ import type { MediaVideoSource } from './model.js';
16
+ /**
17
+ * Shows a video source in a `<video>` element.
18
+ *
19
+ * @returns A function that takes the source out of the element. Calling it twice does nothing, and it leaves
20
+ * the element alone if another source has been attached to it since.
21
+ */
22
+ export declare function AttachVideoSource(source: MediaVideoSource, element: HTMLVideoElement): () => void;
23
+ //# sourceMappingURL=attachVideoSource.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"attachVideoSource.d.ts","sourceRoot":"","sources":["../../src/media/attachVideoSource.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAEhD;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,gBAAgB,EAAE,OAAO,EAAE,gBAAgB,GAAG,MAAM,IAAI,CAiBjG"}
@@ -0,0 +1,49 @@
1
+ /**
2
+ * @fileoverview ATTACH VIDEO SOURCE: shows any {@link MediaVideoSource} in a `<video>` element and hands back
3
+ * a function that takes it out again. UI code calls this instead of a vendor's `track.attach(element)`, so a
4
+ * tile renders a camera, a shared screen, a meeting participant or an avatar the same way.
5
+ *
6
+ * - A **stream** source (a camera, a shared screen, a WebRTC track) plays muted and inline. A video surface
7
+ * never plays audio: the realtime client or the meeting room plays each voice exactly once.
8
+ * - An **element** source (a player that must own the element, such as MSE playout of an avatar's MP4) is
9
+ * handed the element and decides everything, including its audio: an avatar's voice is in its video.
10
+ *
11
+ * Detaching never stops the source's tracks; whoever opened them stops them.
12
+ *
13
+ * @module @memberjunction/ai-realtime-client/media
14
+ */
15
+ /**
16
+ * Shows a video source in a `<video>` element.
17
+ *
18
+ * @returns A function that takes the source out of the element. Calling it twice does nothing, and it leaves
19
+ * the element alone if another source has been attached to it since.
20
+ */
21
+ export function AttachVideoSource(source, element) {
22
+ if (source.Kind === 'element') {
23
+ return once(source.Attach(element));
24
+ }
25
+ element.muted = true;
26
+ element.playsInline = true;
27
+ element.autoplay = true;
28
+ element.srcObject = source.Stream;
29
+ void element.play().catch(() => {
30
+ // Muted inline video may play; if the browser still waits (a hidden element), autoplay starts it later.
31
+ });
32
+ return once(() => {
33
+ if (element.srcObject === source.Stream) {
34
+ element.pause();
35
+ element.srcObject = null;
36
+ }
37
+ });
38
+ }
39
+ /** Wraps a function so that only its first call does anything. */
40
+ function once(action) {
41
+ let done = false;
42
+ return () => {
43
+ if (!done) {
44
+ done = true;
45
+ action();
46
+ }
47
+ };
48
+ }
49
+ //# sourceMappingURL=attachVideoSource.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"attachVideoSource.js","sourceRoot":"","sources":["../../src/media/attachVideoSource.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAIH;;;;;GAKG;AACH,MAAM,UAAU,iBAAiB,CAAC,MAAwB,EAAE,OAAyB;IACjF,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAC5B,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;IACxC,CAAC;IACD,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC;IACrB,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;IAC3B,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;IACxB,OAAO,CAAC,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC;IAClC,KAAK,OAAO,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE;QAC3B,wGAAwG;IAC5G,CAAC,CAAC,CAAC;IACH,OAAO,IAAI,CAAC,GAAG,EAAE;QACb,IAAI,OAAO,CAAC,SAAS,KAAK,MAAM,CAAC,MAAM,EAAE,CAAC;YACtC,OAAO,CAAC,KAAK,EAAE,CAAC;YAChB,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC;QAC7B,CAAC;IACL,CAAC,CAAC,CAAC;AACP,CAAC;AAED,kEAAkE;AAClE,SAAS,IAAI,CAAC,MAAkB;IAC5B,IAAI,IAAI,GAAG,KAAK,CAAC;IACjB,OAAO,GAAG,EAAE;QACR,IAAI,CAAC,IAAI,EAAE,CAAC;YACR,IAAI,GAAG,IAAI,CAAC;YACZ,MAAM,EAAE,CAAC;QACb,CAAC;IACL,CAAC,CAAC;AACN,CAAC"}
@@ -1,19 +1,25 @@
1
1
  /**
2
2
  * @fileoverview SHARED CHANNEL INBOUND VIDEO BRIDGE (Phase F5).
3
3
  *
4
- * Single shared implementation used by both Whiteboard and Remote Browser channels
5
- * to source inbound video frames into a realtime session when the model supports it.
4
+ * Single shared implementation used by the Whiteboard, Remote Browser and any other channel that
5
+ * shows the model pixels. It no longer writes to the model directly: it REGISTERS its channel as a
6
+ * source with the session's {@link VideoSourceArbiter} and pushes frames to it, so the arbiter stays
7
+ * the single writer of inbound video and decides which source the model sees when several are live.
6
8
  *
7
9
  * Enforces:
8
10
  * 1. Model capability & track gate: if the session has not established an inbound video track,
9
11
  * falls back to tool-only behaviour — NO frames sent and NO errors raised.
10
- * 2. Cadence throttling: capped at 1 frame per second maximum (1 fps ceiling per Live API capabilities guide).
11
- * 3. Clean teardown on Stop().
12
+ * 2. Cadence: the poller (when used) runs at the NEGOTIATED inbound rate, read from the client;
13
+ * there is no rate constant here. The arbiter and the driver enforce the same rate as a spacing.
14
+ * 3. Clean teardown on Stop(), which also unregisters the source.
15
+ *
16
+ * An owner that sends frames only when its picture changes learns from {@link ChannelInboundVideoBridge.OnSourceActivated}
17
+ * when the arbiter starts sending its source to the model again, so it can send the picture the model missed.
12
18
  *
13
19
  * @module @memberjunction/ai-realtime-client
14
20
  * @author MemberJunction.com
15
21
  */
16
- import type { BaseRealtimeClient } from '../generic/baseRealtimeClient.js';
22
+ import { VideoSourceArbiter, type IVideoFrameSink, type VideoSourceKind } from './videoSourceArbiter.js';
17
23
  /**
18
24
  * Provider implemented by a channel or surface to produce visual frames.
19
25
  */
@@ -28,13 +34,36 @@ export interface IChannelFrameProvider {
28
34
  * Options for the inbound channel video bridge.
29
35
  */
30
36
  export interface ChannelInboundVideoBridgeOptions {
31
- /** Target frame rate in fps (capped at 1 fps maximum). Defaults to 1. */
37
+ /**
38
+ * Target poll rate in fps for {@link ChannelInboundVideoBridge.Start}.
39
+ *
40
+ * @deprecated The poll follows the rate the inbound video track NEGOTIATED (the model's own
41
+ * ceiling), read from the client. When set, the poll runs at the lower of this and the negotiated
42
+ * rate; it is no longer clamped to a constant 1 fps.
43
+ */
32
44
  Rate?: number;
33
45
  /** Output MIME type. Defaults to 'image/jpeg'. */
34
46
  MimeType?: string;
47
+ /**
48
+ * The id this source registers under. Defaults to a unique generated id. A channel passes a stable
49
+ * one (`<channel>#<instance>`) so the UI can address the source.
50
+ */
51
+ SourceID?: string;
52
+ /** Human-readable name used in notes to the model and in the UI's "agent can see" list. Defaults to the source id. */
53
+ Label?: string;
54
+ /** What kind of source this is. Defaults to `'surface'` (a channel surface, not a user capture). */
55
+ Kind?: VideoSourceKind;
56
+ /** The channel this source belongs to, so the UI can map it to the user's persisted per-channel choice. */
57
+ ChannelKey?: string;
58
+ /**
59
+ * The arbiter to register with. Defaults to the one for the session's client
60
+ * ({@link VideoSourceArbiter.ForSink}), which is what makes it a single writer. Override for tests.
61
+ */
62
+ Arbiter?: VideoSourceArbiter;
35
63
  }
36
64
  /**
37
- * Shared bridge connecting a visual channel surface to the session's inbound video track.
65
+ * Shared bridge connecting a visual channel surface to the session's inbound video track, by way of
66
+ * the session's {@link VideoSourceArbiter}.
38
67
  */
39
68
  export declare class ChannelInboundVideoBridge {
40
69
  private readonly clientOrGetter;
@@ -43,8 +72,63 @@ export declare class ChannelInboundVideoBridge {
43
72
  private timer;
44
73
  private active;
45
74
  private frameErrorLogged;
46
- constructor(clientOrGetter: BaseRealtimeClient | (() => BaseRealtimeClient | null | undefined) | null | undefined, provider: IChannelFrameProvider, options?: ChannelInboundVideoBridgeOptions);
75
+ private readonly sourceId;
76
+ /** The arbiter this bridge is currently registered with; `null` when it is not registered. */
77
+ private registeredWith;
78
+ /** Whether the owner switched this source off (exposure policy or the user). Survives re-registration. */
79
+ private sourceEnabled;
80
+ /** The owner's handlers for {@link OnSourceActivated}. They survive re-registration. */
81
+ private readonly activatedHandlers;
82
+ /** Stops following the arbiter's changes; `null` while not following (not registered, or no handler). */
83
+ private stopFollowingArbiter;
84
+ /** Whether the arbiter was sending this source to the model as of its last change. */
85
+ private forwarded;
86
+ /**
87
+ * @param clientOrGetter The session's client, or a getter for it (a reconnect replaces the client). Any
88
+ * {@link IVideoFrameSink} works; a `BaseRealtimeClient` is one.
89
+ * @param provider Produces the frames.
90
+ * @param options Source identity, MIME type and the deprecated rate cap.
91
+ */
92
+ constructor(clientOrGetter: IVideoFrameSink | (() => IVideoFrameSink | null | undefined) | null | undefined, provider: IChannelFrameProvider, options?: ChannelInboundVideoBridgeOptions);
47
93
  private get client();
94
+ /** The id this bridge's source is registered under. */
95
+ get SourceID(): string;
96
+ /** The arbiter for the current client, or `null` when there is no client yet. */
97
+ private resolveArbiter;
98
+ /**
99
+ * Registers this bridge's source with the session's arbiter (idempotent). A new session means a new
100
+ * client and so a new arbiter: the source is re-registered there and removed from the old one, so a
101
+ * reconnect never leaves a ghost source behind.
102
+ *
103
+ * @returns The arbiter, or `null` when there is no client to register with.
104
+ */
105
+ private ensureRegistered;
106
+ /**
107
+ * Calls `handler` each time the arbiter starts sending this source to the model after it was not: another source
108
+ * that held the model's only stream stopped or was set aside, or this source was switched back on. The source's
109
+ * first registration does not count. A frame offered while the source was not sent never reached the model, so an
110
+ * owner that sends frames only when its picture changes sends its current picture here.
111
+ *
112
+ * The handler is kept across a re-registration (a reconnect's new client) and called until removed.
113
+ *
114
+ * @param handler Called synchronously from the arbiter's change event; it should not throw.
115
+ * @returns A function that removes the handler.
116
+ */
117
+ OnSourceActivated(handler: () => void): () => void;
118
+ /** Starts following the arbiter this source is registered with, when an owner asked to hear of activations. */
119
+ private followArbiter;
120
+ /** Stops following the arbiter's changes. */
121
+ private unfollowArbiter;
122
+ /** Calls each activation handler, containing a handler that throws. */
123
+ private notifyActivated;
124
+ /**
125
+ * Registers this bridge's source with the session's arbiter now, without starting any poll — so the
126
+ * source is LISTED (and can be switched on or off) before it has pushed a frame. A source that is
127
+ * switched off never pushes one, so without this it could never be switched back on.
128
+ *
129
+ * @returns `true` if registered; `false` when there is no client or no inbound video track (nothing to register with).
130
+ */
131
+ Register(): boolean;
48
132
  /**
49
133
  * Starts the periodic frame pump if the session has an established inbound video track.
50
134
  *
@@ -52,21 +136,32 @@ export declare class ChannelInboundVideoBridge {
52
136
  * inbound video (or track was not established), falling back to tool-only behaviour.
53
137
  */
54
138
  Start(): boolean;
139
+ /** The poll interval: the negotiated rate, capped by the (deprecated) `Rate` option when one was given. */
140
+ private pollIntervalMs;
55
141
  /**
56
- * Directly sends a frame through the client when the inbound video track is established
57
- * and the client implements `SendVideoFrame`.
142
+ * Offers a frame to the arbiter, which forwards it only if this source is among those the model
143
+ * should see (and enabled, and inside the negotiated pacing interval).
58
144
  *
59
- * @returns `true` if dispatched to the client; `false` otherwise.
145
+ * @returns `true` if dispatched to the model; `false` otherwise.
60
146
  */
61
147
  private sendFrameDirect;
62
148
  /**
63
149
  * Pushes an event-driven frame (e.g. screencast push from RemoteBrowser or stroke completion).
64
- * Dispatches directly to the client's authoritative throttle gate.
150
+ * Registers the source on first use, so a purely event-driven channel never needs {@link Start}.
65
151
  *
66
152
  * @param base64Jpeg The base64-encoded image frame.
67
- * @returns `true` if the frame was sent; `false` if dropped (throttled, track unestablished, or driver lacks video support).
153
+ * @returns `true` if the frame was sent; `false` if dropped (throttled, not the source the model is
154
+ * viewing, turned off, track unestablished, or driver lacks video support).
68
155
  */
69
156
  PushFrame(base64Jpeg: string): boolean;
157
+ /**
158
+ * Turns this source on or off at the arbiter (a no-op before the first registration other than
159
+ * remembering the choice). A disabled source is not a candidate and forwards nothing.
160
+ *
161
+ * @param enabled Whether the model may see this source.
162
+ * @param notify Whether the arbiter tells the model. Pass `false` when the caller sends its own note.
163
+ */
164
+ SetSourceEnabled(enabled: boolean, notify?: boolean): void;
70
165
  /**
71
166
  * Periodic poll tick that fetches the latest frame from the provider and pushes it.
72
167
  * Uses `sendFrameDirect` so periodic polling paced by `setInterval` does not fight
@@ -74,7 +169,8 @@ export declare class ChannelInboundVideoBridge {
74
169
  */
75
170
  private pumpFrame;
76
171
  /**
77
- * Stops the bridge and clears any active polling timer.
172
+ * Stops the bridge: clears the poll timer and removes this source from the arbiter. Activation handlers stay, and
173
+ * are called again if the source registers again.
78
174
  */
79
175
  Stop(): void;
80
176
  /** Whether the video bridge is currently actively pumping frames. */
@@ -1 +1 @@
1
- {"version":3,"file":"channelVideoSource.d.ts","sourceRoot":"","sources":["../../src/media/channelVideoSource.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AAExE;;GAEG;AACH,MAAM,WAAW,qBAAqB;IAClC;;;OAGG;IACH,cAAc,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,MAAM,GAAG,IAAI,CAAC;CAC5D;AAED;;GAEG;AACH,MAAM,WAAW,gCAAgC;IAC7C,yEAAyE;IACzE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,kDAAkD;IAClD,QAAQ,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,qBAAa,yBAAyB;IAM9B,OAAO,CAAC,QAAQ,CAAC,cAAc;IAC/B,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,OAAO;IAP5B,OAAO,CAAC,KAAK,CAA+C;IAC5D,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,gBAAgB,CAAS;gBAGZ,cAAc,EAAE,kBAAkB,GAAG,CAAC,MAAM,kBAAkB,GAAG,IAAI,GAAG,SAAS,CAAC,GAAG,IAAI,GAAG,SAAS,EACrG,QAAQ,EAAE,qBAAqB,EAC/B,OAAO,GAAE,gCAAqC;IAGnE,OAAO,KAAK,MAAM,GAEjB;IAED;;;;;OAKG;IACI,KAAK,IAAI,OAAO;IAiBvB;;;;;OAKG;IACH,OAAO,CAAC,eAAe;IAUvB;;;;;;OAMG;IACI,SAAS,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO;IAI7C;;;;OAIG;YACW,SAAS;IAkBvB;;OAEG;IACI,IAAI,IAAI,IAAI;IASnB,qEAAqE;IACrE,IAAW,QAAQ,IAAI,OAAO,CAE7B;CACJ"}
1
+ {"version":3,"file":"channelVideoSource.d.ts","sourceRoot":"","sources":["../../src/media/channelVideoSource.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAGH,OAAO,EAAE,kBAAkB,EAAE,KAAK,eAAe,EAAE,KAAK,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEtG;;GAEG;AACH,MAAM,WAAW,qBAAqB;IAClC;;;OAGG;IACH,cAAc,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,MAAM,GAAG,IAAI,CAAC;CAC5D;AAED;;GAEG;AACH,MAAM,WAAW,gCAAgC;IAC7C;;;;;;OAMG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,kDAAkD;IAClD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,sHAAsH;IACtH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,oGAAoG;IACpG,IAAI,CAAC,EAAE,eAAe,CAAC;IACvB,2GAA2G;IAC3G,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;OAGG;IACH,OAAO,CAAC,EAAE,kBAAkB,CAAC;CAChC;AAKD;;;GAGG;AACH,qBAAa,yBAAyB;IAuB9B,OAAO,CAAC,QAAQ,CAAC,cAAc;IAC/B,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,OAAO;IAxB5B,OAAO,CAAC,KAAK,CAA+C;IAC5D,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,gBAAgB,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,8FAA8F;IAC9F,OAAO,CAAC,cAAc,CAAmC;IACzD,0GAA0G;IAC1G,OAAO,CAAC,aAAa,CAAQ;IAC7B,wFAAwF;IACxF,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAyB;IAC3D,yGAAyG;IACzG,OAAO,CAAC,oBAAoB,CAA6B;IACzD,sFAAsF;IACtF,OAAO,CAAC,SAAS,CAAS;IAE1B;;;;;OAKG;gBAEkB,cAAc,EAAE,eAAe,GAAG,CAAC,MAAM,eAAe,GAAG,IAAI,GAAG,SAAS,CAAC,GAAG,IAAI,GAAG,SAAS,EAC/F,QAAQ,EAAE,qBAAqB,EAC/B,OAAO,GAAE,gCAAqC;IAKnE,OAAO,KAAK,MAAM,GAEjB;IAED,uDAAuD;IACvD,IAAW,QAAQ,IAAI,MAAM,CAE5B;IAED,iFAAiF;IACjF,OAAO,CAAC,cAAc;IAQtB;;;;;;OAMG;IACH,OAAO,CAAC,gBAAgB;IAwBxB;;;;;;;;;;OAUG;IACI,iBAAiB,CAAC,OAAO,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI;IAWzD,+GAA+G;IAC/G,OAAO,CAAC,aAAa;IAgBrB,6CAA6C;IAC7C,OAAO,CAAC,eAAe;IAMvB,uEAAuE;IACvE,OAAO,CAAC,eAAe;IAUvB;;;;;;OAMG;IACI,QAAQ,IAAI,OAAO;IAQ1B;;;;;OAKG;IACI,KAAK,IAAI,OAAO;IAiBvB,2GAA2G;IAC3G,OAAO,CAAC,cAAc;IAUtB;;;;;OAKG;IACH,OAAO,CAAC,eAAe;IAYvB;;;;;;;OAOG;IACI,SAAS,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO;IAI7C;;;;;;OAMG;IACI,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,UAAO,GAAG,IAAI;IAK9D;;;;OAIG;YACW,SAAS;IAkBvB;;;OAGG;IACI,IAAI,IAAI,IAAI;IAYnB,qEAAqE;IACrE,IAAW,QAAQ,IAAI,OAAO,CAE7B;CACJ"}