@pipedog/core 0.0.0 → 0.1.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/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/soxr_resampler.d.ts +54 -0
- package/dist/audio/resamplers/soxr_resampler.js +69 -0
- package/dist/audio/resamplers/soxr_stream_resampler.d.ts +75 -0
- package/dist/audio/resamplers/soxr_stream_resampler.js +146 -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 +143 -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 +126 -0
- package/dist/audio/vad/vad_analyzer.js +211 -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 +814 -0
- package/dist/pipeline/worker.js +1639 -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 +99 -0
- package/dist/utils/file_storage.js +100 -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 +15 -0
- package/dist/utils/image.js +30 -0
- package/dist/utils/index.d.ts +2 -0
- package/dist/utils/index.js +8 -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/pronunciations.d.ts +65 -0
- package/dist/utils/text/transforms/pronunciations.js +111 -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 +95 -0
- package/dist/utils/tracing/setup.js +110 -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 +90 -0
- package/dist/utils/tracing/turn_trace_observer.js +219 -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 +64 -0
- package/dist/utils/yaml.js +41 -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/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 +46 -3
- package/README.md +0 -5
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import type { WorkerReadyData } from "./types.ts";
|
|
2
|
+
export type WatchHandler = (data: WorkerReadyData) => Promise<unknown>;
|
|
3
|
+
/**
|
|
4
|
+
* Tracks all known workers across local and remote runners.
|
|
5
|
+
*
|
|
6
|
+
* Owned by a runner and shared with its workers. Organizes workers into
|
|
7
|
+
* local (this runner) and remote (other runners) so they are easy to
|
|
8
|
+
* distinguish. Deduplication is built in: each worker name is
|
|
9
|
+
* registered at most once.
|
|
10
|
+
*
|
|
11
|
+
* Notifications use a targeted watch mechanism: call
|
|
12
|
+
* `watch(workerName, handler)` to be notified when a specific worker
|
|
13
|
+
* registers.
|
|
14
|
+
*/
|
|
15
|
+
export declare class WorkerRegistry {
|
|
16
|
+
protected _runnerName: string;
|
|
17
|
+
protected _localWorkers: Map<string, WorkerReadyData>;
|
|
18
|
+
protected _remoteWorkers: Map<string, Map<string, WorkerReadyData>>;
|
|
19
|
+
protected _watches: Map<string, WatchHandler[]>;
|
|
20
|
+
/**
|
|
21
|
+
* Initialize the WorkerRegistry.
|
|
22
|
+
*
|
|
23
|
+
* @param runnerName Name of the runner that owns this registry.
|
|
24
|
+
*/
|
|
25
|
+
constructor(runnerName: string);
|
|
26
|
+
/** The name of the runner that owns this registry. */
|
|
27
|
+
get runnerName(): string;
|
|
28
|
+
/** Names of workers registered under this runner. */
|
|
29
|
+
get localWorkers(): string[];
|
|
30
|
+
/** Names of workers registered under remote runners. */
|
|
31
|
+
get remoteWorkers(): string[];
|
|
32
|
+
/**
|
|
33
|
+
* Look up a registered worker by name.
|
|
34
|
+
*
|
|
35
|
+
* @param workerName The worker name to look up.
|
|
36
|
+
* @returns The worker's `WorkerReadyData`, or null if not found.
|
|
37
|
+
*/
|
|
38
|
+
get(workerName: string): WorkerReadyData | null;
|
|
39
|
+
/** Whether a worker with this name is registered (Python's `in`). */
|
|
40
|
+
has(workerName: string): boolean;
|
|
41
|
+
/**
|
|
42
|
+
* Watch for a specific worker's registration.
|
|
43
|
+
*
|
|
44
|
+
* Idempotent: registering the same `(workerName, handler)` pair more than
|
|
45
|
+
* once is a no-op (otherwise the handler would fire multiple times when the
|
|
46
|
+
* worker registers — e.g. when a parent both calls `addWorkers(child)`
|
|
47
|
+
* (which auto-watches) and declares a `workerReady({ name: child.name })`
|
|
48
|
+
* handler that the framework also installs).
|
|
49
|
+
*
|
|
50
|
+
* If the worker is already registered, the handler fires immediately.
|
|
51
|
+
*
|
|
52
|
+
* @param workerName The worker name to watch for.
|
|
53
|
+
* @param handler Async callable invoked with the worker's data.
|
|
54
|
+
*/
|
|
55
|
+
watch(workerName: string, handler: WatchHandler): Promise<void>;
|
|
56
|
+
/**
|
|
57
|
+
* Register a worker. Returns true if the worker was new.
|
|
58
|
+
*
|
|
59
|
+
* If the worker is already registered, this is a no-op and returns false.
|
|
60
|
+
* Otherwise the worker is added and watchers are notified.
|
|
61
|
+
*
|
|
62
|
+
* @param workerData Information about the worker to register.
|
|
63
|
+
* @returns True if the worker was newly registered, false if already known.
|
|
64
|
+
*/
|
|
65
|
+
register(workerData: WorkerReadyData): Promise<boolean>;
|
|
66
|
+
/** Notify watchers of a new registration. */
|
|
67
|
+
protected _notify(workerData: WorkerReadyData): Promise<void>;
|
|
68
|
+
}
|
|
69
|
+
//# sourceMappingURL=registry.d.ts.map
|
|
@@ -0,0 +1,149 @@
|
|
|
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/registry/registry.py
|
|
6
|
+
/** Shared registry for tracking known workers across runners. */
|
|
7
|
+
import { logger } from "../utils/logger.js";
|
|
8
|
+
/**
|
|
9
|
+
* Tracks all known workers across local and remote runners.
|
|
10
|
+
*
|
|
11
|
+
* Owned by a runner and shared with its workers. Organizes workers into
|
|
12
|
+
* local (this runner) and remote (other runners) so they are easy to
|
|
13
|
+
* distinguish. Deduplication is built in: each worker name is
|
|
14
|
+
* registered at most once.
|
|
15
|
+
*
|
|
16
|
+
* Notifications use a targeted watch mechanism: call
|
|
17
|
+
* `watch(workerName, handler)` to be notified when a specific worker
|
|
18
|
+
* registers.
|
|
19
|
+
*/
|
|
20
|
+
export class WorkerRegistry {
|
|
21
|
+
_runnerName;
|
|
22
|
+
_localWorkers = new Map();
|
|
23
|
+
_remoteWorkers = new Map();
|
|
24
|
+
_watches = new Map();
|
|
25
|
+
/**
|
|
26
|
+
* Initialize the WorkerRegistry.
|
|
27
|
+
*
|
|
28
|
+
* @param runnerName Name of the runner that owns this registry.
|
|
29
|
+
*/
|
|
30
|
+
constructor(runnerName) {
|
|
31
|
+
this._runnerName = runnerName;
|
|
32
|
+
}
|
|
33
|
+
/** The name of the runner that owns this registry. */
|
|
34
|
+
get runnerName() {
|
|
35
|
+
return this._runnerName;
|
|
36
|
+
}
|
|
37
|
+
/** Names of workers registered under this runner. */
|
|
38
|
+
get localWorkers() {
|
|
39
|
+
return [...this._localWorkers.keys()];
|
|
40
|
+
}
|
|
41
|
+
/** Names of workers registered under remote runners. */
|
|
42
|
+
get remoteWorkers() {
|
|
43
|
+
const result = [];
|
|
44
|
+
for (const workers of this._remoteWorkers.values()) {
|
|
45
|
+
result.push(...workers.keys());
|
|
46
|
+
}
|
|
47
|
+
return result;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Look up a registered worker by name.
|
|
51
|
+
*
|
|
52
|
+
* @param workerName The worker name to look up.
|
|
53
|
+
* @returns The worker's `WorkerReadyData`, or null if not found.
|
|
54
|
+
*/
|
|
55
|
+
get(workerName) {
|
|
56
|
+
const local = this._localWorkers.get(workerName);
|
|
57
|
+
if (local) {
|
|
58
|
+
return local;
|
|
59
|
+
}
|
|
60
|
+
for (const workers of this._remoteWorkers.values()) {
|
|
61
|
+
const remote = workers.get(workerName);
|
|
62
|
+
if (remote) {
|
|
63
|
+
return remote;
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
return null;
|
|
67
|
+
}
|
|
68
|
+
/** Whether a worker with this name is registered (Python's `in`). */
|
|
69
|
+
has(workerName) {
|
|
70
|
+
return this.get(workerName) !== null;
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Watch for a specific worker's registration.
|
|
74
|
+
*
|
|
75
|
+
* Idempotent: registering the same `(workerName, handler)` pair more than
|
|
76
|
+
* once is a no-op (otherwise the handler would fire multiple times when the
|
|
77
|
+
* worker registers — e.g. when a parent both calls `addWorkers(child)`
|
|
78
|
+
* (which auto-watches) and declares a `workerReady({ name: child.name })`
|
|
79
|
+
* handler that the framework also installs).
|
|
80
|
+
*
|
|
81
|
+
* If the worker is already registered, the handler fires immediately.
|
|
82
|
+
*
|
|
83
|
+
* @param workerName The worker name to watch for.
|
|
84
|
+
* @param handler Async callable invoked with the worker's data.
|
|
85
|
+
*/
|
|
86
|
+
async watch(workerName, handler) {
|
|
87
|
+
let handlers = this._watches.get(workerName);
|
|
88
|
+
if (!handlers) {
|
|
89
|
+
handlers = [];
|
|
90
|
+
this._watches.set(workerName, handlers);
|
|
91
|
+
}
|
|
92
|
+
if (handlers.includes(handler)) {
|
|
93
|
+
return;
|
|
94
|
+
}
|
|
95
|
+
handlers.push(handler);
|
|
96
|
+
const existing = this.get(workerName);
|
|
97
|
+
if (existing) {
|
|
98
|
+
await handler(existing);
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Register a worker. Returns true if the worker was new.
|
|
103
|
+
*
|
|
104
|
+
* If the worker is already registered, this is a no-op and returns false.
|
|
105
|
+
* Otherwise the worker is added and watchers are notified.
|
|
106
|
+
*
|
|
107
|
+
* @param workerData Information about the worker to register.
|
|
108
|
+
* @returns True if the worker was newly registered, false if already known.
|
|
109
|
+
*/
|
|
110
|
+
async register(workerData) {
|
|
111
|
+
const isLocal = workerData.runner === this._runnerName;
|
|
112
|
+
let target;
|
|
113
|
+
if (isLocal) {
|
|
114
|
+
target = this._localWorkers;
|
|
115
|
+
}
|
|
116
|
+
else {
|
|
117
|
+
let remote = this._remoteWorkers.get(workerData.runner);
|
|
118
|
+
if (!remote) {
|
|
119
|
+
remote = new Map();
|
|
120
|
+
this._remoteWorkers.set(workerData.runner, remote);
|
|
121
|
+
}
|
|
122
|
+
target = remote;
|
|
123
|
+
}
|
|
124
|
+
if (target.has(workerData.workerName)) {
|
|
125
|
+
return false;
|
|
126
|
+
}
|
|
127
|
+
// Warn if the same name exists on a different runner
|
|
128
|
+
const existing = this.get(workerData.workerName);
|
|
129
|
+
if (existing && existing.runner !== workerData.runner) {
|
|
130
|
+
logger.warning(`Worker '${workerData.workerName}' registered on both ` +
|
|
131
|
+
`'${existing.runner}' and '${workerData.runner}'`);
|
|
132
|
+
}
|
|
133
|
+
target.set(workerData.workerName, workerData);
|
|
134
|
+
const locality = isLocal ? "local" : workerData.runner;
|
|
135
|
+
logger.debug(`Worker '${workerData.workerName}' ready (${locality})`);
|
|
136
|
+
await this._notify(workerData);
|
|
137
|
+
return true;
|
|
138
|
+
}
|
|
139
|
+
/** Notify watchers of a new registration. */
|
|
140
|
+
async _notify(workerData) {
|
|
141
|
+
// Iterate the live list by index, as Python does: handlers appended
|
|
142
|
+
// during notification are visited too.
|
|
143
|
+
const handlers = this._watches.get(workerData.workerName) ?? [];
|
|
144
|
+
for (let i = 0; i < handlers.length; i++) {
|
|
145
|
+
await handlers[i](workerData);
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
//# sourceMappingURL=registry.js.map
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/** Shared types for the worker registry. */
|
|
2
|
+
export interface WorkerRegistryEntryOptions {
|
|
3
|
+
/** The worker's name. */
|
|
4
|
+
name: string;
|
|
5
|
+
/** Name of the parent worker, or null for root tasks. */
|
|
6
|
+
parent?: string | null;
|
|
7
|
+
/** Whether the worker is currently active. */
|
|
8
|
+
active?: boolean;
|
|
9
|
+
/** Whether the worker is bridged. */
|
|
10
|
+
bridged?: boolean;
|
|
11
|
+
/** Unix timestamp when the worker became ready. */
|
|
12
|
+
startedAt?: number | null;
|
|
13
|
+
}
|
|
14
|
+
/** Information about a worker in a registry snapshot. */
|
|
15
|
+
export declare class WorkerRegistryEntry {
|
|
16
|
+
name: string;
|
|
17
|
+
parent: string | null;
|
|
18
|
+
active: boolean;
|
|
19
|
+
bridged: boolean;
|
|
20
|
+
startedAt: number | null;
|
|
21
|
+
constructor(options: WorkerRegistryEntryOptions);
|
|
22
|
+
}
|
|
23
|
+
export interface WorkerReadyDataOptions {
|
|
24
|
+
/** The name of the worker. */
|
|
25
|
+
workerName: string;
|
|
26
|
+
/** The name of the runner managing this worker. */
|
|
27
|
+
runner: string;
|
|
28
|
+
}
|
|
29
|
+
/** Information about a registered worker. */
|
|
30
|
+
export declare class WorkerReadyData {
|
|
31
|
+
workerName: string;
|
|
32
|
+
runner: string;
|
|
33
|
+
constructor(options: WorkerReadyDataOptions);
|
|
34
|
+
}
|
|
35
|
+
export interface WorkerErrorDataOptions {
|
|
36
|
+
/** The name of the worker that errored. */
|
|
37
|
+
workerName: string;
|
|
38
|
+
/** Description of the error. */
|
|
39
|
+
error: string;
|
|
40
|
+
}
|
|
41
|
+
/** Information about a worker error. */
|
|
42
|
+
export declare class WorkerErrorData {
|
|
43
|
+
workerName: string;
|
|
44
|
+
error: string;
|
|
45
|
+
constructor(options: WorkerErrorDataOptions);
|
|
46
|
+
}
|
|
47
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1,39 @@
|
|
|
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/registry/types.py
|
|
6
|
+
/** Information about a worker in a registry snapshot. */
|
|
7
|
+
export class WorkerRegistryEntry {
|
|
8
|
+
name;
|
|
9
|
+
parent;
|
|
10
|
+
active;
|
|
11
|
+
bridged;
|
|
12
|
+
startedAt;
|
|
13
|
+
constructor(options) {
|
|
14
|
+
this.name = options.name;
|
|
15
|
+
this.parent = options.parent ?? null;
|
|
16
|
+
this.active = options.active ?? false;
|
|
17
|
+
this.bridged = options.bridged ?? false;
|
|
18
|
+
this.startedAt = options.startedAt ?? null;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
/** Information about a registered worker. */
|
|
22
|
+
export class WorkerReadyData {
|
|
23
|
+
workerName;
|
|
24
|
+
runner;
|
|
25
|
+
constructor(options) {
|
|
26
|
+
this.workerName = options.workerName;
|
|
27
|
+
this.runner = options.runner;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
/** Information about a worker error. */
|
|
31
|
+
export class WorkerErrorData {
|
|
32
|
+
workerName;
|
|
33
|
+
error;
|
|
34
|
+
constructor(options) {
|
|
35
|
+
this.workerName = options.workerName;
|
|
36
|
+
this.error = options.error;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
/** Frame serialization interfaces for Pipecat. */
|
|
2
|
+
import { type Frame } from "../frames/frames.ts";
|
|
3
|
+
import type { FrameProcessorSetup } from "../processors/frame_processor.ts";
|
|
4
|
+
import { BaseObject, type BaseObjectOptions } from "../utils/base_object.ts";
|
|
5
|
+
export interface FrameSerializerInputParamsOptions {
|
|
6
|
+
/**
|
|
7
|
+
* Whether to ignore RTVI protocol messages during serialization. Defaults
|
|
8
|
+
* to true to prevent RTVI messages from being sent to external transports.
|
|
9
|
+
*/
|
|
10
|
+
ignoreRtviMessages?: boolean;
|
|
11
|
+
/**
|
|
12
|
+
* Seconds of inactivity after which the stream resampler clears its
|
|
13
|
+
* internal history to avoid audio artefacts from stale state. Set to `null`
|
|
14
|
+
* to never clear — recommended for telephony providers (e.g. Genesys) that
|
|
15
|
+
* have irregular gaps between audio chunks. Defaults to `0.2`.
|
|
16
|
+
*/
|
|
17
|
+
resamplerClearAfterSecs?: number | null;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Base configuration parameters for FrameSerializer.
|
|
21
|
+
*
|
|
22
|
+
* - `ignoreRtviMessages`: whether to ignore RTVI protocol messages during
|
|
23
|
+
* serialization. Defaults to true to prevent RTVI messages from being sent
|
|
24
|
+
* to external transports.
|
|
25
|
+
* - `resamplerClearAfterSecs`: seconds of inactivity after which the stream
|
|
26
|
+
* resampler clears its internal history to avoid audio artefacts from stale
|
|
27
|
+
* state. Set to `null` to never clear — recommended for telephony providers
|
|
28
|
+
* (e.g. Genesys) that have irregular gaps between audio chunks. Defaults to
|
|
29
|
+
* `0.2`.
|
|
30
|
+
*/
|
|
31
|
+
export declare class FrameSerializerInputParams {
|
|
32
|
+
ignoreRtviMessages: boolean;
|
|
33
|
+
resamplerClearAfterSecs: number | null;
|
|
34
|
+
constructor(options?: FrameSerializerInputParamsOptions);
|
|
35
|
+
}
|
|
36
|
+
export interface FrameSerializerOptions extends BaseObjectOptions {
|
|
37
|
+
/** Configuration parameters. */
|
|
38
|
+
params?: FrameSerializerInputParams | null;
|
|
39
|
+
}
|
|
40
|
+
/** Serialized frame data: a string or bytes. */
|
|
41
|
+
export type SerializedData = string | Uint8Array;
|
|
42
|
+
/**
|
|
43
|
+
* Abstract base class for frame serialization implementations.
|
|
44
|
+
*
|
|
45
|
+
* Defines the interface for converting frames to/from serialized formats
|
|
46
|
+
* for transmission or storage. Subclasses must implement the core
|
|
47
|
+
* serialize/deserialize methods.
|
|
48
|
+
*/
|
|
49
|
+
export declare abstract class FrameSerializer extends BaseObject {
|
|
50
|
+
/** Upstream's nested `FrameSerializer.InputParams`. */
|
|
51
|
+
static InputParams: typeof FrameSerializerInputParams;
|
|
52
|
+
protected _params: FrameSerializerInputParams;
|
|
53
|
+
/**
|
|
54
|
+
* Initialize the FrameSerializer.
|
|
55
|
+
*
|
|
56
|
+
* @param options.params Configuration parameters. Other options (e.g.
|
|
57
|
+
* `name`) are passed to BaseObject.
|
|
58
|
+
*/
|
|
59
|
+
constructor(options?: FrameSerializerOptions);
|
|
60
|
+
/**
|
|
61
|
+
* Check if a frame should be ignored during serialization.
|
|
62
|
+
*
|
|
63
|
+
* This method filters out RTVI protocol messages when `ignoreRtviMessages`
|
|
64
|
+
* is enabled. Subclasses can override this to add additional filtering
|
|
65
|
+
* logic.
|
|
66
|
+
*
|
|
67
|
+
* @param frame The frame to check.
|
|
68
|
+
* @returns True if the frame should be ignored, false otherwise.
|
|
69
|
+
*/
|
|
70
|
+
shouldIgnoreFrame(frame: Frame): boolean;
|
|
71
|
+
/**
|
|
72
|
+
* Initialize the serializer with pipeline configuration.
|
|
73
|
+
*
|
|
74
|
+
* @param setup Configuration object containing setup parameters.
|
|
75
|
+
*/
|
|
76
|
+
setup(_setup: FrameProcessorSetup | unknown): Promise<void>;
|
|
77
|
+
/**
|
|
78
|
+
* Convert a frame to its serialized representation.
|
|
79
|
+
*
|
|
80
|
+
* @param frame The frame to serialize.
|
|
81
|
+
* @returns Serialized frame data as string or bytes, or null when there is
|
|
82
|
+
* nothing to send for this frame: it isn't handled, or the serializer is
|
|
83
|
+
* buffering it and will emit it on a later call.
|
|
84
|
+
*/
|
|
85
|
+
abstract serialize(frame: Frame): Promise<SerializedData | null>;
|
|
86
|
+
/**
|
|
87
|
+
* Convert serialized data back to a frame object.
|
|
88
|
+
*
|
|
89
|
+
* @param data Serialized frame data as string or bytes.
|
|
90
|
+
* @returns Reconstructed Frame object, or null if deserialization fails.
|
|
91
|
+
*/
|
|
92
|
+
abstract deserialize(data: SerializedData): Promise<Frame | null>;
|
|
93
|
+
}
|
|
94
|
+
//# sourceMappingURL=base_serializer.d.ts.map
|
|
@@ -0,0 +1,82 @@
|
|
|
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/serializers/base_serializer.py
|
|
6
|
+
/** Frame serialization interfaces for Pipecat. */
|
|
7
|
+
import { OutputTransportMessageFrame, OutputTransportMessageUrgentFrame, } from "../frames/frames.js";
|
|
8
|
+
import * as RTVI from "../processors/frameworks/rtvi/models.js";
|
|
9
|
+
import { BaseObject } from "../utils/base_object.js";
|
|
10
|
+
/**
|
|
11
|
+
* Base configuration parameters for FrameSerializer.
|
|
12
|
+
*
|
|
13
|
+
* - `ignoreRtviMessages`: whether to ignore RTVI protocol messages during
|
|
14
|
+
* serialization. Defaults to true to prevent RTVI messages from being sent
|
|
15
|
+
* to external transports.
|
|
16
|
+
* - `resamplerClearAfterSecs`: seconds of inactivity after which the stream
|
|
17
|
+
* resampler clears its internal history to avoid audio artefacts from stale
|
|
18
|
+
* state. Set to `null` to never clear — recommended for telephony providers
|
|
19
|
+
* (e.g. Genesys) that have irregular gaps between audio chunks. Defaults to
|
|
20
|
+
* `0.2`.
|
|
21
|
+
*/
|
|
22
|
+
export class FrameSerializerInputParams {
|
|
23
|
+
ignoreRtviMessages;
|
|
24
|
+
resamplerClearAfterSecs;
|
|
25
|
+
constructor(options = {}) {
|
|
26
|
+
this.ignoreRtviMessages = options.ignoreRtviMessages ?? true;
|
|
27
|
+
this.resamplerClearAfterSecs =
|
|
28
|
+
options.resamplerClearAfterSecs === undefined ? 0.2 : options.resamplerClearAfterSecs;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Abstract base class for frame serialization implementations.
|
|
33
|
+
*
|
|
34
|
+
* Defines the interface for converting frames to/from serialized formats
|
|
35
|
+
* for transmission or storage. Subclasses must implement the core
|
|
36
|
+
* serialize/deserialize methods.
|
|
37
|
+
*/
|
|
38
|
+
export class FrameSerializer extends BaseObject {
|
|
39
|
+
/** Upstream's nested `FrameSerializer.InputParams`. */
|
|
40
|
+
static InputParams = FrameSerializerInputParams;
|
|
41
|
+
_params;
|
|
42
|
+
/**
|
|
43
|
+
* Initialize the FrameSerializer.
|
|
44
|
+
*
|
|
45
|
+
* @param options.params Configuration parameters. Other options (e.g.
|
|
46
|
+
* `name`) are passed to BaseObject.
|
|
47
|
+
*/
|
|
48
|
+
constructor(options = {}) {
|
|
49
|
+
super(options);
|
|
50
|
+
this._params = options.params || new FrameSerializerInputParams();
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Check if a frame should be ignored during serialization.
|
|
54
|
+
*
|
|
55
|
+
* This method filters out RTVI protocol messages when `ignoreRtviMessages`
|
|
56
|
+
* is enabled. Subclasses can override this to add additional filtering
|
|
57
|
+
* logic.
|
|
58
|
+
*
|
|
59
|
+
* @param frame The frame to check.
|
|
60
|
+
* @returns True if the frame should be ignored, false otherwise.
|
|
61
|
+
*/
|
|
62
|
+
shouldIgnoreFrame(frame) {
|
|
63
|
+
if (this._params.ignoreRtviMessages &&
|
|
64
|
+
(frame instanceof OutputTransportMessageFrame ||
|
|
65
|
+
frame instanceof OutputTransportMessageUrgentFrame) &&
|
|
66
|
+
typeof frame.message === "object" &&
|
|
67
|
+
frame.message !== null &&
|
|
68
|
+
frame.message.label === RTVI.MESSAGE_LABEL) {
|
|
69
|
+
return true;
|
|
70
|
+
}
|
|
71
|
+
return false;
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Initialize the serializer with pipeline configuration.
|
|
75
|
+
*
|
|
76
|
+
* @param setup Configuration object containing setup parameters.
|
|
77
|
+
*/
|
|
78
|
+
// Typed `unknown` to keep BaseObject.setup's signature; callers pass a
|
|
79
|
+
// FrameProcessorSetup, as upstream does.
|
|
80
|
+
async setup(_setup) { }
|
|
81
|
+
}
|
|
82
|
+
//# sourceMappingURL=base_serializer.js.map
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
// Copyright (c) 2024-2026, Daily
|
|
2
|
+
// Copyright (c) 2026, pipedog contributors
|
|
3
|
+
// SPDX-License-Identifier: BSD-2-Clause
|
|
4
|
+
//
|
|
5
|
+
// Ported from pipecat: src/pipecat/serializers/__init__.py
|
|
6
|
+
// Upstream's `__init__.py` is empty: import the package's modules directly.
|
|
7
|
+
export {};
|
|
8
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
import { CancelFrame, EndFrame, type Frame, type ServiceMetadataFrame, StartFrame } from "../frames/frames.ts";
|
|
2
|
+
import { FrameDirection, FrameProcessor, type FrameProcessorOptions, type FrameProcessorSetup } from "../processors/frame_processor.ts";
|
|
3
|
+
import type { TracingContext } from "../utils/tracing/tracing_context.ts";
|
|
4
|
+
import { ServiceSettings } from "./settings.ts";
|
|
5
|
+
export interface AIServiceOptions extends FrameProcessorOptions {
|
|
6
|
+
/** The runtime-updatable settings for the AI service. */
|
|
7
|
+
settings?: ServiceSettings | null;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Base class for all AI services.
|
|
11
|
+
*
|
|
12
|
+
* Provides common functionality for AI services including model management,
|
|
13
|
+
* settings handling, session properties, and frame processing lifecycle.
|
|
14
|
+
* Subclasses should implement specific AI functionality while leveraging
|
|
15
|
+
* this base infrastructure.
|
|
16
|
+
*/
|
|
17
|
+
export declare class AIService extends FrameProcessor {
|
|
18
|
+
protected _settings: ServiceSettings;
|
|
19
|
+
protected _sessionProperties: Record<string, unknown>;
|
|
20
|
+
protected _tracingEnabled: boolean;
|
|
21
|
+
protected _tracingContext: TracingContext | null;
|
|
22
|
+
/**
|
|
23
|
+
* Initialize the AI service.
|
|
24
|
+
*
|
|
25
|
+
* @param options.settings The runtime-updatable settings for the AI service.
|
|
26
|
+
* Other options are passed to the parent FrameProcessor.
|
|
27
|
+
*/
|
|
28
|
+
constructor(options?: AIServiceOptions);
|
|
29
|
+
/**
|
|
30
|
+
* The service's current settings, for reading.
|
|
31
|
+
*
|
|
32
|
+
* Change them with a `ServiceUpdateSettingsFrame`, so the service applies
|
|
33
|
+
* the change and its metrics keep the model in sync.
|
|
34
|
+
*/
|
|
35
|
+
get settings(): ServiceSettings;
|
|
36
|
+
/**
|
|
37
|
+
* Sync the current AI model name (in `this._settings.model`) for usage in
|
|
38
|
+
* metrics.
|
|
39
|
+
*
|
|
40
|
+
* We don't store model name here because there's already a single source
|
|
41
|
+
* of truth for it in `this._settings.model`. This method is just for
|
|
42
|
+
* syncing the model name to the metrics data.
|
|
43
|
+
*/
|
|
44
|
+
protected _syncModelNameToMetrics(): void;
|
|
45
|
+
/**
|
|
46
|
+
* The metadata frame this service broadcasts at start, or null.
|
|
47
|
+
*
|
|
48
|
+
* Override to return a populated `ServiceMetadataFrame` (or a subtype such
|
|
49
|
+
* as `STTMetadataFrame`) describing this service for downstream processors,
|
|
50
|
+
* for example the `userTurnStrategies` an STT with server-side end-of-turn
|
|
51
|
+
* detection recommends. Return null to broadcast nothing.
|
|
52
|
+
*
|
|
53
|
+
* @returns The metadata frame to broadcast, or null.
|
|
54
|
+
*/
|
|
55
|
+
serviceMetadataFrame(): ServiceMetadataFrame | null;
|
|
56
|
+
/** Broadcast this service's metadata frame, if any. */
|
|
57
|
+
broadcastServiceMetadata(): Promise<void>;
|
|
58
|
+
/**
|
|
59
|
+
* Set up the service.
|
|
60
|
+
*
|
|
61
|
+
* @param setup Configuration object containing setup parameters.
|
|
62
|
+
*/
|
|
63
|
+
setup(setup: FrameProcessorSetup): Promise<void>;
|
|
64
|
+
/**
|
|
65
|
+
* Start the AI service.
|
|
66
|
+
*
|
|
67
|
+
* Called when the service should begin processing. Subclasses should
|
|
68
|
+
* override this method to perform service-specific initialization.
|
|
69
|
+
*
|
|
70
|
+
* @param _frame The start frame containing initialization parameters.
|
|
71
|
+
*/
|
|
72
|
+
start(_frame: StartFrame): Promise<void>;
|
|
73
|
+
/**
|
|
74
|
+
* Stop the AI service on a graceful end (`EndFrame`).
|
|
75
|
+
*
|
|
76
|
+
* Runs in frame order, after pending frames drain. Override for graceful
|
|
77
|
+
* shutdown behavior, such as flushing in-flight work before stopping.
|
|
78
|
+
*
|
|
79
|
+
* @param _frame The end frame.
|
|
80
|
+
*/
|
|
81
|
+
stop(_frame: EndFrame): Promise<void>;
|
|
82
|
+
/**
|
|
83
|
+
* Cancel the AI service immediately (`CancelFrame`).
|
|
84
|
+
*
|
|
85
|
+
* Runs at once, ahead of any queued frames, to abort active work fast (for
|
|
86
|
+
* example, stop producing audio now). Override only for that time-sensitive
|
|
87
|
+
* subset.
|
|
88
|
+
*
|
|
89
|
+
* @param _frame The cancel frame.
|
|
90
|
+
*/
|
|
91
|
+
cancel(_frame: CancelFrame): Promise<void>;
|
|
92
|
+
/**
|
|
93
|
+
* Apply a settings delta and return the changed fields.
|
|
94
|
+
*
|
|
95
|
+
* The delta is applied to `_settings` and a record mapping each changed
|
|
96
|
+
* field name to its **pre-update** value is returned. The `model` field is
|
|
97
|
+
* handled specially: when it changes, the model name is synced to metrics.
|
|
98
|
+
*
|
|
99
|
+
* Concrete services should override this method (calling `super`) to react
|
|
100
|
+
* to specific changed fields (e.g. reconnect on voice change).
|
|
101
|
+
*
|
|
102
|
+
* @param delta A delta-mode settings object.
|
|
103
|
+
* @returns Record mapping changed field names to their previous values.
|
|
104
|
+
*/
|
|
105
|
+
protected _updateSettings(delta: ServiceSettings): Promise<Record<string, unknown>>;
|
|
106
|
+
/**
|
|
107
|
+
* Log a warning for settings changes that won't take effect at runtime.
|
|
108
|
+
*
|
|
109
|
+
* Convenience helper for `_updateSettings` overrides. Accepts any iterable
|
|
110
|
+
* of field names (an array, a set, a record's keys, etc.) or a record.
|
|
111
|
+
*
|
|
112
|
+
* @param unhandled Field names that changed but are not applied.
|
|
113
|
+
*/
|
|
114
|
+
protected _warnUnhandledUpdatedSettings(unhandled: Iterable<string> | Record<string, unknown>): void;
|
|
115
|
+
/**
|
|
116
|
+
* Push a frame and broadcast service metadata once the service starts.
|
|
117
|
+
*
|
|
118
|
+
* @param frame The frame to push.
|
|
119
|
+
* @param direction The direction to push the frame.
|
|
120
|
+
*/
|
|
121
|
+
pushFrame(frame: Frame, direction?: FrameDirection): Promise<void>;
|
|
122
|
+
/**
|
|
123
|
+
* Process frames and handle service lifecycle.
|
|
124
|
+
*
|
|
125
|
+
* Automatically handles StartFrame, EndFrame, and CancelFrame by calling
|
|
126
|
+
* the appropriate lifecycle methods.
|
|
127
|
+
*
|
|
128
|
+
* @param frame The frame to process.
|
|
129
|
+
* @param direction The direction of frame processing.
|
|
130
|
+
*/
|
|
131
|
+
processFrame(frame: Frame, direction: FrameDirection): Promise<void>;
|
|
132
|
+
/**
|
|
133
|
+
* Process frames from an async generator.
|
|
134
|
+
*
|
|
135
|
+
* Takes an async generator that yields frames and processes each one,
|
|
136
|
+
* handling error frames specially by pushing them as errors.
|
|
137
|
+
*
|
|
138
|
+
* @param generator An async generator that yields Frame objects or null.
|
|
139
|
+
*/
|
|
140
|
+
processGenerator(generator: AsyncIterable<Frame | null | undefined>): Promise<void>;
|
|
141
|
+
protected _start(frame: StartFrame): Promise<void>;
|
|
142
|
+
protected _stop(frame: EndFrame): Promise<void>;
|
|
143
|
+
protected _cancel(frame: CancelFrame): Promise<void>;
|
|
144
|
+
}
|
|
145
|
+
//# sourceMappingURL=ai_service.d.ts.map
|