@pipedog/core 0.0.0 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +25 -0
- package/NOTICE +9 -0
- package/dist/adapters/base_llm_adapter.d.ts +266 -0
- package/dist/adapters/base_llm_adapter.js +489 -0
- package/dist/adapters/index.d.ts +2 -0
- package/dist/adapters/index.js +8 -0
- package/dist/adapters/schemas/direct_function.d.ts +202 -0
- package/dist/adapters/schemas/direct_function.js +302 -0
- package/dist/adapters/schemas/function_schema.d.ts +67 -0
- package/dist/adapters/schemas/function_schema.js +72 -0
- package/dist/adapters/schemas/index.d.ts +2 -0
- package/dist/adapters/schemas/index.js +8 -0
- package/dist/adapters/schemas/tools_schema.d.ts +57 -0
- package/dist/adapters/schemas/tools_schema.js +79 -0
- package/dist/adapters/services/index.d.ts +2 -0
- package/dist/adapters/services/index.js +8 -0
- package/dist/adapters/services/open_ai_adapter.d.ts +147 -0
- package/dist/adapters/services/open_ai_adapter.js +250 -0
- package/dist/audio/dtmf/dtmf_data.d.ts +3 -0
- package/dist/audio/dtmf/dtmf_data.js +22 -0
- package/dist/audio/dtmf/index.d.ts +2 -0
- package/dist/audio/dtmf/index.js +8 -0
- package/dist/audio/dtmf/types.d.ts +31 -0
- package/dist/audio/dtmf/types.js +35 -0
- package/dist/audio/dtmf/utils.d.ts +13 -0
- package/dist/audio/dtmf/utils.js +62 -0
- package/dist/audio/filters/base_audio_filter.d.ts +51 -0
- package/dist/audio/filters/base_audio_filter.js +17 -0
- package/dist/audio/filters/index.d.ts +2 -0
- package/dist/audio/filters/index.js +8 -0
- package/dist/audio/index.d.ts +2 -0
- package/dist/audio/index.js +8 -0
- package/dist/audio/krisp_instance.d.ts +95 -0
- package/dist/audio/krisp_instance.js +229 -0
- package/dist/audio/mixers/base_audio_mixer.d.ts +56 -0
- package/dist/audio/mixers/base_audio_mixer.js +16 -0
- package/dist/audio/mixers/index.d.ts +2 -0
- package/dist/audio/mixers/index.js +8 -0
- package/dist/audio/resamplers/base_audio_resampler.d.ts +46 -0
- package/dist/audio/resamplers/base_audio_resampler.js +35 -0
- package/dist/audio/resamplers/engine.d.ts +60 -0
- package/dist/audio/resamplers/engine.js +89 -0
- package/dist/audio/resamplers/index.d.ts +2 -0
- package/dist/audio/resamplers/index.js +8 -0
- package/dist/audio/resamplers/resampy_resampler.d.ts +10 -0
- package/dist/audio/resamplers/resampy_resampler.js +15 -0
- package/dist/audio/resamplers/sinc_engine.d.ts +10 -0
- package/dist/audio/resamplers/sinc_engine.js +235 -0
- package/dist/audio/resamplers/soxr_resampler.d.ts +58 -0
- package/dist/audio/resamplers/soxr_resampler.js +79 -0
- package/dist/audio/resamplers/soxr_stream_resampler.d.ts +78 -0
- package/dist/audio/resamplers/soxr_stream_resampler.js +159 -0
- package/dist/audio/turn/base_turn_analyzer.d.ts +84 -0
- package/dist/audio/turn/base_turn_analyzer.js +61 -0
- package/dist/audio/turn/index.d.ts +2 -0
- package/dist/audio/turn/index.js +8 -0
- package/dist/audio/turn/smart_turn/_whisper_features.d.ts +30 -0
- package/dist/audio/turn/smart_turn/_whisper_features.js +225 -0
- package/dist/audio/turn/smart_turn/base_smart_turn.d.ts +94 -0
- package/dist/audio/turn/smart_turn/base_smart_turn.js +239 -0
- package/dist/audio/turn/smart_turn/local_smart_turn_v3.d.ts +76 -0
- package/dist/audio/turn/smart_turn/local_smart_turn_v3.js +151 -0
- package/dist/audio/utils.d.ts +224 -0
- package/dist/audio/utils.js +634 -0
- package/dist/audio/vad/data/index.d.ts +2 -0
- package/dist/audio/vad/data/index.js +8 -0
- package/dist/audio/vad/index.d.ts +2 -0
- package/dist/audio/vad/index.js +8 -0
- package/dist/audio/vad/vad_analyzer.d.ts +134 -0
- package/dist/audio/vad/vad_analyzer.js +249 -0
- package/dist/audio/vad/vad_controller.d.ts +143 -0
- package/dist/audio/vad/vad_controller.js +228 -0
- package/dist/audio/volume.d.ts +38 -0
- package/dist/audio/volume.js +75 -0
- package/dist/bus/adapters/base.d.ts +35 -0
- package/dist/bus/adapters/base.js +19 -0
- package/dist/bus/adapters/index.d.ts +10 -0
- package/dist/bus/adapters/index.js +15 -0
- package/dist/bus/adapters/llm_context_adapter.d.ts +36 -0
- package/dist/bus/adapters/llm_context_adapter.js +82 -0
- package/dist/bus/adapters/tools_schema_adapter.d.ts +25 -0
- package/dist/bus/adapters/tools_schema_adapter.js +70 -0
- package/dist/bus/bridge_processor.d.ts +111 -0
- package/dist/bus/bridge_processor.js +166 -0
- package/dist/bus/bus.d.ts +110 -0
- package/dist/bus/bus.js +200 -0
- package/dist/bus/index.d.ts +22 -0
- package/dist/bus/index.js +27 -0
- package/dist/bus/local/async_queue.d.ts +12 -0
- package/dist/bus/local/async_queue.js +21 -0
- package/dist/bus/local/index.d.ts +3 -0
- package/dist/bus/local/index.js +8 -0
- package/dist/bus/messages.d.ts +378 -0
- package/dist/bus/messages.js +357 -0
- package/dist/bus/network/index.d.ts +16 -0
- package/dist/bus/network/index.js +21 -0
- package/dist/bus/queue.d.ts +27 -0
- package/dist/bus/queue.js +51 -0
- package/dist/bus/serializers/base.d.ts +25 -0
- package/dist/bus/serializers/base.js +14 -0
- package/dist/bus/serializers/index.d.ts +9 -0
- package/dist/bus/serializers/index.js +14 -0
- package/dist/bus/serializers/json.d.ts +77 -0
- package/dist/bus/serializers/json.js +367 -0
- package/dist/bus/subscriber.d.ts +46 -0
- package/dist/bus/subscriber.js +27 -0
- package/dist/bus/ui/index.d.ts +3 -0
- package/dist/bus/ui/index.js +8 -0
- package/dist/bus/ui/messages.d.ts +186 -0
- package/dist/bus/ui/messages.js +171 -0
- package/dist/classifiers/base_classifier.d.ts +263 -0
- package/dist/classifiers/base_classifier.js +346 -0
- package/dist/classifiers/cloudflare/clef/classifier.d.ts +70 -0
- package/dist/classifiers/cloudflare/clef/classifier.js +204 -0
- package/dist/classifiers/cloudflare/clef/client.d.ts +104 -0
- package/dist/classifiers/cloudflare/clef/client.js +234 -0
- package/dist/classifiers/cloudflare/clef/index.d.ts +2 -0
- package/dist/classifiers/cloudflare/clef/index.js +8 -0
- package/dist/classifiers/cloudflare/index.d.ts +2 -0
- package/dist/classifiers/cloudflare/index.js +8 -0
- package/dist/classifiers/http_client.d.ts +70 -0
- package/dist/classifiers/http_client.js +161 -0
- package/dist/classifiers/index.d.ts +2 -0
- package/dist/classifiers/index.js +8 -0
- package/dist/classifiers/jev/classifier.d.ts +8 -0
- package/dist/classifiers/jev/classifier.js +13 -0
- package/dist/classifiers/jev/client.d.ts +8 -0
- package/dist/classifiers/jev/client.js +13 -0
- package/dist/classifiers/jev/index.d.ts +2 -0
- package/dist/classifiers/jev/index.js +8 -0
- package/dist/classifiers/llm/classifier.d.ts +72 -0
- package/dist/classifiers/llm/classifier.js +304 -0
- package/dist/classifiers/llm/index.d.ts +2 -0
- package/dist/classifiers/llm/index.js +8 -0
- package/dist/classifiers/openai/decisions/classifier.d.ts +77 -0
- package/dist/classifiers/openai/decisions/classifier.js +241 -0
- package/dist/classifiers/openai/decisions/client.d.ts +108 -0
- package/dist/classifiers/openai/decisions/client.js +234 -0
- package/dist/classifiers/openai/decisions/index.d.ts +2 -0
- package/dist/classifiers/openai/decisions/index.js +8 -0
- package/dist/classifiers/openai/index.d.ts +2 -0
- package/dist/classifiers/openai/index.js +8 -0
- package/dist/classifiers/typesafe/index.d.ts +2 -0
- package/dist/classifiers/typesafe/index.js +8 -0
- package/dist/classifiers/typesafe/jev/classifier.d.ts +70 -0
- package/dist/classifiers/typesafe/jev/classifier.js +220 -0
- package/dist/classifiers/typesafe/jev/client.d.ts +105 -0
- package/dist/classifiers/typesafe/jev/client.js +233 -0
- package/dist/classifiers/typesafe/jev/index.d.ts +2 -0
- package/dist/classifiers/typesafe/jev/index.js +8 -0
- package/dist/clocks/base_clock.d.ts +13 -0
- package/dist/clocks/base_clock.js +14 -0
- package/dist/clocks/index.d.ts +2 -0
- package/dist/clocks/index.js +8 -0
- package/dist/clocks/system_clock.d.ts +15 -0
- package/dist/clocks/system_clock.js +25 -0
- package/dist/frames/frames.d.ts +2533 -0
- package/dist/frames/frames.js +2485 -0
- package/dist/frames/index.d.ts +2 -0
- package/dist/frames/index.js +8 -0
- package/dist/frames/protobufs/frames_pb2.d.ts +229 -0
- package/dist/frames/protobufs/frames_pb2.js +466 -0
- package/dist/index.d.ts +11 -0
- package/dist/index.js +56 -0
- package/dist/metrics/index.d.ts +2 -0
- package/dist/metrics/index.js +8 -0
- package/dist/metrics/metrics.d.ts +276 -0
- package/dist/metrics/metrics.js +254 -0
- package/dist/observers/base_observer.d.ts +173 -0
- package/dist/observers/base_observer.js +151 -0
- package/dist/observers/error_observer.d.ts +75 -0
- package/dist/observers/error_observer.js +87 -0
- package/dist/observers/function_call_observer.d.ts +157 -0
- package/dist/observers/function_call_observer.js +222 -0
- package/dist/observers/index.d.ts +2 -0
- package/dist/observers/index.js +8 -0
- package/dist/observers/loggers/debug_log_observer.d.ts +91 -0
- package/dist/observers/loggers/debug_log_observer.js +228 -0
- package/dist/observers/loggers/index.d.ts +2 -0
- package/dist/observers/loggers/index.js +8 -0
- package/dist/observers/loggers/llm_log_observer.d.ts +24 -0
- package/dist/observers/loggers/llm_log_observer.js +110 -0
- package/dist/observers/loggers/metrics_log_observer.d.ts +85 -0
- package/dist/observers/loggers/metrics_log_observer.js +186 -0
- package/dist/observers/loggers/transcription_log_observer.d.ts +23 -0
- package/dist/observers/loggers/transcription_log_observer.js +74 -0
- package/dist/observers/service_metrics_observer.d.ts +168 -0
- package/dist/observers/service_metrics_observer.js +236 -0
- package/dist/observers/speaking_observer.d.ts +104 -0
- package/dist/observers/speaking_observer.js +150 -0
- package/dist/observers/startup_timing_observer.d.ts +221 -0
- package/dist/observers/startup_timing_observer.js +365 -0
- package/dist/observers/turn_tracking_observer.d.ts +78 -0
- package/dist/observers/turn_tracking_observer.js +189 -0
- package/dist/observers/user_bot_latency_observer.d.ts +411 -0
- package/dist/observers/user_bot_latency_observer.js +974 -0
- package/dist/pipeline/base_pipeline.d.ts +49 -0
- package/dist/pipeline/base_pipeline.js +101 -0
- package/dist/pipeline/capabilities.d.ts +76 -0
- package/dist/pipeline/capabilities.js +97 -0
- package/dist/pipeline/index.d.ts +2 -0
- package/dist/pipeline/index.js +8 -0
- package/dist/pipeline/job_context.d.ts +317 -0
- package/dist/pipeline/job_context.js +450 -0
- package/dist/pipeline/job_decorator.d.ts +54 -0
- package/dist/pipeline/job_decorator.js +92 -0
- package/dist/pipeline/llm_switcher.d.ts +84 -0
- package/dist/pipeline/llm_switcher.js +107 -0
- package/dist/pipeline/llm_with_backend.d.ts +435 -0
- package/dist/pipeline/llm_with_backend.js +806 -0
- package/dist/pipeline/parallel_pipeline.d.ts +83 -0
- package/dist/pipeline/parallel_pipeline.js +200 -0
- package/dist/pipeline/pipeline.d.ts +126 -0
- package/dist/pipeline/pipeline.js +196 -0
- package/dist/pipeline/service_switcher.d.ts +287 -0
- package/dist/pipeline/service_switcher.js +509 -0
- package/dist/pipeline/sync_parallel_pipeline.d.ts +192 -0
- package/dist/pipeline/sync_parallel_pipeline.js +387 -0
- package/dist/pipeline/worker.d.ts +821 -0
- package/dist/pipeline/worker.js +1656 -0
- package/dist/pipeline/worker_observer.d.ts +131 -0
- package/dist/pipeline/worker_observer.js +274 -0
- package/dist/pipeline/worker_ready_decorator.d.ts +45 -0
- package/dist/pipeline/worker_ready_decorator.js +76 -0
- package/dist/processors/aggregators/async_tool_messages.d.ts +146 -0
- package/dist/processors/aggregators/async_tool_messages.js +291 -0
- package/dist/processors/aggregators/dtmf_aggregator.d.ts +61 -0
- package/dist/processors/aggregators/dtmf_aggregator.js +144 -0
- package/dist/processors/aggregators/gated.d.ts +43 -0
- package/dist/processors/aggregators/gated.js +86 -0
- package/dist/processors/aggregators/gated_llm_context.d.ts +42 -0
- package/dist/processors/aggregators/gated_llm_context.js +86 -0
- package/dist/processors/aggregators/index.d.ts +2 -0
- package/dist/processors/aggregators/index.js +8 -0
- package/dist/processors/aggregators/llm_context.d.ts +370 -0
- package/dist/processors/aggregators/llm_context.js +580 -0
- package/dist/processors/aggregators/llm_context_summarizer.d.ts +219 -0
- package/dist/processors/aggregators/llm_context_summarizer.js +447 -0
- package/dist/processors/aggregators/llm_response.d.ts +37 -0
- package/dist/processors/aggregators/llm_response.js +71 -0
- package/dist/processors/aggregators/llm_response_universal.d.ts +966 -0
- package/dist/processors/aggregators/llm_response_universal.js +2394 -0
- package/dist/processors/aggregators/llm_text_processor.d.ts +53 -0
- package/dist/processors/aggregators/llm_text_processor.js +102 -0
- package/dist/processors/aggregators/sentence.d.ts +39 -0
- package/dist/processors/aggregators/sentence.js +69 -0
- package/dist/processors/async_generator.d.ts +42 -0
- package/dist/processors/async_generator.js +76 -0
- package/dist/processors/audio/audio_buffer_processor.d.ts +241 -0
- package/dist/processors/audio/audio_buffer_processor.js +565 -0
- package/dist/processors/audio/index.d.ts +2 -0
- package/dist/processors/audio/index.js +8 -0
- package/dist/processors/audio/vad_processor.d.ts +67 -0
- package/dist/processors/audio/vad_processor.js +103 -0
- package/dist/processors/consumer_processor.d.ts +49 -0
- package/dist/processors/consumer_processor.js +85 -0
- package/dist/processors/filters/frame_filter.d.ts +39 -0
- package/dist/processors/filters/frame_filter.js +52 -0
- package/dist/processors/filters/function_filter.d.ts +59 -0
- package/dist/processors/filters/function_filter.js +78 -0
- package/dist/processors/filters/identity_filter.d.ts +33 -0
- package/dist/processors/filters/identity_filter.js +37 -0
- package/dist/processors/filters/index.d.ts +2 -0
- package/dist/processors/filters/index.js +8 -0
- package/dist/processors/filters/null_filter.d.ts +34 -0
- package/dist/processors/filters/null_filter.js +47 -0
- package/dist/processors/filters/wake_notifier_filter.d.ts +48 -0
- package/dist/processors/filters/wake_notifier_filter.js +49 -0
- package/dist/processors/frame_processor.d.ts +360 -0
- package/dist/processors/frame_processor.js +932 -0
- package/dist/processors/frameworks/index.d.ts +2 -0
- package/dist/processors/frameworks/index.js +8 -0
- package/dist/processors/frameworks/rtvi/frames.d.ts +241 -0
- package/dist/processors/frameworks/rtvi/frames.js +259 -0
- package/dist/processors/frameworks/rtvi/index.d.ts +6 -0
- package/dist/processors/frameworks/rtvi/index.js +11 -0
- package/dist/processors/frameworks/rtvi/models.d.ts +1741 -0
- package/dist/processors/frameworks/rtvi/models.js +1807 -0
- package/dist/processors/frameworks/rtvi/observer.d.ts +340 -0
- package/dist/processors/frameworks/rtvi/observer.js +1113 -0
- package/dist/processors/frameworks/rtvi/processor.d.ts +182 -0
- package/dist/processors/frameworks/rtvi/processor.js +676 -0
- package/dist/processors/idle_frame_processor.d.ts +44 -0
- package/dist/processors/idle_frame_processor.js +86 -0
- package/dist/processors/index.d.ts +2 -0
- package/dist/processors/index.js +8 -0
- package/dist/processors/logger.d.ts +42 -0
- package/dist/processors/logger.js +87 -0
- package/dist/processors/metrics/frame_processor_metrics.d.ts +172 -0
- package/dist/processors/metrics/frame_processor_metrics.js +372 -0
- package/dist/processors/metrics/index.d.ts +2 -0
- package/dist/processors/metrics/index.js +8 -0
- package/dist/processors/producer_processor.d.ts +68 -0
- package/dist/processors/producer_processor.js +78 -0
- package/dist/processors/text_transformer.d.ts +30 -0
- package/dist/processors/text_transformer.js +48 -0
- package/dist/registry/index.d.ts +3 -0
- package/dist/registry/index.js +8 -0
- package/dist/registry/registry.d.ts +69 -0
- package/dist/registry/registry.js +149 -0
- package/dist/registry/types.d.ts +47 -0
- package/dist/registry/types.js +39 -0
- package/dist/serializers/base_serializer.d.ts +94 -0
- package/dist/serializers/base_serializer.js +82 -0
- package/dist/serializers/index.d.ts +2 -0
- package/dist/serializers/index.js +8 -0
- package/dist/services/ai_service.d.ts +145 -0
- package/dist/services/ai_service.js +262 -0
- package/dist/services/anthropic/index.d.ts +2 -0
- package/dist/services/anthropic/index.js +7 -0
- package/dist/services/assemblyai/index.d.ts +2 -0
- package/dist/services/assemblyai/index.js +7 -0
- package/dist/services/asyncai/index.d.ts +2 -0
- package/dist/services/asyncai/index.js +7 -0
- package/dist/services/aws/index.d.ts +2 -0
- package/dist/services/aws/index.js +7 -0
- package/dist/services/azure/index.d.ts +2 -0
- package/dist/services/azure/index.js +7 -0
- package/dist/services/baseten/index.d.ts +2 -0
- package/dist/services/baseten/index.js +7 -0
- package/dist/services/bland/index.d.ts +2 -0
- package/dist/services/bland/index.js +7 -0
- package/dist/services/camb/index.d.ts +2 -0
- package/dist/services/camb/index.js +7 -0
- package/dist/services/cartesia/index.d.ts +2 -0
- package/dist/services/cartesia/index.js +7 -0
- package/dist/services/cerebras/index.d.ts +2 -0
- package/dist/services/cerebras/index.js +7 -0
- package/dist/services/crusoe/index.d.ts +2 -0
- package/dist/services/crusoe/index.js +7 -0
- package/dist/services/deepgram/index.d.ts +2 -0
- package/dist/services/deepgram/index.js +7 -0
- package/dist/services/deepseek/index.d.ts +2 -0
- package/dist/services/deepseek/index.js +7 -0
- package/dist/services/elevenlabs/index.d.ts +2 -0
- package/dist/services/elevenlabs/index.js +7 -0
- package/dist/services/fal/index.d.ts +2 -0
- package/dist/services/fal/index.js +7 -0
- package/dist/services/fireworks/index.d.ts +2 -0
- package/dist/services/fireworks/index.js +7 -0
- package/dist/services/fish/index.d.ts +2 -0
- package/dist/services/fish/index.js +7 -0
- package/dist/services/funasr/index.d.ts +3 -0
- package/dist/services/funasr/index.js +8 -0
- package/dist/services/gladia/index.d.ts +2 -0
- package/dist/services/gladia/index.js +7 -0
- package/dist/services/google/index.d.ts +2 -0
- package/dist/services/google/index.js +7 -0
- package/dist/services/gradium/index.d.ts +2 -0
- package/dist/services/gradium/index.js +7 -0
- package/dist/services/grok/index.d.ts +2 -0
- package/dist/services/grok/index.js +7 -0
- package/dist/services/groq/index.d.ts +2 -0
- package/dist/services/groq/index.js +7 -0
- package/dist/services/heygen/index.d.ts +2 -0
- package/dist/services/heygen/index.js +7 -0
- package/dist/services/hume/index.d.ts +2 -0
- package/dist/services/hume/index.js +7 -0
- package/dist/services/image_service.d.ts +52 -0
- package/dist/services/image_service.js +60 -0
- package/dist/services/inception/index.d.ts +2 -0
- package/dist/services/inception/index.js +7 -0
- package/dist/services/index.d.ts +2 -0
- package/dist/services/index.js +8 -0
- package/dist/services/inworld/index.d.ts +2 -0
- package/dist/services/inworld/index.js +7 -0
- package/dist/services/keenable/index.d.ts +2 -0
- package/dist/services/keenable/index.js +7 -0
- package/dist/services/kokoro/index.d.ts +2 -0
- package/dist/services/kokoro/index.js +7 -0
- package/dist/services/llm_service.d.ts +1106 -0
- package/dist/services/llm_service.js +2231 -0
- package/dist/services/mem0/index.d.ts +2 -0
- package/dist/services/mem0/index.js +7 -0
- package/dist/services/meta/index.d.ts +2 -0
- package/dist/services/meta/index.js +7 -0
- package/dist/services/minimax/index.d.ts +2 -0
- package/dist/services/minimax/index.js +7 -0
- package/dist/services/mistral/index.d.ts +2 -0
- package/dist/services/mistral/index.js +7 -0
- package/dist/services/moondream/index.d.ts +2 -0
- package/dist/services/moondream/index.js +7 -0
- package/dist/services/moonshine/index.d.ts +2 -0
- package/dist/services/moonshine/index.js +7 -0
- package/dist/services/nebius/index.d.ts +2 -0
- package/dist/services/nebius/index.js +7 -0
- package/dist/services/neuphonic/index.d.ts +2 -0
- package/dist/services/neuphonic/index.js +7 -0
- package/dist/services/novita/index.d.ts +2 -0
- package/dist/services/novita/index.js +7 -0
- package/dist/services/nvidia/index.d.ts +2 -0
- package/dist/services/nvidia/index.js +11 -0
- package/dist/services/ollama/index.d.ts +2 -0
- package/dist/services/ollama/index.js +7 -0
- package/dist/services/openai/index.d.ts +2 -0
- package/dist/services/openai/index.js +7 -0
- package/dist/services/openclaw/index.d.ts +14 -0
- package/dist/services/openclaw/index.js +19 -0
- package/dist/services/openrouter/index.d.ts +2 -0
- package/dist/services/openrouter/index.js +7 -0
- package/dist/services/perplexity/index.d.ts +2 -0
- package/dist/services/perplexity/index.js +7 -0
- package/dist/services/piper/index.d.ts +2 -0
- package/dist/services/piper/index.js +7 -0
- package/dist/services/pocket_tts/index.d.ts +2 -0
- package/dist/services/pocket_tts/index.js +7 -0
- package/dist/services/qwen/index.d.ts +2 -0
- package/dist/services/qwen/index.js +7 -0
- package/dist/services/resembleai/index.d.ts +2 -0
- package/dist/services/resembleai/index.js +7 -0
- package/dist/services/rime/index.d.ts +2 -0
- package/dist/services/rime/index.js +7 -0
- package/dist/services/sambanova/index.d.ts +2 -0
- package/dist/services/sambanova/index.js +7 -0
- package/dist/services/sarvam/index.d.ts +2 -0
- package/dist/services/sarvam/index.js +7 -0
- package/dist/services/settings.d.ts +356 -0
- package/dist/services/settings.js +437 -0
- package/dist/services/simli/index.d.ts +2 -0
- package/dist/services/simli/index.js +7 -0
- package/dist/services/smallest/index.d.ts +2 -0
- package/dist/services/smallest/index.js +7 -0
- package/dist/services/soniox/index.d.ts +2 -0
- package/dist/services/soniox/index.js +7 -0
- package/dist/services/speechify/index.d.ts +2 -0
- package/dist/services/speechify/index.js +7 -0
- package/dist/services/speechmatics/index.d.ts +2 -0
- package/dist/services/speechmatics/index.js +7 -0
- package/dist/services/stt_latency.d.ts +62 -0
- package/dist/services/stt_latency.js +71 -0
- package/dist/services/stt_service.d.ts +601 -0
- package/dist/services/stt_service.js +1044 -0
- package/dist/services/tavus/index.d.ts +2 -0
- package/dist/services/tavus/index.js +7 -0
- package/dist/services/together/index.d.ts +2 -0
- package/dist/services/together/index.js +7 -0
- package/dist/services/tts_service.d.ts +909 -0
- package/dist/services/tts_service.js +2018 -0
- package/dist/services/ultravox/index.d.ts +2 -0
- package/dist/services/ultravox/index.js +9 -0
- package/dist/services/vision_service.d.ts +56 -0
- package/dist/services/vision_service.js +62 -0
- package/dist/services/websocket_service.d.ts +213 -0
- package/dist/services/websocket_service.js +654 -0
- package/dist/services/whisper/index.d.ts +2 -0
- package/dist/services/whisper/index.js +9 -0
- package/dist/services/xai/index.d.ts +2 -0
- package/dist/services/xai/index.js +9 -0
- package/dist/services/xtts/index.d.ts +2 -0
- package/dist/services/xtts/index.js +9 -0
- package/dist/tests/index.d.ts +2 -0
- package/dist/tests/index.js +8 -0
- package/dist/tests/utils.d.ts +123 -0
- package/dist/tests/utils.js +212 -0
- package/dist/transcriptions/index.d.ts +2 -0
- package/dist/transcriptions/index.js +8 -0
- package/dist/transcriptions/language.d.ts +376 -0
- package/dist/transcriptions/language.js +543 -0
- package/dist/transports/base_input.d.ts +149 -0
- package/dist/transports/base_input.js +338 -0
- package/dist/transports/base_output.d.ts +432 -0
- package/dist/transports/base_output.js +1231 -0
- package/dist/transports/base_transport.d.ts +223 -0
- package/dist/transports/base_transport.js +167 -0
- package/dist/transports/daily/index.d.ts +2 -0
- package/dist/transports/daily/index.js +9 -0
- package/dist/transports/heygen/index.d.ts +2 -0
- package/dist/transports/heygen/index.js +9 -0
- package/dist/transports/index.d.ts +2 -0
- package/dist/transports/index.js +8 -0
- package/dist/transports/lemonslice/index.d.ts +2 -0
- package/dist/transports/lemonslice/index.js +9 -0
- package/dist/transports/livekit/index.d.ts +2 -0
- package/dist/transports/livekit/index.js +9 -0
- package/dist/transports/local/index.d.ts +2 -0
- package/dist/transports/local/index.js +9 -0
- package/dist/transports/moq/index.d.ts +2 -0
- package/dist/transports/moq/index.js +9 -0
- package/dist/transports/smallwebrtc/index.d.ts +2 -0
- package/dist/transports/smallwebrtc/index.js +9 -0
- package/dist/transports/tavus/index.d.ts +2 -0
- package/dist/transports/tavus/index.js +9 -0
- package/dist/transports/video_in_sampler.d.ts +157 -0
- package/dist/transports/video_in_sampler.js +258 -0
- package/dist/transports/vonage/index.d.ts +2 -0
- package/dist/transports/vonage/index.js +9 -0
- package/dist/transports/websocket/index.d.ts +2 -0
- package/dist/transports/websocket/index.js +9 -0
- package/dist/transports/whatsapp/index.d.ts +2 -0
- package/dist/transports/whatsapp/index.js +9 -0
- package/dist/turns/eager_end_of_turn_mixin.d.ts +70 -0
- package/dist/turns/eager_end_of_turn_mixin.js +122 -0
- package/dist/turns/empty_user_turn.d.ts +55 -0
- package/dist/turns/empty_user_turn.js +53 -0
- package/dist/turns/index.d.ts +2 -0
- package/dist/turns/index.js +8 -0
- package/dist/turns/speculation_gate.d.ts +169 -0
- package/dist/turns/speculation_gate.js +294 -0
- package/dist/turns/types.d.ts +33 -0
- package/dist/turns/types.js +35 -0
- package/dist/turns/user_idle_controller.d.ts +94 -0
- package/dist/turns/user_idle_controller.js +187 -0
- package/dist/turns/user_mute/always_user_mute_strategy.d.ts +15 -0
- package/dist/turns/user_mute/always_user_mute_strategy.js +29 -0
- package/dist/turns/user_mute/base_user_mute_strategy.d.ts +39 -0
- package/dist/turns/user_mute/base_user_mute_strategy.js +45 -0
- package/dist/turns/user_mute/first_speech_user_mute_strategy.d.ts +28 -0
- package/dist/turns/user_mute/first_speech_user_mute_strategy.js +52 -0
- package/dist/turns/user_mute/function_call_user_mute_strategy.d.ts +25 -0
- package/dist/turns/user_mute/function_call_user_mute_strategy.js +50 -0
- package/dist/turns/user_mute/index.d.ts +6 -0
- package/dist/turns/user_mute/index.js +11 -0
- package/dist/turns/user_mute/mute_until_first_bot_complete_user_mute_strategy.d.ts +43 -0
- package/dist/turns/user_mute/mute_until_first_bot_complete_user_mute_strategy.js +76 -0
- package/dist/turns/user_start/base_user_turn_start_strategy.d.ts +135 -0
- package/dist/turns/user_start/base_user_turn_start_strategy.js +134 -0
- package/dist/turns/user_start/external_user_turn_start_strategy.d.ts +45 -0
- package/dist/turns/user_start/external_user_turn_start_strategy.js +64 -0
- package/dist/turns/user_start/index.d.ts +8 -0
- package/dist/turns/user_start/index.js +16 -0
- package/dist/turns/user_start/krisp_viva_ip_user_turn_start_strategy.d.ts +133 -0
- package/dist/turns/user_start/krisp_viva_ip_user_turn_start_strategy.js +243 -0
- package/dist/turns/user_start/min_words_user_turn_start_strategy.d.ts +60 -0
- package/dist/turns/user_start/min_words_user_turn_start_strategy.js +102 -0
- package/dist/turns/user_start/transcription_user_turn_start_strategy.d.ts +29 -0
- package/dist/turns/user_start/transcription_user_turn_start_strategy.js +43 -0
- package/dist/turns/user_start/vad_user_turn_start_strategy.d.ts +20 -0
- package/dist/turns/user_start/vad_user_turn_start_strategy.js +31 -0
- package/dist/turns/user_start/wake_phrase_user_turn_start_strategy.d.ts +141 -0
- package/dist/turns/user_start/wake_phrase_user_turn_start_strategy.js +238 -0
- package/dist/turns/user_stop/base_user_turn_stop_strategy.d.ts +174 -0
- package/dist/turns/user_stop/base_user_turn_stop_strategy.js +170 -0
- package/dist/turns/user_stop/deferred_user_turn_stop_strategy.d.ts +81 -0
- package/dist/turns/user_stop/deferred_user_turn_stop_strategy.js +107 -0
- package/dist/turns/user_stop/eager_match_policy.d.ts +36 -0
- package/dist/turns/user_stop/eager_match_policy.js +50 -0
- package/dist/turns/user_stop/eager_user_turn_stop_strategy.d.ts +84 -0
- package/dist/turns/user_stop/eager_user_turn_stop_strategy.js +154 -0
- package/dist/turns/user_stop/external_user_turn_completion_stop_strategy.d.ts +45 -0
- package/dist/turns/user_stop/external_user_turn_completion_stop_strategy.js +55 -0
- package/dist/turns/user_stop/external_user_turn_stop_strategy.d.ts +115 -0
- package/dist/turns/user_stop/external_user_turn_stop_strategy.js +205 -0
- package/dist/turns/user_stop/index.d.ts +10 -0
- package/dist/turns/user_stop/index.js +15 -0
- package/dist/turns/user_stop/llm_turn_completion_user_turn_stop_strategy.d.ts +44 -0
- package/dist/turns/user_stop/llm_turn_completion_user_turn_stop_strategy.js +59 -0
- package/dist/turns/user_stop/speech_timeout_user_turn_stop_strategy.d.ts +140 -0
- package/dist/turns/user_stop/speech_timeout_user_turn_stop_strategy.js +303 -0
- package/dist/turns/user_stop/turn_analyzer_user_turn_stop_strategy.d.ts +135 -0
- package/dist/turns/user_stop/turn_analyzer_user_turn_stop_strategy.js +332 -0
- package/dist/turns/user_turn_completion_mixin.d.ts +147 -0
- package/dist/turns/user_turn_completion_mixin.js +591 -0
- package/dist/turns/user_turn_controller.d.ts +134 -0
- package/dist/turns/user_turn_controller.js +335 -0
- package/dist/turns/user_turn_processor.d.ts +87 -0
- package/dist/turns/user_turn_processor.js +180 -0
- package/dist/turns/user_turn_strategies.d.ts +187 -0
- package/dist/turns/user_turn_strategies.js +222 -0
- package/dist/utils/async_tool_cancellation.d.ts +35 -0
- package/dist/utils/async_tool_cancellation.js +78 -0
- package/dist/utils/asyncio/index.d.ts +2 -0
- package/dist/utils/asyncio/index.js +7 -0
- package/dist/utils/asyncio/task_manager.d.ts +49 -0
- package/dist/utils/asyncio/task_manager.js +105 -0
- package/dist/utils/base_object.d.ts +76 -0
- package/dist/utils/base_object.js +154 -0
- package/dist/utils/context/aggregated_frame_sequencer.d.ts +491 -0
- package/dist/utils/context/aggregated_frame_sequencer.js +803 -0
- package/dist/utils/context/audio_context_manager.d.ts +131 -0
- package/dist/utils/context/audio_context_manager.js +233 -0
- package/dist/utils/context/index.d.ts +2 -0
- package/dist/utils/context/index.js +7 -0
- package/dist/utils/context/llm_context_summarization.d.ts +258 -0
- package/dist/utils/context/llm_context_summarization.js +511 -0
- package/dist/utils/context/text_segment_map.d.ts +611 -0
- package/dist/utils/context/text_segment_map.js +1132 -0
- package/dist/utils/context/word_completion_tracker.d.ts +273 -0
- package/dist/utils/context/word_completion_tracker.js +441 -0
- package/dist/utils/context/word_timestamp_tracker.d.ts +72 -0
- package/dist/utils/context/word_timestamp_tracker.js +98 -0
- package/dist/utils/deprecation.d.ts +28 -0
- package/dist/utils/deprecation.js +75 -0
- package/dist/utils/env.d.ts +38 -0
- package/dist/utils/env.js +62 -0
- package/dist/utils/errors.d.ts +75 -0
- package/dist/utils/errors.js +202 -0
- package/dist/utils/file_resolver.d.ts +126 -0
- package/dist/utils/file_resolver.js +314 -0
- package/dist/utils/file_storage.d.ts +115 -0
- package/dist/utils/file_storage.js +178 -0
- package/dist/utils/frame_queue.d.ts +36 -0
- package/dist/utils/frame_queue.js +66 -0
- package/dist/utils/http.d.ts +39 -0
- package/dist/utils/http.js +53 -0
- package/dist/utils/image.d.ts +14 -0
- package/dist/utils/image.js +63 -0
- package/dist/utils/index.d.ts +2 -0
- package/dist/utils/index.js +8 -0
- package/dist/utils/jpeg_encoder.d.ts +14 -0
- package/dist/utils/jpeg_encoder.js +315 -0
- package/dist/utils/log_config.d.ts +34 -0
- package/dist/utils/log_config.js +76 -0
- package/dist/utils/logger.d.ts +40 -0
- package/dist/utils/logger.js +91 -0
- package/dist/utils/mixin.d.ts +14 -0
- package/dist/utils/mixin.js +63 -0
- package/dist/utils/network.d.ts +73 -0
- package/dist/utils/network.js +90 -0
- package/dist/utils/security/allowed_origins.d.ts +16 -0
- package/dist/utils/security/allowed_origins.js +34 -0
- package/dist/utils/security/index.d.ts +2 -0
- package/dist/utils/security/index.js +7 -0
- package/dist/utils/security/redaction.d.ts +27 -0
- package/dist/utils/security/redaction.js +123 -0
- package/dist/utils/security/ssrf.d.ts +79 -0
- package/dist/utils/security/ssrf.js +327 -0
- package/dist/utils/shared.d.ts +35 -0
- package/dist/utils/shared.js +136 -0
- package/dist/utils/startup.d.ts +17 -0
- package/dist/utils/startup.js +130 -0
- package/dist/utils/string.d.ts +116 -0
- package/dist/utils/string.js +460 -0
- package/dist/utils/sync/base_notifier.d.ts +25 -0
- package/dist/utils/sync/base_notifier.js +16 -0
- package/dist/utils/sync/event_notifier.d.ts +38 -0
- package/dist/utils/sync/event_notifier.js +51 -0
- package/dist/utils/sync/index.d.ts +2 -0
- package/dist/utils/sync/index.js +7 -0
- package/dist/utils/text/alnum_utils.d.ts +109 -0
- package/dist/utils/text/alnum_utils.js +262 -0
- package/dist/utils/text/base_text_aggregator.d.ts +146 -0
- package/dist/utils/text/base_text_aggregator.js +102 -0
- package/dist/utils/text/base_text_filter.d.ts +54 -0
- package/dist/utils/text/base_text_filter.js +50 -0
- package/dist/utils/text/index.d.ts +2 -0
- package/dist/utils/text/index.js +7 -0
- package/dist/utils/text/markdown_text_filter.d.ts +147 -0
- package/dist/utils/text/markdown_text_filter.js +522 -0
- package/dist/utils/text/markup_utils.d.ts +54 -0
- package/dist/utils/text/markup_utils.js +156 -0
- package/dist/utils/text/pattern_pair_aggregator.d.ts +251 -0
- package/dist/utils/text/pattern_pair_aggregator.js +478 -0
- package/dist/utils/text/phonemes.d.ts +60 -0
- package/dist/utils/text/phonemes.js +172 -0
- package/dist/utils/text/simple_text_aggregator.d.ts +135 -0
- package/dist/utils/text/simple_text_aggregator.js +254 -0
- package/dist/utils/text/skip_tags_aggregator.d.ts +85 -0
- package/dist/utils/text/skip_tags_aggregator.js +147 -0
- package/dist/utils/text/transforms/acronyms.d.ts +21 -0
- package/dist/utils/text/transforms/acronyms.js +31 -0
- package/dist/utils/text/transforms/currency.d.ts +16 -0
- package/dist/utils/text/transforms/currency.js +56 -0
- package/dist/utils/text/transforms/dates.d.ts +18 -0
- package/dist/utils/text/transforms/dates.js +102 -0
- package/dist/utils/text/transforms/email.d.ts +17 -0
- package/dist/utils/text/transforms/email.js +35 -0
- package/dist/utils/text/transforms/index.d.ts +37 -0
- package/dist/utils/text/transforms/index.js +42 -0
- package/dist/utils/text/transforms/numbers.d.ts +25 -0
- package/dist/utils/text/transforms/numbers.js +59 -0
- package/dist/utils/text/transforms/percentages.d.ts +16 -0
- package/dist/utils/text/transforms/percentages.js +32 -0
- package/dist/utils/text/transforms/phone.d.ts +21 -0
- package/dist/utils/text/transforms/phone.js +39 -0
- package/dist/utils/text/transforms/pronunciations.d.ts +65 -0
- package/dist/utils/text/transforms/pronunciations.js +112 -0
- package/dist/utils/text/transforms/replacements.d.ts +39 -0
- package/dist/utils/text/transforms/replacements.js +46 -0
- package/dist/utils/text/transforms/strip_markdown.d.ts +25 -0
- package/dist/utils/text/transforms/strip_markdown.js +60 -0
- package/dist/utils/text/transforms/units.d.ts +22 -0
- package/dist/utils/text/transforms/units.js +81 -0
- package/dist/utils/text/transforms/voice_formatter.d.ts +86 -0
- package/dist/utils/text/transforms/voice_formatter.js +98 -0
- package/dist/utils/text/unicode_digits.d.ts +3 -0
- package/dist/utils/text/unicode_digits.js +34 -0
- package/dist/utils/text/word_timestamp_utils.d.ts +26 -0
- package/dist/utils/text/word_timestamp_utils.js +52 -0
- package/dist/utils/time.d.ts +13 -0
- package/dist/utils/time.js +31 -0
- package/dist/utils/tracing/index.d.ts +3 -0
- package/dist/utils/tracing/index.js +8 -0
- package/dist/utils/tracing/service_attributes.d.ts +198 -0
- package/dist/utils/tracing/service_attributes.js +434 -0
- package/dist/utils/tracing/service_decorators.d.ts +214 -0
- package/dist/utils/tracing/service_decorators.js +1662 -0
- package/dist/utils/tracing/setup.d.ts +107 -0
- package/dist/utils/tracing/setup.js +160 -0
- package/dist/utils/tracing/tracing_context.d.ts +55 -0
- package/dist/utils/tracing/tracing_context.js +97 -0
- package/dist/utils/tracing/turn_trace_observer.d.ts +95 -0
- package/dist/utils/tracing/turn_trace_observer.js +233 -0
- package/dist/utils/types.d.ts +80 -0
- package/dist/utils/types.js +108 -0
- package/dist/utils/utils.d.ts +5 -0
- package/dist/utils/utils.js +22 -0
- package/dist/utils/yaml.d.ts +179 -0
- package/dist/utils/yaml.js +556 -0
- package/dist/version.d.ts +3 -0
- package/dist/version.js +7 -0
- package/dist/workers/base_worker.d.ts +772 -0
- package/dist/workers/base_worker.js +1298 -0
- package/dist/workers/index.d.ts +2 -0
- package/dist/workers/index.js +8 -0
- package/dist/workers/llm/backend_llm_worker.d.ts +552 -0
- package/dist/workers/llm/backend_llm_worker.js +1055 -0
- package/dist/workers/llm/index.d.ts +6 -0
- package/dist/workers/llm/index.js +11 -0
- package/dist/workers/llm/llm_context_worker.d.ts +66 -0
- package/dist/workers/llm/llm_context_worker.js +72 -0
- package/dist/workers/llm/llm_worker.d.ts +180 -0
- package/dist/workers/llm/llm_worker.js +323 -0
- package/dist/workers/llm/tool_decorator.d.ts +68 -0
- package/dist/workers/llm/tool_decorator.js +60 -0
- package/dist/workers/proxy/index.d.ts +3 -0
- package/dist/workers/proxy/index.js +9 -0
- package/dist/workers/proxy/websocket/client.d.ts +110 -0
- package/dist/workers/proxy/websocket/client.js +196 -0
- package/dist/workers/proxy/websocket/index.d.ts +3 -0
- package/dist/workers/proxy/websocket/index.js +10 -0
- package/dist/workers/runner.d.ts +268 -0
- package/dist/workers/runner.js +489 -0
- package/dist/workers/ui/index.d.ts +22 -0
- package/dist/workers/ui/index.js +27 -0
- package/dist/workers/ui/ui_event_decorator.d.ts +43 -0
- package/dist/workers/ui/ui_event_decorator.js +75 -0
- package/dist/workers/ui/ui_job_context.d.ts +12 -0
- package/dist/workers/ui/ui_job_context.js +17 -0
- package/dist/workers/ui/ui_prompts.d.ts +21 -0
- package/dist/workers/ui/ui_prompts.js +41 -0
- package/dist/workers/ui/ui_tools.d.ts +32 -0
- package/dist/workers/ui/ui_tools.js +112 -0
- package/dist/workers/ui/ui_worker.d.ts +571 -0
- package/dist/workers/ui/ui_worker.js +1156 -0
- package/package.json +61 -3
- package/README.md +0 -5
|
@@ -0,0 +1,432 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Base output transport implementation for Pipecat.
|
|
3
|
+
*
|
|
4
|
+
* This module provides the BaseOutputTransport class which handles audio and
|
|
5
|
+
* video output processing, including frame buffering, mixing, timing, and
|
|
6
|
+
* media streaming.
|
|
7
|
+
*/
|
|
8
|
+
import { Queue, type Task } from "@pipedog/asyncio";
|
|
9
|
+
import type { BaseAudioFilter } from "../audio/filters/base_audio_filter.ts";
|
|
10
|
+
import type { BaseAudioMixer } from "../audio/mixers/base_audio_mixer.ts";
|
|
11
|
+
import type { BaseAudioResampler } from "../audio/resamplers/base_audio_resampler.ts";
|
|
12
|
+
import { CancelFrame, EndFrame, type Frame, InterruptionFrame, MixerControlFrame, OutputAudioRawFrame, OutputDTMFFrame, OutputDTMFUrgentFrame, OutputImageRawFrame, OutputTransportMessageFrame, OutputTransportMessageUrgentFrame, SpeechOutputAudioRawFrame, SpriteFrame, StartFrame, TTSStoppedFrame } from "../frames/frames.ts";
|
|
13
|
+
import { BotCapabilities } from "../pipeline/capabilities.ts";
|
|
14
|
+
import { FrameDirection, FrameProcessor, type FrameProcessorOptions, type FrameProcessorSetup } from "../processors/frame_processor.ts";
|
|
15
|
+
import { FramePriorityQueue, FrameQueue } from "../utils/frame_queue.ts";
|
|
16
|
+
import type { TransportParams } from "./base_transport.ts";
|
|
17
|
+
export declare const BOT_VAD_STOP_SECS = 0.35;
|
|
18
|
+
/** Only used as a fallback. */
|
|
19
|
+
export declare const BOT_VAD_STOP_FALLBACK_SECS = 3;
|
|
20
|
+
/** An OutputAudioRawFrame subclass, so chunks keep the type of the audio they came from. */
|
|
21
|
+
type OutputAudioFrameClass = new (options: {
|
|
22
|
+
audio: Uint8Array;
|
|
23
|
+
sampleRate: number;
|
|
24
|
+
numChannels: number;
|
|
25
|
+
}) => OutputAudioRawFrame;
|
|
26
|
+
/** A clock queue item: (presentation timestamp, insertion counter, frame). */
|
|
27
|
+
type ClockItem = [number, number, Frame];
|
|
28
|
+
/** A run of buffered audio from frames with the same `interruptible` flag. */
|
|
29
|
+
type AudioRun = [Uint8Array, boolean];
|
|
30
|
+
export interface MediaSenderOptions {
|
|
31
|
+
/** The destination identifier for this sender. */
|
|
32
|
+
destination: string | null;
|
|
33
|
+
/** The audio sample rate in Hz. */
|
|
34
|
+
sampleRate: number;
|
|
35
|
+
/** The size of audio chunks in bytes. */
|
|
36
|
+
audioChunkSize: number;
|
|
37
|
+
/** Transport configuration parameters. */
|
|
38
|
+
params: TransportParams;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Handles media streaming for a specific destination.
|
|
42
|
+
*
|
|
43
|
+
* Manages audio and video output processing including buffering, timing,
|
|
44
|
+
* mixing, and frame delivery for a single output destination.
|
|
45
|
+
*
|
|
46
|
+
* Upstream this is the nested class `BaseOutputTransport.MediaSender`, which
|
|
47
|
+
* is also reachable here as `BaseOutputTransport.MediaSender`.
|
|
48
|
+
*/
|
|
49
|
+
export declare class MediaSender {
|
|
50
|
+
protected _transport: BaseOutputTransport;
|
|
51
|
+
protected _destination: string | null;
|
|
52
|
+
protected _sampleRate: number;
|
|
53
|
+
protected _audioChunkSize: number;
|
|
54
|
+
protected _params: TransportParams;
|
|
55
|
+
protected _audioRuns: AudioRun[];
|
|
56
|
+
protected _audioBufferCls: OutputAudioFrameClass;
|
|
57
|
+
protected _resampler: BaseAudioResampler;
|
|
58
|
+
protected _mixer: BaseAudioMixer | null;
|
|
59
|
+
protected _filter: BaseAudioFilter | null;
|
|
60
|
+
protected _volume: number;
|
|
61
|
+
protected _volumeGain: number;
|
|
62
|
+
protected _videoImages: Iterator<OutputImageRawFrame> | null;
|
|
63
|
+
protected _botSpeaking: boolean;
|
|
64
|
+
protected _ttsAudioReceived: boolean;
|
|
65
|
+
protected _botSpeakingFrameTime: number;
|
|
66
|
+
protected _botSpeakingFramePeriod: number;
|
|
67
|
+
protected _botSpeechLastTime: number;
|
|
68
|
+
protected _audioTask: Task<unknown> | null;
|
|
69
|
+
protected _videoTask: Task<unknown> | null;
|
|
70
|
+
protected _clockTask: Task<unknown> | null;
|
|
71
|
+
protected _audioQueue: FrameQueue<Frame>;
|
|
72
|
+
protected _videoQueue: Queue<OutputImageRawFrame>;
|
|
73
|
+
protected _clockQueue: FramePriorityQueue<ClockItem>;
|
|
74
|
+
protected _clockFrame: Frame | null;
|
|
75
|
+
protected _clockQueueCounter: number;
|
|
76
|
+
protected _videoStartTime: number | null;
|
|
77
|
+
protected _videoFrameIndex: number;
|
|
78
|
+
protected _videoFrameDuration: number;
|
|
79
|
+
protected _videoFrameReset: number;
|
|
80
|
+
/**
|
|
81
|
+
* Initialize the media sender.
|
|
82
|
+
*
|
|
83
|
+
* @param transport The parent transport instance.
|
|
84
|
+
* @param options.destination The destination identifier for this sender.
|
|
85
|
+
* @param options.sampleRate The audio sample rate in Hz.
|
|
86
|
+
* @param options.audioChunkSize The size of audio chunks in bytes.
|
|
87
|
+
* @param options.params Transport configuration parameters.
|
|
88
|
+
*/
|
|
89
|
+
constructor(transport: BaseOutputTransport, options: MediaSenderOptions);
|
|
90
|
+
/** The audio sample rate in Hz. */
|
|
91
|
+
get sampleRate(): number;
|
|
92
|
+
/** The size of audio chunks in bytes. */
|
|
93
|
+
get audioChunkSize(): number;
|
|
94
|
+
/**
|
|
95
|
+
* Start the media sender and initialize components.
|
|
96
|
+
*
|
|
97
|
+
* @param frame The start frame containing initialization parameters.
|
|
98
|
+
*/
|
|
99
|
+
start(_frame: StartFrame): Promise<void>;
|
|
100
|
+
/**
|
|
101
|
+
* Stop the media sender and cleanup resources.
|
|
102
|
+
*
|
|
103
|
+
* @param frame The end frame signaling sender shutdown.
|
|
104
|
+
*/
|
|
105
|
+
stop(frame: EndFrame): Promise<void>;
|
|
106
|
+
/**
|
|
107
|
+
* Cancel the media sender and stop all processing.
|
|
108
|
+
*
|
|
109
|
+
* @param frame The cancel frame signaling immediate cancellation.
|
|
110
|
+
*/
|
|
111
|
+
cancel(_frame: CancelFrame): Promise<void>;
|
|
112
|
+
/** Release media sender resources at teardown. */
|
|
113
|
+
cleanup(): Promise<void>;
|
|
114
|
+
/**
|
|
115
|
+
* Handle interruption events by restarting tasks and clearing buffers.
|
|
116
|
+
*
|
|
117
|
+
* @param _ The start interruption frame (unused).
|
|
118
|
+
*/
|
|
119
|
+
handleInterruptions(_: InterruptionFrame): Promise<void>;
|
|
120
|
+
/**
|
|
121
|
+
* Handle incoming audio frames by buffering and chunking.
|
|
122
|
+
*
|
|
123
|
+
* @param frame The output audio frame to handle.
|
|
124
|
+
*/
|
|
125
|
+
handleAudioFrame(frame: OutputAudioRawFrame): Promise<void>;
|
|
126
|
+
/**
|
|
127
|
+
* Handle incoming image frames for video output.
|
|
128
|
+
*
|
|
129
|
+
* @param frame The output image or sprite frame to handle.
|
|
130
|
+
*/
|
|
131
|
+
handleImageFrame(frame: OutputImageRawFrame | SpriteFrame): Promise<void>;
|
|
132
|
+
/**
|
|
133
|
+
* Handle frames with presentation timestamps.
|
|
134
|
+
*
|
|
135
|
+
* @param frame The frame with timing information to handle.
|
|
136
|
+
*/
|
|
137
|
+
handleTimedFrame(frame: Frame): Promise<void>;
|
|
138
|
+
/**
|
|
139
|
+
* Handle frames that need synchronized processing.
|
|
140
|
+
*
|
|
141
|
+
* @param frame The frame to handle synchronously.
|
|
142
|
+
*/
|
|
143
|
+
handleSyncFrame(frame: Frame): Promise<void>;
|
|
144
|
+
/**
|
|
145
|
+
* Queue a TTSStoppedFrame, flushing any trailing buffered audio first.
|
|
146
|
+
*
|
|
147
|
+
* `handleAudioFrame` only queues complete `audioChunkSize` chunks, so up to
|
|
148
|
+
* one chunk's worth of trailing audio can still be sitting in `_audioRuns`.
|
|
149
|
+
* Queue it now (padded to a full chunk with silence) so it plays before the
|
|
150
|
+
* stop frame is handled, instead of being discarded when the buffer is
|
|
151
|
+
* cleared in `_botStoppedSpeaking`.
|
|
152
|
+
*
|
|
153
|
+
* @param frame The TTS stopped frame to queue.
|
|
154
|
+
*/
|
|
155
|
+
handleTtsStopped(frame: TTSStoppedFrame): Promise<void>;
|
|
156
|
+
/**
|
|
157
|
+
* Handle audio mixer control frames.
|
|
158
|
+
*
|
|
159
|
+
* @param frame The mixer control frame to handle.
|
|
160
|
+
*/
|
|
161
|
+
handleMixerControlFrame(frame: MixerControlFrame): Promise<void>;
|
|
162
|
+
/** Create the audio processing task. */
|
|
163
|
+
protected _createAudioTask(): void;
|
|
164
|
+
/** Cancel and cleanup the audio processing task. */
|
|
165
|
+
protected _cancelAudioTask(): Promise<void>;
|
|
166
|
+
/** Handle bot started speaking event. */
|
|
167
|
+
protected _botStartedSpeaking(): Promise<void>;
|
|
168
|
+
/**
|
|
169
|
+
* Queue every bit of audio still held back at the end of a speech run.
|
|
170
|
+
*
|
|
171
|
+
* That means both what the resampler is holding in its filter and what is
|
|
172
|
+
* left in `_audioRuns`, padded with silence to a full chunk. The audio goes
|
|
173
|
+
* out as frames of the same type (e.g. TTSAudioRawFrame) as the audio it
|
|
174
|
+
* was buffered from, on `_audioQueue`, so it takes the normal playback path
|
|
175
|
+
* (write, error handling, bot speaking tracking) like any other chunk, in
|
|
176
|
+
* order relative to whatever is queued after it (e.g. a TTSStoppedFrame).
|
|
177
|
+
*/
|
|
178
|
+
protected _enqueueFlushedAudioBuffer(): Promise<void>;
|
|
179
|
+
protected get _bufferedAudioBytes(): number;
|
|
180
|
+
/** Add output-rate audio to the buffer, noting whether it came from uninterruptible frames. */
|
|
181
|
+
protected _bufferAudio(audio: Uint8Array, options: {
|
|
182
|
+
uninterruptible: boolean;
|
|
183
|
+
}): void;
|
|
184
|
+
/** Cut up to a chunk from the front of the buffer, and whether any of it is uninterruptible. */
|
|
185
|
+
protected _takeAudioChunk(): [Uint8Array, boolean];
|
|
186
|
+
protected _clearAudioBuffer(): void;
|
|
187
|
+
/** Queue one full chunk of output-rate audio for playback. */
|
|
188
|
+
protected _enqueueAudioChunk(audio: Uint8Array, uninterruptible: boolean): Promise<void>;
|
|
189
|
+
/** Handle bot stopped speaking event. */
|
|
190
|
+
protected _botStoppedSpeaking(): Promise<void>;
|
|
191
|
+
/** Handle bot speaking event. */
|
|
192
|
+
protected _botCurrentlySpeaking(): Promise<void>;
|
|
193
|
+
protected _maybeBotCurrentlySpeaking(frame: SpeechOutputAudioRawFrame): Promise<void>;
|
|
194
|
+
protected _handleBotSpeech(frame: Frame): Promise<void>;
|
|
195
|
+
/**
|
|
196
|
+
* Handle various frame types with appropriate processing.
|
|
197
|
+
*
|
|
198
|
+
* @param frame The frame to handle.
|
|
199
|
+
*/
|
|
200
|
+
protected _handleFrame(frame: Frame): Promise<void>;
|
|
201
|
+
/**
|
|
202
|
+
* Run the output filter over a frame taken from the audio queue.
|
|
203
|
+
*
|
|
204
|
+
* @param frame The queued frame. Only audio frames are filtered.
|
|
205
|
+
*/
|
|
206
|
+
protected _filterAudio(frame: Frame): Promise<void>;
|
|
207
|
+
/** Scale an audio frame taken from the audio queue by the volume and its gain. */
|
|
208
|
+
protected _applyVolume(frame: Frame): void;
|
|
209
|
+
/**
|
|
210
|
+
* Generate the next frame for audio processing.
|
|
211
|
+
*
|
|
212
|
+
* @returns An async generator yielding frames for processing.
|
|
213
|
+
*/
|
|
214
|
+
protected _nextFrame(): AsyncGenerator<Frame, void, undefined>;
|
|
215
|
+
protected _sendSilence(secs: number): Promise<void>;
|
|
216
|
+
/** Main audio processing task handler. */
|
|
217
|
+
protected _audioTaskHandler(): Promise<void>;
|
|
218
|
+
/**
|
|
219
|
+
* Write a frame to the transport, giving up if the write never returns.
|
|
220
|
+
*
|
|
221
|
+
* A client that stops reading is the common way to get there: the
|
|
222
|
+
* connection stays up and nothing fails, so the transport has neither an
|
|
223
|
+
* error to report nor state to check. That leaves how long the write takes
|
|
224
|
+
* as the only signal available.
|
|
225
|
+
*
|
|
226
|
+
* @returns Whether the transport took the frame.
|
|
227
|
+
*/
|
|
228
|
+
protected _internalWriteAudioFrame(frame: OutputAudioRawFrame): Promise<boolean>;
|
|
229
|
+
/** Create the video processing task if video output is enabled. */
|
|
230
|
+
protected _createVideoTask(): void;
|
|
231
|
+
/** Cancel and cleanup the video processing task. */
|
|
232
|
+
protected _cancelVideoTask(): Promise<void>;
|
|
233
|
+
/**
|
|
234
|
+
* Set a single video image for cycling output.
|
|
235
|
+
*
|
|
236
|
+
* @param image The image frame to cycle for video output.
|
|
237
|
+
*/
|
|
238
|
+
protected _setVideoImage(image: OutputImageRawFrame): Promise<void>;
|
|
239
|
+
/**
|
|
240
|
+
* Set multiple video images for cycling output.
|
|
241
|
+
*
|
|
242
|
+
* @param images The list of image frames to cycle for video output.
|
|
243
|
+
*/
|
|
244
|
+
protected _setVideoImages(images: OutputImageRawFrame[]): Promise<void>;
|
|
245
|
+
/** Main video processing task handler. */
|
|
246
|
+
protected _videoTaskHandler(): Promise<void>;
|
|
247
|
+
/** Handle live video streaming with frame timing. */
|
|
248
|
+
protected _videoIsLiveHandler(): Promise<void>;
|
|
249
|
+
/**
|
|
250
|
+
* Draw/render an image frame with resizing if needed.
|
|
251
|
+
*
|
|
252
|
+
* @param frame The image frame to draw.
|
|
253
|
+
*/
|
|
254
|
+
protected _drawImage(frame: OutputImageRawFrame): Promise<void>;
|
|
255
|
+
/**
|
|
256
|
+
* Resize an image frame to the transport's output size.
|
|
257
|
+
*
|
|
258
|
+
* Upstream decodes the raw bytes with PIL (`Image.frombytes`), resizes them
|
|
259
|
+
* and re-encodes them in the image's mode. There is no edge-compatible PIL
|
|
260
|
+
* equivalent yet; override this (or provide a resizer) to support images
|
|
261
|
+
* whose size differs from `videoOutWidth` x `videoOutHeight`.
|
|
262
|
+
*
|
|
263
|
+
* @param frame The image frame to resize (its `format` is set).
|
|
264
|
+
* @param desiredSize The output size as [width, height].
|
|
265
|
+
* @returns A new OutputImageRawFrame with the resized image.
|
|
266
|
+
*/
|
|
267
|
+
protected _resizeImage(_frame: OutputImageRawFrame, _desiredSize: [number, number]): OutputImageRawFrame;
|
|
268
|
+
/** Create the clock/timing processing task. */
|
|
269
|
+
protected _createClockTask(): void;
|
|
270
|
+
/** Cancel and cleanup the clock processing task. */
|
|
271
|
+
protected _cancelClockTask(): Promise<void>;
|
|
272
|
+
/** Main clock/timing task handler for timed frame delivery. */
|
|
273
|
+
protected _clockTaskHandler(): Promise<void>;
|
|
274
|
+
toString(): string;
|
|
275
|
+
}
|
|
276
|
+
/**
|
|
277
|
+
* Base class for output transport implementations.
|
|
278
|
+
*
|
|
279
|
+
* Handles audio and video output processing including frame buffering, audio
|
|
280
|
+
* mixing, timing coordination, and media streaming. Supports multiple output
|
|
281
|
+
* destinations and provides interruption handling for real-time
|
|
282
|
+
* communication.
|
|
283
|
+
*
|
|
284
|
+
* The deprecated `TransportParams.video_out_bitrate` (and its deprecation
|
|
285
|
+
* warning) is not ported.
|
|
286
|
+
*/
|
|
287
|
+
export declare class BaseOutputTransport extends FrameProcessor {
|
|
288
|
+
/** Upstream's nested class `BaseOutputTransport.MediaSender`. */
|
|
289
|
+
static readonly MediaSender: typeof MediaSender;
|
|
290
|
+
protected _params: TransportParams;
|
|
291
|
+
protected _sampleRate: number;
|
|
292
|
+
protected _audioChunkSize: number;
|
|
293
|
+
protected _mediaSenders: Map<string | null, MediaSender>;
|
|
294
|
+
/**
|
|
295
|
+
* Initialize the base output transport.
|
|
296
|
+
*
|
|
297
|
+
* @param params Transport configuration parameters.
|
|
298
|
+
* @param options Additional options passed to the parent class.
|
|
299
|
+
*/
|
|
300
|
+
constructor(params: TransportParams, options?: FrameProcessorOptions);
|
|
301
|
+
/** The current audio sample rate in Hz. */
|
|
302
|
+
get sampleRate(): number;
|
|
303
|
+
/** The size of audio chunks for output processing, in bytes. */
|
|
304
|
+
get audioChunkSize(): number;
|
|
305
|
+
/** The media this transport sends to the user: the `audio_out` and `video_out` capabilities. */
|
|
306
|
+
get capabilities(): BotCapabilities;
|
|
307
|
+
/**
|
|
308
|
+
* Set up the transport.
|
|
309
|
+
*
|
|
310
|
+
* @param setup Configuration object containing setup parameters.
|
|
311
|
+
*/
|
|
312
|
+
setup(setup: FrameProcessorSetup): Promise<void>;
|
|
313
|
+
/** Release output transport resources at teardown. */
|
|
314
|
+
cleanup(): Promise<void>;
|
|
315
|
+
/**
|
|
316
|
+
* Start the output transport.
|
|
317
|
+
*
|
|
318
|
+
* Base hook for subclasses, which reach it through `super`. The transport's
|
|
319
|
+
* own audio configuration is resolved in `setup`.
|
|
320
|
+
*
|
|
321
|
+
* @param frame The start frame containing initialization parameters.
|
|
322
|
+
*/
|
|
323
|
+
start(_frame: StartFrame): Promise<void>;
|
|
324
|
+
/**
|
|
325
|
+
* Stop the output transport and cleanup resources.
|
|
326
|
+
*
|
|
327
|
+
* @param frame The end frame signaling transport shutdown.
|
|
328
|
+
*/
|
|
329
|
+
stop(frame: EndFrame): Promise<void>;
|
|
330
|
+
/**
|
|
331
|
+
* Cancel the output transport and stop all processing.
|
|
332
|
+
*
|
|
333
|
+
* @param frame The cancel frame signaling immediate cancellation.
|
|
334
|
+
*/
|
|
335
|
+
cancel(frame: CancelFrame): Promise<void>;
|
|
336
|
+
/**
|
|
337
|
+
* Called when the transport is ready to stream.
|
|
338
|
+
*
|
|
339
|
+
* @param frame The start frame containing initialization parameters.
|
|
340
|
+
*/
|
|
341
|
+
setTransportReady(frame: StartFrame): Promise<void>;
|
|
342
|
+
/**
|
|
343
|
+
* Send a transport message.
|
|
344
|
+
*
|
|
345
|
+
* @param frame The transport message frame to send.
|
|
346
|
+
*/
|
|
347
|
+
sendMessage(_frame: OutputTransportMessageFrame | OutputTransportMessageUrgentFrame): Promise<void>;
|
|
348
|
+
/**
|
|
349
|
+
* Register a video output destination.
|
|
350
|
+
*
|
|
351
|
+
* @param destination The destination identifier to register.
|
|
352
|
+
*/
|
|
353
|
+
registerVideoDestination(_destination: string): Promise<void>;
|
|
354
|
+
/**
|
|
355
|
+
* Register an audio output destination.
|
|
356
|
+
*
|
|
357
|
+
* @param destination The destination identifier to register.
|
|
358
|
+
*/
|
|
359
|
+
registerAudioDestination(_destination: string): Promise<void>;
|
|
360
|
+
/**
|
|
361
|
+
* Write a video frame to the transport.
|
|
362
|
+
*
|
|
363
|
+
* @param frame The output video frame to write.
|
|
364
|
+
* @returns True if the video frame was written successfully, false otherwise.
|
|
365
|
+
*/
|
|
366
|
+
writeVideoFrame(_frame: OutputImageRawFrame): Promise<boolean>;
|
|
367
|
+
/**
|
|
368
|
+
* Write an audio frame to the transport.
|
|
369
|
+
*
|
|
370
|
+
* @param frame The output audio frame to write.
|
|
371
|
+
* @returns Whether the transport took the frame. A serializer that emits no
|
|
372
|
+
* payload has still taken it; see `FrameSerializer.serialize`.
|
|
373
|
+
*/
|
|
374
|
+
writeAudioFrame(_frame: OutputAudioRawFrame): Promise<boolean>;
|
|
375
|
+
/**
|
|
376
|
+
* Write a DTMF tone using the transport's preferred method.
|
|
377
|
+
*
|
|
378
|
+
* @param frame The DTMF frame to write.
|
|
379
|
+
*/
|
|
380
|
+
writeDtmf(frame: OutputDTMFFrame | OutputDTMFUrgentFrame): Promise<void>;
|
|
381
|
+
/**
|
|
382
|
+
* Handle a queued frame after preceding audio has been sent.
|
|
383
|
+
*
|
|
384
|
+
* Override in transport subclasses to handle custom frame types that flow
|
|
385
|
+
* through the audio queue. Called by the media sender after the frame has
|
|
386
|
+
* waited for any preceding audio to finish.
|
|
387
|
+
*
|
|
388
|
+
* @param frame The frame to handle.
|
|
389
|
+
*/
|
|
390
|
+
writeTransportFrame(_frame: Frame): Promise<void>;
|
|
391
|
+
/**
|
|
392
|
+
* Override in transport implementations that support native DTMF.
|
|
393
|
+
*
|
|
394
|
+
* @returns True if the transport supports native DTMF, false otherwise.
|
|
395
|
+
*/
|
|
396
|
+
protected _supportsNativeDtmf(): boolean;
|
|
397
|
+
/**
|
|
398
|
+
* Override in transport implementations for native DTMF.
|
|
399
|
+
*
|
|
400
|
+
* @param frame The DTMF frame to write.
|
|
401
|
+
*/
|
|
402
|
+
protected _writeDtmfNative(_frame: OutputDTMFFrame | OutputDTMFUrgentFrame): Promise<void>;
|
|
403
|
+
/**
|
|
404
|
+
* Generate and send audio tones for DTMF.
|
|
405
|
+
*
|
|
406
|
+
* @param frame The DTMF frame to write.
|
|
407
|
+
*/
|
|
408
|
+
protected _writeDtmfAudio(frame: OutputDTMFFrame | OutputDTMFUrgentFrame): Promise<void>;
|
|
409
|
+
/**
|
|
410
|
+
* Send an audio frame downstream.
|
|
411
|
+
*
|
|
412
|
+
* @param frame The audio frame to send.
|
|
413
|
+
*/
|
|
414
|
+
sendAudio(frame: OutputAudioRawFrame): Promise<void>;
|
|
415
|
+
/**
|
|
416
|
+
* Send an image frame downstream.
|
|
417
|
+
*
|
|
418
|
+
* @param frame The image frame to send.
|
|
419
|
+
*/
|
|
420
|
+
sendImage(frame: OutputImageRawFrame | SpriteFrame): Promise<void>;
|
|
421
|
+
/**
|
|
422
|
+
* Process incoming frames and handle transport-specific logic.
|
|
423
|
+
*
|
|
424
|
+
* @param frame The frame to process.
|
|
425
|
+
* @param direction The direction of frame flow in the pipeline.
|
|
426
|
+
*/
|
|
427
|
+
processFrame(frame: Frame, direction: FrameDirection): Promise<void>;
|
|
428
|
+
/** Handle frames by routing them to appropriate media senders. */
|
|
429
|
+
protected _handleFrame(frame: Frame): Promise<void>;
|
|
430
|
+
}
|
|
431
|
+
export {};
|
|
432
|
+
//# sourceMappingURL=base_output.d.ts.map
|