@framers/agentos 0.9.121 → 0.9.122
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/io/voice-pipeline/WebSocketStreamTransport.d.ts +17 -0
- package/dist/io/voice-pipeline/WebSocketStreamTransport.d.ts.map +1 -1
- package/dist/io/voice-pipeline/WebSocketStreamTransport.js +39 -10
- package/dist/io/voice-pipeline/WebSocketStreamTransport.js.map +1 -1
- package/dist/io/voice-pipeline/providers/DeepgramAuraStreamingTTS.d.ts.map +1 -1
- package/dist/io/voice-pipeline/providers/DeepgramAuraStreamingTTS.js +108 -19
- package/dist/io/voice-pipeline/providers/DeepgramAuraStreamingTTS.js.map +1 -1
- package/dist/io/voice-pipeline/providers/DeepgramStreamingSTT.d.ts.map +1 -1
- package/dist/io/voice-pipeline/providers/DeepgramStreamingSTT.js +53 -4
- package/dist/io/voice-pipeline/providers/DeepgramStreamingSTT.js.map +1 -1
- package/package.json +1 -1
|
@@ -108,6 +108,21 @@ export interface WebSocketStreamTransportConfig {
|
|
|
108
108
|
* @example 16000
|
|
109
109
|
*/
|
|
110
110
|
sampleRate: number;
|
|
111
|
+
/**
|
|
112
|
+
* Wire encoding of INBOUND binary audio frames.
|
|
113
|
+
*
|
|
114
|
+
* - `'float32'` (default) — each binary message is a serialized
|
|
115
|
+
* `Float32Array` of samples in [-1, 1]. Legacy/back-compat behavior.
|
|
116
|
+
* - `'linear16'` — each binary message is raw signed 16-bit LE PCM
|
|
117
|
+
* (`Int16Array` bytes). This is what browser capture worklets typically
|
|
118
|
+
* send (and what Deepgram-style STT expects natively); samples are
|
|
119
|
+
* converted to Float32 in [-1, 1] before the `'audio'` event fires.
|
|
120
|
+
*
|
|
121
|
+
* Pick the value that matches the remote client's actual wire format —
|
|
122
|
+
* decoding Int16 bytes as Float32 yields garbage samples that transcribe
|
|
123
|
+
* as silence.
|
|
124
|
+
*/
|
|
125
|
+
inboundEncoding?: 'float32' | 'linear16';
|
|
111
126
|
}
|
|
112
127
|
/**
|
|
113
128
|
* Bidirectional voice pipeline transport backed by a WebSocket connection.
|
|
@@ -171,6 +186,8 @@ export declare class WebSocketStreamTransport extends EventEmitter implements IS
|
|
|
171
186
|
* Configured once at construction and never changed.
|
|
172
187
|
*/
|
|
173
188
|
private readonly _sampleRate;
|
|
189
|
+
/** Wire encoding of inbound binary frames ('float32' legacy default). */
|
|
190
|
+
private readonly _inboundEncoding;
|
|
174
191
|
/**
|
|
175
192
|
* Create a new transport wrapping an existing WebSocket connection.
|
|
176
193
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WebSocketStreamTransport.d.ts","sourceRoot":"","sources":["../../../src/io/voice-pipeline/WebSocketStreamTransport.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,OAAO,KAAK,EACV,gBAAgB,EAChB,UAAU,EACV,iBAAiB,EACjB,uBAAuB,EAEvB,iBAAiB,EAClB,MAAM,YAAY,CAAC;AAMpB;;;;;;;;;GASG;AACH,MAAM,WAAW,aAAc,SAAQ,MAAM,CAAC,YAAY;IACxD;;;;OAIG;IACH,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAEvB;;;;OAIG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAEzB;;;;;;OAMG;IACH,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAE5B;;;;;;OAMG;IACH,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,KAAK,IAAI,GAAG,IAAI,CAAC;IAE9D;;;;;OAKG;IACH,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7C;AAMD;;;;;;;;GAQG;AACH,MAAM,WAAW,8BAA8B;IAC7C;;;;;;;OAOG;IACH,UAAU,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"WebSocketStreamTransport.d.ts","sourceRoot":"","sources":["../../../src/io/voice-pipeline/WebSocketStreamTransport.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,OAAO,KAAK,EACV,gBAAgB,EAChB,UAAU,EACV,iBAAiB,EACjB,uBAAuB,EAEvB,iBAAiB,EAClB,MAAM,YAAY,CAAC;AAMpB;;;;;;;;;GASG;AACH,MAAM,WAAW,aAAc,SAAQ,MAAM,CAAC,YAAY;IACxD;;;;OAIG;IACH,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAEvB;;;;OAIG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAEzB;;;;;;OAMG;IACH,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAE5B;;;;;;OAMG;IACH,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,KAAK,IAAI,GAAG,IAAI,CAAC;IAE9D;;;;;OAKG;IACH,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7C;AAMD;;;;;;;;GAQG;AACH,MAAM,WAAW,8BAA8B;IAC7C;;;;;;;OAOG;IACH,UAAU,EAAE,MAAM,CAAC;IAEnB;;;;;;;;;;;;;OAaG;IACH,eAAe,CAAC,EAAE,SAAS,GAAG,UAAU,CAAC;CAC1C;AAMD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2CG;AACH,qBAAa,wBAAyB,SAAQ,YAAa,YAAW,gBAAgB;IAKpF;;;OAGG;IACH,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IAEpB;;;OAGG;IACH,OAAO,CAAC,MAAM,CAA+C;IAM7D,2CAA2C;IAC3C,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAgB;IAEpC;;;OAGG;IACH,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;IAErC,yEAAyE;IACzE,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAyB;IAM1D;;;;;;;;;;OAUG;gBACS,EAAE,EAAE,aAAa,EAAE,MAAM,EAAE,8BAA8B;IAoBrE;;;OAGG;IACH,IAAI,KAAK,IAAI,YAAY,GAAG,MAAM,GAAG,SAAS,GAAG,QAAQ,CAExD;IAED;;;;;;;;;;;;OAYG;IACH,SAAS,CAAC,KAAK,EAAE,iBAAiB,GAAG,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IA0B/D;;;;;;;;;;;OAWG;IACH,WAAW,CAAC,GAAG,EAAE,uBAAuB,GAAG,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;IAS5E;;;;;;;;;OASG;IACH,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI;IAS3C;;;;;;;;OAQG;IACH,OAAO,CAAC,kBAAkB;CAgG3B"}
|
|
@@ -108,6 +108,7 @@ export class WebSocketStreamTransport extends EventEmitter {
|
|
|
108
108
|
super();
|
|
109
109
|
this._ws = ws;
|
|
110
110
|
this._sampleRate = config.sampleRate;
|
|
111
|
+
this._inboundEncoding = config.inboundEncoding ?? 'float32';
|
|
111
112
|
this.id = randomUUID();
|
|
112
113
|
// Determine initial state from the socket's current ready-state value.
|
|
113
114
|
// The `ws` package uses numeric constants: OPEN = 1, CLOSED = 3.
|
|
@@ -210,14 +211,24 @@ export class WebSocketStreamTransport extends EventEmitter {
|
|
|
210
211
|
* no further events are expected.
|
|
211
212
|
*/
|
|
212
213
|
_attachWsListeners() {
|
|
213
|
-
// `message` -- inbound data from the remote peer
|
|
214
|
-
|
|
215
|
-
|
|
214
|
+
// `message` -- inbound data from the remote peer.
|
|
215
|
+
//
|
|
216
|
+
// `ws` v8+ delivers BOTH text and binary frames as Buffers and signals the
|
|
217
|
+
// distinction via the second `isBinary` argument — a `typeof data ===
|
|
218
|
+
// 'string'` check alone silently routes every JSON control frame into the
|
|
219
|
+
// binary/audio path (garbage frames, and a RangeError when the JSON's
|
|
220
|
+
// byteLength isn't sample-aligned). Honor `isBinary` when the socket
|
|
221
|
+
// provides it; fall back to the typeof check for browser-style polyfills
|
|
222
|
+
// and mocks that deliver text as actual strings.
|
|
223
|
+
this._ws.on('message', (data, isBinary) => {
|
|
224
|
+
const isText = typeof data === 'string' || isBinary === false;
|
|
225
|
+
if (isText) {
|
|
216
226
|
// Text frame: parse as ClientTextMessage JSON and propagate as 'control'.
|
|
217
227
|
// Malformed JSON emits an error but does NOT crash the transport,
|
|
218
228
|
// allowing the session to recover from a single bad message.
|
|
229
|
+
const text = typeof data === 'string' ? data : Buffer.from(data).toString('utf-8');
|
|
219
230
|
try {
|
|
220
|
-
const msg = JSON.parse(
|
|
231
|
+
const msg = JSON.parse(text);
|
|
221
232
|
this.emit('message', msg);
|
|
222
233
|
}
|
|
223
234
|
catch (err) {
|
|
@@ -225,7 +236,7 @@ export class WebSocketStreamTransport extends EventEmitter {
|
|
|
225
236
|
}
|
|
226
237
|
}
|
|
227
238
|
else {
|
|
228
|
-
// Binary frame:
|
|
239
|
+
// Binary frame: decode per the configured inbound encoding.
|
|
229
240
|
// The `ws` package delivers binary as a Node.js Buffer; browser-style
|
|
230
241
|
// WebSocket polyfills may deliver an ArrayBuffer instead.
|
|
231
242
|
let buffer;
|
|
@@ -236,11 +247,29 @@ export class WebSocketStreamTransport extends EventEmitter {
|
|
|
236
247
|
// ArrayBuffer (browser-style) -- wrap in a Node.js Buffer
|
|
237
248
|
buffer = Buffer.from(data);
|
|
238
249
|
}
|
|
239
|
-
//
|
|
240
|
-
//
|
|
241
|
-
//
|
|
242
|
-
//
|
|
243
|
-
|
|
250
|
+
// ALWAYS copy into a freshly allocated, aligned buffer before creating
|
|
251
|
+
// the typed-array view. `ws` hands out views into its internal receive
|
|
252
|
+
// pool: their byteOffset is arbitrary (a non-4-aligned offset makes
|
|
253
|
+
// `new Float32Array(buf, offset, n)` throw
|
|
254
|
+
// "RangeError: start offset of Float32Array should be a multiple of 4"
|
|
255
|
+
// — observed crashing live sessions), the pool memory may be reused
|
|
256
|
+
// after the handler returns, and a trailing partial sample would make
|
|
257
|
+
// the view length non-integral. The copy is a few KB per frame.
|
|
258
|
+
let samples;
|
|
259
|
+
if (this._inboundEncoding === 'linear16') {
|
|
260
|
+
// Raw signed 16-bit LE PCM (browser worklet wire) → Float32 [-1, 1].
|
|
261
|
+
const sampleCount = Math.floor(buffer.byteLength / 2);
|
|
262
|
+
samples = new Float32Array(sampleCount);
|
|
263
|
+
for (let i = 0; i < sampleCount; i++) {
|
|
264
|
+
samples[i] = buffer.readInt16LE(i * 2) / 32768;
|
|
265
|
+
}
|
|
266
|
+
}
|
|
267
|
+
else {
|
|
268
|
+
const sampleCount = Math.floor(buffer.byteLength / Float32Array.BYTES_PER_ELEMENT);
|
|
269
|
+
const aligned = new ArrayBuffer(sampleCount * Float32Array.BYTES_PER_ELEMENT);
|
|
270
|
+
new Uint8Array(aligned).set(buffer.subarray(0, sampleCount * Float32Array.BYTES_PER_ELEMENT));
|
|
271
|
+
samples = new Float32Array(aligned);
|
|
272
|
+
}
|
|
244
273
|
const frame = {
|
|
245
274
|
samples,
|
|
246
275
|
sampleRate: this._sampleRate,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WebSocketStreamTransport.js","sourceRoot":"","sources":["../../../src/io/voice-pipeline/WebSocketStreamTransport.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"WebSocketStreamTransport.js","sourceRoot":"","sources":["../../../src/io/voice-pipeline/WebSocketStreamTransport.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DeepgramAuraStreamingTTS.d.ts","sourceRoot":"","sources":["../../../../src/io/voice-pipeline/providers/DeepgramAuraStreamingTTS.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAIH,OAAO,KAAK,EACV,aAAa,EACb,mBAAmB,EACnB,kBAAkB,EAEnB,MAAM,aAAa,CAAC;AAErB,OAAO,EAEL,KAAK,eAAe,EACpB,KAAK,iBAAiB,EACtB,KAAK,oBAAoB,EAC1B,MAAM,uBAAuB,CAAC;AAiB/B,uEAAuE;AACvE,MAAM,WAAW,8BAA8B;IAC7C,wBAAwB;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,8DAA8D;IAC9D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,4DAA4D;IAC5D,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,+DAA+D;IAC/D,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,qCAAqC;IACrC,YAAY,CAAC,EAAE,OAAO,CAAC,oBAAoB,CAAC,CAAC;IAC7C,yCAAyC;IACzC,WAAW,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC;QAAE,EAAE,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAC/F;
|
|
1
|
+
{"version":3,"file":"DeepgramAuraStreamingTTS.d.ts","sourceRoot":"","sources":["../../../../src/io/voice-pipeline/providers/DeepgramAuraStreamingTTS.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAIH,OAAO,KAAK,EACV,aAAa,EACb,mBAAmB,EACnB,kBAAkB,EAEnB,MAAM,aAAa,CAAC;AAErB,OAAO,EAEL,KAAK,eAAe,EACpB,KAAK,iBAAiB,EACtB,KAAK,oBAAoB,EAC1B,MAAM,uBAAuB,CAAC;AAiB/B,uEAAuE;AACvE,MAAM,WAAW,8BAA8B;IAC7C,wBAAwB;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,8DAA8D;IAC9D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,4DAA4D;IAC5D,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,+DAA+D;IAC/D,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,qCAAqC;IACrC,YAAY,CAAC,EAAE,OAAO,CAAC,oBAAoB,CAAC,CAAC;IAC7C,yCAAyC;IACzC,WAAW,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC;QAAE,EAAE,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAC/F;AAoPD;;;;;;;;;;;;GAYG;AACH,qBAAa,wBAAyB,YAAW,aAAa,EAAE,eAAe;IAOjE,OAAO,CAAC,QAAQ,CAAC,MAAM;IANnC,QAAQ,CAAC,UAAU,mBAAmB;IACtC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,YAAY,EAAE,oBAAoB,CAAC;IAC5C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAa;IACrC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA6D;gBAE5D,MAAM,EAAE,8BAA8B;IAa7D,WAAW,IAAI,OAAO,CAAC,iBAAiB,CAAC;IA0BzC,YAAY,CAAC,MAAM,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,mBAAmB,CAAC;CAM9E"}
|
|
@@ -26,8 +26,8 @@ import { defaultCapabilities, } from '../HealthyProvider.js';
|
|
|
26
26
|
import { VoicePipelineError } from '../VoicePipelineError.js';
|
|
27
27
|
const DEFAULT_VOICE = 'aura-2-thalia-en';
|
|
28
28
|
const DEFAULT_SAMPLE_RATE = 24000;
|
|
29
|
-
/**
|
|
30
|
-
const
|
|
29
|
+
/** How long to wait for the Deepgram WS upgrade before failing the connect. */
|
|
30
|
+
const CONNECT_TIMEOUT_MS = 8000;
|
|
31
31
|
async function defaultDeepgramTtsProbe(apiKey) {
|
|
32
32
|
const start = Date.now();
|
|
33
33
|
const res = await fetch('https://api.deepgram.com/v1/auth/token', {
|
|
@@ -36,13 +36,43 @@ async function defaultDeepgramTtsProbe(apiKey) {
|
|
|
36
36
|
});
|
|
37
37
|
return { ok: res.ok, status: res.status, latencyMs: Date.now() - start };
|
|
38
38
|
}
|
|
39
|
-
/**
|
|
39
|
+
/**
|
|
40
|
+
* Map the pipeline audio-format union to a Deepgram STREAMING `encoding` value.
|
|
41
|
+
*
|
|
42
|
+
* The `/v1/speak` WebSocket accepts ONLY raw encodings — Deepgram rejects the
|
|
43
|
+
* upgrade with `HTTP 400 UNSUPPORTED_AUDIO_FORMAT: encoding=mp3 is not
|
|
44
|
+
* supported for streaming requests, expected one of linear16, mulaw, alaw`
|
|
45
|
+
* (verified live 2026-07-08; mp3/opus are REST-only). So the wire is ALWAYS
|
|
46
|
+
* `linear16`; when the caller asked for a compressed container (mp3/opus) each
|
|
47
|
+
* emitted chunk is wrapped as a standalone WAV so browser consumers that
|
|
48
|
+
* decode chunks via `AudioContext.decodeAudioData()` keep working unchanged.
|
|
49
|
+
*/
|
|
40
50
|
function toDeepgramEncoding(format) {
|
|
41
|
-
if (format === 'opus')
|
|
42
|
-
return { encoding: 'opus', format: 'opus' };
|
|
43
51
|
if (format === 'pcm')
|
|
44
|
-
return { encoding: 'linear16',
|
|
45
|
-
return { encoding: '
|
|
52
|
+
return { encoding: 'linear16', container: 'raw' };
|
|
53
|
+
return { encoding: 'linear16', container: 'wav' };
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Wrap a raw 16-bit mono PCM buffer in a standalone RIFF/WAVE header so the
|
|
57
|
+
* chunk is independently decodable (`decodeAudioData` needs a container).
|
|
58
|
+
*/
|
|
59
|
+
function wrapWav(pcm, sampleRate) {
|
|
60
|
+
const header = Buffer.alloc(44);
|
|
61
|
+
const byteRate = sampleRate * 2; // mono, 16-bit
|
|
62
|
+
header.write('RIFF', 0, 'ascii');
|
|
63
|
+
header.writeUInt32LE(36 + pcm.byteLength, 4);
|
|
64
|
+
header.write('WAVE', 8, 'ascii');
|
|
65
|
+
header.write('fmt ', 12, 'ascii');
|
|
66
|
+
header.writeUInt32LE(16, 16); // fmt chunk size
|
|
67
|
+
header.writeUInt16LE(1, 20); // PCM
|
|
68
|
+
header.writeUInt16LE(1, 22); // mono
|
|
69
|
+
header.writeUInt32LE(sampleRate, 24);
|
|
70
|
+
header.writeUInt32LE(byteRate, 28);
|
|
71
|
+
header.writeUInt16LE(2, 32); // block align
|
|
72
|
+
header.writeUInt16LE(16, 34); // bits/sample
|
|
73
|
+
header.write('data', 36, 'ascii');
|
|
74
|
+
header.writeUInt32LE(pcm.byteLength, 40);
|
|
75
|
+
return Buffer.concat([header, pcm]);
|
|
46
76
|
}
|
|
47
77
|
/**
|
|
48
78
|
* A live streaming TTS session connected to Deepgram Aura via WebSocket.
|
|
@@ -59,10 +89,24 @@ class DeepgramAuraStreamingTTSSession extends EventEmitter {
|
|
|
59
89
|
this.voice = sessionConfig.voice ?? config.voice ?? DEFAULT_VOICE;
|
|
60
90
|
const mapped = toDeepgramEncoding(sessionConfig.format ?? 'mp3');
|
|
61
91
|
this.encoding = mapped.encoding;
|
|
62
|
-
this.
|
|
92
|
+
this.container = mapped.container;
|
|
63
93
|
this.sampleRate = sessionConfig.sampleRate ?? DEFAULT_SAMPLE_RATE;
|
|
64
94
|
}
|
|
65
|
-
/**
|
|
95
|
+
/**
|
|
96
|
+
* Open the WebSocket. Deepgram needs no beginning-of-stream handshake.
|
|
97
|
+
*
|
|
98
|
+
* Failure paths settle the returned promise EXACTLY once and reject FIRST:
|
|
99
|
+
* the previous implementation ran `this.emit('error', err)` before
|
|
100
|
+
* `reject(err)`, and at connect time no `'error'` listener exists yet, so
|
|
101
|
+
* the emit threw synchronously (Node EventEmitter contract), `reject` never
|
|
102
|
+
* executed, and the connect promise never settled — the caller (orchestrator
|
|
103
|
+
* `startSession`) awaited forever and the voice session became a silent
|
|
104
|
+
* zombie while the raw error surfaced only as a process-level
|
|
105
|
+
* `uncaughtException`. A handshake rejection now also captures the HTTP
|
|
106
|
+
* response body (`unexpected-response`), which carries Deepgram's actual
|
|
107
|
+
* error (e.g. UNSUPPORTED_AUDIO_FORMAT) instead of the blind
|
|
108
|
+
* "Unexpected server response: 400".
|
|
109
|
+
*/
|
|
66
110
|
async connect() {
|
|
67
111
|
const wsBase = this.config.baseUrl ?? 'wss://api.deepgram.com/v1/speak';
|
|
68
112
|
const params = new URLSearchParams({ model: this.voice, encoding: this.encoding });
|
|
@@ -71,21 +115,62 @@ class DeepgramAuraStreamingTTSSession extends EventEmitter {
|
|
|
71
115
|
params.set('sample_rate', String(this.sampleRate));
|
|
72
116
|
const url = `${wsBase}?${params.toString()}`;
|
|
73
117
|
return new Promise((resolve, reject) => {
|
|
118
|
+
let settled = false;
|
|
119
|
+
const timer = setTimeout(() => {
|
|
120
|
+
fail(new Error(`deepgram aura ws connect timed out after ${CONNECT_TIMEOUT_MS}ms`));
|
|
121
|
+
}, CONNECT_TIMEOUT_MS);
|
|
122
|
+
const fail = (err) => {
|
|
123
|
+
if (settled) {
|
|
124
|
+
this._emitErrorSafe(err);
|
|
125
|
+
return;
|
|
126
|
+
}
|
|
127
|
+
settled = true;
|
|
128
|
+
clearTimeout(timer);
|
|
129
|
+
reject(err);
|
|
130
|
+
};
|
|
74
131
|
this.ws = new WebSocket(url, {
|
|
75
132
|
headers: { Authorization: `Token ${this.config.apiKey}` },
|
|
76
133
|
});
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
134
|
+
// The server refused the upgrade (4xx/5xx). Read the response body —
|
|
135
|
+
// Deepgram names the offending parameter in it.
|
|
136
|
+
this.ws.on('unexpected-response', (_req, res) => {
|
|
137
|
+
let body = '';
|
|
138
|
+
res.on('data', (d) => {
|
|
139
|
+
body += d.toString('utf-8');
|
|
140
|
+
});
|
|
141
|
+
res.on('end', () => {
|
|
142
|
+
fail(new Error(`deepgram aura ws rejected: HTTP ${res.statusCode}${body ? ` — ${body.slice(0, 300)}` : ''}`));
|
|
143
|
+
});
|
|
144
|
+
});
|
|
145
|
+
this.ws.on('open', () => {
|
|
146
|
+
if (settled)
|
|
147
|
+
return;
|
|
148
|
+
settled = true;
|
|
149
|
+
clearTimeout(timer);
|
|
150
|
+
resolve();
|
|
81
151
|
});
|
|
152
|
+
this.ws.on('error', (err) => fail(err));
|
|
82
153
|
this.ws.on('message', (data, isBinary) => this._handleMessage(data, isBinary));
|
|
83
154
|
this.ws.on('close', () => {
|
|
155
|
+
if (!settled)
|
|
156
|
+
fail(new Error('deepgram aura ws closed before the upgrade completed'));
|
|
84
157
|
this.closed = true;
|
|
85
158
|
this.emit('close');
|
|
86
159
|
});
|
|
87
160
|
});
|
|
88
161
|
}
|
|
162
|
+
/**
|
|
163
|
+
* Emit `'error'` only when a listener exists — an unlistened EventEmitter
|
|
164
|
+
* `'error'` throws and takes the whole process down as an uncaughtException.
|
|
165
|
+
*/
|
|
166
|
+
_emitErrorSafe(err) {
|
|
167
|
+
if (this.listenerCount('error') > 0) {
|
|
168
|
+
this.emit('error', err);
|
|
169
|
+
}
|
|
170
|
+
else {
|
|
171
|
+
console.warn('[deepgram-aura] session error (no listener attached):', err.message);
|
|
172
|
+
}
|
|
173
|
+
}
|
|
89
174
|
pushTokens(tokens) {
|
|
90
175
|
if (this.closed || !this.ws || this.ws.readyState !== WebSocket.OPEN)
|
|
91
176
|
return;
|
|
@@ -134,14 +219,18 @@ class DeepgramAuraStreamingTTSSession extends EventEmitter {
|
|
|
134
219
|
}
|
|
135
220
|
_handleMessage(data, isBinary) {
|
|
136
221
|
if (isBinary) {
|
|
137
|
-
const
|
|
138
|
-
//
|
|
139
|
-
//
|
|
140
|
-
|
|
141
|
-
const durationMs = Math.round((
|
|
222
|
+
const pcmBuffer = Buffer.isBuffer(data) ? data : Buffer.from(data);
|
|
223
|
+
// The wire is always linear16 (see toDeepgramEncoding): uncompressed
|
|
224
|
+
// 16-bit mono at sampleRate * 2 bytes/sec — duration derives from the
|
|
225
|
+
// RAW pcm bytes, before any container wrapping.
|
|
226
|
+
const durationMs = Math.round((pcmBuffer.byteLength / (this.sampleRate * 2)) * 1000);
|
|
227
|
+
// Compressed-container callers (mp3/opus) get each chunk wrapped as a
|
|
228
|
+
// standalone WAV so per-chunk `decodeAudioData()` consumers work
|
|
229
|
+
// unchanged; explicit 'pcm' callers get the raw samples.
|
|
230
|
+
const audioBuffer = this.container === 'wav' ? wrapWav(pcmBuffer, this.sampleRate) : pcmBuffer;
|
|
142
231
|
const chunk = {
|
|
143
232
|
audio: audioBuffer,
|
|
144
|
-
format:
|
|
233
|
+
format: 'pcm',
|
|
145
234
|
sampleRate: this.sampleRate,
|
|
146
235
|
durationMs,
|
|
147
236
|
text: this.accumulatedText,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DeepgramAuraStreamingTTS.js","sourceRoot":"","sources":["../../../../src/io/voice-pipeline/providers/DeepgramAuraStreamingTTS.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,SAAS,MAAM,IAAI,CAAC;AAO3B,OAAO,EAAE,UAAU,EAAE,MAAM,uCAAuC,CAAC;AACnE,OAAO,EACL,mBAAmB,GAIpB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAE9D,MAAM,aAAa,GAAG,kBAAkB,CAAC;AACzC,MAAM,mBAAmB,GAAG,KAAM,CAAC;AACnC
|
|
1
|
+
{"version":3,"file":"DeepgramAuraStreamingTTS.js","sourceRoot":"","sources":["../../../../src/io/voice-pipeline/providers/DeepgramAuraStreamingTTS.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DeepgramStreamingSTT.d.ts","sourceRoot":"","sources":["../../../../src/io/voice-pipeline/providers/DeepgramStreamingSTT.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAKH,OAAO,KAAK,EACV,aAAa,EACb,mBAAmB,EACnB,kBAAkB,EAInB,MAAM,aAAa,CAAC;AACrB,OAAO,EAEL,KAAK,eAAe,EACpB,KAAK,iBAAiB,EACtB,KAAK,oBAAoB,EAC1B,MAAM,uBAAuB,CAAC;AAG/B;;;GAGG;AACH,MAAM,MAAM,gBAAgB,GAAG,CAC7B,MAAM,EAAE,MAAM,KACX,OAAO,CAAC;IAAE,EAAE,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC;AAejE;;GAEG;AACH,MAAM,WAAW,0BAA0B;IACzC,wEAAwE;IACxE,MAAM,EAAE,MAAM,CAAC;IAEf;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,wEAAwE;IACxE,YAAY,CAAC,EAAE,OAAO,CAAC,oBAAoB,CAAC,CAAC;IAE7C,4EAA4E;IAC5E,WAAW,CAAC,EAAE,gBAAgB,CAAC;CAChC;
|
|
1
|
+
{"version":3,"file":"DeepgramStreamingSTT.d.ts","sourceRoot":"","sources":["../../../../src/io/voice-pipeline/providers/DeepgramStreamingSTT.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAKH,OAAO,KAAK,EACV,aAAa,EACb,mBAAmB,EACnB,kBAAkB,EAInB,MAAM,aAAa,CAAC;AACrB,OAAO,EAEL,KAAK,eAAe,EACpB,KAAK,iBAAiB,EACtB,KAAK,oBAAoB,EAC1B,MAAM,uBAAuB,CAAC;AAG/B;;;GAGG;AACH,MAAM,MAAM,gBAAgB,GAAG,CAC7B,MAAM,EAAE,MAAM,KACX,OAAO,CAAC;IAAE,EAAE,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC;AAejE;;GAEG;AACH,MAAM,WAAW,0BAA0B;IACzC,wEAAwE;IACxE,MAAM,EAAE,MAAM,CAAC;IAEf;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,wEAAwE;IACxE,YAAY,CAAC,EAAE,OAAO,CAAC,oBAAoB,CAAC,CAAC;IAE7C,4EAA4E;IAC5E,WAAW,CAAC,EAAE,gBAAgB,CAAC;CAChC;AAyTD;;;;;;;;;;;;;GAaG;AACH,qBAAa,oBAAqB,YAAW,aAAa,EAAE,eAAe;IAQ7D,OAAO,CAAC,QAAQ,CAAC,MAAM;IAPnC,QAAQ,CAAC,UAAU,wBAAwB;IAC3C,QAAQ,CAAC,WAAW,QAAQ;IAC5B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,YAAY,EAAE,oBAAoB,CAAC;IAC5C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAa;IACrC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAmB;gBAElB,MAAM,EAAE,0BAA0B;IAazD,WAAW,IAAI,OAAO,CAAC,iBAAiB,CAAC;IA6B/C;;;OAGG;IACG,YAAY,CAAC,MAAM,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,mBAAmB,CAAC;CAM9E"}
|
|
@@ -44,6 +44,8 @@ async function defaultDeepgramProbe(apiKey) {
|
|
|
44
44
|
* Emits `transcript`, `speech_start`, `speech_end`, `error`, and `close` events
|
|
45
45
|
* as required by the voice pipeline orchestrator.
|
|
46
46
|
*/
|
|
47
|
+
/** How long to wait for the Deepgram WS upgrade before failing the connect. */
|
|
48
|
+
const CONNECT_TIMEOUT_MS = 8000;
|
|
47
49
|
class DeepgramStreamingSTTSession extends EventEmitter {
|
|
48
50
|
constructor(config, sessionConfig) {
|
|
49
51
|
super();
|
|
@@ -53,6 +55,18 @@ class DeepgramStreamingSTTSession extends EventEmitter {
|
|
|
53
55
|
this.speechActive = false;
|
|
54
56
|
this.closed = false;
|
|
55
57
|
}
|
|
58
|
+
/**
|
|
59
|
+
* Emit `'error'` only when a listener exists — an unlistened EventEmitter
|
|
60
|
+
* `'error'` throws and takes the whole process down as an uncaughtException.
|
|
61
|
+
*/
|
|
62
|
+
_emitErrorSafe(err) {
|
|
63
|
+
if (this.listenerCount('error') > 0) {
|
|
64
|
+
this.emit('error', err);
|
|
65
|
+
}
|
|
66
|
+
else {
|
|
67
|
+
console.warn('[deepgram-streaming] session error (no listener attached):', err.message);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
56
70
|
/**
|
|
57
71
|
* Open the WebSocket connection to Deepgram.
|
|
58
72
|
* Resolves once the connection is established and ready to receive audio.
|
|
@@ -91,21 +105,56 @@ class DeepgramStreamingSTTSession extends EventEmitter {
|
|
|
91
105
|
}
|
|
92
106
|
}
|
|
93
107
|
const url = `${baseUrl}?${params.toString()}`;
|
|
108
|
+
// Failure paths settle the promise EXACTLY once and reject FIRST: the
|
|
109
|
+
// previous implementation ran `this.emit('error', err)` before
|
|
110
|
+
// `reject(err)` — with no 'error' listener attached at connect time the
|
|
111
|
+
// emit threw synchronously (Node EventEmitter contract), `reject` never
|
|
112
|
+
// executed, and the connect promise never settled, hanging the caller
|
|
113
|
+
// forever. Handshake rejections also capture the HTTP body now
|
|
114
|
+
// (`unexpected-response`) so the real Deepgram error is visible instead
|
|
115
|
+
// of the blind "Unexpected server response: NNN".
|
|
94
116
|
return new Promise((resolve, reject) => {
|
|
117
|
+
let settled = false;
|
|
118
|
+
const timer = setTimeout(() => {
|
|
119
|
+
fail(new Error(`deepgram stt ws connect timed out after ${CONNECT_TIMEOUT_MS}ms`));
|
|
120
|
+
}, CONNECT_TIMEOUT_MS);
|
|
121
|
+
const fail = (err) => {
|
|
122
|
+
if (settled) {
|
|
123
|
+
this._emitErrorSafe(err);
|
|
124
|
+
return;
|
|
125
|
+
}
|
|
126
|
+
settled = true;
|
|
127
|
+
clearTimeout(timer);
|
|
128
|
+
reject(err);
|
|
129
|
+
};
|
|
95
130
|
this.ws = new WebSocket(url, {
|
|
96
131
|
headers: {
|
|
97
132
|
Authorization: `Token ${this.config.apiKey}`,
|
|
98
133
|
},
|
|
99
134
|
});
|
|
100
|
-
this.ws.on('
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
135
|
+
this.ws.on('unexpected-response', (_req, res) => {
|
|
136
|
+
let body = '';
|
|
137
|
+
res.on('data', (d) => {
|
|
138
|
+
body += d.toString('utf-8');
|
|
139
|
+
});
|
|
140
|
+
res.on('end', () => {
|
|
141
|
+
fail(new Error(`deepgram stt ws rejected: HTTP ${res.statusCode}${body ? ` — ${body.slice(0, 300)}` : ''}`));
|
|
142
|
+
});
|
|
143
|
+
});
|
|
144
|
+
this.ws.on('open', () => {
|
|
145
|
+
if (settled)
|
|
146
|
+
return;
|
|
147
|
+
settled = true;
|
|
148
|
+
clearTimeout(timer);
|
|
149
|
+
resolve();
|
|
104
150
|
});
|
|
151
|
+
this.ws.on('error', (err) => fail(err));
|
|
105
152
|
this.ws.on('message', (data) => {
|
|
106
153
|
this._handleMessage(typeof data === 'string' ? data : data.toString('utf-8'));
|
|
107
154
|
});
|
|
108
155
|
this.ws.on('close', () => {
|
|
156
|
+
if (!settled)
|
|
157
|
+
fail(new Error('deepgram stt ws closed before the upgrade completed'));
|
|
109
158
|
this.closed = true;
|
|
110
159
|
this.emit('close');
|
|
111
160
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DeepgramStreamingSTT.js","sourceRoot":"","sources":["../../../../src/io/voice-pipeline/providers/DeepgramStreamingSTT.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"DeepgramStreamingSTT.js","sourceRoot":"","sources":["../../../../src/io/voice-pipeline/providers/DeepgramStreamingSTT.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,SAAS,MAAM,IAAI,CAAC;AAC3B,OAAO,EAAE,UAAU,EAAE,MAAM,uCAAuC,CAAC;AASnE,OAAO,EACL,mBAAmB,GAIpB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAU9D,KAAK,UAAU,oBAAoB,CAAC,MAAc;IAChD,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACzB,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,sCAAsC,EAAE;QAC9D,OAAO,EAAE,EAAE,aAAa,EAAE,SAAS,MAAM,EAAE,EAAE;QAC7C,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC;KAClC,CAAC,CAAC;IACH,OAAO,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,EAAE,CAAC;AAC3E,CAAC;AAwFD,8EAA8E;AAC9E,yBAAyB;AACzB,8EAA8E;AAE9E;;;;GAIG;AACH,+EAA+E;AAC/E,MAAM,kBAAkB,GAAG,IAAK,CAAC;AAEjC,MAAM,2BAA4B,SAAQ,YAAY;IAKpD,YACmB,MAAkC,EAClC,aAAiC;QAElD,KAAK,EAAE,CAAC;QAHS,WAAM,GAAN,MAAM,CAA4B;QAClC,kBAAa,GAAb,aAAa,CAAoB;QAN5C,OAAE,GAAqB,IAAI,CAAC;QAC5B,iBAAY,GAAG,KAAK,CAAC;QACrB,WAAM,GAAG,KAAK,CAAC;IAOvB,CAAC;IAED;;;OAGG;IACK,cAAc,CAAC,GAAU;QAC/B,IAAI,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;YACpC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;QAC1B,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,IAAI,CAAC,4DAA4D,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;QAC1F,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,OAAO;QACX,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,kCAAkC,CAAC;QAC1E,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,IAAI,QAAQ,CAAC;QAC5C,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,IAAI,OAAO,CAAC;QACxD,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,KAAK,KAAK,CAAC;QAC5D,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,SAAS,KAAK,KAAK,CAAC;QAEzD,kFAAkF;QAClF,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,eAAe,IAAI,EAAE,CAAC;QAEtD,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC;YACjC,KAAK;YACL,QAAQ;YACR,SAAS,EAAE,MAAM,CAAC,SAAS,CAAC;YAC5B,eAAe,EAAE,MAAM,CAAC,OAAO,CAAC;YAChC,WAAW,EAAE,MAAM;YACnB,UAAU,EAAE,MAAM;YAClB,QAAQ,EAAE,UAAU;YACpB,WAAW,EAAE,OAAO;YACpB,QAAQ,EAAE,GAAG;SACd,CAAC,CAAC;QAEH,8CAA8C;QAC9C,IAAI,IAAI,CAAC,SAAS;YAAE,MAAM,CAAC,GAAG,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;QACpD,IAAI,IAAI,CAAC,YAAY;YAAE,MAAM,CAAC,GAAG,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;QAC1D,IAAI,IAAI,CAAC,OAAO;YAAE,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QAChD,IAAI,IAAI,CAAC,gBAAgB;YAAE,MAAM,CAAC,GAAG,CAAC,kBAAkB,EAAE,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC;QACzF,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;YACjC,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAC/B,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;YACxC,CAAC;QACH,CAAC;QAED,MAAM,GAAG,GAAG,GAAG,OAAO,IAAI,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAC;QAE9C,sEAAsE;QACtE,+DAA+D;QAC/D,wEAAwE;QACxE,wEAAwE;QACxE,sEAAsE;QACtE,+DAA+D;QAC/D,wEAAwE;QACxE,kDAAkD;QAClD,OAAO,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC3C,IAAI,OAAO,GAAG,KAAK,CAAC;YACpB,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;gBAC5B,IAAI,CAAC,IAAI,KAAK,CAAC,2CAA2C,kBAAkB,IAAI,CAAC,CAAC,CAAC;YACrF,CAAC,EAAE,kBAAkB,CAAC,CAAC;YACvB,MAAM,IAAI,GAAG,CAAC,GAAU,EAAQ,EAAE;gBAChC,IAAI,OAAO,EAAE,CAAC;oBACZ,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;oBACzB,OAAO;gBACT,CAAC;gBACD,OAAO,GAAG,IAAI,CAAC;gBACf,YAAY,CAAC,KAAK,CAAC,CAAC;gBACpB,MAAM,CAAC,GAAG,CAAC,CAAC;YACd,CAAC,CAAC;YAEF,IAAI,CAAC,EAAE,GAAG,IAAI,SAAS,CAAC,GAAG,EAAE;gBAC3B,OAAO,EAAE;oBACP,aAAa,EAAE,SAAS,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE;iBAC7C;aACF,CAAC,CAAC;YAEH,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,qBAAqB,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE;gBAC9C,IAAI,IAAI,GAAG,EAAE,CAAC;gBACd,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,CAAS,EAAE,EAAE;oBAC3B,IAAI,IAAI,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;gBAC9B,CAAC,CAAC,CAAC;gBACH,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE;oBACjB,IAAI,CACF,IAAI,KAAK,CACP,kCAAkC,GAAG,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAC5F,CACF,CAAC;gBACJ,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;YAEH,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE;gBACtB,IAAI,OAAO;oBAAE,OAAO;gBACpB,OAAO,GAAG,IAAI,CAAC;gBACf,YAAY,CAAC,KAAK,CAAC,CAAC;gBACpB,OAAO,EAAE,CAAC;YACZ,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,GAAY,CAAC,CAAC,CAAC;YAEjD,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,IAAqB,EAAE,EAAE;gBAC9C,IAAI,CAAC,cAAc,CAAC,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;YAChF,CAAC,CAAC,CAAC;YAEH,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;gBACvB,IAAI,CAAC,OAAO;oBAAE,IAAI,CAAC,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC,CAAC;gBACrF,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;gBACnB,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACrB,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;OAGG;IACH,SAAS,CAAC,KAAiB;QACzB,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,EAAE,CAAC,UAAU,KAAK,SAAS,CAAC,IAAI;YAAE,OAAO;QAE7E,gDAAgD;QAChD,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACjD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC9C,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACtD,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC;QAC3C,CAAC;QAED,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,UAAU,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC;IACxE,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,KAAK;QACT,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,EAAE,CAAC,UAAU,KAAK,SAAS,CAAC,IAAI;YAAE,OAAO;QAE7E,mDAAmD;QACnD,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC;QAEtD,+CAA+C;QAC/C,OAAO,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;YACnC,UAAU,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;QAC3B,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,KAAK;QACH,IAAI,IAAI,CAAC,MAAM;YAAE,OAAO;QACxB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QAEnB,IAAI,IAAI,CAAC,EAAE,EAAE,CAAC;YACZ,IAAI,IAAI,CAAC,EAAE,CAAC,UAAU,KAAK,SAAS,CAAC,IAAI,EAAE,CAAC;gBAC1C,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC;YACxC,CAAC;YACD,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC;QACjB,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACrB,CAAC;IAED,4EAA4E;IAC5E,UAAU;IACV,4EAA4E;IAE5E;;;OAGG;IACK,cAAc,CAAC,GAAW;QAChC,IAAI,GAA4B,CAAC;QACjC,IAAI,CAAC;YACH,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACxB,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,CAAC,wBAAwB;QAClC,CAAC;QAED,MAAM,IAAI,GAAG,GAAG,CAAC,IAAc,CAAC;QAEhC,6CAA6C;QAC7C,IAAI,IAAI,KAAK,eAAe,EAAE,CAAC;YAC7B,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;gBACvB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;gBACzB,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YAC5B,CAAC;YACD,OAAO;QACT,CAAC;QAED,iBAAiB;QACjB,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACvB,MAAM,MAAM,GAAG,GAA0B,CAAC;YAC1C,MAAM,GAAG,GAAG,MAAM,CAAC,OAAO,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,CAAC;YAC9C,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU;gBAAE,OAAO;YAEpC,uDAAuD;YACvD,MAAM,KAAK,GAAqB,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBAC5D,IAAI,EAAE,CAAC,CAAC,IAAI;gBACZ,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,EAAE,eAAe;gBAClD,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC;gBAC7B,UAAU,EAAE,CAAC,CAAC,UAAU;gBACxB,OAAO,EAAE,CAAC,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS;aACjE,CAAC,CAAC,CAAC;YAEJ,MAAM,KAAK,GAAoB;gBAC7B,IAAI,EAAE,GAAG,CAAC,UAAU;gBACpB,UAAU,EAAE,GAAG,CAAC,UAAU;gBAC1B,KAAK;gBACL,OAAO,EAAE,MAAM,CAAC,QAAQ;gBACxB,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC;aAC/C,CAAC;YAEF,4CAA4C;YAC5C,IAAI,MAAM,CAAC,UAAU,EAAE,OAAO,EAAE,CAAC;gBAC/B,KAAK,CAAC,SAAS,GAAG;oBAChB,KAAK,EAAE,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,SAAS;oBAC1C,UAAU,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,eAAe,CAAC;iBAChE,CAAC;YACJ,CAAC;YAED,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;YAE/B,8DAA8D;YAC9D,IAAI,MAAM,CAAC,YAAY,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;gBAC7C,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;gBAC1B,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAC1B,CAAC;QACH,CAAC;IACH,CAAC;CACF;AAED,8EAA8E;AAC9E,qBAAqB;AACrB,8EAA8E;AAE9E;;;;;;;;;;;;;GAaG;AACH,MAAM,OAAO,oBAAoB;IAQ/B,YAA6B,MAAkC;QAAlC,WAAM,GAAN,MAAM,CAA4B;QAPtD,eAAU,GAAG,oBAAoB,CAAC;QAClC,gBAAW,GAAG,IAAI,CAAC;QAO1B,IAAI,CAAC,OAAO,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAC7C,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,IAAI,EAAE,CAAC;QACtC,IAAI,CAAC,YAAY,GAAG,mBAAmB,CAAC;YACtC,SAAS,EAAE,CAAC,GAAG,CAAC;YAChB,SAAS,EAAE,IAAI;YACf,QAAQ,EAAE,UAAU;YACpB,YAAY,EAAE,UAAU;YACxB,GAAG,CAAC,MAAM,CAAC,YAAY,IAAI,EAAE,CAAC;SAC/B,CAAC,CAAC;QACH,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,IAAI,oBAAoB,CAAC;IAChE,CAAC;IAED,KAAK,CAAC,WAAW;QACf,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;YAC1B,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,sBAAsB,EAAE,EAAE,CAAC;QAClF,CAAC;QACD,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QAChC,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;YACxC,IAAI,GAAG,CAAC,EAAE;gBAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,CAAC,SAAS,EAAE,CAAC;YAC1D,MAAM,UAAU,GAAG,kBAAkB,CAAC,aAAa,CACjD,IAAI,KAAK,CAAC,QAAQ,GAAG,CAAC,MAAM,EAAE,CAAC,EAC/B,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,CAAC,UAAU,EAAE,CAC3C,CAAC;YACF,OAAO;gBACL,EAAE,EAAE,KAAK;gBACT,SAAS,EAAE,GAAG,CAAC,SAAS;gBACxB,KAAK,EAAE,EAAE,KAAK,EAAE,UAAU,CAAC,UAAU,EAAE,OAAO,EAAE,QAAQ,GAAG,CAAC,MAAM,EAAE,EAAE;aACvE,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,UAAU,GAAG,kBAAkB,CAAC,aAAa,CAAC,GAAG,EAAE;gBACvD,IAAI,EAAE,KAAK;gBACX,QAAQ,EAAE,IAAI,CAAC,UAAU;aAC1B,CAAC,CAAC;YACH,OAAO;gBACL,EAAE,EAAE,KAAK;gBACT,KAAK,EAAE,EAAE,KAAK,EAAE,UAAU,CAAC,UAAU,EAAE,OAAO,EAAE,UAAU,CAAC,OAAO,EAAE;aACrE,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,YAAY,CAAC,MAA2B;QAC5C,MAAM,cAAc,GAAG,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;QACvE,MAAM,OAAO,GAAG,IAAI,2BAA2B,CAAC,cAAc,EAAE,MAAM,IAAI,EAAE,CAAC,CAAC;QAC9E,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC;QACxB,OAAO,OAAO,CAAC;IACjB,CAAC;CACF"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@framers/agentos",
|
|
3
|
-
"version": "0.9.
|
|
3
|
+
"version": "0.9.122",
|
|
4
4
|
"description": "AgentOS: open-source TypeScript framework for autonomous AI agents. Unified graph orchestration, cognitive memory, runtime tool forging, multi-tier guardrails, voice pipeline, and 11 LLM providers.",
|
|
5
5
|
"homepage": "https://agentos.sh",
|
|
6
6
|
"repository": {
|