@livekit/agents 1.0.27 → 1.0.30

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 (100) hide show
  1. package/dist/connection_pool.cjs +242 -0
  2. package/dist/connection_pool.cjs.map +1 -0
  3. package/dist/connection_pool.d.cts +123 -0
  4. package/dist/connection_pool.d.ts +123 -0
  5. package/dist/connection_pool.d.ts.map +1 -0
  6. package/dist/connection_pool.js +218 -0
  7. package/dist/connection_pool.js.map +1 -0
  8. package/dist/connection_pool.test.cjs +256 -0
  9. package/dist/connection_pool.test.cjs.map +1 -0
  10. package/dist/connection_pool.test.js +255 -0
  11. package/dist/connection_pool.test.js.map +1 -0
  12. package/dist/index.cjs +2 -0
  13. package/dist/index.cjs.map +1 -1
  14. package/dist/index.d.cts +1 -0
  15. package/dist/index.d.ts +1 -0
  16. package/dist/index.d.ts.map +1 -1
  17. package/dist/index.js +1 -0
  18. package/dist/index.js.map +1 -1
  19. package/dist/inference/tts.cjs +172 -56
  20. package/dist/inference/tts.cjs.map +1 -1
  21. package/dist/inference/tts.d.cts +3 -0
  22. package/dist/inference/tts.d.ts +3 -0
  23. package/dist/inference/tts.d.ts.map +1 -1
  24. package/dist/inference/tts.js +173 -57
  25. package/dist/inference/tts.js.map +1 -1
  26. package/dist/utils.cjs +20 -0
  27. package/dist/utils.cjs.map +1 -1
  28. package/dist/utils.d.cts +7 -0
  29. package/dist/utils.d.ts +7 -0
  30. package/dist/utils.d.ts.map +1 -1
  31. package/dist/utils.js +19 -0
  32. package/dist/utils.js.map +1 -1
  33. package/dist/voice/agent_activity.cjs +3 -1
  34. package/dist/voice/agent_activity.cjs.map +1 -1
  35. package/dist/voice/agent_activity.d.ts.map +1 -1
  36. package/dist/voice/agent_activity.js +3 -1
  37. package/dist/voice/agent_activity.js.map +1 -1
  38. package/dist/voice/agent_session.cjs +4 -1
  39. package/dist/voice/agent_session.cjs.map +1 -1
  40. package/dist/voice/agent_session.d.ts.map +1 -1
  41. package/dist/voice/agent_session.js +4 -1
  42. package/dist/voice/agent_session.js.map +1 -1
  43. package/dist/voice/avatar/datastream_io.cjs +1 -1
  44. package/dist/voice/avatar/datastream_io.cjs.map +1 -1
  45. package/dist/voice/avatar/datastream_io.js +1 -1
  46. package/dist/voice/avatar/datastream_io.js.map +1 -1
  47. package/dist/voice/background_audio.cjs +77 -37
  48. package/dist/voice/background_audio.cjs.map +1 -1
  49. package/dist/voice/background_audio.d.cts +10 -3
  50. package/dist/voice/background_audio.d.ts +10 -3
  51. package/dist/voice/background_audio.d.ts.map +1 -1
  52. package/dist/voice/background_audio.js +78 -37
  53. package/dist/voice/background_audio.js.map +1 -1
  54. package/dist/voice/index.cjs +1 -0
  55. package/dist/voice/index.cjs.map +1 -1
  56. package/dist/voice/index.d.cts +1 -0
  57. package/dist/voice/index.d.ts +1 -0
  58. package/dist/voice/index.d.ts.map +1 -1
  59. package/dist/voice/index.js +1 -0
  60. package/dist/voice/index.js.map +1 -1
  61. package/dist/voice/io.cjs +10 -1
  62. package/dist/voice/io.cjs.map +1 -1
  63. package/dist/voice/io.d.cts +18 -1
  64. package/dist/voice/io.d.ts +18 -1
  65. package/dist/voice/io.d.ts.map +1 -1
  66. package/dist/voice/io.js +10 -1
  67. package/dist/voice/io.js.map +1 -1
  68. package/dist/voice/recorder_io/recorder_io.cjs +1 -1
  69. package/dist/voice/recorder_io/recorder_io.cjs.map +1 -1
  70. package/dist/voice/recorder_io/recorder_io.js +1 -1
  71. package/dist/voice/recorder_io/recorder_io.js.map +1 -1
  72. package/dist/voice/room_io/_output.cjs +1 -1
  73. package/dist/voice/room_io/_output.cjs.map +1 -1
  74. package/dist/voice/room_io/_output.js +1 -1
  75. package/dist/voice/room_io/_output.js.map +1 -1
  76. package/dist/voice/transcription/synchronizer.cjs +1 -1
  77. package/dist/voice/transcription/synchronizer.cjs.map +1 -1
  78. package/dist/voice/transcription/synchronizer.js +1 -1
  79. package/dist/voice/transcription/synchronizer.js.map +1 -1
  80. package/dist/worker.cjs +4 -6
  81. package/dist/worker.cjs.map +1 -1
  82. package/dist/worker.d.ts.map +1 -1
  83. package/dist/worker.js +4 -6
  84. package/dist/worker.js.map +1 -1
  85. package/package.json +3 -3
  86. package/src/connection_pool.test.ts +346 -0
  87. package/src/connection_pool.ts +307 -0
  88. package/src/index.ts +1 -0
  89. package/src/inference/tts.ts +206 -63
  90. package/src/utils.ts +25 -0
  91. package/src/voice/agent_activity.ts +7 -1
  92. package/src/voice/agent_session.ts +4 -1
  93. package/src/voice/avatar/datastream_io.ts +1 -1
  94. package/src/voice/background_audio.ts +95 -55
  95. package/src/voice/index.ts +1 -0
  96. package/src/voice/io.ts +24 -0
  97. package/src/voice/recorder_io/recorder_io.ts +1 -1
  98. package/src/voice/room_io/_output.ts +1 -1
  99. package/src/voice/transcription/synchronizer.ts +1 -1
  100. package/src/worker.ts +4 -7
