@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,86 @@
|
|
|
1
|
+
// Copyright (c) 2024-2026, Daily
|
|
2
|
+
// Copyright (c) 2026, pipedog contributors
|
|
3
|
+
// SPDX-License-Identifier: BSD-2-Clause
|
|
4
|
+
//
|
|
5
|
+
// Ported from pipecat: src/pipecat/processors/aggregators/gated_llm_context.py
|
|
6
|
+
import { CancelFrame, EndFrame, LLMContextFrame, StartFrame, } from "../../frames/frames.js";
|
|
7
|
+
import { FrameProcessor, } from "../frame_processor.js";
|
|
8
|
+
/**
|
|
9
|
+
* Aggregator that gates LLM context frames until notified.
|
|
10
|
+
*
|
|
11
|
+
* This aggregator captures LLM context frames and holds them until a notifier
|
|
12
|
+
* signals that they can be released. This is useful for controlling the flow
|
|
13
|
+
* of context frames based on external conditions or timing.
|
|
14
|
+
*/
|
|
15
|
+
export class GatedLLMContextAggregator extends FrameProcessor {
|
|
16
|
+
_notifier;
|
|
17
|
+
_startOpen;
|
|
18
|
+
_lastContextFrame = null;
|
|
19
|
+
_gateTask = null;
|
|
20
|
+
/** Initialize the gated context aggregator. */
|
|
21
|
+
constructor(options) {
|
|
22
|
+
super(options);
|
|
23
|
+
this._notifier = options.notifier;
|
|
24
|
+
this._startOpen = options.startOpen ?? false;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Process incoming frames, gating LLM context frames.
|
|
28
|
+
*
|
|
29
|
+
* @param frame The frame to process.
|
|
30
|
+
* @param direction The direction of frame flow in the pipeline.
|
|
31
|
+
*/
|
|
32
|
+
async processFrame(frame, direction) {
|
|
33
|
+
await super.processFrame(frame, direction);
|
|
34
|
+
if (frame instanceof StartFrame) {
|
|
35
|
+
await this.pushFrame(frame);
|
|
36
|
+
await this._start();
|
|
37
|
+
}
|
|
38
|
+
if (frame instanceof EndFrame || frame instanceof CancelFrame) {
|
|
39
|
+
await this._stop();
|
|
40
|
+
await this.pushFrame(frame);
|
|
41
|
+
}
|
|
42
|
+
else if (frame instanceof LLMContextFrame) {
|
|
43
|
+
if (this._startOpen) {
|
|
44
|
+
this._startOpen = false;
|
|
45
|
+
await this.pushFrame(frame, direction);
|
|
46
|
+
}
|
|
47
|
+
else {
|
|
48
|
+
this._lastContextFrame = frame;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
else {
|
|
52
|
+
// NOTE: as upstream, a StartFrame also reaches this branch and is pushed
|
|
53
|
+
// a second time.
|
|
54
|
+
await this.pushFrame(frame, direction);
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
/** Release resources held by the aggregator. */
|
|
58
|
+
async cleanup() {
|
|
59
|
+
await super.cleanup();
|
|
60
|
+
await this._stop();
|
|
61
|
+
}
|
|
62
|
+
/** Start the gate task handler. */
|
|
63
|
+
async _start() {
|
|
64
|
+
if (!this._gateTask) {
|
|
65
|
+
this._gateTask = this.createTask(() => this._gateTaskHandler(), "_gate_task_handler");
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
/** Stop the gate task handler. */
|
|
69
|
+
async _stop() {
|
|
70
|
+
if (this._gateTask) {
|
|
71
|
+
await this.cancelTask(this._gateTask);
|
|
72
|
+
this._gateTask = null;
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
/** Handle the gating logic by waiting for notifications and releasing frames. */
|
|
76
|
+
async _gateTaskHandler() {
|
|
77
|
+
while (true) {
|
|
78
|
+
await this._notifier.wait();
|
|
79
|
+
if (this._lastContextFrame) {
|
|
80
|
+
await this.pushFrame(this._lastContextFrame);
|
|
81
|
+
this._lastContextFrame = null;
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
//# sourceMappingURL=gated_llm_context.js.map
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
// Copyright (c) 2024-2026, Daily
|
|
2
|
+
// Copyright (c) 2026, pipedog contributors
|
|
3
|
+
// SPDX-License-Identifier: BSD-2-Clause
|
|
4
|
+
//
|
|
5
|
+
// Ported from pipecat: src/pipecat/processors/aggregators/__init__.py
|
|
6
|
+
// The upstream package initializer is empty; import the modules directly.
|
|
7
|
+
export {};
|
|
8
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1,370 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Universal LLM context management for LLM services in Pipecat.
|
|
3
|
+
*
|
|
4
|
+
* Context contents are represented in a universal format (based on OpenAI)
|
|
5
|
+
* that supports a union of known Pipecat LLM service functionality.
|
|
6
|
+
*
|
|
7
|
+
* Whenever an LLM service needs to access context, it does a just-in-time
|
|
8
|
+
* translation from this universal context into whatever format it needs,
|
|
9
|
+
* using a service-specific adapter.
|
|
10
|
+
*/
|
|
11
|
+
import type { DirectFunction } from "../../adapters/schemas/direct_function.ts";
|
|
12
|
+
import { FunctionSchema } from "../../adapters/schemas/function_schema.ts";
|
|
13
|
+
import { ToolsSchema } from "../../adapters/schemas/tools_schema.ts";
|
|
14
|
+
import type { AudioRawFrame, FileSourceType } from "../../frames/frames.ts";
|
|
15
|
+
import { type NotGiven } from "../../utils/types.ts";
|
|
16
|
+
export { isGiven, NOT_GIVEN, NotGiven } from "../../utils/types.ts";
|
|
17
|
+
/**
|
|
18
|
+
* A message in the universal (OpenAI-based) context format: an object with a
|
|
19
|
+
* `role` and, usually, a `content` that is a string or a list of content parts.
|
|
20
|
+
* Keys are the wire keys (`tool_call_id`, `tool_calls`, ...), unchanged.
|
|
21
|
+
*/
|
|
22
|
+
export interface LLMStandardMessage {
|
|
23
|
+
role: string;
|
|
24
|
+
content?: any;
|
|
25
|
+
[key: string]: any;
|
|
26
|
+
}
|
|
27
|
+
/** The tool choice strategy, in OpenAI's `tool_choice` format. */
|
|
28
|
+
export type LLMContextToolChoice = "none" | "auto" | "required" | {
|
|
29
|
+
type: "function";
|
|
30
|
+
function: {
|
|
31
|
+
name: string;
|
|
32
|
+
};
|
|
33
|
+
} | Record<string, any>;
|
|
34
|
+
/**
|
|
35
|
+
* A container for a context message that is specific to a particular LLM service.
|
|
36
|
+
*
|
|
37
|
+
* Enables the use of service-specific message types while maintaining
|
|
38
|
+
* compatibility with the universal LLM context format.
|
|
39
|
+
*/
|
|
40
|
+
export declare class LLMSpecificMessage {
|
|
41
|
+
llm: string;
|
|
42
|
+
message: unknown;
|
|
43
|
+
constructor(options: {
|
|
44
|
+
llm: string;
|
|
45
|
+
message: unknown;
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
export type LLMContextMessage = LLMStandardMessage | LLMSpecificMessage;
|
|
49
|
+
/** The tools accepted by LLMContext: a ToolsSchema, a plain list, or NOT_GIVEN. */
|
|
50
|
+
export type LLMContextTools = ToolsSchema | (FunctionSchema | DirectFunction)[] | NotGiven;
|
|
51
|
+
/**
|
|
52
|
+
* Return the text of a standard context message, joining the text parts of
|
|
53
|
+
* list content.
|
|
54
|
+
*
|
|
55
|
+
* @param message A context message.
|
|
56
|
+
* @returns The text, or `""` for a message in a service's own format or one
|
|
57
|
+
* that carries no text.
|
|
58
|
+
*/
|
|
59
|
+
export declare function standardMessageText(message: LLMContextMessage): string;
|
|
60
|
+
export interface LLMContextOptions {
|
|
61
|
+
/** Initial list of conversation messages. */
|
|
62
|
+
messages?: LLMContextMessage[] | null;
|
|
63
|
+
/**
|
|
64
|
+
* Available tools for the LLM to use. May be a `ToolsSchema` or a plain
|
|
65
|
+
* list of direct functions and/or `FunctionSchema` objects (normalized to a
|
|
66
|
+
* `ToolsSchema` internally). Any tool that carries a handler (a direct
|
|
67
|
+
* function, or a `FunctionSchema` with its `handler` set) is registered
|
|
68
|
+
* with the LLM service automatically, so no separate `registerFunction`
|
|
69
|
+
* call is needed.
|
|
70
|
+
*/
|
|
71
|
+
tools?: LLMContextTools;
|
|
72
|
+
/** Tool selection strategy for the LLM. */
|
|
73
|
+
toolChoice?: LLMContextToolChoice | NotGiven;
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Manages conversation context for LLM interactions.
|
|
77
|
+
*
|
|
78
|
+
* Handles message history, tool definitions, tool choices, and multimedia
|
|
79
|
+
* content for LLM conversations. Provides methods for message manipulation,
|
|
80
|
+
* and content formatting.
|
|
81
|
+
*/
|
|
82
|
+
export declare class LLMContext {
|
|
83
|
+
protected _messages: LLMContextMessage[];
|
|
84
|
+
protected _tools: ToolsSchema | NotGiven;
|
|
85
|
+
protected _toolChoice: LLMContextToolChoice | NotGiven;
|
|
86
|
+
constructor(options?: LLMContextOptions);
|
|
87
|
+
/**
|
|
88
|
+
* Create a context message containing an image URL.
|
|
89
|
+
*
|
|
90
|
+
* @param options.role The role of this message (defaults to "user").
|
|
91
|
+
* @param options.url The URL of the image.
|
|
92
|
+
* @param options.text Optional text to include with the image.
|
|
93
|
+
*/
|
|
94
|
+
static createImageUrlMessage(options: {
|
|
95
|
+
role?: string;
|
|
96
|
+
url: string;
|
|
97
|
+
text?: string | null;
|
|
98
|
+
}): LLMContextMessage;
|
|
99
|
+
/**
|
|
100
|
+
* Create a context message containing an image.
|
|
101
|
+
*
|
|
102
|
+
* @param options.role The role of this message (defaults to "user").
|
|
103
|
+
* @param options.format Image format (e.g. 'RGB', 'RGBA', or, if already
|
|
104
|
+
* encoded, the MIME type like 'image/jpeg').
|
|
105
|
+
* @param options.size Image dimensions as [width, height].
|
|
106
|
+
* @param options.image Raw image bytes.
|
|
107
|
+
* @param options.text Optional text to include with the image.
|
|
108
|
+
*/
|
|
109
|
+
static createImageMessage(options: {
|
|
110
|
+
role?: string;
|
|
111
|
+
format: string;
|
|
112
|
+
size: [number, number];
|
|
113
|
+
image: Uint8Array;
|
|
114
|
+
text?: string | null;
|
|
115
|
+
}): Promise<LLMContextMessage>;
|
|
116
|
+
/**
|
|
117
|
+
* Create a context message containing a file.
|
|
118
|
+
*
|
|
119
|
+
* @param options.role The role of this message (defaults to "user").
|
|
120
|
+
* @param options.type The type of the file.
|
|
121
|
+
* @param options.format MIME type of the file (e.g. "application/pdf").
|
|
122
|
+
* @param options.file Base64 data URL (`data:<mime>;base64,...`) or plain URL string.
|
|
123
|
+
* @param options.name Optional name of the file.
|
|
124
|
+
* @param options.text Optional text to include with the file.
|
|
125
|
+
*/
|
|
126
|
+
static createFileMessage(options: {
|
|
127
|
+
role?: string;
|
|
128
|
+
type: FileSourceType;
|
|
129
|
+
format: string;
|
|
130
|
+
file: string;
|
|
131
|
+
name?: string | null;
|
|
132
|
+
text?: string | null;
|
|
133
|
+
}): Promise<LLMContextMessage>;
|
|
134
|
+
/**
|
|
135
|
+
* Create a context message containing an image or file URL.
|
|
136
|
+
*
|
|
137
|
+
* @param options.role The role of this message (defaults to "user").
|
|
138
|
+
* @param options.format The MIME type of the file (e.g. 'application/pdf').
|
|
139
|
+
* @param options.url The URL of the image or file.
|
|
140
|
+
* @param options.filename Optional name of the file.
|
|
141
|
+
* @param options.text Optional text to include with the image or file.
|
|
142
|
+
*/
|
|
143
|
+
static createFileUrlMessage(options: {
|
|
144
|
+
role?: string;
|
|
145
|
+
format: string;
|
|
146
|
+
url: string;
|
|
147
|
+
filename?: string | null;
|
|
148
|
+
text?: string | null;
|
|
149
|
+
}): LLMContextMessage;
|
|
150
|
+
/**
|
|
151
|
+
* Create a context message containing audio.
|
|
152
|
+
*
|
|
153
|
+
* @param options.role The role of this message (defaults to "user").
|
|
154
|
+
* @param options.audioFrames List of audio frame objects to include.
|
|
155
|
+
* @param options.text Optional text to include with the audio.
|
|
156
|
+
*/
|
|
157
|
+
static createAudioMessage(options: {
|
|
158
|
+
role?: string;
|
|
159
|
+
audioFrames: AudioRawFrame[];
|
|
160
|
+
text?: string;
|
|
161
|
+
}): Promise<LLMContextMessage>;
|
|
162
|
+
/**
|
|
163
|
+
* Get the current messages list.
|
|
164
|
+
*
|
|
165
|
+
* NOTE: This is equivalent to calling `getMessages()` with no filter. If
|
|
166
|
+
* you want to filter out LLM-specific messages that don't pertain to your
|
|
167
|
+
* LLM, use `getMessages()` directly.
|
|
168
|
+
*
|
|
169
|
+
* @returns List of conversation messages.
|
|
170
|
+
*/
|
|
171
|
+
get messages(): LLMContextMessage[];
|
|
172
|
+
/**
|
|
173
|
+
* Get the current messages list.
|
|
174
|
+
*
|
|
175
|
+
* @param llmSpecificFilter Optional filter to return LLM-specific messages
|
|
176
|
+
* for the given LLM, in addition to the standard messages. If messages end
|
|
177
|
+
* up being filtered, an error will be logged; this is intended to catch
|
|
178
|
+
* accidental use of incompatible LLM-specific messages.
|
|
179
|
+
* @param options.truncateLargeValues If true, return deep copies of
|
|
180
|
+
* messages with large values shortened. For standard messages, known
|
|
181
|
+
* binary data (base64-encoded images, audio) is replaced with short
|
|
182
|
+
* placeholders. For LLM-specific messages, long string values are
|
|
183
|
+
* truncated.
|
|
184
|
+
* @returns List of conversation messages.
|
|
185
|
+
*/
|
|
186
|
+
getMessages(llmSpecificFilter?: string | null, options?: {
|
|
187
|
+
truncateLargeValues?: boolean;
|
|
188
|
+
}): LLMContextMessage[];
|
|
189
|
+
/**
|
|
190
|
+
* Return deep copies of messages with large values replaced by placeholders.
|
|
191
|
+
*
|
|
192
|
+
* For standard (universal-format) messages, the following known binary
|
|
193
|
+
* patterns are replaced with short placeholders:
|
|
194
|
+
*
|
|
195
|
+
* - `image_url` items with `data:image/...` base64 URLs
|
|
196
|
+
* - `input_audio` items with `input_audio.data` or `audio` fields
|
|
197
|
+
* - `audio` items with an `audio` field
|
|
198
|
+
* - Top-level messages with a `mime_type` starting with `image/`
|
|
199
|
+
*
|
|
200
|
+
* For `LLMSpecificMessage` instances, long string values are truncated
|
|
201
|
+
* since the internal structure is provider-specific.
|
|
202
|
+
*/
|
|
203
|
+
protected static _truncateLargeValuesFromMessages(messages: LLMContextMessage[]): LLMContextMessage[];
|
|
204
|
+
/**
|
|
205
|
+
* Recursively truncate long strings in a nested structure.
|
|
206
|
+
*
|
|
207
|
+
* Preserves the structure of objects and lists while truncating any string
|
|
208
|
+
* values that exceed `maxLength`.
|
|
209
|
+
*
|
|
210
|
+
* @param value The value to process (object, list, string, or other).
|
|
211
|
+
* @param options.maxLength Strings longer than this are truncated.
|
|
212
|
+
* @returns A copy of the structure with long strings truncated.
|
|
213
|
+
*/
|
|
214
|
+
protected static _truncateLongStrings(value: unknown, options?: {
|
|
215
|
+
maxLength?: number;
|
|
216
|
+
}): unknown;
|
|
217
|
+
/**
|
|
218
|
+
* Get the tools list.
|
|
219
|
+
*
|
|
220
|
+
* @returns Tools list.
|
|
221
|
+
*/
|
|
222
|
+
get tools(): ToolsSchema | NotGiven;
|
|
223
|
+
/**
|
|
224
|
+
* Get the current tool choice setting.
|
|
225
|
+
*
|
|
226
|
+
* @returns The tool choice configuration.
|
|
227
|
+
*/
|
|
228
|
+
get toolChoice(): LLMContextToolChoice | NotGiven;
|
|
229
|
+
/**
|
|
230
|
+
* Add a single message to the context.
|
|
231
|
+
*
|
|
232
|
+
* @param message The message to add to the conversation history.
|
|
233
|
+
*/
|
|
234
|
+
addMessage(message: LLMContextMessage): void;
|
|
235
|
+
/**
|
|
236
|
+
* Add multiple messages to the context.
|
|
237
|
+
*
|
|
238
|
+
* @param messages List of messages to add to the conversation history.
|
|
239
|
+
*/
|
|
240
|
+
addMessages(messages: LLMContextMessage[]): void;
|
|
241
|
+
/**
|
|
242
|
+
* Replace all messages in the context.
|
|
243
|
+
*
|
|
244
|
+
* @param messages New list of messages to replace the current history.
|
|
245
|
+
*/
|
|
246
|
+
setMessages(messages: LLMContextMessage[]): void;
|
|
247
|
+
/**
|
|
248
|
+
* Transform the current messages using the provided function.
|
|
249
|
+
*
|
|
250
|
+
* @param transform A function that takes the current list of messages and
|
|
251
|
+
* returns a modified list of messages to set in the context.
|
|
252
|
+
*/
|
|
253
|
+
transformMessages(transform: (messages: LLMContextMessage[]) => LLMContextMessage[]): void;
|
|
254
|
+
/**
|
|
255
|
+
* Set the available tools for the LLM.
|
|
256
|
+
*
|
|
257
|
+
* @param tools A ToolsSchema, a plain list of direct functions and/or
|
|
258
|
+
* `FunctionSchema` objects, or NOT_GIVEN to disable tools.
|
|
259
|
+
*/
|
|
260
|
+
setTools(tools?: LLMContextTools): void;
|
|
261
|
+
/**
|
|
262
|
+
* Set the tool choice configuration.
|
|
263
|
+
*
|
|
264
|
+
* @param toolChoice Tool selection strategy for the LLM.
|
|
265
|
+
*/
|
|
266
|
+
setToolChoice(toolChoice: LLMContextToolChoice | NotGiven): void;
|
|
267
|
+
/**
|
|
268
|
+
* Add a message containing an image frame.
|
|
269
|
+
*
|
|
270
|
+
* @param options.format Image format (e.g. 'RGB', 'RGBA', or, if already
|
|
271
|
+
* encoded, the MIME type like 'image/jpeg').
|
|
272
|
+
* @param options.size Image dimensions as [width, height].
|
|
273
|
+
* @param options.image Raw image bytes.
|
|
274
|
+
* @param options.text Optional text to include with the image.
|
|
275
|
+
* @param options.role The role of this message (defaults to "user").
|
|
276
|
+
*/
|
|
277
|
+
addImageFrameMessage(options: {
|
|
278
|
+
format: string;
|
|
279
|
+
size: [number, number];
|
|
280
|
+
image: Uint8Array;
|
|
281
|
+
text?: string | null;
|
|
282
|
+
role?: string;
|
|
283
|
+
}): Promise<void>;
|
|
284
|
+
/**
|
|
285
|
+
* Add a message containing a file frame.
|
|
286
|
+
*
|
|
287
|
+
* @param options.type File source type.
|
|
288
|
+
* @param options.format MIME type of the file (e.g. 'application/pdf').
|
|
289
|
+
* @param options.file Base64 data URL (`data:<mime>;base64,...`) or plain
|
|
290
|
+
* URL string. URL fetching for providers that require bytes is handled by
|
|
291
|
+
* the provider adapter during message conversion.
|
|
292
|
+
* @param options.text Optional text to accompany the file.
|
|
293
|
+
* @param options.name Optional file name.
|
|
294
|
+
* @param options.role Message role (defaults to 'user').
|
|
295
|
+
*/
|
|
296
|
+
addFileFrameMessage(options: {
|
|
297
|
+
type: FileSourceType;
|
|
298
|
+
format: string;
|
|
299
|
+
file: string;
|
|
300
|
+
text?: string | null;
|
|
301
|
+
name?: string | null;
|
|
302
|
+
role?: string;
|
|
303
|
+
}): Promise<void>;
|
|
304
|
+
/**
|
|
305
|
+
* Add a message containing audio frames.
|
|
306
|
+
*
|
|
307
|
+
* @param options.audioFrames List of audio frame objects to include.
|
|
308
|
+
* @param options.text Optional text to include with the audio.
|
|
309
|
+
*/
|
|
310
|
+
addAudioFramesMessage(options: {
|
|
311
|
+
audioFrames: AudioRawFrame[];
|
|
312
|
+
text?: string;
|
|
313
|
+
}): Promise<void>;
|
|
314
|
+
/**
|
|
315
|
+
* Remove the oldest file or image message added since the model's last
|
|
316
|
+
* successful reply.
|
|
317
|
+
*
|
|
318
|
+
* Best-effort cleanup for an LLM service to call once it's determined (from
|
|
319
|
+
* a provider-specific error) that a request was rejected due to unsupported
|
|
320
|
+
* or malformed file content, e.g. an unsupported MIME type, corrupt bytes,
|
|
321
|
+
* or an image whose bytes don't match its declared media type. Removing it
|
|
322
|
+
* prevents the context from getting permanently stuck retrying the same
|
|
323
|
+
* failure. Images count as files here: both are discrete client-supplied
|
|
324
|
+
* attachments a provider can reject the same way. Audio content
|
|
325
|
+
* deliberately doesn't: audio-in-context flows append audio as ordinary
|
|
326
|
+
* conversation every turn, so removing the oldest audio message on an
|
|
327
|
+
* unrelated rejection would discard real conversation rather than a bad
|
|
328
|
+
* attachment.
|
|
329
|
+
*
|
|
330
|
+
* Providers don't say which message or content item triggered the
|
|
331
|
+
* rejection, so there's no way to identify the exact culprit; this is a
|
|
332
|
+
* heuristic, not a precise fix. An assistant message proves everything
|
|
333
|
+
* before it was already accepted by a prior successful completion
|
|
334
|
+
* (assistant messages are only ever appended after a completion succeeds),
|
|
335
|
+
* so only file messages added since the last one are candidates; a file
|
|
336
|
+
* from an earlier, already-successful turn is never at risk. If several
|
|
337
|
+
* files are candidates (e.g. sent in quick succession before either went
|
|
338
|
+
* through a completion), only the oldest is removed: if it wasn't the actual
|
|
339
|
+
* culprit, the next retry fails again and removes the next-oldest,
|
|
340
|
+
* converging on the bad file within a few retries without ever knowing
|
|
341
|
+
* which one the provider meant.
|
|
342
|
+
*
|
|
343
|
+
* @returns True if a file or image message was found and removed.
|
|
344
|
+
*/
|
|
345
|
+
removeInvalidFileMessage(): boolean;
|
|
346
|
+
/**
|
|
347
|
+
* Normalize and validate the given tools.
|
|
348
|
+
*
|
|
349
|
+
* A plain list of direct functions and/or `FunctionSchema` objects is
|
|
350
|
+
* wrapped in a `ToolsSchema`.
|
|
351
|
+
*
|
|
352
|
+
* @param tools The tools to normalize: a `ToolsSchema`, a list of direct
|
|
353
|
+
* functions and/or `FunctionSchema` objects, or `NOT_GIVEN`.
|
|
354
|
+
* @param options.allowProviderTools If true, a list that isn't entirely
|
|
355
|
+
* standard tools (direct functions / `FunctionSchema` objects) is taken to
|
|
356
|
+
* be already-formatted, provider-native tools and returned unchanged
|
|
357
|
+
* rather than throwing. For callers whose tools parameter accepts
|
|
358
|
+
* provider-native tools alongside standard ones.
|
|
359
|
+
* @throws TypeError If tools aren't a `ToolsSchema`, list, or `NOT_GIVEN`,
|
|
360
|
+
* or, unless `allowProviderTools` is set, if a list contains anything
|
|
361
|
+
* other than standard tools.
|
|
362
|
+
*/
|
|
363
|
+
static _normalizeAndValidateTools(tools: LLMContextTools, options?: {
|
|
364
|
+
allowProviderTools?: false;
|
|
365
|
+
}): ToolsSchema | NotGiven;
|
|
366
|
+
static _normalizeAndValidateTools(tools: ToolsSchema | unknown[] | NotGiven, options: {
|
|
367
|
+
allowProviderTools: true;
|
|
368
|
+
}): ToolsSchema | unknown[] | NotGiven;
|
|
369
|
+
}
|
|
370
|
+
//# sourceMappingURL=llm_context.d.ts.map
|