@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,68 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Decorator for marking methods as LLM tools.
|
|
3
|
+
*
|
|
4
|
+
* Porting notes:
|
|
5
|
+
* - The deprecated `timeout` alias of `timeoutSecs` is not ported.
|
|
6
|
+
* - `_collectTools` returns the (unbound) methods found on the prototype
|
|
7
|
+
* chain, not bound methods: direct-function metadata is read from a
|
|
8
|
+
* function's source, which a bound function does not expose. `LLMWorker`
|
|
9
|
+
* binds each one to the worker when it registers it on the LLM.
|
|
10
|
+
*/
|
|
11
|
+
import { type ToolOptionsMetadata } from "../../adapters/schemas/direct_function.ts";
|
|
12
|
+
type AnyFn = (...args: any[]) => any;
|
|
13
|
+
/** Options accepted by `tool()`. */
|
|
14
|
+
export interface ToolDecoratorOptions {
|
|
15
|
+
/**
|
|
16
|
+
* Whether to cancel this tool call when an interruption occurs. Defaults to
|
|
17
|
+
* true. Only applies to `LLMWorker` tools.
|
|
18
|
+
*/
|
|
19
|
+
cancelOnInterruption?: boolean;
|
|
20
|
+
/**
|
|
21
|
+
* Optional timeout in seconds for this tool call. A call that runs past it
|
|
22
|
+
* is cancelled. Defaults to null (uses the LLM service default). Only
|
|
23
|
+
* applies to `LLMWorker` tools.
|
|
24
|
+
*/
|
|
25
|
+
timeoutSecs?: number | null;
|
|
26
|
+
}
|
|
27
|
+
/** A function marked by `tool()`. */
|
|
28
|
+
export type LLMTool<F extends AnyFn = AnyFn> = F & ToolOptionsMetadata & {
|
|
29
|
+
_pipecatIsLlmTool: true;
|
|
30
|
+
};
|
|
31
|
+
/**
|
|
32
|
+
* Mark a method as a tool.
|
|
33
|
+
*
|
|
34
|
+
* On `LLMWorker` subclasses, decorated methods are automatically registered
|
|
35
|
+
* with the LLM and included in `buildTools()`.
|
|
36
|
+
*
|
|
37
|
+
* This is the worker-flavored variant of `toolOptions`: it attaches the same
|
|
38
|
+
* `cancelOnInterruption` / `timeoutSecs` call options and additionally marks
|
|
39
|
+
* the method (with `_pipecatIsLlmTool`) so the worker collects it from the
|
|
40
|
+
* prototype chain.
|
|
41
|
+
*
|
|
42
|
+
* Can be used with or without options, as a standard (TC39) method decorator
|
|
43
|
+
* or as a plain function (runtimes that strip types do not run decorator
|
|
44
|
+
* syntax):
|
|
45
|
+
*
|
|
46
|
+
* @example
|
|
47
|
+
* class MyWorker extends LLMWorker {
|
|
48
|
+
* async my_tool(params: FunctionCallParams, arg: string) { ... }
|
|
49
|
+
* async my_other_tool(params: FunctionCallParams, arg: string) { ... }
|
|
50
|
+
* static {
|
|
51
|
+
* tool(this.prototype.my_tool);
|
|
52
|
+
* tool({ cancelOnInterruption: false, timeoutSecs: 60 })(this.prototype.my_other_tool);
|
|
53
|
+
* }
|
|
54
|
+
* }
|
|
55
|
+
*/
|
|
56
|
+
export declare function tool<F extends AnyFn>(fn: F, context?: unknown): LLMTool<F>;
|
|
57
|
+
export declare function tool(options?: ToolDecoratorOptions): <F extends AnyFn>(fn: F, context?: unknown) => LLMTool<F>;
|
|
58
|
+
/**
|
|
59
|
+
* Collect all `tool` decorated methods from an object.
|
|
60
|
+
*
|
|
61
|
+
* Walks the prototype chain so that overridden methods in subclasses take
|
|
62
|
+
* precedence over base-class definitions.
|
|
63
|
+
*
|
|
64
|
+
* DIVERGENCE: returns the unbound methods (see the module notes).
|
|
65
|
+
*/
|
|
66
|
+
export declare function _collectTools(obj: object): LLMTool[];
|
|
67
|
+
export {};
|
|
68
|
+
//# sourceMappingURL=tool_decorator.d.ts.map
|
|
@@ -0,0 +1,60 @@
|
|
|
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/workers/llm/tool_decorator.py
|
|
6
|
+
/**
|
|
7
|
+
* Decorator for marking methods as LLM tools.
|
|
8
|
+
*
|
|
9
|
+
* Porting notes:
|
|
10
|
+
* - The deprecated `timeout` alias of `timeoutSecs` is not ported.
|
|
11
|
+
* - `_collectTools` returns the (unbound) methods found on the prototype
|
|
12
|
+
* chain, not bound methods: direct-function metadata is read from a
|
|
13
|
+
* function's source, which a bound function does not expose. `LLMWorker`
|
|
14
|
+
* binds each one to the worker when it registers it on the LLM.
|
|
15
|
+
*/
|
|
16
|
+
import { toolOptions } from "../../adapters/schemas/direct_function.js";
|
|
17
|
+
export function tool(fnOrOptions, _context) {
|
|
18
|
+
const options = typeof fnOrOptions === "function" ? {} : (fnOrOptions ?? {});
|
|
19
|
+
const cancelOnInterruption = options.cancelOnInterruption ?? true;
|
|
20
|
+
const timeoutSecs = options.timeoutSecs ?? null;
|
|
21
|
+
const decorator = (fn, _ctx) => {
|
|
22
|
+
const decorated = toolOptions(fn, { cancelOnInterruption, timeoutSecs });
|
|
23
|
+
decorated._pipecatIsLlmTool = true;
|
|
24
|
+
return decorated;
|
|
25
|
+
};
|
|
26
|
+
if (typeof fnOrOptions === "function") {
|
|
27
|
+
return decorator(fnOrOptions);
|
|
28
|
+
}
|
|
29
|
+
return decorator;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Collect all `tool` decorated methods from an object.
|
|
33
|
+
*
|
|
34
|
+
* Walks the prototype chain so that overridden methods in subclasses take
|
|
35
|
+
* precedence over base-class definitions.
|
|
36
|
+
*
|
|
37
|
+
* DIVERGENCE: returns the unbound methods (see the module notes).
|
|
38
|
+
*/
|
|
39
|
+
export function _collectTools(obj) {
|
|
40
|
+
const seen = new Set();
|
|
41
|
+
const tools = [];
|
|
42
|
+
let proto = Object.getPrototypeOf(obj);
|
|
43
|
+
while (proto !== null && proto !== Object.prototype) {
|
|
44
|
+
for (const name of Object.getOwnPropertyNames(proto)) {
|
|
45
|
+
if (seen.has(name)) {
|
|
46
|
+
continue;
|
|
47
|
+
}
|
|
48
|
+
seen.add(name);
|
|
49
|
+
const descriptor = Object.getOwnPropertyDescriptor(proto, name);
|
|
50
|
+
// Skip accessors so collecting never runs a getter.
|
|
51
|
+
const val = descriptor && "value" in descriptor ? descriptor.value : undefined;
|
|
52
|
+
if (typeof val === "function" && val._pipecatIsLlmTool === true) {
|
|
53
|
+
tools.push(val);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
proto = Object.getPrototypeOf(proto);
|
|
57
|
+
}
|
|
58
|
+
return tools;
|
|
59
|
+
}
|
|
60
|
+
//# sourceMappingURL=tool_decorator.js.map
|
|
@@ -0,0 +1,9 @@
|
|
|
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/workers/proxy/__init__.py
|
|
6
|
+
/** Proxy workers for forwarding bus messages over network transports. */
|
|
7
|
+
// WebSocketProxyServer lives in `@pipedog/worker-proxy` (it needs a server framework).
|
|
8
|
+
export { WebSocketProxyClient } from "./websocket/index.js";
|
|
9
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WebSocket client proxy that forwards bus messages to a remote server.
|
|
3
|
+
*
|
|
4
|
+
* Porting notes: upstream connects with the `websockets` library; this port
|
|
5
|
+
* uses `websocketConnect` / `WebsocketClientConnection` from
|
|
6
|
+
* `services/websocket_service.ts`, the stand-in for its asyncio client.
|
|
7
|
+
*/
|
|
8
|
+
import { type Task } from "@pipedog/asyncio";
|
|
9
|
+
import { type BusMessage } from "../../../bus/messages.ts";
|
|
10
|
+
import type { MessageSerializer } from "../../../bus/serializers/base.ts";
|
|
11
|
+
import { type WebsocketClientConnection } from "../../../services/websocket_service.ts";
|
|
12
|
+
import { BaseWorker, type BaseWorkerOptions } from "../../base_worker.ts";
|
|
13
|
+
type Dict = Record<string, unknown>;
|
|
14
|
+
/** A bus message class, as listed in `forwardMessages`. */
|
|
15
|
+
export type BusMessageType = abstract new (...args: any[]) => BusMessage;
|
|
16
|
+
export interface WebSocketProxyClientOptions extends Omit<BaseWorkerOptions, "name" | "active"> {
|
|
17
|
+
/** Unique name for this worker. */
|
|
18
|
+
name: string;
|
|
19
|
+
/** The WebSocket URL to connect to. */
|
|
20
|
+
url: string;
|
|
21
|
+
/**
|
|
22
|
+
* Name of the worker on the remote server. Only messages targeted at this
|
|
23
|
+
* worker are forwarded.
|
|
24
|
+
*/
|
|
25
|
+
remoteWorkerName: string;
|
|
26
|
+
/**
|
|
27
|
+
* Name of the local worker that should receive responses. Only inbound
|
|
28
|
+
* messages targeted at this worker are accepted.
|
|
29
|
+
*/
|
|
30
|
+
localWorkerName: string;
|
|
31
|
+
/**
|
|
32
|
+
* Additional message types to forward from the local worker (e.g.
|
|
33
|
+
* `[BusFrameMessage]` for frame routing). These are forwarded based on
|
|
34
|
+
* source worker name only, regardless of target.
|
|
35
|
+
*/
|
|
36
|
+
forwardMessages?: readonly BusMessageType[];
|
|
37
|
+
/** Optional HTTP headers sent with the WebSocket handshake (e.g. for authentication). */
|
|
38
|
+
headers?: Record<string, string> | null;
|
|
39
|
+
/** Serializer for bus messages. Defaults to `JSONMessageSerializer`. */
|
|
40
|
+
serializer?: MessageSerializer | null;
|
|
41
|
+
/**
|
|
42
|
+
* Whether the worker starts active. Defaults to false because
|
|
43
|
+
* `onActivated` opens the WebSocket connection, which is almost always a
|
|
44
|
+
* deliberate action triggered by an upstream event (e.g. the local client
|
|
45
|
+
* connecting). Pass true to connect as soon as the worker starts.
|
|
46
|
+
*/
|
|
47
|
+
active?: boolean;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Forwards bus messages to a remote worker over WebSocket.
|
|
51
|
+
*
|
|
52
|
+
* Connects to a WebSocket URL and forwards messages between a local
|
|
53
|
+
* worker and a remote worker. Only messages targeted at the remote worker
|
|
54
|
+
* are sent. Only messages targeted at the local worker are accepted.
|
|
55
|
+
*
|
|
56
|
+
* Event handlers available:
|
|
57
|
+
*
|
|
58
|
+
* - on_connected: Fired when the WebSocket connection is established.
|
|
59
|
+
* - on_disconnected: Fired when the WebSocket connection is closed.
|
|
60
|
+
*
|
|
61
|
+
* @example
|
|
62
|
+
* ```ts
|
|
63
|
+
* const proxy = new WebSocketProxyClient({
|
|
64
|
+
* name: "proxy",
|
|
65
|
+
* url: "ws://remote-server:8765/ws",
|
|
66
|
+
* remoteWorkerName: "worker",
|
|
67
|
+
* localWorkerName: "voice",
|
|
68
|
+
* });
|
|
69
|
+
*
|
|
70
|
+
* proxy.eventHandler("on_connected", async (worker, websocket) => {
|
|
71
|
+
* logger.info("Connected to remote server");
|
|
72
|
+
* });
|
|
73
|
+
*
|
|
74
|
+
* proxy.eventHandler("on_disconnected", async (worker, websocket) => {
|
|
75
|
+
* logger.info("Disconnected from remote server");
|
|
76
|
+
* });
|
|
77
|
+
*
|
|
78
|
+
* await runner.addWorkers(proxy);
|
|
79
|
+
* ```
|
|
80
|
+
*/
|
|
81
|
+
export declare class WebSocketProxyClient extends BaseWorker {
|
|
82
|
+
protected _url: string;
|
|
83
|
+
protected _remoteWorkerName: string;
|
|
84
|
+
protected _localWorkerName: string;
|
|
85
|
+
protected _forwardMessages: readonly BusMessageType[];
|
|
86
|
+
protected _headers: Record<string, string>;
|
|
87
|
+
protected _serializer: MessageSerializer;
|
|
88
|
+
protected _ws: WebsocketClientConnection | null;
|
|
89
|
+
protected _receiveTask: Task<void> | null;
|
|
90
|
+
/** Initialize the WebSocketProxyClient. */
|
|
91
|
+
constructor(options: WebSocketProxyClientOptions);
|
|
92
|
+
/** Connect to the remote WebSocket server. */
|
|
93
|
+
onActivated(args: Dict | null): Promise<void>;
|
|
94
|
+
/** Cancel the receive loop and close the WebSocket connection. */
|
|
95
|
+
stop(): Promise<void>;
|
|
96
|
+
/**
|
|
97
|
+
* Forward messages targeted at the remote worker.
|
|
98
|
+
*
|
|
99
|
+
* @param message The bus message to process.
|
|
100
|
+
*/
|
|
101
|
+
onBusMessage(message: BusMessage): Promise<void>;
|
|
102
|
+
/** Whether `message` is one of the `forwardMessages` types. */
|
|
103
|
+
protected _isForwardMessage(message: BusMessage): boolean;
|
|
104
|
+
/** Serialize and send a message over the WebSocket. */
|
|
105
|
+
protected _sendWs(message: BusMessage): Promise<void>;
|
|
106
|
+
/** Read messages from the WebSocket and put them on the local bus. */
|
|
107
|
+
protected _receiveLoop(): Promise<void>;
|
|
108
|
+
}
|
|
109
|
+
export {};
|
|
110
|
+
//# sourceMappingURL=client.d.ts.map
|
|
@@ -0,0 +1,196 @@
|
|
|
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/workers/proxy/websocket/client.py
|
|
6
|
+
/**
|
|
7
|
+
* WebSocket client proxy that forwards bus messages to a remote server.
|
|
8
|
+
*
|
|
9
|
+
* Porting notes: upstream connects with the `websockets` library; this port
|
|
10
|
+
* uses `websocketConnect` / `WebsocketClientConnection` from
|
|
11
|
+
* `services/websocket_service.ts`, the stand-in for its asyncio client.
|
|
12
|
+
*/
|
|
13
|
+
import { CancelledError, rethrowIfCancelled, sleep } from "@pipedog/asyncio";
|
|
14
|
+
import { BusLocalMessage, BusWorkerRegistryMessage, } from "../../../bus/messages.js";
|
|
15
|
+
import { JSONMessageSerializer } from "../../../bus/serializers/json.js";
|
|
16
|
+
import { ConnectionClosed, websocketConnect, } from "../../../services/websocket_service.js";
|
|
17
|
+
import { logger } from "../../../utils/logger.js";
|
|
18
|
+
import { BaseWorker } from "../../base_worker.js";
|
|
19
|
+
/**
|
|
20
|
+
* Forwards bus messages to a remote worker over WebSocket.
|
|
21
|
+
*
|
|
22
|
+
* Connects to a WebSocket URL and forwards messages between a local
|
|
23
|
+
* worker and a remote worker. Only messages targeted at the remote worker
|
|
24
|
+
* are sent. Only messages targeted at the local worker are accepted.
|
|
25
|
+
*
|
|
26
|
+
* Event handlers available:
|
|
27
|
+
*
|
|
28
|
+
* - on_connected: Fired when the WebSocket connection is established.
|
|
29
|
+
* - on_disconnected: Fired when the WebSocket connection is closed.
|
|
30
|
+
*
|
|
31
|
+
* @example
|
|
32
|
+
* ```ts
|
|
33
|
+
* const proxy = new WebSocketProxyClient({
|
|
34
|
+
* name: "proxy",
|
|
35
|
+
* url: "ws://remote-server:8765/ws",
|
|
36
|
+
* remoteWorkerName: "worker",
|
|
37
|
+
* localWorkerName: "voice",
|
|
38
|
+
* });
|
|
39
|
+
*
|
|
40
|
+
* proxy.eventHandler("on_connected", async (worker, websocket) => {
|
|
41
|
+
* logger.info("Connected to remote server");
|
|
42
|
+
* });
|
|
43
|
+
*
|
|
44
|
+
* proxy.eventHandler("on_disconnected", async (worker, websocket) => {
|
|
45
|
+
* logger.info("Disconnected from remote server");
|
|
46
|
+
* });
|
|
47
|
+
*
|
|
48
|
+
* await runner.addWorkers(proxy);
|
|
49
|
+
* ```
|
|
50
|
+
*/
|
|
51
|
+
export class WebSocketProxyClient extends BaseWorker {
|
|
52
|
+
_url;
|
|
53
|
+
_remoteWorkerName;
|
|
54
|
+
_localWorkerName;
|
|
55
|
+
_forwardMessages;
|
|
56
|
+
_headers;
|
|
57
|
+
_serializer;
|
|
58
|
+
_ws = null;
|
|
59
|
+
_receiveTask = null;
|
|
60
|
+
/** Initialize the WebSocketProxyClient. */
|
|
61
|
+
constructor(options) {
|
|
62
|
+
super({ ...options, name: options.name, active: options.active ?? false });
|
|
63
|
+
this._url = options.url;
|
|
64
|
+
this._remoteWorkerName = options.remoteWorkerName;
|
|
65
|
+
this._localWorkerName = options.localWorkerName;
|
|
66
|
+
this._forwardMessages = options.forwardMessages ?? [];
|
|
67
|
+
this._headers = options.headers ?? {};
|
|
68
|
+
this._serializer = options.serializer ?? new JSONMessageSerializer();
|
|
69
|
+
this._registerEventHandler("on_connected");
|
|
70
|
+
this._registerEventHandler("on_disconnected");
|
|
71
|
+
}
|
|
72
|
+
/** Connect to the remote WebSocket server. */
|
|
73
|
+
async onActivated(args) {
|
|
74
|
+
await super.onActivated(args);
|
|
75
|
+
logger.debug(`Worker '${this}': connecting to ${this._url}`);
|
|
76
|
+
this._ws = await websocketConnect(this._url, { additionalHeaders: this._headers });
|
|
77
|
+
logger.debug(`Worker '${this}': connected to ${this._url}`);
|
|
78
|
+
await this._callEventHandler("on_connected", this._ws);
|
|
79
|
+
this._receiveTask = this.createTask(() => this._receiveLoop());
|
|
80
|
+
// Schedule worker right away.
|
|
81
|
+
await sleep(0);
|
|
82
|
+
}
|
|
83
|
+
/** Cancel the receive loop and close the WebSocket connection. */
|
|
84
|
+
async stop() {
|
|
85
|
+
if (this._receiveTask) {
|
|
86
|
+
await this.cancelTask(this._receiveTask);
|
|
87
|
+
this._receiveTask = null;
|
|
88
|
+
}
|
|
89
|
+
if (this._ws) {
|
|
90
|
+
await this._ws.close();
|
|
91
|
+
logger.debug(`Worker '${this}': WebSocket connection closed`);
|
|
92
|
+
this._ws = null;
|
|
93
|
+
}
|
|
94
|
+
await super.stop();
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Forward messages targeted at the remote worker.
|
|
98
|
+
*
|
|
99
|
+
* @param message The bus message to process.
|
|
100
|
+
*/
|
|
101
|
+
async onBusMessage(message) {
|
|
102
|
+
await super.onBusMessage(message);
|
|
103
|
+
if (!this._ws)
|
|
104
|
+
return;
|
|
105
|
+
if (message instanceof BusLocalMessage)
|
|
106
|
+
return;
|
|
107
|
+
// Forward targeted messages to the remote worker.
|
|
108
|
+
if (message.target === this._remoteWorkerName) {
|
|
109
|
+
await this._sendWs(message);
|
|
110
|
+
}
|
|
111
|
+
// Forward additional message types from the local worker.
|
|
112
|
+
else if (this._isForwardMessage(message)) {
|
|
113
|
+
if (message.source === this._localWorkerName) {
|
|
114
|
+
await this._sendWs(message);
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
/** Whether `message` is one of the `forwardMessages` types. */
|
|
119
|
+
_isForwardMessage(message) {
|
|
120
|
+
return this._forwardMessages.some((type) => message instanceof type);
|
|
121
|
+
}
|
|
122
|
+
/** Serialize and send a message over the WebSocket. */
|
|
123
|
+
async _sendWs(message) {
|
|
124
|
+
if (!this._ws)
|
|
125
|
+
return;
|
|
126
|
+
try {
|
|
127
|
+
const data = this._serializer.serialize(message);
|
|
128
|
+
await this._ws.send(data);
|
|
129
|
+
logger.trace(`Worker '${this}': sent ${message}`);
|
|
130
|
+
}
|
|
131
|
+
catch (e) {
|
|
132
|
+
if (!(e instanceof ConnectionClosed))
|
|
133
|
+
throw e;
|
|
134
|
+
logger.warning(`Worker '${this}': connection closed, stopping forwarding`);
|
|
135
|
+
const ws = this._ws;
|
|
136
|
+
this._ws = null;
|
|
137
|
+
await this._callEventHandler("on_disconnected", ws);
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
/** Read messages from the WebSocket and put them on the local bus. */
|
|
141
|
+
async _receiveLoop() {
|
|
142
|
+
if (this._ws === null) {
|
|
143
|
+
throw new Error("onActivated() must run before _receiveLoop");
|
|
144
|
+
}
|
|
145
|
+
const encoder = new TextEncoder();
|
|
146
|
+
try {
|
|
147
|
+
for await (const data of this._ws) {
|
|
148
|
+
try {
|
|
149
|
+
const payload = typeof data === "string" ? encoder.encode(data) : data;
|
|
150
|
+
const message = this._serializer.deserialize(payload);
|
|
151
|
+
if (!message)
|
|
152
|
+
continue;
|
|
153
|
+
// Accept registry messages (target=None) for worker discovery.
|
|
154
|
+
if (message instanceof BusWorkerRegistryMessage) {
|
|
155
|
+
logger.trace(`Worker '${this}': received registry from remote: ${JSON.stringify(message.workers)}`);
|
|
156
|
+
await this.sendBusMessage(message);
|
|
157
|
+
continue;
|
|
158
|
+
}
|
|
159
|
+
// Accept additional message types (e.g. BusFrameMessage).
|
|
160
|
+
if (this._forwardMessages.length > 0 && this._isForwardMessage(message)) {
|
|
161
|
+
logger.trace(`Worker '${this}': received ${message} from remote`);
|
|
162
|
+
await this.sendBusMessage(message);
|
|
163
|
+
continue;
|
|
164
|
+
}
|
|
165
|
+
// Only accept other messages targeted at the local worker.
|
|
166
|
+
if (message.target !== this._localWorkerName) {
|
|
167
|
+
logger.warning(`Worker '${this}': dropped inbound message with ` +
|
|
168
|
+
`unexpected target '${message.target}'`);
|
|
169
|
+
continue;
|
|
170
|
+
}
|
|
171
|
+
logger.trace(`Worker '${this}': received ${message} from remote`);
|
|
172
|
+
await this.sendBusMessage(message);
|
|
173
|
+
}
|
|
174
|
+
catch (e) {
|
|
175
|
+
rethrowIfCancelled(e);
|
|
176
|
+
logger.error(`Worker '${this}': failed to deserialize remote message`, e);
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
catch (e) {
|
|
181
|
+
if (e instanceof ConnectionClosed) {
|
|
182
|
+
logger.warning(`Worker '${this}': WebSocket connection closed`);
|
|
183
|
+
const ws = this._ws;
|
|
184
|
+
this._ws = null;
|
|
185
|
+
await this._callEventHandler("on_disconnected", ws);
|
|
186
|
+
}
|
|
187
|
+
else if (e instanceof CancelledError) {
|
|
188
|
+
// except asyncio.CancelledError: pass (upstream ends the loop quietly).
|
|
189
|
+
}
|
|
190
|
+
else {
|
|
191
|
+
throw e;
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
//# sourceMappingURL=client.js.map
|
|
@@ -0,0 +1,10 @@
|
|
|
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/workers/proxy/websocket/__init__.py
|
|
6
|
+
/** WebSocket proxy workers for forwarding bus messages. */
|
|
7
|
+
export { WebSocketProxyClient } from "./client.js";
|
|
8
|
+
// WebSocketProxyServer depends on a server framework (Starlette upstream), so it
|
|
9
|
+
// lives in its own package: import it from `@pipedog/worker-proxy`.
|
|
10
|
+
//# sourceMappingURL=index.js.map
|