@@ -0,0 +1,255 @@
1
+ import { describe, expect, it, vi } from "vitest";
2
+ import { ConnectionPool } from "./connection_pool.js";
3
+ describe("ConnectionPool", () => {
4
+ const makeConnectCb = () => {
5
+ let n = 0;
6
+ return vi.fn(async (_timeout) => `conn_${++n}`);
7
+ };
8
+ describe("basic operations", () => {
9
+ it("should create and return a connection", async () => {
10
+ const connections = [];
11
+ const connectCb = vi.fn(async (_timeout) => {
12
+ const conn3 = `conn_${connections.length}`;
13
+ connections.push(conn3);
14
+ return conn3;
15
+ });
16
+ const closeCb = vi.fn(async (_conn) => {
17
+ });
18
+ const pool = new ConnectionPool({
19
+ connectCb,
20
+ closeCb
21
+ });
22
+ const conn = await pool.get();
23
+ expect(conn).toBe("conn_0");
24
+ expect(connectCb).toHaveBeenCalledTimes(1);
25
+ pool.put(conn);
26
+ const conn2 = await pool.get();
27
+ expect(conn2).toBe("conn_0");
28
+ expect(connectCb).toHaveBeenCalledTimes(1);
29
+ });
30
+ it("should create new connection when none available", async () => {
31
+ const connectCb = makeConnectCb();
32
+ const closeCb = vi.fn(async (_conn) => {
33
+ });
34
+ const pool = new ConnectionPool({
35
+ connectCb,
36
+ closeCb
37
+ });
38
+ const conn1 = await pool.get();
39
+ pool.put(conn1);
40
+ const conn2 = await pool.get();
41
+ expect(conn1).toBe(conn2);
42
+ expect(connectCb).toHaveBeenCalledTimes(1);
43
+ });
44
+ it("should remove connection from pool", async () => {
45
+ const connectCb = makeConnectCb();
46
+ const closeCb = vi.fn(async (_conn) => {
47
+ });
48
+ const pool = new ConnectionPool({
49
+ connectCb,
50
+ closeCb
51
+ });
52
+ const conn = await pool.get();
53
+ pool.put(conn);
54
+ pool.remove(conn);
55
+ const conn2 = await pool.get();
56
+ expect(conn2).not.toBe(conn);
57
+ expect(connectCb).toHaveBeenCalledTimes(2);
58
+ expect(closeCb).toHaveBeenCalledTimes(1);
59
+ });
60
+ });
61
+ describe("maxSessionDuration", () => {
62
+ it("should expire connections after maxSessionDuration", async () => {
63
+ const connectCb = makeConnectCb();
64
+ const closeCb = vi.fn(async (_conn) => {
65
+ });
66
+ const pool = new ConnectionPool({
67
+ connectCb,
68
+ closeCb,
69
+ maxSessionDuration: 100
70
+ // 100ms
71
+ });
72
+ const conn1 = await pool.get();
73
+ pool.put(conn1);
74
+ await new Promise((resolve) => setTimeout(resolve, 150));
75
+ const conn2 = await pool.get();
76
+ expect(conn2).not.toBe(conn1);
77
+ expect(connectCb).toHaveBeenCalledTimes(2);
78
+ expect(closeCb).toHaveBeenCalledTimes(1);
79
+ });
80
+ it("should refresh connection timestamp when markRefreshedOnGet is true", async () => {
81
+ const connectCb = makeConnectCb();
82
+ const closeCb = vi.fn(async (_conn) => {
83
+ });
84
+ const pool = new ConnectionPool({
85
+ connectCb,
86
+ closeCb,
87
+ maxSessionDuration: 200,
88
+ // 200ms
89
+ markRefreshedOnGet: true
90
+ });
91
+ const conn1 = await pool.get();
92
+ pool.put(conn1);
93
+ await new Promise((resolve) => setTimeout(resolve, 100));
94
+ const conn2 = await pool.get();
95
+ expect(conn2).toBe(conn1);
96
+ pool.put(conn2);
97
+ await new Promise((resolve) => setTimeout(resolve, 100));
98
+ const conn3 = await pool.get();
99
+ expect(conn3).toBe(conn1);
100
+ expect(connectCb).toHaveBeenCalledTimes(1);
101
+ });
102
+ });
103
+ describe("withConnection", () => {
104
+ it("should return connection to pool on success", async () => {
105
+ const connectCb = makeConnectCb();
106
+ const closeCb = vi.fn(async (_conn) => {
107
+ });
108
+ const pool = new ConnectionPool({
109
+ connectCb,
110
+ closeCb
111
+ });
112
+ let capturedConn;
113
+ await pool.withConnection(async (conn) => {
114
+ capturedConn = conn;
115
+ return "result";
116
+ });
117
+ const conn2 = await pool.get();
118
+ expect(conn2).toBe(capturedConn);
119
+ expect(connectCb).toHaveBeenCalledTimes(1);
120
+ });
121
+ it("should remove connection from pool on error", async () => {
122
+ const connectCb = makeConnectCb();
123
+ const closeCb = vi.fn(async (_conn) => {
124
+ });
125
+ const pool = new ConnectionPool({
126
+ connectCb,
127
+ closeCb
128
+ });
129
+ let capturedConn;
130
+ try {
131
+ await pool.withConnection(async (conn) => {
132
+ capturedConn = conn;
133
+ throw new Error("test error");
134
+ });
135
+ } catch (e) {
136
+ }
137
+ const conn2 = await pool.get();
138
+ expect(conn2).not.toBe(capturedConn);
139
+ expect(connectCb).toHaveBeenCalledTimes(2);
140
+ expect(closeCb).toHaveBeenCalledTimes(1);
141
+ });
142
+ it("should handle abort signal", async () => {
143
+ const connectCb = makeConnectCb();
144
+ const closeCb = vi.fn(async (_conn) => {
145
+ });
146
+ const pool = new ConnectionPool({
147
+ connectCb,
148
+ closeCb
149
+ });
150
+ const abortController = new AbortController();
151
+ let capturedConn;
152
+ const promise = pool.withConnection(
153
+ async (conn) => {
154
+ capturedConn = conn;
155
+ await new Promise((resolve) => setTimeout(resolve, 1e3));
156
+ return "result";
157
+ },
158
+ { signal: abortController.signal }
159
+ );
160
+ setTimeout(() => abortController.abort(), 10);
161
+ await expect(promise).rejects.toThrow();
162
+ const conn2 = await pool.get();
163
+ expect(conn2).not.toBe(capturedConn);
164
+ expect(closeCb).toHaveBeenCalledTimes(1);
165
+ });
166
+ });
167
+ describe("prewarm", () => {
168
+ it("should create connection in background", async () => {
169
+ let n = 0;
170
+ const connectCb = vi.fn(async (_timeout) => {
171
+ await new Promise((resolve) => setTimeout(resolve, 50));
172
+ return `conn_${++n}`;
173
+ });
174
+ const closeCb = vi.fn(async (_conn) => {
175
+ });
176
+ const pool = new ConnectionPool({
177
+ connectCb,
178
+ closeCb
179
+ });
180
+ pool.prewarm();
181
+ await new Promise((resolve) => setTimeout(resolve, 100));
182
+ const conn = await pool.get();
183
+ expect(conn).toBeDefined();
184
+ expect(connectCb).toHaveBeenCalledTimes(1);
185
+ });
186
+ it("should not prewarm if connections already exist", async () => {
187
+ const connectCb = makeConnectCb();
188
+ const closeCb = vi.fn(async (_conn) => {
189
+ });
190
+ const pool = new ConnectionPool({
191
+ connectCb,
192
+ closeCb
193
+ });
194
+ const conn1 = await pool.get();
195
+ pool.put(conn1);
196
+ pool.prewarm();
197
+ const conn2 = await pool.get();
198
+ expect(conn2).toBe(conn1);
199
+ expect(connectCb).toHaveBeenCalledTimes(1);
200
+ });
201
+ });
202
+ describe("close", () => {
203
+ it("should close all connections", async () => {
204
+ const connectCb = makeConnectCb();
205
+ const closeCb = vi.fn(async (_conn) => {
206
+ });
207
+ const pool = new ConnectionPool({
208
+ connectCb,
209
+ closeCb
210
+ });
211
+ const conn1 = await pool.get();
212
+ const conn2 = await pool.get();
213
+ pool.put(conn1);
214
+ pool.put(conn2);
215
+ await pool.close();
216
+ expect(closeCb).toHaveBeenCalledTimes(2);
217
+ });
218
+ it("should invalidate all connections", async () => {
219
+ const connectCb = makeConnectCb();
220
+ const closeCb = vi.fn(async (_conn) => {
221
+ });
222
+ const pool = new ConnectionPool({
223
+ connectCb,
224
+ closeCb
225
+ });
226
+ const conn1 = await pool.get();
227
+ const conn2 = await pool.get();
228
+ pool.put(conn1);
229
+ pool.put(conn2);
230
+ pool.invalidate();
231
+ await pool.close();
232
+ expect(closeCb).toHaveBeenCalledTimes(2);
233
+ });
234
+ });
235
+ describe("concurrent access", () => {
236
+ it("should handle concurrent get requests", async () => {
237
+ const connectCb = vi.fn(async (_timeout) => {
238
+ await new Promise((resolve) => setTimeout(resolve, 10));
239
+ return `conn_${Date.now()}_${Math.random()}`;
240
+ });
241
+ const closeCb = vi.fn(async (_conn) => {
242
+ });
243
+ const pool = new ConnectionPool({
244
+ connectCb,
245
+ closeCb
246
+ });
247
+ const promises = Array.from({ length: 5 }, () => pool.get());
248
+ const connections = await Promise.all(promises);
249
+ const uniqueConnections = new Set(connections);
250
+ expect(uniqueConnections.size).toBe(5);
251
+ expect(connectCb).toHaveBeenCalledTimes(5);
252
+ });
253
+ });
254
+ });
255
+ //# sourceMappingURL=connection_pool.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/connection_pool.test.ts"],"sourcesContent":["// SPDX-FileCopyrightText: 2025 LiveKit, Inc.\n//\n// SPDX-License-Identifier: Apache-2.0\nimport { describe, expect, it, vi } from 'vitest';\nimport { ConnectionPool } from './connection_pool.js';\n\ndescribe('ConnectionPool', () => {\n const makeConnectCb = () => {\n let n = 0;\n return vi.fn(async (_timeout: number): Promise<string> => `conn_${++n}`);\n };\n\n describe('basic operations', () => {\n it('should create and return a connection', async () => {\n const connections: string[] = [];\n const connectCb = vi.fn(async (_timeout: number): Promise<string> => {\n const conn = `conn_${connections.length}`;\n connections.push(conn);\n return conn;\n });\n const closeCb = vi.fn(async (_conn: string) => {\n // Mock close\n });\n\n const pool = new ConnectionPool<string>({\n connectCb,\n closeCb,\n });\n\n const conn = await pool.get();\n expect(conn).toBe('conn_0');\n expect(connectCb).toHaveBeenCalledTimes(1);\n\n pool.put(conn);\n const conn2 = await pool.get();\n expect(conn2).toBe('conn_0'); // Should reuse\n expect(connectCb).toHaveBeenCalledTimes(1);\n });\n\n it('should create new connection when none available', async () => {\n const connectCb = makeConnectCb();\n const closeCb = vi.fn(async (_conn: string) => {\n // Mock close\n });\n\n const pool = new ConnectionPool<string>({\n connectCb,\n closeCb,\n });\n\n const conn1 = await pool.get();\n pool.put(conn1);\n const conn2 = await pool.get();\n expect(conn1).toBe(conn2); // Should reuse\n expect(connectCb).toHaveBeenCalledTimes(1);\n });\n\n it('should remove connection from pool', async () => {\n const connectCb = makeConnectCb();\n const closeCb = vi.fn(async (_conn: string) => {\n // Mock close\n });\n\n const pool = new ConnectionPool<string>({\n connectCb,\n closeCb,\n });\n\n const conn = await pool.get();\n pool.put(conn);\n pool.remove(conn);\n\n const conn2 = await pool.get();\n expect(conn2).not.toBe(conn); // Should create new connection\n expect(connectCb).toHaveBeenCalledTimes(2);\n expect(closeCb).toHaveBeenCalledTimes(1);\n });\n });\n\n describe('maxSessionDuration', () => {\n it('should expire connections after maxSessionDuration', async () => {\n const connectCb = makeConnectCb();\n const closeCb = vi.fn(async (_conn: string) => {\n // Mock close\n });\n\n const pool = new ConnectionPool<string>({\n connectCb,\n closeCb,\n maxSessionDuration: 100, // 100ms\n });\n\n const conn1 = await pool.get();\n pool.put(conn1);\n\n // Wait for expiration\n await new Promise((resolve) => setTimeout(resolve, 150));\n\n const conn2 = await pool.get();\n expect(conn2).not.toBe(conn1); // Should create new connection\n expect(connectCb).toHaveBeenCalledTimes(2);\n expect(closeCb).toHaveBeenCalledTimes(1);\n });\n\n it('should refresh connection timestamp when markRefreshedOnGet is true', async () => {\n const connectCb = makeConnectCb();\n const closeCb = vi.fn(async (_conn: string) => {\n // Mock close\n });\n\n const pool = new ConnectionPool<string>({\n connectCb,\n closeCb,\n maxSessionDuration: 200, // 200ms\n markRefreshedOnGet: true,\n });\n\n const conn1 = await pool.get();\n pool.put(conn1);\n\n // Wait 100ms (less than expiration)\n await new Promise((resolve) => setTimeout(resolve, 100));\n\n // Get again - should refresh timestamp\n const conn2 = await pool.get();\n expect(conn2).toBe(conn1); // Should reuse\n pool.put(conn2);\n\n // Wait another 100ms (total 200ms, but refreshed at 100ms)\n await new Promise((resolve) => setTimeout(resolve, 100));\n\n // Should still be valid\n const conn3 = await pool.get();\n expect(conn3).toBe(conn1); // Should still reuse\n expect(connectCb).toHaveBeenCalledTimes(1);\n });\n });\n\n describe('withConnection', () => {\n it('should return connection to pool on success', async () => {\n const connectCb = makeConnectCb();\n const closeCb = vi.fn(async (_conn: string) => {\n // Mock close\n });\n\n const pool = new ConnectionPool<string>({\n connectCb,\n closeCb,\n });\n\n let capturedConn: string | undefined;\n await pool.withConnection(async (conn) => {\n capturedConn = conn;\n return 'result';\n });\n\n // Connection should be returned to pool\n const conn2 = await pool.get();\n expect(conn2).toBe(capturedConn); // Should reuse\n expect(connectCb).toHaveBeenCalledTimes(1);\n });\n\n it('should remove connection from pool on error', async () => {\n const connectCb = makeConnectCb();\n const closeCb = vi.fn(async (_conn: string) => {\n // Mock close\n });\n\n const pool = new ConnectionPool<string>({\n connectCb,\n closeCb,\n });\n\n let capturedConn: string | undefined;\n try {\n await pool.withConnection(async (conn) => {\n capturedConn = conn;\n throw new Error('test error');\n });\n } catch (e) {\n // Expected\n }\n\n // Connection should be removed from pool\n const conn2 = await pool.get();\n expect(conn2).not.toBe(capturedConn); // Should create new connection\n expect(connectCb).toHaveBeenCalledTimes(2);\n expect(closeCb).toHaveBeenCalledTimes(1);\n });\n\n it('should handle abort signal', async () => {\n const connectCb = makeConnectCb();\n const closeCb = vi.fn(async (_conn: string) => {\n // Mock close\n });\n\n const pool = new ConnectionPool<string>({\n connectCb,\n closeCb,\n });\n\n const abortController = new AbortController();\n let capturedConn: string | undefined;\n\n const promise = pool.withConnection(\n async (conn) => {\n capturedConn = conn;\n await new Promise((resolve) => setTimeout(resolve, 1000));\n return 'result';\n },\n { signal: abortController.signal },\n );\n\n // Abort after a short delay\n setTimeout(() => abortController.abort(), 10);\n\n await expect(promise).rejects.toThrow();\n\n // Connection should be removed from pool\n const conn2 = await pool.get();\n expect(conn2).not.toBe(capturedConn); // Should create new connection\n expect(closeCb).toHaveBeenCalledTimes(1);\n });\n });\n\n describe('prewarm', () => {\n it('should create connection in background', async () => {\n let n = 0;\n const connectCb = vi.fn(async (_timeout: number): Promise<string> => {\n await new Promise((resolve) => setTimeout(resolve, 50));\n return `conn_${++n}`;\n });\n const closeCb = vi.fn(async (_conn: string) => {\n // Mock close\n });\n\n const pool = new ConnectionPool<string>({\n connectCb,\n closeCb,\n });\n\n pool.prewarm();\n\n // Wait for prewarm to complete\n await new Promise((resolve) => setTimeout(resolve, 100));\n\n const conn = await pool.get();\n expect(conn).toBeDefined();\n expect(connectCb).toHaveBeenCalledTimes(1);\n });\n\n it('should not prewarm if connections already exist', async () => {\n const connectCb = makeConnectCb();\n const closeCb = vi.fn(async (_conn: string) => {\n // Mock close\n });\n\n const pool = new ConnectionPool<string>({\n connectCb,\n closeCb,\n });\n\n // Create a connection first\n const conn1 = await pool.get();\n pool.put(conn1);\n\n pool.prewarm(); // Should not create new connection\n\n const conn2 = await pool.get();\n expect(conn2).toBe(conn1); // Should reuse existing\n expect(connectCb).toHaveBeenCalledTimes(1);\n });\n });\n\n describe('close', () => {\n it('should close all connections', async () => {\n const connectCb = makeConnectCb();\n const closeCb = vi.fn(async (_conn: string) => {\n // Mock close\n });\n\n const pool = new ConnectionPool<string>({\n connectCb,\n closeCb,\n });\n\n // Create two distinct connections by checking out both before returning either.\n const conn1 = await pool.get();\n const conn2 = await pool.get();\n pool.put(conn1);\n pool.put(conn2);\n\n await pool.close();\n\n expect(closeCb).toHaveBeenCalledTimes(2);\n });\n\n it('should invalidate all connections', async () => {\n const connectCb = makeConnectCb();\n const closeCb = vi.fn(async (_conn: string) => {\n // Mock close\n });\n\n const pool = new ConnectionPool<string>({\n connectCb,\n closeCb,\n });\n\n // Create two distinct connections by checking out both before returning either.\n const conn1 = await pool.get();\n const conn2 = await pool.get();\n pool.put(conn1);\n pool.put(conn2);\n\n pool.invalidate();\n await pool.close(); // Drain to close\n\n expect(closeCb).toHaveBeenCalledTimes(2);\n });\n });\n\n describe('concurrent access', () => {\n it('should handle concurrent get requests', async () => {\n const connectCb = vi.fn(async (_timeout: number): Promise<string> => {\n await new Promise((resolve) => setTimeout(resolve, 10));\n return `conn_${Date.now()}_${Math.random()}`;\n });\n const closeCb = vi.fn(async (_conn: string) => {\n // Mock close\n });\n\n const pool = new ConnectionPool<string>({\n connectCb,\n closeCb,\n });\n\n const promises = Array.from({ length: 5 }, () => pool.get());\n const connections = await Promise.all(promises);\n\n // All should be different connections\n const uniqueConnections = new Set(connections);\n expect(uniqueConnections.size).toBe(5);\n expect(connectCb).toHaveBeenCalledTimes(5);\n });\n });\n});\n"],"mappings":"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","names":["conn"]}
package/dist/index.cjs CHANGED
@@ -55,6 +55,7 @@ var tts = __toESM(require("./tts/index.cjs"), 1);
55
55
  var voice = __toESM(require("./voice/index.cjs"), 1);
