@framers/agentos 0.1.168 → 0.1.170

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.
@@ -13,11 +13,11 @@
13
13
  *
14
14
  * ## `getNodeInput` / `deliverNodeOutput` contract
15
15
  *
16
- * - `getNodeInput(nodeId)` blocks until the transport emits a `turn_complete`
17
- * event, then resolves with the transcript string. It also emits a
18
- * `voice_turn_complete` GraphEvent so the runtime event bus stays in sync.
19
- * - `deliverNodeOutput(nodeId, output)` sends text (or a streaming async
20
- * iterable) to TTS and emits a `voice_audio` outbound GraphEvent.
16
+ * - `getNodeInput(nodeId)` delegates to `pipeline.waitForUserTurn()` when a
17
+ * pipeline is available, or falls back to listening for `turn_complete` on
18
+ * the transport directly.
19
+ * - `deliverNodeOutput(nodeId, output)` delegates to `pipeline.pushToTTS()`
20
+ * and emits a `voice_audio` outbound GraphEvent.
21
21
  * - Both methods throw if called before `init()`.
22
22
  *
23
23
  * ## Lazy initialisation
@@ -51,19 +51,6 @@ import type { GraphEvent } from '../events/GraphEvent.js';
51
51
  *
52
52
  * All fields are optional -- defaults are resolved from agent.config.json or
53
53
  * sensible library defaults within the voice pipeline itself.
54
- *
55
- * @example
56
- * ```ts
57
- * const config: VoiceTransportConfig = {
58
- * stt: 'deepgram',
59
- * tts: 'elevenlabs',
60
- * voice: 'rachel',
61
- * bargeIn: 'hard-cut',
62
- * endpointing: 'semantic',
63
- * diarization: true,
64
- * language: 'en-US',
65
- * };
66
- * ```
67
54
  */
