dvgateway-sdk 1.6.0 → 1.6.2

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.
Files changed (37) hide show
  1. package/dist/client.d.ts +204 -7
  2. package/dist/client.d.ts.map +1 -1
  3. package/dist/client.js +236 -7
  4. package/dist/client.js.map +1 -1
  5. package/dist/flow/builder.d.ts +102 -0
  6. package/dist/flow/builder.d.ts.map +1 -0
  7. package/dist/flow/builder.js +341 -0
  8. package/dist/flow/builder.js.map +1 -0
  9. package/dist/index.d.ts +3 -1
  10. package/dist/index.d.ts.map +1 -1
  11. package/dist/index.js +2 -0
  12. package/dist/index.js.map +1 -1
  13. package/dist/play-audio.test.js +23 -1
  14. package/dist/play-audio.test.js.map +1 -1
  15. package/dist/streams/audio-playback.test.d.ts +8 -0
  16. package/dist/streams/audio-playback.test.d.ts.map +1 -0
  17. package/dist/streams/audio-playback.test.js +114 -0
  18. package/dist/streams/audio-playback.test.js.map +1 -0
  19. package/dist/streams/call-events.d.ts.map +1 -1
  20. package/dist/streams/call-events.js +51 -0
  21. package/dist/streams/call-events.js.map +1 -1
  22. package/dist/streams/tts-playback.test.d.ts +10 -0
  23. package/dist/streams/tts-playback.test.d.ts.map +1 -0
  24. package/dist/streams/tts-playback.test.js +103 -0
  25. package/dist/streams/tts-playback.test.js.map +1 -0
  26. package/dist/streams/tts-stream.d.ts +17 -4
  27. package/dist/streams/tts-stream.d.ts.map +1 -1
  28. package/dist/streams/tts-stream.js +34 -10
  29. package/dist/streams/tts-stream.js.map +1 -1
  30. package/dist/transport/http-client.d.ts +2 -2
  31. package/dist/transport/http-client.d.ts.map +1 -1
  32. package/dist/transport/http-client.js +4 -3
  33. package/dist/transport/http-client.js.map +1 -1
  34. package/dist/types/index.d.ts +175 -1
  35. package/dist/types/index.d.ts.map +1 -1
  36. package/dist/types/index.js.map +1 -1
  37. package/package.json +1 -1
@@ -39,6 +39,7 @@ describe('DVGatewayClient.playAudio', () => {
39
39
  interruptedByDtmf: '',
40
40
  durationMs: 1234,
41
41
  linkedId: 'call-a',
42
+ playbackId: 'pb-a',
42
43
  },
43
44
  });
