@framers/agentos 0.13.78 → 0.13.80
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/dist/agents/agency/AgencyMemoryManager.js +1 -1
- package/dist/agents/agency/AgencyMemoryManager.js.map +1 -1
- package/dist/agents/definitions/AgentCore.d.ts.map +1 -1
- package/dist/agents/definitions/AgentCore.js +7 -3
- package/dist/agents/definitions/AgentCore.js.map +1 -1
- package/dist/agents/definitions/AgentPoolAgent.d.ts +1 -0
- package/dist/agents/definitions/AgentPoolAgent.d.ts.map +1 -1
- package/dist/agents/definitions/AgentPoolAgent.js +24 -6
- package/dist/agents/definitions/AgentPoolAgent.js.map +1 -1
- package/dist/api/AgentOS.js +1 -1
- package/dist/api/AgentOS.js.map +1 -1
- package/dist/api/runtime/GMIChunkTransformer.d.ts.map +1 -1
- package/dist/api/runtime/GMIChunkTransformer.js +1 -1
- package/dist/api/runtime/GMIChunkTransformer.js.map +1 -1
- package/dist/api/structured/output/StructuredOutputManager.js +1 -1
- package/dist/api/structured/output/StructuredOutputManager.js.map +1 -1
- package/dist/cognition/nlp/ai_utilities/LLMUtilityAI.js +7 -7
- package/dist/cognition/nlp/ai_utilities/LLMUtilityAI.js.map +1 -1
- package/dist/cognition/rag/VectorStoreManager.d.ts.map +1 -1
- package/dist/cognition/rag/VectorStoreManager.js +5 -2
- package/dist/cognition/rag/VectorStoreManager.js.map +1 -1
- package/dist/cognition/substrate/GMIManager.d.ts.map +1 -1
- package/dist/cognition/substrate/GMIManager.js +4 -1
- package/dist/cognition/substrate/GMIManager.js.map +1 -1
- package/dist/core/llm/providers/implementations/AnthropicProvider.d.ts.map +1 -1
- package/dist/core/llm/providers/implementations/AnthropicProvider.js +8 -2
- package/dist/core/llm/providers/implementations/AnthropicProvider.js.map +1 -1
- package/dist/core/llm/providers/implementations/GeminiProvider.d.ts.map +1 -1
- package/dist/core/llm/providers/implementations/GeminiProvider.js +4 -1
- package/dist/core/llm/providers/implementations/GeminiProvider.js.map +1 -1
- package/dist/core/llm/providers/implementations/OllamaProvider.d.ts.map +1 -1
- package/dist/core/llm/providers/implementations/OllamaProvider.js +81 -60
- package/dist/core/llm/providers/implementations/OllamaProvider.js.map +1 -1
- package/dist/core/llm/providers/implementations/OpenAIProvider.d.ts.map +1 -1
- package/dist/core/llm/providers/implementations/OpenAIProvider.js +14 -5
- package/dist/core/llm/providers/implementations/OpenAIProvider.js.map +1 -1
- package/dist/core/llm/providers/implementations/OpenRouterProvider.d.ts.map +1 -1
- package/dist/core/llm/providers/implementations/OpenRouterProvider.js +19 -6
- package/dist/core/llm/providers/implementations/OpenRouterProvider.js.map +1 -1
- package/dist/io/channels/ChannelRouter.d.ts.map +1 -1
- package/dist/io/channels/ChannelRouter.js +4 -1
- package/dist/io/channels/ChannelRouter.js.map +1 -1
- package/dist/io/channels/meetings/signing.d.ts +19 -18
- package/dist/io/channels/meetings/signing.d.ts.map +1 -1
- package/dist/io/channels/meetings/signing.js +32 -20
- package/dist/io/channels/meetings/signing.js.map +1 -1
- package/dist/io/channels/meetings/stores/sql.d.ts +160 -0
- package/dist/io/channels/meetings/stores/sql.d.ts.map +1 -0
- package/dist/io/channels/meetings/stores/sql.js +497 -0
- package/dist/io/channels/meetings/stores/sql.js.map +1 -0
- package/dist/io/voice-pipeline/AcousticEndpointDetector.d.ts +2 -0
- package/dist/io/voice-pipeline/AcousticEndpointDetector.d.ts.map +1 -1
- package/dist/io/voice-pipeline/AcousticEndpointDetector.js +1 -0
- package/dist/io/voice-pipeline/AcousticEndpointDetector.js.map +1 -1
- package/dist/io/voice-pipeline/HeuristicEndpointDetector.d.ts +2 -0
- package/dist/io/voice-pipeline/HeuristicEndpointDetector.d.ts.map +1 -1
- package/dist/io/voice-pipeline/HeuristicEndpointDetector.js +4 -0
- package/dist/io/voice-pipeline/HeuristicEndpointDetector.js.map +1 -1
- package/dist/io/voice-pipeline/ListenSession.d.ts +111 -0
- package/dist/io/voice-pipeline/ListenSession.d.ts.map +1 -0
- package/dist/io/voice-pipeline/ListenSession.js +242 -0
- package/dist/io/voice-pipeline/ListenSession.js.map +1 -0
- package/dist/io/voice-pipeline/LiveKitStreamTransport.d.ts +8 -0
- package/dist/io/voice-pipeline/LiveKitStreamTransport.d.ts.map +1 -1
- package/dist/io/voice-pipeline/LiveKitStreamTransport.js +32 -1
- package/dist/io/voice-pipeline/LiveKitStreamTransport.js.map +1 -1
- package/dist/io/voice-pipeline/ReconnectingSTT.d.ts +90 -0
- package/dist/io/voice-pipeline/ReconnectingSTT.d.ts.map +1 -0
- package/dist/io/voice-pipeline/ReconnectingSTT.js +318 -0
- package/dist/io/voice-pipeline/ReconnectingSTT.js.map +1 -0
- package/dist/io/voice-pipeline/env-constructor.d.ts +17 -9
- package/dist/io/voice-pipeline/env-constructor.d.ts.map +1 -1
- package/dist/io/voice-pipeline/env-constructor.js +6 -2
- package/dist/io/voice-pipeline/env-constructor.js.map +1 -1
- package/dist/io/voice-pipeline/index.d.ts +6 -0
- package/dist/io/voice-pipeline/index.d.ts.map +1 -1
- package/dist/io/voice-pipeline/index.js +7 -0
- package/dist/io/voice-pipeline/index.js.map +1 -1
- package/dist/io/voice-pipeline/providers/StreamingSTTChain.d.ts +9 -5
- package/dist/io/voice-pipeline/providers/StreamingSTTChain.d.ts.map +1 -1
- package/dist/io/voice-pipeline/providers/StreamingSTTChain.js +44 -8
- package/dist/io/voice-pipeline/providers/StreamingSTTChain.js.map +1 -1
- package/dist/io/voice-pipeline/types.d.ts +6 -0
- package/dist/io/voice-pipeline/types.d.ts.map +1 -1
- package/dist/orchestration/planner/PlanningEngine.js +5 -5
- package/dist/orchestration/planner/PlanningEngine.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,318 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module voice-pipeline/ReconnectingSTT
|
|
3
|
+
*
|
|
4
|
+
* One streaming transcriber, reconnected when its session errors or closes:
|
|
5
|
+
* the last seconds of audio are replayed into the new session before the
|
|
6
|
+
* frames that arrived meanwhile, a replayed duplicate is dropped, each new
|
|
7
|
+
* session's clock is moved onto the one session timeline, and the caller
|
|
8
|
+
* hears `stt:reconnected` and `stt:gap`. After the cap, `error` then `close`.
|
|
9
|
+
* A chain of several providers fails over instead ({@link StreamingSTTChain});
|
|
10
|
+
* this wraps a chain of one.
|
|
11
|
+
*/
|
|
12
|
+
import { EventEmitter } from 'node:events';
|
|
13
|
+
import { AudioRingBuffer } from './AudioRingBuffer.js';
|
|
14
|
+
import { TranscriptDedupe } from './TranscriptDedupe.js';
|
|
15
|
+
const frameMs = (f) => (f.samples.length / f.sampleRate) * 1000;
|
|
16
|
+
/**
|
|
17
|
+
* An {@link IStreamingSTT} over one provider whose session is reconnected.
|
|
18
|
+
*
|
|
19
|
+
* An `error` or `close` of the provider's session that the caller did not ask
|
|
20
|
+
* for opens a new session of the same provider, at most
|
|
21
|
+
* `maxAttemptsPerMinute` times in any sixty seconds. The new session hears the
|
|
22
|
+
* buffered audio first (the last `ringBufferCapacityMs`, when there is at least
|
|
23
|
+
* `minReplayMs` of it), then the frames pushed while it opened, then live
|
|
24
|
+
* audio. Its `startMs` and `endMs` are moved onto one timeline, the audio
|
|
25
|
+
* pushed since the session began, and a final that repeats one already
|
|
26
|
+
* emitted over the same audio is dropped. Only finals with finite start and end
|
|
27
|
+
* bounds and a positive duration enter the dedupe history; others pass through.
|
|
28
|
+
* Queue overflow leaves a gap after the replay, preserving the original times
|
|
29
|
+
* of both replayed and retained audio. Each reconnect emits
|
|
30
|
+
* `stt:reconnected` ({@link SttReconnectedEvent}) and `stt:gap`
|
|
31
|
+
* ({@link SttGapEvent}). Past the cap the session emits `error`, then `close`.
|
|
32
|
+
*
|
|
33
|
+
* The session forwards `transcript`, `vad`, `speech_start`, `speech_end`,
|
|
34
|
+
* `usage` and `warning` from the provider's sessions; `usage` comes from every
|
|
35
|
+
* one of them, a replaced one too, since a session reports its audio as it
|
|
36
|
+
* closes. `flush()` during a reconnect waits for the replacement, replay and
|
|
37
|
+
* queued audio before flushing it. A close during that flush, or after it with
|
|
38
|
+
* no further provider activity or pushed audio, ends the stream without a
|
|
39
|
+
* reconnect. Activity after a completed flush makes a later close a failure.
|
|
40
|
+
*
|
|
41
|
+
* @example
|
|
42
|
+
* ```typescript
|
|
43
|
+
* const stt = new ReconnectingSTT(new DeepgramStreamingSTT({ apiKey: process.env.DEEPGRAM_API_KEY! }));
|
|
44
|
+
* const session = await stt.startSession({ language: 'en-US' });
|
|
45
|
+
* session.on('stt:gap', ({ lostMs }: SttGapEvent) => console.log(`the transcriber was away for ${lostMs} ms`));
|
|
46
|
+
* ```
|
|
47
|
+
*/
|
|
48
|
+
export class ReconnectingSTT {
|
|
49
|
+
/**
|
|
50
|
+
* @param inner - The provider each session opens, again on every reconnect.
|
|
51
|
+
* @param options - The replay buffer, the attempt cap, the queue and the clock.
|
|
52
|
+
*/
|
|
53
|
+
constructor(inner, options = {}) {
|
|
54
|
+
this.inner = inner;
|
|
55
|
+
this.providerId = `reconnecting:${inner.providerId}`;
|
|
56
|
+
this.capacityMs = options.ringBufferCapacityMs ?? 3000;
|
|
57
|
+
this.minReplayMs = options.minReplayMs ?? 400;
|
|
58
|
+
this.maxAttempts = options.maxAttemptsPerMinute ?? 3;
|
|
59
|
+
this.queueCapacityMs = options.queueCapacityMs ?? 2000;
|
|
60
|
+
this.clock = options.clock ?? Date.now;
|
|
61
|
+
}
|
|
62
|
+
/** Whether the inner provider has a session open. */
|
|
63
|
+
get isStreaming() {
|
|
64
|
+
return this.inner.isStreaming;
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Opens a session of the inner provider behind a session that reconnects it.
|
|
68
|
+
*
|
|
69
|
+
* @param config - Passed to the inner provider for the first session and for every reconnect.
|
|
70
|
+
* @returns The session, with a read-only `droppedFrames`: the queued frames dropped during reconnects so far.
|
|
71
|
+
* @throws {Error} When the first session fails to open; a session that fails to open on a reconnect is retried
|
|
72
|
+
* within the cap.
|
|
73
|
+
*/
|
|
74
|
+
async startSession(config) {
|
|
75
|
+
const facade = new EventEmitter();
|
|
76
|
+
const ring = new AudioRingBuffer({ capacityMs: this.capacityMs, sampleRate: 16000 });
|
|
77
|
+
const dedupe = new TranscriptDedupe();
|
|
78
|
+
const attempts = [];
|
|
79
|
+
const queue = [];
|
|
80
|
+
let queuedMs = 0;
|
|
81
|
+
let droppedQueuedMs = 0;
|
|
82
|
+
let dropped = 0;
|
|
83
|
+
let current = await this.inner.startSession(config);
|
|
84
|
+
// the connection generation: the dedupe skips observations of one provider id, so each session gets an id of its own
|
|
85
|
+
let generation = 0;
|
|
86
|
+
// where each session's clock 0 sits on the session timeline (the audio pushed by the caller since the start)
|
|
87
|
+
let pushedMs = 0;
|
|
88
|
+
let offsetMs = 0;
|
|
89
|
+
let reconnecting = false;
|
|
90
|
+
let reconnectPromise;
|
|
91
|
+
let closedByCaller = false;
|
|
92
|
+
let ended = false;
|
|
93
|
+
// The flush is the last operation until audio or provider activity follows it.
|
|
94
|
+
let flushed = false;
|
|
95
|
+
let flushing;
|
|
96
|
+
/** Ends the session once: `close`, after which nothing but `usage` is forwarded. */
|
|
97
|
+
const finish = () => {
|
|
98
|
+
if (ended)
|
|
99
|
+
return;
|
|
100
|
+
ended = true;
|
|
101
|
+
facade.emit('close');
|
|
102
|
+
};
|
|
103
|
+
const attach = (session, sessionGeneration, sessionOffsetMs, replayedMs = 0, gapMs = 0) => {
|
|
104
|
+
const providerId = `${this.inner.providerId}#${sessionGeneration}`;
|
|
105
|
+
const activity = () => {
|
|
106
|
+
if (session === current)
|
|
107
|
+
flushed = false;
|
|
108
|
+
};
|
|
109
|
+
// End bounds are exclusive: an utterance ending exactly at the replay
|
|
110
|
+
// boundary still belongs to the audio before the gap.
|
|
111
|
+
const mapTime = (time, end = false) => time + sessionOffsetMs + ((end ? time > replayedMs : time >= replayedMs) ? gapMs : 0);
|
|
112
|
+
session.on('transcript', (raw) => {
|
|
113
|
+
if (ended)
|
|
114
|
+
return;
|
|
115
|
+
activity();
|
|
116
|
+
const evt = {
|
|
117
|
+
...raw,
|
|
118
|
+
...(raw.startMs !== undefined ? { startMs: mapTime(raw.startMs) } : {}),
|
|
119
|
+
...(raw.endMs !== undefined ? { endMs: mapTime(raw.endMs, true) } : {}),
|
|
120
|
+
};
|
|
121
|
+
if (evt.isFinal && evt.startMs !== undefined && evt.endMs !== undefined && Number.isFinite(evt.startMs) && Number.isFinite(evt.endMs) && evt.endMs > evt.startMs) {
|
|
122
|
+
const r = dedupe.evaluate({ provider: providerId, text: evt.text, audioStartMs: evt.startMs, audioEndMs: evt.endMs, isFinal: true });
|
|
123
|
+
if (r.isDuplicate)
|
|
124
|
+
return;
|
|
125
|
+
}
|
|
126
|
+
facade.emit('transcript', evt);
|
|
127
|
+
});
|
|
128
|
+
for (const name of ['vad', 'speech_start', 'speech_end']) {
|
|
129
|
+
session.on(name, (...args) => {
|
|
130
|
+
if (ended)
|
|
131
|
+
return;
|
|
132
|
+
activity();
|
|
133
|
+
facade.emit(name, ...args);
|
|
134
|
+
});
|
|
135
|
+
}
|
|
136
|
+
// from every session, a replaced or ended one too: a session reports the audio of its connections as it closes
|
|
137
|
+
session.on('usage', (usage) => {
|
|
138
|
+
activity();
|
|
139
|
+
facade.emit('usage', usage);
|
|
140
|
+
});
|
|
141
|
+
session.on('warning', (warning) => {
|
|
142
|
+
if (ended)
|
|
143
|
+
return;
|
|
144
|
+
activity();
|
|
145
|
+
// Listening here must not silence a warning: a provider session prints one nobody listens for, so the
|
|
146
|
+
// session prints it when its own caller does not listen either.
|
|
147
|
+
if (facade.listenerCount('warning') > 0)
|
|
148
|
+
facade.emit('warning', warning);
|
|
149
|
+
else
|
|
150
|
+
console.warn(`[${this.inner.providerId}] ${warning.message}`);
|
|
151
|
+
});
|
|
152
|
+
session.on('error', (err) => {
|
|
153
|
+
if (closedByCaller || session !== current)
|
|
154
|
+
return;
|
|
155
|
+
activity();
|
|
156
|
+
void reconnect(err);
|
|
157
|
+
});
|
|
158
|
+
session.on('close', () => {
|
|
159
|
+
if (closedByCaller || session !== current || reconnecting)
|
|
160
|
+
return;
|
|
161
|
+
if (flushed || flushing === session) {
|
|
162
|
+
// the provider sent its last final and ended its stream, as the caller's flush asked
|
|
163
|
+
finish();
|
|
164
|
+
return;
|
|
165
|
+
}
|
|
166
|
+
void reconnect(undefined);
|
|
167
|
+
});
|
|
168
|
+
};
|
|
169
|
+
const giveUp = (err) => {
|
|
170
|
+
if (ended)
|
|
171
|
+
return;
|
|
172
|
+
ended = true;
|
|
173
|
+
// the provider's session does not stay open behind a session that reports itself closed
|
|
174
|
+
try {
|
|
175
|
+
current.close();
|
|
176
|
+
}
|
|
177
|
+
catch {
|
|
178
|
+
// already gone
|
|
179
|
+
}
|
|
180
|
+
facade.emit('error', err);
|
|
181
|
+
facade.emit('close');
|
|
182
|
+
};
|
|
183
|
+
const runReconnect = async (err) => {
|
|
184
|
+
if (reconnecting || closedByCaller || ended)
|
|
185
|
+
return;
|
|
186
|
+
reconnecting = true;
|
|
187
|
+
const startedAt = this.clock();
|
|
188
|
+
const minuteAgo = startedAt - 60000;
|
|
189
|
+
while (attempts.length && attempts[0] < minuteAgo)
|
|
190
|
+
attempts.shift();
|
|
191
|
+
if (attempts.length >= this.maxAttempts) {
|
|
192
|
+
reconnecting = false;
|
|
193
|
+
giveUp(err ?? new Error(`${this.inner.providerId}: session ended after ${this.maxAttempts} reconnects in a minute`));
|
|
194
|
+
return;
|
|
195
|
+
}
|
|
196
|
+
attempts.push(startedAt);
|
|
197
|
+
const attempt = attempts.length;
|
|
198
|
+
try {
|
|
199
|
+
current.close();
|
|
200
|
+
}
|
|
201
|
+
catch {
|
|
202
|
+
// already gone
|
|
203
|
+
}
|
|
204
|
+
let next;
|
|
205
|
+
try {
|
|
206
|
+
next = await this.inner.startSession(config);
|
|
207
|
+
}
|
|
208
|
+
catch (startErr) {
|
|
209
|
+
reconnecting = false;
|
|
210
|
+
await runReconnect(startErr instanceof Error ? startErr : new Error(String(startErr)));
|
|
211
|
+
return;
|
|
212
|
+
}
|
|
213
|
+
if (closedByCaller) {
|
|
214
|
+
next.close();
|
|
215
|
+
reconnecting = false;
|
|
216
|
+
return;
|
|
217
|
+
}
|
|
218
|
+
const replay = ring.snapshot();
|
|
219
|
+
const bufferedMs = replay.reduce((duration, frame) => duration + frameMs(frame), 0);
|
|
220
|
+
const replayedMs = bufferedMs >= this.minReplayMs ? bufferedMs : 0;
|
|
221
|
+
// Clock zero belongs to the replay before the failure. Dropped queue
|
|
222
|
+
// audio shifts only the retained queue and the live audio after it.
|
|
223
|
+
generation += 1;
|
|
224
|
+
offsetMs = pushedMs - queuedMs - droppedQueuedMs - replayedMs;
|
|
225
|
+
current = next;
|
|
226
|
+
flushed = false;
|
|
227
|
+
attach(next, generation, offsetMs, replayedMs, droppedQueuedMs);
|
|
228
|
+
if (replayedMs > 0)
|
|
229
|
+
for (const f of replay)
|
|
230
|
+
next.pushAudio(f);
|
|
231
|
+
// After a gap the ring's old span and the retained queue are not contiguous;
|
|
232
|
+
// keep only the audio a later replay can place on one timeline.
|
|
233
|
+
if (droppedQueuedMs > 0)
|
|
234
|
+
ring.clear();
|
|
235
|
+
for (const f of queue.splice(0)) {
|
|
236
|
+
ring.push(f);
|
|
237
|
+
next.pushAudio(f);
|
|
238
|
+
}
|
|
239
|
+
queuedMs = 0;
|
|
240
|
+
droppedQueuedMs = 0;
|
|
241
|
+
reconnecting = false;
|
|
242
|
+
facade.emit('stt:reconnected', { attempt, replayedMs });
|
|
243
|
+
facade.emit('stt:gap', { attempt, lostMs: this.clock() - startedAt });
|
|
244
|
+
};
|
|
245
|
+
const reconnect = (err) => {
|
|
246
|
+
if (reconnecting || closedByCaller || ended)
|
|
247
|
+
return reconnectPromise ?? Promise.resolve();
|
|
248
|
+
reconnectPromise = runReconnect(err);
|
|
249
|
+
return reconnectPromise;
|
|
250
|
+
};
|
|
251
|
+
attach(current, generation, offsetMs);
|
|
252
|
+
const session = Object.assign(facade, {
|
|
253
|
+
pushAudio: (frame) => {
|
|
254
|
+
if (ended || closedByCaller)
|
|
255
|
+
return;
|
|
256
|
+
flushed = false;
|
|
257
|
+
flushing = undefined;
|
|
258
|
+
pushedMs += frameMs(frame);
|
|
259
|
+
if (reconnecting) {
|
|
260
|
+
queue.push(frame);
|
|
261
|
+
queuedMs += frameMs(frame);
|
|
262
|
+
while (queuedMs > this.queueCapacityMs && queue.length) {
|
|
263
|
+
const old = queue.shift();
|
|
264
|
+
queuedMs -= frameMs(old);
|
|
265
|
+
droppedQueuedMs += frameMs(old);
|
|
266
|
+
dropped += 1;
|
|
267
|
+
}
|
|
268
|
+
return;
|
|
269
|
+
}
|
|
270
|
+
ring.push(frame);
|
|
271
|
+
try {
|
|
272
|
+
current.pushAudio(frame);
|
|
273
|
+
}
|
|
274
|
+
catch (err) {
|
|
275
|
+
void reconnect(err instanceof Error ? err : new Error(String(err)));
|
|
276
|
+
}
|
|
277
|
+
},
|
|
278
|
+
/**
|
|
279
|
+
* Waits for any reconnect and its replay, then drains the adopted session. A close during the flush or
|
|
280
|
+
* before subsequent provider activity or audio ends the stream without reconnecting.
|
|
281
|
+
*/
|
|
282
|
+
flush: async () => {
|
|
283
|
+
if (ended || closedByCaller)
|
|
284
|
+
return;
|
|
285
|
+
while (reconnecting && reconnectPromise)
|
|
286
|
+
await reconnectPromise;
|
|
287
|
+
if (ended || closedByCaller)
|
|
288
|
+
return;
|
|
289
|
+
const target = current;
|
|
290
|
+
flushed = true;
|
|
291
|
+
flushing = target;
|
|
292
|
+
try {
|
|
293
|
+
await target.flush();
|
|
294
|
+
}
|
|
295
|
+
finally {
|
|
296
|
+
if (flushing === target)
|
|
297
|
+
flushing = undefined;
|
|
298
|
+
}
|
|
299
|
+
},
|
|
300
|
+
/** Closes the live session and emits `close` once, from the facade itself: what the provider does after is ignored. */
|
|
301
|
+
close: () => {
|
|
302
|
+
if (closedByCaller)
|
|
303
|
+
return;
|
|
304
|
+
closedByCaller = true;
|
|
305
|
+
try {
|
|
306
|
+
current.close();
|
|
307
|
+
}
|
|
308
|
+
catch {
|
|
309
|
+
// already gone
|
|
310
|
+
}
|
|
311
|
+
finish();
|
|
312
|
+
},
|
|
313
|
+
});
|
|
314
|
+
Object.defineProperty(session, 'droppedFrames', { get: () => dropped, enumerable: true });
|
|
315
|
+
return session;
|
|
316
|
+
}
|
|
317
|
+
}
|
|
318
|
+
//# sourceMappingURL=ReconnectingSTT.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ReconnectingSTT.js","sourceRoot":"","sources":["../../../src/io/voice-pipeline/ReconnectingSTT.ts"],"names":[],"mappings":"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"}
|
|
@@ -47,7 +47,9 @@ export interface VoiceProviderEnvConfig {
|
|
|
47
47
|
* Whether the STT chain keeps a ring buffer and re-routes mid-utterance.
|
|
48
48
|
* Default true. A session is then the chain's failover facade: it forwards
|
|
49
49
|
* transcripts, speech events, `'usage'` and `'warning'` from its provider
|
|
50
|
-
* sessions, and
|
|
50
|
+
* sessions, and its `flush()` drains the provider session in use.
|
|
51
|
+
* A provider close after flush and before the next frame emits one facade
|
|
52
|
+
* `close`; later audio is ignored and no backup starts.
|
|
51
53
|
*/
|
|
52
54
|
enableMidUtteranceFailover?: boolean;
|
|
53
55
|
/** Whether the TTS chain re-sends accumulated tokens on primary
|
|
@@ -57,10 +59,10 @@ export interface VoiceProviderEnvConfig {
|
|
|
57
59
|
* Options for the OpenAI Realtime transcription provider, which joins the
|
|
58
60
|
* STT chain when `OPENAI_API_KEY` is set (model, turn detection, rollover,
|
|
59
61
|
* usage reports and the rest; the key comes from the environment). With
|
|
60
|
-
* mid-utterance failover on, a session
|
|
61
|
-
* configuration in which the caller commits each
|
|
62
|
-
* (`turnDetection: null`, or a model that takes no server turn
|
|
63
|
-
*
|
|
62
|
+
* mid-utterance failover on, a session's `flush()` reaches the provider
|
|
63
|
+
* session in use, so a configuration in which the caller commits each
|
|
64
|
+
* turn (`turnDetection: null`, or a model that takes no server turn
|
|
65
|
+
* detection) commits through the failover facade too.
|
|
64
66
|
*/
|
|
65
67
|
openaiRealtime?: Omit<OpenAIRealtimeTranscriptionSTTConfig, 'apiKey'>;
|
|
66
68
|
}
|
|
@@ -79,7 +81,9 @@ export interface VoiceProviderBundle {
|
|
|
79
81
|
* with a shared circuit breaker and metrics reporter. Both chains fail over
|
|
80
82
|
* mid-call by default. An STT session is then the chain's failover facade:
|
|
81
83
|
* it forwards transcripts, speech events, `'usage'` and `'warning'` from its
|
|
82
|
-
* provider sessions, and
|
|
84
|
+
* provider sessions, and its `flush()` drains the provider session in use.
|
|
85
|
+
* A provider close after flush and before the next frame emits one facade
|
|
86
|
+
* `close`; later audio is ignored and no backup starts.
|
|
83
87
|
*
|
|
84
88
|
* @param config - Environment source, preferences, failover switches and OpenAI Realtime options.
|
|
85
89
|
* @returns The chains with their metrics reporter and circuit breaker.
|
|
@@ -94,8 +98,10 @@ export interface SttProviderEnvConfig {
|
|
|
94
98
|
* Whether the chain keeps a ring buffer and re-routes mid-utterance.
|
|
95
99
|
* Default false here: with failover off a session is its provider's own,
|
|
96
100
|
* with `flush()` and every event the provider emits. The failover facade
|
|
97
|
-
* forwards transcripts, speech events, `'usage'` and `'warning'`, and
|
|
98
|
-
*
|
|
101
|
+
* forwards transcripts, speech events, `'usage'` and `'warning'`, and its
|
|
102
|
+
* `flush()` drains the provider session in use.
|
|
103
|
+
* A provider close after flush and before the next frame emits one facade
|
|
104
|
+
* `close`; later audio is ignored and no backup starts.
|
|
99
105
|
*/
|
|
100
106
|
enableMidUtteranceFailover?: boolean;
|
|
101
107
|
/**
|
|
@@ -154,7 +160,9 @@ export declare function sttEntryPricePerMinute(entry: string): number | undefine
|
|
|
154
160
|
* it on, as in {@link createSttChainFromEnv}. With failover off a session is
|
|
155
161
|
* its provider's own, with `flush()` and every event the provider emits; the
|
|
156
162
|
* failover facade forwards transcripts, speech events, `'usage'` and
|
|
157
|
-
* `'warning'`, and
|
|
163
|
+
* `'warning'`, and its `flush()` drains the provider session in use.
|
|
164
|
+
* A provider close after flush and before the next frame emits one facade
|
|
165
|
+
* `close`; later audio is ignored and no backup starts.
|
|
158
166
|
*
|
|
159
167
|
* Entries of one vendor share that vendor's provider id (every `openai`
|
|
160
168
|
* entry is `openai-realtime-transcription`), so `currentProviderId`, the
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"env-constructor.d.ts","sourceRoot":"","sources":["../../../src/io/voice-pipeline/env-constructor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAEL,KAAK,0BAA0B,EAChC,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EAEL,KAAK,4BAA4B,EAClC,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EAEL,KAAK,oCAAoC,EAC1C,MAAM,+CAA+C,CAAC;AAQvD,OAAO,EACL,iBAAiB,EACjB,KAAK,wBAAwB,EAC9B,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AACrE,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAMjE,qBAAa,8BAA+B,SAAQ,KAAK;IACvD,QAAQ,CAAC,cAAc,EAAE,MAAM,EAAE,CAAC;gBAEtB,OAAO,EAAE,MAAM,EAAE;CAO9B;AAED,MAAM,WAAW,sBAAsB;IACrC,mDAAmD;IACnD,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;IACzC,oEAAoE;IACpE,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B;;;kCAG8B;IAC9B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,+EAA+E;IAC/E,IAAI,CAAC,EAAE,OAAO,GAAG,UAAU,GAAG,SAAS,CAAC;IACxC;;;;;;;OAOG;IACH,aAAa,CAAC,EAAE,UAAU,GAAG,YAAY,GAAG,UAAU,GAAG,MAAM,CAAC;IAChE
|
|
1
|
+
{"version":3,"file":"env-constructor.d.ts","sourceRoot":"","sources":["../../../src/io/voice-pipeline/env-constructor.ts"],"names":[],"mappings":"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"}
|
|
@@ -63,7 +63,9 @@ function sttProvidersFromEnv(env, openaiRealtime = {}) {
|
|
|
63
63
|
* with a shared circuit breaker and metrics reporter. Both chains fail over
|
|
64
64
|
* mid-call by default. An STT session is then the chain's failover facade:
|
|
65
65
|
* it forwards transcripts, speech events, `'usage'` and `'warning'` from its
|
|
66
|
-
* provider sessions, and
|
|
66
|
+
* provider sessions, and its `flush()` drains the provider session in use.
|
|
67
|
+
* A provider close after flush and before the next frame emits one facade
|
|
68
|
+
* `close`; later audio is ignored and no backup starts.
|
|
67
69
|
*
|
|
68
70
|
* @param config - Environment source, preferences, failover switches and OpenAI Realtime options.
|
|
69
71
|
* @returns The chains with their metrics reporter and circuit breaker.
|
|
@@ -216,7 +218,9 @@ export function sttEntryPricePerMinute(entry) {
|
|
|
216
218
|
* it on, as in {@link createSttChainFromEnv}. With failover off a session is
|
|
217
219
|
* its provider's own, with `flush()` and every event the provider emits; the
|
|
218
220
|
* failover facade forwards transcripts, speech events, `'usage'` and
|
|
219
|
-
* `'warning'`, and
|
|
221
|
+
* `'warning'`, and its `flush()` drains the provider session in use.
|
|
222
|
+
* A provider close after flush and before the next frame emits one facade
|
|
223
|
+
* `close`; later audio is ignored and no backup starts.
|
|
220
224
|
*
|
|
221
225
|
* Entries of one vendor share that vendor's provider id (every `openai`
|
|
222
226
|
* entry is `openai-realtime-transcription`), so `currentProviderId`, the
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"env-constructor.js","sourceRoot":"","sources":["../../../src/io/voice-pipeline/env-constructor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EACL,oBAAoB,GAErB,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EACL,sBAAsB,GAEvB,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EACL,8BAA8B,GAE/B,MAAM,+CAA+C,CAAC;AACvD,OAAO,EAAE,sBAAsB,EAAE,MAAM,uCAAuC,CAAC;AAC/E,OAAO,EAAE,wBAAwB,EAAE,MAAM,yCAAyC,CAAC;AACnF,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AACrE,OAAO,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AACvE,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAC3E,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EACL,iBAAiB,GAElB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AACrE,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAGjE,OAAO,EAAE,0BAA0B,EAAE,MAAM,2DAA2D,CAAC;AACvG,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,MAAM,OAAO,8BAA+B,SAAQ,KAAK;IAGvD,YAAY,OAAiB;QAC3B,KAAK,CACH,6CAA6C,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,qBAAqB,CACrF,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,gCAAgC,CAAC;QAC7C,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC;IAChC,CAAC;CACF;
|
|
1
|
+
{"version":3,"file":"env-constructor.js","sourceRoot":"","sources":["../../../src/io/voice-pipeline/env-constructor.ts"],"names":[],"mappings":"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"}
|
|
@@ -43,6 +43,10 @@
|
|
|
43
43
|
* **Agent Adapter:**
|
|
44
44
|
* - {@link AgentSessionVoiceAdapter} — Wraps any AgentOS `AgentSession` as `IVoicePipelineAgentSession`.
|
|
45
45
|
*
|
|
46
|
+
* **Listening:**
|
|
47
|
+
* - {@link startListenSession}: a transport's audio into a transcriber and each final into a sink as a numbered turn, with no speech output.
|
|
48
|
+
* - {@link ReconnectingSTT}: one transcriber whose session is reconnected, with the buffered audio replayed and replayed duplicates dropped.
|
|
49
|
+
*
|
|
46
50
|
* ## Usage
|
|
47
51
|
*
|
|
48
52
|
* ```typescript
|
|
@@ -105,6 +109,8 @@ export { AcousticEndpointDetector } from './AcousticEndpointDetector.js';
|
|
|
105
109
|
export { WebSocketStreamTransport } from './WebSocketStreamTransport.js';
|
|
106
110
|
export { WebRTCStreamTransport, createWebRTCTransport } from './WebRTCStreamTransport.js';
|
|
107
111
|
export { VoicePipelineOrchestrator } from './VoicePipelineOrchestrator.js';
|
|
112
|
+
export { startListenSession, type ListenSession, type ListenSessionOverrides, type ListenSessionStats, type ListenSessionState, type ListenEndReason } from './ListenSession.js';
|
|
113
|
+
export { ReconnectingSTT, type ReconnectingSTTOptions, type SttReconnectedEvent, type SttGapEvent } from './ReconnectingSTT.js';
|
|
108
114
|
export { VoiceInterruptError } from './VoiceInterruptError.js';
|
|
109
115
|
export { DeepgramStreamingSTT, type DeepgramStreamingSTTConfig, ElevenLabsStreamingSTT, type ElevenLabsStreamingSTTConfig, OpenAIRealtimeTranscriptionSTT, type OpenAIRealtimeTranscriptionSTTConfig, type OpenAIRealtimeTranscriptionRollover, type OpenAIRealtimeRolloverRequest, type OpenAIRealtimeTurnDetection, ElevenLabsStreamingTTS, type ElevenLabsStreamingTTSConfig, DeepgramAuraStreamingTTS, type DeepgramAuraStreamingTTSConfig, AgentSessionVoiceAdapter, StreamingSTTChain, type StreamingSTTChainOptions, type ProviderSelectedEvent, type ProviderFailedEvent, type ProviderFailoverEvent, StreamingTTSChain, type StreamingTTSChainOptions, type TTSProviderSelectedEvent, type TTSProviderFailedEvent, type TTSProviderFailoverEvent, } from './providers/index.js';
|
|
110
116
|
export { BatchSTTFallback, EmptyTranscriptError, DeepgramPreRecordedBatchSTT, type DeepgramPreRecordedBatchSTTConfig, OpenAIWhisperBatchSTT, type OpenAIWhisperBatchSTTConfig, } from './providers/index.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/io/voice-pipeline/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/io/voice-pipeline/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -43,6 +43,10 @@
|
|
|
43
43
|
* **Agent Adapter:**
|
|
44
44
|
* - {@link AgentSessionVoiceAdapter} — Wraps any AgentOS `AgentSession` as `IVoicePipelineAgentSession`.
|
|
45
45
|
*
|
|
46
|
+
* **Listening:**
|
|
47
|
+
* - {@link startListenSession}: a transport's audio into a transcriber and each final into a sink as a numbered turn, with no speech output.
|
|
48
|
+
* - {@link ReconnectingSTT}: one transcriber whose session is reconnected, with the buffered audio replayed and replayed duplicates dropped.
|
|
49
|
+
*
|
|
46
50
|
* ## Usage
|
|
47
51
|
*
|
|
48
52
|
* ```typescript
|
|
@@ -113,6 +117,9 @@ export { WebSocketStreamTransport } from './WebSocketStreamTransport.js';
|
|
|
113
117
|
export { WebRTCStreamTransport, createWebRTCTransport } from './WebRTCStreamTransport.js';
|
|
114
118
|
// Central pipeline orchestrator (state machine)
|
|
115
119
|
export { VoicePipelineOrchestrator } from './VoicePipelineOrchestrator.js';
|
|
120
|
+
// A listen-only session and a transcriber that reconnects (TranscriptTurn and ITranscriptInputSink come from types.ts, above)
|
|
121
|
+
export { startListenSession } from './ListenSession.js';
|
|
122
|
+
export { ReconnectingSTT } from './ReconnectingSTT.js';
|
|
116
123
|
// Typed error for barge-in interruptions
|
|
117
124
|
export { VoiceInterruptError } from './VoiceInterruptError.js';
|
|
118
125
|
// Streaming provider implementations
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/io/voice-pipeline/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/io/voice-pipeline/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqGG;AAEH,wDAAwD;AACxD,8EAA8E;AAC9E,cAAc,YAAY,CAAC;AAE3B,+DAA+D;AAC/D,OAAO,EAAE,iBAAiB,EAA0B,MAAM,sBAAsB,CAAC;AAEjF,4CAA4C;AAC5C,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAErE,6CAA6C;AAC7C,OAAO,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAC3E,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AAEzE,2CAA2C;AAC3C,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AAEzE,oDAAoD;AACpD,OAAO,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAE1F,gDAAgD;AAChD,OAAO,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAE3E,8HAA8H;AAC9H,OAAO,EAAE,kBAAkB,EAA2H,MAAM,oBAAoB,CAAC;AACjL,OAAO,EAAE,eAAe,EAA2E,MAAM,sBAAsB,CAAC;AAEhI,yCAAyC;AACzC,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAE/D,qCAAqC;AACrC,OAAO,EACL,oBAAoB,EAEpB,sBAAsB,EAEtB,8BAA8B,EAK9B,sBAAsB,EAEtB,wBAAwB,EAExB,wBAAwB,EACxB,iBAAiB,EAKjB,iBAAiB,GAKlB,MAAM,sBAAsB,CAAC;AAE9B,iDAAiD;AACjD,OAAO,EACL,gBAAgB,EAChB,oBAAoB,EACpB,2BAA2B,EAE3B,qBAAqB,GAEtB,MAAM,sBAAsB,CAAC;AAE9B,wBAAwB;AACxB,OAAO,EACL,kBAAkB,EAClB,mBAAmB,GAGpB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAIL,mBAAmB,EACnB,gBAAgB,GACjB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,cAAc,GAIf,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,eAAe,EAA+B,MAAM,sBAAsB,CAAC;AACpF,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAiC,MAAM,iBAAiB,CAAC;AACjG,OAAO,EACL,gBAAgB,EAChB,uBAAuB,GAGxB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,gCAAgC,EAChC,2BAA2B,EAC3B,8BAA8B,EAC9B,6BAA6B,EAC7B,gBAAgB,EAChB,0BAA0B,GAI3B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,WAAW,EAAmE,MAAM,kBAAkB,CAAC;AAChH,OAAO,EACL,oBAAoB,GAGrB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,2BAA2B,EAC3B,qBAAqB,EACrB,8BAA8B,EAK9B,cAAc,EACd,sBAAsB,EACtB,aAAa,EACb,iBAAiB,GAIlB,MAAM,sBAAsB,CAAC"}
|
|
@@ -44,8 +44,9 @@ export interface StreamingSTTChainOptions {
|
|
|
44
44
|
/** When true, the chain tracks audio via a ring buffer and re-routes to
|
|
45
45
|
* the next backup on mid-session failure. The session is then the
|
|
46
46
|
* chain's facade: it forwards transcripts, speech events, `'usage'` and
|
|
47
|
-
* `'warning'` from its provider sessions, and
|
|
48
|
-
*
|
|
47
|
+
* `'warning'` from its provider sessions, and its `flush()` drains the
|
|
48
|
+
* provider session in use. A provider close after flush and before the next
|
|
49
|
+
* frame emits one facade close; later audio is ignored. Default: false. */
|
|
49
50
|
enableMidUtteranceFailover?: boolean;
|
|
50
51
|
/** Ring buffer capacity in ms for mid-utterance replay. Default 3000. */
|
|
51
52
|
ringBufferCapacityMs?: number;
|
|
@@ -76,9 +77,12 @@ export declare class StreamingSTTChain implements IStreamingSTT {
|
|
|
76
77
|
* for ends the session: it starts no backup, and a backup still starting
|
|
77
78
|
* then is closed when it opens. The facade forwards `'transcript'`,
|
|
78
79
|
* `'vad'`, `'speech_start'`, `'speech_end'`, `'usage'` and `'warning'`
|
|
79
|
-
* from its sessions, and has `pushAudio()
|
|
80
|
-
*
|
|
81
|
-
*
|
|
80
|
+
* from its sessions, and has `pushAudio()`, `flush()` and `close()`.
|
|
81
|
+
* `flush()` drains the provider session in use; a close that session makes
|
|
82
|
+
* before the next frame is pushed is the provider ending its stream, as
|
|
83
|
+
* the session contract has it (a final, then `'close'`), and starts no
|
|
84
|
+
* backup. Both that close and the caller's close emit `'close'` once, release
|
|
85
|
+
* the active session, and ignore subsequent `pushAudio()` and `flush()` calls.
|
|
82
86
|
*/
|
|
83
87
|
private wrapSession;
|
|
84
88
|
private emitMetric;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StreamingSTTChain.d.ts","sourceRoot":"","sources":["../../../../src/io/voice-pipeline/providers/StreamingSTTChain.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAGH,OAAO,KAAK,EACV,aAAa,EACb,mBAAmB,EACnB,kBAAkB,EAGnB,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAGL,KAAK,gBAAgB,EACtB,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,KAAK,EACV,oBAAoB,EAErB,MAAM,4BAA4B,CAAC;AAIpC,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,KAAK,GAAG,KAAK,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,KAAK,GAAG,KAAK,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,gBAAgB,CAAC;IAC7B,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,KAAK,GAAG,KAAK,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,gBAAgB,CAAC;IACzB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,wBAAwB;IACvC,OAAO,CAAC,EAAE,cAAc,CAAC;IACzB,OAAO,CAAC,EAAE,oBAAoB,CAAC;IAC/B,kBAAkB,CAAC,EAAE,CAAC,KAAK,EAAE,qBAAqB,KAAK,IAAI,CAAC;IAC5D,gBAAgB,CAAC,EAAE,CAAC,KAAK,EAAE,mBAAmB,KAAK,IAAI,CAAC;IACxD,kBAAkB,CAAC,EAAE,CAAC,KAAK,EAAE,qBAAqB,KAAK,IAAI,CAAC;IAC5D
|
|
1
|
+
{"version":3,"file":"StreamingSTTChain.d.ts","sourceRoot":"","sources":["../../../../src/io/voice-pipeline/providers/StreamingSTTChain.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAGH,OAAO,KAAK,EACV,aAAa,EACb,mBAAmB,EACnB,kBAAkB,EAGnB,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAGL,KAAK,gBAAgB,EACtB,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,KAAK,EACV,oBAAoB,EAErB,MAAM,4BAA4B,CAAC;AAIpC,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,KAAK,GAAG,KAAK,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,KAAK,GAAG,KAAK,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,gBAAgB,CAAC;IAC7B,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,KAAK,GAAG,KAAK,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,gBAAgB,CAAC;IACzB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,wBAAwB;IACvC,OAAO,CAAC,EAAE,cAAc,CAAC;IACzB,OAAO,CAAC,EAAE,oBAAoB,CAAC;IAC/B,kBAAkB,CAAC,EAAE,CAAC,KAAK,EAAE,qBAAqB,KAAK,IAAI,CAAC;IAC5D,gBAAgB,CAAC,EAAE,CAAC,KAAK,EAAE,mBAAmB,KAAK,IAAI,CAAC;IACxD,kBAAkB,CAAC,EAAE,CAAC,KAAK,EAAE,qBAAqB,KAAK,IAAI,CAAC;IAC5D;;;;;gFAK4E;IAC5E,0BAA0B,CAAC,EAAE,OAAO,CAAC;IACrC,yEAAyE;IACzE,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B;qDACiD;IACjD,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,KAAK,WAAW,GAAG,aAAa,GAAG,eAAe,CAAC;AAEnD,qBAAa,iBAAkB,YAAW,aAAa;IACrD,QAAQ,CAAC,UAAU,WAAW;IAC9B,QAAQ,CAAC,WAAW,SAAS;IAE7B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAgB;IAC3C,OAAO,CAAC,QAAQ,CAAC,IAAI,CAA2B;IAChD,OAAO,CAAC,gBAAgB,CAAC,CAAS;gBAEtB,SAAS,EAAE,WAAW,EAAE,EAAE,IAAI,GAAE,wBAA6B;IAQzE;gDAC4C;IAC5C,IAAI,SAAS,IAAI,SAAS,WAAW,EAAE,CAEtC;IAED,IAAI,iBAAiB,IAAI,MAAM,GAAG,SAAS,CAE1C;IAEK,YAAY,CAAC,MAAM,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,mBAAmB,CAAC;IA6D7E,OAAO,CAAC,gBAAgB;IAOxB;;;;;;;;;;;;;;;OAeG;IACH,OAAO,CAAC,WAAW;IAuMnB,OAAO,CAAC,UAAU;CAGnB"}
|