@livekit/agents 1.0.14 → 1.0.15

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 (50) hide show
  1. package/dist/llm/tool_context.cjs +3 -2
  2. package/dist/llm/tool_context.cjs.map +1 -1
  3. package/dist/llm/tool_context.d.cts +37 -11
  4. package/dist/llm/tool_context.d.ts +37 -11
  5. package/dist/llm/tool_context.d.ts.map +1 -1
  6. package/dist/llm/tool_context.js +4 -3
  7. package/dist/llm/tool_context.js.map +1 -1
  8. package/dist/llm/tool_context.test.cjs +197 -0
  9. package/dist/llm/tool_context.test.cjs.map +1 -1
  10. package/dist/llm/tool_context.test.js +175 -0
  11. package/dist/llm/tool_context.test.js.map +1 -1
  12. package/dist/llm/utils.cjs +17 -11
  13. package/dist/llm/utils.cjs.map +1 -1
  14. package/dist/llm/utils.d.cts +1 -2
  15. package/dist/llm/utils.d.ts +1 -2
  16. package/dist/llm/utils.d.ts.map +1 -1
  17. package/dist/llm/utils.js +17 -11
  18. package/dist/llm/utils.js.map +1 -1
  19. package/dist/llm/zod-utils.cjs +99 -0
  20. package/dist/llm/zod-utils.cjs.map +1 -0
  21. package/dist/llm/zod-utils.d.cts +65 -0
  22. package/dist/llm/zod-utils.d.ts +65 -0
  23. package/dist/llm/zod-utils.d.ts.map +1 -0
  24. package/dist/llm/zod-utils.js +61 -0
  25. package/dist/llm/zod-utils.js.map +1 -0
  26. package/dist/llm/zod-utils.test.cjs +389 -0
  27. package/dist/llm/zod-utils.test.cjs.map +1 -0
  28. package/dist/llm/zod-utils.test.js +372 -0
  29. package/dist/llm/zod-utils.test.js.map +1 -0
  30. package/dist/vad.cjs +16 -0
  31. package/dist/vad.cjs.map +1 -1
  32. package/dist/vad.d.cts +6 -0
  33. package/dist/vad.d.ts +6 -0
  34. package/dist/vad.d.ts.map +1 -1
  35. package/dist/vad.js +16 -0
  36. package/dist/vad.js.map +1 -1
  37. package/dist/voice/generation.cjs +8 -3
  38. package/dist/voice/generation.cjs.map +1 -1
  39. package/dist/voice/generation.d.ts.map +1 -1
  40. package/dist/voice/generation.js +8 -3
  41. package/dist/voice/generation.js.map +1 -1
  42. package/package.json +5 -4
  43. package/src/llm/__snapshots__/zod-utils.test.ts.snap +341 -0
  44. package/src/llm/tool_context.test.ts +210 -1
  45. package/src/llm/tool_context.ts +57 -17
  46. package/src/llm/utils.ts +18 -15
  47. package/src/llm/zod-utils.test.ts +476 -0
  48. package/src/llm/zod-utils.ts +144 -0
  49. package/src/vad.ts +18 -0
  50. package/src/voice/generation.ts +8 -3
package/src/vad.ts CHANGED
@@ -177,6 +177,24 @@ export abstract class VADStream implements AsyncIterableIterator<VADEvent> {
177
177
  }
178
178
  }
179
179
 
180
+ /**
181
+ * Safely send a VAD event to the output stream, handling writer release errors during shutdown.
182
+ * @returns true if the event was sent, false if the stream is closing
183
+ * @throws Error if an unexpected error occurs
184
+ */
185
+ protected sendVADEvent(event: VADEvent): boolean {
186
+ if (this.closed) {
187
+ return false;
188
+ }
189
+
190
+ try {
191
+ this.outputWriter.write(event);
192
+ return true;
193
+ } catch (e) {
194
+ throw e;
195
+ }
196
+ }
197
+
180
198
  updateInputStream(audioStream: ReadableStream<AudioFrame>) {
181
199
  this.deferredInputStream.setSource(audioStream);
182
200
  }
@@ -4,7 +4,6 @@
4
4
  import type { AudioFrame } from '@livekit/rtc-node';
5
5
  import { AudioResampler } from '@livekit/rtc-node';
6
6
  import type { ReadableStream, ReadableStreamDefaultReader } from 'stream/web';
7
- import { ZodObject } from 'zod';
8
7
  import {
9
8
  type ChatContext,
10
9
  ChatMessage,
@@ -19,6 +18,7 @@ import {
19
18
  isFunctionTool,
20
19
  isToolError,
21
20
  } from '../llm/tool_context.js';
21
+ import { isZodSchema, parseZodSchema } from '../llm/zod-utils.js';
22
22
  import { log } from '../log.js';
23
23
  import { IdentityTransform } from '../stream/identity_transform.js';
24
24
  import { Future, Task, shortuuid, toError } from '../utils.js';
@@ -732,8 +732,13 @@ export function performToolExecutions({
732
732
  try {
733
733
  const jsonArgs = JSON.parse(toolCall.args);
734
734
 
735
- if (tool.parameters instanceof ZodObject) {
736
- parsedArgs = tool.parameters.parse(jsonArgs);
735
+ if (isZodSchema(tool.parameters)) {
736
+ const result = await parseZodSchema<object>(tool.parameters, jsonArgs);
737
+ if (result.success) {
738
+ parsedArgs = result.data;
739
+ } else {
740
+ throw result.error;
741
+ }
737
742
  } else {
738
743
  parsedArgs = jsonArgs;
739
744
  }