68
55
  export interface VoiceTransportConfig {
69
56
  /** STT provider identifier (e.g. `'deepgram'`, `'openai'`). */
@@ -98,22 +85,14 @@ export interface VoiceTransportConfig {
98
85
  *
99
86
  * 1. Construct with {@link VoiceTransportConfig}, an `IStreamTransport`, and an
100
87
  * event sink callback.
101
- * 2. Call `init()` once before the graph starts running. This injects the
102
- * transport into `state.scratch.voiceTransport` and emits a `voice_session`
103
- * started event.
88
+ * 2. Call `init()` once before the graph starts running. This lazily imports
89
+ * `VoicePipelineOrchestrator`, creates an instance, and injects the transport
90
+ * into `state.scratch.voiceTransport`.
104
91
  * 3. Use `getNodeInput()` to obtain the user's transcribed speech for a node.
105
- * Blocks until the transport emits a `turn_complete` event.
106
- * 4. Use `deliverNodeOutput()` to send the node's response to TTS.
92
+ * Delegates to `pipeline.waitForUserTurn()` when a pipeline is available.
93
+ * 4. Use `deliverNodeOutput()` to send the node's response to TTS via
94
+ * `pipeline.pushToTTS()`.
107
95
  * 5. Call `dispose()` to clean up resources when the session ends.
108
- *
109
- * ## Error handling
110
- *
111
- * Both `getNodeInput()` and `deliverNodeOutput()` throw `Error` if called
112
- * before `init()`. After `dispose()`, the adapter is marked as uninitialised
113
- * so subsequent calls also throw.
114
- *
115
- * @see {@link VoiceTransportConfig} -- the config shape forwarded to the pipeline.
116
- * See `VoiceNodeExecutor` for the executor that interacts with the transport.
117
96
  */
118
97
  export declare class VoiceTransportAdapter {
119
98
  private readonly config;
@@ -122,7 +101,6 @@ export declare class VoiceTransportAdapter {
122
101
  /**
123
102
  * Lazily-initialised `VoicePipelineOrchestrator` instance.
124
103
  * Typed as `any` to avoid a hard import cycle with the voice subsystem.
125
- * In a full implementation this would be `VoicePipelineOrchestrator | null`.
126
104
  */
127
105
  private pipeline;
128
106
  /**
@@ -133,11 +111,8 @@ export declare class VoiceTransportAdapter {
133
111
  /**
134
112
  * Creates a new VoiceTransportAdapter.
135
113
  *
136
- * @param config - Voice pipeline configuration knobs. Forwarded to the
137
- * pipeline when it is initialised.
138
- * @param transport - Bidirectional audio/control stream transport
139
- * (`IStreamTransport`). Must be an EventEmitter that
140
- * emits `turn_complete` events for `getNodeInput()`.
114
+ * @param config - Voice pipeline configuration knobs.
115
+ * @param transport - Bidirectional audio/control stream transport (`IStreamTransport`).
141
116
  * @param eventSink - Callback receiving all `GraphEvent` values emitted by
142
117
  * this adapter. Must not throw.
143
118
  */
@@ -146,73 +121,36 @@ export declare class VoiceTransportAdapter {
146
121
  /**
147
122
  * Initialise the adapter.
148
123
  *
149
- * Injects the `IStreamTransport` instance into `state.scratch.voiceTransport`
150
- * so that voice graph nodes (specifically `VoiceNodeExecutor`) can access
151
- * the transport for session event subscription. Then emits a `voice_session`
152
- * started event to signal that the voice session is live.
153
- *
154
- * Must be called exactly once before `getNodeInput()` or
155
- * `deliverNodeOutput()`. Calling `init()` multiple times is safe but
156
- * redundant -- the transport reference is simply overwritten.
157
- *
158
- * @param state - Mutable `GraphState` (or partial) for the current run.
159
- * `state.scratch` is created lazily if absent.
124
+ * Lazily imports `VoicePipelineOrchestrator`, creates an instance from config,
125
+ * injects the transport into `state.scratch.voiceTransport`, and emits a
126
+ * `voice_session` started event.
160
127
  */
161
128
  init(state: Partial<GraphState>): Promise<void>;
162
129
  /**
163
130
  * Wait for the user's next speech turn and return the transcript text.
164
131
  *
165
- * In a full production implementation this delegates to
166
- * `VoicePipelineOrchestrator.waitForUserTurn()`. In the current implementation
167
- * it listens for a single `'turn_complete'` event from the underlying transport
168
- * and resolves with the transcript text.
169
- *
170
- * Also emits a {@link GraphEvent} of type `voice_turn_complete` so that the
171
- * runtime event bus stays in sync with the transport-level turn lifecycle.
172
- *
173
- * @param nodeId - The id of the graph node requesting input; used to tag the
174
- * emitted event for downstream filtering.
175
- * @returns Resolved transcript string from the user's speech turn.
176
- * @throws {Error} If called before `init()` or after `dispose()`.
132
+ * Delegates to `VoicePipelineOrchestrator.waitForUserTurn()` when a pipeline
133
+ * is available. Falls back to listening for `turn_complete` on the transport.
177
134
  */
178
135
  getNodeInput(nodeId: string): Promise<string>;
179
136
  /**
180
137
  * Deliver a node's text output to the TTS engine.
181
138
  *
182
- * Accepts either a plain `string` or an `AsyncIterable<string>` of token
183
- * chunks (e.g. a streaming LLM response). In a full production implementation
184
- * this delegates to `VoicePipelineOrchestrator.pushToTTS(output)`.
185
- *
186
- * Emits a {@link GraphEvent} of type `voice_audio` (direction `'outbound'`)
187
- * so that the runtime event bus records the TTS delivery.
188
- *
189
- * @param nodeId - The id of the graph node delivering the output; tags the
190
- * emitted event for downstream filtering.
191
- * @param _output - Text or async token stream to synthesise as speech.
192
- * The underscore prefix indicates it is not yet consumed
193
- * in the v1 stub implementation.
194
- * @throws {Error} If called before `init()` or after `dispose()`.
139
+ * Delegates to `VoicePipelineOrchestrator.pushToTTS()` when a pipeline is
140
+ * available, then emits a `voice_audio` outbound GraphEvent.
195
141
  */
196
- deliverNodeOutput(nodeId: string, _output: string | AsyncIterable<string>): Promise<void>;
142
+ deliverNodeOutput(nodeId: string, output: string | AsyncIterable<string>): Promise<void>;
197
143
  /**
198
144
  * Handle a user barge-in at the transport level.
199
145
  *
200
- * Should be called by the runtime or transport layer when the user starts
201
- * speaking while the agent is mid-utterance. Emits a `voice_barge_in` event
202
- * so that graph event consumers can react (e.g. cancel pending tool calls,
203
- * stop TTS playback, or reroute the graph).
204
- *
205
- * @see {@link VoiceInterruptError} -- the structured error used inside the graph executor.
146
+ * Emits a `voice_barge_in` event so that graph event consumers can react.
206
147
  */
207
148
  handleBargeIn(): void;
208
149
  /**
209
150
  * Dispose the adapter and emit a `voice_session` ended event.
210
151
  *
211
- * Marks the adapter as uninitialised so subsequent calls to `getNodeInput()`
212
- * or `deliverNodeOutput()` will throw, preventing accidental use after teardown.
213
- *
214
- * This method is idempotent -- calling it multiple times simply re-emits the
215
- * ended event and re-sets the initialised flag.
152
+ * Stops the pipeline if one was initialised, then marks the adapter as
153
+ * uninitialised so subsequent calls throw.
216
154
  */
217
155
  dispose(): Promise<void>;
218
156
  }
@@ -1 +1 @@
1
- {"version":3,"file":"VoiceTransportAdapter.d.ts","sourceRoot":"","sources":["../../../src/orchestration/runtime/VoiceTransportAdapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAM1D;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,WAAW,oBAAoB;IACnC,+DAA+D;IAC/D,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb,iEAAiE;IACjE,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb,0DAA0D;IAC1D,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;;;;OAKG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;;;;OAKG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,wEAAwE;IACxE,WAAW,CAAC,EAAE,OAAO,CAAC;IAEtB,6DAA6D;IAC7D,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAMD;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,qBAAa,qBAAqB;IA0B9B,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,SAAS;IA3B5B;;;;OAIG;IACH,OAAO,CAAC,QAAQ,CAAoB;IAEpC;;;OAGG;IACH,OAAO,CAAC,WAAW,CAAS;IAE5B;;;;;;;;;;OAUG;gBAEgB,MAAM,EAAE,oBAAoB,EAC5B,SAAS,EAAE,GAAG,EAAE,mBAAmB;IACnC,SAAS,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI;IAOzD;;;;;;;;;;;;;;OAcG;IACG,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,UAAU,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAcrD;;;;;;;;;;;;;;;OAeG;IACG,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IA2BnD;;;;;;;;;;;;;;;;OAgBG;IACG,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,aAAa,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAqB/F;;;;;;;;;OASG;IACH,aAAa,IAAI,IAAI;IAarB;;;;;;;;OAQG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAS/B"}
1
+ {"version":3,"file":"VoiceTransportAdapter.d.ts","sourceRoot":"","sources":["../../../src/orchestration/runtime/VoiceTransportAdapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAM1D;;;;;;GAMG;AACH,MAAM,WAAW,oBAAoB;IACnC,+DAA+D;IAC/D,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb,iEAAiE;IACjE,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb,0DAA0D;IAC1D,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;;;;OAKG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;;;;OAKG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,wEAAwE;IACxE,WAAW,CAAC,EAAE,OAAO,CAAC;IAEtB,6DAA6D;IAC7D,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAMD;;;;;;;;;;;;;;;GAeG;AACH,qBAAa,qBAAqB;IAsB9B,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,SAAS;IAvB5B;;;OAGG;IACH,OAAO,CAAC,QAAQ,CAAoB;IAEpC;;;OAGG;IACH,OAAO,CAAC,WAAW,CAAS;IAE5B;;;;;;;OAOG;gBAEgB,MAAM,EAAE,oBAAoB,EAC5B,SAAS,EAAE,GAAG,EAAE,mBAAmB;IACnC,SAAS,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI;IAOzD;;;;;;OAMG;IACG,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,UAAU,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAmCrD;;;;;OAKG;IACG,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAuCnD;;;;;OAKG;IACG,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,aAAa,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAuB9F;;;;OAIG;IACH,aAAa,IAAI,IAAI;IAarB;;;;;OAKG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAc/B"}
@@ -13,11 +13,11 @@
13
13
  *
14
14
  * ## `getNodeInput` / `deliverNodeOutput` contract
15
15
  *
16
- * - `getNodeInput(nodeId)` blocks until the transport emits a `turn_complete`
17
- * event, then resolves with the transcript string. It also emits a
18
- * `voice_turn_complete` GraphEvent so the runtime event bus stays in sync.
19
- * - `deliverNodeOutput(nodeId, output)` sends text (or a streaming async
20
- * iterable) to TTS and emits a `voice_audio` outbound GraphEvent.
16
+ * - `getNodeInput(nodeId)` delegates to `pipeline.waitForUserTurn()` when a
17
+ * pipeline is available, or falls back to listening for `turn_complete` on
18
+ * the transport directly.
19
+ * - `deliverNodeOutput(nodeId, output)` delegates to `pipeline.pushToTTS()`
20
+ * and emits a `voice_audio` outbound GraphEvent.
21
21
  * - Both methods throw if called before `init()`.
22
22
  *
23
23
  * ## Lazy initialisation
@@ -53,32 +53,21 @@
53
53
  *
54
54
  * 1. Construct with {@link VoiceTransportConfig}, an `IStreamTransport`, and an
55
55
  * event sink callback.
56
- * 2. Call `init()` once before the graph starts running. This injects the
57
- * transport into `state.scratch.voiceTransport` and emits a `voice_session`
58
- * started event.
56
+ * 2. Call `init()` once before the graph starts running. This lazily imports
57
+ * `VoicePipelineOrchestrator`, creates an instance, and injects the transport
58
+ * into `state.scratch.voiceTransport`.
59
59
  * 3. Use `getNodeInput()` to obtain the user's transcribed speech for a node.
60
- * Blocks until the transport emits a `turn_complete` event.
61
- * 4. Use `deliverNodeOutput()` to send the node's response to TTS.
60
+ * Delegates to `pipeline.waitForUserTurn()` when a pipeline is available.
61
+ * 4. Use `deliverNodeOutput()` to send the node's response to TTS via
62
+ * `pipeline.pushToTTS()`.
62
63
  * 5. Call `dispose()` to clean up resources when the session ends.
63
- *
64
- * ## Error handling
65
- *
66
- * Both `getNodeInput()` and `deliverNodeOutput()` throw `Error` if called
67
- * before `init()`. After `dispose()`, the adapter is marked as uninitialised
68
- * so subsequent calls also throw.
69
- *
70
- * @see {@link VoiceTransportConfig} -- the config shape forwarded to the pipeline.
71
- * See `VoiceNodeExecutor` for the executor that interacts with the transport.
72
64
  */
73
65
  export class VoiceTransportAdapter {
74
66
  /**
75
67
  * Creates a new VoiceTransportAdapter.
76
68
  *
77
- * @param config - Voice pipeline configuration knobs. Forwarded to the
78
- * pipeline when it is initialised.
79
- * @param transport - Bidirectional audio/control stream transport
80
- * (`IStreamTransport`). Must be an EventEmitter that
81
- * emits `turn_complete` events for `getNodeInput()`.
69
+ * @param config - Voice pipeline configuration knobs.
70
+ * @param transport - Bidirectional audio/control stream transport (`IStreamTransport`).
82
71
  * @param eventSink - Callback receiving all `GraphEvent` values emitted by
83
72
  * this adapter. Must not throw.
84
73
  */
@@ -90,9 +79,8 @@ export class VoiceTransportAdapter {
90
79
  /**
91
80
  * Lazily-initialised `VoicePipelineOrchestrator` instance.
92
81
  * Typed as `any` to avoid a hard import cycle with the voice subsystem.
93
- * In a full implementation this would be `VoicePipelineOrchestrator | null`.
94
82
  */
95
- this.pipeline = null; // VoicePipelineOrchestrator (lazy)
83
+ this.pipeline = null;
96
84
  /**
97
85
  * Tracks whether `init()` has been called successfully.
98
86
  * Set to `false` by `dispose()` to prevent use-after-teardown.
@@ -105,24 +93,30 @@ export class VoiceTransportAdapter {
105
93
  /**
106
94
  * Initialise the adapter.
107
95
  *
108
- * Injects the `IStreamTransport` instance into `state.scratch.voiceTransport`
109
- * so that voice graph nodes (specifically `VoiceNodeExecutor`) can access
110
- * the transport for session event subscription. Then emits a `voice_session`
111
- * started event to signal that the voice session is live.
112
- *
113
- * Must be called exactly once before `getNodeInput()` or
114
- * `deliverNodeOutput()`. Calling `init()` multiple times is safe but
115
- * redundant -- the transport reference is simply overwritten.
116
- *
117
- * @param state - Mutable `GraphState` (or partial) for the current run.
118
- * `state.scratch` is created lazily if absent.
96
+ * Lazily imports `VoicePipelineOrchestrator`, creates an instance from config,
97
+ * injects the transport into `state.scratch.voiceTransport`, and emits a
98
+ * `voice_session` started event.
119
99
  */
120
100
  async init(state) {
121
101
  var _a;
122
- // Lazily create the scratch bag if the caller passed a partial state
123
- // without a pre-existing scratch object.
124
102
  const scratch = ((_a = state).scratch ?? (_a.scratch = {}));
125
103
  scratch.voiceTransport = this.transport;
104
+ // Lazily import to avoid hard dependency cycle with the voice subsystem
105
+ try {
106
+ const { VoicePipelineOrchestrator } = await import('../../voice-pipeline/VoicePipelineOrchestrator.js');
107
+ this.pipeline = new VoicePipelineOrchestrator({
108
+ stt: this.config.stt ?? 'deepgram',
109
+ tts: this.config.tts ?? 'elevenlabs',
110
+ endpointing: this.config.endpointing,
111
+ bargeIn: this.config.bargeIn,
112
+ voice: this.config.voice,
113
+ language: this.config.language,
114
+ });
115
+ }
116
+ catch {
117
+ // Pipeline unavailable — fall back to transport-only mode
118
+ this.pipeline = null;
119
+ }
126
120
  this.initialized = true;
127
121
  this.eventSink({
128
122
  type: 'voice_session',
@@ -130,33 +124,35 @@ export class VoiceTransportAdapter {
130
124
  action: 'started',
131
125
  });
132
126
  }
127
+ // -------------------------------------------------------------------------
128
+ // Node I/O
129
+ // -------------------------------------------------------------------------
133
130
  /**
134
131
  * Wait for the user's next speech turn and return the transcript text.
135
132
  *
136
- * In a full production implementation this delegates to
137
- * `VoicePipelineOrchestrator.waitForUserTurn()`. In the current implementation
138
- * it listens for a single `'turn_complete'` event from the underlying transport
139
- * and resolves with the transcript text.
140
- *
141
- * Also emits a {@link GraphEvent} of type `voice_turn_complete` so that the
142
- * runtime event bus stays in sync with the transport-level turn lifecycle.
143
- *
144
- * @param nodeId - The id of the graph node requesting input; used to tag the
145
- * emitted event for downstream filtering.
146
- * @returns Resolved transcript string from the user's speech turn.
147
- * @throws {Error} If called before `init()` or after `dispose()`.
133
+ * Delegates to `VoicePipelineOrchestrator.waitForUserTurn()` when a pipeline
134
+ * is available. Falls back to listening for `turn_complete` on the transport.
148
135
  */
149
136
  async getNodeInput(nodeId) {
150
137
  if (!this.initialized) {
151
138
  throw new Error('VoiceTransportAdapter not initialized');
152
139
  }
153
- // In the full implementation this would delegate to:
154
- // this.pipeline.waitForUserTurn()
155
- // For now, listen directly to transport events for the next turn.
140
+ // Delegate to pipeline if available
141
+ if (this.pipeline?.waitForUserTurn) {
142
+ const turnEvent = await this.pipeline.waitForUserTurn();
143
+ const transcript = turnEvent?.transcript ?? '';
144
+ this.eventSink({
145
+ type: 'voice_turn_complete',
146
+ nodeId,
147
+ transcript,
148
+ turnIndex: 0,
149
+ endpointReason: turnEvent?.reason ?? 'unknown',
150
+ });
151
+ return transcript;
152
+ }
153
+ // Fallback: listen on transport directly
156
154
  return new Promise((resolve) => {
157
155
  this.transport.once('turn_complete', (evt) => {
158
- // Accept both `transcript` and `text` fields for compatibility
159
- // with different transport implementations.
160
156
  const transcript = evt?.transcript ?? evt?.text ?? '';
161
157
  this.eventSink({
162
158
  type: 'voice_turn_complete',
@@ -172,27 +168,17 @@ export class VoiceTransportAdapter {
172
168
  /**
173
169
  * Deliver a node's text output to the TTS engine.
174
170
  *
175
- * Accepts either a plain `string` or an `AsyncIterable<string>` of token
176
- * chunks (e.g. a streaming LLM response). In a full production implementation
177
- * this delegates to `VoicePipelineOrchestrator.pushToTTS(output)`.
178
- *
179
- * Emits a {@link GraphEvent} of type `voice_audio` (direction `'outbound'`)
180
- * so that the runtime event bus records the TTS delivery.
181
- *
182
- * @param nodeId - The id of the graph node delivering the output; tags the
183
- * emitted event for downstream filtering.
184
- * @param _output - Text or async token stream to synthesise as speech.
185
- * The underscore prefix indicates it is not yet consumed
186
- * in the v1 stub implementation.
187
- * @throws {Error} If called before `init()` or after `dispose()`.
171
+ * Delegates to `VoicePipelineOrchestrator.pushToTTS()` when a pipeline is
172
+ * available, then emits a `voice_audio` outbound GraphEvent.
188
173
  */
189
- async deliverNodeOutput(nodeId, _output) {
174
+ async deliverNodeOutput(nodeId, output) {
190
175
  if (!this.initialized) {
191
176
  throw new Error('VoiceTransportAdapter not initialized');
192
177
  }
193
- // In the full implementation this would delegate to:
194
- // this.pipeline.pushToTTS(output)
195
- // For now, emit the event to signal delivery.
178
+ // Delegate to pipeline TTS if available
179
+ if (this.pipeline?.pushToTTS) {
180
+ await this.pipeline.pushToTTS(output);
181
+ }
196
182
  this.eventSink({
197
183
  type: 'voice_audio',
198
184
  nodeId,
@@ -207,12 +193,7 @@ export class VoiceTransportAdapter {
207
193
  /**
208
194
  * Handle a user barge-in at the transport level.
209
195
  *
210
- * Should be called by the runtime or transport layer when the user starts
211
- * speaking while the agent is mid-utterance. Emits a `voice_barge_in` event
212
- * so that graph event consumers can react (e.g. cancel pending tool calls,
213
- * stop TTS playback, or reroute the graph).
214
- *
215
- * @see {@link VoiceInterruptError} -- the structured error used inside the graph executor.
196
+ * Emits a `voice_barge_in` event so that graph event consumers can react.
216
197
  */
217
198
  handleBargeIn() {
218
199
  this.eventSink({
@@ -228,13 +209,13 @@ export class VoiceTransportAdapter {
228
209
  /**
229
210
  * Dispose the adapter and emit a `voice_session` ended event.
230
211
  *
231
- * Marks the adapter as uninitialised so subsequent calls to `getNodeInput()`
232
- * or `deliverNodeOutput()` will throw, preventing accidental use after teardown.
233
- *
234
- * This method is idempotent -- calling it multiple times simply re-emits the
235
- * ended event and re-sets the initialised flag.
212
+ * Stops the pipeline if one was initialised, then marks the adapter as
213
+ * uninitialised so subsequent calls throw.
236
214
  */
237
215
  async dispose() {
216
+ if (this.pipeline?.stopSession) {
217
+ await this.pipeline.stopSession('adapter-disposed');
218
+ }
238
219
  this.eventSink({
239
220
  type: 'voice_session',
240
221
  nodeId: '__transport__',
@@ -242,6 +223,7 @@ export class VoiceTransportAdapter {
242
223
  exitReason: 'transport-disposed',
243
224
  });
244
225
  this.initialized = false;
226
+ this.pipeline = null;
245
227
  }
246
228
  }
247
229
  //# sourceMappingURL=VoiceTransportAdapter.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"VoiceTransportAdapter.js","sourceRoot":"","sources":["../../../src/orchestration/runtime/VoiceTransportAdapter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"VoiceTransportAdapter.js","sourceRoot":"","sources":["../../../src/orchestration/runtime/VoiceTransportAdapter.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"VoicePipelineOrchestrator.d.ts","sourceRoot":"","sources":["../../src/voice-pipeline/VoicePipelineOrchestrator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAG3C,OAAO,KAAK,EAGV,eAAe,EACf,kBAAkB,EAClB,iBAAiB,EACjB,gBAAgB,EAChB,aAAa,EACb,aAAa,EACb,0BAA0B,EAC1B,aAAa,EAIb,iBAAiB,EACjB,mBAAmB,EACnB,oBAAoB,EAErB,MAAM,YAAY,CAAC;AAMpB;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,WAAW,sBAAsB;IACrC,+EAA+E;IAC/E,YAAY,CAAC,EAAE,aAAa,CAAC;IAC7B,+EAA+E;IAC/E,YAAY,CAAC,EAAE,aAAa,CAAC;IAC7B,4CAA4C;IAC5C,gBAAgB,CAAC,EAAE,iBAAiB,CAAC;IACrC,2CAA2C;IAC3C,cAAc,CAAC,EAAE,eAAe,CAAC;IACjC,8EAA8E;IAC9E,iBAAiB,CAAC,EAAE,kBAAkB,CAAC;CACxC;AAMD;;;;;;;;;;;;;;GAcG;AACH,qBAAa,yBAA0B,SAAQ,YAAY;IA0E7C,OAAO,CAAC,QAAQ,CAAC,MAAM;IArEnC,gGAAgG;IAChG,OAAO,CAAC,MAAM,CAAyB;IAEvC,oFAAoF;IACpF,OAAO,CAAC,WAAW,CAAoC;IAEvD,oFAAoF;IACpF,OAAO,CAAC,WAAW,CAAoC;IAEvD,qFAAqF;IACrF,OAAO,CAAC,iBAAiB,CAAkC;IAE3D,wGAAwG;IACxG,OAAO,CAAC,eAAe,CAAgC;IAEvD,qEAAqE;IACrE,OAAO,CAAC,UAAU,CAAiC;IAEnD,uFAAuF;IACvF,OAAO,CAAC,aAAa,CAA2C;IAEhE;;;OAGG;IACH,OAAO,CAAC,cAAc,CAA8C;IAEpE;;;OAGG;IACH,OAAO,CAAC,eAAe,CAAM;IAE7B;;;OAGG;IACH,OAAO,CAAC,gBAAgB,CAAK;IAM7B;;;;;;;;;OASG;IACH,IAAI,KAAK,IAAI,aAAa,CAEzB;IAMD;;;;;;;OAOG;gBAC0B,MAAM,EAAE,mBAAmB;IAQxD;;;;;;;;;;;;;;;;;;OAkBG;IACG,YAAY,CAChB,SAAS,EAAE,gBAAgB,EAC3B,YAAY,EAAE,0BAA0B,EACxC,SAAS,CAAC,EAAE,sBAAsB,GACjC,OAAO,CAAC,oBAAoB,CAAC;IAwFhC;;;;;;OAMG;IACG,WAAW,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA4BjD;;;;;;;;;;;;;;;;;;;OAmBG;IACG,eAAe,IAAI,OAAO,CAAC,iBAAiB,CAAC;IAQnD;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACG,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IA0BpE;;;;;;;;;OASG;IACH,OAAO,CAAC,mBAAmB;IAM3B;;;;;;;;;;OAUG;IACH,OAAO,CAAC,kBAAkB;IAoB1B;;;;;;;;;;;;;;;;OAgBG;IACH,OAAO,CAAC,iBAAiB;IAuDzB;;;;;;;;;OASG;IACH,OAAO,CAAC,mBAAmB;IAiC3B;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,OAAO,CAAC,YAAY;IAyDpB;;;;;;;;;;OAUG;IACH,OAAO,CAAC,eAAe;IAoBvB;;;;;;;;OAQG;IACH,OAAO,CAAC,SAAS;IAYjB;;;;;;;;;OASG;IACH,OAAO,CAAC,cAAc;IAgBtB;;;OAGG;IACH,OAAO,CAAC,cAAc;CAMvB"}
1
+ {"version":3,"file":"VoicePipelineOrchestrator.d.ts","sourceRoot":"","sources":["../../src/voice-pipeline/VoicePipelineOrchestrator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAG3C,OAAO,KAAK,EAGV,eAAe,EACf,kBAAkB,EAClB,iBAAiB,EACjB,gBAAgB,EAChB,aAAa,EACb,aAAa,EACb,0BAA0B,EAC1B,aAAa,EAIb,iBAAiB,EACjB,mBAAmB,EACnB,oBAAoB,EAErB,MAAM,YAAY,CAAC;AAMpB;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,WAAW,sBAAsB;IACrC,+EAA+E;IAC/E,YAAY,CAAC,EAAE,aAAa,CAAC;IAC7B,+EAA+E;IAC/E,YAAY,CAAC,EAAE,aAAa,CAAC;IAC7B,4CAA4C;IAC5C,gBAAgB,CAAC,EAAE,iBAAiB,CAAC;IACrC,2CAA2C;IAC3C,cAAc,CAAC,EAAE,eAAe,CAAC;IACjC,8EAA8E;IAC9E,iBAAiB,CAAC,EAAE,kBAAkB,CAAC;CACxC;AAMD;;;;;;;;;;;;;;GAcG;AACH,qBAAa,yBAA0B,SAAQ,YAAY;IA0E7C,OAAO,CAAC,QAAQ,CAAC,MAAM;IArEnC,gGAAgG;IAChG,OAAO,CAAC,MAAM,CAAyB;IAEvC,oFAAoF;IACpF,OAAO,CAAC,WAAW,CAAoC;IAEvD,oFAAoF;IACpF,OAAO,CAAC,WAAW,CAAoC;IAEvD,qFAAqF;IACrF,OAAO,CAAC,iBAAiB,CAAkC;IAE3D,wGAAwG;IACxG,OAAO,CAAC,eAAe,CAAgC;IAEvD,qEAAqE;IACrE,OAAO,CAAC,UAAU,CAAiC;IAEnD,uFAAuF;IACvF,OAAO,CAAC,aAAa,CAA2C;IAEhE;;;OAGG;IACH,OAAO,CAAC,cAAc,CAA8C;IAEpE;;;OAGG;IACH,OAAO,CAAC,eAAe,CAAM;IAE7B;;;OAGG;IACH,OAAO,CAAC,gBAAgB,CAAK;IAM7B;;;;;;;;;OASG;IACH,IAAI,KAAK,IAAI,aAAa,CAEzB;IAMD;;;;;;;OAOG;gBAC0B,MAAM,EAAE,mBAAmB;IAQxD;;;;;;;;;;;;;;;;;;OAkBG;IACG,YAAY,CAChB,SAAS,EAAE,gBAAgB,EAC3B,YAAY,EAAE,0BAA0B,EACxC,SAAS,CAAC,EAAE,sBAAsB,GACjC,OAAO,CAAC,oBAAoB,CAAC;IAyFhC;;;;;;OAMG;IACG,WAAW,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA4BjD;;;;;;;;;;;;;;;;;;;OAmBG;IACG,eAAe,IAAI,OAAO,CAAC,iBAAiB,CAAC;IAQnD;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACG,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IA0BpE;;;;;;;;;OASG;IACH,OAAO,CAAC,mBAAmB;IAM3B;;;;;;;;;;OAUG;IACH,OAAO,CAAC,kBAAkB;IAoB1B;;;;;;;;;;;;;;;;OAgBG;IACH,OAAO,CAAC,iBAAiB;IAuDzB;;;;;;;;;OASG;IACH,OAAO,CAAC,mBAAmB;IAiC3B;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,OAAO,CAAC,YAAY;IAyDpB;;;;;;;;;;OAUG;IACH,OAAO,CAAC,eAAe;IAoBvB;;;;;;;;OAQG;IACH,OAAO,CAAC,SAAS;IAYjB;;;;;;;;;OASG;IACH,OAAO,CAAC,cAAc;IAgBtB;;;OAGG;IACH,OAAO,CAAC,cAAc;CAMvB"}
@@ -165,6 +165,7 @@ export class VoicePipelineOrchestrator extends EventEmitter {
165
165
  const ttsSession = await tts.startSession({
166
166
  voice: this.config.voice,
167
167
  format: this.config.format,
168
+ providerOptions: this.config.ttsOptions,
168
169
  });
169
170
  // Store references for use by wiring helpers and teardown
170
171
  this._sttSession = sttSession;
@@ -1 +1 @@
1
- {"version":3,"file":"VoicePipelineOrchestrator.js","sourceRoot":"","sources":["../../src/voice-pipeline/VoicePipelineOrchestrator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"VoicePipelineOrchestrator.js","sourceRoot":"","sources":["../../src/voice-pipeline/VoicePipelineOrchestrator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,73 @@
1
+ /**
2
+ * @module voice-pipeline/providers/ElevenLabsStreamingTTS
3
+ *
4
+ * Streaming text-to-speech adapter that connects to ElevenLabs' WebSocket API
5
+ * and implements the {@link IStreamingTTS} / {@link StreamingTTSSession} interfaces
6
+ * required by {@link VoicePipelineOrchestrator}.
7
+ *
8
+ * ## ElevenLabs WebSocket Protocol
9
+ *
10
+ * - **Endpoint:** `wss://api.elevenlabs.io/v1/text-to-speech/{voiceId}/stream-input`
11
+ * - **Authentication:** `xi-api-key` query parameter
12
+ * - **Inbound (client → ElevenLabs):** JSON text chunks `{ text: "...", ... }`
13
+ * - **Outbound (ElevenLabs → client):** JSON with base64-encoded audio `{ audio: "...", ... }`
14
+ * - **Flush:** Send `{ text: "" }` to signal end-of-input and flush remaining audio
15
+ *
16
+ * ## Audio Output
17
+ *
18
+ * ElevenLabs returns audio as base64-encoded MP3 chunks. Each chunk is decoded
19
+ * and wrapped in an {@link EncodedAudioChunk} with format `'mp3'` before being
20
+ * emitted as an `'audio'` event.
21
+ *
22
+ * @see https://elevenlabs.io/docs/api-reference/websockets
23
+ */
24
+ import type { IStreamingTTS, StreamingTTSSession, StreamingTTSConfig } from '../types.js';
25
+ /**
26
+ * Configuration for the {@link ElevenLabsStreamingTTS} provider.
27
+ */
28
+ export interface ElevenLabsStreamingTTSConfig {
29
+ /** ElevenLabs API key. */
30
+ apiKey: string;
31
+ /**
32
+ * Base URL for the ElevenLabs API (HTTP, not WS — the WS URL is derived).
33
+ * @default 'https://api.elevenlabs.io/v1'
34
+ */
35
+ baseUrl?: string;
36
+ /**
37
+ * Default voice ID for synthesis.
38
+ * @default 'EXAVITQu4vr4xnSDxMaL' (Sarah)
39
+ */
40
+ voiceId?: string;
41
+ /**
42
+ * ElevenLabs model ID.
43
+ * @default 'eleven_multilingual_v2'
44
+ */
45
+ model?: string;
46
+ }
47
+ /**
48
+ * Streaming TTS provider that creates ElevenLabs WebSocket sessions.
49
+ * Implements {@link IStreamingTTS} for use with {@link VoicePipelineOrchestrator}.
50
+ *
51
+ * @example
52
+ * ```typescript
53
+ * const tts = new ElevenLabsStreamingTTS({
54
+ * apiKey: process.env.ELEVENLABS_API_KEY!,
55
+ * voiceId: 'EXAVITQu4vr4xnSDxMaL',
56
+ * });
57
+ * const session = await tts.startSession({ voice: 'pNInz6obpgDQGcFmaJgB' });
58
+ * session.on('audio', (chunk) => transport.sendAudio(chunk));
59
+ * session.pushTokens('Hello there!');
60
+ * await session.flush();
61
+ * ```
62
+ */
63
+ export declare class ElevenLabsStreamingTTS implements IStreamingTTS {
64
+ private readonly config;
65
+ readonly providerId = "elevenlabs-streaming";
66
+ constructor(config: ElevenLabsStreamingTTSConfig);
67
+ /**
68
+ * Create a new streaming TTS session connected to ElevenLabs.
69
+ * The session opens a WebSocket and is ready to receive text tokens.
70
+ */
71
+ startSession(config?: StreamingTTSConfig): Promise<StreamingTTSSession>;
72
+ }
73
+ //# sourceMappingURL=ElevenLabsStreamingTTS.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ElevenLabsStreamingTTS.d.ts","sourceRoot":"","sources":["../../../src/voice-pipeline/providers/ElevenLabsStreamingTTS.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAIH,OAAO,KAAK,EACV,aAAa,EACb,mBAAmB,EACnB,kBAAkB,EAEnB,MAAM,aAAa,CAAC;AAMrB;;GAEG;AACH,MAAM,WAAW,4BAA4B;IAC3C,0BAA0B;IAC1B,MAAM,EAAE,MAAM,CAAC;IAEf;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AA8OD;;;;;;;;;;;;;;;GAeG;AACH,qBAAa,sBAAuB,YAAW,aAAa;IAG9C,OAAO,CAAC,QAAQ,CAAC,MAAM;IAFnC,QAAQ,CAAC,UAAU,0BAA0B;gBAEhB,MAAM,EAAE,4BAA4B;IAEjE;;;OAGG;IACG,YAAY,CAAC,MAAM,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,mBAAmB,CAAC;CAK9E"}
@@ -0,0 +1,241 @@
1
+ /**
2
+ * @module voice-pipeline/providers/ElevenLabsStreamingTTS
3
+ *
4
+ * Streaming text-to-speech adapter that connects to ElevenLabs' WebSocket API
5
+ * and implements the {@link IStreamingTTS} / {@link StreamingTTSSession} interfaces
6
+ * required by {@link VoicePipelineOrchestrator}.
7
+ *
8
+ * ## ElevenLabs WebSocket Protocol
9
+ *
10
+ * - **Endpoint:** `wss://api.elevenlabs.io/v1/text-to-speech/{voiceId}/stream-input`
11
+ * - **Authentication:** `xi-api-key` query parameter
12
+ * - **Inbound (client → ElevenLabs):** JSON text chunks `{ text: "...", ... }`
13
+ * - **Outbound (ElevenLabs → client):** JSON with base64-encoded audio `{ audio: "...", ... }`
14
+ * - **Flush:** Send `{ text: "" }` to signal end-of-input and flush remaining audio
15
+ *
16
+ * ## Audio Output
17
+ *
18
+ * ElevenLabs returns audio as base64-encoded MP3 chunks. Each chunk is decoded
19
+ * and wrapped in an {@link EncodedAudioChunk} with format `'mp3'` before being
20
+ * emitted as an `'audio'` event.
21
+ *
22
+ * @see https://elevenlabs.io/docs/api-reference/websockets
23
+ */
24
+ import { EventEmitter } from 'node:events';
25
+ import WebSocket from 'ws';
26
+ // ---------------------------------------------------------------------------
27
+ // Session Implementation
28
+ // ---------------------------------------------------------------------------
29
+ /**
30
+ * A live streaming TTS session connected to ElevenLabs via WebSocket.
31
+ * Emits `audio`, `flush_complete`, `error`, and `close` events as required
32
+ * by the voice pipeline orchestrator.
33
+ */
34
+ class ElevenLabsStreamingTTSSession extends EventEmitter {
35
+ constructor(config, sessionConfig) {
36
+ super();
37
+ this.config = config;
38
+ this.sessionConfig = sessionConfig;
39
+ this.ws = null;
40
+ this.closed = false;
41
+ this.pendingFlush = false;
42
+ this.accumulatedText = '';
43
+ }
44
+ /**
45
+ * Open the WebSocket connection to ElevenLabs streaming endpoint.
46
+ * Sends the initial BOS (beginning of stream) message with generation config.
47
+ */
48
+ async connect() {
49
+ const voiceId = this.sessionConfig.voice ?? this.config.voiceId ?? 'EXAVITQu4vr4xnSDxMaL';
50
+ const model = this.config.model ?? 'eleven_multilingual_v2';
51
+ // Convert HTTPS base URL to WSS
52
+ const httpBase = this.config.baseUrl ?? 'https://api.elevenlabs.io/v1';
53
+ const wsBase = httpBase.replace(/^https?:\/\//, 'wss://');
54
+ const params = new URLSearchParams({
55
+ model_id: model,
56
+ output_format: 'mp3_44100_128',
57
+ });
58
+ const url = `${wsBase}/text-to-speech/${voiceId}/stream-input?${params.toString()}`;
59
+ return new Promise((resolve, reject) => {
60
+ this.ws = new WebSocket(url, {
61
+ headers: {
62
+ 'xi-api-key': this.config.apiKey,
63
+ },
64
+ });
65
+ this.ws.on('open', () => {
66
+ // Send BOS (beginning of stream) message with generation settings
67
+ const opts = this.sessionConfig?.providerOptions ?? {};
68
+ this.ws.send(JSON.stringify({
69
+ text: ' ', // Initial space triggers the stream
70
+ voice_settings: {
71
+ stability: opts.stability ?? 0.5,
72
+ similarity_boost: opts.similarityBoost ?? 0.75,
73
+ style: opts.style ?? 0.0,
74
+ use_speaker_boost: opts.useSpeakerBoost ?? true,
75
+ },
76
+ generation_config: {
77
+ chunk_length_schedule: [120, 160, 250, 290],
78
+ ...(opts.speed != null ? { speed: opts.speed } : {}),
79
+ },
80
+ }));
81
+ resolve();
82
+ });
83
+ this.ws.on('error', (err) => {
84
+ this.emit('error', err);
85
+ reject(err);
86
+ });
87
+ this.ws.on('message', (data) => {
88
+ this._handleMessage(typeof data === 'string' ? data : data.toString('utf-8'));
89
+ });
90
+ this.ws.on('close', () => {
91
+ this.closed = true;
92
+ this.emit('close');
93
+ });
94
+ });
95
+ }
96
+ /**
97
+ * Push text tokens into the TTS stream.
98
+ * ElevenLabs expects text to be sent as JSON messages. Text is accumulated
99
+ * and sent in chunks to allow the synthesis engine to produce natural-sounding
100
+ * speech with proper prosody across sentence boundaries.
101
+ */
102
+ pushTokens(tokens) {
103
+ if (this.closed || !this.ws || this.ws.readyState !== WebSocket.OPEN)
104
+ return;
105
+ this.accumulatedText += tokens;
106
+ // Send text to ElevenLabs as it arrives — the server handles buffering
107
+ // and chunking for optimal synthesis quality
108
+ this.ws.send(JSON.stringify({ text: tokens }));
109
+ }
110
+ /**
111
+ * Signal end-of-text and flush remaining audio from the synthesis buffer.
112
+ * ElevenLabs requires an empty text message to signal EOS (end of stream).
113
+ * Resolves when all audio has been received (the server sends an isFinal message).
114
+ */
115
+ async flush() {
116
+ if (this.closed || !this.ws || this.ws.readyState !== WebSocket.OPEN)
117
+ return;
118
+ this.pendingFlush = true;
119
+ // Send EOS (end of stream) — empty string signals the end of input
120
+ this.ws.send(JSON.stringify({ text: '' }));
121
+ // Wait for the final audio chunk or timeout
122
+ return new Promise((resolve) => {
123
+ const onFlush = () => {
124
+ this.removeListener('_internal_flush', onFlush);
125
+ clearTimeout(timeout);
126
+ resolve();
127
+ };
128
+ // Safety timeout: resolve after 5s even if no final message arrives
129
+ const timeout = setTimeout(() => {
130
+ this.removeListener('_internal_flush', onFlush);
131
+ this.pendingFlush = false;
132
+ this.emit('flush_complete');
133
+ resolve();
134
+ }, 5000);
135
+ this.on('_internal_flush', onFlush);
136
+ });
137
+ }
138
+ /**
139
+ * Cancel the current synthesis and discard any pending audio.
140
+ * Closes the WebSocket — a new session must be created for more synthesis.
141
+ */
142
+ cancel() {
143
+ this.pendingFlush = false;
144
+ this.accumulatedText = '';
145
+ if (this.ws && this.ws.readyState === WebSocket.OPEN) {
146
+ // Send a close signal
147
+ this.ws.close(1000, 'cancelled');
148
+ }
149
+ }
150
+ /**
151
+ * Close the WebSocket connection and clean up.
152
+ */
153
+ close() {
154
+ if (this.closed)
155
+ return;
156
+ this.closed = true;
157
+ if (this.ws) {
158
+ if (this.ws.readyState === WebSocket.OPEN) {
159
+ this.ws.close(1000, 'session closed');
160
+ }
161
+ this.ws = null;
162
+ }
163
+ this.emit('close');
164
+ }
165
+ // -------------------------------------------------------------------------
166
+ // Private
167
+ // -------------------------------------------------------------------------
168
+ /**
169
+ * Parse and dispatch an ElevenLabs WebSocket message.
170
+ * Audio chunks arrive as base64-encoded MP3 data that we decode and emit.
171
+ */
172
+ _handleMessage(raw) {
173
+ let msg;
174
+ try {
175
+ msg = JSON.parse(raw);
176
+ }
177
+ catch {
178
+ return; // Malformed JSON — skip
179
+ }
180
+ // Audio chunk received
181
+ if (msg.audio) {
182
+ const audioBuffer = Buffer.from(msg.audio, 'base64');
183
+ // Estimate duration from MP3 byte count (128kbps MP3)
184
+ const durationMs = Math.round((audioBuffer.byteLength / ElevenLabsStreamingTTSSession.BYTES_PER_SEC_MP3) * 1000);
185
+ const chunk = {
186
+ audio: audioBuffer,
187
+ format: 'mp3',
188
+ sampleRate: 44100,
189
+ durationMs,
190
+ text: this.accumulatedText,
191
+ };
192
+ this.emit('audio', chunk);
193
+ }
194
+ // Final message — all audio has been sent
195
+ if (msg.isFinal) {
196
+ this.accumulatedText = '';
197
+ if (this.pendingFlush) {
198
+ this.pendingFlush = false;
199
+ this.emit('_internal_flush');
200
+ this.emit('flush_complete');
201
+ }
202
+ }
203
+ }
204
+ }
205
+ /** Estimated bytes per second for duration calculation. MP3 at 128kbps = ~16000 bytes/sec. */
206
+ ElevenLabsStreamingTTSSession.BYTES_PER_SEC_MP3 = 16000;
207
+ // ---------------------------------------------------------------------------
208
+ // Provider (Factory)
209
+ // ---------------------------------------------------------------------------
210
+ /**
211
+ * Streaming TTS provider that creates ElevenLabs WebSocket sessions.
212
+ * Implements {@link IStreamingTTS} for use with {@link VoicePipelineOrchestrator}.
213
+ *
214
+ * @example
215
+ * ```typescript
216
+ * const tts = new ElevenLabsStreamingTTS({
217
+ * apiKey: process.env.ELEVENLABS_API_KEY!,
218
+ * voiceId: 'EXAVITQu4vr4xnSDxMaL',
219
+ * });
220
+ * const session = await tts.startSession({ voice: 'pNInz6obpgDQGcFmaJgB' });
221
+ * session.on('audio', (chunk) => transport.sendAudio(chunk));
222
+ * session.pushTokens('Hello there!');
223
+ * await session.flush();
224
+ * ```
225
+ */
226
+ export class ElevenLabsStreamingTTS {
227
+ constructor(config) {
228
+ this.config = config;
229
+ this.providerId = 'elevenlabs-streaming';
230
+ }
231
+ /**
232
+ * Create a new streaming TTS session connected to ElevenLabs.
233
+ * The session opens a WebSocket and is ready to receive text tokens.
234
+ */
235
+ async startSession(config) {
236
+ const session = new ElevenLabsStreamingTTSSession(this.config, config ?? {});
237
+ await session.connect();
238
+ return session;
239
+ }
240
+ }
241
+ //# sourceMappingURL=ElevenLabsStreamingTTS.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ElevenLabsStreamingTTS.js","sourceRoot":"","sources":["../../../src/voice-pipeline/providers/ElevenLabsStreamingTTS.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@framers/agentos",
3
- "version": "0.1.168",
3
+ "version": "0.1.170",
4
4
  "description": "Modular AgentOS orchestration library",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",