@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,103 @@
|
|
|
1
|
+
// Copyright (c) 2024-2026, Daily
|
|
2
|
+
// Copyright (c) 2026, pipedog contributors
|
|
3
|
+
// SPDX-License-Identifier: BSD-2-Clause
|
|
4
|
+
//
|
|
5
|
+
// Ported from pipecat: src/pipecat/processors/audio/vad_processor.py
|
|
6
|
+
import { VADController } from "../../audio/vad/vad_controller.js";
|
|
7
|
+
import { CancelFrame, EndFrame, StartFrame, UserSpeakingFrame, VADUserStartedSpeakingFrame, VADUserStoppedSpeakingFrame, } from "../../frames/frames.js";
|
|
8
|
+
import { logger } from "../../utils/logger.js";
|
|
9
|
+
import { FrameProcessor, } from "../frame_processor.js";
|
|
10
|
+
/**
|
|
11
|
+
* Processes audio frames through voice activity detection.
|
|
12
|
+
*
|
|
13
|
+
* This processor wraps a VADController to detect speech in audio streams
|
|
14
|
+
* and push VAD frames into the pipeline:
|
|
15
|
+
*
|
|
16
|
+
* - `VADUserStartedSpeakingFrame`: pushed when speech begins.
|
|
17
|
+
* - `VADUserStoppedSpeakingFrame`: pushed when speech ends.
|
|
18
|
+
* - `UserSpeakingFrame`: pushed periodically while speech is detected.
|
|
19
|
+
*
|
|
20
|
+
* @example
|
|
21
|
+
* const vadProcessor = new VADProcessor({ vadAnalyzer: new SileroVADAnalyzer() });
|
|
22
|
+
*/
|
|
23
|
+
export class VADProcessor extends FrameProcessor {
|
|
24
|
+
_vadController;
|
|
25
|
+
/**
|
|
26
|
+
* Initialize the VAD processor.
|
|
27
|
+
*
|
|
28
|
+
* @param options.vadAnalyzer The VADAnalyzer instance for processing audio.
|
|
29
|
+
* @param options.speechActivityPeriod Minimum interval in seconds between
|
|
30
|
+
* UserSpeakingFrame pushes. Defaults to 0.2.
|
|
31
|
+
* @param options.audioIdleTimeout Timeout in seconds to force speech stop
|
|
32
|
+
* when no audio frames are received while in SPEAKING state. Set to 0 to
|
|
33
|
+
* disable. Defaults to 1.0. Other options are passed to the parent class.
|
|
34
|
+
*/
|
|
35
|
+
constructor(options) {
|
|
36
|
+
super(options);
|
|
37
|
+
const vadAnalyzer = options.vadAnalyzer;
|
|
38
|
+
this._vadController = new VADController(vadAnalyzer, {
|
|
39
|
+
speechActivityPeriod: options.speechActivityPeriod ?? 0.2,
|
|
40
|
+
audioIdleTimeout: options.audioIdleTimeout ?? 1.0,
|
|
41
|
+
});
|
|
42
|
+
// Push VAD frames when speech events are detected. Upstream reads the
|
|
43
|
+
// params through the controller's analyzer, which is this same instance.
|
|
44
|
+
this._vadController.addEventHandler("on_speech_started", async () => {
|
|
45
|
+
logger.debug(`${this}: User started speaking`);
|
|
46
|
+
await this.broadcastFrame(VADUserStartedSpeakingFrame, {
|
|
47
|
+
startSecs: vadAnalyzer.params.startSecs,
|
|
48
|
+
});
|
|
49
|
+
});
|
|
50
|
+
this._vadController.addEventHandler("on_speech_stopped", async () => {
|
|
51
|
+
logger.debug(`${this}: User stopped speaking`);
|
|
52
|
+
await this.broadcastFrame(VADUserStoppedSpeakingFrame, {
|
|
53
|
+
stopSecs: vadAnalyzer.params.stopSecs,
|
|
54
|
+
});
|
|
55
|
+
});
|
|
56
|
+
this._vadController.addEventHandler("on_speech_activity", async () => {
|
|
57
|
+
await this.broadcastFrame(UserSpeakingFrame);
|
|
58
|
+
});
|
|
59
|
+
// Wire up frame pushing from controller to processor
|
|
60
|
+
this._vadController.addEventHandler("on_push_frame", async (_controller, frame, direction) => {
|
|
61
|
+
await this.pushFrame(frame, direction);
|
|
62
|
+
});
|
|
63
|
+
this._vadController.addEventHandler("on_broadcast_frame", async (_controller, frameCls, kwargs) => {
|
|
64
|
+
await this.broadcastFrame(frameCls, kwargs ?? {});
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Set up the processor.
|
|
69
|
+
*
|
|
70
|
+
* @param setup Configuration object containing setup parameters.
|
|
71
|
+
*/
|
|
72
|
+
async setup(setup) {
|
|
73
|
+
await super.setup(setup);
|
|
74
|
+
await this._vadController.setup(setup);
|
|
75
|
+
}
|
|
76
|
+
/** Clean up VAD controller resources. */
|
|
77
|
+
async cleanup() {
|
|
78
|
+
await super.cleanup();
|
|
79
|
+
await this._vadController.cleanup();
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Process a frame through VAD and forward it.
|
|
83
|
+
*
|
|
84
|
+
* @param frame The frame to process.
|
|
85
|
+
* @param direction The direction of frame flow in the pipeline.
|
|
86
|
+
*/
|
|
87
|
+
async processFrame(frame, direction) {
|
|
88
|
+
await super.processFrame(frame, direction);
|
|
89
|
+
// Forward the frame first, then let VAD controller process. This ensures:
|
|
90
|
+
// 1. StartFrame reaches downstream before SpeechControlParamsFrame is broadcast
|
|
91
|
+
// 2. Audio flows through immediately while VAD detection happens after
|
|
92
|
+
await this.pushFrame(frame, direction);
|
|
93
|
+
if (frame instanceof StartFrame) {
|
|
94
|
+
await this._vadController.start();
|
|
95
|
+
}
|
|
96
|
+
else if (frame instanceof EndFrame || frame instanceof CancelFrame) {
|
|
97
|
+
await this._vadController.stop();
|
|
98
|
+
}
|
|
99
|
+
// Let the VAD controller handle the frame
|
|
100
|
+
await this._vadController.processFrame(frame);
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
//# sourceMappingURL=vad_processor.js.map
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/** Consumer processor for consuming frames from ProducerProcessor queues. */
|
|
2
|
+
import type { Queue, Task } from "@pipedog/asyncio";
|
|
3
|
+
import { CancelFrame, EndFrame, type Frame, StartFrame } from "../frames/frames.ts";
|
|
4
|
+
import { FrameDirection, FrameProcessor, type FrameProcessorOptions } from "./frame_processor.ts";
|
|
5
|
+
import { type FrameTransformer, type ProducerProcessor } from "./producer_processor.ts";
|
|
6
|
+
export interface ConsumerProcessorOptions extends FrameProcessorOptions {
|
|
7
|
+
/** The producer processor to consume frames from. */
|
|
8
|
+
producer: ProducerProcessor;
|
|
9
|
+
/** Function to transform frames before pushing. Defaults to `identityTransformer`. */
|
|
10
|
+
transformer?: FrameTransformer;
|
|
11
|
+
/** Direction to push consumed frames. Defaults to DOWNSTREAM. */
|
|
12
|
+
direction?: FrameDirection;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Frame processor that consumes frames from a ProducerProcessor's queue.
|
|
16
|
+
*
|
|
17
|
+
* This processor passes through frames normally while also consuming frames
|
|
18
|
+
* from a ProducerProcessor's queue. When frames are received from the producer
|
|
19
|
+
* queue, they are optionally transformed and pushed in the specified direction.
|
|
20
|
+
*/
|
|
21
|
+
export declare class ConsumerProcessor extends FrameProcessor {
|
|
22
|
+
protected _transformer: FrameTransformer;
|
|
23
|
+
protected _direction: FrameDirection;
|
|
24
|
+
protected _producer: ProducerProcessor;
|
|
25
|
+
protected _consumerTask: Task<unknown> | null;
|
|
26
|
+
protected _queue: Queue<Frame> | null;
|
|
27
|
+
/** Initialize the consumer processor. */
|
|
28
|
+
constructor(options: ConsumerProcessorOptions);
|
|
29
|
+
/**
|
|
30
|
+
* Process incoming frames and handle lifecycle events.
|
|
31
|
+
*
|
|
32
|
+
* @param frame The frame to process.
|
|
33
|
+
* @param direction The direction the frame is traveling.
|
|
34
|
+
*/
|
|
35
|
+
processFrame(frame: Frame, direction: FrameDirection): Promise<void>;
|
|
36
|
+
/** Start the consumer task and register with the producer. */
|
|
37
|
+
protected _start(_frame: StartFrame): Promise<void>;
|
|
38
|
+
/** Stop the consumer task. */
|
|
39
|
+
protected _stop(_frame: EndFrame): Promise<void>;
|
|
40
|
+
/** Cancel the consumer task. */
|
|
41
|
+
protected _cancel(_frame: CancelFrame): Promise<void>;
|
|
42
|
+
/** Clean up the processor and release resources. */
|
|
43
|
+
cleanup(): Promise<void>;
|
|
44
|
+
/** Cancel the consumer task, idempotently. */
|
|
45
|
+
protected _cancelConsumerTask(): Promise<void>;
|
|
46
|
+
/** Handle consuming frames from the producer queue. */
|
|
47
|
+
protected _consumerTaskHandler(): Promise<void>;
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=consumer_processor.d.ts.map
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
// Copyright (c) 2024-2026, Daily
|
|
2
|
+
// Copyright (c) 2026, pipedog contributors
|
|
3
|
+
// SPDX-License-Identifier: BSD-2-Clause
|
|
4
|
+
//
|
|
5
|
+
// Ported from pipecat: src/pipecat/processors/consumer_processor.py
|
|
6
|
+
import { CancelFrame, EndFrame, StartFrame } from "../frames/frames.js";
|
|
7
|
+
import { FrameDirection, FrameProcessor } from "./frame_processor.js";
|
|
8
|
+
import { identityTransformer, } from "./producer_processor.js";
|
|
9
|
+
/**
|
|
10
|
+
* Frame processor that consumes frames from a ProducerProcessor's queue.
|
|
11
|
+
*
|
|
12
|
+
* This processor passes through frames normally while also consuming frames
|
|
13
|
+
* from a ProducerProcessor's queue. When frames are received from the producer
|
|
14
|
+
* queue, they are optionally transformed and pushed in the specified direction.
|
|
15
|
+
*/
|
|
16
|
+
export class ConsumerProcessor extends FrameProcessor {
|
|
17
|
+
_transformer;
|
|
18
|
+
_direction;
|
|
19
|
+
_producer;
|
|
20
|
+
_consumerTask = null;
|
|
21
|
+
_queue = null;
|
|
22
|
+
/** Initialize the consumer processor. */
|
|
23
|
+
constructor(options) {
|
|
24
|
+
super(options);
|
|
25
|
+
this._transformer = options.transformer ?? identityTransformer;
|
|
26
|
+
this._direction = options.direction ?? FrameDirection.DOWNSTREAM;
|
|
27
|
+
this._producer = options.producer;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Process incoming frames and handle lifecycle events.
|
|
31
|
+
*
|
|
32
|
+
* @param frame The frame to process.
|
|
33
|
+
* @param direction The direction the frame is traveling.
|
|
34
|
+
*/
|
|
35
|
+
async processFrame(frame, direction) {
|
|
36
|
+
await super.processFrame(frame, direction);
|
|
37
|
+
if (frame instanceof StartFrame) {
|
|
38
|
+
await this._start(frame);
|
|
39
|
+
}
|
|
40
|
+
else if (frame instanceof EndFrame) {
|
|
41
|
+
await this._stop(frame);
|
|
42
|
+
}
|
|
43
|
+
else if (frame instanceof CancelFrame) {
|
|
44
|
+
await this._cancel(frame);
|
|
45
|
+
}
|
|
46
|
+
await this.pushFrame(frame, direction);
|
|
47
|
+
}
|
|
48
|
+
/** Start the consumer task and register with the producer. */
|
|
49
|
+
async _start(_frame) {
|
|
50
|
+
if (!this._consumerTask) {
|
|
51
|
+
this._queue = this._producer.addConsumer();
|
|
52
|
+
this._consumerTask = this.createTask(() => this._consumerTaskHandler());
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
/** Stop the consumer task. */
|
|
56
|
+
async _stop(_frame) {
|
|
57
|
+
await this._cancelConsumerTask();
|
|
58
|
+
}
|
|
59
|
+
/** Cancel the consumer task. */
|
|
60
|
+
async _cancel(_frame) {
|
|
61
|
+
await this._cancelConsumerTask();
|
|
62
|
+
}
|
|
63
|
+
/** Clean up the processor and release resources. */
|
|
64
|
+
async cleanup() {
|
|
65
|
+
await super.cleanup();
|
|
66
|
+
await this._cancelConsumerTask();
|
|
67
|
+
}
|
|
68
|
+
/** Cancel the consumer task, idempotently. */
|
|
69
|
+
async _cancelConsumerTask() {
|
|
70
|
+
if (this._consumerTask) {
|
|
71
|
+
await this.cancelTask(this._consumerTask);
|
|
72
|
+
this._consumerTask = null;
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
/** Handle consuming frames from the producer queue. */
|
|
76
|
+
async _consumerTaskHandler() {
|
|
77
|
+
const queue = this._queue;
|
|
78
|
+
for (;;) {
|
|
79
|
+
const frame = await queue.get();
|
|
80
|
+
const newFrame = await this._transformer(frame);
|
|
81
|
+
await this.queueFrame(newFrame, this._direction);
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
//# sourceMappingURL=consumer_processor.js.map
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/** Frame filtering processor for the Pipecat framework. */
|
|
2
|
+
import { type Frame } from "../../frames/frames.ts";
|
|
3
|
+
import type { FrameClass } from "../../utils/frame_queue.ts";
|
|
4
|
+
import { type FrameDirection, FrameProcessor } from "../frame_processor.ts";
|
|
5
|
+
export interface FrameFilterOptions {
|
|
6
|
+
/**
|
|
7
|
+
* Frame types that should be allowed to pass through the filter. All other
|
|
8
|
+
* frame types (except SystemFrame and EndFrame) will be blocked.
|
|
9
|
+
*/
|
|
10
|
+
types: readonly FrameClass[];
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* A frame processor that filters frames based on their types.
|
|
14
|
+
*
|
|
15
|
+
* This processor acts as a selective gate in the pipeline, allowing only
|
|
16
|
+
* frames of specified types to pass through. System and end frames are
|
|
17
|
+
* automatically allowed to pass through to maintain pipeline integrity.
|
|
18
|
+
*/
|
|
19
|
+
export declare class FrameFilter extends FrameProcessor {
|
|
20
|
+
protected _types: readonly FrameClass[];
|
|
21
|
+
/**
|
|
22
|
+
* Initialize the frame filter.
|
|
23
|
+
*
|
|
24
|
+
* @param options.types Frame types that should be allowed to pass through
|
|
25
|
+
* the filter. All other frame types (except SystemFrame and EndFrame) will
|
|
26
|
+
* be blocked.
|
|
27
|
+
*/
|
|
28
|
+
constructor(options: FrameFilterOptions);
|
|
29
|
+
/** Determine if a frame should pass through the filter. */
|
|
30
|
+
protected _shouldPassthroughFrame(frame: Frame): boolean;
|
|
31
|
+
/**
|
|
32
|
+
* Process an incoming frame and conditionally pass it through.
|
|
33
|
+
*
|
|
34
|
+
* @param frame The frame to process.
|
|
35
|
+
* @param direction The direction of frame flow in the pipeline.
|
|
36
|
+
*/
|
|
37
|
+
processFrame(frame: Frame, direction: FrameDirection): Promise<void>;
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=frame_filter.d.ts.map
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
// Copyright (c) 2024-2026, Daily
|
|
2
|
+
// Copyright (c) 2026, pipedog contributors
|
|
3
|
+
// SPDX-License-Identifier: BSD-2-Clause
|
|
4
|
+
//
|
|
5
|
+
// Ported from pipecat: src/pipecat/processors/filters/frame_filter.py
|
|
6
|
+
/** Frame filtering processor for the Pipecat framework. */
|
|
7
|
+
import { EndFrame, SystemFrame } from "../../frames/frames.js";
|
|
8
|
+
import { FrameProcessor } from "../frame_processor.js";
|
|
9
|
+
/**
|
|
10
|
+
* A frame processor that filters frames based on their types.
|
|
11
|
+
*
|
|
12
|
+
* This processor acts as a selective gate in the pipeline, allowing only
|
|
13
|
+
* frames of specified types to pass through. System and end frames are
|
|
14
|
+
* automatically allowed to pass through to maintain pipeline integrity.
|
|
15
|
+
*/
|
|
16
|
+
export class FrameFilter extends FrameProcessor {
|
|
17
|
+
_types;
|
|
18
|
+
/**
|
|
19
|
+
* Initialize the frame filter.
|
|
20
|
+
*
|
|
21
|
+
* @param options.types Frame types that should be allowed to pass through
|
|
22
|
+
* the filter. All other frame types (except SystemFrame and EndFrame) will
|
|
23
|
+
* be blocked.
|
|
24
|
+
*/
|
|
25
|
+
constructor(options) {
|
|
26
|
+
super();
|
|
27
|
+
this._types = options.types;
|
|
28
|
+
}
|
|
29
|
+
//
|
|
30
|
+
// Frame processor
|
|
31
|
+
//
|
|
32
|
+
/** Determine if a frame should pass through the filter. */
|
|
33
|
+
_shouldPassthroughFrame(frame) {
|
|
34
|
+
if (this._types.some((t) => frame instanceof t)) {
|
|
35
|
+
return true;
|
|
36
|
+
}
|
|
37
|
+
return frame instanceof EndFrame || frame instanceof SystemFrame;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Process an incoming frame and conditionally pass it through.
|
|
41
|
+
*
|
|
42
|
+
* @param frame The frame to process.
|
|
43
|
+
* @param direction The direction of frame flow in the pipeline.
|
|
44
|
+
*/
|
|
45
|
+
async processFrame(frame, direction) {
|
|
46
|
+
await super.processFrame(frame, direction);
|
|
47
|
+
if (this._shouldPassthroughFrame(frame)) {
|
|
48
|
+
await this.pushFrame(frame, direction);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=frame_filter.js.map
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Function-based frame filtering for Pipecat pipelines.
|
|
3
|
+
*
|
|
4
|
+
* This module provides a processor that filters frames based on a custom
|
|
5
|
+
* function, allowing for flexible frame filtering logic in processing pipelines.
|
|
6
|
+
*/
|
|
7
|
+
import { type Frame } from "../../frames/frames.ts";
|
|
8
|
+
import { FrameDirection, FrameProcessor, type FrameProcessorOptions } from "../frame_processor.ts";
|
|
9
|
+
export type FilterType = (frame: Frame) => Promise<boolean>;
|
|
10
|
+
export interface FunctionFilterOptions extends FrameProcessorOptions {
|
|
11
|
+
/**
|
|
12
|
+
* An async function that takes a Frame and returns true if the frame should
|
|
13
|
+
* pass through, false otherwise.
|
|
14
|
+
*/
|
|
15
|
+
filter: FilterType;
|
|
16
|
+
/**
|
|
17
|
+
* The direction to apply filtering. Only frames moving in this direction
|
|
18
|
+
* will be filtered; frames in the other direction pass through unfiltered.
|
|
19
|
+
* If null, frames in both directions are filtered. Defaults to DOWNSTREAM.
|
|
20
|
+
*/
|
|
21
|
+
direction?: FrameDirection | null;
|
|
22
|
+
/** Whether to filter system frames. Defaults to false. */
|
|
23
|
+
filterSystemFrames?: boolean;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* A frame processor that filters frames using a custom function.
|
|
27
|
+
*
|
|
28
|
+
* This processor allows frames to pass through based on the result of a
|
|
29
|
+
* user-provided filter function. System and end frames always pass through
|
|
30
|
+
* regardless of the filter result.
|
|
31
|
+
*/
|
|
32
|
+
export declare class FunctionFilter extends FrameProcessor {
|
|
33
|
+
protected _filter: FilterType;
|
|
34
|
+
protected _direction: FrameDirection | null;
|
|
35
|
+
protected _filterSystemFrames: boolean;
|
|
36
|
+
/**
|
|
37
|
+
* Initialize the function filter.
|
|
38
|
+
*
|
|
39
|
+
* @param options.filter An async function that takes a Frame and returns
|
|
40
|
+
* true if the frame should pass through, false otherwise.
|
|
41
|
+
* @param options.direction The direction to apply filtering. Only frames
|
|
42
|
+
* moving in this direction will be filtered; frames in the other direction
|
|
43
|
+
* pass through unfiltered. If null, frames in both directions are
|
|
44
|
+
* filtered. Defaults to DOWNSTREAM.
|
|
45
|
+
* @param options.filterSystemFrames Whether to filter system frames.
|
|
46
|
+
* Defaults to false.
|
|
47
|
+
*/
|
|
48
|
+
constructor(options: FunctionFilterOptions);
|
|
49
|
+
/** Check if a frame should pass through without filtering. */
|
|
50
|
+
protected _shouldPassthroughFrame(frame: Frame, direction: FrameDirection): boolean;
|
|
51
|
+
/**
|
|
52
|
+
* Process a frame through the filter.
|
|
53
|
+
*
|
|
54
|
+
* @param frame The frame to process.
|
|
55
|
+
* @param direction The direction the frame is moving in the pipeline.
|
|
56
|
+
*/
|
|
57
|
+
processFrame(frame: Frame, direction: FrameDirection): Promise<void>;
|
|
58
|
+
}
|
|
59
|
+
//# sourceMappingURL=function_filter.d.ts.map
|
|
@@ -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/processors/filters/function_filter.py
|
|
6
|
+
/**
|
|
7
|
+
* Function-based frame filtering for Pipecat pipelines.
|
|
8
|
+
*
|
|
9
|
+
* This module provides a processor that filters frames based on a custom
|
|
10
|
+
* function, allowing for flexible frame filtering logic in processing pipelines.
|
|
11
|
+
*/
|
|
12
|
+
import { CancelFrame, EndFrame, StartFrame, SystemFrame } from "../../frames/frames.js";
|
|
13
|
+
import { FrameDirection, FrameProcessor } from "../frame_processor.js";
|
|
14
|
+
/**
|
|
15
|
+
* A frame processor that filters frames using a custom function.
|
|
16
|
+
*
|
|
17
|
+
* This processor allows frames to pass through based on the result of a
|
|
18
|
+
* user-provided filter function. System and end frames always pass through
|
|
19
|
+
* regardless of the filter result.
|
|
20
|
+
*/
|
|
21
|
+
export class FunctionFilter extends FrameProcessor {
|
|
22
|
+
_filter;
|
|
23
|
+
_direction;
|
|
24
|
+
_filterSystemFrames;
|
|
25
|
+
/**
|
|
26
|
+
* Initialize the function filter.
|
|
27
|
+
*
|
|
28
|
+
* @param options.filter An async function that takes a Frame and returns
|
|
29
|
+
* true if the frame should pass through, false otherwise.
|
|
30
|
+
* @param options.direction The direction to apply filtering. Only frames
|
|
31
|
+
* moving in this direction will be filtered; frames in the other direction
|
|
32
|
+
* pass through unfiltered. If null, frames in both directions are
|
|
33
|
+
* filtered. Defaults to DOWNSTREAM.
|
|
34
|
+
* @param options.filterSystemFrames Whether to filter system frames.
|
|
35
|
+
* Defaults to false.
|
|
36
|
+
*/
|
|
37
|
+
constructor(options) {
|
|
38
|
+
super(options);
|
|
39
|
+
this._filter = options.filter;
|
|
40
|
+
this._direction =
|
|
41
|
+
options.direction === undefined ? FrameDirection.DOWNSTREAM : options.direction;
|
|
42
|
+
this._filterSystemFrames = options.filterSystemFrames ?? false;
|
|
43
|
+
}
|
|
44
|
+
//
|
|
45
|
+
// Frame processor
|
|
46
|
+
//
|
|
47
|
+
/** Check if a frame should pass through without filtering. */
|
|
48
|
+
_shouldPassthroughFrame(frame, direction) {
|
|
49
|
+
// Always passthrough frames in the wrong direction
|
|
50
|
+
if (this._direction && direction !== this._direction) {
|
|
51
|
+
return true;
|
|
52
|
+
}
|
|
53
|
+
// Always passthrough lifecycle frames
|
|
54
|
+
if (frame instanceof StartFrame || frame instanceof EndFrame || frame instanceof CancelFrame) {
|
|
55
|
+
return true;
|
|
56
|
+
}
|
|
57
|
+
// If not filtering system frames, passthrough all other system frames
|
|
58
|
+
if (!this._filterSystemFrames && frame instanceof SystemFrame) {
|
|
59
|
+
return true;
|
|
60
|
+
}
|
|
61
|
+
return false;
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Process a frame through the filter.
|
|
65
|
+
*
|
|
66
|
+
* @param frame The frame to process.
|
|
67
|
+
* @param direction The direction the frame is moving in the pipeline.
|
|
68
|
+
*/
|
|
69
|
+
async processFrame(frame, direction) {
|
|
70
|
+
await super.processFrame(frame, direction);
|
|
71
|
+
const passthrough = this._shouldPassthroughFrame(frame, direction);
|
|
72
|
+
const allowed = await this._filter(frame);
|
|
73
|
+
if (passthrough || allowed) {
|
|
74
|
+
await this.pushFrame(frame, direction);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
//# sourceMappingURL=function_filter.js.map
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Identity filter for transparent frame passthrough.
|
|
3
|
+
*
|
|
4
|
+
* This module provides a simple passthrough filter that forwards all frames
|
|
5
|
+
* without modification, useful for testing and pipeline composition.
|
|
6
|
+
*/
|
|
7
|
+
import type { Frame } from "../../frames/frames.ts";
|
|
8
|
+
import { type FrameDirection, FrameProcessor, type FrameProcessorOptions } from "../frame_processor.ts";
|
|
9
|
+
export interface IdentityFilterOptions extends FrameProcessorOptions {
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* A pass-through filter that forwards all frames without modification.
|
|
13
|
+
*
|
|
14
|
+
* This filter acts as a transparent passthrough, allowing all frames to flow
|
|
15
|
+
* through unchanged. It can be useful when testing `ParallelPipeline` to
|
|
16
|
+
* create pipelines that pass through frames (no frames should be repeated).
|
|
17
|
+
*/
|
|
18
|
+
export declare class IdentityFilter extends FrameProcessor {
|
|
19
|
+
/**
|
|
20
|
+
* Initialize the identity filter.
|
|
21
|
+
*
|
|
22
|
+
* @param options Options passed to the parent FrameProcessor.
|
|
23
|
+
*/
|
|
24
|
+
constructor(options?: IdentityFilterOptions);
|
|
25
|
+
/**
|
|
26
|
+
* Process an incoming frame by passing it through unchanged.
|
|
27
|
+
*
|
|
28
|
+
* @param frame The frame to process and forward.
|
|
29
|
+
* @param direction The direction of frame flow in the pipeline.
|
|
30
|
+
*/
|
|
31
|
+
processFrame(frame: Frame, direction: FrameDirection): Promise<void>;
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=identity_filter.d.ts.map
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
// Copyright (c) 2024-2026, Daily
|
|
2
|
+
// Copyright (c) 2026, pipedog contributors
|
|
3
|
+
// SPDX-License-Identifier: BSD-2-Clause
|
|
4
|
+
//
|
|
5
|
+
// Ported from pipecat: src/pipecat/processors/filters/identity_filter.py
|
|
6
|
+
import { FrameProcessor, } from "../frame_processor.js";
|
|
7
|
+
/**
|
|
8
|
+
* A pass-through filter that forwards all frames without modification.
|
|
9
|
+
*
|
|
10
|
+
* This filter acts as a transparent passthrough, allowing all frames to flow
|
|
11
|
+
* through unchanged. It can be useful when testing `ParallelPipeline` to
|
|
12
|
+
* create pipelines that pass through frames (no frames should be repeated).
|
|
13
|
+
*/
|
|
14
|
+
export class IdentityFilter extends FrameProcessor {
|
|
15
|
+
/**
|
|
16
|
+
* Initialize the identity filter.
|
|
17
|
+
*
|
|
18
|
+
* @param options Options passed to the parent FrameProcessor.
|
|
19
|
+
*/
|
|
20
|
+
constructor(options = {}) {
|
|
21
|
+
super(options);
|
|
22
|
+
}
|
|
23
|
+
//
|
|
24
|
+
// Frame processor
|
|
25
|
+
//
|
|
26
|
+
/**
|
|
27
|
+
* Process an incoming frame by passing it through unchanged.
|
|
28
|
+
*
|
|
29
|
+
* @param frame The frame to process and forward.
|
|
30
|
+
* @param direction The direction of frame flow in the pipeline.
|
|
31
|
+
*/
|
|
32
|
+
async processFrame(frame, direction) {
|
|
33
|
+
await super.processFrame(frame, direction);
|
|
34
|
+
await this.pushFrame(frame, direction);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=identity_filter.js.map
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
// Copyright (c) 2024-2026, Daily
|
|
2
|
+
// Copyright (c) 2026, pipedog contributors
|
|
3
|
+
// SPDX-License-Identifier: BSD-2-Clause
|
|
4
|
+
//
|
|
5
|
+
// Ported from pipecat: src/pipecat/processors/filters/__init__.py
|
|
6
|
+
// The upstream package initializer is empty; import the modules directly.
|
|
7
|
+
export {};
|
|
8
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Null filter processor for blocking frame transmission.
|
|
3
|
+
*
|
|
4
|
+
* This module provides a frame processor that blocks all frames except
|
|
5
|
+
* system and end frames, useful for testing or temporarily stopping
|
|
6
|
+
* frame flow in a pipeline.
|
|
7
|
+
*/
|
|
8
|
+
import { type Frame } from "../../frames/frames.ts";
|
|
9
|
+
import { type FrameDirection, FrameProcessor, type FrameProcessorOptions } from "../frame_processor.ts";
|
|
10
|
+
export interface NullFilterOptions extends FrameProcessorOptions {
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* A filter that blocks all frames except system and end frames.
|
|
14
|
+
*
|
|
15
|
+
* This processor acts as a null filter, preventing frames from passing
|
|
16
|
+
* through the pipeline while still allowing essential system and end
|
|
17
|
+
* frames to maintain proper pipeline operation.
|
|
18
|
+
*/
|
|
19
|
+
export declare class NullFilter extends FrameProcessor {
|
|
20
|
+
/**
|
|
21
|
+
* Initialize the null filter.
|
|
22
|
+
*
|
|
23
|
+
* @param options Options passed to the parent FrameProcessor.
|
|
24
|
+
*/
|
|
25
|
+
constructor(options?: NullFilterOptions);
|
|
26
|
+
/**
|
|
27
|
+
* Process incoming frames, only allowing system and end frames through.
|
|
28
|
+
*
|
|
29
|
+
* @param frame The frame to process.
|
|
30
|
+
* @param direction The direction of frame flow in the pipeline.
|
|
31
|
+
*/
|
|
32
|
+
processFrame(frame: Frame, direction: FrameDirection): Promise<void>;
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=null_filter.d.ts.map
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
// Copyright (c) 2024-2026, Daily
|
|
2
|
+
// Copyright (c) 2026, pipedog contributors
|
|
3
|
+
// SPDX-License-Identifier: BSD-2-Clause
|
|
4
|
+
//
|
|
5
|
+
// Ported from pipecat: src/pipecat/processors/filters/null_filter.py
|
|
6
|
+
/**
|
|
7
|
+
* Null filter processor for blocking frame transmission.
|
|
8
|
+
*
|
|
9
|
+
* This module provides a frame processor that blocks all frames except
|
|
10
|
+
* system and end frames, useful for testing or temporarily stopping
|
|
11
|
+
* frame flow in a pipeline.
|
|
12
|
+
*/
|
|
13
|
+
import { EndFrame, SystemFrame } from "../../frames/frames.js";
|
|
14
|
+
import { FrameProcessor, } from "../frame_processor.js";
|
|
15
|
+
/**
|
|
16
|
+
* A filter that blocks all frames except system and end frames.
|
|
17
|
+
*
|
|
18
|
+
* This processor acts as a null filter, preventing frames from passing
|
|
19
|
+
* through the pipeline while still allowing essential system and end
|
|
20
|
+
* frames to maintain proper pipeline operation.
|
|
21
|
+
*/
|
|
22
|
+
export class NullFilter extends FrameProcessor {
|
|
23
|
+
/**
|
|
24
|
+
* Initialize the null filter.
|
|
25
|
+
*
|
|
26
|
+
* @param options Options passed to the parent FrameProcessor.
|
|
27
|
+
*/
|
|
28
|
+
constructor(options = {}) {
|
|
29
|
+
super(options);
|
|
30
|
+
}
|
|
31
|
+
//
|
|
32
|
+
// Frame processor
|
|
33
|
+
//
|
|
34
|
+
/**
|
|
35
|
+
* Process incoming frames, only allowing system and end frames through.
|
|
36
|
+
*
|
|
37
|
+
* @param frame The frame to process.
|
|
38
|
+
* @param direction The direction of frame flow in the pipeline.
|
|
39
|
+
*/
|
|
40
|
+
async processFrame(frame, direction) {
|
|
41
|
+
await super.processFrame(frame, direction);
|
|
42
|
+
if (frame instanceof SystemFrame || frame instanceof EndFrame) {
|
|
43
|
+
await this.pushFrame(frame, direction);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
//# sourceMappingURL=null_filter.js.map
|