@memberjunction/ai-realtime-client 5.48.0 → 5.50.0
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.
- package/README.md +11 -0
- package/dist/drivers/huggingFaceRealtimeClient.d.ts +27 -148
- package/dist/drivers/huggingFaceRealtimeClient.d.ts.map +1 -1
- package/dist/drivers/huggingFaceRealtimeClient.js +41 -388
- package/dist/drivers/huggingFaceRealtimeClient.js.map +1 -1
- package/dist/drivers/openAIRealtimeClient.d.ts +28 -270
- package/dist/drivers/openAIRealtimeClient.d.ts.map +1 -1
- package/dist/drivers/openAIRealtimeClient.js +42 -379
- package/dist/drivers/openAIRealtimeClient.js.map +1 -1
- package/dist/drivers/xaiRealtimeClient.d.ts +57 -370
- package/dist/drivers/xaiRealtimeClient.d.ts.map +1 -1
- package/dist/drivers/xaiRealtimeClient.js +85 -554
- package/dist/drivers/xaiRealtimeClient.js.map +1 -1
- package/dist/generic/openAIProtocolClient.d.ts +527 -0
- package/dist/generic/openAIProtocolClient.d.ts.map +1 -0
- package/dist/generic/openAIProtocolClient.js +873 -0
- package/dist/generic/openAIProtocolClient.js.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/package.json +3 -3
|
@@ -1,129 +1,5 @@
|
|
|
1
1
|
import { ClientRealtimeSessionConfig, JSONObject } from '@memberjunction/ai';
|
|
2
|
-
import {
|
|
3
|
-
/** Streaming delta of the assistant's spoken-text transcript.
|
|
4
|
-
* GA (gpt-realtime) emits `response.output_audio_transcript.delta`; the older beta
|
|
5
|
-
* emitted `response.audio_transcript.delta`. We accept both so captions populate
|
|
6
|
-
* regardless of the model generation. */
|
|
7
|
-
export interface OAIResponseAudioTranscriptDelta {
|
|
8
|
-
type: 'response.output_audio_transcript.delta' | 'response.audio_transcript.delta';
|
|
9
|
-
delta: string;
|
|
10
|
-
response_id?: string;
|
|
11
|
-
item_id?: string;
|
|
12
|
-
}
|
|
13
|
-
/** Final assistant transcript for a turn (GA or beta event name). */
|
|
14
|
-
export interface OAIResponseAudioTranscriptDone {
|
|
15
|
-
type: 'response.output_audio_transcript.done' | 'response.audio_transcript.done';
|
|
16
|
-
transcript: string;
|
|
17
|
-
response_id?: string;
|
|
18
|
-
item_id?: string;
|
|
19
|
-
}
|
|
20
|
-
/** Final transcription of the user's spoken input for a turn. */
|
|
21
|
-
export interface OAIInputAudioTranscriptionCompleted {
|
|
22
|
-
type: 'conversation.item.input_audio_transcription.completed';
|
|
23
|
-
transcript: string;
|
|
24
|
-
item_id?: string;
|
|
25
|
-
}
|
|
26
|
-
/** The model finished assembling a function (tool) call and wants it executed. */
|
|
27
|
-
export interface OAIFunctionCallArgumentsDone {
|
|
28
|
-
type: 'response.function_call_arguments.done';
|
|
29
|
-
call_id: string;
|
|
30
|
-
name: string;
|
|
31
|
-
/** JSON-encoded arguments. */
|
|
32
|
-
arguments: string;
|
|
33
|
-
}
|
|
34
|
-
/** The provider detected the user starting to speak (barge-in). */
|
|
35
|
-
export interface OAIInputAudioBufferSpeechStarted {
|
|
36
|
-
type: 'input_audio_buffer.speech_started';
|
|
37
|
-
}
|
|
38
|
-
/** A new response (turn) started — tracked so we never start a second overlapping response. */
|
|
39
|
-
export interface OAIResponseCreated {
|
|
40
|
-
type: 'response.created';
|
|
41
|
-
}
|
|
42
|
-
/**
|
|
43
|
-
* A full response (turn) completed — carries the GA usage payload for THIS response
|
|
44
|
-
* (`input_tokens` / `output_tokens` plus per-modality detail objects), i.e. per-response
|
|
45
|
-
* DELTAS, which is exactly the `OnUsage` contract shape.
|
|
46
|
-
*/
|
|
47
|
-
export interface OAIResponseDone {
|
|
48
|
-
type: 'response.done';
|
|
49
|
-
response?: {
|
|
50
|
-
usage?: {
|
|
51
|
-
input_tokens?: number;
|
|
52
|
-
output_tokens?: number;
|
|
53
|
-
[detail: string]: unknown;
|
|
54
|
-
};
|
|
55
|
-
};
|
|
56
|
-
}
|
|
57
|
-
/**
|
|
58
|
-
* WebRTC-only playback events: the client audio buffer started/stopped PLAYING.
|
|
59
|
-
* Critical distinction from response.done (generation finished): audio plays at
|
|
60
|
-
* realtime while generation runs ahead, so the model can be "idle" while speech
|
|
61
|
-
* is still audibly coming out of the speaker.
|
|
62
|
-
*/
|
|
63
|
-
export interface OAIOutputAudioBufferStarted {
|
|
64
|
-
type: 'output_audio_buffer.started';
|
|
65
|
-
}
|
|
66
|
-
export interface OAIOutputAudioBufferStopped {
|
|
67
|
-
type: 'output_audio_buffer.stopped' | 'output_audio_buffer.cleared';
|
|
68
|
-
}
|
|
69
|
-
/** Provider-side error frame. */
|
|
70
|
-
export interface OAIErrorEvent {
|
|
71
|
-
type: 'error';
|
|
72
|
-
error?: {
|
|
73
|
-
message?: string;
|
|
74
|
-
code?: string;
|
|
75
|
-
};
|
|
76
|
-
}
|
|
77
|
-
/** Events whose `type` we don't explicitly handle still parse to this shape. */
|
|
78
|
-
export interface OAIUnknownEvent {
|
|
79
|
-
type: string;
|
|
80
|
-
}
|
|
81
|
-
export type OpenAIRealtimeEvent = OAIResponseAudioTranscriptDelta | OAIResponseAudioTranscriptDone | OAIInputAudioTranscriptionCompleted | OAIFunctionCallArgumentsDone | OAIInputAudioBufferSpeechStarted | OAIResponseCreated | OAIResponseDone | OAIOutputAudioBufferStarted | OAIOutputAudioBufferStopped | OAIErrorEvent | OAIUnknownEvent;
|
|
82
|
-
/** Applies the server-built session config (instructions + tools) to the live session. */
|
|
83
|
-
export interface OAISessionUpdateEvent {
|
|
84
|
-
type: 'session.update';
|
|
85
|
-
session: JSONObject;
|
|
86
|
-
}
|
|
87
|
-
/** A user or system `message` conversation item. */
|
|
88
|
-
export interface OAIMessageItem {
|
|
89
|
-
type: 'message';
|
|
90
|
-
role: 'user' | 'system';
|
|
91
|
-
content: Array<{
|
|
92
|
-
type: 'input_text';
|
|
93
|
-
text: string;
|
|
94
|
-
}>;
|
|
95
|
-
}
|
|
96
|
-
/** The output of an executed function (tool) call, correlated by `call_id`. */
|
|
97
|
-
export interface OAIFunctionCallOutputItem {
|
|
98
|
-
type: 'function_call_output';
|
|
99
|
-
call_id: string;
|
|
100
|
-
output: string;
|
|
101
|
-
}
|
|
102
|
-
/** Creates a conversation item (message or tool output). */
|
|
103
|
-
export interface OAIConversationItemCreateEvent {
|
|
104
|
-
type: 'conversation.item.create';
|
|
105
|
-
item: OAIMessageItem | OAIFunctionCallOutputItem;
|
|
106
|
-
}
|
|
107
|
-
/** Asks the model to produce a response, optionally with one-off instructions. */
|
|
108
|
-
export interface OAIResponseCreateEvent {
|
|
109
|
-
type: 'response.create';
|
|
110
|
-
response?: {
|
|
111
|
-
instructions: string;
|
|
112
|
-
};
|
|
113
|
-
}
|
|
114
|
-
/** Cancels the model's in-flight response (generation stops; a response.done follows). */
|
|
115
|
-
export interface OAIResponseCancelEvent {
|
|
116
|
-
type: 'response.cancel';
|
|
117
|
-
}
|
|
118
|
-
/**
|
|
119
|
-
* WebRTC-only client event: stops + clears the provider-managed output audio buffer so
|
|
120
|
-
* already-generated speech stops playing immediately (the server replies with an
|
|
121
|
-
* `output_audio_buffer.cleared` frame). Sent on typed-message barge-in.
|
|
122
|
-
*/
|
|
123
|
-
export interface OAIOutputAudioBufferClearEvent {
|
|
124
|
-
type: 'output_audio_buffer.clear';
|
|
125
|
-
}
|
|
126
|
-
export type OpenAIRealtimeClientEvent = OAISessionUpdateEvent | OAIConversationItemCreateEvent | OAIResponseCreateEvent | OAIResponseCancelEvent | OAIOutputAudioBufferClearEvent;
|
|
2
|
+
import { OpenAIProtocolRealtimeClient, OpenAIProtocolClientEvent } from '../generic/openAIProtocolClient.js';
|
|
127
3
|
/** The subset of `RTCDataChannel` this client uses. */
|
|
128
4
|
export interface IRealtimeDataChannel {
|
|
129
5
|
/** The channel's connection state (`'open'` once usable). */
|
|
@@ -159,24 +35,21 @@ export interface IRealtimeAudioSink {
|
|
|
159
35
|
* server's `OpenAIRealtime` driver stamps on its `ClientRealtimeSessionConfig` — so hosts
|
|
160
36
|
* resolve it without referencing this class directly.
|
|
161
37
|
*
|
|
162
|
-
*
|
|
163
|
-
* -
|
|
164
|
-
*
|
|
165
|
-
* -
|
|
166
|
-
*
|
|
167
|
-
* -
|
|
168
|
-
* `
|
|
169
|
-
*
|
|
170
|
-
* -
|
|
171
|
-
* `'narration'` so its transcripts are emitted with `Kind: 'narration'` (ephemeral).
|
|
172
|
-
* - Audible-playback tracking ({@link IsAudioPlaying}) from `output_audio_buffer.*` events.
|
|
38
|
+
* The OpenAI-protocol brain (event translation, response state machine, narration-kind
|
|
39
|
+
* tagging, tool-result queueing, the outbound actions) lives in the shared
|
|
40
|
+
* {@link OpenAIProtocolRealtimeClient}; this class owns only the WebRTC transport:
|
|
41
|
+
* - Connect: mic tracks → peer connection, remote audio → hidden `<audio>` sink, the
|
|
42
|
+
* `'oai-events'` data channel, and the GA SDP handshake (see {@link performSdpHandshake}).
|
|
43
|
+
* - Audible-playback tracking ({@link IsAudioPlaying}) from the provider-managed
|
|
44
|
+
* `output_audio_buffer.*` events (this transport does NOT own playback — the peer
|
|
45
|
+
* connection plays the remote track).
|
|
46
|
+
* - The remote-stream APIs a host uses to mix the agent's voice into a recording.
|
|
173
47
|
*/
|
|
174
|
-
export declare class OpenAIRealtimeClient extends
|
|
48
|
+
export declare class OpenAIRealtimeClient extends OpenAIProtocolRealtimeClient {
|
|
175
49
|
private peerConnection;
|
|
176
50
|
/** Protected so test subclasses can inspect/inject; production code treats it as private. */
|
|
177
51
|
protected dataChannel: IRealtimeDataChannel | null;
|
|
178
52
|
private remoteAudioEl;
|
|
179
|
-
private micStream;
|
|
180
53
|
/**
|
|
181
54
|
* The AGENT's remote-audio stream, captured from the peer connection's `ontrack` event
|
|
182
55
|
* (see {@link attachRemoteAudio}). Exposed via {@link GetRemoteMediaStream} so a host can
|
|
@@ -190,41 +63,12 @@ export declare class OpenAIRealtimeClient extends BaseRealtimeClient {
|
|
|
190
63
|
* channel opens. Protected so test subclasses can seed it without a full Connect.
|
|
191
64
|
*/
|
|
192
65
|
protected sessionConfig: JSONObject | null;
|
|
193
|
-
/** Accumulates the in-flight assistant transcript across delta frames. */
|
|
194
|
-
private pendingAssistantText;
|
|
195
|
-
/** True while the model has a response in flight; gates narration + queues the tool result. */
|
|
196
|
-
private responseActive;
|
|
197
|
-
/** Set when a tool result is ready while a response is active; sent on the next response.done. */
|
|
198
|
-
private pendingResultResponse;
|
|
199
|
-
/**
|
|
200
|
-
* Set by {@link RequestSpokenUpdate} just before it sends its `response.create`, and
|
|
201
|
-
* CONSUMED by the very next `response.created` frame, which stamps
|
|
202
|
-
* {@link activeResponseKind} for that turn. Narration is only requested while the model
|
|
203
|
-
* is idle (hosts gate on {@link IsBusy}), so under normal ordering the next
|
|
204
|
-
* `response.created` is ours.
|
|
205
|
-
*/
|
|
206
|
-
private pendingNarrationKind;
|
|
207
|
-
/**
|
|
208
|
-
* The kind of the response currently in flight. Event ordering (confirmed against the
|
|
209
|
-
* live API): `response.created` → transcript deltas → `*_audio_transcript.done` →
|
|
210
|
-
* `response.done`. The transcript-done frame therefore arrives while the kind is still
|
|
211
|
-
* set, letting {@link onAssistantDone} classify the turn; `response.done` then resets
|
|
212
|
-
* the kind to `'normal'`.
|
|
213
|
-
*/
|
|
214
|
-
private activeResponseKind;
|
|
215
66
|
/**
|
|
216
67
|
* True while the model's audio is audibly PLAYING in the browser (WebRTC
|
|
217
|
-
* `output_audio_buffer` started/stopped). Distinct from
|
|
68
|
+
* `output_audio_buffer` started/stopped). Distinct from `responseActive` —
|
|
218
69
|
* generation finishes ahead of playback.
|
|
219
70
|
*/
|
|
220
71
|
private audioPlaying;
|
|
221
|
-
/**
|
|
222
|
-
* The client's own view of the session state — mirrors what {@link emitStateChange}
|
|
223
|
-
* last reported, EXCEPT after a tool call is emitted: the host typically shows its own
|
|
224
|
-
* busy state then, so the client silently leaves `'speaking'` (no emission) to preserve
|
|
225
|
-
* the host's indicator until the result reply starts (see {@link handleEvent}).
|
|
226
|
-
*/
|
|
227
|
-
private currentState;
|
|
228
72
|
/**
|
|
229
73
|
* Opens the client-direct OpenAI Realtime WebRTC connection: mic tracks onto a peer
|
|
230
74
|
* connection, a hidden remote-audio sink, the `'oai-events'` data channel, and the SDP
|
|
@@ -237,63 +81,22 @@ export declare class OpenAIRealtimeClient extends BaseRealtimeClient {
|
|
|
237
81
|
* response state machine, and emits a final `'closed'` (unless already `'error'`).
|
|
238
82
|
*/
|
|
239
83
|
Disconnect(): Promise<void>;
|
|
240
|
-
/**
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
*
|
|
245
|
-
* **SendText implies barge-in** (base-contract rule): an active spoken response is
|
|
246
|
-
* cancelled via {@link CancelActiveResponse} before the text is injected, so the typed
|
|
247
|
-
* turn takes the floor immediately instead of waiting behind stale speech. When nothing
|
|
248
|
-
* is active the cancel is a no-op and the reply triggers immediately.
|
|
249
|
-
*/
|
|
250
|
-
SendText(text: string): void;
|
|
84
|
+
/** @inheritdoc — events flow over the `'oai-events'` data channel once it is open. */
|
|
85
|
+
protected canSendEvents(): boolean;
|
|
86
|
+
/** @inheritdoc */
|
|
87
|
+
protected sendProtocolEvent(event: OpenAIProtocolClientEvent): void;
|
|
251
88
|
/**
|
|
252
89
|
* @inheritdoc
|
|
253
90
|
*
|
|
254
|
-
*
|
|
255
|
-
*
|
|
256
|
-
*
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
/**
|
|
264
|
-
* Injects a system-role context item the model can draw on the next time it speaks,
|
|
265
|
-
* WITHOUT forcing a reply.
|
|
266
|
-
*
|
|
267
|
-
* NOTE: role must be 'system' — gpt-realtime rejects 'developer' items
|
|
268
|
-
* ("Developer messages are only supported for quicksilver sessions").
|
|
269
|
-
*/
|
|
270
|
-
SendContextNote(text: string): void;
|
|
271
|
-
/**
|
|
272
|
-
* Triggers ONE short spoken update with the given instructions. Marks the upcoming
|
|
273
|
-
* response as `'narration'` (flag consumed by the next `response.created`) so its
|
|
274
|
-
* transcripts are emitted with `Kind: 'narration'` — ephemeral by contract. Sets
|
|
275
|
-
* {@link responseActive} eagerly so a tool result landing mid-narration queues
|
|
276
|
-
* instead of colliding.
|
|
277
|
-
*
|
|
278
|
-
* **Skips when busy** (base-contract collision rule — drivers MUST queue or skip):
|
|
279
|
-
* a `response.create` sent while a response is in flight would be rejected/garbled by
|
|
280
|
-
* the provider, and narration is disposable by contract, so the update is dropped with
|
|
281
|
-
* a debug log rather than queued to come out late and stale. Hosts SHOULD still gate
|
|
282
|
-
* on {@link IsBusy} / {@link IsAudioPlaying} for timing quality.
|
|
283
|
-
*/
|
|
284
|
-
RequestSpokenUpdate(instructions: string): void;
|
|
285
|
-
/**
|
|
286
|
-
* Sends the tool result back as a `function_call_output` conversation item, then
|
|
287
|
-
* triggers a reply — immediately if the model is idle, otherwise queued until the
|
|
288
|
-
* current response (e.g. a progress narration) finishes. Without the queueing the
|
|
289
|
-
* result's `response.create` would collide with an in-flight narration and be dropped,
|
|
290
|
-
* leaving the model silent when delegated work comes back.
|
|
291
|
-
*/
|
|
292
|
-
SendToolResult(callID: string, outputJson: string): void;
|
|
293
|
-
/** Mute / unmute by toggling the mic tracks' `enabled` flag (transport stays up). */
|
|
294
|
-
SetMuted(muted: boolean): void;
|
|
295
|
-
/** @inheritdoc */
|
|
296
|
-
get IsBusy(): boolean;
|
|
91
|
+
* This transport does NOT own playback (the peer connection plays the remote track), so a
|
|
92
|
+
* cancel asks the provider to stop + clear its managed output buffer via the WebRTC-only
|
|
93
|
+
* `output_audio_buffer.clear` client event — sent only when audio is audibly playing.
|
|
94
|
+
*/
|
|
95
|
+
protected stopAudioOutput(): void;
|
|
96
|
+
/** @inheritdoc — provider-managed playback started. */
|
|
97
|
+
protected onOutputAudioBufferStarted(): void;
|
|
98
|
+
/** @inheritdoc — provider-managed playback stopped/cleared. */
|
|
99
|
+
protected onOutputAudioBufferStopped(): void;
|
|
297
100
|
/** @inheritdoc */
|
|
298
101
|
get IsAudioPlaying(): boolean;
|
|
299
102
|
/** Creates the peer connection. Production returns a real `RTCPeerConnection`. */
|
|
@@ -336,8 +139,9 @@ export declare class OpenAIRealtimeClient extends BaseRealtimeClient {
|
|
|
336
139
|
private invokeRemoteStreamHandler;
|
|
337
140
|
/**
|
|
338
141
|
* Adopts + wires the events data channel: applies the session config and reports
|
|
339
|
-
* `'listening'` on open; translates inbound frames
|
|
340
|
-
* Protected so test subclasses can inject a fake
|
|
142
|
+
* `'listening'` on open; translates inbound frames through the shared protocol brain;
|
|
143
|
+
* reports transport errors / closure. Protected so test subclasses can inject a fake
|
|
144
|
+
* channel directly.
|
|
341
145
|
*/
|
|
342
146
|
protected adoptDataChannel(channel: IRealtimeDataChannel): void;
|
|
343
147
|
/** Performs the offer/answer SDP exchange (POST seam: {@link postSdpOffer}). */
|
|
@@ -349,52 +153,6 @@ export declare class OpenAIRealtimeClient extends BaseRealtimeClient {
|
|
|
349
153
|
* already logged that; sending an EMPTY `session.update` would be wrong).
|
|
350
154
|
*/
|
|
351
155
|
private applySessionConfig;
|
|
352
|
-
/** Parses an inbound channel message and dispatches it to the typed handler. */
|
|
353
|
-
private handleChannelMessage;
|
|
354
|
-
/** Dispatches a typed OpenAI realtime server event to the appropriate behavior. */
|
|
355
|
-
private handleEvent;
|
|
356
|
-
/** Appends an assistant transcript delta, reflects `'speaking'`, and emits the delta. */
|
|
357
|
-
private onAssistantDelta;
|
|
358
|
-
/**
|
|
359
|
-
* Finalizes the assistant turn: emits the final transcript tagged with the ACTIVE
|
|
360
|
-
* response kind (the transcript-done frame arrives BEFORE `response.done`, so
|
|
361
|
-
* {@link activeResponseKind} still reflects this turn), then returns to `'listening'`.
|
|
362
|
-
* Empty turns emit nothing.
|
|
363
|
-
*/
|
|
364
|
-
private onAssistantDone;
|
|
365
|
-
/** Emits the final transcription of the user's spoken input (always `Kind: 'normal'`). */
|
|
366
|
-
private onUserTranscript;
|
|
367
|
-
/**
|
|
368
|
-
* Surfaces a completed tool call to the host. The client silently leaves the
|
|
369
|
-
* `'speaking'` state (NO emission) so a host-rendered busy indicator (e.g. "thinking")
|
|
370
|
-
* isn't clobbered by this turn's trailing `response.done` / playback-stopped frames —
|
|
371
|
-
* those only transition when the client still considers itself `'speaking'`.
|
|
372
|
-
*/
|
|
373
|
-
private onToolCallFrame;
|
|
374
|
-
/**
|
|
375
|
-
* Emits the completed response's usage to the host as a DELTA (the GA `response.done`
|
|
376
|
-
* usage payload covers exactly this response, so it is already incremental — the
|
|
377
|
-
* `OnUsage` contract's preferred shape). Frames without a usage payload emit nothing.
|
|
378
|
-
*/
|
|
379
|
-
private emitResponseUsage;
|
|
380
|
-
/** Surfaces a provider error frame (non-fatal; the session continues). */
|
|
381
|
-
private onErrorFrame;
|
|
382
|
-
/**
|
|
383
|
-
* Asks the model to speak (a tool result or typed-text reply) — immediately if it's
|
|
384
|
-
* idle, otherwise queued until the current response finishes. An immediate trigger
|
|
385
|
-
* also CONSUMES any queued trigger debt: every payload item is already in the
|
|
386
|
-
* conversation, so one `response.create` voices everything (e.g. typed text barging
|
|
387
|
-
* in over a narration that had tool results queued behind it).
|
|
388
|
-
*/
|
|
389
|
-
private requestResultResponse;
|
|
390
|
-
/** On a turn completing, fire any queued tool-result response so the answer is spoken. */
|
|
391
|
-
private flushPendingResultResponse;
|
|
392
|
-
/** Resets the per-session response state machine (used on Disconnect). */
|
|
393
|
-
private resetResponseState;
|
|
394
|
-
/** Updates the client's own state view and emits the change to the host. */
|
|
395
|
-
private setState;
|
|
396
|
-
/** Serializes + sends a client event over the data channel (only when open). */
|
|
397
|
-
private sendEvent;
|
|
398
156
|
}
|
|
399
157
|
/**
|
|
400
158
|
* Tree-shaking prevention: bundlers cannot see that {@link OpenAIRealtimeClient} is
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openAIRealtimeClient.d.ts","sourceRoot":"","sources":["../../src/drivers/openAIRealtimeClient.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,2BAA2B,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"openAIRealtimeClient.d.ts","sourceRoot":"","sources":["../../src/drivers/openAIRealtimeClient.ts"],"names":[],"mappings":"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"}
|