@livekit/agents 0.0.0-20260120144724
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/LICENSE +201 -0
- package/README.md +17 -0
- 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 +170 -0
- package/dist/audio.cjs.map +1 -0
- package/dist/audio.d.cts +46 -0
- package/dist/audio.d.ts +46 -0
- package/dist/audio.d.ts.map +1 -0
- package/dist/audio.js +133 -0
- package/dist/audio.js.map +1 -0
- package/dist/cli.cjs +171 -0
- package/dist/cli.cjs.map +1 -0
- package/dist/cli.d.cts +14 -0
- package/dist/cli.d.ts +14 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +145 -0
- package/dist/cli.js.map +1 -0
- package/dist/connection_pool.cjs +242 -0
- package/dist/connection_pool.cjs.map +1 -0
- package/dist/connection_pool.d.cts +123 -0
- package/dist/connection_pool.d.ts +123 -0
- package/dist/connection_pool.d.ts.map +1 -0
- package/dist/connection_pool.js +218 -0
- package/dist/connection_pool.js.map +1 -0
- package/dist/connection_pool.test.cjs +256 -0
- package/dist/connection_pool.test.cjs.map +1 -0
- package/dist/connection_pool.test.js +255 -0
- package/dist/connection_pool.test.js.map +1 -0
- package/dist/constants.cjs +44 -0
- package/dist/constants.cjs.map +1 -0
- package/dist/constants.d.cts +7 -0
- package/dist/constants.d.ts +7 -0
- package/dist/constants.d.ts.map +1 -0
- package/dist/constants.js +15 -0
- package/dist/constants.js.map +1 -0
- package/dist/generator.cjs +36 -0
- package/dist/generator.cjs.map +1 -0
- package/dist/generator.d.cts +23 -0
- package/dist/generator.d.ts +23 -0
- package/dist/generator.d.ts.map +1 -0
- package/dist/generator.js +11 -0
- package/dist/generator.js.map +1 -0
- package/dist/http_server.cjs +75 -0
- package/dist/http_server.cjs.map +1 -0
- package/dist/http_server.d.cts +20 -0
- package/dist/http_server.d.ts +20 -0
- package/dist/http_server.d.ts.map +1 -0
- package/dist/http_server.js +51 -0
- package/dist/http_server.js.map +1 -0
- package/dist/index.cjs +100 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +35 -0
- package/dist/index.d.ts +35 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +40 -0
- package/dist/index.js.map +1 -0
- package/dist/inference/api_protos.cjs +104 -0
- package/dist/inference/api_protos.cjs.map +1 -0
- package/dist/inference/api_protos.d.cts +222 -0
- package/dist/inference/api_protos.d.ts +222 -0
- package/dist/inference/api_protos.d.ts.map +1 -0
- package/dist/inference/api_protos.js +70 -0
- package/dist/inference/api_protos.js.map +1 -0
- package/dist/inference/index.cjs +56 -0
- package/dist/inference/index.cjs.map +1 -0
- package/dist/inference/index.d.cts +8 -0
- package/dist/inference/index.d.ts +8 -0
- package/dist/inference/index.d.ts.map +1 -0
- package/dist/inference/index.js +23 -0
- package/dist/inference/index.js.map +1 -0
- package/dist/inference/interruption/AdaptiveInterruptionDetector.cjs +152 -0
- package/dist/inference/interruption/AdaptiveInterruptionDetector.cjs.map +1 -0
- package/dist/inference/interruption/AdaptiveInterruptionDetector.d.cts +50 -0
- package/dist/inference/interruption/AdaptiveInterruptionDetector.d.ts +50 -0
- package/dist/inference/interruption/AdaptiveInterruptionDetector.d.ts.map +1 -0
- package/dist/inference/interruption/AdaptiveInterruptionDetector.js +125 -0
- package/dist/inference/interruption/AdaptiveInterruptionDetector.js.map +1 -0
- package/dist/inference/interruption/InterruptionStream.cjs +310 -0
- package/dist/inference/interruption/InterruptionStream.cjs.map +1 -0
- package/dist/inference/interruption/InterruptionStream.d.cts +57 -0
- package/dist/inference/interruption/InterruptionStream.d.ts +57 -0
- package/dist/inference/interruption/InterruptionStream.d.ts.map +1 -0
- package/dist/inference/interruption/InterruptionStream.js +288 -0
- package/dist/inference/interruption/InterruptionStream.js.map +1 -0
- package/dist/inference/interruption/defaults.cjs +76 -0
- package/dist/inference/interruption/defaults.cjs.map +1 -0
- package/dist/inference/interruption/defaults.d.cts +14 -0
- package/dist/inference/interruption/defaults.d.ts +14 -0
- package/dist/inference/interruption/defaults.d.ts.map +1 -0
- package/dist/inference/interruption/defaults.js +42 -0
- package/dist/inference/interruption/defaults.js.map +1 -0
- package/dist/inference/interruption/errors.cjs +2 -0
- package/dist/inference/interruption/errors.cjs.map +1 -0
- package/dist/inference/interruption/errors.d.cts +2 -0
- package/dist/inference/interruption/errors.d.ts +2 -0
- package/dist/inference/interruption/errors.d.ts.map +1 -0
- package/dist/inference/interruption/errors.js +1 -0
- package/dist/inference/interruption/errors.js.map +1 -0
- package/dist/inference/interruption/http_transport.cjs +57 -0
- package/dist/inference/interruption/http_transport.cjs.map +1 -0
- package/dist/inference/interruption/http_transport.d.cts +23 -0
- package/dist/inference/interruption/http_transport.d.ts +23 -0
- package/dist/inference/interruption/http_transport.d.ts.map +1 -0
- package/dist/inference/interruption/http_transport.js +33 -0
- package/dist/inference/interruption/http_transport.js.map +1 -0
- package/dist/inference/interruption/index.cjs +34 -0
- package/dist/inference/interruption/index.cjs.map +1 -0
- package/dist/inference/interruption/index.d.cts +5 -0
- package/dist/inference/interruption/index.d.ts +5 -0
- package/dist/inference/interruption/index.d.ts.map +1 -0
- package/dist/inference/interruption/index.js +7 -0
- package/dist/inference/interruption/index.js.map +1 -0
- package/dist/inference/interruption/interruption.cjs +85 -0
- package/dist/inference/interruption/interruption.cjs.map +1 -0
- package/dist/inference/interruption/interruption.d.cts +48 -0
- package/dist/inference/interruption/interruption.d.ts +48 -0
- package/dist/inference/interruption/interruption.d.ts.map +1 -0
- package/dist/inference/interruption/interruption.js +59 -0
- package/dist/inference/interruption/interruption.js.map +1 -0
- package/dist/inference/llm.cjs +347 -0
- package/dist/inference/llm.cjs.map +1 -0
- package/dist/inference/llm.d.cts +114 -0
- package/dist/inference/llm.d.ts +114 -0
- package/dist/inference/llm.d.ts.map +1 -0
- package/dist/inference/llm.js +318 -0
- package/dist/inference/llm.js.map +1 -0
- package/dist/inference/stt.cjs +371 -0
- package/dist/inference/stt.cjs.map +1 -0
- package/dist/inference/stt.d.cts +91 -0
- package/dist/inference/stt.d.ts +91 -0
- package/dist/inference/stt.d.ts.map +1 -0
- package/dist/inference/stt.js +350 -0
- package/dist/inference/stt.js.map +1 -0
- package/dist/inference/tts.cjs +439 -0
- package/dist/inference/tts.cjs.map +1 -0
- package/dist/inference/tts.d.cts +80 -0
- package/dist/inference/tts.d.ts +80 -0
- package/dist/inference/tts.d.ts.map +1 -0
- package/dist/inference/tts.js +417 -0
- package/dist/inference/tts.js.map +1 -0
- package/dist/inference/utils.cjs +89 -0
- package/dist/inference/utils.cjs.map +1 -0
- package/dist/inference/utils.d.cts +6 -0
- package/dist/inference/utils.d.ts +6 -0
- package/dist/inference/utils.d.ts.map +1 -0
- package/dist/inference/utils.js +63 -0
- package/dist/inference/utils.js.map +1 -0
- package/dist/inference/utils.test.cjs +20 -0
- package/dist/inference/utils.test.cjs.map +1 -0
- package/dist/inference/utils.test.js +19 -0
- package/dist/inference/utils.test.js.map +1 -0
- package/dist/inference_runner.cjs +37 -0
- package/dist/inference_runner.cjs.map +1 -0
- package/dist/inference_runner.d.cts +11 -0
- package/dist/inference_runner.d.ts +11 -0
- package/dist/inference_runner.d.ts.map +1 -0
- package/dist/inference_runner.js +13 -0
- package/dist/inference_runner.js.map +1 -0
- package/dist/ipc/index.cjs +23 -0
- package/dist/ipc/index.cjs.map +1 -0
- package/dist/ipc/index.d.cts +2 -0
- package/dist/ipc/index.d.ts +2 -0
- package/dist/ipc/index.d.ts.map +1 -0
- package/dist/ipc/index.js +2 -0
- package/dist/ipc/index.js.map +1 -0
- package/dist/ipc/inference_executor.cjs +17 -0
- package/dist/ipc/inference_executor.cjs.map +1 -0
- package/dist/ipc/inference_executor.d.cts +4 -0
- package/dist/ipc/inference_executor.d.ts +4 -0
- package/dist/ipc/inference_executor.d.ts.map +1 -0
- package/dist/ipc/inference_executor.js +1 -0
- package/dist/ipc/inference_executor.js.map +1 -0
- package/dist/ipc/inference_proc_executor.cjs +101 -0
- package/dist/ipc/inference_proc_executor.cjs.map +1 -0
- package/dist/ipc/inference_proc_executor.d.cts +23 -0
- package/dist/ipc/inference_proc_executor.d.ts +23 -0
- package/dist/ipc/inference_proc_executor.d.ts.map +1 -0
- package/dist/ipc/inference_proc_executor.js +75 -0
- package/dist/ipc/inference_proc_executor.js.map +1 -0
- package/dist/ipc/inference_proc_lazy_main.cjs +86 -0
- package/dist/ipc/inference_proc_lazy_main.cjs.map +1 -0
- package/dist/ipc/inference_proc_lazy_main.d.cts +2 -0
- package/dist/ipc/inference_proc_lazy_main.d.ts +2 -0
- package/dist/ipc/inference_proc_lazy_main.d.ts.map +1 -0
- package/dist/ipc/inference_proc_lazy_main.js +85 -0
- package/dist/ipc/inference_proc_lazy_main.js.map +1 -0
- package/dist/ipc/job_executor.cjs +34 -0
- package/dist/ipc/job_executor.cjs.map +1 -0
- package/dist/ipc/job_executor.d.cts +18 -0
- package/dist/ipc/job_executor.d.ts +18 -0
- package/dist/ipc/job_executor.d.ts.map +1 -0
- package/dist/ipc/job_executor.js +10 -0
- package/dist/ipc/job_executor.js.map +1 -0
- package/dist/ipc/job_proc_executor.cjs +115 -0
- package/dist/ipc/job_proc_executor.cjs.map +1 -0
- package/dist/ipc/job_proc_executor.d.cts +19 -0
- package/dist/ipc/job_proc_executor.d.ts +19 -0
- package/dist/ipc/job_proc_executor.d.ts.map +1 -0
- package/dist/ipc/job_proc_executor.js +89 -0
- package/dist/ipc/job_proc_executor.js.map +1 -0
- package/dist/ipc/job_proc_lazy_main.cjs +210 -0
- package/dist/ipc/job_proc_lazy_main.cjs.map +1 -0
- package/dist/ipc/job_proc_lazy_main.d.cts +2 -0
- package/dist/ipc/job_proc_lazy_main.d.ts +2 -0
- package/dist/ipc/job_proc_lazy_main.d.ts.map +1 -0
- package/dist/ipc/job_proc_lazy_main.js +187 -0
- package/dist/ipc/job_proc_lazy_main.js.map +1 -0
- package/dist/ipc/message.cjs +17 -0
- package/dist/ipc/message.cjs.map +1 -0
- package/dist/ipc/message.d.cts +58 -0
- package/dist/ipc/message.d.ts +58 -0
- package/dist/ipc/message.d.ts.map +1 -0
- package/dist/ipc/message.js +1 -0
- package/dist/ipc/message.js.map +1 -0
- package/dist/ipc/proc_pool.cjs +164 -0
- package/dist/ipc/proc_pool.cjs.map +1 -0
- package/dist/ipc/proc_pool.d.cts +31 -0
- package/dist/ipc/proc_pool.d.ts +31 -0
- package/dist/ipc/proc_pool.d.ts.map +1 -0
- package/dist/ipc/proc_pool.js +140 -0
- package/dist/ipc/proc_pool.js.map +1 -0
- package/dist/ipc/supervised_proc.cjs +229 -0
- package/dist/ipc/supervised_proc.cjs.map +1 -0
- package/dist/ipc/supervised_proc.d.cts +32 -0
- package/dist/ipc/supervised_proc.d.ts +32 -0
- package/dist/ipc/supervised_proc.d.ts.map +1 -0
- package/dist/ipc/supervised_proc.js +195 -0
- package/dist/ipc/supervised_proc.js.map +1 -0
- package/dist/ipc/supervised_proc.test.cjs +145 -0
- package/dist/ipc/supervised_proc.test.cjs.map +1 -0
- package/dist/ipc/supervised_proc.test.js +122 -0
- package/dist/ipc/supervised_proc.test.js.map +1 -0
- package/dist/job.cjs +373 -0
- package/dist/job.cjs.map +1 -0
- package/dist/job.d.cts +141 -0
- package/dist/job.d.ts +141 -0
- package/dist/job.d.ts.map +1 -0
- package/dist/job.js +332 -0
- package/dist/job.js.map +1 -0
- package/dist/llm/chat_context.cjs +527 -0
- package/dist/llm/chat_context.cjs.map +1 -0
- package/dist/llm/chat_context.d.cts +223 -0
- package/dist/llm/chat_context.d.ts +223 -0
- package/dist/llm/chat_context.d.ts.map +1 -0
- package/dist/llm/chat_context.js +496 -0
- package/dist/llm/chat_context.js.map +1 -0
- package/dist/llm/chat_context.test.cjs +911 -0
- package/dist/llm/chat_context.test.cjs.map +1 -0
- package/dist/llm/chat_context.test.js +916 -0
- package/dist/llm/chat_context.test.js.map +1 -0
- package/dist/llm/fallback_adapter.cjs +278 -0
- package/dist/llm/fallback_adapter.cjs.map +1 -0
- package/dist/llm/fallback_adapter.d.cts +73 -0
- package/dist/llm/fallback_adapter.d.ts +73 -0
- package/dist/llm/fallback_adapter.d.ts.map +1 -0
- package/dist/llm/fallback_adapter.js +254 -0
- package/dist/llm/fallback_adapter.js.map +1 -0
- package/dist/llm/fallback_adapter.test.cjs +176 -0
- package/dist/llm/fallback_adapter.test.cjs.map +1 -0
- package/dist/llm/fallback_adapter.test.js +175 -0
- package/dist/llm/fallback_adapter.test.js.map +1 -0
- package/dist/llm/index.cjs +79 -0
- package/dist/llm/index.cjs.map +1 -0
- package/dist/llm/index.d.cts +9 -0
- package/dist/llm/index.d.ts +9 -0
- package/dist/llm/index.d.ts.map +1 -0
- package/dist/llm/index.js +61 -0
- package/dist/llm/index.js.map +1 -0
- package/dist/llm/llm.cjs +226 -0
- package/dist/llm/llm.cjs.map +1 -0
- package/dist/llm/llm.d.cts +94 -0
- package/dist/llm/llm.d.ts +94 -0
- package/dist/llm/llm.d.ts.map +1 -0
- package/dist/llm/llm.js +201 -0
- package/dist/llm/llm.js.map +1 -0
- package/dist/llm/provider_format/google.cjs +132 -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 +108 -0
- package/dist/llm/provider_format/google.js.map +1 -0
- package/dist/llm/provider_format/google.test.cjs +724 -0
- package/dist/llm/provider_format/google.test.cjs.map +1 -0
- package/dist/llm/provider_format/google.test.js +728 -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 +138 -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 +114 -0
- package/dist/llm/provider_format/openai.js.map +1 -0
- package/dist/llm/provider_format/openai.test.cjs +557 -0
- package/dist/llm/provider_format/openai.test.cjs.map +1 -0
- package/dist/llm/provider_format/openai.test.js +561 -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 +106 -0
- package/dist/llm/realtime.d.ts +106 -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 +25 -0
- package/dist/llm/remote_chat_context.d.ts +25 -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 +152 -0
- package/dist/llm/tool_context.cjs.map +1 -0
- package/dist/llm/tool_context.d.cts +153 -0
- package/dist/llm/tool_context.d.ts +153 -0
- package/dist/llm/tool_context.d.ts.map +1 -0
- package/dist/llm/tool_context.js +119 -0
- package/dist/llm/tool_context.js.map +1 -0
- package/dist/llm/tool_context.test.cjs +359 -0
- package/dist/llm/tool_context.test.cjs.map +1 -0
- package/dist/llm/tool_context.test.js +336 -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 +267 -0
- package/dist/llm/utils.cjs.map +1 -0
- package/dist/llm/utils.d.cts +41 -0
- package/dist/llm/utils.d.ts +41 -0
- package/dist/llm/utils.d.ts.map +1 -0
- package/dist/llm/utils.js +230 -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/llm/zod-utils.cjs +102 -0
- package/dist/llm/zod-utils.cjs.map +1 -0
- package/dist/llm/zod-utils.d.cts +65 -0
- package/dist/llm/zod-utils.d.ts +65 -0
- package/dist/llm/zod-utils.d.ts.map +1 -0
- package/dist/llm/zod-utils.js +64 -0
- package/dist/llm/zod-utils.js.map +1 -0
- package/dist/llm/zod-utils.test.cjs +472 -0
- package/dist/llm/zod-utils.test.cjs.map +1 -0
- package/dist/llm/zod-utils.test.js +455 -0
- package/dist/llm/zod-utils.test.js.map +1 -0
- package/dist/log.cjs +81 -0
- package/dist/log.cjs.map +1 -0
- package/dist/log.d.cts +20 -0
- package/dist/log.d.ts +20 -0
- package/dist/log.d.ts.map +1 -0
- package/dist/log.js +54 -0
- package/dist/log.js.map +1 -0
- package/dist/metrics/base.cjs +17 -0
- package/dist/metrics/base.cjs.map +1 -0
- package/dist/metrics/base.d.cts +150 -0
- package/dist/metrics/base.d.ts +150 -0
- package/dist/metrics/base.d.ts.map +1 -0
- package/dist/metrics/base.js +1 -0
- package/dist/metrics/base.js.map +1 -0
- package/dist/metrics/index.cjs +32 -0
- package/dist/metrics/index.cjs.map +1 -0
- package/dist/metrics/index.d.cts +4 -0
- package/dist/metrics/index.d.ts +4 -0
- package/dist/metrics/index.d.ts.map +1 -0
- package/dist/metrics/index.js +7 -0
- package/dist/metrics/index.js.map +1 -0
- package/dist/metrics/usage_collector.cjs +58 -0
- package/dist/metrics/usage_collector.cjs.map +1 -0
- package/dist/metrics/usage_collector.d.cts +15 -0
- package/dist/metrics/usage_collector.d.ts +15 -0
- package/dist/metrics/usage_collector.d.ts.map +1 -0
- package/dist/metrics/usage_collector.js +34 -0
- package/dist/metrics/usage_collector.js.map +1 -0
- package/dist/metrics/utils.cjs +74 -0
- package/dist/metrics/utils.cjs.map +1 -0
- package/dist/metrics/utils.d.cts +3 -0
- package/dist/metrics/utils.d.ts +3 -0
- package/dist/metrics/utils.d.ts.map +1 -0
- package/dist/metrics/utils.js +50 -0
- package/dist/metrics/utils.js.map +1 -0
- package/dist/plugin.cjs +62 -0
- package/dist/plugin.cjs.map +1 -0
- package/dist/plugin.d.cts +24 -0
- package/dist/plugin.d.ts +24 -0
- package/dist/plugin.d.ts.map +1 -0
- package/dist/plugin.js +37 -0
- package/dist/plugin.js.map +1 -0
- package/dist/stream/deferred_stream.cjs +106 -0
- package/dist/stream/deferred_stream.cjs.map +1 -0
- package/dist/stream/deferred_stream.d.cts +32 -0
- package/dist/stream/deferred_stream.d.ts +32 -0
- package/dist/stream/deferred_stream.d.ts.map +1 -0
- package/dist/stream/deferred_stream.js +81 -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 +57 -0
- package/dist/stream/stream_channel.cjs.map +1 -0
- package/dist/stream/stream_channel.d.cts +11 -0
- package/dist/stream/stream_channel.d.ts +11 -0
- package/dist/stream/stream_channel.d.ts.map +1 -0
- package/dist/stream/stream_channel.js +33 -0
- package/dist/stream/stream_channel.js.map +1 -0
- package/dist/stream/stream_channel.test.cjs +124 -0
- package/dist/stream/stream_channel.test.cjs.map +1 -0
- package/dist/stream/stream_channel.test.js +123 -0
- package/dist/stream/stream_channel.test.js.map +1 -0
- package/dist/stt/index.cjs +38 -0
- package/dist/stt/index.cjs.map +1 -0
- package/dist/stt/index.d.cts +3 -0
- package/dist/stt/index.d.ts +3 -0
- package/dist/stt/index.d.ts.map +1 -0
- package/dist/stt/index.js +14 -0
- package/dist/stt/index.js.map +1 -0
- package/dist/stt/stream_adapter.cjs +115 -0
- package/dist/stt/stream_adapter.cjs.map +1 -0
- package/dist/stt/stream_adapter.d.cts +23 -0
- package/dist/stt/stream_adapter.d.ts +23 -0
- package/dist/stt/stream_adapter.d.ts.map +1 -0
- package/dist/stt/stream_adapter.js +90 -0
- package/dist/stt/stream_adapter.js.map +1 -0
- package/dist/stt/stt.cjs +253 -0
- package/dist/stt/stt.cjs.map +1 -0
- package/dist/stt/stt.d.cts +158 -0
- package/dist/stt/stt.d.ts +158 -0
- package/dist/stt/stt.d.ts.map +1 -0
- package/dist/stt/stt.js +227 -0
- package/dist/stt/stt.js.map +1 -0
- package/dist/telemetry/index.cjs +72 -0
- package/dist/telemetry/index.cjs.map +1 -0
- package/dist/telemetry/index.d.cts +7 -0
- package/dist/telemetry/index.d.ts +7 -0
- package/dist/telemetry/index.d.ts.map +1 -0
- package/dist/telemetry/index.js +37 -0
- package/dist/telemetry/index.js.map +1 -0
- package/dist/telemetry/logging.cjs +65 -0
- package/dist/telemetry/logging.cjs.map +1 -0
- package/dist/telemetry/logging.d.cts +21 -0
- package/dist/telemetry/logging.d.ts +21 -0
- package/dist/telemetry/logging.d.ts.map +1 -0
- package/dist/telemetry/logging.js +40 -0
- package/dist/telemetry/logging.js.map +1 -0
- package/dist/telemetry/otel_http_exporter.cjs +147 -0
- package/dist/telemetry/otel_http_exporter.cjs.map +1 -0
- package/dist/telemetry/otel_http_exporter.d.cts +62 -0
- package/dist/telemetry/otel_http_exporter.d.ts +62 -0
- package/dist/telemetry/otel_http_exporter.d.ts.map +1 -0
- package/dist/telemetry/otel_http_exporter.js +123 -0
- package/dist/telemetry/otel_http_exporter.js.map +1 -0
- package/dist/telemetry/pino_otel_transport.cjs +217 -0
- package/dist/telemetry/pino_otel_transport.cjs.map +1 -0
- package/dist/telemetry/pino_otel_transport.d.cts +58 -0
- package/dist/telemetry/pino_otel_transport.d.ts +58 -0
- package/dist/telemetry/pino_otel_transport.d.ts.map +1 -0
- package/dist/telemetry/pino_otel_transport.js +189 -0
- package/dist/telemetry/pino_otel_transport.js.map +1 -0
- package/dist/telemetry/trace_types.cjs +206 -0
- package/dist/telemetry/trace_types.cjs.map +1 -0
- package/dist/telemetry/trace_types.d.cts +61 -0
- package/dist/telemetry/trace_types.d.ts +61 -0
- package/dist/telemetry/trace_types.d.ts.map +1 -0
- package/dist/telemetry/trace_types.js +123 -0
- package/dist/telemetry/trace_types.js.map +1 -0
- package/dist/telemetry/traces.cjs +444 -0
- package/dist/telemetry/traces.cjs.map +1 -0
- package/dist/telemetry/traces.d.cts +114 -0
- package/dist/telemetry/traces.d.ts +114 -0
- package/dist/telemetry/traces.d.ts.map +1 -0
- package/dist/telemetry/traces.js +409 -0
- package/dist/telemetry/traces.js.map +1 -0
- package/dist/telemetry/utils.cjs +86 -0
- package/dist/telemetry/utils.cjs.map +1 -0
- package/dist/telemetry/utils.d.cts +5 -0
- package/dist/telemetry/utils.d.ts +5 -0
- package/dist/telemetry/utils.d.ts.map +1 -0
- package/dist/telemetry/utils.js +51 -0
- package/dist/telemetry/utils.js.map +1 -0
- package/dist/tokenize/basic/basic.cjs +105 -0
- package/dist/tokenize/basic/basic.cjs.map +1 -0
- package/dist/tokenize/basic/basic.d.cts +24 -0
- package/dist/tokenize/basic/basic.d.ts +24 -0
- package/dist/tokenize/basic/basic.d.ts.map +1 -0
- package/dist/tokenize/basic/basic.js +67 -0
- package/dist/tokenize/basic/basic.js.map +1 -0
- package/dist/tokenize/basic/hyphenator.cjs +425 -0
- package/dist/tokenize/basic/hyphenator.cjs.map +1 -0
- package/dist/tokenize/basic/hyphenator.d.cts +17 -0
- package/dist/tokenize/basic/hyphenator.d.ts +17 -0
- package/dist/tokenize/basic/hyphenator.d.ts.map +1 -0
- package/dist/tokenize/basic/hyphenator.js +401 -0
- package/dist/tokenize/basic/hyphenator.js.map +1 -0
- package/dist/tokenize/basic/index.cjs +37 -0
- package/dist/tokenize/basic/index.cjs.map +1 -0
- package/dist/tokenize/basic/index.d.cts +2 -0
- package/dist/tokenize/basic/index.d.ts +2 -0
- package/dist/tokenize/basic/index.d.ts.map +1 -0
- package/dist/tokenize/basic/index.js +15 -0
- package/dist/tokenize/basic/index.js.map +1 -0
- package/dist/tokenize/basic/paragraph.cjs +57 -0
- package/dist/tokenize/basic/paragraph.cjs.map +1 -0
- package/dist/tokenize/basic/paragraph.d.cts +5 -0
- package/dist/tokenize/basic/paragraph.d.ts +5 -0
- package/dist/tokenize/basic/paragraph.d.ts.map +1 -0
- package/dist/tokenize/basic/paragraph.js +33 -0
- package/dist/tokenize/basic/paragraph.js.map +1 -0
- package/dist/tokenize/basic/sentence.cjs +97 -0
- package/dist/tokenize/basic/sentence.cjs.map +1 -0
- package/dist/tokenize/basic/sentence.d.cts +5 -0
- package/dist/tokenize/basic/sentence.d.ts +5 -0
- package/dist/tokenize/basic/sentence.d.ts.map +1 -0
- package/dist/tokenize/basic/sentence.js +73 -0
- package/dist/tokenize/basic/sentence.js.map +1 -0
- package/dist/tokenize/basic/word.cjs +44 -0
- package/dist/tokenize/basic/word.cjs.map +1 -0
- package/dist/tokenize/basic/word.d.cts +5 -0
- package/dist/tokenize/basic/word.d.ts +5 -0
- package/dist/tokenize/basic/word.d.ts.map +1 -0
- package/dist/tokenize/basic/word.js +20 -0
- package/dist/tokenize/basic/word.js.map +1 -0
- package/dist/tokenize/index.cjs +55 -0
- package/dist/tokenize/index.cjs.map +1 -0
- package/dist/tokenize/index.d.cts +5 -0
- package/dist/tokenize/index.d.ts +5 -0
- package/dist/tokenize/index.d.ts.map +1 -0
- package/dist/tokenize/index.js +19 -0
- package/dist/tokenize/index.js.map +1 -0
- package/dist/tokenize/token_stream.cjs +168 -0
- package/dist/tokenize/token_stream.cjs.map +1 -0
- package/dist/tokenize/token_stream.d.cts +40 -0
- package/dist/tokenize/token_stream.d.ts +40 -0
- package/dist/tokenize/token_stream.d.ts.map +1 -0
- package/dist/tokenize/token_stream.js +142 -0
- package/dist/tokenize/token_stream.js.map +1 -0
- package/dist/tokenize/tokenizer.cjs +184 -0
- package/dist/tokenize/tokenizer.cjs.map +1 -0
- package/dist/tokenize/tokenizer.d.cts +55 -0
- package/dist/tokenize/tokenizer.d.ts +55 -0
- package/dist/tokenize/tokenizer.d.ts.map +1 -0
- package/dist/tokenize/tokenizer.js +156 -0
- package/dist/tokenize/tokenizer.js.map +1 -0
- package/dist/tokenize/tokenizer.test.cjs +220 -0
- package/dist/tokenize/tokenizer.test.cjs.map +1 -0
- package/dist/tokenize/tokenizer.test.js +219 -0
- package/dist/tokenize/tokenizer.test.js.map +1 -0
- package/dist/transcription.cjs +247 -0
- package/dist/transcription.cjs.map +1 -0
- package/dist/transcription.d.cts +31 -0
- package/dist/transcription.d.ts +31 -0
- package/dist/transcription.d.ts.map +1 -0
- package/dist/transcription.js +222 -0
- package/dist/transcription.js.map +1 -0
- package/dist/tts/index.cjs +38 -0
- package/dist/tts/index.cjs.map +1 -0
- package/dist/tts/index.d.cts +3 -0
- package/dist/tts/index.d.ts +3 -0
- package/dist/tts/index.d.ts.map +1 -0
- package/dist/tts/index.js +14 -0
- package/dist/tts/index.js.map +1 -0
- package/dist/tts/stream_adapter.cjs +105 -0
- package/dist/tts/stream_adapter.cjs.map +1 -0
- package/dist/tts/stream_adapter.d.cts +20 -0
- package/dist/tts/stream_adapter.d.ts +20 -0
- package/dist/tts/stream_adapter.d.ts.map +1 -0
- package/dist/tts/stream_adapter.js +80 -0
- package/dist/tts/stream_adapter.js.map +1 -0
- package/dist/tts/tts.cjs +431 -0
- package/dist/tts/tts.cjs.map +1 -0
- package/dist/tts/tts.d.cts +161 -0
- package/dist/tts/tts.d.ts +161 -0
- package/dist/tts/tts.d.ts.map +1 -0
- package/dist/tts/tts.js +405 -0
- package/dist/tts/tts.js.map +1 -0
- package/dist/types.cjs +49 -0
- package/dist/types.cjs.map +1 -0
- package/dist/types.d.cts +44 -0
- package/dist/types.d.ts +44 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +23 -0
- package/dist/types.js.map +1 -0
- package/dist/utils/ws_transport.cjs +51 -0
- package/dist/utils/ws_transport.cjs.map +1 -0
- package/dist/utils/ws_transport.d.cts +9 -0
- package/dist/utils/ws_transport.d.ts +9 -0
- package/dist/utils/ws_transport.d.ts.map +1 -0
- package/dist/utils/ws_transport.js +17 -0
- package/dist/utils/ws_transport.js.map +1 -0
- package/dist/utils/ws_transport.test.cjs +212 -0
- package/dist/utils/ws_transport.test.cjs.map +1 -0
- package/dist/utils/ws_transport.test.js +211 -0
- package/dist/utils/ws_transport.test.js.map +1 -0
- package/dist/utils.cjs +669 -0
- package/dist/utils.cjs.map +1 -0
- package/dist/utils.d.cts +244 -0
- package/dist/utils.d.ts +244 -0
- package/dist/utils.d.ts.map +1 -0
- package/dist/utils.js +617 -0
- package/dist/utils.js.map +1 -0
- package/dist/utils.test.cjs +492 -0
- package/dist/utils.test.cjs.map +1 -0
- package/dist/utils.test.js +491 -0
- package/dist/utils.test.js.map +1 -0
- package/dist/vad.cjs +211 -0
- package/dist/vad.cjs.map +1 -0
- package/dist/vad.d.cts +105 -0
- package/dist/vad.d.ts +105 -0
- package/dist/vad.d.ts.map +1 -0
- package/dist/vad.js +185 -0
- package/dist/vad.js.map +1 -0
- package/dist/version.cjs +29 -0
- package/dist/version.cjs.map +1 -0
- package/dist/version.d.cts +2 -0
- package/dist/version.d.ts +2 -0
- package/dist/version.d.ts.map +1 -0
- package/dist/version.js +5 -0
- package/dist/version.js.map +1 -0
- package/dist/voice/agent.cjs +308 -0
- package/dist/voice/agent.cjs.map +1 -0
- package/dist/voice/agent.d.cts +83 -0
- package/dist/voice/agent.d.ts +83 -0
- package/dist/voice/agent.d.ts.map +1 -0
- package/dist/voice/agent.js +287 -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 +1784 -0
- package/dist/voice/agent_activity.cjs.map +1 -0
- package/dist/voice/agent_activity.d.cts +116 -0
- package/dist/voice/agent_activity.d.ts +116 -0
- package/dist/voice/agent_activity.d.ts.map +1 -0
- package/dist/voice/agent_activity.js +1780 -0
- package/dist/voice/agent_activity.js.map +1 -0
- package/dist/voice/agent_session.cjs +592 -0
- package/dist/voice/agent_session.cjs.map +1 -0
- package/dist/voice/agent_session.d.cts +165 -0
- package/dist/voice/agent_session.d.ts +165 -0
- package/dist/voice/agent_session.d.ts.map +1 -0
- package/dist/voice/agent_session.js +582 -0
- package/dist/voice/agent_session.js.map +1 -0
- package/dist/voice/audio_recognition.cjs +668 -0
- package/dist/voice/audio_recognition.cjs.map +1 -0
- package/dist/voice/audio_recognition.d.cts +127 -0
- package/dist/voice/audio_recognition.d.ts +127 -0
- package/dist/voice/audio_recognition.d.ts.map +1 -0
- package/dist/voice/audio_recognition.js +647 -0
- package/dist/voice/audio_recognition.js.map +1 -0
- package/dist/voice/avatar/datastream_io.cjs +204 -0
- package/dist/voice/avatar/datastream_io.cjs.map +1 -0
- package/dist/voice/avatar/datastream_io.d.cts +37 -0
- package/dist/voice/avatar/datastream_io.d.ts +37 -0
- package/dist/voice/avatar/datastream_io.d.ts.map +1 -0
- package/dist/voice/avatar/datastream_io.js +188 -0
- package/dist/voice/avatar/datastream_io.js.map +1 -0
- package/dist/voice/avatar/index.cjs +23 -0
- package/dist/voice/avatar/index.cjs.map +1 -0
- package/dist/voice/avatar/index.d.cts +2 -0
- package/dist/voice/avatar/index.d.ts +2 -0
- package/dist/voice/avatar/index.d.ts.map +1 -0
- package/dist/voice/avatar/index.js +2 -0
- package/dist/voice/avatar/index.js.map +1 -0
- package/dist/voice/background_audio.cjs +366 -0
- package/dist/voice/background_audio.cjs.map +1 -0
- package/dist/voice/background_audio.d.cts +121 -0
- package/dist/voice/background_audio.d.ts +121 -0
- package/dist/voice/background_audio.d.ts.map +1 -0
- package/dist/voice/background_audio.js +342 -0
- package/dist/voice/background_audio.js.map +1 -0
- package/dist/voice/events.cjs +147 -0
- package/dist/voice/events.cjs.map +1 -0
- package/dist/voice/events.d.cts +127 -0
- package/dist/voice/events.d.ts +127 -0
- package/dist/voice/events.d.ts.map +1 -0
- package/dist/voice/events.js +112 -0
- package/dist/voice/events.js.map +1 -0
- package/dist/voice/generation.cjs +747 -0
- package/dist/voice/generation.cjs.map +1 -0
- package/dist/voice/generation.d.cts +116 -0
- package/dist/voice/generation.d.ts +116 -0
- package/dist/voice/generation.d.ts.map +1 -0
- package/dist/voice/generation.js +719 -0
- package/dist/voice/generation.js.map +1 -0
- package/dist/voice/generation_tools.test.cjs +236 -0
- package/dist/voice/generation_tools.test.cjs.map +1 -0
- package/dist/voice/generation_tools.test.js +235 -0
- package/dist/voice/generation_tools.test.js.map +1 -0
- package/dist/voice/index.cjs +49 -0
- package/dist/voice/index.cjs.map +1 -0
- package/dist/voice/index.d.cts +10 -0
- package/dist/voice/index.d.ts +10 -0
- package/dist/voice/index.d.ts.map +1 -0
- package/dist/voice/index.js +16 -0
- package/dist/voice/index.js.map +1 -0
- package/dist/voice/interruption_detection.test.cjs +114 -0
- package/dist/voice/interruption_detection.test.cjs.map +1 -0
- package/dist/voice/interruption_detection.test.js +113 -0
- package/dist/voice/interruption_detection.test.js.map +1 -0
- package/dist/voice/io.cjs +270 -0
- package/dist/voice/io.cjs.map +1 -0
- package/dist/voice/io.d.cts +126 -0
- package/dist/voice/io.d.ts +126 -0
- package/dist/voice/io.d.ts.map +1 -0
- package/dist/voice/io.js +242 -0
- package/dist/voice/io.js.map +1 -0
- package/dist/voice/recorder_io/index.cjs +23 -0
- package/dist/voice/recorder_io/index.cjs.map +1 -0
- package/dist/voice/recorder_io/index.d.cts +2 -0
- package/dist/voice/recorder_io/index.d.ts +2 -0
- package/dist/voice/recorder_io/index.d.ts.map +1 -0
- package/dist/voice/recorder_io/index.js +2 -0
- package/dist/voice/recorder_io/index.js.map +1 -0
- package/dist/voice/recorder_io/recorder_io.cjs +542 -0
- package/dist/voice/recorder_io/recorder_io.cjs.map +1 -0
- package/dist/voice/recorder_io/recorder_io.d.cts +100 -0
- package/dist/voice/recorder_io/recorder_io.d.ts +100 -0
- package/dist/voice/recorder_io/recorder_io.d.ts.map +1 -0
- package/dist/voice/recorder_io/recorder_io.js +508 -0
- package/dist/voice/recorder_io/recorder_io.js.map +1 -0
- package/dist/voice/report.cjs +75 -0
- package/dist/voice/report.cjs.map +1 -0
- package/dist/voice/report.d.cts +42 -0
- package/dist/voice/report.d.ts +42 -0
- package/dist/voice/report.d.ts.map +1 -0
- package/dist/voice/report.js +50 -0
- package/dist/voice/report.js.map +1 -0
- package/dist/voice/room_io/_input.cjs +133 -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 +114 -0
- package/dist/voice/room_io/_input.js.map +1 -0
- package/dist/voice/room_io/_output.cjs +359 -0
- package/dist/voice/room_io/_output.cjs.map +1 -0
- package/dist/voice/room_io/_output.d.cts +77 -0
- package/dist/voice/room_io/_output.d.ts +77 -0
- package/dist/voice/room_io/_output.d.ts.map +1 -0
- package/dist/voice/room_io/_output.js +343 -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 +373 -0
- package/dist/voice/room_io/room_io.cjs.map +1 -0
- package/dist/voice/room_io/room_io.d.cts +94 -0
- package/dist/voice/room_io/room_io.d.ts +94 -0
- package/dist/voice/room_io/room_io.d.ts.map +1 -0
- package/dist/voice/room_io/room_io.js +364 -0
- package/dist/voice/room_io/room_io.js.map +1 -0
- package/dist/voice/run_context.cjs +51 -0
- package/dist/voice/run_context.cjs.map +1 -0
- package/dist/voice/run_context.d.cts +22 -0
- package/dist/voice/run_context.d.ts +22 -0
- package/dist/voice/run_context.d.ts.map +1 -0
- package/dist/voice/run_context.js +27 -0
- package/dist/voice/run_context.js.map +1 -0
- package/dist/voice/speech_handle.cjs +228 -0
- package/dist/voice/speech_handle.cjs.map +1 -0
- package/dist/voice/speech_handle.d.cts +97 -0
- package/dist/voice/speech_handle.d.ts +97 -0
- package/dist/voice/speech_handle.d.ts.map +1 -0
- package/dist/voice/speech_handle.js +204 -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 +379 -0
- package/dist/voice/transcription/synchronizer.cjs.map +1 -0
- package/dist/voice/transcription/synchronizer.d.cts +87 -0
- package/dist/voice/transcription/synchronizer.d.ts +87 -0
- package/dist/voice/transcription/synchronizer.d.ts.map +1 -0
- package/dist/voice/transcription/synchronizer.js +354 -0
- package/dist/voice/transcription/synchronizer.js.map +1 -0
- package/dist/worker.cjs +680 -0
- package/dist/worker.cjs.map +1 -0
- package/dist/worker.d.cts +119 -0
- package/dist/worker.d.ts +119 -0
- package/dist/worker.d.ts.map +1 -0
- package/dist/worker.js +645 -0
- package/dist/worker.js.map +1 -0
- package/package.json +86 -0
- package/resources/NOTICE +2 -0
- package/resources/keyboard-typing.ogg +0 -0
- package/resources/keyboard-typing2.ogg +0 -0
- package/resources/office-ambience.ogg +0 -0
- package/src/_exceptions.ts +137 -0
- package/src/audio.ts +205 -0
- package/src/cli.ts +224 -0
- package/src/connection_pool.test.ts +346 -0
- package/src/connection_pool.ts +307 -0
- package/src/constants.ts +9 -0
- package/src/generator.ts +38 -0
- package/src/http_server.ts +64 -0
- package/src/index.ts +41 -0
- package/src/inference/api_protos.ts +82 -0
- package/src/inference/index.ts +32 -0
- package/src/inference/interruption/AdaptiveInterruptionDetector.ts +166 -0
- package/src/inference/interruption/InterruptionStream.ts +397 -0
- package/src/inference/interruption/defaults.ts +33 -0
- package/src/inference/interruption/errors.ts +0 -0
- package/src/inference/interruption/http_transport.ts +61 -0
- package/src/inference/interruption/index.ts +4 -0
- package/src/inference/interruption/interruption.ts +88 -0
- package/src/inference/llm.ts +532 -0
- package/src/inference/stt.ts +524 -0
- package/src/inference/tts.ts +574 -0
- package/src/inference/utils.test.ts +31 -0
- package/src/inference/utils.ts +81 -0
- package/src/inference_runner.ts +19 -0
- package/src/ipc/index.ts +5 -0
- package/src/ipc/inference_executor.ts +7 -0
- package/src/ipc/inference_proc_executor.ts +101 -0
- package/src/ipc/inference_proc_lazy_main.ts +115 -0
- package/src/ipc/job_executor.ts +23 -0
- package/src/ipc/job_proc_executor.ts +122 -0
- package/src/ipc/job_proc_lazy_main.ts +247 -0
- package/src/ipc/message.ts +52 -0
- package/src/ipc/proc_pool.ts +164 -0
- package/src/ipc/supervised_proc.test.ts +153 -0
- package/src/ipc/supervised_proc.ts +242 -0
- package/src/job.ts +461 -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__/zod-utils.test.ts.snap +559 -0
- package/src/llm/chat_context.test.ts +1057 -0
- package/src/llm/chat_context.ts +759 -0
- package/src/llm/fallback_adapter.test.ts +238 -0
- package/src/llm/fallback_adapter.ts +391 -0
- package/src/llm/index.ts +74 -0
- package/src/llm/llm.ts +303 -0
- package/src/llm/provider_format/google.test.ts +843 -0
- package/src/llm/provider_format/google.ts +134 -0
- package/src/llm/provider_format/index.ts +23 -0
- package/src/llm/provider_format/openai.test.ts +675 -0
- package/src/llm/provider_format/openai.ts +146 -0
- package/src/llm/provider_format/utils.ts +187 -0
- package/src/llm/realtime.ts +163 -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 +407 -0
- package/src/llm/tool_context.ts +343 -0
- package/src/llm/tool_context.type.test.ts +115 -0
- package/src/llm/utils.test.ts +670 -0
- package/src/llm/utils.ts +336 -0
- package/src/llm/zod-utils.test.ts +577 -0
- package/src/llm/zod-utils.ts +153 -0
- package/src/log.ts +83 -0
- package/src/metrics/base.ts +168 -0
- package/src/metrics/index.ts +15 -0
- package/src/metrics/usage_collector.ts +46 -0
- package/src/metrics/utils.ts +64 -0
- package/src/plugin.ts +46 -0
- package/src/stream/deferred_stream.test.ts +755 -0
- package/src/stream/deferred_stream.ts +127 -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 +166 -0
- package/src/stream/stream_channel.ts +44 -0
- package/src/stt/index.ts +15 -0
- package/src/stt/stream_adapter.ts +107 -0
- package/src/stt/stt.ts +374 -0
- package/src/telemetry/index.ts +28 -0
- package/src/telemetry/logging.ts +55 -0
- package/src/telemetry/otel_http_exporter.ts +195 -0
- package/src/telemetry/pino_otel_transport.ts +265 -0
- package/src/telemetry/trace_types.ts +95 -0
- package/src/telemetry/traces.ts +612 -0
- package/src/telemetry/utils.ts +61 -0
- package/src/tokenize/basic/basic.ts +83 -0
- package/src/tokenize/basic/hyphenator.ts +434 -0
- package/src/tokenize/basic/index.ts +11 -0
- package/src/tokenize/basic/paragraph.ts +43 -0
- package/src/tokenize/basic/sentence.ts +89 -0
- package/src/tokenize/basic/word.ts +27 -0
- package/src/tokenize/index.ts +16 -0
- package/src/tokenize/token_stream.ts +180 -0
- package/src/tokenize/tokenizer.test.ts +255 -0
- package/src/tokenize/tokenizer.ts +152 -0
- package/src/transcription.ts +307 -0
- package/src/tts/index.ts +12 -0
- package/src/tts/stream_adapter.ts +110 -0
- package/src/tts/tts.ts +598 -0
- package/src/types.ts +66 -0
- package/src/utils/ws_transport.test.ts +282 -0
- package/src/utils/ws_transport.ts +22 -0
- package/src/utils.test.ts +651 -0
- package/src/utils.ts +871 -0
- package/src/vad.ts +262 -0
- package/src/version.ts +5 -0
- package/src/voice/agent.test.ts +80 -0
- package/src/voice/agent.ts +418 -0
- package/src/voice/agent_activity.ts +2375 -0
- package/src/voice/agent_session.ts +866 -0
- package/src/voice/audio_recognition.ts +877 -0
- package/src/voice/avatar/datastream_io.ts +247 -0
- package/src/voice/avatar/index.ts +4 -0
- package/src/voice/background_audio.ts +491 -0
- package/src/voice/events.ts +261 -0
- package/src/voice/generation.ts +946 -0
- package/src/voice/generation_tools.test.ts +268 -0
- package/src/voice/index.ts +12 -0
- package/src/voice/interruption_detection.test.ts +151 -0
- package/src/voice/io.ts +347 -0
- package/src/voice/recorder_io/index.ts +4 -0
- package/src/voice/recorder_io/recorder_io.ts +690 -0
- package/src/voice/report.ts +100 -0
- package/src/voice/room_io/_input.ts +162 -0
- package/src/voice/room_io/_output.ts +439 -0
- package/src/voice/room_io/index.ts +5 -0
- package/src/voice/room_io/room_io.ts +518 -0
- package/src/voice/run_context.ts +34 -0
- package/src/voice/speech_handle.ts +250 -0
- package/src/voice/transcription/_utils.ts +25 -0
- package/src/voice/transcription/index.ts +4 -0
- package/src/voice/transcription/synchronizer.ts +477 -0
- package/src/worker.ts +798 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/stream/stream_channel.ts"],"sourcesContent":["// SPDX-FileCopyrightText: 2025 LiveKit, Inc.\n//\n// SPDX-License-Identifier: Apache-2.0\nimport type { ReadableStream } from 'node:stream/web';\nimport { IdentityTransform } from './identity_transform.js';\n\nexport interface StreamChannel<T, E extends Error = Error> {\n write(chunk: T): Promise<void>;\n close(): Promise<void>;\n stream(): ReadableStream<T>;\n abort(error: E): Promise<void>;\n readonly closed: boolean;\n}\n\nexport function createStreamChannel<T, E extends Error = Error>(): StreamChannel<T, E> {\n const transform = new IdentityTransform<T>();\n const writer = transform.writable.getWriter();\n let isClosed = false;\n\n return {\n write: (chunk: T) => writer.write(chunk),\n stream: () => transform.readable,\n abort: (error: E) => {\n return writer.abort(error);\n },\n close: async () => {\n try {\n const result = await writer.close();\n isClosed = true;\n return result;\n } catch (e) {\n if (e instanceof Error && e.name === 'TypeError') {\n // Ignore error if the stream is already closed\n isClosed = true;\n return;\n }\n throw e;\n }\n },\n get closed() {\n return isClosed;\n },\n };\n}\n"],"mappings":"AAIA,SAAS,yBAAyB;AAU3B,SAAS,sBAAuE;AACrF,QAAM,YAAY,IAAI,kBAAqB;AAC3C,QAAM,SAAS,UAAU,SAAS,UAAU;AAC5C,MAAI,WAAW;AAEf,SAAO;AAAA,IACL,OAAO,CAAC,UAAa,OAAO,MAAM,KAAK;AAAA,IACvC,QAAQ,MAAM,UAAU;AAAA,IACxB,OAAO,CAAC,UAAa;AACnB,aAAO,OAAO,MAAM,KAAK;AAAA,IAC3B;AAAA,IACA,OAAO,YAAY;AACjB,UAAI;AACF,cAAM,SAAS,MAAM,OAAO,MAAM;AAClC,mBAAW;AACX,eAAO;AAAA,MACT,SAAS,GAAG;AACV,YAAI,aAAa,SAAS,EAAE,SAAS,aAAa;AAEhD,qBAAW;AACX;AAAA,QACF;AACA,cAAM;AAAA,MACR;AAAA,IACF;AAAA,IACA,IAAI,SAAS;AACX,aAAO;AAAA,IACT;AAAA,EACF;AACF;","names":[]}
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var import_vitest = require("vitest");
|
|
3
|
+
var import_stream_channel = require("./stream_channel.cjs");
|
|
4
|
+
(0, import_vitest.describe)("StreamChannel", () => {
|
|
5
|
+
(0, import_vitest.it)("should write and read a single value", async () => {
|
|
6
|
+
const channel = (0, import_stream_channel.createStreamChannel)();
|
|
7
|
+
const reader = channel.stream().getReader();
|
|
8
|
+
await channel.write("test value");
|
|
9
|
+
await channel.close();
|
|
10
|
+
const result = await reader.read();
|
|
11
|
+
(0, import_vitest.expect)(result.done).toBe(false);
|
|
12
|
+
(0, import_vitest.expect)(result.value).toBe("test value");
|
|
13
|
+
const nextResult = await reader.read();
|
|
14
|
+
(0, import_vitest.expect)(nextResult.done).toBe(true);
|
|
15
|
+
});
|
|
16
|
+
(0, import_vitest.it)("should write and read multiple values in sequence", async () => {
|
|
17
|
+
const channel = (0, import_stream_channel.createStreamChannel)();
|
|
18
|
+
const reader = channel.stream().getReader();
|
|
19
|
+
const testValues = ["first", "second", "third"];
|
|
20
|
+
for (const value of testValues) {
|
|
21
|
+
await channel.write(value);
|
|
22
|
+
}
|
|
23
|
+
await channel.close();
|
|
24
|
+
const results = [];
|
|
25
|
+
let result = await reader.read();
|
|
26
|
+
while (!result.done) {
|
|
27
|
+
results.push(result.value);
|
|
28
|
+
result = await reader.read();
|
|
29
|
+
}
|
|
30
|
+
(0, import_vitest.expect)(results).toEqual(testValues);
|
|
31
|
+
});
|
|
32
|
+
(0, import_vitest.it)("should handle arrays", async () => {
|
|
33
|
+
const channel = (0, import_stream_channel.createStreamChannel)();
|
|
34
|
+
const reader = channel.stream().getReader();
|
|
35
|
+
const testArray = [1, 2, 3, 4, 5];
|
|
36
|
+
await channel.write(testArray);
|
|
37
|
+
await channel.close();
|
|
38
|
+
const result = await reader.read();
|
|
39
|
+
(0, import_vitest.expect)(result.value).toEqual(testArray);
|
|
40
|
+
(0, import_vitest.expect)(result.value).toBe(testArray);
|
|
41
|
+
});
|
|
42
|
+
(0, import_vitest.it)("should work with concurrent writing and reading", async () => {
|
|
43
|
+
const channel = (0, import_stream_channel.createStreamChannel)();
|
|
44
|
+
const reader = channel.stream().getReader();
|
|
45
|
+
const testData = ["chunk1", "chunk2", "chunk3"];
|
|
46
|
+
const results = [];
|
|
47
|
+
const readPromise = (async () => {
|
|
48
|
+
let result = await reader.read();
|
|
49
|
+
while (!result.done) {
|
|
50
|
+
results.push(result.value);
|
|
51
|
+
result = await reader.read();
|
|
52
|
+
}
|
|
53
|
+
})();
|
|
54
|
+
for (const chunk of testData) {
|
|
55
|
+
await channel.write(chunk);
|
|
56
|
+
}
|
|
57
|
+
await channel.close();
|
|
58
|
+
await readPromise;
|
|
59
|
+
(0, import_vitest.expect)(results).toEqual(testData);
|
|
60
|
+
});
|
|
61
|
+
(0, import_vitest.it)("should handle empty stream", async () => {
|
|
62
|
+
const channel = (0, import_stream_channel.createStreamChannel)();
|
|
63
|
+
const reader = channel.stream().getReader();
|
|
64
|
+
await channel.close();
|
|
65
|
+
const result = await reader.read();
|
|
66
|
+
(0, import_vitest.expect)(result.done).toBe(true);
|
|
67
|
+
});
|
|
68
|
+
(0, import_vitest.it)("should handle non-awaited sequential writes", async () => {
|
|
69
|
+
const channel = (0, import_stream_channel.createStreamChannel)();
|
|
70
|
+
const reader = channel.stream().getReader();
|
|
71
|
+
const testNumbers = Array.from({ length: 100 }, (_, i) => i);
|
|
72
|
+
for (const num of testNumbers) {
|
|
73
|
+
channel.write(num);
|
|
74
|
+
}
|
|
75
|
+
channel.close();
|
|
76
|
+
const results = [];
|
|
77
|
+
let result = await reader.read();
|
|
78
|
+
while (!result.done) {
|
|
79
|
+
results.push(result.value);
|
|
80
|
+
result = await reader.read();
|
|
81
|
+
}
|
|
82
|
+
(0, import_vitest.expect)(results).toEqual(testNumbers);
|
|
83
|
+
});
|
|
84
|
+
(0, import_vitest.it)("should handle double closing without error", async () => {
|
|
85
|
+
const channel = (0, import_stream_channel.createStreamChannel)();
|
|
86
|
+
const reader = channel.stream().getReader();
|
|
87
|
+
await channel.write("test");
|
|
88
|
+
await channel.close();
|
|
89
|
+
await (0, import_vitest.expect)(channel.close()).resolves.toBeUndefined();
|
|
90
|
+
const result = await reader.read();
|
|
91
|
+
(0, import_vitest.expect)(result.done).toBe(false);
|
|
92
|
+
(0, import_vitest.expect)(result.value).toBe("test");
|
|
93
|
+
const nextResult = await reader.read();
|
|
94
|
+
(0, import_vitest.expect)(nextResult.done).toBe(true);
|
|
95
|
+
});
|
|
96
|
+
(0, import_vitest.it)("should gracefully handle close while read is pending", async () => {
|
|
97
|
+
const channel = (0, import_stream_channel.createStreamChannel)();
|
|
98
|
+
const reader = channel.stream().getReader();
|
|
99
|
+
const readPromise = reader.read();
|
|
100
|
+
await channel.close();
|
|
101
|
+
const result = await readPromise;
|
|
102
|
+
(0, import_vitest.expect)(result.done).toBe(true);
|
|
103
|
+
(0, import_vitest.expect)(result.value).toBeUndefined();
|
|
104
|
+
});
|
|
105
|
+
(0, import_vitest.it)("should complete all pending reads when closed", async () => {
|
|
106
|
+
const channel = (0, import_stream_channel.createStreamChannel)();
|
|
107
|
+
const reader = channel.stream().getReader();
|
|
108
|
+
const read1 = reader.read();
|
|
109
|
+
const read2 = reader.read();
|
|
110
|
+
const read3 = reader.read();
|
|
111
|
+
await channel.write(42);
|
|
112
|
+
await channel.write(43);
|
|
113
|
+
await channel.close();
|
|
114
|
+
const result1 = await read1;
|
|
115
|
+
(0, import_vitest.expect)(result1.done).toBe(false);
|
|
116
|
+
(0, import_vitest.expect)(result1.value).toBe(42);
|
|
117
|
+
const result2 = await read2;
|
|
118
|
+
(0, import_vitest.expect)(result2.done).toBe(false);
|
|
119
|
+
(0, import_vitest.expect)(result2.value).toBe(43);
|
|
120
|
+
const result3 = await read3;
|
|
121
|
+
(0, import_vitest.expect)(result3.done).toBe(true);
|
|
122
|
+
});
|
|
123
|
+
});
|
|
124
|
+
//# sourceMappingURL=stream_channel.test.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/stream/stream_channel.test.ts"],"sourcesContent":["// SPDX-FileCopyrightText: 2025 LiveKit, Inc.\n//\n// SPDX-License-Identifier: Apache-2.0\nimport { describe, expect, it } from 'vitest';\nimport { createStreamChannel } from './stream_channel.js';\n\ndescribe('StreamChannel', () => {\n it('should write and read a single value', async () => {\n const channel = createStreamChannel<string>();\n const reader = channel.stream().getReader();\n\n await channel.write('test value');\n await channel.close();\n\n const result = await reader.read();\n expect(result.done).toBe(false);\n expect(result.value).toBe('test value');\n\n const nextResult = await reader.read();\n expect(nextResult.done).toBe(true);\n });\n\n it('should write and read multiple values in sequence', async () => {\n const channel = createStreamChannel<string>();\n const reader = channel.stream().getReader();\n\n const testValues = ['first', 'second', 'third'];\n\n for (const value of testValues) {\n await channel.write(value);\n }\n await channel.close();\n\n const results: string[] = [];\n let result = await reader.read();\n while (!result.done) {\n results.push(result.value);\n result = await reader.read();\n }\n\n expect(results).toEqual(testValues);\n });\n\n it('should handle arrays', async () => {\n const channel = createStreamChannel<number[]>();\n const reader = channel.stream().getReader();\n\n const testArray = [1, 2, 3, 4, 5];\n await channel.write(testArray);\n await channel.close();\n\n const result = await reader.read();\n expect(result.value).toEqual(testArray);\n expect(result.value).toBe(testArray);\n });\n\n it('should work with concurrent writing and reading', async () => {\n const channel = createStreamChannel<string>();\n const reader = channel.stream().getReader();\n\n const testData = ['chunk1', 'chunk2', 'chunk3'];\n const results: string[] = [];\n\n const readPromise = (async () => {\n let result = await reader.read();\n while (!result.done) {\n results.push(result.value);\n result = await reader.read();\n }\n })();\n\n for (const chunk of testData) {\n await channel.write(chunk);\n }\n await channel.close();\n\n await readPromise;\n expect(results).toEqual(testData);\n });\n\n it('should handle empty stream', async () => {\n const channel = createStreamChannel<string>();\n const reader = channel.stream().getReader();\n\n await channel.close();\n\n const result = await reader.read();\n expect(result.done).toBe(true);\n });\n\n it('should handle non-awaited sequential writes', async () => {\n const channel = createStreamChannel<number>();\n const reader = channel.stream().getReader();\n\n const testNumbers = Array.from({ length: 100 }, (_, i) => i);\n\n for (const num of testNumbers) {\n channel.write(num);\n }\n channel.close();\n\n const results: number[] = [];\n let result = await reader.read();\n while (!result.done) {\n results.push(result.value);\n result = await reader.read();\n }\n\n expect(results).toEqual(testNumbers);\n });\n\n it('should handle double closing without error', async () => {\n const channel = createStreamChannel<string>();\n const reader = channel.stream().getReader();\n\n await channel.write('test');\n\n await channel.close();\n // Close again - should not throw\n await expect(channel.close()).resolves.toBeUndefined();\n\n const result = await reader.read();\n expect(result.done).toBe(false);\n expect(result.value).toBe('test');\n\n const nextResult = await reader.read();\n expect(nextResult.done).toBe(true);\n });\n\n it('should gracefully handle close while read is pending', async () => {\n const channel = createStreamChannel<string>();\n const reader = channel.stream().getReader();\n\n const readPromise = reader.read();\n\n await channel.close();\n\n const result = await readPromise;\n expect(result.done).toBe(true);\n expect(result.value).toBeUndefined();\n });\n\n it('should complete all pending reads when closed', async () => {\n const channel = createStreamChannel<number>();\n const reader = channel.stream().getReader();\n\n const read1 = reader.read();\n const read2 = reader.read();\n const read3 = reader.read();\n\n await channel.write(42);\n await channel.write(43);\n await channel.close();\n\n const result1 = await read1;\n expect(result1.done).toBe(false);\n expect(result1.value).toBe(42);\n\n const result2 = await read2;\n expect(result2.done).toBe(false);\n expect(result2.value).toBe(43);\n\n const result3 = await read3;\n expect(result3.done).toBe(true);\n });\n});\n"],"mappings":"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","names":[]}
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
import { describe, expect, it } from "vitest";
|
|
2
|
+
import { createStreamChannel } from "./stream_channel.js";
|
|
3
|
+
describe("StreamChannel", () => {
|
|
4
|
+
it("should write and read a single value", async () => {
|
|
5
|
+
const channel = createStreamChannel();
|
|
6
|
+
const reader = channel.stream().getReader();
|
|
7
|
+
await channel.write("test value");
|
|
8
|
+
await channel.close();
|
|
9
|
+
const result = await reader.read();
|
|
10
|
+
expect(result.done).toBe(false);
|
|
11
|
+
expect(result.value).toBe("test value");
|
|
12
|
+
const nextResult = await reader.read();
|
|
13
|
+
expect(nextResult.done).toBe(true);
|
|
14
|
+
});
|
|
15
|
+
it("should write and read multiple values in sequence", async () => {
|
|
16
|
+
const channel = createStreamChannel();
|
|
17
|
+
const reader = channel.stream().getReader();
|
|
18
|
+
const testValues = ["first", "second", "third"];
|
|
19
|
+
for (const value of testValues) {
|
|
20
|
+
await channel.write(value);
|
|
21
|
+
}
|
|
22
|
+
await channel.close();
|
|
23
|
+
const results = [];
|
|
24
|
+
let result = await reader.read();
|
|
25
|
+
while (!result.done) {
|
|
26
|
+
results.push(result.value);
|
|
27
|
+
result = await reader.read();
|
|
28
|
+
}
|
|
29
|
+
expect(results).toEqual(testValues);
|
|
30
|
+
});
|
|
31
|
+
it("should handle arrays", async () => {
|
|
32
|
+
const channel = createStreamChannel();
|
|
33
|
+
const reader = channel.stream().getReader();
|
|
34
|
+
const testArray = [1, 2, 3, 4, 5];
|
|
35
|
+
await channel.write(testArray);
|
|
36
|
+
await channel.close();
|
|
37
|
+
const result = await reader.read();
|
|
38
|
+
expect(result.value).toEqual(testArray);
|
|
39
|
+
expect(result.value).toBe(testArray);
|
|
40
|
+
});
|
|
41
|
+
it("should work with concurrent writing and reading", async () => {
|
|
42
|
+
const channel = createStreamChannel();
|
|
43
|
+
const reader = channel.stream().getReader();
|
|
44
|
+
const testData = ["chunk1", "chunk2", "chunk3"];
|
|
45
|
+
const results = [];
|
|
46
|
+
const readPromise = (async () => {
|
|
47
|
+
let result = await reader.read();
|
|
48
|
+
while (!result.done) {
|
|
49
|
+
results.push(result.value);
|
|
50
|
+
result = await reader.read();
|
|
51
|
+
}
|
|
52
|
+
})();
|
|
53
|
+
for (const chunk of testData) {
|
|
54
|
+
await channel.write(chunk);
|
|
55
|
+
}
|
|
56
|
+
await channel.close();
|
|
57
|
+
await readPromise;
|
|
58
|
+
expect(results).toEqual(testData);
|
|
59
|
+
});
|
|
60
|
+
it("should handle empty stream", async () => {
|
|
61
|
+
const channel = createStreamChannel();
|
|
62
|
+
const reader = channel.stream().getReader();
|
|
63
|
+
await channel.close();
|
|
64
|
+
const result = await reader.read();
|
|
65
|
+
expect(result.done).toBe(true);
|
|
66
|
+
});
|
|
67
|
+
it("should handle non-awaited sequential writes", async () => {
|
|
68
|
+
const channel = createStreamChannel();
|
|
69
|
+
const reader = channel.stream().getReader();
|
|
70
|
+
const testNumbers = Array.from({ length: 100 }, (_, i) => i);
|
|
71
|
+
for (const num of testNumbers) {
|
|
72
|
+
channel.write(num);
|
|
73
|
+
}
|
|
74
|
+
channel.close();
|
|
75
|
+
const results = [];
|
|
76
|
+
let result = await reader.read();
|
|
77
|
+
while (!result.done) {
|
|
78
|
+
results.push(result.value);
|
|
79
|
+
result = await reader.read();
|
|
80
|
+
}
|
|
81
|
+
expect(results).toEqual(testNumbers);
|
|
82
|
+
});
|
|
83
|
+
it("should handle double closing without error", async () => {
|
|
84
|
+
const channel = createStreamChannel();
|
|
85
|
+
const reader = channel.stream().getReader();
|
|
86
|
+
await channel.write("test");
|
|
87
|
+
await channel.close();
|
|
88
|
+
await expect(channel.close()).resolves.toBeUndefined();
|
|
89
|
+
const result = await reader.read();
|
|
90
|
+
expect(result.done).toBe(false);
|
|
91
|
+
expect(result.value).toBe("test");
|
|
92
|
+
const nextResult = await reader.read();
|
|
93
|
+
expect(nextResult.done).toBe(true);
|
|
94
|
+
});
|
|
95
|
+
it("should gracefully handle close while read is pending", async () => {
|
|
96
|
+
const channel = createStreamChannel();
|
|
97
|
+
const reader = channel.stream().getReader();
|
|
98
|
+
const readPromise = reader.read();
|
|
99
|
+
await channel.close();
|
|
100
|
+
const result = await readPromise;
|
|
101
|
+
expect(result.done).toBe(true);
|
|
102
|
+
expect(result.value).toBeUndefined();
|
|
103
|
+
});
|
|
104
|
+
it("should complete all pending reads when closed", async () => {
|
|
105
|
+
const channel = createStreamChannel();
|
|
106
|
+
const reader = channel.stream().getReader();
|
|
107
|
+
const read1 = reader.read();
|
|
108
|
+
const read2 = reader.read();
|
|
109
|
+
const read3 = reader.read();
|
|
110
|
+
await channel.write(42);
|
|
111
|
+
await channel.write(43);
|
|
112
|
+
await channel.close();
|
|
113
|
+
const result1 = await read1;
|
|
114
|
+
expect(result1.done).toBe(false);
|
|
115
|
+
expect(result1.value).toBe(42);
|
|
116
|
+
const result2 = await read2;
|
|
117
|
+
expect(result2.done).toBe(false);
|
|
118
|
+
expect(result2.value).toBe(43);
|
|
119
|
+
const result3 = await read3;
|
|
120
|
+
expect(result3.done).toBe(true);
|
|
121
|
+
});
|
|
122
|
+
});
|
|
123
|
+
//# sourceMappingURL=stream_channel.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/stream/stream_channel.test.ts"],"sourcesContent":["// SPDX-FileCopyrightText: 2025 LiveKit, Inc.\n//\n// SPDX-License-Identifier: Apache-2.0\nimport { describe, expect, it } from 'vitest';\nimport { createStreamChannel } from './stream_channel.js';\n\ndescribe('StreamChannel', () => {\n it('should write and read a single value', async () => {\n const channel = createStreamChannel<string>();\n const reader = channel.stream().getReader();\n\n await channel.write('test value');\n await channel.close();\n\n const result = await reader.read();\n expect(result.done).toBe(false);\n expect(result.value).toBe('test value');\n\n const nextResult = await reader.read();\n expect(nextResult.done).toBe(true);\n });\n\n it('should write and read multiple values in sequence', async () => {\n const channel = createStreamChannel<string>();\n const reader = channel.stream().getReader();\n\n const testValues = ['first', 'second', 'third'];\n\n for (const value of testValues) {\n await channel.write(value);\n }\n await channel.close();\n\n const results: string[] = [];\n let result = await reader.read();\n while (!result.done) {\n results.push(result.value);\n result = await reader.read();\n }\n\n expect(results).toEqual(testValues);\n });\n\n it('should handle arrays', async () => {\n const channel = createStreamChannel<number[]>();\n const reader = channel.stream().getReader();\n\n const testArray = [1, 2, 3, 4, 5];\n await channel.write(testArray);\n await channel.close();\n\n const result = await reader.read();\n expect(result.value).toEqual(testArray);\n expect(result.value).toBe(testArray);\n });\n\n it('should work with concurrent writing and reading', async () => {\n const channel = createStreamChannel<string>();\n const reader = channel.stream().getReader();\n\n const testData = ['chunk1', 'chunk2', 'chunk3'];\n const results: string[] = [];\n\n const readPromise = (async () => {\n let result = await reader.read();\n while (!result.done) {\n results.push(result.value);\n result = await reader.read();\n }\n })();\n\n for (const chunk of testData) {\n await channel.write(chunk);\n }\n await channel.close();\n\n await readPromise;\n expect(results).toEqual(testData);\n });\n\n it('should handle empty stream', async () => {\n const channel = createStreamChannel<string>();\n const reader = channel.stream().getReader();\n\n await channel.close();\n\n const result = await reader.read();\n expect(result.done).toBe(true);\n });\n\n it('should handle non-awaited sequential writes', async () => {\n const channel = createStreamChannel<number>();\n const reader = channel.stream().getReader();\n\n const testNumbers = Array.from({ length: 100 }, (_, i) => i);\n\n for (const num of testNumbers) {\n channel.write(num);\n }\n channel.close();\n\n const results: number[] = [];\n let result = await reader.read();\n while (!result.done) {\n results.push(result.value);\n result = await reader.read();\n }\n\n expect(results).toEqual(testNumbers);\n });\n\n it('should handle double closing without error', async () => {\n const channel = createStreamChannel<string>();\n const reader = channel.stream().getReader();\n\n await channel.write('test');\n\n await channel.close();\n // Close again - should not throw\n await expect(channel.close()).resolves.toBeUndefined();\n\n const result = await reader.read();\n expect(result.done).toBe(false);\n expect(result.value).toBe('test');\n\n const nextResult = await reader.read();\n expect(nextResult.done).toBe(true);\n });\n\n it('should gracefully handle close while read is pending', async () => {\n const channel = createStreamChannel<string>();\n const reader = channel.stream().getReader();\n\n const readPromise = reader.read();\n\n await channel.close();\n\n const result = await readPromise;\n expect(result.done).toBe(true);\n expect(result.value).toBeUndefined();\n });\n\n it('should complete all pending reads when closed', async () => {\n const channel = createStreamChannel<number>();\n const reader = channel.stream().getReader();\n\n const read1 = reader.read();\n const read2 = reader.read();\n const read3 = reader.read();\n\n await channel.write(42);\n await channel.write(43);\n await channel.close();\n\n const result1 = await read1;\n expect(result1.done).toBe(false);\n expect(result1.value).toBe(42);\n\n const result2 = await read2;\n expect(result2.done).toBe(false);\n expect(result2.value).toBe(43);\n\n const result3 = await read3;\n expect(result3.done).toBe(true);\n });\n});\n"],"mappings":"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","names":[]}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var stt_exports = {};
|
|
20
|
+
__export(stt_exports, {
|
|
21
|
+
STT: () => import_stt.STT,
|
|
22
|
+
SpeechEventType: () => import_stt.SpeechEventType,
|
|
23
|
+
SpeechStream: () => import_stt.SpeechStream,
|
|
24
|
+
StreamAdapter: () => import_stream_adapter.StreamAdapter,
|
|
25
|
+
StreamAdapterWrapper: () => import_stream_adapter.StreamAdapterWrapper
|
|
26
|
+
});
|
|
27
|
+
module.exports = __toCommonJS(stt_exports);
|
|
28
|
+
var import_stt = require("./stt.cjs");
|
|
29
|
+
var import_stream_adapter = require("./stream_adapter.cjs");
|
|
30
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
31
|
+
0 && (module.exports = {
|
|
32
|
+
STT,
|
|
33
|
+
SpeechEventType,
|
|
34
|
+
SpeechStream,
|
|
35
|
+
StreamAdapter,
|
|
36
|
+
StreamAdapterWrapper
|
|
37
|
+
});
|
|
38
|
+
//# sourceMappingURL=index.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/stt/index.ts"],"sourcesContent":["// SPDX-FileCopyrightText: 2024 LiveKit, Inc.\n//\n// SPDX-License-Identifier: Apache-2.0\n\nexport {\n type SpeechEvent,\n type SpeechData,\n type STTCapabilities,\n type RecognitionUsage,\n type STTCallbacks,\n SpeechEventType,\n STT,\n SpeechStream,\n} from './stt.js';\nexport { StreamAdapter, StreamAdapterWrapper } from './stream_adapter.js';\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAIA,iBASO;AACP,4BAAoD;","names":[]}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export { type SpeechEvent, type SpeechData, type STTCapabilities, type RecognitionUsage, type STTCallbacks, SpeechEventType, STT, SpeechStream, } from './stt.js';
|
|
2
|
+
export { StreamAdapter, StreamAdapterWrapper } from './stream_adapter.js';
|
|
3
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export { type SpeechEvent, type SpeechData, type STTCapabilities, type RecognitionUsage, type STTCallbacks, SpeechEventType, STT, SpeechStream, } from './stt.js';
|
|
2
|
+
export { StreamAdapter, StreamAdapterWrapper } from './stream_adapter.js';
|
|
3
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/stt/index.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,KAAK,WAAW,EAChB,KAAK,UAAU,EACf,KAAK,eAAe,EACpB,KAAK,gBAAgB,EACrB,KAAK,YAAY,EACjB,eAAe,EACf,GAAG,EACH,YAAY,GACb,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import {
|
|
2
|
+
SpeechEventType,
|
|
3
|
+
STT,
|
|
4
|
+
SpeechStream
|
|
5
|
+
} from "./stt.js";
|
|
6
|
+
import { StreamAdapter, StreamAdapterWrapper } from "./stream_adapter.js";
|
|
7
|
+
export {
|
|
8
|
+
STT,
|
|
9
|
+
SpeechEventType,
|
|
10
|
+
SpeechStream,
|
|
11
|
+
StreamAdapter,
|
|
12
|
+
StreamAdapterWrapper
|
|
13
|
+
};
|
|
14
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/stt/index.ts"],"sourcesContent":["// SPDX-FileCopyrightText: 2024 LiveKit, Inc.\n//\n// SPDX-License-Identifier: Apache-2.0\n\nexport {\n type SpeechEvent,\n type SpeechData,\n type STTCapabilities,\n type RecognitionUsage,\n type STTCallbacks,\n SpeechEventType,\n STT,\n SpeechStream,\n} from './stt.js';\nexport { StreamAdapter, StreamAdapterWrapper } from './stream_adapter.js';\n"],"mappings":"AAIA;AAAA,EAME;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP,SAAS,eAAe,4BAA4B;","names":[]}
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var stream_adapter_exports = {};
|
|
20
|
+
__export(stream_adapter_exports, {
|
|
21
|
+
StreamAdapter: () => StreamAdapter,
|
|
22
|
+
StreamAdapterWrapper: () => StreamAdapterWrapper
|
|
23
|
+
});
|
|
24
|
+
module.exports = __toCommonJS(stream_adapter_exports);
|
|
25
|
+
var import_log = require("../log.cjs");
|
|
26
|
+
var import_vad = require("../vad.cjs");
|
|
27
|
+
var import_stt = require("./stt.cjs");
|
|
28
|
+
class StreamAdapter extends import_stt.STT {
|
|
29
|
+
#stt;
|
|
30
|
+
#vad;
|
|
31
|
+
label;
|
|
32
|
+
constructor(stt, vad) {
|
|
33
|
+
super({ streaming: true, interimResults: false });
|
|
34
|
+
this.#stt = stt;
|
|
35
|
+
this.#vad = vad;
|
|
36
|
+
this.label = `stt.StreamAdapter<${this.#stt.label}>`;
|
|
37
|
+
this.#stt.on("metrics_collected", (metrics) => {
|
|
38
|
+
this.emit("metrics_collected", metrics);
|
|
39
|
+
});
|
|
40
|
+
this.#stt.on("error", (error) => {
|
|
41
|
+
this.emit("error", error);
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
_recognize(frame, abortSignal) {
|
|
45
|
+
return this.#stt.recognize(frame, abortSignal);
|
|
46
|
+
}
|
|
47
|
+
stream(options) {
|
|
48
|
+
return new StreamAdapterWrapper(this.#stt, this.#vad, options == null ? void 0 : options.connOptions);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
class StreamAdapterWrapper extends import_stt.SpeechStream {
|
|
52
|
+
#stt;
|
|
53
|
+
#vadStream;
|
|
54
|
+
label;
|
|
55
|
+
constructor(stt, vad, connOptions) {
|
|
56
|
+
super(stt, void 0, connOptions);
|
|
57
|
+
this.#stt = stt;
|
|
58
|
+
this.#vadStream = vad.stream();
|
|
59
|
+
this.label = `stt.StreamAdapterWrapper<${this.#stt.label}>`;
|
|
60
|
+
}
|
|
61
|
+
close() {
|
|
62
|
+
super.close();
|
|
63
|
+
this.#vadStream.close();
|
|
64
|
+
}
|
|
65
|
+
async monitorMetrics() {
|
|
66
|
+
return;
|
|
67
|
+
}
|
|
68
|
+
async run() {
|
|
69
|
+
const forwardInput = async () => {
|
|
70
|
+
for await (const input of this.input) {
|
|
71
|
+
if (input === import_stt.SpeechStream.FLUSH_SENTINEL) {
|
|
72
|
+
this.#vadStream.flush();
|
|
73
|
+
} else {
|
|
74
|
+
this.#vadStream.pushFrame(input);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
this.#vadStream.endInput();
|
|
78
|
+
};
|
|
79
|
+
const recognize = async () => {
|
|
80
|
+
for await (const ev of this.#vadStream) {
|
|
81
|
+
switch (ev.type) {
|
|
82
|
+
case import_vad.VADEventType.START_OF_SPEECH:
|
|
83
|
+
this.output.put({ type: import_stt.SpeechEventType.START_OF_SPEECH });
|
|
84
|
+
break;
|
|
85
|
+
case import_vad.VADEventType.END_OF_SPEECH:
|
|
86
|
+
this.output.put({ type: import_stt.SpeechEventType.END_OF_SPEECH });
|
|
87
|
+
try {
|
|
88
|
+
const event = await this.#stt.recognize(ev.frames, this.abortSignal);
|
|
89
|
+
if (!event.alternatives[0].text) {
|
|
90
|
+
continue;
|
|
91
|
+
}
|
|
92
|
+
this.output.put(event);
|
|
93
|
+
break;
|
|
94
|
+
} catch (error) {
|
|
95
|
+
let logger = (0, import_log.log)();
|
|
96
|
+
if (error instanceof Error) {
|
|
97
|
+
logger = logger.child({ error: error.message });
|
|
98
|
+
} else {
|
|
99
|
+
logger = logger.child({ error });
|
|
100
|
+
}
|
|
101
|
+
logger.error(`${this.label}: provider recognize task failed`);
|
|
102
|
+
continue;
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
};
|
|
107
|
+
await Promise.all([forwardInput(), recognize()]);
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
111
|
+
0 && (module.exports = {
|
|
112
|
+
StreamAdapter,
|
|
113
|
+
StreamAdapterWrapper
|
|
114
|
+
});
|
|
115
|
+
//# sourceMappingURL=stream_adapter.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/stt/stream_adapter.ts"],"sourcesContent":["// SPDX-FileCopyrightText: 2024 LiveKit, Inc.\n//\n// SPDX-License-Identifier: Apache-2.0\nimport type { AudioFrame } from '@livekit/rtc-node';\nimport { log } from '../log.js';\nimport type { APIConnectOptions } from '../types.js';\nimport type { VAD, VADStream } from '../vad.js';\nimport { VADEventType } from '../vad.js';\nimport type { SpeechEvent } from './stt.js';\nimport { STT, SpeechEventType, SpeechStream } from './stt.js';\n\nexport class StreamAdapter extends STT {\n #stt: STT;\n #vad: VAD;\n label: string;\n\n constructor(stt: STT, vad: VAD) {\n super({ streaming: true, interimResults: false });\n this.#stt = stt;\n this.#vad = vad;\n this.label = `stt.StreamAdapter<${this.#stt.label}>`;\n\n this.#stt.on('metrics_collected', (metrics) => {\n this.emit('metrics_collected', metrics);\n });\n\n this.#stt.on('error', (error) => {\n this.emit('error', error);\n });\n }\n\n _recognize(frame: AudioFrame, abortSignal?: AbortSignal): Promise<SpeechEvent> {\n return this.#stt.recognize(frame, abortSignal);\n }\n\n stream(options?: { connOptions?: APIConnectOptions }): StreamAdapterWrapper {\n return new StreamAdapterWrapper(this.#stt, this.#vad, options?.connOptions);\n }\n}\n\nexport class StreamAdapterWrapper extends SpeechStream {\n #stt: STT;\n #vadStream: VADStream;\n label: string;\n\n constructor(stt: STT, vad: VAD, connOptions?: APIConnectOptions) {\n super(stt, undefined, connOptions);\n this.#stt = stt;\n this.#vadStream = vad.stream();\n this.label = `stt.StreamAdapterWrapper<${this.#stt.label}>`;\n }\n\n close() {\n super.close();\n this.#vadStream.close();\n }\n\n async monitorMetrics() {\n return; // do nothing\n }\n\n protected async run() {\n const forwardInput = async () => {\n for await (const input of this.input) {\n if (input === SpeechStream.FLUSH_SENTINEL) {\n this.#vadStream.flush();\n } else {\n this.#vadStream.pushFrame(input);\n }\n }\n this.#vadStream.endInput();\n };\n\n const recognize = async () => {\n for await (const ev of this.#vadStream) {\n switch (ev.type) {\n case VADEventType.START_OF_SPEECH:\n this.output.put({ type: SpeechEventType.START_OF_SPEECH });\n break;\n case VADEventType.END_OF_SPEECH:\n this.output.put({ type: SpeechEventType.END_OF_SPEECH });\n\n try {\n const event = await this.#stt.recognize(ev.frames, this.abortSignal);\n if (!event.alternatives![0].text) {\n continue;\n }\n\n this.output.put(event);\n break;\n } catch (error) {\n let logger = log();\n if (error instanceof Error) {\n logger = logger.child({ error: error.message });\n } else {\n logger = logger.child({ error });\n }\n logger.error(`${this.label}: provider recognize task failed`);\n continue;\n }\n }\n }\n };\n\n await Promise.all([forwardInput(), recognize()]);\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAIA,iBAAoB;AAGpB,iBAA6B;AAE7B,iBAAmD;AAE5C,MAAM,sBAAsB,eAAI;AAAA,EACrC;AAAA,EACA;AAAA,EACA;AAAA,EAEA,YAAY,KAAU,KAAU;AAC9B,UAAM,EAAE,WAAW,MAAM,gBAAgB,MAAM,CAAC;AAChD,SAAK,OAAO;AACZ,SAAK,OAAO;AACZ,SAAK,QAAQ,qBAAqB,KAAK,KAAK,KAAK;AAEjD,SAAK,KAAK,GAAG,qBAAqB,CAAC,YAAY;AAC7C,WAAK,KAAK,qBAAqB,OAAO;AAAA,IACxC,CAAC;AAED,SAAK,KAAK,GAAG,SAAS,CAAC,UAAU;AAC/B,WAAK,KAAK,SAAS,KAAK;AAAA,IAC1B,CAAC;AAAA,EACH;AAAA,EAEA,WAAW,OAAmB,aAAiD;AAC7E,WAAO,KAAK,KAAK,UAAU,OAAO,WAAW;AAAA,EAC/C;AAAA,EAEA,OAAO,SAAqE;AAC1E,WAAO,IAAI,qBAAqB,KAAK,MAAM,KAAK,MAAM,mCAAS,WAAW;AAAA,EAC5E;AACF;AAEO,MAAM,6BAA6B,wBAAa;AAAA,EACrD;AAAA,EACA;AAAA,EACA;AAAA,EAEA,YAAY,KAAU,KAAU,aAAiC;AAC/D,UAAM,KAAK,QAAW,WAAW;AACjC,SAAK,OAAO;AACZ,SAAK,aAAa,IAAI,OAAO;AAC7B,SAAK,QAAQ,4BAA4B,KAAK,KAAK,KAAK;AAAA,EAC1D;AAAA,EAEA,QAAQ;AACN,UAAM,MAAM;AACZ,SAAK,WAAW,MAAM;AAAA,EACxB;AAAA,EAEA,MAAM,iBAAiB;AACrB;AAAA,EACF;AAAA,EAEA,MAAgB,MAAM;AACpB,UAAM,eAAe,YAAY;AAC/B,uBAAiB,SAAS,KAAK,OAAO;AACpC,YAAI,UAAU,wBAAa,gBAAgB;AACzC,eAAK,WAAW,MAAM;AAAA,QACxB,OAAO;AACL,eAAK,WAAW,UAAU,KAAK;AAAA,QACjC;AAAA,MACF;AACA,WAAK,WAAW,SAAS;AAAA,IAC3B;AAEA,UAAM,YAAY,YAAY;AAC5B,uBAAiB,MAAM,KAAK,YAAY;AACtC,gBAAQ,GAAG,MAAM;AAAA,UACf,KAAK,wBAAa;AAChB,iBAAK,OAAO,IAAI,EAAE,MAAM,2BAAgB,gBAAgB,CAAC;AACzD;AAAA,UACF,KAAK,wBAAa;AAChB,iBAAK,OAAO,IAAI,EAAE,MAAM,2BAAgB,cAAc,CAAC;AAEvD,gBAAI;AACF,oBAAM,QAAQ,MAAM,KAAK,KAAK,UAAU,GAAG,QAAQ,KAAK,WAAW;AACnE,kBAAI,CAAC,MAAM,aAAc,CAAC,EAAE,MAAM;AAChC;AAAA,cACF;AAEA,mBAAK,OAAO,IAAI,KAAK;AACrB;AAAA,YACF,SAAS,OAAO;AACd,kBAAI,aAAS,gBAAI;AACjB,kBAAI,iBAAiB,OAAO;AAC1B,yBAAS,OAAO,MAAM,EAAE,OAAO,MAAM,QAAQ,CAAC;AAAA,cAChD,OAAO;AACL,yBAAS,OAAO,MAAM,EAAE,MAAM,CAAC;AAAA,cACjC;AACA,qBAAO,MAAM,GAAG,KAAK,KAAK,kCAAkC;AAC5D;AAAA,YACF;AAAA,QACJ;AAAA,MACF;AAAA,IACF;AAEA,UAAM,QAAQ,IAAI,CAAC,aAAa,GAAG,UAAU,CAAC,CAAC;AAAA,EACjD;AACF;","names":[]}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { AudioFrame } from '@livekit/rtc-node';
|
|
2
|
+
import type { APIConnectOptions } from '../types.js';
|
|
3
|
+
import type { VAD } from '../vad.js';
|
|
4
|
+
import type { SpeechEvent } from './stt.js';
|
|
5
|
+
import { STT, SpeechStream } from './stt.js';
|
|
6
|
+
export declare class StreamAdapter extends STT {
|
|
7
|
+
#private;
|
|
8
|
+
label: string;
|
|
9
|
+
constructor(stt: STT, vad: VAD);
|
|
10
|
+
_recognize(frame: AudioFrame, abortSignal?: AbortSignal): Promise<SpeechEvent>;
|
|
11
|
+
stream(options?: {
|
|
12
|
+
connOptions?: APIConnectOptions;
|
|
13
|
+
}): StreamAdapterWrapper;
|
|
14
|
+
}
|
|
15
|
+
export declare class StreamAdapterWrapper extends SpeechStream {
|
|
16
|
+
#private;
|
|
17
|
+
label: string;
|
|
18
|
+
constructor(stt: STT, vad: VAD, connOptions?: APIConnectOptions);
|
|
19
|
+
close(): void;
|
|
20
|
+
monitorMetrics(): Promise<void>;
|
|
21
|
+
protected run(): Promise<void>;
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=stream_adapter.d.ts.map
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { AudioFrame } from '@livekit/rtc-node';
|
|
2
|
+
import type { APIConnectOptions } from '../types.js';
|
|
3
|
+
import type { VAD } from '../vad.js';
|
|
4
|
+
import type { SpeechEvent } from './stt.js';
|
|
5
|
+
import { STT, SpeechStream } from './stt.js';
|
|
6
|
+
export declare class StreamAdapter extends STT {
|
|
7
|
+
#private;
|
|
8
|
+
label: string;
|
|
9
|
+
constructor(stt: STT, vad: VAD);
|
|
10
|
+
_recognize(frame: AudioFrame, abortSignal?: AbortSignal): Promise<SpeechEvent>;
|
|
11
|
+
stream(options?: {
|
|
12
|
+
connOptions?: APIConnectOptions;
|
|
13
|
+
}): StreamAdapterWrapper;
|
|
14
|
+
}
|
|
15
|
+
export declare class StreamAdapterWrapper extends SpeechStream {
|
|
16
|
+
#private;
|
|
17
|
+
label: string;
|
|
18
|
+
constructor(stt: STT, vad: VAD, connOptions?: APIConnectOptions);
|
|
19
|
+
close(): void;
|
|
20
|
+
monitorMetrics(): Promise<void>;
|
|
21
|
+
protected run(): Promise<void>;
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=stream_adapter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stream_adapter.d.ts","sourceRoot":"","sources":["../../src/stt/stream_adapter.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAEpD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,KAAK,EAAE,GAAG,EAAa,MAAM,WAAW,CAAC;AAEhD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAC5C,OAAO,EAAE,GAAG,EAAmB,YAAY,EAAE,MAAM,UAAU,CAAC;AAE9D,qBAAa,aAAc,SAAQ,GAAG;;IAGpC,KAAK,EAAE,MAAM,CAAC;gBAEF,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IAe9B,UAAU,CAAC,KAAK,EAAE,UAAU,EAAE,WAAW,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;IAI9E,MAAM,CAAC,OAAO,CAAC,EAAE;QAAE,WAAW,CAAC,EAAE,iBAAiB,CAAA;KAAE,GAAG,oBAAoB;CAG5E;AAED,qBAAa,oBAAqB,SAAQ,YAAY;;IAGpD,KAAK,EAAE,MAAM,CAAC;gBAEF,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,WAAW,CAAC,EAAE,iBAAiB;IAO/D,KAAK;IAKC,cAAc;cAIJ,GAAG;CA6CpB"}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
import { log } from "../log.js";
|
|
2
|
+
import { VADEventType } from "../vad.js";
|
|
3
|
+
import { STT, SpeechEventType, SpeechStream } from "./stt.js";
|
|
4
|
+
class StreamAdapter extends STT {
|
|
5
|
+
#stt;
|
|
6
|
+
#vad;
|
|
7
|
+
label;
|
|
8
|
+
constructor(stt, vad) {
|
|
9
|
+
super({ streaming: true, interimResults: false });
|
|
10
|
+
this.#stt = stt;
|
|
11
|
+
this.#vad = vad;
|
|
12
|
+
this.label = `stt.StreamAdapter<${this.#stt.label}>`;
|
|
13
|
+
this.#stt.on("metrics_collected", (metrics) => {
|
|
14
|
+
this.emit("metrics_collected", metrics);
|
|
15
|
+
});
|
|
16
|
+
this.#stt.on("error", (error) => {
|
|
17
|
+
this.emit("error", error);
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
_recognize(frame, abortSignal) {
|
|
21
|
+
return this.#stt.recognize(frame, abortSignal);
|
|
22
|
+
}
|
|
23
|
+
stream(options) {
|
|
24
|
+
return new StreamAdapterWrapper(this.#stt, this.#vad, options == null ? void 0 : options.connOptions);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
class StreamAdapterWrapper extends SpeechStream {
|
|
28
|
+
#stt;
|
|
29
|
+
#vadStream;
|
|
30
|
+
label;
|
|
31
|
+
constructor(stt, vad, connOptions) {
|
|
32
|
+
super(stt, void 0, connOptions);
|
|
33
|
+
this.#stt = stt;
|
|
34
|
+
this.#vadStream = vad.stream();
|
|
35
|
+
this.label = `stt.StreamAdapterWrapper<${this.#stt.label}>`;
|
|
36
|
+
}
|
|
37
|
+
close() {
|
|
38
|
+
super.close();
|
|
39
|
+
this.#vadStream.close();
|
|
40
|
+
}
|
|
41
|
+
async monitorMetrics() {
|
|
42
|
+
return;
|
|
43
|
+
}
|
|
44
|
+
async run() {
|
|
45
|
+
const forwardInput = async () => {
|
|
46
|
+
for await (const input of this.input) {
|
|
47
|
+
if (input === SpeechStream.FLUSH_SENTINEL) {
|
|
48
|
+
this.#vadStream.flush();
|
|
49
|
+
} else {
|
|
50
|
+
this.#vadStream.pushFrame(input);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
this.#vadStream.endInput();
|
|
54
|
+
};
|
|
55
|
+
const recognize = async () => {
|
|
56
|
+
for await (const ev of this.#vadStream) {
|
|
57
|
+
switch (ev.type) {
|
|
58
|
+
case VADEventType.START_OF_SPEECH:
|
|
59
|
+
this.output.put({ type: SpeechEventType.START_OF_SPEECH });
|
|
60
|
+
break;
|
|
61
|
+
case VADEventType.END_OF_SPEECH:
|
|
62
|
+
this.output.put({ type: SpeechEventType.END_OF_SPEECH });
|
|
63
|
+
try {
|
|
64
|
+
const event = await this.#stt.recognize(ev.frames, this.abortSignal);
|
|
65
|
+
if (!event.alternatives[0].text) {
|
|
66
|
+
continue;
|
|
67
|
+
}
|
|
68
|
+
this.output.put(event);
|
|
69
|
+
break;
|
|
70
|
+
} catch (error) {
|
|
71
|
+
let logger = log();
|
|
72
|
+
if (error instanceof Error) {
|
|
73
|
+
logger = logger.child({ error: error.message });
|
|
74
|
+
} else {
|
|
75
|
+
logger = logger.child({ error });
|
|
76
|
+
}
|
|
77
|
+
logger.error(`${this.label}: provider recognize task failed`);
|
|
78
|
+
continue;
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
};
|
|
83
|
+
await Promise.all([forwardInput(), recognize()]);
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
export {
|
|
87
|
+
StreamAdapter,
|
|
88
|
+
StreamAdapterWrapper
|
|
89
|
+
};
|
|
90
|
+
//# sourceMappingURL=stream_adapter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/stt/stream_adapter.ts"],"sourcesContent":["// SPDX-FileCopyrightText: 2024 LiveKit, Inc.\n//\n// SPDX-License-Identifier: Apache-2.0\nimport type { AudioFrame } from '@livekit/rtc-node';\nimport { log } from '../log.js';\nimport type { APIConnectOptions } from '../types.js';\nimport type { VAD, VADStream } from '../vad.js';\nimport { VADEventType } from '../vad.js';\nimport type { SpeechEvent } from './stt.js';\nimport { STT, SpeechEventType, SpeechStream } from './stt.js';\n\nexport class StreamAdapter extends STT {\n #stt: STT;\n #vad: VAD;\n label: string;\n\n constructor(stt: STT, vad: VAD) {\n super({ streaming: true, interimResults: false });\n this.#stt = stt;\n this.#vad = vad;\n this.label = `stt.StreamAdapter<${this.#stt.label}>`;\n\n this.#stt.on('metrics_collected', (metrics) => {\n this.emit('metrics_collected', metrics);\n });\n\n this.#stt.on('error', (error) => {\n this.emit('error', error);\n });\n }\n\n _recognize(frame: AudioFrame, abortSignal?: AbortSignal): Promise<SpeechEvent> {\n return this.#stt.recognize(frame, abortSignal);\n }\n\n stream(options?: { connOptions?: APIConnectOptions }): StreamAdapterWrapper {\n return new StreamAdapterWrapper(this.#stt, this.#vad, options?.connOptions);\n }\n}\n\nexport class StreamAdapterWrapper extends SpeechStream {\n #stt: STT;\n #vadStream: VADStream;\n label: string;\n\n constructor(stt: STT, vad: VAD, connOptions?: APIConnectOptions) {\n super(stt, undefined, connOptions);\n this.#stt = stt;\n this.#vadStream = vad.stream();\n this.label = `stt.StreamAdapterWrapper<${this.#stt.label}>`;\n }\n\n close() {\n super.close();\n this.#vadStream.close();\n }\n\n async monitorMetrics() {\n return; // do nothing\n }\n\n protected async run() {\n const forwardInput = async () => {\n for await (const input of this.input) {\n if (input === SpeechStream.FLUSH_SENTINEL) {\n this.#vadStream.flush();\n } else {\n this.#vadStream.pushFrame(input);\n }\n }\n this.#vadStream.endInput();\n };\n\n const recognize = async () => {\n for await (const ev of this.#vadStream) {\n switch (ev.type) {\n case VADEventType.START_OF_SPEECH:\n this.output.put({ type: SpeechEventType.START_OF_SPEECH });\n break;\n case VADEventType.END_OF_SPEECH:\n this.output.put({ type: SpeechEventType.END_OF_SPEECH });\n\n try {\n const event = await this.#stt.recognize(ev.frames, this.abortSignal);\n if (!event.alternatives![0].text) {\n continue;\n }\n\n this.output.put(event);\n break;\n } catch (error) {\n let logger = log();\n if (error instanceof Error) {\n logger = logger.child({ error: error.message });\n } else {\n logger = logger.child({ error });\n }\n logger.error(`${this.label}: provider recognize task failed`);\n continue;\n }\n }\n }\n };\n\n await Promise.all([forwardInput(), recognize()]);\n }\n}\n"],"mappings":"AAIA,SAAS,WAAW;AAGpB,SAAS,oBAAoB;AAE7B,SAAS,KAAK,iBAAiB,oBAAoB;AAE5C,MAAM,sBAAsB,IAAI;AAAA,EACrC;AAAA,EACA;AAAA,EACA;AAAA,EAEA,YAAY,KAAU,KAAU;AAC9B,UAAM,EAAE,WAAW,MAAM,gBAAgB,MAAM,CAAC;AAChD,SAAK,OAAO;AACZ,SAAK,OAAO;AACZ,SAAK,QAAQ,qBAAqB,KAAK,KAAK,KAAK;AAEjD,SAAK,KAAK,GAAG,qBAAqB,CAAC,YAAY;AAC7C,WAAK,KAAK,qBAAqB,OAAO;AAAA,IACxC,CAAC;AAED,SAAK,KAAK,GAAG,SAAS,CAAC,UAAU;AAC/B,WAAK,KAAK,SAAS,KAAK;AAAA,IAC1B,CAAC;AAAA,EACH;AAAA,EAEA,WAAW,OAAmB,aAAiD;AAC7E,WAAO,KAAK,KAAK,UAAU,OAAO,WAAW;AAAA,EAC/C;AAAA,EAEA,OAAO,SAAqE;AAC1E,WAAO,IAAI,qBAAqB,KAAK,MAAM,KAAK,MAAM,mCAAS,WAAW;AAAA,EAC5E;AACF;AAEO,MAAM,6BAA6B,aAAa;AAAA,EACrD;AAAA,EACA;AAAA,EACA;AAAA,EAEA,YAAY,KAAU,KAAU,aAAiC;AAC/D,UAAM,KAAK,QAAW,WAAW;AACjC,SAAK,OAAO;AACZ,SAAK,aAAa,IAAI,OAAO;AAC7B,SAAK,QAAQ,4BAA4B,KAAK,KAAK,KAAK;AAAA,EAC1D;AAAA,EAEA,QAAQ;AACN,UAAM,MAAM;AACZ,SAAK,WAAW,MAAM;AAAA,EACxB;AAAA,EAEA,MAAM,iBAAiB;AACrB;AAAA,EACF;AAAA,EAEA,MAAgB,MAAM;AACpB,UAAM,eAAe,YAAY;AAC/B,uBAAiB,SAAS,KAAK,OAAO;AACpC,YAAI,UAAU,aAAa,gBAAgB;AACzC,eAAK,WAAW,MAAM;AAAA,QACxB,OAAO;AACL,eAAK,WAAW,UAAU,KAAK;AAAA,QACjC;AAAA,MACF;AACA,WAAK,WAAW,SAAS;AAAA,IAC3B;AAEA,UAAM,YAAY,YAAY;AAC5B,uBAAiB,MAAM,KAAK,YAAY;AACtC,gBAAQ,GAAG,MAAM;AAAA,UACf,KAAK,aAAa;AAChB,iBAAK,OAAO,IAAI,EAAE,MAAM,gBAAgB,gBAAgB,CAAC;AACzD;AAAA,UACF,KAAK,aAAa;AAChB,iBAAK,OAAO,IAAI,EAAE,MAAM,gBAAgB,cAAc,CAAC;AAEvD,gBAAI;AACF,oBAAM,QAAQ,MAAM,KAAK,KAAK,UAAU,GAAG,QAAQ,KAAK,WAAW;AACnE,kBAAI,CAAC,MAAM,aAAc,CAAC,EAAE,MAAM;AAChC;AAAA,cACF;AAEA,mBAAK,OAAO,IAAI,KAAK;AACrB;AAAA,YACF,SAAS,OAAO;AACd,kBAAI,SAAS,IAAI;AACjB,kBAAI,iBAAiB,OAAO;AAC1B,yBAAS,OAAO,MAAM,EAAE,OAAO,MAAM,QAAQ,CAAC;AAAA,cAChD,OAAO;AACL,yBAAS,OAAO,MAAM,EAAE,MAAM,CAAC;AAAA,cACjC;AACA,qBAAO,MAAM,GAAG,KAAK,KAAK,kCAAkC;AAC5D;AAAA,YACF;AAAA,QACJ;AAAA,MACF;AAAA,IACF;AAEA,UAAM,QAAQ,IAAI,CAAC,aAAa,GAAG,UAAU,CAAC,CAAC;AAAA,EACjD;AACF;","names":[]}
|