@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,78 @@
|
|
|
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/utils/async_tool_cancellation.py
|
|
6
|
+
/**
|
|
7
|
+
* Constants for the built-in async tool cancellation feature.
|
|
8
|
+
*
|
|
9
|
+
* A function registered with `cancellableByLlm: true` is advertised alongside
|
|
10
|
+
* a cancel tool named for it, built here, and the instructions below are
|
|
11
|
+
* composed into the system instruction — so the LLM can drop work whose result
|
|
12
|
+
* is no longer wanted. A tool that doesn't opt in has no cancel tool at all.
|
|
13
|
+
*
|
|
14
|
+
* A single running call is stopped without arguments. Telling several calls of
|
|
15
|
+
* one tool apart takes the `tool_call_id` the conversation already carries, on
|
|
16
|
+
* the message that reported each call running.
|
|
17
|
+
*/
|
|
18
|
+
import { FunctionSchema } from "../adapters/schemas/function_schema.js";
|
|
19
|
+
export const ASYNC_TOOL_CANCELLATION_INSTRUCTIONS = `ASYNC TOOL CANCELLATION:
|
|
20
|
+
Some of your tools keep running in the background after you have replied, and some of \
|
|
21
|
+
those can be stopped early.
|
|
22
|
+
|
|
23
|
+
Work that can be stopped early has its own cancel tool, named for it: a running \
|
|
24
|
+
write_report call is stopped by cancel_write_report. Work with no such tool cannot be \
|
|
25
|
+
stopped and will finish on its own.
|
|
26
|
+
|
|
27
|
+
When the user no longer wants a result you are still waiting on, call the corresponding \
|
|
28
|
+
cancel tool. Only the call stops the work: saying you cancelled it, or that you'll skip it, \
|
|
29
|
+
leaves it running and its result will still arrive and contradict you. So when the same turn \
|
|
30
|
+
also asks for something else, make the call and answer — don't just answer.
|
|
31
|
+
|
|
32
|
+
Call the cancel tool with no arguments and it stops the one call that is running. If \
|
|
33
|
+
several calls of that same tool are running, it needs a tool_call_id to say which. Each \
|
|
34
|
+
call's id is already in the conversation: find the tool message that reported it running, \
|
|
35
|
+
which carries "status": "running", its "tool_call_id", and the arguments that call was \
|
|
36
|
+
given. Copy that id exactly as written; never invent or guess one.`;
|
|
37
|
+
export const CANCEL_TOOL_PREFIX = "cancel_";
|
|
38
|
+
/**
|
|
39
|
+
* Name of the tool that cancels calls of `functionName`.
|
|
40
|
+
*
|
|
41
|
+
* @param functionName The cancellable tool.
|
|
42
|
+
* @returns The built-in cancel tool's name, e.g. `cancel_write_report`.
|
|
43
|
+
*/
|
|
44
|
+
export function cancelToolName(functionName) {
|
|
45
|
+
return `${CANCEL_TOOL_PREFIX}${functionName}`;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Build the cancel tool for one cancellable tool.
|
|
49
|
+
*
|
|
50
|
+
* Which work to stop is carried by the tool the model picks, so a single
|
|
51
|
+
* running call is stopped without arguments. `tool_call_id` only has to be
|
|
52
|
+
* given to choose between several calls of the same tool, and the handler
|
|
53
|
+
* refuses with the ids when it is needed and missing.
|
|
54
|
+
*
|
|
55
|
+
* @param functionName The tool whose calls this one cancels.
|
|
56
|
+
* @returns The schema to advertise alongside `functionName`.
|
|
57
|
+
*/
|
|
58
|
+
export function buildCancelToolSchema(functionName) {
|
|
59
|
+
return new FunctionSchema({
|
|
60
|
+
name: cancelToolName(functionName),
|
|
61
|
+
description: `Stop a running ${functionName} call whose result is no longer ` +
|
|
62
|
+
"needed — the user says to drop it, asks for something that replaces " +
|
|
63
|
+
"it, or says something that makes the pending result stale. Call it " +
|
|
64
|
+
"with no arguments to stop the one running call; only when several " +
|
|
65
|
+
`${functionName} calls are running does it need a tool_call_id to ` +
|
|
66
|
+
"say which.",
|
|
67
|
+
properties: {
|
|
68
|
+
tool_call_id: {
|
|
69
|
+
type: "string",
|
|
70
|
+
description: `Which ${functionName} call to stop. Needed only when ` +
|
|
71
|
+
"several are running, and carried by the message in the " +
|
|
72
|
+
"conversation that reported each one running.",
|
|
73
|
+
},
|
|
74
|
+
},
|
|
75
|
+
required: [],
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
//# sourceMappingURL=async_tool_cancellation.js.map
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Asyncio task management.
|
|
3
|
+
*
|
|
4
|
+
* Provides task management functionality, including abstract base classes and
|
|
5
|
+
* concrete implementations for managing tasks with monitoring and cleanup.
|
|
6
|
+
*/
|
|
7
|
+
import { type Task, type TaskFn } from "@pipedog/asyncio";
|
|
8
|
+
/** Stand-in for asyncio's event loop: only its clock is used by pipecat. */
|
|
9
|
+
export interface EventLoop {
|
|
10
|
+
/** Monotonic time in seconds. */
|
|
11
|
+
time(): number;
|
|
12
|
+
}
|
|
13
|
+
export declare function getRunningLoop(): EventLoop;
|
|
14
|
+
/**
|
|
15
|
+
* Abstract base class for task management.
|
|
16
|
+
*
|
|
17
|
+
* Provides the interface for creating, monitoring, and managing tasks.
|
|
18
|
+
*/
|
|
19
|
+
export declare abstract class BaseTaskManager {
|
|
20
|
+
/** Get the event loop used by this task manager. */
|
|
21
|
+
abstract getEventLoop(): EventLoop;
|
|
22
|
+
/**
|
|
23
|
+
* Creates and schedules a new task that runs the given coroutine function.
|
|
24
|
+
* The task is added to the set of created tasks.
|
|
25
|
+
*/
|
|
26
|
+
abstract createTask<T>(coroutine: TaskFn<T>, name: string): Task<T | undefined>;
|
|
27
|
+
/**
|
|
28
|
+
* Cancels the given task and awaits its completion with an optional timeout
|
|
29
|
+
* (seconds). Cancelling the task this call runs on is logged and ignored.
|
|
30
|
+
*/
|
|
31
|
+
abstract cancelTask(task: Task<unknown>, timeout?: number | null): Promise<void>;
|
|
32
|
+
/** Returns the list of currently created/registered tasks. */
|
|
33
|
+
abstract currentTasks(): readonly Task<unknown>[];
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Concrete implementation of BaseTaskManager. Manages task lifecycle
|
|
37
|
+
* including creation, monitoring, cancellation, and cleanup.
|
|
38
|
+
*/
|
|
39
|
+
export declare class TaskManager extends BaseTaskManager {
|
|
40
|
+
#private;
|
|
41
|
+
constructor(options?: {
|
|
42
|
+
loop?: EventLoop;
|
|
43
|
+
});
|
|
44
|
+
getEventLoop(): EventLoop;
|
|
45
|
+
createTask<T>(coroutine: TaskFn<T>, name: string): Task<T | undefined>;
|
|
46
|
+
cancelTask(task: Task<unknown>, timeout?: number | null): Promise<void>;
|
|
47
|
+
currentTasks(): readonly Task<unknown>[];
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=task_manager.d.ts.map
|
|
@@ -0,0 +1,105 @@
|
|
|
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/utils/asyncio/task_manager.py
|
|
6
|
+
/**
|
|
7
|
+
* Asyncio task management.
|
|
8
|
+
*
|
|
9
|
+
* Provides task management functionality, including abstract base classes and
|
|
10
|
+
* concrete implementations for managing tasks with monitoring and cleanup.
|
|
11
|
+
*/
|
|
12
|
+
import { CancelledError, createTask, currentTask, monotonic, TimeoutError, waitFor, } from "@pipedog/asyncio";
|
|
13
|
+
import { logger } from "../logger.js";
|
|
14
|
+
const defaultLoop = { time: monotonic };
|
|
15
|
+
export function getRunningLoop() {
|
|
16
|
+
return defaultLoop;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Abstract base class for task management.
|
|
20
|
+
*
|
|
21
|
+
* Provides the interface for creating, monitoring, and managing tasks.
|
|
22
|
+
*/
|
|
23
|
+
export class BaseTaskManager {
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Concrete implementation of BaseTaskManager. Manages task lifecycle
|
|
27
|
+
* including creation, monitoring, cancellation, and cleanup.
|
|
28
|
+
*/
|
|
29
|
+
export class TaskManager extends BaseTaskManager {
|
|
30
|
+
#loop;
|
|
31
|
+
#tasks = new Set();
|
|
32
|
+
constructor(options = {}) {
|
|
33
|
+
super();
|
|
34
|
+
this.#loop = options.loop ?? getRunningLoop();
|
|
35
|
+
}
|
|
36
|
+
getEventLoop() {
|
|
37
|
+
return this.#loop;
|
|
38
|
+
}
|
|
39
|
+
createTask(coroutine, name) {
|
|
40
|
+
const runCoroutine = async () => {
|
|
41
|
+
try {
|
|
42
|
+
return await coroutine();
|
|
43
|
+
}
|
|
44
|
+
catch (e) {
|
|
45
|
+
if (e instanceof CancelledError) {
|
|
46
|
+
logger.trace(`${name}: task cancelled`);
|
|
47
|
+
// Re-raise the exception to ensure the task is cancelled.
|
|
48
|
+
throw e;
|
|
49
|
+
}
|
|
50
|
+
logger.error(`${name} unexpected exception: ${errorMessage(e)}`, e);
|
|
51
|
+
return undefined;
|
|
52
|
+
}
|
|
53
|
+
};
|
|
54
|
+
const task = createTask(runCoroutine, name);
|
|
55
|
+
task.addDoneCallback((t) => this.#taskDoneHandler(t));
|
|
56
|
+
this.#tasks.add(task);
|
|
57
|
+
logger.trace(`${name}: task created`);
|
|
58
|
+
return task;
|
|
59
|
+
}
|
|
60
|
+
async cancelTask(task, timeout = null) {
|
|
61
|
+
const name = task.getName();
|
|
62
|
+
const current = currentTask();
|
|
63
|
+
if (task === current) {
|
|
64
|
+
logger.warning(`${name}: ignoring attempt to cancel the running task`);
|
|
65
|
+
return;
|
|
66
|
+
}
|
|
67
|
+
const cancelsRequested = current ? current.cancelling() : 0;
|
|
68
|
+
task.cancel();
|
|
69
|
+
try {
|
|
70
|
+
if (timeout) {
|
|
71
|
+
await waitFor(task, timeout);
|
|
72
|
+
}
|
|
73
|
+
else {
|
|
74
|
+
await task;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
catch (e) {
|
|
78
|
+
if (e instanceof TimeoutError) {
|
|
79
|
+
logger.warning(`${name}: timed out waiting for task to cancel`);
|
|
80
|
+
}
|
|
81
|
+
else if (e instanceof CancelledError) {
|
|
82
|
+
// Either `task` finished cancelling, or the calling task was
|
|
83
|
+
// cancelled while we waited. Only the latter may propagate.
|
|
84
|
+
if (current && current.cancelling() > cancelsRequested) {
|
|
85
|
+
throw e;
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
else {
|
|
89
|
+
logger.error(`${name} unexpected exception while cancelling task: ${errorMessage(e)}`, e);
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
currentTasks() {
|
|
94
|
+
return [...this.#tasks];
|
|
95
|
+
}
|
|
96
|
+
#taskDoneHandler(task) {
|
|
97
|
+
if (!this.#tasks.delete(task)) {
|
|
98
|
+
logger.trace(`${task.getName()}: unable to remove task data (already removed?)`);
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
function errorMessage(e) {
|
|
103
|
+
return e instanceof Error ? e.message : String(e);
|
|
104
|
+
}
|
|
105
|
+
//# sourceMappingURL=task_manager.js.map
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Base object class providing event handling and lifecycle management.
|
|
3
|
+
*
|
|
4
|
+
* Offers unique identification, naming, event handling, and async cleanup for
|
|
5
|
+
* all Pipecat components.
|
|
6
|
+
*/
|
|
7
|
+
import { type Task, type TaskFn } from "@pipedog/asyncio";
|
|
8
|
+
import type { BaseTaskManager } from "./asyncio/task_manager.ts";
|
|
9
|
+
export type EventHandlerFn<Self = any> = (self: Self, ...args: any[]) => unknown;
|
|
10
|
+
/** Stores an event name, its handlers, and whether they run inline (sync). */
|
|
11
|
+
export interface EventHandler {
|
|
12
|
+
name: string;
|
|
13
|
+
handlers: EventHandlerFn[];
|
|
14
|
+
isSync: boolean;
|
|
15
|
+
}
|
|
16
|
+
export interface BaseObjectOptions {
|
|
17
|
+
/** Custom name; defaults to `ClassName#count`. */
|
|
18
|
+
name?: string | null;
|
|
19
|
+
/** Task manager for handling tasks. */
|
|
20
|
+
taskManager?: BaseTaskManager | null;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Abstract base class providing common functionality for Pipecat objects:
|
|
24
|
+
* unique identification, naming, event handling and async lifecycle.
|
|
25
|
+
*/
|
|
26
|
+
export declare abstract class BaseObject {
|
|
27
|
+
protected _id: number;
|
|
28
|
+
protected _name: string;
|
|
29
|
+
protected _taskManager: BaseTaskManager | null;
|
|
30
|
+
protected _eventHandlers: Map<string, EventHandler>;
|
|
31
|
+
protected _eventTasks: Set<[string, Task<unknown>]>;
|
|
32
|
+
constructor(options?: BaseObjectOptions);
|
|
33
|
+
/** The unique identifier for this object. */
|
|
34
|
+
get id(): number;
|
|
35
|
+
/** The object's name, either custom-provided or auto-generated. */
|
|
36
|
+
get name(): string;
|
|
37
|
+
/** The task manager. Throws if not initialized. */
|
|
38
|
+
get taskManager(): BaseTaskManager;
|
|
39
|
+
/**
|
|
40
|
+
* Wire the object up with a task manager. Owners of a BaseObject should
|
|
41
|
+
* call this on their child objects to propagate the task manager down.
|
|
42
|
+
*/
|
|
43
|
+
setup(taskManager: BaseTaskManager | unknown): Promise<void>;
|
|
44
|
+
/** Create a new task managed by this object's task manager. */
|
|
45
|
+
createTask<T>(coroutine: TaskFn<T>, name?: string | null): Task<T | undefined>;
|
|
46
|
+
/**
|
|
47
|
+
* Cancel a task managed by this object's task manager. A default timeout of
|
|
48
|
+
* 1 second avoids freezes caused by code that swallows cancellation.
|
|
49
|
+
*/
|
|
50
|
+
cancelTask(task: Task<unknown>, timeout?: number | null): Promise<void>;
|
|
51
|
+
/**
|
|
52
|
+
* Clean up resources and wait for running event handlers to complete,
|
|
53
|
+
* except the one it is called from, since a task can't wait for itself.
|
|
54
|
+
*/
|
|
55
|
+
cleanup(): Promise<void>;
|
|
56
|
+
/**
|
|
57
|
+
* Register a handler for an event. Equivalent of Python's
|
|
58
|
+
* `@obj.event_handler("on_x")` decorator; returns the handler.
|
|
59
|
+
*/
|
|
60
|
+
eventHandler<F extends EventHandlerFn<this>>(eventName: string, handler: F): F;
|
|
61
|
+
/** Add an event handler for the specified event. Can be sync or async. */
|
|
62
|
+
addEventHandler(eventName: string, handler: EventHandlerFn<this>): void;
|
|
63
|
+
/** Remove a previously added event handler. No-op if unknown. */
|
|
64
|
+
removeEventHandler(eventName: string, handler: EventHandlerFn<this>): void;
|
|
65
|
+
/**
|
|
66
|
+
* Register an event handler type.
|
|
67
|
+
*
|
|
68
|
+
* @param sync Whether handlers run inline (awaited) instead of in a task.
|
|
69
|
+
*/
|
|
70
|
+
protected _registerEventHandler(eventName: string, sync?: boolean): void;
|
|
71
|
+
/** Call all registered handlers for the specified event. */
|
|
72
|
+
protected _callEventHandler(eventName: string, ...args: any[]): Promise<void>;
|
|
73
|
+
protected _runHandler(eventName: string, handler: EventHandlerFn, ...args: any[]): Promise<void>;
|
|
74
|
+
toString(): string;
|
|
75
|
+
}
|
|
76
|
+
//# sourceMappingURL=base_object.d.ts.map
|
|
@@ -0,0 +1,154 @@
|
|
|
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/utils/base_object.py
|
|
6
|
+
/**
|
|
7
|
+
* Base object class providing event handling and lifecycle management.
|
|
8
|
+
*
|
|
9
|
+
* Offers unique identification, naming, event handling, and async cleanup for
|
|
10
|
+
* all Pipecat components.
|
|
11
|
+
*/
|
|
12
|
+
import { createTask, currentTask, rethrowIfCancelled, wait, } from "@pipedog/asyncio";
|
|
13
|
+
import { logger } from "./logger.js";
|
|
14
|
+
import { objCount, objId } from "./utils.js";
|
|
15
|
+
/**
|
|
16
|
+
* Abstract base class providing common functionality for Pipecat objects:
|
|
17
|
+
* unique identification, naming, event handling and async lifecycle.
|
|
18
|
+
*/
|
|
19
|
+
export class BaseObject {
|
|
20
|
+
_id;
|
|
21
|
+
_name;
|
|
22
|
+
_taskManager;
|
|
23
|
+
// Registered event handlers.
|
|
24
|
+
_eventHandlers = new Map();
|
|
25
|
+
// Event handler tasks being executed; removed when they finish. Cleanup
|
|
26
|
+
// waits for those still running.
|
|
27
|
+
_eventTasks = new Set();
|
|
28
|
+
constructor(options = {}) {
|
|
29
|
+
this._id = objId();
|
|
30
|
+
this._name = options.name || `${this.constructor.name}#${objCount(this)}`;
|
|
31
|
+
this._taskManager = options.taskManager ?? null;
|
|
32
|
+
}
|
|
33
|
+
/** The unique identifier for this object. */
|
|
34
|
+
get id() {
|
|
35
|
+
return this._id;
|
|
36
|
+
}
|
|
37
|
+
/** The object's name, either custom-provided or auto-generated. */
|
|
38
|
+
get name() {
|
|
39
|
+
return this._name;
|
|
40
|
+
}
|
|
41
|
+
/** The task manager. Throws if not initialized. */
|
|
42
|
+
get taskManager() {
|
|
43
|
+
if (!this._taskManager) {
|
|
44
|
+
throw new Error(`${this}: TaskManager is not initialized.`);
|
|
45
|
+
}
|
|
46
|
+
return this._taskManager;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Wire the object up with a task manager. Owners of a BaseObject should
|
|
50
|
+
* call this on their child objects to propagate the task manager down.
|
|
51
|
+
*/
|
|
52
|
+
// Typed `unknown` so subclasses can narrow it (FrameProcessor.setup takes a
|
|
53
|
+
// FrameProcessorSetup, as upstream does).
|
|
54
|
+
async setup(taskManager) {
|
|
55
|
+
this._taskManager = taskManager;
|
|
56
|
+
}
|
|
57
|
+
/** Create a new task managed by this object's task manager. */
|
|
58
|
+
createTask(coroutine, name) {
|
|
59
|
+
const taskName = name || coroutine.name || "task";
|
|
60
|
+
return this.taskManager.createTask(coroutine, `${this}::${taskName}`);
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Cancel a task managed by this object's task manager. A default timeout of
|
|
64
|
+
* 1 second avoids freezes caused by code that swallows cancellation.
|
|
65
|
+
*/
|
|
66
|
+
async cancelTask(task, timeout = 1.0) {
|
|
67
|
+
await this.taskManager.cancelTask(task, timeout);
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Clean up resources and wait for running event handlers to complete,
|
|
71
|
+
* except the one it is called from, since a task can't wait for itself.
|
|
72
|
+
*/
|
|
73
|
+
async cleanup() {
|
|
74
|
+
const current = currentTask();
|
|
75
|
+
const eventTasks = [...this._eventTasks].filter(([, task]) => task !== current);
|
|
76
|
+
if (eventTasks.length > 0) {
|
|
77
|
+
const names = eventTasks.map(([name]) => name);
|
|
78
|
+
logger.debug(`${this}: waiting on event handlers to finish [${names.join(", ")}]...`);
|
|
79
|
+
await wait(eventTasks.map(([, task]) => task));
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Register a handler for an event. Equivalent of Python's
|
|
84
|
+
* `@obj.event_handler("on_x")` decorator; returns the handler.
|
|
85
|
+
*/
|
|
86
|
+
eventHandler(eventName, handler) {
|
|
87
|
+
this.addEventHandler(eventName, handler);
|
|
88
|
+
return handler;
|
|
89
|
+
}
|
|
90
|
+
/** Add an event handler for the specified event. Can be sync or async. */
|
|
91
|
+
addEventHandler(eventName, handler) {
|
|
92
|
+
const eventHandler = this._eventHandlers.get(eventName);
|
|
93
|
+
if (eventHandler) {
|
|
94
|
+
eventHandler.handlers.push(handler);
|
|
95
|
+
}
|
|
96
|
+
else {
|
|
97
|
+
logger.warning(`${this}: event handler ${eventName} not registered`);
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
/** Remove a previously added event handler. No-op if unknown. */
|
|
101
|
+
removeEventHandler(eventName, handler) {
|
|
102
|
+
const eventHandler = this._eventHandlers.get(eventName);
|
|
103
|
+
if (!eventHandler)
|
|
104
|
+
return;
|
|
105
|
+
const index = eventHandler.handlers.indexOf(handler);
|
|
106
|
+
if (index >= 0)
|
|
107
|
+
eventHandler.handlers.splice(index, 1);
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* Register an event handler type.
|
|
111
|
+
*
|
|
112
|
+
* @param sync Whether handlers run inline (awaited) instead of in a task.
|
|
113
|
+
*/
|
|
114
|
+
_registerEventHandler(eventName, sync = false) {
|
|
115
|
+
if (!this._eventHandlers.has(eventName)) {
|
|
116
|
+
this._eventHandlers.set(eventName, { name: eventName, handlers: [], isSync: sync });
|
|
117
|
+
}
|
|
118
|
+
else {
|
|
119
|
+
logger.warning(`${this}: event handler ${eventName} already registered`);
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
/** Call all registered handlers for the specified event. */
|
|
123
|
+
async _callEventHandler(eventName, ...args) {
|
|
124
|
+
const eventHandler = this._eventHandlers.get(eventName);
|
|
125
|
+
if (!eventHandler)
|
|
126
|
+
return;
|
|
127
|
+
for (const handler of eventHandler.handlers) {
|
|
128
|
+
if (eventHandler.isSync) {
|
|
129
|
+
await this._runHandler(eventHandler.name, handler, ...args);
|
|
130
|
+
}
|
|
131
|
+
else {
|
|
132
|
+
// A task per handler function. Users can register to an event
|
|
133
|
+
// handler multiple times.
|
|
134
|
+
const task = createTask(() => this._runHandler(eventHandler.name, handler, ...args));
|
|
135
|
+
const entry = [eventName, task];
|
|
136
|
+
this._eventTasks.add(entry);
|
|
137
|
+
task.addDoneCallback(() => this._eventTasks.delete(entry));
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
async _runHandler(eventName, handler, ...args) {
|
|
142
|
+
try {
|
|
143
|
+
await handler(this, ...args);
|
|
144
|
+
}
|
|
145
|
+
catch (e) {
|
|
146
|
+
rethrowIfCancelled(e);
|
|
147
|
+
logger.error(`${this}: uncaught exception in event handler '${eventName}': ${e instanceof Error ? e.message : e}`, e);
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
toString() {
|
|
151
|
+
return this.name;
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
//# sourceMappingURL=base_object.js.map
|