44
45
  const result = await client.playAudio({
@@ -49,6 +50,7 @@ describe('DVGatewayClient.playAudio', () => {
49
50
  completed: true,
50
51
  interruptedByDtmf: null,
51
52
  durationMs: 1234,
53
+ playbackId: 'pb-a',
52
54
  });
53
55
  expect(posts).toHaveLength(1);
54
56
  const first = posts[0];
@@ -67,6 +69,7 @@ describe('DVGatewayClient.playAudio', () => {
67
69
  interruptedByDtmf: '1',
68
70
  durationMs: 500,
69
71
  linkedId: 'call-b',
72
+ playbackId: 'pb-b',
70
73
  },
71
74
  });
72
75
  const result = await client.playAudio({
@@ -78,11 +81,12 @@ describe('DVGatewayClient.playAudio', () => {
78
81
  completed: false,
79
82
  interruptedByDtmf: '1',
80
83
  durationMs: 500,
84
+ playbackId: 'pb-b',
81
85
  });
82
86
  });
83
87
  it('returns immediately with completed=false when waitForCompletion=false', async () => {
84
88
  const { client, posts } = makeClient({
85
- postResponse: { started: true, linkedId: 'call-c' },
89
+ postResponse: { started: true, linkedId: 'call-c', playbackId: 'pb-c' },
86
90
  });
87
91
  const result = await client.playAudio({
88
92
  linkedId: 'call-c',
@@ -93,9 +97,27 @@ describe('DVGatewayClient.playAudio', () => {
93
97
  completed: false,
94
98
  interruptedByDtmf: null,
95
99
  durationMs: 0,
100
+ playbackId: 'pb-c',
96
101
  });
97
102
  expect(posts[0].body).toMatchObject({ waitForCompletion: false });
98
103
  });
104
+ it('falls back to empty playbackId when gateway is older than 1.3.9.2', async () => {
105
+ const { client } = makeClient({
106
+ postResponse: {
107
+ // legacy gateway response — no playbackId field
108
+ completed: true,
109
+ interruptedByDtmf: '',
110
+ durationMs: 800,
111
+ linkedId: 'call-legacy',
112
+ },
113
+ });
114
+ const result = await client.playAudio({
115
+ linkedId: 'call-legacy',
116
+ url: 'https://cdn.example.com/legacy.mp3',
117
+ });
118
+ expect(result.playbackId).toBe('');
119
+ expect(result.completed).toBe(true);
120
+ });
99
121
  it('stopAudio sends DELETE', async () => {
100
122
  const { client, deletes } = makeClient({});
101
123
  await client.stopAudio('call-d');
@@ -1 +1 @@
1
- {"version":3,"file":"play-audio.test.js","sourceRoot":"","sources":["../src/play-audio.test.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAa9C,SAAS,UAAU,CAAC,IAEnB;IACC,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC;QACjC,OAAO,EAAE,uBAAuB;QAChC,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE;QACxC,QAAQ,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE;KAC9B,CAAC,CAAC;IAEH,MAAM,KAAK,GAA2C,EAAE,CAAC;IACzD,MAAM,OAAO,GAAa,EAAE,CAAC;IAE7B,MAAM,IAAI,GAAW,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE;QACxC,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QAC3B,OAAO;YACL,MAAM,EAAE,GAAG;YACX,IAAI,EAAE,IAAI,CAAC,YAAY,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,EAAE;SAC9D,CAAC;IACJ,CAAC,CAAC;IACF,MAAM,GAAG,GAAa,KAAK,EAAE,IAAI,EAAE,EAAE;QACnC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnB,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,EAAE,CAAC;IACjE,CAAC,CAAC;IAED,MAAkE,CAAC,IAAI,GAAG;QACzE,IAAI;QACJ,MAAM,EAAE,GAAG;KACZ,CAAC;IAEF,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;AACpC,CAAC;AAED,QAAQ,CAAC,2BAA2B,EAAE,GAAG,EAAE;IACzC,EAAE,CAAC,sDAAsD,EAAE,KAAK,IAAI,EAAE;QACpE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,UAAU,CAAC;YACnC,YAAY,EAAE;gBACZ,SAAS,EAAE,IAAI;gBACf,iBAAiB,EAAE,EAAE;gBACrB,UAAU,EAAE,IAAI;gBAChB,QAAQ,EAAE,QAAQ;aACnB;SACF,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC;YACpC,QAAQ,EAAE,QAAQ;YAClB,GAAG,EAAE,+BAA+B;SACrC,CAAC,CAAC;QAEH,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC;YACrB,SAAS,EAAE,IAAI;YACf,iBAAiB,EAAE,IAAI;YACvB,UAAU,EAAE,IAAI;SACjB,CAAC,CAAC;QAEH,MAAM,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QAC9B,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAE,CAAC;QACxB,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;QAC/C,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC;YACzB,GAAG,EAAE,+BAA+B;YACpC,IAAI,EAAE,KAAK;YACX,eAAe,EAAE,KAAK;YACtB,iBAAiB,EAAE,IAAI;SACxB,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yCAAyC,EAAE,KAAK,IAAI,EAAE;QACvD,MAAM,EAAE,MAAM,EAAE,GAAG,UAAU,CAAC;YAC5B,YAAY,EAAE;gBACZ,SAAS,EAAE,KAAK;gBAChB,iBAAiB,EAAE,GAAG;gBACtB,UAAU,EAAE,GAAG;gBACf,QAAQ,EAAE,QAAQ;aACnB;SACF,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC;YACpC,QAAQ,EAAE,QAAQ;YAClB,GAAG,EAAE,+BAA+B;YACpC,eAAe,EAAE,IAAI;SACtB,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC;YACrB,SAAS,EAAE,KAAK;YAChB,iBAAiB,EAAE,GAAG;YACtB,UAAU,EAAE,GAAG;SAChB,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uEAAuE,EAAE,KAAK,IAAI,EAAE;QACrF,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,UAAU,CAAC;YACnC,YAAY,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE;SACpD,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC;YACpC,QAAQ,EAAE,QAAQ;YAClB,GAAG,EAAE,+BAA+B;YACpC,iBAAiB,EAAE,KAAK;SACzB,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC;YACrB,SAAS,EAAE,KAAK;YAChB,iBAAiB,EAAE,IAAI;YACvB,UAAU,EAAE,CAAC;SACd,CAAC,CAAC;QACH,MAAM,CAAC,KAAK,CAAC,CAAC,CAAE,CAAC,IAAI,CAAC,CAAC,aAAa,CAAC,EAAE,iBAAiB,EAAE,KAAK,EAAE,CAAC,CAAC;IACrE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wBAAwB,EAAE,KAAK,IAAI,EAAE;QACtC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,UAAU,CAAC,EAAE,CAAC,CAAC;QAC3C,MAAM,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QACjC,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC;IACnD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mBAAmB,EAAE,KAAK,IAAI,EAAE;QACjC,MAAM,EAAE,MAAM,EAAE,GAAG,UAAU,CAAC,EAAE,CAAC,CAAC;QAClC,MAAM,MAAM,CACV,MAAM,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,CAClD,CAAC,OAAO,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;IACvC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"play-audio.test.js","sourceRoot":"","sources":["../src/play-audio.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Tests for CallEventStream — audio:playback event normalisation.
3
+ *
4
+ * Same strategy as call-events.test.ts: drive a synthetic raw event dict
5
+ * through the (private) normalizeEvent path and assert the typed shape.
6
+ */
7
+ export {};
8
+ //# sourceMappingURL=audio-playback.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"audio-playback.test.d.ts","sourceRoot":"","sources":["../../src/streams/audio-playback.test.ts"],"names":[],"mappings":"AAAA;;;;;GAKG"}
@@ -0,0 +1,114 @@
1
+ /**
2
+ * Tests for CallEventStream — audio:playback event normalisation.
3
+ *
4
+ * Same strategy as call-events.test.ts: drive a synthetic raw event dict
5
+ * through the (private) normalizeEvent path and assert the typed shape.
6
+ */
7
+ import { CallEventStream } from './call-events.js';
8
+ const noopLogger = {
9
+ debug: jest.fn(),
10
+ info: jest.fn(),
11
+ warn: jest.fn(),
12
+ error: jest.fn(),
13
+ };
14
+ const stubWsPool = {};
15
+ function feedRaw(raw) {
16
+ const stream = new CallEventStream(stubWsPool, noopLogger);
17
+ return stream.normalizeEvent(raw);
18
+ }
19
+ describe('audio:playback event normalisation', () => {
20
+ test('complete event with full payload', () => {
21
+ const evt = feedRaw({
22
+ event: 'audio:playback',
23
+ linkedId: '1777432210.78',
24
+ playbackId: 'pb-9f4c3e12',
25
+ url: 'https://cdn.example.com/menu.wav',
26
+ phase: 'complete',
27
+ durationMs: 4860,
28
+ errorReason: '',
29
+ tenantId: 'tenant-xyz',
30
+ serverId: 'gw-seoul-01',
31
+ ts: 1713779200123,
32
+ });
33
+ expect(evt).not.toBeNull();
34
+ expect(evt.type).toBe('audio:playback');
35
+ expect(evt.linkedId).toBe('1777432210.78');
36
+ expect(evt.playbackId).toBe('pb-9f4c3e12');
37
+ expect(evt.url).toBe('https://cdn.example.com/menu.wav');
38
+ expect(evt.phase).toBe('complete');
39
+ expect(evt.durationMs).toBe(4860);
40
+ expect(evt.errorReason).toBeUndefined();
41
+ expect(evt.tenantId).toBe('tenant-xyz');
42
+ expect(evt.serverId).toBe('gw-seoul-01');
43
+ expect(evt.timestamp).toBeInstanceOf(Date);
44
+ });
45
+ test('start phase with minimal payload', () => {
46
+ const evt = feedRaw({
47
+ event: 'audio:playback',
48
+ linkedId: 'lid',
49
+ playbackId: 'pb-1',
50
+ url: 'https://example.com/a.wav',
51
+ phase: 'start',
52
+ });
53
+ expect(evt.phase).toBe('start');
54
+ expect(evt.durationMs).toBeUndefined();
55
+ expect(evt.errorReason).toBeUndefined();
56
+ });
57
+ test('failed phase carries errorReason', () => {
58
+ const evt = feedRaw({
59
+ event: 'audio:playback',
60
+ linkedId: 'lid',
61
+ playbackId: 'pb-1',
62
+ url: 'https://example.com/missing.wav',
63
+ phase: 'failed',
64
+ durationMs: 0,
65
+ errorReason: 'fetch_failed',
66
+ });
67
+ expect(evt.phase).toBe('failed');
68
+ expect(evt.errorReason).toBe('fetch_failed');
69
+ });
70
+ test('canceled phase with partial duration', () => {
71
+ const evt = feedRaw({
72
+ event: 'audio:playback',
73
+ linkedId: 'lid',
74
+ playbackId: 'pb-1',
75
+ url: 'url',
76
+ phase: 'canceled',
77
+ durationMs: 1200,
78
+ });
79
+ expect(evt.phase).toBe('canceled');
80
+ expect(evt.durationMs).toBe(1200);
81
+ });
82
+ test.each(['start', 'complete', 'canceled', 'failed'])("phase '%s' parses cleanly", (phase) => {
83
+ const evt = feedRaw({
84
+ event: 'audio:playback',
85
+ linkedId: 'lid',
86
+ playbackId: 'pb-1',
87
+ url: 'url',
88
+ phase,
89
+ });
90
+ expect(evt.phase).toBe(phase);
91
+ });
92
+ test('unknown phase is dropped (returns null)', () => {
93
+ const evt = feedRaw({
94
+ event: 'audio:playback',
95
+ linkedId: 'lid',
96
+ playbackId: 'pb-1',
97
+ url: 'url',
98
+ phase: 'garbage_phase',
99
+ });
100
+ expect(evt).toBeNull();
101
+ });
102
+ test('empty errorReason on terminal phases is normalised to undefined', () => {
103
+ const evt = feedRaw({
104
+ event: 'audio:playback',
105
+ linkedId: 'lid',
106
+ playbackId: 'pb-1',
107
+ url: 'url',
108
+ phase: 'complete',
109
+ errorReason: '',
110
+ });
111
+ expect(evt.errorReason).toBeUndefined();
112
+ });
113
+ });
114
+ //# sourceMappingURL=audio-playback.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"audio-playback.test.js","sourceRoot":"","sources":["../../src/streams/audio-playback.test.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAGnD,MAAM,UAAU,GAAW;IACzB,KAAK,EAAE,IAAI,CAAC,EAAE,EAAE;IAChB,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE;IACf,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE;IACf,KAAK,EAAE,IAAI,CAAC,EAAE,EAAE;CACjB,CAAC;AAEF,MAAM,UAAU,GAAG,EAAiE,CAAC;AAErF,SAAS,OAAO,CAAC,GAA4B;IAC3C,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;IAC3D,OAAQ,MAEN,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;AACzB,CAAC;AAED,QAAQ,CAAC,oCAAoC,EAAE,GAAG,EAAE;IAClD,IAAI,CAAC,kCAAkC,EAAE,GAAG,EAAE;QAC5C,MAAM,GAAG,GAAG,OAAO,CAAC;YAClB,KAAK,EAAE,gBAAgB;YACvB,QAAQ,EAAE,eAAe;YACzB,UAAU,EAAE,aAAa;YACzB,GAAG,EAAE,kCAAkC;YACvC,KAAK,EAAE,UAAU;YACjB,UAAU,EAAE,IAAI;YAChB,WAAW,EAAE,EAAE;YACf,QAAQ,EAAE,YAAY;YACtB,QAAQ,EAAE,aAAa;YACvB,EAAE,EAAE,aAAa;SAClB,CAAuB,CAAC;QAEzB,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;QAC3B,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QACxC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QAC3C,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAC3C,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC;QACzD,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACnC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAClC,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,aAAa,EAAE,CAAC;QACxC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACxC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QACzC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;IAC7C,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,kCAAkC,EAAE,GAAG,EAAE;QAC5C,MAAM,GAAG,GAAG,OAAO,CAAC;YAClB,KAAK,EAAE,gBAAgB;YACvB,QAAQ,EAAE,KAAK;YACf,UAAU,EAAE,MAAM;YAClB,GAAG,EAAE,2BAA2B;YAChC,KAAK,EAAE,OAAO;SACf,CAAuB,CAAC;QAEzB,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAChC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,aAAa,EAAE,CAAC;QACvC,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,aAAa,EAAE,CAAC;IAC1C,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,kCAAkC,EAAE,GAAG,EAAE;QAC5C,MAAM,GAAG,GAAG,OAAO,CAAC;YAClB,KAAK,EAAE,gBAAgB;YACvB,QAAQ,EAAE,KAAK;YACf,UAAU,EAAE,MAAM;YAClB,GAAG,EAAE,iCAAiC;YACtC,KAAK,EAAE,QAAQ;YACf,UAAU,EAAE,CAAC;YACb,WAAW,EAAE,cAAc;SAC5B,CAAuB,CAAC;QAEzB,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACjC,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,sCAAsC,EAAE,GAAG,EAAE;QAChD,MAAM,GAAG,GAAG,OAAO,CAAC;YAClB,KAAK,EAAE,gBAAgB;YACvB,QAAQ,EAAE,KAAK;YACf,UAAU,EAAE,MAAM;YAClB,GAAG,EAAE,KAAK;YACV,KAAK,EAAE,UAAU;YACjB,UAAU,EAAE,IAAI;SACjB,CAAuB,CAAC;QAEzB,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACnC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACpC,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,CAAU,CAAC,CAC7D,2BAA2B,EAC3B,CAAC,KAAa,EAAE,EAAE;QAChB,MAAM,GAAG,GAAG,OAAO,CAAC;YAClB,KAAK,EAAE,gBAAgB;YACvB,QAAQ,EAAE,KAAK;YACf,UAAU,EAAE,MAAM;YAClB,GAAG,EAAE,KAAK;YACV,KAAK;SACN,CAAuB,CAAC;QACzB,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAChC,CAAC,CACF,CAAC;IAEF,IAAI,CAAC,yCAAyC,EAAE,GAAG,EAAE;QACnD,MAAM,GAAG,GAAG,OAAO,CAAC;YAClB,KAAK,EAAE,gBAAgB;YACvB,QAAQ,EAAE,KAAK;YACf,UAAU,EAAE,MAAM;YAClB,GAAG,EAAE,KAAK;YACV,KAAK,EAAE,eAAe;SACvB,CAAC,CAAC;QACH,MAAM,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC;IACzB,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,iEAAiE,EAAE,GAAG,EAAE;QAC3E,MAAM,GAAG,GAAG,OAAO,CAAC;YAClB,KAAK,EAAE,gBAAgB;YACvB,QAAQ,EAAE,KAAK;YACf,UAAU,EAAE,MAAM;YAClB,GAAG,EAAE,KAAK;YACV,KAAK,EAAE,UAAU;YACjB,WAAW,EAAE,EAAE;SAChB,CAAuB,CAAC;QACzB,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,aAAa,EAAE,CAAC;IAC1C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"call-events.d.ts","sourceRoot":"","sources":["../../src/streams/call-events.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AACxE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AAEtD,KAAK,gBAAgB,GAAG,CAAC,KAAK,EAAE,SAAS,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAEnE,qBAAa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA+B;IACxD,OAAO,CAAC,cAAc,CAAuB;gBAEjC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IAK1C;;;OAGG;IACH,EAAE,CAAC,OAAO,EAAE,gBAAgB,GAAG,WAAW;IAiB1C,yCAAyC;IACzC,MAAM,CAAC,CAAC,SAAS,SAAS,EACxB,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,EACf,OAAO,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,GAC1C,WAAW;YAQA,iBAAiB;IAgB/B,OAAO,CAAC,gBAAgB;IAOxB,OAAO,CAAC,aAAa;IAoBrB,OAAO,CAAC,cAAc;CAoIvB"}
1
+ {"version":3,"file":"call-events.d.ts","sourceRoot":"","sources":["../../src/streams/call-events.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AACxE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AAEtD,KAAK,gBAAgB,GAAG,CAAC,KAAK,EAAE,SAAS,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAEnE,qBAAa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA+B;IACxD,OAAO,CAAC,cAAc,CAAuB;gBAEjC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IAK1C;;;OAGG;IACH,EAAE,CAAC,OAAO,EAAE,gBAAgB,GAAG,WAAW;IAiB1C,yCAAyC;IACzC,MAAM,CAAC,CAAC,SAAS,SAAS,EACxB,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,EACf,OAAO,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,GAC1C,WAAW;YAQA,iBAAiB;IAgB/B,OAAO,CAAC,gBAAgB;IAOxB,OAAO,CAAC,aAAa;IAoBrB,OAAO,CAAC,cAAc;CA6LvB"}
@@ -192,6 +192,57 @@ export class CallEventStream {
192
192
  timestamp,
193
193
  };
194
194
  }
195
+ case 'tts:playback': {
196
+ const phaseRaw = String(raw['phase'] ?? '');
197
+ const validPhases = ['start', 'complete', 'canceled', 'failed'];
198
+ if (!validPhases.includes(phaseRaw)) {
199
+ this.logger.debug({ phase: phaseRaw }, 'Unknown tts:playback phase, ignoring event');
200
+ return null;
201
+ }
202
+ const durMsRaw = raw['durationMs'];
203
+ const durationMs = typeof durMsRaw === 'number' ? durMsRaw : undefined;
204
+ const errorReasonRaw = raw['errorReason'];
205
+ const errorReason = typeof errorReasonRaw === 'string' && errorReasonRaw !== ''
206
+ ? errorReasonRaw
207
+ : undefined;
208
+ return {
209
+ type: 'tts:playback',
210
+ linkedId: String(raw['linkedId'] ?? ''),
211
+ injectId: String(raw['injectId'] ?? ''),
212
+ phase: phaseRaw,
213
+ durationMs,
214
+ errorReason,
215
+ tenantId: raw['tenantId'] ? String(raw['tenantId']) : undefined,
216
+ serverId: raw['serverId'] ? String(raw['serverId']) : undefined,
217
+ timestamp,
218
+ };
219
+ }
220
+ case 'audio:playback': {
221
+ const phaseRaw = String(raw['phase'] ?? '');
222
+ const validPhases = ['start', 'complete', 'canceled', 'failed'];
223
+ if (!validPhases.includes(phaseRaw)) {
224
+ this.logger.debug({ phase: phaseRaw }, 'Unknown audio:playback phase, ignoring event');
225
+ return null;
226
+ }
227
+ const durMsRaw = raw['durationMs'];
228
+ const durationMs = typeof durMsRaw === 'number' ? durMsRaw : undefined;
229
+ const errorReasonRaw = raw['errorReason'];
230
+ const errorReason = typeof errorReasonRaw === 'string' && errorReasonRaw !== ''
231
+ ? errorReasonRaw
232
+ : undefined;
233
+ return {
234
+ type: 'audio:playback',
235
+ linkedId: String(raw['linkedId'] ?? ''),
236
+ playbackId: String(raw['playbackId'] ?? ''),
237
+ url: String(raw['url'] ?? ''),
238
+ phase: phaseRaw,
239
+ durationMs,
240
+ errorReason,
241
+ tenantId: raw['tenantId'] ? String(raw['tenantId']) : undefined,
242
+ serverId: raw['serverId'] ? String(raw['serverId']) : undefined,
243
+ timestamp,
244
+ };
245
+ }
195
246
  default:
196
247
  this.logger.debug({ type }, 'Unknown call event type, ignoring');
197
248
  return null;
@@ -1 +1 @@
1
- {"version":3,"file":"call-events.js","sourceRoot":"","sources":["../../src/streams/call-events.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"call-events.js","sourceRoot":"","sources":["../../src/streams/call-events.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Tests for CallEventStream — tts:playback event normalisation.
3
+ *
4
+ * Mirrors audio-playback.test.ts. The two events share most of the parser
5
+ * machinery — wire format → typed event mapping, drop-on-unknown-phase
6
+ * contract, empty-string → undefined normalisation — so the test surface
7
+ * is intentionally parallel.
8
+ */
9
+ export {};
10
+ //# sourceMappingURL=tts-playback.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tts-playback.test.d.ts","sourceRoot":"","sources":["../../src/streams/tts-playback.test.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG"}
@@ -0,0 +1,103 @@
1
+ /**
2
+ * Tests for CallEventStream — tts:playback event normalisation.
3
+ *
4
+ * Mirrors audio-playback.test.ts. The two events share most of the parser
5
+ * machinery — wire format → typed event mapping, drop-on-unknown-phase
6
+ * contract, empty-string → undefined normalisation — so the test surface
7
+ * is intentionally parallel.
8
+ */
9
+ import { CallEventStream } from './call-events.js';
10
+ const noopLogger = {
11
+ debug: jest.fn(),
12
+ info: jest.fn(),
13
+ warn: jest.fn(),
14
+ error: jest.fn(),
15
+ };
16
+ const stubWsPool = {};
17
+ function feedRaw(raw) {
18
+ const stream = new CallEventStream(stubWsPool, noopLogger);
19
+ return stream.normalizeEvent(raw);
20
+ }
21
+ describe('tts:playback event normalisation', () => {
22
+ test('complete event with full payload', () => {
23
+ const evt = feedRaw({
24
+ event: 'tts:playback',
25
+ linkedId: '1777432210.78',
26
+ injectId: 'tts-9f4c3e12',
27
+ phase: 'complete',
28
+ durationMs: 2640,
29
+ errorReason: '',
30
+ tenantId: 'tenant-xyz',
31
+ serverId: 'gw-seoul-01',
32
+ ts: 1713779200123,
33
+ });
34
+ expect(evt).not.toBeNull();
35
+ expect(evt.type).toBe('tts:playback');
36
+ expect(evt.linkedId).toBe('1777432210.78');
37
+ expect(evt.injectId).toBe('tts-9f4c3e12');
38
+ expect(evt.phase).toBe('complete');
39
+ expect(evt.durationMs).toBe(2640);
40
+ expect(evt.errorReason).toBeUndefined(); // empty string normalised to undefined
41
+ expect(evt.tenantId).toBe('tenant-xyz');
42
+ expect(evt.serverId).toBe('gw-seoul-01');
43
+ });
44
+ test('start phase has no durationMs / errorReason', () => {
45
+ const evt = feedRaw({
46
+ event: 'tts:playback',
47
+ linkedId: 'lid',
48
+ injectId: 'tts-1',
49
+ phase: 'start',
50
+ });
51
+ expect(evt).not.toBeNull();
52
+ expect(evt.phase).toBe('start');
53
+ expect(evt.durationMs).toBeUndefined();
54
+ expect(evt.errorReason).toBeUndefined();
55
+ });
56
+ test.each(['preempted', 'barge_in', 'hangup', 'user_request'])('canceled phase carries reason=%s', (reason) => {
57
+ const evt = feedRaw({
58
+ event: 'tts:playback',
59
+ linkedId: 'lid',
60
+ injectId: 'tts-1',
61
+ phase: 'canceled',
62
+ durationMs: 519,
63
+ errorReason: reason,
64
+ });
65
+ expect(evt).not.toBeNull();
66
+ expect(evt.phase).toBe('canceled');
67
+ expect(evt.errorReason).toBe(reason);
68
+ expect(evt.durationMs).toBe(519);
69
+ });
70
+ test('failed phase carries channel_lost reason', () => {
71
+ const evt = feedRaw({
72
+ event: 'tts:playback',
73
+ linkedId: 'lid',
74
+ injectId: 'tts-1',
75
+ phase: 'failed',
76
+ durationMs: 1200,
77
+ errorReason: 'channel_lost',
78
+ });
79
+ expect(evt).not.toBeNull();
80
+ expect(evt.phase).toBe('failed');
81
+ expect(evt.errorReason).toBe('channel_lost');
82
+ });
83
+ test('unknown phase is dropped (returns null)', () => {
84
+ const evt = feedRaw({
85
+ event: 'tts:playback',
86
+ linkedId: 'lid',
87
+ injectId: 'tts-1',
88
+ phase: 'garbage_phase',
89
+ });
90
+ expect(evt).toBeNull();
91
+ });
92
+ test.each(['start', 'complete', 'canceled', 'failed'])('phase=%s parses without error', (phase) => {
93
+ const evt = feedRaw({
94
+ event: 'tts:playback',
95
+ linkedId: 'lid',
96
+ injectId: 'tts-1',
97
+ phase,
98
+ });
99
+ expect(evt).not.toBeNull();
100
+ expect(evt.phase).toBe(phase);
101
+ });
102
+ });
103
+ //# sourceMappingURL=tts-playback.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tts-playback.test.js","sourceRoot":"","sources":["../../src/streams/tts-playback.test.ts"],"names":[],"mappings":"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"}
@@ -9,7 +9,7 @@
9
9
  *
10
10
  * Audio format: 16kHz, 16-bit signed PCM (slin16), little-endian
11
11
  */
12
- import type { Logger } from '../types/index.js';
12
+ import type { InjectTtsResult, Logger } from '../types/index.js';
13
13
  import type { WsPool } from '../transport/ws-pool.js';
14
14
  import type { HttpClient } from '../transport/http-client.js';
15
15
  export declare class TtsInjector {
@@ -25,22 +25,35 @@ export declare class TtsInjector {
25
25
  *
26
26
  * @param linkedId - The call session identifier
27
27
  * @param audioChunks - Async iterable of 16kHz slin16 PCM chunks
28
+ * @param injectId - Optional caller-supplied UUID; defaults to a fresh one.
29
+ * Propagated to the gateway via `injectId` query param
30
+ * so the gateway honors the same ID on its tts:playback
31
+ * events for correlation.
32
+ * @returns The `injectId` (UUID) that surfaces on tts:playback events.
28
33
  */
29
- injectStreaming(linkedId: string, audioChunks: AsyncIterable<Buffer>): Promise<void>;
34
+ injectStreaming(linkedId: string, audioChunks: AsyncIterable<Buffer>, injectId?: string): Promise<InjectTtsResult>;
30
35
  /**
31
36
  * Inject a pre-buffered PCM audio clip into a call via HTTP POST.
32
37
  * Simpler than streaming but incurs a round-trip latency.
33
38
  *
34
39
  * @param linkedId - The call session identifier
35
40
  * @param pcmBuffer - Complete 16kHz slin16 PCM audio
41
+ * @param injectId - Optional caller-supplied UUID; defaults to a fresh one.
42
+ * Sent via X-Inject-Id header so the gateway honors the
43
+ * same ID for tts:playback correlation.
44
+ * @returns The `injectId` (UUID) that surfaces on tts:playback events.
36
45
  */
37
- injectDirect(linkedId: string, pcmBuffer: Buffer): Promise<void>;
46
+ injectDirect(linkedId: string, pcmBuffer: Buffer, injectId?: string): Promise<InjectTtsResult>;
38
47
  /**
39
48
  * Broadcast TTS audio to all participants in a conference.
40
49
  *
41
50
  * @param confId - The conference identifier
42
51
  * @param audioChunks - Async iterable of 16kHz slin16 PCM chunks
52
+ * @param injectId - Optional caller-supplied UUID; defaults to a fresh one.
53
+ * @returns The `injectId` (UUID). Note: gateway 1.3.9.3 does not yet emit
54
+ * `tts:playback` for conference participant Players (only 1:1
55
+ * calls), so this ID is forward-compat plumbing today.
43
56
  */
44
- broadcastToConference(confId: string, audioChunks: AsyncIterable<Buffer>): Promise<void>;
57
+ broadcastToConference(confId: string, audioChunks: AsyncIterable<Buffer>, injectId?: string): Promise<InjectTtsResult>;
45
58
  }
46
59
  //# sourceMappingURL=tts-stream.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tts-stream.d.ts","sourceRoot":"","sources":["../../src/streams/tts-stream.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAGH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAE9D,qBAAa,WAAW;IACtB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAa;IAClC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;gBAEpB,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM;IAM5D;;;;;;;;OAQG;IACG,eAAe,CACnB,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,aAAa,CAAC,MAAM,CAAC,GACjC,OAAO,CAAC,IAAI,CAAC;IAwDhB;;;;;;OAMG;IACG,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAStE;;;;;OAKG;IACG,qBAAqB,CACzB,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,aAAa,CAAC,MAAM,CAAC,GACjC,OAAO,CAAC,IAAI,CAAC;CAejB"}
1
+ {"version":3,"file":"tts-stream.d.ts","sourceRoot":"","sources":["../../src/streams/tts-stream.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAGH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AACjE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAE9D,qBAAa,WAAW;IACtB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAa;IAClC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;gBAEpB,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM;IAM5D;;;;;;;;;;;;;OAaG;IACG,eAAe,CACnB,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,aAAa,CAAC,MAAM,CAAC,EAClC,QAAQ,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,eAAe,CAAC;IA+D3B;;;;;;;;;;OAUG;IACG,YAAY,CAChB,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,QAAQ,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,eAAe,CAAC;IAY3B;;;;;;;;;OASG;IACG,qBAAqB,CACzB,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,aAAa,CAAC,MAAM,CAAC,EAClC,QAAQ,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,eAAe,CAAC;CAkB5B"}
@@ -27,8 +27,17 @@ export class TtsInjector {
27
27
  *
28
28
  * @param linkedId - The call session identifier
29
29
  * @param audioChunks - Async iterable of 16kHz slin16 PCM chunks
30
+ * @param injectId - Optional caller-supplied UUID; defaults to a fresh one.
31
+ * Propagated to the gateway via `injectId` query param
32
+ * so the gateway honors the same ID on its tts:playback
33
+ * events for correlation.
34
+ * @returns The `injectId` (UUID) that surfaces on tts:playback events.
30
35
  */
31
- async injectStreaming(linkedId, audioChunks) {
36
+ async injectStreaming(linkedId, audioChunks, injectId) {
37
+ // Pre-generate the inject_id client-side so the synchronous return
38
+ // value can carry it. Gateway honors the query param and reuses it on
39
+ // tts:playback events. Empty / whitespace input → fresh UUID.
40
+ const finalInjectId = injectId && injectId.trim() ? injectId : `tts-${uuidv4()}`;
32
41
  const subId = `tts-ws-${linkedId}-${uuidv4()}`;
33
42
  let wsReady = false;
34
43
  let pendingSend = [];
@@ -54,14 +63,16 @@ export class TtsInjector {
54
63
  };
55
64
  this.wsPool.on('connected', onConnected);
56
65
  // Establish WebSocket; early audio frames buffer in pendingSend
57
- // until the handler above flips `wsReady`.
66
+ // until the handler above flips `wsReady`. The injectId query param
67
+ // tells the gateway to reuse our SDK-generated UUID on its
68
+ // tts:playback events.
58
69
  await this.wsPool.subscribe({
59
70
  id: subId,
60
71
  path: `/api/v1/ws/tts/${encodeURIComponent(linkedId)}`,
61
- params: {},
72
+ params: { injectId: finalInjectId },
62
73
  onMessage: () => undefined, // TTS WS is write-only
63
74
  onClose: () => {
64
- this.logger.debug({ linkedId }, 'TTS WebSocket closed');
75
+ this.logger.debug({ linkedId, injectId: finalInjectId }, 'TTS WebSocket closed');
65
76
  },
66
77
  });
67
78
  // Stream audio chunks
@@ -82,6 +93,7 @@ export class TtsInjector {
82
93
  this.wsPool.off('connected', onConnected);
83
94
  this.wsPool.unsubscribe(subId);
84
95
  }
96
+ return { injectId: finalInjectId };
85
97
  }
86
98
  /**
87
99
  * Inject a pre-buffered PCM audio clip into a call via HTTP POST.
@@ -89,26 +101,38 @@ export class TtsInjector {
89
101
  *
90
102
  * @param linkedId - The call session identifier
91
103
  * @param pcmBuffer - Complete 16kHz slin16 PCM audio
104
+ * @param injectId - Optional caller-supplied UUID; defaults to a fresh one.
105
+ * Sent via X-Inject-Id header so the gateway honors the
106
+ * same ID for tts:playback correlation.
107
+ * @returns The `injectId` (UUID) that surfaces on tts:playback events.
92
108
  */
93
- async injectDirect(linkedId, pcmBuffer) {
94
- await this.http.postBinary(`/api/v1/tts/${encodeURIComponent(linkedId)}`, pcmBuffer, 'audio/pcm;rate=16000');
95
- this.logger.debug({ linkedId, bytes: pcmBuffer.byteLength }, 'TTS injected via HTTP');
109
+ async injectDirect(linkedId, pcmBuffer, injectId) {
110
+ const finalInjectId = injectId && injectId.trim() ? injectId : `tts-${uuidv4()}`;
111
+ await this.http.postBinary(`/api/v1/tts/${encodeURIComponent(linkedId)}`, pcmBuffer, 'audio/pcm;rate=16000', { 'X-Inject-Id': finalInjectId });
112
+ this.logger.debug({ linkedId, bytes: pcmBuffer.byteLength, injectId: finalInjectId }, 'TTS injected via HTTP');
113
+ return { injectId: finalInjectId };
96
114
  }
97
115
  /**
98
116
  * Broadcast TTS audio to all participants in a conference.
99
117
  *
100
118
  * @param confId - The conference identifier
101
119
  * @param audioChunks - Async iterable of 16kHz slin16 PCM chunks
120
+ * @param injectId - Optional caller-supplied UUID; defaults to a fresh one.
121
+ * @returns The `injectId` (UUID). Note: gateway 1.3.9.3 does not yet emit
122
+ * `tts:playback` for conference participant Players (only 1:1
123
+ * calls), so this ID is forward-compat plumbing today.
102
124
  */
103
- async broadcastToConference(confId, audioChunks) {
125
+ async broadcastToConference(confId, audioChunks, injectId) {
126
+ const finalInjectId = injectId && injectId.trim() ? injectId : `tts-${uuidv4()}`;
104
127
  // Buffer all chunks first — conference broadcast requires complete audio
105
128
  const chunks = [];
106
129
  for await (const chunk of audioChunks) {
107
130
  chunks.push(chunk);
108
131
  }
109
132
  const full = Buffer.concat(chunks);
110
- await this.http.postBinary(`/api/v1/tts/conf/${encodeURIComponent(confId)}`, full, 'audio/pcm;rate=16000');
111
- this.logger.debug({ confId, bytes: full.byteLength }, 'TTS broadcast to conference');
133
+ await this.http.postBinary(`/api/v1/tts/conf/${encodeURIComponent(confId)}`, full, 'audio/pcm;rate=16000', { 'X-Inject-Id': finalInjectId });
134
+ this.logger.debug({ confId, bytes: full.byteLength, injectId: finalInjectId }, 'TTS broadcast to conference');
135
+ return { injectId: finalInjectId };
112
136
  }
113
137
  }
114
138
  //# sourceMappingURL=tts-stream.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tts-stream.js","sourceRoot":"","sources":["../../src/streams/tts-stream.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tts-stream.js","sourceRoot":"","sources":["../../src/streams/tts-stream.ts"],"names":[],"mappings":"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"}
@@ -30,8 +30,8 @@ export declare class HttpClient {
30
30
  post<T = unknown>(path: string, body?: unknown, opts?: HttpRequestOptions): Promise<HttpResponse<T>>;
31
31
  put<T = unknown>(path: string, body?: unknown, opts?: HttpRequestOptions): Promise<HttpResponse<T>>;
32
32
  delete<T = unknown>(path: string, opts?: HttpRequestOptions): Promise<HttpResponse<T>>;
33
- /** Post raw binary (e.g. PCM audio) */
34
- postBinary(path: string, data: Buffer, contentType: string): Promise<void>;
33
+ /** Post raw binary (e.g. PCM audio). Extra headers merge in (e.g. X-Inject-Id). */
34
+ postBinary(path: string, data: Buffer, contentType: string, extraHeaders?: Record<string, string>): Promise<void>;
35
35
  private isRetryable;
36
36
  }
37
37
  //# sourceMappingURL=http-client.d.ts.map