@memberjunction/ai-realtime-client 0.0.1 → 5.42.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 +148 -28
- package/dist/audio/audioMeter.d.ts +101 -0
- package/dist/audio/audioMeter.d.ts.map +1 -0
- package/dist/audio/audioMeter.js +193 -0
- package/dist/audio/audioMeter.js.map +1 -0
- package/dist/audio/micCapture.d.ts +26 -0
- package/dist/audio/micCapture.d.ts.map +1 -0
- package/dist/audio/micCapture.js +69 -0
- package/dist/audio/micCapture.js.map +1 -0
- package/dist/audio/pcmPlayback.d.ts +73 -0
- package/dist/audio/pcmPlayback.d.ts.map +1 -0
- package/dist/audio/pcmPlayback.js +78 -0
- package/dist/audio/pcmPlayback.js.map +1 -0
- package/dist/audio/pcmUtils.d.ts +17 -0
- package/dist/audio/pcmUtils.d.ts.map +1 -0
- package/dist/audio/pcmUtils.js +46 -0
- package/dist/audio/pcmUtils.js.map +1 -0
- package/dist/drivers/assemblyAIRealtimeClient.d.ts +384 -0
- package/dist/drivers/assemblyAIRealtimeClient.d.ts.map +1 -0
- package/dist/drivers/assemblyAIRealtimeClient.js +732 -0
- package/dist/drivers/assemblyAIRealtimeClient.js.map +1 -0
- package/dist/drivers/elevenLabsRealtimeClient.d.ts +362 -0
- package/dist/drivers/elevenLabsRealtimeClient.d.ts.map +1 -0
- package/dist/drivers/elevenLabsRealtimeClient.js +686 -0
- package/dist/drivers/elevenLabsRealtimeClient.js.map +1 -0
- package/dist/drivers/geminiRealtimeClient.d.ts +406 -0
- package/dist/drivers/geminiRealtimeClient.d.ts.map +1 -0
- package/dist/drivers/geminiRealtimeClient.js +675 -0
- package/dist/drivers/geminiRealtimeClient.js.map +1 -0
- package/dist/drivers/openAIRealtimeClient.d.ts +381 -0
- package/dist/drivers/openAIRealtimeClient.d.ts.map +1 -0
- package/dist/drivers/openAIRealtimeClient.js +602 -0
- package/dist/drivers/openAIRealtimeClient.js.map +1 -0
- package/dist/drivers/xaiRealtimeClient.d.ts +430 -0
- package/dist/drivers/xaiRealtimeClient.d.ts.map +1 -0
- package/dist/drivers/xaiRealtimeClient.js +676 -0
- package/dist/drivers/xaiRealtimeClient.js.map +1 -0
- package/dist/generic/baseRealtimeClient.d.ts +401 -0
- package/dist/generic/baseRealtimeClient.d.ts.map +1 -0
- package/dist/generic/baseRealtimeClient.js +226 -0
- package/dist/generic/baseRealtimeClient.js.map +1 -0
- package/dist/index.d.ts +11 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +11 -0
- package/dist/index.js.map +1 -0
- package/package.json +28 -7
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"assemblyAIRealtimeClient.js","sourceRoot":"","sources":["../../src/drivers/assemblyAIRealtimeClient.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,362 @@
|
|
|
1
|
+
import { ClientRealtimeSessionConfig, JSONObject, JSONValue } from '@memberjunction/ai';
|
|
2
|
+
import { BaseRealtimeClient } from '../generic/baseRealtimeClient.js';
|
|
3
|
+
import { IRealtimePcmPlayback } from '../audio/pcmPlayback.js';
|
|
4
|
+
import { IPcmMicCapture } from '../audio/micCapture.js';
|
|
5
|
+
/** A parsed inbound websocket frame. The Agents protocol multiplexes on `type`. */
|
|
6
|
+
export interface ElevenLabsServerEvent {
|
|
7
|
+
type?: string;
|
|
8
|
+
conversation_initiation_metadata_event?: {
|
|
9
|
+
conversation_id?: string;
|
|
10
|
+
agent_output_audio_format?: string;
|
|
11
|
+
user_input_audio_format?: string;
|
|
12
|
+
};
|
|
13
|
+
audio_event?: {
|
|
14
|
+
audio_base_64?: string;
|
|
15
|
+
event_id?: number;
|
|
16
|
+
};
|
|
17
|
+
user_transcription_event?: {
|
|
18
|
+
user_transcript?: string;
|
|
19
|
+
};
|
|
20
|
+
agent_response_event?: {
|
|
21
|
+
agent_response?: string;
|
|
22
|
+
};
|
|
23
|
+
agent_response_correction_event?: {
|
|
24
|
+
original_agent_response?: string;
|
|
25
|
+
corrected_agent_response?: string;
|
|
26
|
+
};
|
|
27
|
+
client_tool_call?: {
|
|
28
|
+
tool_name?: string;
|
|
29
|
+
tool_call_id?: string;
|
|
30
|
+
parameters?: JSONObject;
|
|
31
|
+
};
|
|
32
|
+
interruption_event?: {
|
|
33
|
+
event_id?: number;
|
|
34
|
+
};
|
|
35
|
+
ping_event?: {
|
|
36
|
+
event_id?: number;
|
|
37
|
+
ping_ms?: number;
|
|
38
|
+
};
|
|
39
|
+
vad_score_event?: {
|
|
40
|
+
vad_score?: number;
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* The minimal websocket surface this client depends on: assignable lifecycle handlers plus
|
|
45
|
+
* `send`/`close`. Declaring the seam as an interface (rather than the platform `WebSocket`)
|
|
46
|
+
* lets unit tests inject a fully in-memory fake that captures outbound frames and drives the
|
|
47
|
+
* handlers with ElevenLabs-shaped events — no websocket, no network.
|
|
48
|
+
*/
|
|
49
|
+
export interface IElevenLabsClientSocket {
|
|
50
|
+
/** Invoked once the socket is open. */
|
|
51
|
+
onopen: (() => void) | null;
|
|
52
|
+
/** Invoked with each inbound frame's raw string payload. */
|
|
53
|
+
onmessage: ((data: string) => void) | null;
|
|
54
|
+
/** Invoked on a socket-level error (fatal). */
|
|
55
|
+
onerror: ((message: string) => void) | null;
|
|
56
|
+
/** Invoked when the socket closes (any reason). */
|
|
57
|
+
onclose: (() => void) | null;
|
|
58
|
+
/** Sends one JSON-serialized client frame. */
|
|
59
|
+
send(data: string): void;
|
|
60
|
+
/** Terminates the underlying connection. */
|
|
61
|
+
close(): void;
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* ElevenLabs Agents implementation of {@link BaseRealtimeClient}: a **browser-direct**
|
|
65
|
+
* conversation websocket authenticated with the server-minted SIGNED URL (the
|
|
66
|
+
* `EphemeralToken` IS the `wss://…&token=…` URL — no API key ever reaches the browser).
|
|
67
|
+
*
|
|
68
|
+
* Registered with the ClassFactory under the key `'elevenlabs'` — the `Provider` string the
|
|
69
|
+
* server's `ElevenLabsRealtime` driver stamps on its `ClientRealtimeSessionConfig`.
|
|
70
|
+
*
|
|
71
|
+
* Owns ALL ElevenLabs wire concerns (the behavioral twin of the Gemini client driver — the
|
|
72
|
+
* audio plane is client-owned over a websocket, no WebRTC):
|
|
73
|
+
* - **Connect handshake**: open the signed-URL socket → send
|
|
74
|
+
* `conversation_initiation_client_data` carrying the server-authored prompt override (from
|
|
75
|
+
* the `SessionConfig` pact) → wait for `conversation_initiation_metadata` → negotiate the
|
|
76
|
+
* PCM rates from `user_input_audio_format` / `agent_output_audio_format` → build the audio
|
|
77
|
+
* plane → `'listening'`. The state is gated on the metadata (driver obligation #7): only
|
|
78
|
+
* then has the platform confirmed the session — including the per-session system prompt —
|
|
79
|
+
* is applied.
|
|
80
|
+
* - **Audio in**: mic PCM16 at the negotiated input rate via the shared
|
|
81
|
+
* {@link createPcmMicCapture} worklet pipeline, streamed as base64 `user_audio_chunk`
|
|
82
|
+
* frames (note: a bare-key frame, not a `type`d one — that is the wire contract).
|
|
83
|
+
* - **Audio out**: `audio` events decoded into the shared {@link RealtimePcmPlayback} at the
|
|
84
|
+
* negotiated output rate; {@link IsAudioPlaying} comes from its playout clock.
|
|
85
|
+
* - **Transcripts are FINAL-only**: the Agents socket emits whole-utterance
|
|
86
|
+
* `user_transcript` / `agent_response` events (no interim deltas), so every transcript this
|
|
87
|
+
* driver emits has `IsFinal: true`. `agent_response_correction` (post-barge-in truncation)
|
|
88
|
+
* re-finalizes the assistant turn with the text that was ACTUALLY spoken — hosts persisting
|
|
89
|
+
* transcripts should treat a final assistant transcript arriving right after an
|
|
90
|
+
* interruption as the authoritative replacement of the previous one.
|
|
91
|
+
* - **Busy mapping**: `IsBusy` is set on the first `audio` / `agent_response` of a turn (and
|
|
92
|
+
* eagerly when this client triggers a response) and cleared on `agent_response_complete`,
|
|
93
|
+
* on `interruption`, and on a `client_tool_call` frame (the agent has yielded the floor
|
|
94
|
+
* pending the result — deadlock guard, obligation #2).
|
|
95
|
+
* - **Narration**: ElevenLabs has no per-response-instructions channel, so
|
|
96
|
+
* {@link RequestSpokenUpdate} is EMULATED Gemini-style — the instructions ride as a
|
|
97
|
+
* `user_message` and the response kind is stamped `'narration'` AT SEND TIME (sends are the
|
|
98
|
+
* turn triggers; there is no `response.created`-style confirmation frame to stamp on), then
|
|
99
|
+
* reset on the response boundary. Fidelity caveat: the instruction enters the conversation
|
|
100
|
+
* as a user turn, so the agent may occasionally reference it; hosts should phrase narration
|
|
101
|
+
* instructions accordingly.
|
|
102
|
+
* - **Cancel**: the protocol has no server-side cancel frame. {@link CancelActiveResponse}
|
|
103
|
+
* flushes the locally-owned playout queue (speech stops immediately) and marks the response
|
|
104
|
+
* inactive; residual server-side generation for a cancelled turn is simply not played.
|
|
105
|
+
* Spoken barge-in is handled by the platform's own VAD (which emits `interruption`), and a
|
|
106
|
+
* typed {@link SendText} takes the floor server-side as a fresh user turn.
|
|
107
|
+
* - **No usage telemetry**: the Conversational AI socket exposes no token-usage events, so
|
|
108
|
+
* this driver NEVER emits {@link OnUsage} (registering a handler is safe; it just never
|
|
109
|
+
* fires — usage accounting for ElevenLabs sessions happens platform-side).
|
|
110
|
+
*/
|
|
111
|
+
export declare class ElevenLabsRealtimeClient extends BaseRealtimeClient {
|
|
112
|
+
private socket;
|
|
113
|
+
private micStream;
|
|
114
|
+
private micCapture;
|
|
115
|
+
private playback;
|
|
116
|
+
/** True while an agent response is in flight; gates (queues) client-triggered sends. */
|
|
117
|
+
private responseActive;
|
|
118
|
+
/** The kind of the response currently in flight; stamped at send time, reset on boundary. */
|
|
119
|
+
private activeResponseKind;
|
|
120
|
+
/** Sends deferred while a response is in flight; drained in order at the next boundary. */
|
|
121
|
+
private queuedSends;
|
|
122
|
+
/**
|
|
123
|
+
* Nudge guard for tool results delivered AFTER the platform closed the turn (a long
|
|
124
|
+
* delegation outlasting the agent's last utterance): {@link sendToolResultFrame}
|
|
125
|
+
* optimistically marks a response active, but if NO model output actually arrives within
|
|
126
|
+
* this window, the platform has silently absorbed the result — the timer fires a
|
|
127
|
+
* user_message nudge so the outcome is always voiced (live finding).
|
|
128
|
+
*/
|
|
129
|
+
private toolResultNudgeTimer;
|
|
130
|
+
/**
|
|
131
|
+
* Tool calls awaiting their result — used to make {@link SendToolResult} EXACTLY-ONCE:
|
|
132
|
+
* the id is consumed when the result is accepted (queued or sent), so a duplicate send
|
|
133
|
+
* for the same call is dropped with a warning instead of confusing the conversation.
|
|
134
|
+
*/
|
|
135
|
+
private pendingToolCallIds;
|
|
136
|
+
/** True once Disconnect ran — an expected socket close must not surface as fatal. */
|
|
137
|
+
private closedByConsumer;
|
|
138
|
+
/**
|
|
139
|
+
* The client's own view of the session state — mirrors what was last emitted, EXCEPT after
|
|
140
|
+
* a tool call: the host typically shows its own busy indicator then, so the client silently
|
|
141
|
+
* leaves `'speaking'` (no emission) until the result reply's first output re-asserts it.
|
|
142
|
+
*/
|
|
143
|
+
private currentState;
|
|
144
|
+
/**
|
|
145
|
+
* Opens the client-direct conversation: socket to the signed URL, the initiation frame
|
|
146
|
+
* carrying the server-authored prompt override, then — once the metadata confirms the
|
|
147
|
+
* session config is applied — the audio plane at the NEGOTIATED sample rates. Reports
|
|
148
|
+
* `'listening'` only after all of that (obligation #7).
|
|
149
|
+
*/
|
|
150
|
+
Connect(config: ClientRealtimeSessionConfig, micStream: MediaStream): Promise<void>;
|
|
151
|
+
/**
|
|
152
|
+
* Tears down the socket, mic capture, mic tracks, and playout engine, resets the response
|
|
153
|
+
* state machine, and emits a final `'closed'` (unless already `'error'`). Safe to call
|
|
154
|
+
* more than once.
|
|
155
|
+
*/
|
|
156
|
+
Disconnect(): Promise<void>;
|
|
157
|
+
/**
|
|
158
|
+
* Injects typed text as a `user_message` (the platform's "respond to this" trigger).
|
|
159
|
+
* No-op when the session is not open.
|
|
160
|
+
*
|
|
161
|
+
* **SendText implies barge-in** (base-contract rule): an active spoken response is
|
|
162
|
+
* cancelled via {@link CancelActiveResponse} first — playback flushed, response marked
|
|
163
|
+
* inactive, queued sends drained — so the typed turn takes the floor immediately. If a
|
|
164
|
+
* drained queued send (e.g. a pending tool result) starts a new response, the text queues
|
|
165
|
+
* behind it, preserving the tool-result delivery invariant. Server-side the fresh user
|
|
166
|
+
* turn takes the floor on its own; no explicit cancel frame exists or is needed.
|
|
167
|
+
*/
|
|
168
|
+
SendText(text: string): void;
|
|
169
|
+
/**
|
|
170
|
+
* @inheritdoc
|
|
171
|
+
*
|
|
172
|
+
* ElevenLabs has no cancel frame — the client OWNS the audio plane, so cancelling means:
|
|
173
|
+
* flush the local playout queue (speech stops immediately), mark the in-flight response
|
|
174
|
+
* inactive, and drain queued sends (a queued tool result takes the floor next — delivery
|
|
175
|
+
* is never dropped by a cancel). Residual server-side generation for the cancelled turn is
|
|
176
|
+
* simply never played; the platform's own VAD handles SPOKEN barge-in (emitting
|
|
177
|
+
* `interruption`). No-op when nothing is active.
|
|
178
|
+
*/
|
|
179
|
+
CancelActiveResponse(): void;
|
|
180
|
+
/**
|
|
181
|
+
* Injects background context via `contextual_update` — NATIVE on this provider: the
|
|
182
|
+
* platform's purpose-built non-interrupting context channel. Sent immediately even while
|
|
183
|
+
* a response is in flight (the platform guarantees it never triggers or disturbs
|
|
184
|
+
* generation), so unlike the Gemini driver no queueing applies.
|
|
185
|
+
*/
|
|
186
|
+
SendContextNote(text: string): void;
|
|
187
|
+
/**
|
|
188
|
+
* Triggers ONE short spoken update. EMULATED as a `user_message` carrying the
|
|
189
|
+
* instructions, with the resulting response stamped `Kind: 'narration'` at send time
|
|
190
|
+
* (reset on the response boundary) — see the class-level fidelity caveat. Queued behind
|
|
191
|
+
* any in-flight response (a `user_message` sent mid-response would barge in on it), per
|
|
192
|
+
* the base contract's collision rule.
|
|
193
|
+
*/
|
|
194
|
+
RequestSpokenUpdate(instructions: string): void;
|
|
195
|
+
/**
|
|
196
|
+
* Feeds an executed tool's result back via `client_tool_result`, correlated by the
|
|
197
|
+
* platform's `tool_call_id`. EXACTLY-ONCE: the pending id is consumed when the result is
|
|
198
|
+
* accepted, and a duplicate (or unknown) callID is dropped with a warning. Sent
|
|
199
|
+
* immediately when idle — the platform speaks the result as the turn's continuation —
|
|
200
|
+
* otherwise queued behind the in-flight response (e.g. a progress narration) so the
|
|
201
|
+
* trigger is never lost.
|
|
202
|
+
*/
|
|
203
|
+
SendToolResult(callID: string, outputJson: string): void;
|
|
204
|
+
/**
|
|
205
|
+
* Mutes / unmutes by toggling the mic tracks' `enabled` flag: the capture pipeline stays
|
|
206
|
+
* up and streams SILENCE while muted (the provider's VAD sees a continuous stream and the
|
|
207
|
+
* un-mute is glitch-free — same policy as the OpenAI and Gemini client drivers).
|
|
208
|
+
*/
|
|
209
|
+
SetMuted(muted: boolean): void;
|
|
210
|
+
/** @inheritdoc */
|
|
211
|
+
get IsBusy(): boolean;
|
|
212
|
+
/**
|
|
213
|
+
* @inheritdoc
|
|
214
|
+
*
|
|
215
|
+
* Computed directly from the playout engine's playhead clock — this client OWNS the
|
|
216
|
+
* output buffer, so "audibly playing" is precisely "scheduled audio extends beyond the
|
|
217
|
+
* audio context's current time".
|
|
218
|
+
*/
|
|
219
|
+
get IsAudioPlaying(): boolean;
|
|
220
|
+
/**
|
|
221
|
+
* Creation seam for the conversation websocket. Production wraps the platform-global
|
|
222
|
+
* `WebSocket` opened against the signed URL; unit tests override this to return an
|
|
223
|
+
* in-memory fake. Handlers are attached by {@link Connect} AFTER this returns, so the
|
|
224
|
+
* implementation must not require them at construction time.
|
|
225
|
+
*/
|
|
226
|
+
protected createSocket(signedUrl: string): IElevenLabsClientSocket;
|
|
227
|
+
/**
|
|
228
|
+
* Creation seam for the mic-capture pipeline at the NEGOTIATED input rate. Production
|
|
229
|
+
* delegates to the shared {@link createPcmMicCapture}; unit tests override this with a
|
|
230
|
+
* no-op fake (and may capture `onPcmChunk` to simulate mic frames).
|
|
231
|
+
*/
|
|
232
|
+
protected createMicCapture(micStream: MediaStream, sampleRate: number, onPcmChunk: (base64Pcm16: string) => void): Promise<IPcmMicCapture>;
|
|
233
|
+
/**
|
|
234
|
+
* Creation seam for the playout engine at the NEGOTIATED output rate. Production returns
|
|
235
|
+
* the shared {@link RealtimePcmPlayback}.
|
|
236
|
+
*/
|
|
237
|
+
protected createPlayback(sampleRate: number): IRealtimePcmPlayback;
|
|
238
|
+
/** Resolver for the in-flight Connect's metadata wait (null outside Connect). */
|
|
239
|
+
private onInitiationMetadata;
|
|
240
|
+
/**
|
|
241
|
+
* Extracts the wire-shaped `conversation_config_override` from the server-minted
|
|
242
|
+
* `SessionConfig` pact (`{ agentId, overrides, config }` — authored by the server's
|
|
243
|
+
* `ElevenLabsRealtime.CreateClientSession`). Falls back to an empty override when absent
|
|
244
|
+
* (the managed agent then runs on its stored base prompt).
|
|
245
|
+
*/
|
|
246
|
+
private parseOverrides;
|
|
247
|
+
/**
|
|
248
|
+
* Parses a `pcm_<rate>` audio-format tag from the initiation metadata. Non-PCM formats
|
|
249
|
+
* (e.g. `ulaw_8000` — a telephony-only configuration) are not playable/encodable by the
|
|
250
|
+
* shared PCM pipeline; the driver warns and falls back to the platform default so the
|
|
251
|
+
* session degrades loudly rather than throwing.
|
|
252
|
+
*/
|
|
253
|
+
static ParsePcmRate(format: string | undefined, direction: 'input' | 'output'): number;
|
|
254
|
+
/** Streams one base64 PCM16 mic chunk as a bare-key `user_audio_chunk` frame. */
|
|
255
|
+
private sendMicChunk;
|
|
256
|
+
/** Surfaces a fatal socket error and marks the session unusable (obligation #6). */
|
|
257
|
+
private handleSocketError;
|
|
258
|
+
/**
|
|
259
|
+
* A socket close the CONSUMER didn't ask for is fatal: ElevenLabs hard-closes at signed-URL
|
|
260
|
+
* expiry and when the agent itself ends the conversation, so an unexpected close is how
|
|
261
|
+
* credential / conversation death reaches the host (obligation #6).
|
|
262
|
+
*/
|
|
263
|
+
private handleSocketClose;
|
|
264
|
+
/** Parses one raw socket payload; non-JSON frames are ignored. */
|
|
265
|
+
private handleSocketMessage;
|
|
266
|
+
/** Multiplexes one inbound frame to the focused per-concern handlers. */
|
|
267
|
+
private handleServerEvent;
|
|
268
|
+
/** Decodes one base64 model-audio frame into the playout queue and marks generation live. */
|
|
269
|
+
private handleAudio;
|
|
270
|
+
/** User transcript: whole-utterance FINAL (this provider emits no interim deltas). */
|
|
271
|
+
private handleUserTranscript;
|
|
272
|
+
/**
|
|
273
|
+
* Agent response: the turn's complete text, emitted FINAL with the ACTIVE response kind so
|
|
274
|
+
* narration turns are tagged correctly (stamp-at-send — see the class doc).
|
|
275
|
+
*/
|
|
276
|
+
private handleAgentResponse;
|
|
277
|
+
/**
|
|
278
|
+
* Post-barge-in correction: re-finalizes the assistant turn with the text that was
|
|
279
|
+
* ACTUALLY spoken before the interruption cut it off. Emitted as a fresh FINAL assistant
|
|
280
|
+
* transcript, `Kind: 'normal'` (the interruption already reset the response kind; a
|
|
281
|
+
* truncated narration's correction is still just what was audibly said) — stamped
|
|
282
|
+
* {@link RealtimeClientTranscript.ReplacesPrevious} so hosts UPDATE the superseded turn
|
|
283
|
+
* in place instead of persisting both (closes the §10 "Transcript `Replaces` marker" gap).
|
|
284
|
+
*/
|
|
285
|
+
private handleAgentResponseCorrection;
|
|
286
|
+
/**
|
|
287
|
+
* Response boundary: release the busy lock, reset the response kind, drain queued sends
|
|
288
|
+
* (stopping at the first one that starts a new response), and return the floor.
|
|
289
|
+
*/
|
|
290
|
+
private handleResponseComplete;
|
|
291
|
+
/**
|
|
292
|
+
* Surfaces the agent's tool call to the host. Two deliberate behaviors mirror the other
|
|
293
|
+
* drivers: (1) the client silently leaves `'speaking'` (no emission) so a host-rendered
|
|
294
|
+
* busy indicator isn't clobbered by the turn's trailing frames (obligation #1); (2)
|
|
295
|
+
* `responseActive` is CLEARED — the agent has yielded the floor pending the result, so a
|
|
296
|
+
* queued send can never deadlock (obligation #2). The queue is NOT drained here: a queued
|
|
297
|
+
* narration must not inject a user turn between the tool call and its result.
|
|
298
|
+
*/
|
|
299
|
+
private handleClientToolCall;
|
|
300
|
+
/**
|
|
301
|
+
* True barge-in: the platform's VAD detected the user cutting off active agent output
|
|
302
|
+
* (ElevenLabs only emits `interruption` for actual barge-ins, but the emission is still
|
|
303
|
+
* gated on something genuinely being active — a spurious frame while idle is NOT an
|
|
304
|
+
* interruption per the base contract). Flush playout, surface it, reset the response
|
|
305
|
+
* machine, give the floor back. The queue is NOT drained — the user has the floor; queued
|
|
306
|
+
* sends flush at the next response boundary.
|
|
307
|
+
*/
|
|
308
|
+
private handleInterruption;
|
|
309
|
+
/**
|
|
310
|
+
* First model output of a response (audio or the response text): the agent is busy and
|
|
311
|
+
* the client is audibly / imminently `'speaking'`.
|
|
312
|
+
*/
|
|
313
|
+
private markGenerationStarted;
|
|
314
|
+
/**
|
|
315
|
+
* Runs a send immediately when no response is in flight; otherwise queues it for the next
|
|
316
|
+
* boundary (`agent_response_complete`). A `user_message` sent mid-response barges in on
|
|
317
|
+
* it, so deferral is the safe default — mirroring the Gemini driver's rule.
|
|
318
|
+
*/
|
|
319
|
+
private enqueueOrRun;
|
|
320
|
+
/**
|
|
321
|
+
* Drains queued sends in order at a response boundary, stopping as soon as one starts a
|
|
322
|
+
* new response (sets {@link responseActive}) — the rest wait for that response to finish.
|
|
323
|
+
*/
|
|
324
|
+
private flushQueuedSends;
|
|
325
|
+
/**
|
|
326
|
+
* Sends a `user_message` that triggers a response, stamping the upcoming response's kind
|
|
327
|
+
* at send time and eagerly marking the agent busy. `emitSpeaking` mirrors the other
|
|
328
|
+
* drivers: typed text reflects `'speaking'` immediately; narration waits for the first
|
|
329
|
+
* model output.
|
|
330
|
+
*/
|
|
331
|
+
private sendUserMessage;
|
|
332
|
+
/**
|
|
333
|
+
* Sends the `client_tool_result` frame (the platform speaks the result as the turn's
|
|
334
|
+
* continuation — no explicit generation trigger exists or is needed) and eagerly marks
|
|
335
|
+
* the agent busy so a queued narration can't slip in before the spoken result.
|
|
336
|
+
*/
|
|
337
|
+
private sendToolResultFrame;
|
|
338
|
+
/** How long to wait for real model output after a tool result before nudging. */
|
|
339
|
+
private static readonly ToolResultNudgeMs;
|
|
340
|
+
/** Arms the absorbed-tool-result nudge (see {@link toolResultNudgeTimer}). */
|
|
341
|
+
private armToolResultNudge;
|
|
342
|
+
/** Cancels the nudge — real model output arrived (or the session is resetting). */
|
|
343
|
+
private cancelToolResultNudge;
|
|
344
|
+
/**
|
|
345
|
+
* Parses a JSON-stringified tool result into a structured value for the `result` slot,
|
|
346
|
+
* falling back to the raw string so a free-text result still round-trips.
|
|
347
|
+
*/
|
|
348
|
+
static ParseToolOutput(output: string): JSONValue;
|
|
349
|
+
/** JSON-serializes and sends one client frame (no-op once the socket is gone). */
|
|
350
|
+
private sendFrame;
|
|
351
|
+
/** Resets the per-session response state machine (used on Disconnect). */
|
|
352
|
+
private resetResponseState;
|
|
353
|
+
/** Updates the client's own state view and emits the change to the host. */
|
|
354
|
+
private setState;
|
|
355
|
+
}
|
|
356
|
+
/**
|
|
357
|
+
* Tree-shaking prevention: bundlers cannot see that {@link ElevenLabsRealtimeClient} is
|
|
358
|
+
* instantiated dynamically through the ClassFactory, so a consumer must call this no-op
|
|
359
|
+
* to create a static code path that keeps the `@RegisterClass` side effect alive.
|
|
360
|
+
*/
|
|
361
|
+
export declare function LoadElevenLabsRealtimeClient(): void;
|
|
362
|
+
//# sourceMappingURL=elevenLabsRealtimeClient.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"elevenLabsRealtimeClient.d.ts","sourceRoot":"","sources":["../../src/drivers/elevenLabsRealtimeClient.ts"],"names":[],"mappings":"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"}
|