@livekit/agents 0.7.8 → 1.0.0-next.0
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/_exceptions.cjs +109 -0
- package/dist/_exceptions.cjs.map +1 -0
- package/dist/_exceptions.d.cts +64 -0
- package/dist/_exceptions.d.ts +64 -0
- package/dist/_exceptions.d.ts.map +1 -0
- package/dist/_exceptions.js +80 -0
- package/dist/_exceptions.js.map +1 -0
- package/dist/audio.cjs +10 -3
- package/dist/audio.cjs.map +1 -1
- package/dist/audio.d.cts +2 -0
- package/dist/audio.d.ts +2 -0
- package/dist/audio.d.ts.map +1 -1
- package/dist/audio.js +8 -2
- package/dist/audio.js.map +1 -1
- package/dist/cli.cjs +25 -0
- package/dist/cli.cjs.map +1 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +25 -0
- package/dist/cli.js.map +1 -1
- package/dist/constants.cjs +6 -0
- package/dist/constants.cjs.map +1 -1
- package/dist/constants.d.cts +2 -0
- package/dist/constants.d.ts +2 -0
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +4 -0
- package/dist/constants.js.map +1 -1
- package/dist/http_server.cjs.map +1 -1
- package/dist/http_server.d.cts +1 -0
- package/dist/http_server.d.ts +1 -0
- package/dist/http_server.d.ts.map +1 -1
- package/dist/http_server.js.map +1 -1
- package/dist/index.cjs +27 -20
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +13 -10
- package/dist/index.d.ts +13 -10
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +15 -11
- package/dist/index.js.map +1 -1
- package/dist/inference_runner.cjs +0 -1
- package/dist/inference_runner.cjs.map +1 -1
- package/dist/inference_runner.d.cts +2 -3
- package/dist/inference_runner.d.ts +2 -3
- package/dist/inference_runner.d.ts.map +1 -1
- package/dist/inference_runner.js +0 -1
- package/dist/inference_runner.js.map +1 -1
- package/dist/ipc/inference_proc_executor.cjs +2 -2
- package/dist/ipc/inference_proc_executor.cjs.map +1 -1
- package/dist/ipc/inference_proc_executor.js +2 -2
- package/dist/ipc/inference_proc_executor.js.map +1 -1
- package/dist/ipc/job_executor.cjs.map +1 -1
- package/dist/ipc/job_executor.js.map +1 -1
- package/dist/ipc/job_proc_executor.cjs +1 -0
- package/dist/ipc/job_proc_executor.cjs.map +1 -1
- package/dist/ipc/job_proc_executor.js +1 -0
- package/dist/ipc/job_proc_executor.js.map +1 -1
- package/dist/ipc/job_proc_lazy_main.cjs +1 -1
- package/dist/ipc/job_proc_lazy_main.cjs.map +1 -1
- package/dist/ipc/job_proc_lazy_main.js +1 -1
- package/dist/ipc/job_proc_lazy_main.js.map +1 -1
- package/dist/ipc/supervised_proc.d.cts +1 -1
- package/dist/ipc/supervised_proc.d.ts +1 -1
- package/dist/ipc/supervised_proc.d.ts.map +1 -1
- package/dist/job.cjs +14 -2
- package/dist/job.cjs.map +1 -1
- package/dist/job.d.cts +8 -0
- package/dist/job.d.ts +8 -0
- package/dist/job.d.ts.map +1 -1
- package/dist/job.js +12 -1
- package/dist/job.js.map +1 -1
- package/dist/llm/chat_context.cjs +332 -82
- package/dist/llm/chat_context.cjs.map +1 -1
- package/dist/llm/chat_context.d.cts +152 -48
- package/dist/llm/chat_context.d.ts +152 -48
- package/dist/llm/chat_context.d.ts.map +1 -1
- package/dist/llm/chat_context.js +327 -81
- package/dist/llm/chat_context.js.map +1 -1
- package/dist/llm/chat_context.test.cjs +380 -0
- package/dist/llm/chat_context.test.cjs.map +1 -0
- package/dist/llm/chat_context.test.js +385 -0
- package/dist/llm/chat_context.test.js.map +1 -0
- package/dist/llm/index.cjs +37 -8
- package/dist/llm/index.cjs.map +1 -1
- package/dist/llm/index.d.cts +7 -3
- package/dist/llm/index.d.ts +7 -3
- package/dist/llm/index.d.ts.map +1 -1
- package/dist/llm/index.js +39 -9
- package/dist/llm/index.js.map +1 -1
- package/dist/llm/llm.cjs +98 -33
- package/dist/llm/llm.cjs.map +1 -1
- package/dist/llm/llm.d.cts +50 -24
- package/dist/llm/llm.d.ts +50 -24
- package/dist/llm/llm.d.ts.map +1 -1
- package/dist/llm/llm.js +99 -33
- package/dist/llm/llm.js.map +1 -1
- package/dist/llm/provider_format/google.cjs +128 -0
- package/dist/llm/provider_format/google.cjs.map +1 -0
- package/dist/llm/provider_format/google.d.cts +6 -0
- package/dist/llm/provider_format/google.d.ts +6 -0
- package/dist/llm/provider_format/google.d.ts.map +1 -0
- package/dist/llm/provider_format/google.js +104 -0
- package/dist/llm/provider_format/google.js.map +1 -0
- package/dist/llm/provider_format/google.test.cjs +676 -0
- package/dist/llm/provider_format/google.test.cjs.map +1 -0
- package/dist/llm/provider_format/google.test.js +675 -0
- package/dist/llm/provider_format/google.test.js.map +1 -0
- package/dist/llm/provider_format/index.cjs +40 -0
- package/dist/llm/provider_format/index.cjs.map +1 -0
- package/dist/llm/provider_format/index.d.cts +4 -0
- package/dist/llm/provider_format/index.d.ts +4 -0
- package/dist/llm/provider_format/index.d.ts.map +1 -0
- package/dist/llm/provider_format/index.js +16 -0
- package/dist/llm/provider_format/index.js.map +1 -0
- package/dist/llm/provider_format/openai.cjs +116 -0
- package/dist/llm/provider_format/openai.cjs.map +1 -0
- package/dist/llm/provider_format/openai.d.cts +3 -0
- package/dist/llm/provider_format/openai.d.ts +3 -0
- package/dist/llm/provider_format/openai.d.ts.map +1 -0
- package/dist/llm/provider_format/openai.js +92 -0
- package/dist/llm/provider_format/openai.js.map +1 -0
- package/dist/llm/provider_format/openai.test.cjs +490 -0
- package/dist/llm/provider_format/openai.test.cjs.map +1 -0
- package/dist/llm/provider_format/openai.test.js +489 -0
- package/dist/llm/provider_format/openai.test.js.map +1 -0
- package/dist/llm/provider_format/utils.cjs +146 -0
- package/dist/llm/provider_format/utils.cjs.map +1 -0
- package/dist/llm/provider_format/utils.d.cts +38 -0
- package/dist/llm/provider_format/utils.d.ts +38 -0
- package/dist/llm/provider_format/utils.d.ts.map +1 -0
- package/dist/llm/provider_format/utils.js +122 -0
- package/dist/llm/provider_format/utils.js.map +1 -0
- package/dist/llm/realtime.cjs +77 -0
- package/dist/llm/realtime.cjs.map +1 -0
- package/dist/llm/realtime.d.cts +98 -0
- package/dist/llm/realtime.d.ts +98 -0
- package/dist/llm/realtime.d.ts.map +1 -0
- package/dist/llm/realtime.js +52 -0
- package/dist/llm/realtime.js.map +1 -0
- package/dist/llm/remote_chat_context.cjs +112 -0
- package/dist/llm/remote_chat_context.cjs.map +1 -0
- package/dist/llm/remote_chat_context.d.cts +23 -0
- package/dist/llm/remote_chat_context.d.ts +23 -0
- package/dist/llm/remote_chat_context.d.ts.map +1 -0
- package/dist/llm/remote_chat_context.js +88 -0
- package/dist/llm/remote_chat_context.js.map +1 -0
- package/dist/llm/remote_chat_context.test.cjs +225 -0
- package/dist/llm/remote_chat_context.test.cjs.map +1 -0
- package/dist/llm/remote_chat_context.test.js +224 -0
- package/dist/llm/remote_chat_context.test.js.map +1 -0
- package/dist/llm/tool_context.cjs +111 -0
- package/dist/llm/tool_context.cjs.map +1 -0
- package/dist/llm/tool_context.d.cts +125 -0
- package/dist/llm/tool_context.d.ts +125 -0
- package/dist/llm/tool_context.d.ts.map +1 -0
- package/dist/llm/tool_context.js +80 -0
- package/dist/llm/tool_context.js.map +1 -0
- package/dist/llm/tool_context.test.cjs +162 -0
- package/dist/llm/tool_context.test.cjs.map +1 -0
- package/dist/llm/tool_context.test.js +161 -0
- package/dist/llm/tool_context.test.js.map +1 -0
- package/dist/llm/tool_context.type.test.cjs +92 -0
- package/dist/llm/tool_context.type.test.cjs.map +1 -0
- package/dist/llm/tool_context.type.test.js +91 -0
- package/dist/llm/tool_context.type.test.js.map +1 -0
- package/dist/llm/utils.cjs +260 -0
- package/dist/llm/utils.cjs.map +1 -0
- package/dist/llm/utils.d.cts +42 -0
- package/dist/llm/utils.d.ts +42 -0
- package/dist/llm/utils.d.ts.map +1 -0
- package/dist/llm/utils.js +223 -0
- package/dist/llm/utils.js.map +1 -0
- package/dist/llm/utils.test.cjs +513 -0
- package/dist/llm/utils.test.cjs.map +1 -0
- package/dist/llm/utils.test.js +490 -0
- package/dist/llm/utils.test.js.map +1 -0
- package/dist/metrics/base.cjs +0 -27
- package/dist/metrics/base.cjs.map +1 -1
- package/dist/metrics/base.d.cts +105 -63
- package/dist/metrics/base.d.ts +105 -63
- package/dist/metrics/base.d.ts.map +1 -1
- package/dist/metrics/base.js +0 -19
- package/dist/metrics/base.js.map +1 -1
- package/dist/metrics/index.cjs +0 -3
- package/dist/metrics/index.cjs.map +1 -1
- package/dist/metrics/index.d.cts +2 -3
- package/dist/metrics/index.d.ts +2 -3
- package/dist/metrics/index.d.ts.map +1 -1
- package/dist/metrics/index.js +0 -2
- package/dist/metrics/index.js.map +1 -1
- package/dist/metrics/usage_collector.cjs +17 -12
- package/dist/metrics/usage_collector.cjs.map +1 -1
- package/dist/metrics/usage_collector.d.cts +3 -2
- package/dist/metrics/usage_collector.d.ts +3 -2
- package/dist/metrics/usage_collector.d.ts.map +1 -1
- package/dist/metrics/usage_collector.js +17 -12
- package/dist/metrics/usage_collector.js.map +1 -1
- package/dist/metrics/utils.cjs +22 -59
- package/dist/metrics/utils.cjs.map +1 -1
- package/dist/metrics/utils.d.cts +1 -8
- package/dist/metrics/utils.d.ts +1 -8
- package/dist/metrics/utils.d.ts.map +1 -1
- package/dist/metrics/utils.js +22 -52
- package/dist/metrics/utils.js.map +1 -1
- package/dist/multimodal/index.cjs +0 -2
- package/dist/multimodal/index.cjs.map +1 -1
- package/dist/multimodal/index.d.cts +0 -1
- package/dist/multimodal/index.d.ts +0 -1
- package/dist/multimodal/index.d.ts.map +1 -1
- package/dist/multimodal/index.js +0 -1
- package/dist/multimodal/index.js.map +1 -1
- package/dist/plugin.cjs +24 -8
- package/dist/plugin.cjs.map +1 -1
- package/dist/plugin.d.cts +18 -4
- package/dist/plugin.d.ts +18 -4
- package/dist/plugin.d.ts.map +1 -1
- package/dist/plugin.js +22 -7
- package/dist/plugin.js.map +1 -1
- package/dist/stream/deferred_stream.cjs +98 -0
- package/dist/stream/deferred_stream.cjs.map +1 -0
- package/dist/stream/deferred_stream.d.cts +27 -0
- package/dist/stream/deferred_stream.d.ts +27 -0
- package/dist/stream/deferred_stream.d.ts.map +1 -0
- package/dist/stream/deferred_stream.js +73 -0
- package/dist/stream/deferred_stream.js.map +1 -0
- package/dist/stream/deferred_stream.test.cjs +527 -0
- package/dist/stream/deferred_stream.test.cjs.map +1 -0
- package/dist/stream/deferred_stream.test.js +526 -0
- package/dist/stream/deferred_stream.test.js.map +1 -0
- package/dist/stream/identity_transform.cjs +42 -0
- package/dist/stream/identity_transform.cjs.map +1 -0
- package/dist/stream/identity_transform.d.cts +6 -0
- package/dist/stream/identity_transform.d.ts +6 -0
- package/dist/stream/identity_transform.d.ts.map +1 -0
- package/dist/stream/identity_transform.js +18 -0
- package/dist/stream/identity_transform.js.map +1 -0
- package/dist/stream/identity_transform.test.cjs +125 -0
- package/dist/stream/identity_transform.test.cjs.map +1 -0
- package/dist/stream/identity_transform.test.js +124 -0
- package/dist/stream/identity_transform.test.js.map +1 -0
- package/dist/stream/index.cjs +38 -0
- package/dist/stream/index.cjs.map +1 -0
- package/dist/stream/index.d.cts +5 -0
- package/dist/stream/index.d.ts +5 -0
- package/dist/stream/index.d.ts.map +1 -0
- package/dist/stream/index.js +11 -0
- package/dist/stream/index.js.map +1 -0
- package/dist/stream/merge_readable_streams.cjs +59 -0
- package/dist/stream/merge_readable_streams.cjs.map +1 -0
- package/dist/stream/merge_readable_streams.d.cts +4 -0
- package/dist/stream/merge_readable_streams.d.ts +4 -0
- package/dist/stream/merge_readable_streams.d.ts.map +1 -0
- package/dist/stream/merge_readable_streams.js +35 -0
- package/dist/stream/merge_readable_streams.js.map +1 -0
- package/dist/stream/stream_channel.cjs +47 -0
- package/dist/stream/stream_channel.cjs.map +1 -0
- package/dist/stream/stream_channel.d.cts +9 -0
- package/dist/stream/stream_channel.d.ts +9 -0
- package/dist/stream/stream_channel.d.ts.map +1 -0
- package/dist/stream/stream_channel.js +23 -0
- package/dist/stream/stream_channel.js.map +1 -0
- package/dist/stream/stream_channel.test.cjs +97 -0
- package/dist/stream/stream_channel.test.cjs.map +1 -0
- package/dist/stream/stream_channel.test.js +96 -0
- package/dist/stream/stream_channel.test.js.map +1 -0
- package/dist/stt/stream_adapter.cjs +3 -4
- package/dist/stt/stream_adapter.cjs.map +1 -1
- package/dist/stt/stream_adapter.d.cts +1 -0
- package/dist/stt/stream_adapter.d.ts +1 -0
- package/dist/stt/stream_adapter.d.ts.map +1 -1
- package/dist/stt/stream_adapter.js +3 -4
- package/dist/stt/stream_adapter.js.map +1 -1
- package/dist/stt/stt.cjs +101 -10
- package/dist/stt/stt.cjs.map +1 -1
- package/dist/stt/stt.d.cts +26 -5
- package/dist/stt/stt.d.ts +26 -5
- package/dist/stt/stt.d.ts.map +1 -1
- package/dist/stt/stt.js +102 -11
- package/dist/stt/stt.js.map +1 -1
- package/dist/tokenize/basic/basic.cjs +10 -5
- package/dist/tokenize/basic/basic.cjs.map +1 -1
- package/dist/tokenize/basic/basic.d.cts +7 -1
- package/dist/tokenize/basic/basic.d.ts +7 -1
- package/dist/tokenize/basic/basic.d.ts.map +1 -1
- package/dist/tokenize/basic/basic.js +10 -5
- package/dist/tokenize/basic/basic.js.map +1 -1
- package/dist/tokenize/basic/sentence.cjs +14 -6
- package/dist/tokenize/basic/sentence.cjs.map +1 -1
- package/dist/tokenize/basic/sentence.d.cts +1 -1
- package/dist/tokenize/basic/sentence.d.ts +1 -1
- package/dist/tokenize/basic/sentence.d.ts.map +1 -1
- package/dist/tokenize/basic/sentence.js +14 -6
- package/dist/tokenize/basic/sentence.js.map +1 -1
- package/dist/tokenize/token_stream.cjs +5 -3
- package/dist/tokenize/token_stream.cjs.map +1 -1
- package/dist/tokenize/token_stream.d.cts +1 -0
- package/dist/tokenize/token_stream.d.ts +1 -0
- package/dist/tokenize/token_stream.d.ts.map +1 -1
- package/dist/tokenize/token_stream.js +6 -4
- package/dist/tokenize/token_stream.js.map +1 -1
- package/dist/transcription.cjs +1 -2
- package/dist/transcription.cjs.map +1 -1
- package/dist/transcription.d.ts.map +1 -1
- package/dist/transcription.js +2 -3
- package/dist/transcription.js.map +1 -1
- package/dist/tts/index.cjs +2 -4
- package/dist/tts/index.cjs.map +1 -1
- package/dist/tts/index.d.cts +1 -1
- package/dist/tts/index.d.ts +1 -1
- package/dist/tts/index.d.ts.map +1 -1
- package/dist/tts/index.js +1 -3
- package/dist/tts/index.js.map +1 -1
- package/dist/tts/stream_adapter.cjs +26 -13
- package/dist/tts/stream_adapter.cjs.map +1 -1
- package/dist/tts/stream_adapter.d.cts +1 -1
- package/dist/tts/stream_adapter.d.ts +1 -1
- package/dist/tts/stream_adapter.d.ts.map +1 -1
- package/dist/tts/stream_adapter.js +27 -14
- package/dist/tts/stream_adapter.js.map +1 -1
- package/dist/tts/tts.cjs +157 -25
- package/dist/tts/tts.cjs.map +1 -1
- package/dist/tts/tts.d.cts +29 -5
- package/dist/tts/tts.d.ts +29 -5
- package/dist/tts/tts.d.ts.map +1 -1
- package/dist/tts/tts.js +157 -24
- package/dist/tts/tts.js.map +1 -1
- package/dist/types.cjs +60 -0
- package/dist/types.cjs.map +1 -0
- package/dist/types.d.cts +13 -0
- package/dist/types.d.ts +13 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +35 -0
- package/dist/types.js.map +1 -0
- package/dist/utils.cjs +281 -27
- package/dist/utils.cjs.map +1 -1
- package/dist/utils.d.cts +134 -9
- package/dist/utils.d.ts +134 -9
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +265 -26
- package/dist/utils.js.map +1 -1
- package/dist/utils.test.cjs +492 -0
- package/dist/utils.test.cjs.map +1 -0
- package/dist/utils.test.js +498 -0
- package/dist/utils.test.js.map +1 -0
- package/dist/vad.cjs +76 -20
- package/dist/vad.cjs.map +1 -1
- package/dist/vad.d.cts +25 -5
- package/dist/vad.d.ts +25 -5
- package/dist/vad.d.ts.map +1 -1
- package/dist/vad.js +76 -20
- package/dist/vad.js.map +1 -1
- package/dist/voice/agent.cjs +245 -0
- package/dist/voice/agent.cjs.map +1 -0
- package/dist/voice/agent.d.cts +78 -0
- package/dist/voice/agent.d.ts +78 -0
- package/dist/voice/agent.d.ts.map +1 -0
- package/dist/voice/agent.js +220 -0
- package/dist/voice/agent.js.map +1 -0
- package/dist/voice/agent.test.cjs +61 -0
- package/dist/voice/agent.test.cjs.map +1 -0
- package/dist/voice/agent.test.js +60 -0
- package/dist/voice/agent.test.js.map +1 -0
- package/dist/voice/agent_activity.cjs +1453 -0
- package/dist/voice/agent_activity.cjs.map +1 -0
- package/dist/voice/agent_activity.d.cts +94 -0
- package/dist/voice/agent_activity.d.ts +94 -0
- package/dist/voice/agent_activity.d.ts.map +1 -0
- package/dist/voice/agent_activity.js +1449 -0
- package/dist/voice/agent_activity.js.map +1 -0
- package/dist/voice/agent_session.cjs +312 -0
- package/dist/voice/agent_session.cjs.map +1 -0
- package/dist/voice/agent_session.d.cts +121 -0
- package/dist/voice/agent_session.d.ts +121 -0
- package/dist/voice/agent_session.d.ts.map +1 -0
- package/dist/voice/agent_session.js +295 -0
- package/dist/voice/agent_session.js.map +1 -0
- package/dist/voice/audio_recognition.cjs +375 -0
- package/dist/voice/audio_recognition.cjs.map +1 -0
- package/dist/voice/audio_recognition.d.cts +80 -0
- package/dist/voice/audio_recognition.d.ts +80 -0
- package/dist/voice/audio_recognition.d.ts.map +1 -0
- package/dist/voice/audio_recognition.js +351 -0
- package/dist/voice/audio_recognition.js.map +1 -0
- package/dist/voice/events.cjs +145 -0
- package/dist/voice/events.cjs.map +1 -0
- package/dist/voice/events.d.cts +124 -0
- package/dist/voice/events.d.ts +124 -0
- package/dist/voice/events.d.ts.map +1 -0
- package/dist/voice/events.js +110 -0
- package/dist/voice/events.js.map +1 -0
- package/dist/voice/generation.cjs +700 -0
- package/dist/voice/generation.cjs.map +1 -0
- package/dist/voice/generation.d.cts +115 -0
- package/dist/voice/generation.d.ts +115 -0
- package/dist/voice/generation.d.ts.map +1 -0
- package/dist/voice/generation.js +672 -0
- package/dist/voice/generation.js.map +1 -0
- package/dist/voice/index.cjs +40 -0
- package/dist/voice/index.cjs.map +1 -0
- package/dist/voice/index.d.cts +5 -0
- package/dist/voice/index.d.ts +5 -0
- package/dist/voice/index.d.ts.map +1 -0
- package/dist/voice/index.js +11 -0
- package/dist/voice/index.js.map +1 -0
- package/dist/voice/io.cjs +245 -0
- package/dist/voice/io.cjs.map +1 -0
- package/dist/voice/io.d.cts +101 -0
- package/dist/voice/io.d.ts +101 -0
- package/dist/voice/io.d.ts.map +1 -0
- package/dist/voice/io.js +217 -0
- package/dist/voice/io.js.map +1 -0
- package/dist/voice/room_io/_input.cjs +121 -0
- package/dist/voice/room_io/_input.cjs.map +1 -0
- package/dist/voice/room_io/_input.d.cts +24 -0
- package/dist/voice/room_io/_input.d.ts +24 -0
- package/dist/voice/room_io/_input.d.ts.map +1 -0
- package/dist/voice/room_io/_input.js +102 -0
- package/dist/voice/room_io/_input.js.map +1 -0
- package/dist/voice/room_io/_output.cjs +358 -0
- package/dist/voice/room_io/_output.cjs.map +1 -0
- package/dist/voice/room_io/_output.d.cts +75 -0
- package/dist/voice/room_io/_output.d.ts +75 -0
- package/dist/voice/room_io/_output.d.ts.map +1 -0
- package/dist/voice/room_io/_output.js +342 -0
- package/dist/voice/room_io/_output.js.map +1 -0
- package/dist/voice/room_io/index.cjs +25 -0
- package/dist/voice/room_io/index.cjs.map +1 -0
- package/dist/voice/room_io/index.d.cts +3 -0
- package/dist/voice/room_io/index.d.ts +3 -0
- package/dist/voice/room_io/index.d.ts.map +1 -0
- package/dist/voice/room_io/index.js +3 -0
- package/dist/voice/room_io/index.js.map +1 -0
- package/dist/voice/room_io/room_io.cjs +370 -0
- package/dist/voice/room_io/room_io.cjs.map +1 -0
- package/dist/voice/room_io/room_io.d.cts +73 -0
- package/dist/voice/room_io/room_io.d.ts +73 -0
- package/dist/voice/room_io/room_io.d.ts.map +1 -0
- package/dist/voice/room_io/room_io.js +361 -0
- package/dist/voice/room_io/room_io.js.map +1 -0
- package/dist/{pipeline/index.cjs → voice/run_context.cjs} +16 -11
- package/dist/voice/run_context.cjs.map +1 -0
- package/dist/voice/run_context.d.cts +12 -0
- package/dist/voice/run_context.d.ts +12 -0
- package/dist/voice/run_context.d.ts.map +1 -0
- package/dist/voice/run_context.js +14 -0
- package/dist/voice/run_context.js.map +1 -0
- package/dist/voice/speech_handle.cjs +105 -0
- package/dist/voice/speech_handle.cjs.map +1 -0
- package/dist/voice/speech_handle.d.cts +46 -0
- package/dist/voice/speech_handle.d.ts +46 -0
- package/dist/voice/speech_handle.d.ts.map +1 -0
- package/dist/voice/speech_handle.js +81 -0
- package/dist/voice/speech_handle.js.map +1 -0
- package/dist/voice/transcription/_utils.cjs +45 -0
- package/dist/voice/transcription/_utils.cjs.map +1 -0
- package/dist/voice/transcription/_utils.d.cts +3 -0
- package/dist/voice/transcription/_utils.d.ts +3 -0
- package/dist/voice/transcription/_utils.d.ts.map +1 -0
- package/dist/voice/transcription/_utils.js +21 -0
- package/dist/voice/transcription/_utils.js.map +1 -0
- package/dist/voice/transcription/index.cjs +23 -0
- package/dist/voice/transcription/index.cjs.map +1 -0
- package/dist/voice/transcription/index.d.cts +2 -0
- package/dist/voice/transcription/index.d.ts +2 -0
- package/dist/voice/transcription/index.d.ts.map +1 -0
- package/dist/voice/transcription/index.js +2 -0
- package/dist/voice/transcription/index.js.map +1 -0
- package/dist/voice/transcription/synchronizer.cjs +380 -0
- package/dist/voice/transcription/synchronizer.cjs.map +1 -0
- package/dist/voice/transcription/synchronizer.d.cts +86 -0
- package/dist/voice/transcription/synchronizer.d.ts +86 -0
- package/dist/voice/transcription/synchronizer.d.ts.map +1 -0
- package/dist/voice/transcription/synchronizer.js +355 -0
- package/dist/voice/transcription/synchronizer.js.map +1 -0
- package/dist/worker.cjs +22 -4
- package/dist/worker.cjs.map +1 -1
- package/dist/worker.d.cts +1 -1
- package/dist/worker.d.ts +1 -1
- package/dist/worker.d.ts.map +1 -1
- package/dist/worker.js +22 -4
- package/dist/worker.js.map +1 -1
- package/package.json +9 -2
- package/src/_exceptions.ts +137 -0
- package/src/audio.ts +12 -1
- package/src/cli.ts +37 -0
- package/src/constants.ts +2 -0
- package/src/http_server.ts +1 -0
- package/src/index.ts +13 -10
- package/src/inference_runner.ts +2 -3
- package/src/ipc/inference_proc_executor.ts +2 -2
- package/src/ipc/job_executor.ts +1 -1
- package/src/ipc/job_proc_executor.ts +1 -1
- package/src/ipc/job_proc_lazy_main.ts +1 -1
- package/src/job.ts +18 -0
- package/src/llm/__snapshots__/chat_context.test.ts.snap +527 -0
- package/src/llm/__snapshots__/tool_context.test.ts.snap +177 -0
- package/src/llm/__snapshots__/utils.test.ts.snap +65 -0
- package/src/llm/chat_context.test.ts +450 -0
- package/src/llm/chat_context.ts +501 -103
- package/src/llm/index.ts +53 -18
- package/src/llm/llm.ts +149 -50
- package/src/llm/provider_format/google.test.ts +772 -0
- package/src/llm/provider_format/google.ts +130 -0
- package/src/llm/provider_format/index.ts +23 -0
- package/src/llm/provider_format/openai.test.ts +581 -0
- package/src/llm/provider_format/openai.ts +118 -0
- package/src/llm/provider_format/utils.ts +183 -0
- package/src/llm/realtime.ts +151 -0
- package/src/llm/remote_chat_context.test.ts +290 -0
- package/src/llm/remote_chat_context.ts +114 -0
- package/src/llm/tool_context.test.ts +198 -0
- package/src/llm/tool_context.ts +259 -0
- package/src/llm/tool_context.type.test.ts +115 -0
- package/src/llm/utils.test.ts +670 -0
- package/src/llm/utils.ts +324 -0
- package/src/metrics/base.ts +110 -78
- package/src/metrics/index.ts +3 -9
- package/src/metrics/usage_collector.ts +19 -13
- package/src/metrics/utils.ts +24 -69
- package/src/multimodal/index.ts +0 -1
- package/src/plugin.ts +26 -8
- package/src/stream/deferred_stream.test.ts +755 -0
- package/src/stream/deferred_stream.ts +110 -0
- package/src/stream/identity_transform.test.ts +179 -0
- package/src/stream/identity_transform.ts +18 -0
- package/src/stream/index.ts +7 -0
- package/src/stream/merge_readable_streams.ts +40 -0
- package/src/stream/stream_channel.test.ts +129 -0
- package/src/stream/stream_channel.ts +32 -0
- package/src/stt/stream_adapter.ts +3 -5
- package/src/stt/stt.ts +135 -17
- package/src/tokenize/basic/basic.ts +13 -5
- package/src/tokenize/basic/sentence.ts +20 -6
- package/src/tokenize/token_stream.ts +7 -4
- package/src/transcription.ts +2 -3
- package/src/tts/index.ts +0 -1
- package/src/tts/stream_adapter.ts +42 -16
- package/src/tts/tts.ts +203 -21
- package/src/types.ts +42 -0
- package/src/utils.test.ts +658 -0
- package/src/utils.ts +375 -44
- package/src/vad.ts +90 -22
- package/src/voice/agent.test.ts +80 -0
- package/src/voice/agent.ts +332 -0
- package/src/voice/agent_activity.ts +1913 -0
- package/src/voice/agent_session.ts +460 -0
- package/src/voice/audio_recognition.ts +474 -0
- package/src/voice/events.ts +252 -0
- package/src/voice/generation.ts +881 -0
- package/src/voice/index.ts +7 -0
- package/src/voice/io.ts +304 -0
- package/src/voice/room_io/_input.ts +144 -0
- package/src/voice/room_io/_output.ts +436 -0
- package/src/voice/room_io/index.ts +5 -0
- package/src/voice/room_io/room_io.ts +495 -0
- package/src/voice/run_context.ts +20 -0
- package/src/voice/speech_handle.ts +104 -0
- package/src/voice/transcription/_utils.ts +25 -0
- package/src/voice/transcription/index.ts +4 -0
- package/src/voice/transcription/synchronizer.ts +478 -0
- package/src/worker.ts +22 -2
- package/dist/llm/function_context.cjs +0 -103
- package/dist/llm/function_context.cjs.map +0 -1
- package/dist/llm/function_context.d.cts +0 -47
- package/dist/llm/function_context.d.ts +0 -47
- package/dist/llm/function_context.d.ts.map +0 -1
- package/dist/llm/function_context.js +0 -78
- package/dist/llm/function_context.js.map +0 -1
- package/dist/llm/function_context.test.cjs +0 -218
- package/dist/llm/function_context.test.cjs.map +0 -1
- package/dist/llm/function_context.test.js +0 -217
- package/dist/llm/function_context.test.js.map +0 -1
- package/dist/multimodal/multimodal_agent.cjs +0 -451
- package/dist/multimodal/multimodal_agent.cjs.map +0 -1
- package/dist/multimodal/multimodal_agent.d.cts +0 -48
- package/dist/multimodal/multimodal_agent.d.ts +0 -48
- package/dist/multimodal/multimodal_agent.d.ts.map +0 -1
- package/dist/multimodal/multimodal_agent.js +0 -425
- package/dist/multimodal/multimodal_agent.js.map +0 -1
- package/dist/pipeline/agent_output.cjs +0 -197
- package/dist/pipeline/agent_output.cjs.map +0 -1
- package/dist/pipeline/agent_output.d.cts +0 -33
- package/dist/pipeline/agent_output.d.ts +0 -33
- package/dist/pipeline/agent_output.d.ts.map +0 -1
- package/dist/pipeline/agent_output.js +0 -172
- package/dist/pipeline/agent_output.js.map +0 -1
- package/dist/pipeline/agent_playout.cjs +0 -175
- package/dist/pipeline/agent_playout.cjs.map +0 -1
- package/dist/pipeline/agent_playout.d.cts +0 -40
- package/dist/pipeline/agent_playout.d.ts +0 -40
- package/dist/pipeline/agent_playout.d.ts.map +0 -1
- package/dist/pipeline/agent_playout.js +0 -139
- package/dist/pipeline/agent_playout.js.map +0 -1
- package/dist/pipeline/human_input.cjs +0 -171
- package/dist/pipeline/human_input.cjs.map +0 -1
- package/dist/pipeline/human_input.d.cts +0 -30
- package/dist/pipeline/human_input.d.ts +0 -30
- package/dist/pipeline/human_input.d.ts.map +0 -1
- package/dist/pipeline/human_input.js +0 -146
- package/dist/pipeline/human_input.js.map +0 -1
- package/dist/pipeline/index.cjs.map +0 -1
- package/dist/pipeline/index.d.cts +0 -2
- package/dist/pipeline/index.d.ts +0 -2
- package/dist/pipeline/index.d.ts.map +0 -1
- package/dist/pipeline/index.js +0 -11
- package/dist/pipeline/index.js.map +0 -1
- package/dist/pipeline/pipeline_agent.cjs +0 -849
- package/dist/pipeline/pipeline_agent.cjs.map +0 -1
- package/dist/pipeline/pipeline_agent.d.cts +0 -150
- package/dist/pipeline/pipeline_agent.d.ts +0 -150
- package/dist/pipeline/pipeline_agent.d.ts.map +0 -1
- package/dist/pipeline/pipeline_agent.js +0 -826
- package/dist/pipeline/pipeline_agent.js.map +0 -1
- package/dist/pipeline/speech_handle.cjs +0 -176
- package/dist/pipeline/speech_handle.cjs.map +0 -1
- package/dist/pipeline/speech_handle.d.cts +0 -37
- package/dist/pipeline/speech_handle.d.ts +0 -37
- package/dist/pipeline/speech_handle.d.ts.map +0 -1
- package/dist/pipeline/speech_handle.js +0 -152
- package/dist/pipeline/speech_handle.js.map +0 -1
- package/src/llm/function_context.test.ts +0 -248
- package/src/llm/function_context.ts +0 -142
- package/src/multimodal/multimodal_agent.ts +0 -555
- package/src/pipeline/agent_output.ts +0 -219
- package/src/pipeline/agent_playout.ts +0 -192
- package/src/pipeline/human_input.ts +0 -188
- package/src/pipeline/index.ts +0 -15
- package/src/pipeline/pipeline_agent.ts +0 -1185
- package/src/pipeline/speech_handle.ts +0 -201
|
@@ -0,0 +1,385 @@
|
|
|
1
|
+
import { describe, expect, it } from "vitest";
|
|
2
|
+
import {
|
|
3
|
+
ChatContext,
|
|
4
|
+
ChatMessage,
|
|
5
|
+
FunctionCall,
|
|
6
|
+
FunctionCallOutput,
|
|
7
|
+
ReadonlyChatContext
|
|
8
|
+
} from "./chat_context.js";
|
|
9
|
+
describe("ChatContext.toJSON", () => {
|
|
10
|
+
it("should match snapshot for empty context", () => {
|
|
11
|
+
const context = new ChatContext();
|
|
12
|
+
expect(context.toJSON()).toMatchSnapshot();
|
|
13
|
+
});
|
|
14
|
+
it("should match snapshot for simple conversation", () => {
|
|
15
|
+
const context = new ChatContext();
|
|
16
|
+
context.addMessage({
|
|
17
|
+
id: "msg_system_1",
|
|
18
|
+
role: "system",
|
|
19
|
+
content: "You are a helpful assistant.",
|
|
20
|
+
createdAt: 1e9
|
|
21
|
+
});
|
|
22
|
+
context.addMessage({
|
|
23
|
+
id: "msg_user_1",
|
|
24
|
+
role: "user",
|
|
25
|
+
content: "Hello, how are you?",
|
|
26
|
+
createdAt: 1000000001
|
|
27
|
+
});
|
|
28
|
+
context.addMessage({
|
|
29
|
+
id: "msg_assistant_1",
|
|
30
|
+
role: "assistant",
|
|
31
|
+
content: "I'm doing well, thank you! How can I help you today?",
|
|
32
|
+
createdAt: 1000000002
|
|
33
|
+
});
|
|
34
|
+
expect(context.toJSON()).toMatchSnapshot("simple-conversation-no-timestamps");
|
|
35
|
+
expect(context.toJSON({ excludeTimestamp: false })).toMatchSnapshot(
|
|
36
|
+
"simple-conversation-with-timestamps"
|
|
37
|
+
);
|
|
38
|
+
});
|
|
39
|
+
it("should match snapshot for multimodal content", () => {
|
|
40
|
+
const context = new ChatContext();
|
|
41
|
+
const imageContent = {
|
|
42
|
+
id: "img_test_1",
|
|
43
|
+
type: "image_content",
|
|
44
|
+
image: "https://example.com/test-image.jpg",
|
|
45
|
+
inferenceDetail: "high",
|
|
46
|
+
inferenceWidth: 1024,
|
|
47
|
+
inferenceHeight: 768,
|
|
48
|
+
mimeType: "image/jpeg",
|
|
49
|
+
_cache: {}
|
|
50
|
+
};
|
|
51
|
+
const audioContent = {
|
|
52
|
+
type: "audio_content",
|
|
53
|
+
frame: [],
|
|
54
|
+
// This won't be included in JSON
|
|
55
|
+
transcript: "This is a test audio transcript"
|
|
56
|
+
};
|
|
57
|
+
context.addMessage({
|
|
58
|
+
id: "msg_user_2",
|
|
59
|
+
role: "user",
|
|
60
|
+
content: [
|
|
61
|
+
"Check out this image and audio:",
|
|
62
|
+
imageContent,
|
|
63
|
+
audioContent,
|
|
64
|
+
"What do you think?"
|
|
65
|
+
],
|
|
66
|
+
createdAt: 2e9
|
|
67
|
+
});
|
|
68
|
+
expect(context.toJSON()).toMatchSnapshot("multimodal-default-exclusions");
|
|
69
|
+
expect(
|
|
70
|
+
context.toJSON({
|
|
71
|
+
excludeImage: false,
|
|
72
|
+
excludeAudio: true
|
|
73
|
+
})
|
|
74
|
+
).toMatchSnapshot("multimodal-with-images-only");
|
|
75
|
+
expect(
|
|
76
|
+
context.toJSON({
|
|
77
|
+
excludeImage: true,
|
|
78
|
+
excludeAudio: false
|
|
79
|
+
})
|
|
80
|
+
).toMatchSnapshot("multimodal-with-audio-only");
|
|
81
|
+
expect(
|
|
82
|
+
context.toJSON({
|
|
83
|
+
excludeImage: false,
|
|
84
|
+
excludeAudio: false,
|
|
85
|
+
excludeTimestamp: false
|
|
86
|
+
})
|
|
87
|
+
).toMatchSnapshot("multimodal-full-content");
|
|
88
|
+
});
|
|
89
|
+
it("should match snapshot for function calls", () => {
|
|
90
|
+
const context = new ChatContext();
|
|
91
|
+
context.addMessage({
|
|
92
|
+
id: "msg_user_3",
|
|
93
|
+
role: "user",
|
|
94
|
+
content: "What's the weather in Paris?",
|
|
95
|
+
createdAt: 3e9
|
|
96
|
+
});
|
|
97
|
+
const functionCall = new FunctionCall({
|
|
98
|
+
id: "func_call_1",
|
|
99
|
+
callId: "call_weather_123",
|
|
100
|
+
name: "get_weather",
|
|
101
|
+
args: '{"location": "Paris, France", "unit": "celsius"}',
|
|
102
|
+
createdAt: 3000000001
|
|
103
|
+
});
|
|
104
|
+
context.insert(functionCall);
|
|
105
|
+
const functionOutput = new FunctionCallOutput({
|
|
106
|
+
id: "func_output_1",
|
|
107
|
+
callId: "call_weather_123",
|
|
108
|
+
name: "get_weather",
|
|
109
|
+
output: '{"temperature": 22, "condition": "partly cloudy", "humidity": 65}',
|
|
110
|
+
isError: false,
|
|
111
|
+
createdAt: 3000000002
|
|
112
|
+
});
|
|
113
|
+
context.insert(functionOutput);
|
|
114
|
+
context.addMessage({
|
|
115
|
+
id: "msg_assistant_2",
|
|
116
|
+
role: "assistant",
|
|
117
|
+
content: "The weather in Paris is currently 22\xB0C and partly cloudy with 65% humidity.",
|
|
118
|
+
createdAt: 3000000003
|
|
119
|
+
});
|
|
120
|
+
expect(context.toJSON()).toMatchSnapshot("conversation-with-function-calls");
|
|
121
|
+
expect(
|
|
122
|
+
context.toJSON({
|
|
123
|
+
excludeFunctionCall: true
|
|
124
|
+
})
|
|
125
|
+
).toMatchSnapshot("conversation-without-function-calls");
|
|
126
|
+
expect(
|
|
127
|
+
context.toJSON({
|
|
128
|
+
excludeTimestamp: false
|
|
129
|
+
})
|
|
130
|
+
).toMatchSnapshot("conversation-with-function-calls-and-timestamps");
|
|
131
|
+
});
|
|
132
|
+
it("should match snapshot for edge cases", () => {
|
|
133
|
+
const context = new ChatContext();
|
|
134
|
+
context.addMessage({
|
|
135
|
+
id: "msg_empty_1",
|
|
136
|
+
role: "user",
|
|
137
|
+
content: [],
|
|
138
|
+
createdAt: 5e9
|
|
139
|
+
});
|
|
140
|
+
const silentAudio = {
|
|
141
|
+
type: "audio_content",
|
|
142
|
+
frame: [],
|
|
143
|
+
transcript: void 0
|
|
144
|
+
};
|
|
145
|
+
context.addMessage({
|
|
146
|
+
id: "msg_silent_audio",
|
|
147
|
+
role: "user",
|
|
148
|
+
content: [silentAudio],
|
|
149
|
+
createdAt: 5000000001
|
|
150
|
+
});
|
|
151
|
+
context.addMessage({
|
|
152
|
+
id: "msg_multi_text",
|
|
153
|
+
role: "assistant",
|
|
154
|
+
content: ["Part 1. ", "Part 2. ", "Part 3."],
|
|
155
|
+
createdAt: 5000000002
|
|
156
|
+
});
|
|
157
|
+
const minimalCall = new FunctionCall({
|
|
158
|
+
id: "func_minimal",
|
|
159
|
+
callId: "minimal",
|
|
160
|
+
name: "test",
|
|
161
|
+
args: "{}",
|
|
162
|
+
createdAt: 5000000003
|
|
163
|
+
});
|
|
164
|
+
context.insert(minimalCall);
|
|
165
|
+
const namelessOutput = new FunctionCallOutput({
|
|
166
|
+
id: "func_output_nameless",
|
|
167
|
+
callId: "minimal",
|
|
168
|
+
output: "OK",
|
|
169
|
+
isError: false,
|
|
170
|
+
createdAt: 5000000004
|
|
171
|
+
});
|
|
172
|
+
context.insert(namelessOutput);
|
|
173
|
+
context.addMessage({
|
|
174
|
+
id: "msg_special_chars",
|
|
175
|
+
role: "user",
|
|
176
|
+
content: `Test with special chars:
|
|
177
|
+
\r "quotes" 'apostrophes' \\backslashes\\ {braces} [brackets]`,
|
|
178
|
+
createdAt: 5000000005
|
|
179
|
+
});
|
|
180
|
+
expect(context.toJSON()).toMatchSnapshot("edge-cases-default");
|
|
181
|
+
expect(
|
|
182
|
+
context.toJSON({
|
|
183
|
+
excludeTimestamp: false,
|
|
184
|
+
excludeAudio: false
|
|
185
|
+
})
|
|
186
|
+
).toMatchSnapshot("edge-cases-with-details");
|
|
187
|
+
});
|
|
188
|
+
it("should match snapshot for message property variations", () => {
|
|
189
|
+
const context = new ChatContext();
|
|
190
|
+
context.addMessage({
|
|
191
|
+
id: "custom-message-id-123",
|
|
192
|
+
role: "user",
|
|
193
|
+
content: "Message with custom ID",
|
|
194
|
+
createdAt: 6e9
|
|
195
|
+
});
|
|
196
|
+
context.addMessage({
|
|
197
|
+
id: "msg_interrupted",
|
|
198
|
+
role: "assistant",
|
|
199
|
+
content: "This response was interrupted...",
|
|
200
|
+
interrupted: true,
|
|
201
|
+
createdAt: 6000000001
|
|
202
|
+
});
|
|
203
|
+
context.addMessage({
|
|
204
|
+
id: "msg_dev_2",
|
|
205
|
+
role: "developer",
|
|
206
|
+
content: "Developer message",
|
|
207
|
+
createdAt: 6000000002
|
|
208
|
+
});
|
|
209
|
+
context.addMessage({
|
|
210
|
+
id: "msg_system_3",
|
|
211
|
+
role: "system",
|
|
212
|
+
content: "System message",
|
|
213
|
+
createdAt: 6000000003
|
|
214
|
+
});
|
|
215
|
+
const detailedImage = {
|
|
216
|
+
id: "img_detailed",
|
|
217
|
+
type: "image_content",
|
|
218
|
+
image: "https://example.com/image.jpg",
|
|
219
|
+
inferenceDetail: "low",
|
|
220
|
+
inferenceWidth: 512,
|
|
221
|
+
inferenceHeight: 512,
|
|
222
|
+
mimeType: "image/png",
|
|
223
|
+
_cache: { cached: true }
|
|
224
|
+
};
|
|
225
|
+
context.addMessage({
|
|
226
|
+
id: "msg_with_image",
|
|
227
|
+
role: "user",
|
|
228
|
+
content: ["Image with all properties:", detailedImage],
|
|
229
|
+
createdAt: 6000000004
|
|
230
|
+
});
|
|
231
|
+
expect(context.toJSON()).toMatchSnapshot("message-properties-default");
|
|
232
|
+
expect(
|
|
233
|
+
context.toJSON({
|
|
234
|
+
excludeImage: false,
|
|
235
|
+
excludeTimestamp: false
|
|
236
|
+
})
|
|
237
|
+
).toMatchSnapshot("message-properties-full");
|
|
238
|
+
});
|
|
239
|
+
});
|
|
240
|
+
describe("ReadonlyChatContext with immutable array", () => {
|
|
241
|
+
it("should have readonly property set to true", () => {
|
|
242
|
+
const items = [
|
|
243
|
+
new ChatMessage({
|
|
244
|
+
id: "msg_1",
|
|
245
|
+
role: "user",
|
|
246
|
+
content: ["Test"],
|
|
247
|
+
interrupted: false,
|
|
248
|
+
createdAt: Date.now()
|
|
249
|
+
})
|
|
250
|
+
];
|
|
251
|
+
const readonlyContext = new ReadonlyChatContext(items);
|
|
252
|
+
expect(readonlyContext.readonly).toBe(true);
|
|
253
|
+
});
|
|
254
|
+
it("should prevent setting items property", () => {
|
|
255
|
+
const items = [
|
|
256
|
+
new ChatMessage({
|
|
257
|
+
id: "msg_1",
|
|
258
|
+
role: "user",
|
|
259
|
+
content: ["Test"],
|
|
260
|
+
interrupted: false,
|
|
261
|
+
createdAt: Date.now()
|
|
262
|
+
})
|
|
263
|
+
];
|
|
264
|
+
const readonlyContext = new ReadonlyChatContext(items);
|
|
265
|
+
expect(() => {
|
|
266
|
+
readonlyContext.items = [];
|
|
267
|
+
}).toThrow(
|
|
268
|
+
`Cannot set items on a read-only chat context. Please use .copy() and agent.update_chat_ctx() to modify the chat context.`
|
|
269
|
+
);
|
|
270
|
+
});
|
|
271
|
+
it("should prevent modifications through array methods", () => {
|
|
272
|
+
const items = [
|
|
273
|
+
new ChatMessage({
|
|
274
|
+
id: "msg_1",
|
|
275
|
+
role: "user",
|
|
276
|
+
content: ["Test"],
|
|
277
|
+
interrupted: false,
|
|
278
|
+
createdAt: Date.now()
|
|
279
|
+
})
|
|
280
|
+
];
|
|
281
|
+
const readonlyContext = new ReadonlyChatContext(items);
|
|
282
|
+
const newItem = new ChatMessage({
|
|
283
|
+
id: "msg_2",
|
|
284
|
+
role: "assistant",
|
|
285
|
+
content: ["Response"],
|
|
286
|
+
interrupted: false,
|
|
287
|
+
createdAt: Date.now()
|
|
288
|
+
});
|
|
289
|
+
const mutableItems = readonlyContext.items;
|
|
290
|
+
expect(() => mutableItems.push(newItem)).toThrow(
|
|
291
|
+
"Cannot call push() on a read-only array. Please use .copy() and agent.update_chat_ctx() to modify the chat context."
|
|
292
|
+
);
|
|
293
|
+
expect(() => mutableItems.pop()).toThrow(
|
|
294
|
+
"Cannot call pop() on a read-only array. Please use .copy() and agent.update_chat_ctx() to modify the chat context."
|
|
295
|
+
);
|
|
296
|
+
expect(() => mutableItems.shift()).toThrow(
|
|
297
|
+
"Cannot call shift() on a read-only array. Please use .copy() and agent.update_chat_ctx() to modify the chat context."
|
|
298
|
+
);
|
|
299
|
+
expect(() => mutableItems.unshift(newItem)).toThrow(
|
|
300
|
+
"Cannot call unshift() on a read-only array. Please use .copy() and agent.update_chat_ctx() to modify the chat context."
|
|
301
|
+
);
|
|
302
|
+
expect(() => mutableItems.splice(0, 1)).toThrow(
|
|
303
|
+
"Cannot call splice() on a read-only array. Please use .copy() and agent.update_chat_ctx() to modify the chat context."
|
|
304
|
+
);
|
|
305
|
+
expect(() => mutableItems.sort()).toThrow(
|
|
306
|
+
"Cannot call sort() on a read-only array. Please use .copy() and agent.update_chat_ctx() to modify the chat context."
|
|
307
|
+
);
|
|
308
|
+
expect(() => mutableItems.reverse()).toThrow(
|
|
309
|
+
"Cannot call reverse() on a read-only array. Please use .copy() and agent.update_chat_ctx() to modify the chat context."
|
|
310
|
+
);
|
|
311
|
+
expect(() => mutableItems.fill(newItem)).toThrow(
|
|
312
|
+
"Cannot call fill() on a read-only array. Please use .copy() and agent.update_chat_ctx() to modify the chat context."
|
|
313
|
+
);
|
|
314
|
+
expect(() => mutableItems.copyWithin(0, 1)).toThrow(
|
|
315
|
+
"Cannot call copyWithin() on a read-only array. Please use .copy() and agent.update_chat_ctx() to modify the chat context."
|
|
316
|
+
);
|
|
317
|
+
});
|
|
318
|
+
it("should prevent bracket notation assignment and deletion", () => {
|
|
319
|
+
const items = [
|
|
320
|
+
new ChatMessage({
|
|
321
|
+
id: "msg_1",
|
|
322
|
+
role: "user",
|
|
323
|
+
content: ["Test"],
|
|
324
|
+
interrupted: false,
|
|
325
|
+
createdAt: Date.now()
|
|
326
|
+
})
|
|
327
|
+
];
|
|
328
|
+
const readonlyContext = new ReadonlyChatContext(items);
|
|
329
|
+
const newItem = new ChatMessage({
|
|
330
|
+
id: "msg_2",
|
|
331
|
+
role: "assistant",
|
|
332
|
+
content: ["Response"],
|
|
333
|
+
interrupted: false,
|
|
334
|
+
createdAt: Date.now()
|
|
335
|
+
});
|
|
336
|
+
expect(() => {
|
|
337
|
+
readonlyContext.items[0] = newItem;
|
|
338
|
+
}).toThrow(
|
|
339
|
+
'Cannot assign to read-only array index "0". Please use .copy() and agent.update_chat_ctx() to modify the chat context.'
|
|
340
|
+
);
|
|
341
|
+
expect(() => {
|
|
342
|
+
delete readonlyContext.items[0];
|
|
343
|
+
}).toThrow(
|
|
344
|
+
'Cannot delete read-only array index "0". Please use .copy() and agent.update_chat_ctx() to modify the chat context.'
|
|
345
|
+
);
|
|
346
|
+
expect(() => {
|
|
347
|
+
readonlyContext.items[99] = newItem;
|
|
348
|
+
}).toThrow(
|
|
349
|
+
'Cannot assign to read-only array index "99". Please use .copy() and agent.update_chat_ctx() to modify the chat context.'
|
|
350
|
+
);
|
|
351
|
+
});
|
|
352
|
+
it("should allow read operations on the immutable array", () => {
|
|
353
|
+
const items = [
|
|
354
|
+
new ChatMessage({
|
|
355
|
+
id: "msg_1",
|
|
356
|
+
role: "user",
|
|
357
|
+
content: ["Test 1"],
|
|
358
|
+
interrupted: false,
|
|
359
|
+
createdAt: 1e3
|
|
360
|
+
}),
|
|
361
|
+
new ChatMessage({
|
|
362
|
+
id: "msg_2",
|
|
363
|
+
role: "assistant",
|
|
364
|
+
content: ["Test 2"],
|
|
365
|
+
interrupted: false,
|
|
366
|
+
createdAt: 2e3
|
|
367
|
+
})
|
|
368
|
+
];
|
|
369
|
+
const readonlyContext = new ReadonlyChatContext(items);
|
|
370
|
+
expect(readonlyContext.items.length).toBe(2);
|
|
371
|
+
expect(readonlyContext.items[0]).toEqual(items[0]);
|
|
372
|
+
expect(readonlyContext.items[1]).toEqual(items[1]);
|
|
373
|
+
expect(readonlyContext.items.find((item) => item.id === "msg_2")).toEqual(items[1]);
|
|
374
|
+
expect(readonlyContext.items.map((item) => item.id)).toEqual(["msg_1", "msg_2"]);
|
|
375
|
+
expect(
|
|
376
|
+
readonlyContext.items.filter(
|
|
377
|
+
(item) => item.type === "message" && item.role === "user"
|
|
378
|
+
)
|
|
379
|
+
).toHaveLength(1);
|
|
380
|
+
const ids = [];
|
|
381
|
+
readonlyContext.items.forEach((item) => ids.push(item.id));
|
|
382
|
+
expect(ids).toEqual(["msg_1", "msg_2"]);
|
|
383
|
+
});
|
|
384
|
+
});
|
|
385
|
+
//# sourceMappingURL=chat_context.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/llm/chat_context.test.ts"],"sourcesContent":["// SPDX-FileCopyrightText: 2025 LiveKit, Inc.\n//\n// SPDX-License-Identifier: Apache-2.0\nimport { describe, expect, it } from 'vitest';\nimport {\n type AudioContent,\n ChatContext,\n type ChatItem,\n ChatMessage,\n FunctionCall,\n FunctionCallOutput,\n type ImageContent,\n ReadonlyChatContext,\n} from './chat_context.js';\n\ndescribe('ChatContext.toJSON', () => {\n it('should match snapshot for empty context', () => {\n const context = new ChatContext();\n expect(context.toJSON()).toMatchSnapshot();\n });\n\n it('should match snapshot for simple conversation', () => {\n const context = new ChatContext();\n\n context.addMessage({\n id: 'msg_system_1',\n role: 'system',\n content: 'You are a helpful assistant.',\n createdAt: 1000000000,\n });\n\n context.addMessage({\n id: 'msg_user_1',\n role: 'user',\n content: 'Hello, how are you?',\n createdAt: 1000000001,\n });\n\n context.addMessage({\n id: 'msg_assistant_1',\n role: 'assistant',\n content: \"I'm doing well, thank you! How can I help you today?\",\n createdAt: 1000000002,\n });\n\n expect(context.toJSON()).toMatchSnapshot('simple-conversation-no-timestamps');\n\n expect(context.toJSON({ excludeTimestamp: false })).toMatchSnapshot(\n 'simple-conversation-with-timestamps',\n );\n });\n\n it('should match snapshot for multimodal content', () => {\n const context = new ChatContext();\n\n const imageContent: ImageContent = {\n id: 'img_test_1',\n type: 'image_content',\n image: 'https://example.com/test-image.jpg',\n inferenceDetail: 'high',\n inferenceWidth: 1024,\n inferenceHeight: 768,\n mimeType: 'image/jpeg',\n _cache: {},\n };\n\n const audioContent: AudioContent = {\n type: 'audio_content',\n frame: [], // This won't be included in JSON\n transcript: 'This is a test audio transcript',\n };\n\n context.addMessage({\n id: 'msg_user_2',\n role: 'user',\n content: [\n 'Check out this image and audio:',\n imageContent,\n audioContent,\n 'What do you think?',\n ],\n createdAt: 2000000000,\n });\n\n expect(context.toJSON()).toMatchSnapshot('multimodal-default-exclusions');\n\n expect(\n context.toJSON({\n excludeImage: false,\n excludeAudio: true,\n }),\n ).toMatchSnapshot('multimodal-with-images-only');\n\n expect(\n context.toJSON({\n excludeImage: true,\n excludeAudio: false,\n }),\n ).toMatchSnapshot('multimodal-with-audio-only');\n\n expect(\n context.toJSON({\n excludeImage: false,\n excludeAudio: false,\n excludeTimestamp: false,\n }),\n ).toMatchSnapshot('multimodal-full-content');\n });\n\n it('should match snapshot for function calls', () => {\n const context = new ChatContext();\n\n context.addMessage({\n id: 'msg_user_3',\n role: 'user',\n content: \"What's the weather in Paris?\",\n createdAt: 3000000000,\n });\n\n const functionCall = new FunctionCall({\n id: 'func_call_1',\n callId: 'call_weather_123',\n name: 'get_weather',\n args: '{\"location\": \"Paris, France\", \"unit\": \"celsius\"}',\n createdAt: 3000000001,\n });\n context.insert(functionCall);\n\n const functionOutput = new FunctionCallOutput({\n id: 'func_output_1',\n callId: 'call_weather_123',\n name: 'get_weather',\n output: '{\"temperature\": 22, \"condition\": \"partly cloudy\", \"humidity\": 65}',\n isError: false,\n createdAt: 3000000002,\n });\n context.insert(functionOutput);\n\n context.addMessage({\n id: 'msg_assistant_2',\n role: 'assistant',\n content: 'The weather in Paris is currently 22°C and partly cloudy with 65% humidity.',\n createdAt: 3000000003,\n });\n\n expect(context.toJSON()).toMatchSnapshot('conversation-with-function-calls');\n\n expect(\n context.toJSON({\n excludeFunctionCall: true,\n }),\n ).toMatchSnapshot('conversation-without-function-calls');\n\n expect(\n context.toJSON({\n excludeTimestamp: false,\n }),\n ).toMatchSnapshot('conversation-with-function-calls-and-timestamps');\n });\n\n it('should match snapshot for edge cases', () => {\n const context = new ChatContext();\n\n context.addMessage({\n id: 'msg_empty_1',\n role: 'user',\n content: [],\n createdAt: 5000000000,\n });\n\n const silentAudio: AudioContent = {\n type: 'audio_content',\n frame: [],\n transcript: undefined,\n };\n\n context.addMessage({\n id: 'msg_silent_audio',\n role: 'user',\n content: [silentAudio],\n createdAt: 5000000001,\n });\n\n context.addMessage({\n id: 'msg_multi_text',\n role: 'assistant',\n content: ['Part 1. ', 'Part 2. ', 'Part 3.'],\n createdAt: 5000000002,\n });\n\n const minimalCall = new FunctionCall({\n id: 'func_minimal',\n callId: 'minimal',\n name: 'test',\n args: '{}',\n createdAt: 5000000003,\n });\n context.insert(minimalCall);\n\n const namelessOutput = new FunctionCallOutput({\n id: 'func_output_nameless',\n callId: 'minimal',\n output: 'OK',\n isError: false,\n createdAt: 5000000004,\n });\n context.insert(namelessOutput);\n\n context.addMessage({\n id: 'msg_special_chars',\n role: 'user',\n content:\n 'Test with special chars: \\n\\t\\r \"quotes\" \\'apostrophes\\' \\\\backslashes\\\\ {braces} [brackets]',\n createdAt: 5000000005,\n });\n\n expect(context.toJSON()).toMatchSnapshot('edge-cases-default');\n expect(\n context.toJSON({\n excludeTimestamp: false,\n excludeAudio: false,\n }),\n ).toMatchSnapshot('edge-cases-with-details');\n });\n\n it('should match snapshot for message property variations', () => {\n const context = new ChatContext();\n\n context.addMessage({\n id: 'custom-message-id-123',\n role: 'user',\n content: 'Message with custom ID',\n createdAt: 6000000000,\n });\n\n context.addMessage({\n id: 'msg_interrupted',\n role: 'assistant',\n content: 'This response was interrupted...',\n interrupted: true,\n createdAt: 6000000001,\n });\n\n context.addMessage({\n id: 'msg_dev_2',\n role: 'developer',\n content: 'Developer message',\n createdAt: 6000000002,\n });\n\n context.addMessage({\n id: 'msg_system_3',\n role: 'system',\n content: 'System message',\n createdAt: 6000000003,\n });\n\n const detailedImage: ImageContent = {\n id: 'img_detailed',\n type: 'image_content',\n image: 'https://example.com/image.jpg',\n inferenceDetail: 'low',\n inferenceWidth: 512,\n inferenceHeight: 512,\n mimeType: 'image/png',\n _cache: { cached: true },\n };\n\n context.addMessage({\n id: 'msg_with_image',\n role: 'user',\n content: ['Image with all properties:', detailedImage],\n createdAt: 6000000004,\n });\n\n expect(context.toJSON()).toMatchSnapshot('message-properties-default');\n expect(\n context.toJSON({\n excludeImage: false,\n excludeTimestamp: false,\n }),\n ).toMatchSnapshot('message-properties-full');\n });\n});\n\ndescribe('ReadonlyChatContext with immutable array', () => {\n it('should have readonly property set to true', () => {\n const items: ChatItem[] = [\n new ChatMessage({\n id: 'msg_1',\n role: 'user',\n content: ['Test'],\n interrupted: false,\n createdAt: Date.now(),\n }),\n ];\n const readonlyContext = new ReadonlyChatContext(items);\n\n expect(readonlyContext.readonly).toBe(true);\n });\n\n it('should prevent setting items property', () => {\n const items: ChatItem[] = [\n new ChatMessage({\n id: 'msg_1',\n role: 'user',\n content: ['Test'],\n interrupted: false,\n createdAt: Date.now(),\n }),\n ];\n const readonlyContext = new ReadonlyChatContext(items);\n expect(() => {\n readonlyContext.items = [];\n }).toThrow(\n `Cannot set items on a read-only chat context. Please use .copy() and agent.update_chat_ctx() to modify the chat context.`,\n );\n });\n\n it('should prevent modifications through array methods', () => {\n const items: ChatItem[] = [\n new ChatMessage({\n id: 'msg_1',\n role: 'user',\n content: ['Test'],\n interrupted: false,\n createdAt: Date.now(),\n }),\n ];\n const readonlyContext = new ReadonlyChatContext(items);\n const newItem = new ChatMessage({\n id: 'msg_2',\n role: 'assistant',\n content: ['Response'],\n interrupted: false,\n createdAt: Date.now(),\n });\n\n const mutableItems = readonlyContext.items;\n expect(() => mutableItems.push(newItem)).toThrow(\n 'Cannot call push() on a read-only array. Please use .copy() and agent.update_chat_ctx() to modify the chat context.',\n );\n\n expect(() => mutableItems.pop()).toThrow(\n 'Cannot call pop() on a read-only array. Please use .copy() and agent.update_chat_ctx() to modify the chat context.',\n );\n\n expect(() => mutableItems.shift()).toThrow(\n 'Cannot call shift() on a read-only array. Please use .copy() and agent.update_chat_ctx() to modify the chat context.',\n );\n\n expect(() => mutableItems.unshift(newItem)).toThrow(\n 'Cannot call unshift() on a read-only array. Please use .copy() and agent.update_chat_ctx() to modify the chat context.',\n );\n\n expect(() => mutableItems.splice(0, 1)).toThrow(\n 'Cannot call splice() on a read-only array. Please use .copy() and agent.update_chat_ctx() to modify the chat context.',\n );\n\n expect(() => mutableItems.sort()).toThrow(\n 'Cannot call sort() on a read-only array. Please use .copy() and agent.update_chat_ctx() to modify the chat context.',\n );\n\n expect(() => mutableItems.reverse()).toThrow(\n 'Cannot call reverse() on a read-only array. Please use .copy() and agent.update_chat_ctx() to modify the chat context.',\n );\n\n expect(() => mutableItems.fill(newItem)).toThrow(\n 'Cannot call fill() on a read-only array. Please use .copy() and agent.update_chat_ctx() to modify the chat context.',\n );\n\n expect(() => mutableItems.copyWithin(0, 1)).toThrow(\n 'Cannot call copyWithin() on a read-only array. Please use .copy() and agent.update_chat_ctx() to modify the chat context.',\n );\n });\n\n it('should prevent bracket notation assignment and deletion', () => {\n const items: ChatItem[] = [\n new ChatMessage({\n id: 'msg_1',\n role: 'user',\n content: ['Test'],\n interrupted: false,\n createdAt: Date.now(),\n }),\n ];\n const readonlyContext = new ReadonlyChatContext(items);\n const newItem = new ChatMessage({\n id: 'msg_2',\n role: 'assistant',\n content: ['Response'],\n interrupted: false,\n createdAt: Date.now(),\n });\n\n expect(() => {\n readonlyContext.items[0] = newItem;\n }).toThrow(\n 'Cannot assign to read-only array index \"0\". Please use .copy() and agent.update_chat_ctx() to modify the chat context.',\n );\n\n expect(() => {\n delete readonlyContext.items[0];\n }).toThrow(\n 'Cannot delete read-only array index \"0\". Please use .copy() and agent.update_chat_ctx() to modify the chat context.',\n );\n\n expect(() => {\n readonlyContext.items[99] = newItem;\n }).toThrow(\n 'Cannot assign to read-only array index \"99\". Please use .copy() and agent.update_chat_ctx() to modify the chat context.',\n );\n });\n\n it('should allow read operations on the immutable array', () => {\n const items: ChatItem[] = [\n new ChatMessage({\n id: 'msg_1',\n role: 'user',\n content: ['Test 1'],\n interrupted: false,\n createdAt: 1000,\n }),\n new ChatMessage({\n id: 'msg_2',\n role: 'assistant',\n content: ['Test 2'],\n interrupted: false,\n createdAt: 2000,\n }),\n ];\n const readonlyContext = new ReadonlyChatContext(items);\n\n expect(readonlyContext.items.length).toBe(2);\n expect(readonlyContext.items[0]).toEqual(items[0]);\n expect(readonlyContext.items[1]).toEqual(items[1]);\n expect(readonlyContext.items.find((item: ChatItem) => item.id === 'msg_2')).toEqual(items[1]);\n expect(readonlyContext.items.map((item: ChatItem) => item.id)).toEqual(['msg_1', 'msg_2']);\n expect(\n readonlyContext.items.filter(\n (item: ChatItem) => item.type === 'message' && item.role === 'user',\n ),\n ).toHaveLength(1);\n\n // forEach should work for reading\n const ids: string[] = [];\n readonlyContext.items.forEach((item) => ids.push(item.id));\n expect(ids).toEqual(['msg_1', 'msg_2']);\n });\n});\n"],"mappings":"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","names":[]}
|
package/dist/llm/index.cjs
CHANGED
|
@@ -20,26 +20,55 @@ var llm_exports = {};
|
|
|
20
20
|
__export(llm_exports, {
|
|
21
21
|
ChatContext: () => import_chat_context.ChatContext,
|
|
22
22
|
ChatMessage: () => import_chat_context.ChatMessage,
|
|
23
|
-
|
|
23
|
+
FunctionCall: () => import_chat_context.FunctionCall,
|
|
24
|
+
FunctionCallOutput: () => import_chat_context.FunctionCallOutput,
|
|
24
25
|
LLM: () => import_llm.LLM,
|
|
25
|
-
LLMEvent: () => import_llm.LLMEvent,
|
|
26
26
|
LLMStream: () => import_llm.LLMStream,
|
|
27
|
-
|
|
28
|
-
|
|
27
|
+
RealtimeModel: () => import_realtime.RealtimeModel,
|
|
28
|
+
RealtimeSession: () => import_realtime.RealtimeSession,
|
|
29
|
+
RemoteChatContext: () => import_remote_chat_context.RemoteChatContext,
|
|
30
|
+
ToolError: () => import_tool_context.ToolError,
|
|
31
|
+
computeChatCtxDiff: () => import_utils.computeChatCtxDiff,
|
|
32
|
+
createAudioContent: () => import_chat_context.createAudioContent,
|
|
33
|
+
createImageContent: () => import_chat_context.createImageContent,
|
|
34
|
+
createToolOptions: () => import_utils.createToolOptions,
|
|
35
|
+
executeToolCall: () => import_utils.executeToolCall,
|
|
36
|
+
handoff: () => import_tool_context.handoff,
|
|
37
|
+
isFunctionTool: () => import_tool_context.isFunctionTool,
|
|
38
|
+
oaiBuildFunctionInfo: () => import_utils.oaiBuildFunctionInfo,
|
|
39
|
+
oaiParams: () => import_utils.oaiParams,
|
|
40
|
+
toJsonSchema: () => import_utils.toJsonSchema,
|
|
41
|
+
tool: () => import_tool_context.tool
|
|
29
42
|
});
|
|
30
43
|
module.exports = __toCommonJS(llm_exports);
|
|
31
|
-
var
|
|
44
|
+
var import_tool_context = require("./tool_context.cjs");
|
|
32
45
|
var import_chat_context = require("./chat_context.cjs");
|
|
33
46
|
var import_llm = require("./llm.cjs");
|
|
47
|
+
var import_realtime = require("./realtime.cjs");
|
|
48
|
+
var import_remote_chat_context = require("./remote_chat_context.cjs");
|
|
49
|
+
var import_utils = require("./utils.cjs");
|
|
34
50
|
// Annotate the CommonJS export names for ESM import in node:
|
|
35
51
|
0 && (module.exports = {
|
|
36
52
|
ChatContext,
|
|
37
53
|
ChatMessage,
|
|
38
|
-
|
|
54
|
+
FunctionCall,
|
|
55
|
+
FunctionCallOutput,
|
|
39
56
|
LLM,
|
|
40
|
-
LLMEvent,
|
|
41
57
|
LLMStream,
|
|
58
|
+
RealtimeModel,
|
|
59
|
+
RealtimeSession,
|
|
60
|
+
RemoteChatContext,
|
|
61
|
+
ToolError,
|
|
62
|
+
computeChatCtxDiff,
|
|
63
|
+
createAudioContent,
|
|
64
|
+
createImageContent,
|
|
65
|
+
createToolOptions,
|
|
66
|
+
executeToolCall,
|
|
67
|
+
handoff,
|
|
68
|
+
isFunctionTool,
|
|
42
69
|
oaiBuildFunctionInfo,
|
|
43
|
-
oaiParams
|
|
70
|
+
oaiParams,
|
|
71
|
+
toJsonSchema,
|
|
72
|
+
tool
|
|
44
73
|
});
|
|
45
74
|
//# sourceMappingURL=index.cjs.map
|
package/dist/llm/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/llm/index.ts"],"sourcesContent":["// SPDX-FileCopyrightText: 2024 LiveKit, Inc.\n//\n// SPDX-License-Identifier: Apache-2.0\nexport {\n type
|
|
1
|
+
{"version":3,"sources":["../../src/llm/index.ts"],"sourcesContent":["// SPDX-FileCopyrightText: 2024 LiveKit, Inc.\n//\n// SPDX-License-Identifier: Apache-2.0\nexport {\n handoff,\n isFunctionTool,\n tool,\n ToolError,\n type AgentHandoff,\n type FunctionTool,\n type ProviderDefinedTool,\n type Tool,\n type ToolChoice,\n type ToolContext,\n type ToolOptions,\n type ToolType,\n} from './tool_context.js';\n\nexport {\n ChatContext,\n ChatMessage,\n createAudioContent,\n createImageContent,\n FunctionCall,\n FunctionCallOutput,\n type AudioContent,\n type ChatContent,\n type ChatItem,\n type ChatRole,\n type ImageContent,\n} from './chat_context.js';\n\nexport type { ProviderFormat } from './provider_format/index.js';\n\nexport {\n LLM,\n LLMStream,\n type ChatChunk,\n type ChoiceDelta,\n type CompletionUsage,\n type LLMCallbacks,\n} from './llm.js';\n\nexport {\n RealtimeModel,\n RealtimeSession,\n type GenerationCreatedEvent,\n type InputSpeechStartedEvent,\n type InputSpeechStoppedEvent,\n type InputTranscriptionCompleted,\n type MessageGeneration,\n type RealtimeCapabilities,\n type RealtimeModelError,\n type RealtimeSessionReconnectedEvent,\n} from './realtime.js';\n\nexport { RemoteChatContext } from './remote_chat_context.js';\n\nexport {\n computeChatCtxDiff,\n createToolOptions,\n executeToolCall,\n oaiBuildFunctionInfo,\n oaiParams,\n toJsonSchema,\n type OpenAIFunctionParameters,\n} from './utils.js';\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,0BAaO;AAEP,0BAYO;AAIP,iBAOO;AAEP,sBAWO;AAEP,iCAAkC;AAElC,mBAQO;","names":[]}
|
package/dist/llm/index.d.cts
CHANGED
|
@@ -1,4 +1,8 @@
|
|
|
1
|
-
export { type
|
|
2
|
-
export {
|
|
3
|
-
export
|
|
1
|
+
export { handoff, isFunctionTool, tool, ToolError, type AgentHandoff, type FunctionTool, type ProviderDefinedTool, type Tool, type ToolChoice, type ToolContext, type ToolOptions, type ToolType, } from './tool_context.js';
|
|
2
|
+
export { ChatContext, ChatMessage, createAudioContent, createImageContent, FunctionCall, FunctionCallOutput, type AudioContent, type ChatContent, type ChatItem, type ChatRole, type ImageContent, } from './chat_context.js';
|
|
3
|
+
export type { ProviderFormat } from './provider_format/index.js';
|
|
4
|
+
export { LLM, LLMStream, type ChatChunk, type ChoiceDelta, type CompletionUsage, type LLMCallbacks, } from './llm.js';
|
|
5
|
+
export { RealtimeModel, RealtimeSession, type GenerationCreatedEvent, type InputSpeechStartedEvent, type InputSpeechStoppedEvent, type InputTranscriptionCompleted, type MessageGeneration, type RealtimeCapabilities, type RealtimeModelError, type RealtimeSessionReconnectedEvent, } from './realtime.js';
|
|
6
|
+
export { RemoteChatContext } from './remote_chat_context.js';
|
|
7
|
+
export { computeChatCtxDiff, createToolOptions, executeToolCall, oaiBuildFunctionInfo, oaiParams, toJsonSchema, type OpenAIFunctionParameters, } from './utils.js';
|
|
4
8
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/llm/index.d.ts
CHANGED
|
@@ -1,4 +1,8 @@
|
|
|
1
|
-
export { type
|
|
2
|
-
export {
|
|
3
|
-
export
|
|
1
|
+
export { handoff, isFunctionTool, tool, ToolError, type AgentHandoff, type FunctionTool, type ProviderDefinedTool, type Tool, type ToolChoice, type ToolContext, type ToolOptions, type ToolType, } from './tool_context.js';
|
|
2
|
+
export { ChatContext, ChatMessage, createAudioContent, createImageContent, FunctionCall, FunctionCallOutput, type AudioContent, type ChatContent, type ChatItem, type ChatRole, type ImageContent, } from './chat_context.js';
|
|
3
|
+
export type { ProviderFormat } from './provider_format/index.js';
|
|
4
|
+
export { LLM, LLMStream, type ChatChunk, type ChoiceDelta, type CompletionUsage, type LLMCallbacks, } from './llm.js';
|
|
5
|
+
export { RealtimeModel, RealtimeSession, type GenerationCreatedEvent, type InputSpeechStartedEvent, type InputSpeechStoppedEvent, type InputTranscriptionCompleted, type MessageGeneration, type RealtimeCapabilities, type RealtimeModelError, type RealtimeSessionReconnectedEvent, } from './realtime.js';
|
|
6
|
+
export { RemoteChatContext } from './remote_chat_context.js';
|
|
7
|
+
export { computeChatCtxDiff, createToolOptions, executeToolCall, oaiBuildFunctionInfo, oaiParams, toJsonSchema, type OpenAIFunctionParameters, } from './utils.js';
|
|
4
8
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/llm/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/llm/index.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,KAAK,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/llm/index.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,OAAO,EACP,cAAc,EACd,IAAI,EACJ,SAAS,EACT,KAAK,YAAY,EACjB,KAAK,YAAY,EACjB,KAAK,mBAAmB,EACxB,KAAK,IAAI,EACT,KAAK,UAAU,EACf,KAAK,WAAW,EAChB,KAAK,WAAW,EAChB,KAAK,QAAQ,GACd,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACL,WAAW,EACX,WAAW,EACX,kBAAkB,EAClB,kBAAkB,EAClB,YAAY,EACZ,kBAAkB,EAClB,KAAK,YAAY,EACjB,KAAK,WAAW,EAChB,KAAK,QAAQ,EACb,KAAK,QAAQ,EACb,KAAK,YAAY,GAClB,MAAM,mBAAmB,CAAC;AAE3B,YAAY,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAEjE,OAAO,EACL,GAAG,EACH,SAAS,EACT,KAAK,SAAS,EACd,KAAK,WAAW,EAChB,KAAK,eAAe,EACpB,KAAK,YAAY,GAClB,MAAM,UAAU,CAAC;AAElB,OAAO,EACL,aAAa,EACb,eAAe,EACf,KAAK,sBAAsB,EAC3B,KAAK,uBAAuB,EAC5B,KAAK,uBAAuB,EAC5B,KAAK,2BAA2B,EAChC,KAAK,iBAAiB,EACtB,KAAK,oBAAoB,EACzB,KAAK,kBAAkB,EACvB,KAAK,+BAA+B,GACrC,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAE7D,OAAO,EACL,kBAAkB,EAClB,iBAAiB,EACjB,eAAe,EACf,oBAAoB,EACpB,SAAS,EACT,YAAY,EACZ,KAAK,wBAAwB,GAC9B,MAAM,YAAY,CAAC"}
|
package/dist/llm/index.js
CHANGED
|
@@ -1,25 +1,55 @@
|
|
|
1
1
|
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
2
|
+
handoff,
|
|
3
|
+
isFunctionTool,
|
|
4
|
+
tool,
|
|
5
|
+
ToolError
|
|
6
|
+
} from "./tool_context.js";
|
|
5
7
|
import {
|
|
6
|
-
|
|
8
|
+
ChatContext,
|
|
7
9
|
ChatMessage,
|
|
8
|
-
|
|
10
|
+
createAudioContent,
|
|
11
|
+
createImageContent,
|
|
12
|
+
FunctionCall,
|
|
13
|
+
FunctionCallOutput
|
|
9
14
|
} from "./chat_context.js";
|
|
10
15
|
import {
|
|
11
|
-
LLMEvent,
|
|
12
16
|
LLM,
|
|
13
17
|
LLMStream
|
|
14
18
|
} from "./llm.js";
|
|
19
|
+
import {
|
|
20
|
+
RealtimeModel,
|
|
21
|
+
RealtimeSession
|
|
22
|
+
} from "./realtime.js";
|
|
23
|
+
import { RemoteChatContext } from "./remote_chat_context.js";
|
|
24
|
+
import {
|
|
25
|
+
computeChatCtxDiff,
|
|
26
|
+
createToolOptions,
|
|
27
|
+
executeToolCall,
|
|
28
|
+
oaiBuildFunctionInfo,
|
|
29
|
+
oaiParams,
|
|
30
|
+
toJsonSchema
|
|
31
|
+
} from "./utils.js";
|
|
15
32
|
export {
|
|
16
33
|
ChatContext,
|
|
17
34
|
ChatMessage,
|
|
18
|
-
|
|
35
|
+
FunctionCall,
|
|
36
|
+
FunctionCallOutput,
|
|
19
37
|
LLM,
|
|
20
|
-
LLMEvent,
|
|
21
38
|
LLMStream,
|
|
39
|
+
RealtimeModel,
|
|
40
|
+
RealtimeSession,
|
|
41
|
+
RemoteChatContext,
|
|
42
|
+
ToolError,
|
|
43
|
+
computeChatCtxDiff,
|
|
44
|
+
createAudioContent,
|
|
45
|
+
createImageContent,
|
|
46
|
+
createToolOptions,
|
|
47
|
+
executeToolCall,
|
|
48
|
+
handoff,
|
|
49
|
+
isFunctionTool,
|
|
22
50
|
oaiBuildFunctionInfo,
|
|
23
|
-
oaiParams
|
|
51
|
+
oaiParams,
|
|
52
|
+
toJsonSchema,
|
|
53
|
+
tool
|
|
24
54
|
};
|
|
25
55
|
//# sourceMappingURL=index.js.map
|
package/dist/llm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/llm/index.ts"],"sourcesContent":["// SPDX-FileCopyrightText: 2024 LiveKit, Inc.\n//\n// SPDX-License-Identifier: Apache-2.0\nexport {\n type
|
|
1
|
+
{"version":3,"sources":["../../src/llm/index.ts"],"sourcesContent":["// SPDX-FileCopyrightText: 2024 LiveKit, Inc.\n//\n// SPDX-License-Identifier: Apache-2.0\nexport {\n handoff,\n isFunctionTool,\n tool,\n ToolError,\n type AgentHandoff,\n type FunctionTool,\n type ProviderDefinedTool,\n type Tool,\n type ToolChoice,\n type ToolContext,\n type ToolOptions,\n type ToolType,\n} from './tool_context.js';\n\nexport {\n ChatContext,\n ChatMessage,\n createAudioContent,\n createImageContent,\n FunctionCall,\n FunctionCallOutput,\n type AudioContent,\n type ChatContent,\n type ChatItem,\n type ChatRole,\n type ImageContent,\n} from './chat_context.js';\n\nexport type { ProviderFormat } from './provider_format/index.js';\n\nexport {\n LLM,\n LLMStream,\n type ChatChunk,\n type ChoiceDelta,\n type CompletionUsage,\n type LLMCallbacks,\n} from './llm.js';\n\nexport {\n RealtimeModel,\n RealtimeSession,\n type GenerationCreatedEvent,\n type InputSpeechStartedEvent,\n type InputSpeechStoppedEvent,\n type InputTranscriptionCompleted,\n type MessageGeneration,\n type RealtimeCapabilities,\n type RealtimeModelError,\n type RealtimeSessionReconnectedEvent,\n} from './realtime.js';\n\nexport { RemoteChatContext } from './remote_chat_context.js';\n\nexport {\n computeChatCtxDiff,\n createToolOptions,\n executeToolCall,\n oaiBuildFunctionInfo,\n oaiParams,\n toJsonSchema,\n type OpenAIFunctionParameters,\n} from './utils.js';\n"],"mappings":"AAGA;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OASK;AAEP;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OAMK;AAIP;AAAA,EACE;AAAA,EACA;AAAA,OAKK;AAEP;AAAA,EACE;AAAA,EACA;AAAA,OASK;AAEP,SAAS,yBAAyB;AAElC;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OAEK;","names":[]}
|