56
56
  __reExport(index_exports, require("./_exceptions.cjs"), module.exports);
57
57
  __reExport(index_exports, require("./audio.cjs"), module.exports);
58
+ __reExport(index_exports, require("./connection_pool.cjs"), module.exports);
58
59
  __reExport(index_exports, require("./generator.cjs"), module.exports);
59
60
  __reExport(index_exports, require("./inference_runner.cjs"), module.exports);
60
61
  __reExport(index_exports, require("./job.cjs"), module.exports);
@@ -81,6 +82,7 @@ __reExport(index_exports, require("./worker.cjs"), module.exports);
81
82
  voice,
82
83
  ...require("./_exceptions.cjs"),
83
84
  ...require("./audio.cjs"),
85
+ ...require("./connection_pool.cjs"),
84
86
  ...require("./generator.cjs"),
85
87
  ...require("./inference_runner.cjs"),
86
88
  ...require("./job.cjs"),
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts"],"sourcesContent":["// SPDX-FileCopyrightText: 2024 LiveKit, Inc.\n//\n// SPDX-License-Identifier: Apache-2.0\n\n/**\n * LiveKit Agents is a framework for building realtime programmable participants that run on\n * servers.\n *\n * @see {@link https://docs.livekit.io/agents/overview | LiveKit Agents documentation}\n * @packageDocumentation\n */\nimport * as cli from './cli.js';\nimport * as inference from './inference/index.js';\nimport * as ipc from './ipc/index.js';\nimport * as llm from './llm/index.js';\nimport * as metrics from './metrics/index.js';\nimport * as stream from './stream/index.js';\nimport * as stt from './stt/index.js';\nimport * as telemetry from './telemetry/index.js';\nimport * as tokenize from './tokenize/index.js';\nimport * as tts from './tts/index.js';\nimport * as voice from './voice/index.js';\n\nexport * from './_exceptions.js';\nexport * from './audio.js';\nexport * from './generator.js';\nexport * from './inference_runner.js';\nexport * from './job.js';\nexport * from './log.js';\nexport * from './plugin.js';\nexport * from './transcription.js';\nexport * from './types.js';\nexport * from './utils.js';\nexport * from './vad.js';\nexport * from './version.js';\nexport * from './worker.js';\n\nexport { cli, inference, ipc, llm, metrics, stream, stt, telemetry, tokenize, tts, voice };\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAWA,UAAqB;AACrB,gBAA2B;AAC3B,UAAqB;AACrB,UAAqB;AACrB,cAAyB;AACzB,aAAwB;AACxB,UAAqB;AACrB,gBAA2B;AAC3B,eAA0B;AAC1B,UAAqB;AACrB,YAAuB;AAEvB,0BAAc,6BAvBd;AAwBA,0BAAc,uBAxBd;AAyBA,0BAAc,2BAzBd;AA0BA,0BAAc,kCA1Bd;AA2BA,0BAAc,qBA3Bd;AA4BA,0BAAc,qBA5Bd;AA6BA,0BAAc,wBA7Bd;AA8BA,0BAAc,+BA9Bd;AA+BA,0BAAc,uBA/Bd;AAgCA,0BAAc,uBAhCd;AAiCA,0BAAc,qBAjCd;AAkCA,0BAAc,yBAlCd;AAmCA,0BAAc,wBAnCd;","names":[]}
1
+ {"version":3,"sources":["../src/index.ts"],"sourcesContent":["// SPDX-FileCopyrightText: 2024 LiveKit, Inc.\n//\n// SPDX-License-Identifier: Apache-2.0\n\n/**\n * LiveKit Agents is a framework for building realtime programmable participants that run on\n * servers.\n *\n * @see {@link https://docs.livekit.io/agents/overview | LiveKit Agents documentation}\n * @packageDocumentation\n */\nimport * as cli from './cli.js';\nimport * as inference from './inference/index.js';\nimport * as ipc from './ipc/index.js';\nimport * as llm from './llm/index.js';\nimport * as metrics from './metrics/index.js';\nimport * as stream from './stream/index.js';\nimport * as stt from './stt/index.js';\nimport * as telemetry from './telemetry/index.js';\nimport * as tokenize from './tokenize/index.js';\nimport * as tts from './tts/index.js';\nimport * as voice from './voice/index.js';\n\nexport * from './_exceptions.js';\nexport * from './audio.js';\nexport * from './connection_pool.js';\nexport * from './generator.js';\nexport * from './inference_runner.js';\nexport * from './job.js';\nexport * from './log.js';\nexport * from './plugin.js';\nexport * from './transcription.js';\nexport * from './types.js';\nexport * from './utils.js';\nexport * from './vad.js';\nexport * from './version.js';\nexport * from './worker.js';\n\nexport { cli, inference, ipc, llm, metrics, stream, stt, telemetry, tokenize, tts, voice };\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAWA,UAAqB;AACrB,gBAA2B;AAC3B,UAAqB;AACrB,UAAqB;AACrB,cAAyB;AACzB,aAAwB;AACxB,UAAqB;AACrB,gBAA2B;AAC3B,eAA0B;AAC1B,UAAqB;AACrB,YAAuB;AAEvB,0BAAc,6BAvBd;AAwBA,0BAAc,uBAxBd;AAyBA,0BAAc,iCAzBd;AA0BA,0BAAc,2BA1Bd;AA2BA,0BAAc,kCA3Bd;AA4BA,0BAAc,qBA5Bd;AA6BA,0BAAc,qBA7Bd;AA8BA,0BAAc,wBA9Bd;AA+BA,0BAAc,+BA/Bd;AAgCA,0BAAc,uBAhCd;AAiCA,0BAAc,uBAjCd;AAkCA,0BAAc,qBAlCd;AAmCA,0BAAc,yBAnCd;AAoCA,0BAAc,wBApCd;","names":[]}
package/dist/index.d.cts CHANGED
@@ -18,6 +18,7 @@ import * as tts from './tts/index.js';
18
18
  import * as voice from './voice/index.js';
19
19
  export * from './_exceptions.js';
20
20
  export * from './audio.js';
21
+ export * from './connection_pool.js';
21
22
  export * from './generator.js';
22
23
  export * from './inference_runner.js';
23
24
  export * from './job.js';
package/dist/index.d.ts CHANGED
@@ -18,6 +18,7 @@ import * as tts from './tts/index.js';
18
18
  import * as voice from './voice/index.js';
19
19
  export * from './_exceptions.js';
20
20
  export * from './audio.js';
21
+ export * from './connection_pool.js';
21
22
  export * from './generator.js';
22
23
  export * from './inference_runner.js';
23
24
  export * from './job.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAIA;;;;;;GAMG;AACH,OAAO,KAAK,GAAG,MAAM,UAAU,CAAC;AAChC,OAAO,KAAK,SAAS,MAAM,sBAAsB,CAAC;AAClD,OAAO,KAAK,GAAG,MAAM,gBAAgB,CAAC;AACtC,OAAO,KAAK,GAAG,MAAM,gBAAgB,CAAC;AACtC,OAAO,KAAK,OAAO,MAAM,oBAAoB,CAAC;AAC9C,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAC;AAC5C,OAAO,KAAK,GAAG,MAAM,gBAAgB,CAAC;AACtC,OAAO,KAAK,SAAS,MAAM,sBAAsB,CAAC;AAClD,OAAO,KAAK,QAAQ,MAAM,qBAAqB,CAAC;AAChD,OAAO,KAAK,GAAG,MAAM,gBAAgB,CAAC;AACtC,OAAO,KAAK,KAAK,MAAM,kBAAkB,CAAC;AAE1C,cAAc,kBAAkB,CAAC;AACjC,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,uBAAuB,CAAC;AACtC,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,oBAAoB,CAAC;AACnC,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAE5B,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAIA;;;;;;GAMG;AACH,OAAO,KAAK,GAAG,MAAM,UAAU,CAAC;AAChC,OAAO,KAAK,SAAS,MAAM,sBAAsB,CAAC;AAClD,OAAO,KAAK,GAAG,MAAM,gBAAgB,CAAC;AACtC,OAAO,KAAK,GAAG,MAAM,gBAAgB,CAAC;AACtC,OAAO,KAAK,OAAO,MAAM,oBAAoB,CAAC;AAC9C,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAC;AAC5C,OAAO,KAAK,GAAG,MAAM,gBAAgB,CAAC;AACtC,OAAO,KAAK,SAAS,MAAM,sBAAsB,CAAC;AAClD,OAAO,KAAK,QAAQ,MAAM,qBAAqB,CAAC;AAChD,OAAO,KAAK,GAAG,MAAM,gBAAgB,CAAC;AACtC,OAAO,KAAK,KAAK,MAAM,kBAAkB,CAAC;AAE1C,cAAc,kBAAkB,CAAC;AACjC,cAAc,YAAY,CAAC;AAC3B,cAAc,sBAAsB,CAAC;AACrC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,uBAAuB,CAAC;AACtC,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,oBAAoB,CAAC;AACnC,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAE5B,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC"}
package/dist/index.js CHANGED
@@ -11,6 +11,7 @@ import * as tts from "./tts/index.js";
11
11
  import * as voice from "./voice/index.js";
12
12
  export * from "./_exceptions.js";
13
13
  export * from "./audio.js";
14
+ export * from "./connection_pool.js";
14
15
  export * from "./generator.js";
15
16
  export * from "./inference_runner.js";
16
17
  export * from "./job.js";
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts"],"sourcesContent":["// SPDX-FileCopyrightText: 2024 LiveKit, Inc.\n//\n// SPDX-License-Identifier: Apache-2.0\n\n/**\n * LiveKit Agents is a framework for building realtime programmable participants that run on\n * servers.\n *\n * @see {@link https://docs.livekit.io/agents/overview | LiveKit Agents documentation}\n * @packageDocumentation\n */\nimport * as cli from './cli.js';\nimport * as inference from './inference/index.js';\nimport * as ipc from './ipc/index.js';\nimport * as llm from './llm/index.js';\nimport * as metrics from './metrics/index.js';\nimport * as stream from './stream/index.js';\nimport * as stt from './stt/index.js';\nimport * as telemetry from './telemetry/index.js';\nimport * as tokenize from './tokenize/index.js';\nimport * as tts from './tts/index.js';\nimport * as voice from './voice/index.js';\n\nexport * from './_exceptions.js';\nexport * from './audio.js';\nexport * from './generator.js';\nexport * from './inference_runner.js';\nexport * from './job.js';\nexport * from './log.js';\nexport * from './plugin.js';\nexport * from './transcription.js';\nexport * from './types.js';\nexport * from './utils.js';\nexport * from './vad.js';\nexport * from './version.js';\nexport * from './worker.js';\n\nexport { cli, inference, ipc, llm, metrics, stream, stt, telemetry, tokenize, tts, voice };\n"],"mappings":"AAWA,YAAY,SAAS;AACrB,YAAY,eAAe;AAC3B,YAAY,SAAS;AACrB,YAAY,SAAS;AACrB,YAAY,aAAa;AACzB,YAAY,YAAY;AACxB,YAAY,SAAS;AACrB,YAAY,eAAe;AAC3B,YAAY,cAAc;AAC1B,YAAY,SAAS;AACrB,YAAY,WAAW;AAEvB,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;","names":[]}
1
+ {"version":3,"sources":["../src/index.ts"],"sourcesContent":["// SPDX-FileCopyrightText: 2024 LiveKit, Inc.\n//\n// SPDX-License-Identifier: Apache-2.0\n\n/**\n * LiveKit Agents is a framework for building realtime programmable participants that run on\n * servers.\n *\n * @see {@link https://docs.livekit.io/agents/overview | LiveKit Agents documentation}\n * @packageDocumentation\n */\nimport * as cli from './cli.js';\nimport * as inference from './inference/index.js';\nimport * as ipc from './ipc/index.js';\nimport * as llm from './llm/index.js';\nimport * as metrics from './metrics/index.js';\nimport * as stream from './stream/index.js';\nimport * as stt from './stt/index.js';\nimport * as telemetry from './telemetry/index.js';\nimport * as tokenize from './tokenize/index.js';\nimport * as tts from './tts/index.js';\nimport * as voice from './voice/index.js';\n\nexport * from './_exceptions.js';\nexport * from './audio.js';\nexport * from './connection_pool.js';\nexport * from './generator.js';\nexport * from './inference_runner.js';\nexport * from './job.js';\nexport * from './log.js';\nexport * from './plugin.js';\nexport * from './transcription.js';\nexport * from './types.js';\nexport * from './utils.js';\nexport * from './vad.js';\nexport * from './version.js';\nexport * from './worker.js';\n\nexport { cli, inference, ipc, llm, metrics, stream, stt, telemetry, tokenize, tts, voice };\n"],"mappings":"AAWA,YAAY,SAAS;AACrB,YAAY,eAAe;AAC3B,YAAY,SAAS;AACrB,YAAY,SAAS;AACrB,YAAY,aAAa;AACzB,YAAY,YAAY;AACxB,YAAY,SAAS;AACrB,YAAY,eAAe;AAC3B,YAAY,cAAc;AAC1B,YAAY,SAAS;AACrB,YAAY,WAAW;AAEvB,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;","names":[]}