@pipedog/core 0.0.0 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +25 -0
- package/NOTICE +9 -0
- package/dist/adapters/base_llm_adapter.d.ts +266 -0
- package/dist/adapters/base_llm_adapter.js +489 -0
- package/dist/adapters/index.d.ts +2 -0
- package/dist/adapters/index.js +8 -0
- package/dist/adapters/schemas/direct_function.d.ts +202 -0
- package/dist/adapters/schemas/direct_function.js +302 -0
- package/dist/adapters/schemas/function_schema.d.ts +67 -0
- package/dist/adapters/schemas/function_schema.js +72 -0
- package/dist/adapters/schemas/index.d.ts +2 -0
- package/dist/adapters/schemas/index.js +8 -0
- package/dist/adapters/schemas/tools_schema.d.ts +57 -0
- package/dist/adapters/schemas/tools_schema.js +79 -0
- package/dist/adapters/services/index.d.ts +2 -0
- package/dist/adapters/services/index.js +8 -0
- package/dist/adapters/services/open_ai_adapter.d.ts +147 -0
- package/dist/adapters/services/open_ai_adapter.js +250 -0
- package/dist/audio/dtmf/dtmf_data.d.ts +3 -0
- package/dist/audio/dtmf/dtmf_data.js +22 -0
- package/dist/audio/dtmf/index.d.ts +2 -0
- package/dist/audio/dtmf/index.js +8 -0
- package/dist/audio/dtmf/types.d.ts +31 -0
- package/dist/audio/dtmf/types.js +35 -0
- package/dist/audio/dtmf/utils.d.ts +13 -0
- package/dist/audio/dtmf/utils.js +62 -0
- package/dist/audio/filters/base_audio_filter.d.ts +51 -0
- package/dist/audio/filters/base_audio_filter.js +17 -0
- package/dist/audio/filters/index.d.ts +2 -0
- package/dist/audio/filters/index.js +8 -0
- package/dist/audio/index.d.ts +2 -0
- package/dist/audio/index.js +8 -0
- package/dist/audio/krisp_instance.d.ts +95 -0
- package/dist/audio/krisp_instance.js +229 -0
- package/dist/audio/mixers/base_audio_mixer.d.ts +56 -0
- package/dist/audio/mixers/base_audio_mixer.js +16 -0
- package/dist/audio/mixers/index.d.ts +2 -0
- package/dist/audio/mixers/index.js +8 -0
- package/dist/audio/resamplers/base_audio_resampler.d.ts +46 -0
- package/dist/audio/resamplers/base_audio_resampler.js +35 -0
- package/dist/audio/resamplers/engine.d.ts +60 -0
- package/dist/audio/resamplers/engine.js +89 -0
- package/dist/audio/resamplers/index.d.ts +2 -0
- package/dist/audio/resamplers/index.js +8 -0
- package/dist/audio/resamplers/resampy_resampler.d.ts +10 -0
- package/dist/audio/resamplers/resampy_resampler.js +15 -0
- package/dist/audio/resamplers/sinc_engine.d.ts +10 -0
- package/dist/audio/resamplers/sinc_engine.js +235 -0
- package/dist/audio/resamplers/soxr_resampler.d.ts +58 -0
- package/dist/audio/resamplers/soxr_resampler.js +79 -0
- package/dist/audio/resamplers/soxr_stream_resampler.d.ts +78 -0
- package/dist/audio/resamplers/soxr_stream_resampler.js +159 -0
- package/dist/audio/turn/base_turn_analyzer.d.ts +84 -0
- package/dist/audio/turn/base_turn_analyzer.js +61 -0
- package/dist/audio/turn/index.d.ts +2 -0
- package/dist/audio/turn/index.js +8 -0
- package/dist/audio/turn/smart_turn/_whisper_features.d.ts +30 -0
- package/dist/audio/turn/smart_turn/_whisper_features.js +225 -0
- package/dist/audio/turn/smart_turn/base_smart_turn.d.ts +94 -0
- package/dist/audio/turn/smart_turn/base_smart_turn.js +239 -0
- package/dist/audio/turn/smart_turn/local_smart_turn_v3.d.ts +76 -0
- package/dist/audio/turn/smart_turn/local_smart_turn_v3.js +151 -0
- package/dist/audio/utils.d.ts +224 -0
- package/dist/audio/utils.js +634 -0
- package/dist/audio/vad/data/index.d.ts +2 -0
- package/dist/audio/vad/data/index.js +8 -0
- package/dist/audio/vad/index.d.ts +2 -0
- package/dist/audio/vad/index.js +8 -0
- package/dist/audio/vad/vad_analyzer.d.ts +134 -0
- package/dist/audio/vad/vad_analyzer.js +249 -0
- package/dist/audio/vad/vad_controller.d.ts +143 -0
- package/dist/audio/vad/vad_controller.js +228 -0
- package/dist/audio/volume.d.ts +38 -0
- package/dist/audio/volume.js +75 -0
- package/dist/bus/adapters/base.d.ts +35 -0
- package/dist/bus/adapters/base.js +19 -0
- package/dist/bus/adapters/index.d.ts +10 -0
- package/dist/bus/adapters/index.js +15 -0
- package/dist/bus/adapters/llm_context_adapter.d.ts +36 -0
- package/dist/bus/adapters/llm_context_adapter.js +82 -0
- package/dist/bus/adapters/tools_schema_adapter.d.ts +25 -0
- package/dist/bus/adapters/tools_schema_adapter.js +70 -0
- package/dist/bus/bridge_processor.d.ts +111 -0
- package/dist/bus/bridge_processor.js +166 -0
- package/dist/bus/bus.d.ts +110 -0
- package/dist/bus/bus.js +200 -0
- package/dist/bus/index.d.ts +22 -0
- package/dist/bus/index.js +27 -0
- package/dist/bus/local/async_queue.d.ts +12 -0
- package/dist/bus/local/async_queue.js +21 -0
- package/dist/bus/local/index.d.ts +3 -0
- package/dist/bus/local/index.js +8 -0
- package/dist/bus/messages.d.ts +378 -0
- package/dist/bus/messages.js +357 -0
- package/dist/bus/network/index.d.ts +16 -0
- package/dist/bus/network/index.js +21 -0
- package/dist/bus/queue.d.ts +27 -0
- package/dist/bus/queue.js +51 -0
- package/dist/bus/serializers/base.d.ts +25 -0
- package/dist/bus/serializers/base.js +14 -0
- package/dist/bus/serializers/index.d.ts +9 -0
- package/dist/bus/serializers/index.js +14 -0
- package/dist/bus/serializers/json.d.ts +77 -0
- package/dist/bus/serializers/json.js +367 -0
- package/dist/bus/subscriber.d.ts +46 -0
- package/dist/bus/subscriber.js +27 -0
- package/dist/bus/ui/index.d.ts +3 -0
- package/dist/bus/ui/index.js +8 -0
- package/dist/bus/ui/messages.d.ts +186 -0
- package/dist/bus/ui/messages.js +171 -0
- package/dist/classifiers/base_classifier.d.ts +263 -0
- package/dist/classifiers/base_classifier.js +346 -0
- package/dist/classifiers/cloudflare/clef/classifier.d.ts +70 -0
- package/dist/classifiers/cloudflare/clef/classifier.js +204 -0
- package/dist/classifiers/cloudflare/clef/client.d.ts +104 -0
- package/dist/classifiers/cloudflare/clef/client.js +234 -0
- package/dist/classifiers/cloudflare/clef/index.d.ts +2 -0
- package/dist/classifiers/cloudflare/clef/index.js +8 -0
- package/dist/classifiers/cloudflare/index.d.ts +2 -0
- package/dist/classifiers/cloudflare/index.js +8 -0
- package/dist/classifiers/http_client.d.ts +70 -0
- package/dist/classifiers/http_client.js +161 -0
- package/dist/classifiers/index.d.ts +2 -0
- package/dist/classifiers/index.js +8 -0
- package/dist/classifiers/jev/classifier.d.ts +8 -0
- package/dist/classifiers/jev/classifier.js +13 -0
- package/dist/classifiers/jev/client.d.ts +8 -0
- package/dist/classifiers/jev/client.js +13 -0
- package/dist/classifiers/jev/index.d.ts +2 -0
- package/dist/classifiers/jev/index.js +8 -0
- package/dist/classifiers/llm/classifier.d.ts +72 -0
- package/dist/classifiers/llm/classifier.js +304 -0
- package/dist/classifiers/llm/index.d.ts +2 -0
- package/dist/classifiers/llm/index.js +8 -0
- package/dist/classifiers/openai/decisions/classifier.d.ts +77 -0
- package/dist/classifiers/openai/decisions/classifier.js +241 -0
- package/dist/classifiers/openai/decisions/client.d.ts +108 -0
- package/dist/classifiers/openai/decisions/client.js +234 -0
- package/dist/classifiers/openai/decisions/index.d.ts +2 -0
- package/dist/classifiers/openai/decisions/index.js +8 -0
- package/dist/classifiers/openai/index.d.ts +2 -0
- package/dist/classifiers/openai/index.js +8 -0
- package/dist/classifiers/typesafe/index.d.ts +2 -0
- package/dist/classifiers/typesafe/index.js +8 -0
- package/dist/classifiers/typesafe/jev/classifier.d.ts +70 -0
- package/dist/classifiers/typesafe/jev/classifier.js +220 -0
- package/dist/classifiers/typesafe/jev/client.d.ts +105 -0
- package/dist/classifiers/typesafe/jev/client.js +233 -0
- package/dist/classifiers/typesafe/jev/index.d.ts +2 -0
- package/dist/classifiers/typesafe/jev/index.js +8 -0
- package/dist/clocks/base_clock.d.ts +13 -0
- package/dist/clocks/base_clock.js +14 -0
- package/dist/clocks/index.d.ts +2 -0
- package/dist/clocks/index.js +8 -0
- package/dist/clocks/system_clock.d.ts +15 -0
- package/dist/clocks/system_clock.js +25 -0
- package/dist/frames/frames.d.ts +2533 -0
- package/dist/frames/frames.js +2485 -0
- package/dist/frames/index.d.ts +2 -0
- package/dist/frames/index.js +8 -0
- package/dist/frames/protobufs/frames_pb2.d.ts +229 -0
- package/dist/frames/protobufs/frames_pb2.js +466 -0
- package/dist/index.d.ts +11 -0
- package/dist/index.js +56 -0
- package/dist/metrics/index.d.ts +2 -0
- package/dist/metrics/index.js +8 -0
- package/dist/metrics/metrics.d.ts +276 -0
- package/dist/metrics/metrics.js +254 -0
- package/dist/observers/base_observer.d.ts +173 -0
- package/dist/observers/base_observer.js +151 -0
- package/dist/observers/error_observer.d.ts +75 -0
- package/dist/observers/error_observer.js +87 -0
- package/dist/observers/function_call_observer.d.ts +157 -0
- package/dist/observers/function_call_observer.js +222 -0
- package/dist/observers/index.d.ts +2 -0
- package/dist/observers/index.js +8 -0
- package/dist/observers/loggers/debug_log_observer.d.ts +91 -0
- package/dist/observers/loggers/debug_log_observer.js +228 -0
- package/dist/observers/loggers/index.d.ts +2 -0
- package/dist/observers/loggers/index.js +8 -0
- package/dist/observers/loggers/llm_log_observer.d.ts +24 -0
- package/dist/observers/loggers/llm_log_observer.js +110 -0
- package/dist/observers/loggers/metrics_log_observer.d.ts +85 -0
- package/dist/observers/loggers/metrics_log_observer.js +186 -0
- package/dist/observers/loggers/transcription_log_observer.d.ts +23 -0
- package/dist/observers/loggers/transcription_log_observer.js +74 -0
- package/dist/observers/service_metrics_observer.d.ts +168 -0
- package/dist/observers/service_metrics_observer.js +236 -0
- package/dist/observers/speaking_observer.d.ts +104 -0
- package/dist/observers/speaking_observer.js +150 -0
- package/dist/observers/startup_timing_observer.d.ts +221 -0
- package/dist/observers/startup_timing_observer.js +365 -0
- package/dist/observers/turn_tracking_observer.d.ts +78 -0
- package/dist/observers/turn_tracking_observer.js +189 -0
- package/dist/observers/user_bot_latency_observer.d.ts +411 -0
- package/dist/observers/user_bot_latency_observer.js +974 -0
- package/dist/pipeline/base_pipeline.d.ts +49 -0
- package/dist/pipeline/base_pipeline.js +101 -0
- package/dist/pipeline/capabilities.d.ts +76 -0
- package/dist/pipeline/capabilities.js +97 -0
- package/dist/pipeline/index.d.ts +2 -0
- package/dist/pipeline/index.js +8 -0
- package/dist/pipeline/job_context.d.ts +317 -0
- package/dist/pipeline/job_context.js +450 -0
- package/dist/pipeline/job_decorator.d.ts +54 -0
- package/dist/pipeline/job_decorator.js +92 -0
- package/dist/pipeline/llm_switcher.d.ts +84 -0
- package/dist/pipeline/llm_switcher.js +107 -0
- package/dist/pipeline/llm_with_backend.d.ts +435 -0
- package/dist/pipeline/llm_with_backend.js +806 -0
- package/dist/pipeline/parallel_pipeline.d.ts +83 -0
- package/dist/pipeline/parallel_pipeline.js +200 -0
- package/dist/pipeline/pipeline.d.ts +126 -0
- package/dist/pipeline/pipeline.js +196 -0
- package/dist/pipeline/service_switcher.d.ts +287 -0
- package/dist/pipeline/service_switcher.js +509 -0
- package/dist/pipeline/sync_parallel_pipeline.d.ts +192 -0
- package/dist/pipeline/sync_parallel_pipeline.js +387 -0
- package/dist/pipeline/worker.d.ts +821 -0
- package/dist/pipeline/worker.js +1656 -0
- package/dist/pipeline/worker_observer.d.ts +131 -0
- package/dist/pipeline/worker_observer.js +274 -0
- package/dist/pipeline/worker_ready_decorator.d.ts +45 -0
- package/dist/pipeline/worker_ready_decorator.js +76 -0
- package/dist/processors/aggregators/async_tool_messages.d.ts +146 -0
- package/dist/processors/aggregators/async_tool_messages.js +291 -0
- package/dist/processors/aggregators/dtmf_aggregator.d.ts +61 -0
- package/dist/processors/aggregators/dtmf_aggregator.js +144 -0
- package/dist/processors/aggregators/gated.d.ts +43 -0
- package/dist/processors/aggregators/gated.js +86 -0
- package/dist/processors/aggregators/gated_llm_context.d.ts +42 -0
- package/dist/processors/aggregators/gated_llm_context.js +86 -0
- package/dist/processors/aggregators/index.d.ts +2 -0
- package/dist/processors/aggregators/index.js +8 -0
- package/dist/processors/aggregators/llm_context.d.ts +370 -0
- package/dist/processors/aggregators/llm_context.js +580 -0
- package/dist/processors/aggregators/llm_context_summarizer.d.ts +219 -0
- package/dist/processors/aggregators/llm_context_summarizer.js +447 -0
- package/dist/processors/aggregators/llm_response.d.ts +37 -0
- package/dist/processors/aggregators/llm_response.js +71 -0
- package/dist/processors/aggregators/llm_response_universal.d.ts +966 -0
- package/dist/processors/aggregators/llm_response_universal.js +2394 -0
- package/dist/processors/aggregators/llm_text_processor.d.ts +53 -0
- package/dist/processors/aggregators/llm_text_processor.js +102 -0
- package/dist/processors/aggregators/sentence.d.ts +39 -0
- package/dist/processors/aggregators/sentence.js +69 -0
- package/dist/processors/async_generator.d.ts +42 -0
- package/dist/processors/async_generator.js +76 -0
- package/dist/processors/audio/audio_buffer_processor.d.ts +241 -0
- package/dist/processors/audio/audio_buffer_processor.js +565 -0
- package/dist/processors/audio/index.d.ts +2 -0
- package/dist/processors/audio/index.js +8 -0
- package/dist/processors/audio/vad_processor.d.ts +67 -0
- package/dist/processors/audio/vad_processor.js +103 -0
- package/dist/processors/consumer_processor.d.ts +49 -0
- package/dist/processors/consumer_processor.js +85 -0
- package/dist/processors/filters/frame_filter.d.ts +39 -0
- package/dist/processors/filters/frame_filter.js +52 -0
- package/dist/processors/filters/function_filter.d.ts +59 -0
- package/dist/processors/filters/function_filter.js +78 -0
- package/dist/processors/filters/identity_filter.d.ts +33 -0
- package/dist/processors/filters/identity_filter.js +37 -0
- package/dist/processors/filters/index.d.ts +2 -0
- package/dist/processors/filters/index.js +8 -0
- package/dist/processors/filters/null_filter.d.ts +34 -0
- package/dist/processors/filters/null_filter.js +47 -0
- package/dist/processors/filters/wake_notifier_filter.d.ts +48 -0
- package/dist/processors/filters/wake_notifier_filter.js +49 -0
- package/dist/processors/frame_processor.d.ts +360 -0
- package/dist/processors/frame_processor.js +932 -0
- package/dist/processors/frameworks/index.d.ts +2 -0
- package/dist/processors/frameworks/index.js +8 -0
- package/dist/processors/frameworks/rtvi/frames.d.ts +241 -0
- package/dist/processors/frameworks/rtvi/frames.js +259 -0
- package/dist/processors/frameworks/rtvi/index.d.ts +6 -0
- package/dist/processors/frameworks/rtvi/index.js +11 -0
- package/dist/processors/frameworks/rtvi/models.d.ts +1741 -0
- package/dist/processors/frameworks/rtvi/models.js +1807 -0
- package/dist/processors/frameworks/rtvi/observer.d.ts +340 -0
- package/dist/processors/frameworks/rtvi/observer.js +1113 -0
- package/dist/processors/frameworks/rtvi/processor.d.ts +182 -0
- package/dist/processors/frameworks/rtvi/processor.js +676 -0
- package/dist/processors/idle_frame_processor.d.ts +44 -0
- package/dist/processors/idle_frame_processor.js +86 -0
- package/dist/processors/index.d.ts +2 -0
- package/dist/processors/index.js +8 -0
- package/dist/processors/logger.d.ts +42 -0
- package/dist/processors/logger.js +87 -0
- package/dist/processors/metrics/frame_processor_metrics.d.ts +172 -0
- package/dist/processors/metrics/frame_processor_metrics.js +372 -0
- package/dist/processors/metrics/index.d.ts +2 -0
- package/dist/processors/metrics/index.js +8 -0
- package/dist/processors/producer_processor.d.ts +68 -0
- package/dist/processors/producer_processor.js +78 -0
- package/dist/processors/text_transformer.d.ts +30 -0
- package/dist/processors/text_transformer.js +48 -0
- package/dist/registry/index.d.ts +3 -0
- package/dist/registry/index.js +8 -0
- package/dist/registry/registry.d.ts +69 -0
- package/dist/registry/registry.js +149 -0
- package/dist/registry/types.d.ts +47 -0
- package/dist/registry/types.js +39 -0
- package/dist/serializers/base_serializer.d.ts +94 -0
- package/dist/serializers/base_serializer.js +82 -0
- package/dist/serializers/index.d.ts +2 -0
- package/dist/serializers/index.js +8 -0
- package/dist/services/ai_service.d.ts +145 -0
- package/dist/services/ai_service.js +262 -0
- package/dist/services/anthropic/index.d.ts +2 -0
- package/dist/services/anthropic/index.js +7 -0
- package/dist/services/assemblyai/index.d.ts +2 -0
- package/dist/services/assemblyai/index.js +7 -0
- package/dist/services/asyncai/index.d.ts +2 -0
- package/dist/services/asyncai/index.js +7 -0
- package/dist/services/aws/index.d.ts +2 -0
- package/dist/services/aws/index.js +7 -0
- package/dist/services/azure/index.d.ts +2 -0
- package/dist/services/azure/index.js +7 -0
- package/dist/services/baseten/index.d.ts +2 -0
- package/dist/services/baseten/index.js +7 -0
- package/dist/services/bland/index.d.ts +2 -0
- package/dist/services/bland/index.js +7 -0
- package/dist/services/camb/index.d.ts +2 -0
- package/dist/services/camb/index.js +7 -0
- package/dist/services/cartesia/index.d.ts +2 -0
- package/dist/services/cartesia/index.js +7 -0
- package/dist/services/cerebras/index.d.ts +2 -0
- package/dist/services/cerebras/index.js +7 -0
- package/dist/services/crusoe/index.d.ts +2 -0
- package/dist/services/crusoe/index.js +7 -0
- package/dist/services/deepgram/index.d.ts +2 -0
- package/dist/services/deepgram/index.js +7 -0
- package/dist/services/deepseek/index.d.ts +2 -0
- package/dist/services/deepseek/index.js +7 -0
- package/dist/services/elevenlabs/index.d.ts +2 -0
- package/dist/services/elevenlabs/index.js +7 -0
- package/dist/services/fal/index.d.ts +2 -0
- package/dist/services/fal/index.js +7 -0
- package/dist/services/fireworks/index.d.ts +2 -0
- package/dist/services/fireworks/index.js +7 -0
- package/dist/services/fish/index.d.ts +2 -0
- package/dist/services/fish/index.js +7 -0
- package/dist/services/funasr/index.d.ts +3 -0
- package/dist/services/funasr/index.js +8 -0
- package/dist/services/gladia/index.d.ts +2 -0
- package/dist/services/gladia/index.js +7 -0
- package/dist/services/google/index.d.ts +2 -0
- package/dist/services/google/index.js +7 -0
- package/dist/services/gradium/index.d.ts +2 -0
- package/dist/services/gradium/index.js +7 -0
- package/dist/services/grok/index.d.ts +2 -0
- package/dist/services/grok/index.js +7 -0
- package/dist/services/groq/index.d.ts +2 -0
- package/dist/services/groq/index.js +7 -0
- package/dist/services/heygen/index.d.ts +2 -0
- package/dist/services/heygen/index.js +7 -0
- package/dist/services/hume/index.d.ts +2 -0
- package/dist/services/hume/index.js +7 -0
- package/dist/services/image_service.d.ts +52 -0
- package/dist/services/image_service.js +60 -0
- package/dist/services/inception/index.d.ts +2 -0
- package/dist/services/inception/index.js +7 -0
- package/dist/services/index.d.ts +2 -0
- package/dist/services/index.js +8 -0
- package/dist/services/inworld/index.d.ts +2 -0
- package/dist/services/inworld/index.js +7 -0
- package/dist/services/keenable/index.d.ts +2 -0
- package/dist/services/keenable/index.js +7 -0
- package/dist/services/kokoro/index.d.ts +2 -0
- package/dist/services/kokoro/index.js +7 -0
- package/dist/services/llm_service.d.ts +1106 -0
- package/dist/services/llm_service.js +2231 -0
- package/dist/services/mem0/index.d.ts +2 -0
- package/dist/services/mem0/index.js +7 -0
- package/dist/services/meta/index.d.ts +2 -0
- package/dist/services/meta/index.js +7 -0
- package/dist/services/minimax/index.d.ts +2 -0
- package/dist/services/minimax/index.js +7 -0
- package/dist/services/mistral/index.d.ts +2 -0
- package/dist/services/mistral/index.js +7 -0
- package/dist/services/moondream/index.d.ts +2 -0
- package/dist/services/moondream/index.js +7 -0
- package/dist/services/moonshine/index.d.ts +2 -0
- package/dist/services/moonshine/index.js +7 -0
- package/dist/services/nebius/index.d.ts +2 -0
- package/dist/services/nebius/index.js +7 -0
- package/dist/services/neuphonic/index.d.ts +2 -0
- package/dist/services/neuphonic/index.js +7 -0
- package/dist/services/novita/index.d.ts +2 -0
- package/dist/services/novita/index.js +7 -0
- package/dist/services/nvidia/index.d.ts +2 -0
- package/dist/services/nvidia/index.js +11 -0
- package/dist/services/ollama/index.d.ts +2 -0
- package/dist/services/ollama/index.js +7 -0
- package/dist/services/openai/index.d.ts +2 -0
- package/dist/services/openai/index.js +7 -0
- package/dist/services/openclaw/index.d.ts +14 -0
- package/dist/services/openclaw/index.js +19 -0
- package/dist/services/openrouter/index.d.ts +2 -0
- package/dist/services/openrouter/index.js +7 -0
- package/dist/services/perplexity/index.d.ts +2 -0
- package/dist/services/perplexity/index.js +7 -0
- package/dist/services/piper/index.d.ts +2 -0
- package/dist/services/piper/index.js +7 -0
- package/dist/services/pocket_tts/index.d.ts +2 -0
- package/dist/services/pocket_tts/index.js +7 -0
- package/dist/services/qwen/index.d.ts +2 -0
- package/dist/services/qwen/index.js +7 -0
- package/dist/services/resembleai/index.d.ts +2 -0
- package/dist/services/resembleai/index.js +7 -0
- package/dist/services/rime/index.d.ts +2 -0
- package/dist/services/rime/index.js +7 -0
- package/dist/services/sambanova/index.d.ts +2 -0
- package/dist/services/sambanova/index.js +7 -0
- package/dist/services/sarvam/index.d.ts +2 -0
- package/dist/services/sarvam/index.js +7 -0
- package/dist/services/settings.d.ts +356 -0
- package/dist/services/settings.js +437 -0
- package/dist/services/simli/index.d.ts +2 -0
- package/dist/services/simli/index.js +7 -0
- package/dist/services/smallest/index.d.ts +2 -0
- package/dist/services/smallest/index.js +7 -0
- package/dist/services/soniox/index.d.ts +2 -0
- package/dist/services/soniox/index.js +7 -0
- package/dist/services/speechify/index.d.ts +2 -0
- package/dist/services/speechify/index.js +7 -0
- package/dist/services/speechmatics/index.d.ts +2 -0
- package/dist/services/speechmatics/index.js +7 -0
- package/dist/services/stt_latency.d.ts +62 -0
- package/dist/services/stt_latency.js +71 -0
- package/dist/services/stt_service.d.ts +601 -0
- package/dist/services/stt_service.js +1044 -0
- package/dist/services/tavus/index.d.ts +2 -0
- package/dist/services/tavus/index.js +7 -0
- package/dist/services/together/index.d.ts +2 -0
- package/dist/services/together/index.js +7 -0
- package/dist/services/tts_service.d.ts +909 -0
- package/dist/services/tts_service.js +2018 -0
- package/dist/services/ultravox/index.d.ts +2 -0
- package/dist/services/ultravox/index.js +9 -0
- package/dist/services/vision_service.d.ts +56 -0
- package/dist/services/vision_service.js +62 -0
- package/dist/services/websocket_service.d.ts +213 -0
- package/dist/services/websocket_service.js +654 -0
- package/dist/services/whisper/index.d.ts +2 -0
- package/dist/services/whisper/index.js +9 -0
- package/dist/services/xai/index.d.ts +2 -0
- package/dist/services/xai/index.js +9 -0
- package/dist/services/xtts/index.d.ts +2 -0
- package/dist/services/xtts/index.js +9 -0
- package/dist/tests/index.d.ts +2 -0
- package/dist/tests/index.js +8 -0
- package/dist/tests/utils.d.ts +123 -0
- package/dist/tests/utils.js +212 -0
- package/dist/transcriptions/index.d.ts +2 -0
- package/dist/transcriptions/index.js +8 -0
- package/dist/transcriptions/language.d.ts +376 -0
- package/dist/transcriptions/language.js +543 -0
- package/dist/transports/base_input.d.ts +149 -0
- package/dist/transports/base_input.js +338 -0
- package/dist/transports/base_output.d.ts +432 -0
- package/dist/transports/base_output.js +1231 -0
- package/dist/transports/base_transport.d.ts +223 -0
- package/dist/transports/base_transport.js +167 -0
- package/dist/transports/daily/index.d.ts +2 -0
- package/dist/transports/daily/index.js +9 -0
- package/dist/transports/heygen/index.d.ts +2 -0
- package/dist/transports/heygen/index.js +9 -0
- package/dist/transports/index.d.ts +2 -0
- package/dist/transports/index.js +8 -0
- package/dist/transports/lemonslice/index.d.ts +2 -0
- package/dist/transports/lemonslice/index.js +9 -0
- package/dist/transports/livekit/index.d.ts +2 -0
- package/dist/transports/livekit/index.js +9 -0
- package/dist/transports/local/index.d.ts +2 -0
- package/dist/transports/local/index.js +9 -0
- package/dist/transports/moq/index.d.ts +2 -0
- package/dist/transports/moq/index.js +9 -0
- package/dist/transports/smallwebrtc/index.d.ts +2 -0
- package/dist/transports/smallwebrtc/index.js +9 -0
- package/dist/transports/tavus/index.d.ts +2 -0
- package/dist/transports/tavus/index.js +9 -0
- package/dist/transports/video_in_sampler.d.ts +157 -0
- package/dist/transports/video_in_sampler.js +258 -0
- package/dist/transports/vonage/index.d.ts +2 -0
- package/dist/transports/vonage/index.js +9 -0
- package/dist/transports/websocket/index.d.ts +2 -0
- package/dist/transports/websocket/index.js +9 -0
- package/dist/transports/whatsapp/index.d.ts +2 -0
- package/dist/transports/whatsapp/index.js +9 -0
- package/dist/turns/eager_end_of_turn_mixin.d.ts +70 -0
- package/dist/turns/eager_end_of_turn_mixin.js +122 -0
- package/dist/turns/empty_user_turn.d.ts +55 -0
- package/dist/turns/empty_user_turn.js +53 -0
- package/dist/turns/index.d.ts +2 -0
- package/dist/turns/index.js +8 -0
- package/dist/turns/speculation_gate.d.ts +169 -0
- package/dist/turns/speculation_gate.js +294 -0
- package/dist/turns/types.d.ts +33 -0
- package/dist/turns/types.js +35 -0
- package/dist/turns/user_idle_controller.d.ts +94 -0
- package/dist/turns/user_idle_controller.js +187 -0
- package/dist/turns/user_mute/always_user_mute_strategy.d.ts +15 -0
- package/dist/turns/user_mute/always_user_mute_strategy.js +29 -0
- package/dist/turns/user_mute/base_user_mute_strategy.d.ts +39 -0
- package/dist/turns/user_mute/base_user_mute_strategy.js +45 -0
- package/dist/turns/user_mute/first_speech_user_mute_strategy.d.ts +28 -0
- package/dist/turns/user_mute/first_speech_user_mute_strategy.js +52 -0
- package/dist/turns/user_mute/function_call_user_mute_strategy.d.ts +25 -0
- package/dist/turns/user_mute/function_call_user_mute_strategy.js +50 -0
- package/dist/turns/user_mute/index.d.ts +6 -0
- package/dist/turns/user_mute/index.js +11 -0
- package/dist/turns/user_mute/mute_until_first_bot_complete_user_mute_strategy.d.ts +43 -0
- package/dist/turns/user_mute/mute_until_first_bot_complete_user_mute_strategy.js +76 -0
- package/dist/turns/user_start/base_user_turn_start_strategy.d.ts +135 -0
- package/dist/turns/user_start/base_user_turn_start_strategy.js +134 -0
- package/dist/turns/user_start/external_user_turn_start_strategy.d.ts +45 -0
- package/dist/turns/user_start/external_user_turn_start_strategy.js +64 -0
- package/dist/turns/user_start/index.d.ts +8 -0
- package/dist/turns/user_start/index.js +16 -0
- package/dist/turns/user_start/krisp_viva_ip_user_turn_start_strategy.d.ts +133 -0
- package/dist/turns/user_start/krisp_viva_ip_user_turn_start_strategy.js +243 -0
- package/dist/turns/user_start/min_words_user_turn_start_strategy.d.ts +60 -0
- package/dist/turns/user_start/min_words_user_turn_start_strategy.js +102 -0
- package/dist/turns/user_start/transcription_user_turn_start_strategy.d.ts +29 -0
- package/dist/turns/user_start/transcription_user_turn_start_strategy.js +43 -0
- package/dist/turns/user_start/vad_user_turn_start_strategy.d.ts +20 -0
- package/dist/turns/user_start/vad_user_turn_start_strategy.js +31 -0
- package/dist/turns/user_start/wake_phrase_user_turn_start_strategy.d.ts +141 -0
- package/dist/turns/user_start/wake_phrase_user_turn_start_strategy.js +238 -0
- package/dist/turns/user_stop/base_user_turn_stop_strategy.d.ts +174 -0
- package/dist/turns/user_stop/base_user_turn_stop_strategy.js +170 -0
- package/dist/turns/user_stop/deferred_user_turn_stop_strategy.d.ts +81 -0
- package/dist/turns/user_stop/deferred_user_turn_stop_strategy.js +107 -0
- package/dist/turns/user_stop/eager_match_policy.d.ts +36 -0
- package/dist/turns/user_stop/eager_match_policy.js +50 -0
- package/dist/turns/user_stop/eager_user_turn_stop_strategy.d.ts +84 -0
- package/dist/turns/user_stop/eager_user_turn_stop_strategy.js +154 -0
- package/dist/turns/user_stop/external_user_turn_completion_stop_strategy.d.ts +45 -0
- package/dist/turns/user_stop/external_user_turn_completion_stop_strategy.js +55 -0
- package/dist/turns/user_stop/external_user_turn_stop_strategy.d.ts +115 -0
- package/dist/turns/user_stop/external_user_turn_stop_strategy.js +205 -0
- package/dist/turns/user_stop/index.d.ts +10 -0
- package/dist/turns/user_stop/index.js +15 -0
- package/dist/turns/user_stop/llm_turn_completion_user_turn_stop_strategy.d.ts +44 -0
- package/dist/turns/user_stop/llm_turn_completion_user_turn_stop_strategy.js +59 -0
- package/dist/turns/user_stop/speech_timeout_user_turn_stop_strategy.d.ts +140 -0
- package/dist/turns/user_stop/speech_timeout_user_turn_stop_strategy.js +303 -0
- package/dist/turns/user_stop/turn_analyzer_user_turn_stop_strategy.d.ts +135 -0
- package/dist/turns/user_stop/turn_analyzer_user_turn_stop_strategy.js +332 -0
- package/dist/turns/user_turn_completion_mixin.d.ts +147 -0
- package/dist/turns/user_turn_completion_mixin.js +591 -0
- package/dist/turns/user_turn_controller.d.ts +134 -0
- package/dist/turns/user_turn_controller.js +335 -0
- package/dist/turns/user_turn_processor.d.ts +87 -0
- package/dist/turns/user_turn_processor.js +180 -0
- package/dist/turns/user_turn_strategies.d.ts +187 -0
- package/dist/turns/user_turn_strategies.js +222 -0
- package/dist/utils/async_tool_cancellation.d.ts +35 -0
- package/dist/utils/async_tool_cancellation.js +78 -0
- package/dist/utils/asyncio/index.d.ts +2 -0
- package/dist/utils/asyncio/index.js +7 -0
- package/dist/utils/asyncio/task_manager.d.ts +49 -0
- package/dist/utils/asyncio/task_manager.js +105 -0
- package/dist/utils/base_object.d.ts +76 -0
- package/dist/utils/base_object.js +154 -0
- package/dist/utils/context/aggregated_frame_sequencer.d.ts +491 -0
- package/dist/utils/context/aggregated_frame_sequencer.js +803 -0
- package/dist/utils/context/audio_context_manager.d.ts +131 -0
- package/dist/utils/context/audio_context_manager.js +233 -0
- package/dist/utils/context/index.d.ts +2 -0
- package/dist/utils/context/index.js +7 -0
- package/dist/utils/context/llm_context_summarization.d.ts +258 -0
- package/dist/utils/context/llm_context_summarization.js +511 -0
- package/dist/utils/context/text_segment_map.d.ts +611 -0
- package/dist/utils/context/text_segment_map.js +1132 -0
- package/dist/utils/context/word_completion_tracker.d.ts +273 -0
- package/dist/utils/context/word_completion_tracker.js +441 -0
- package/dist/utils/context/word_timestamp_tracker.d.ts +72 -0
- package/dist/utils/context/word_timestamp_tracker.js +98 -0
- package/dist/utils/deprecation.d.ts +28 -0
- package/dist/utils/deprecation.js +75 -0
- package/dist/utils/env.d.ts +38 -0
- package/dist/utils/env.js +62 -0
- package/dist/utils/errors.d.ts +75 -0
- package/dist/utils/errors.js +202 -0
- package/dist/utils/file_resolver.d.ts +126 -0
- package/dist/utils/file_resolver.js +314 -0
- package/dist/utils/file_storage.d.ts +115 -0
- package/dist/utils/file_storage.js +178 -0
- package/dist/utils/frame_queue.d.ts +36 -0
- package/dist/utils/frame_queue.js +66 -0
- package/dist/utils/http.d.ts +39 -0
- package/dist/utils/http.js +53 -0
- package/dist/utils/image.d.ts +14 -0
- package/dist/utils/image.js +63 -0
- package/dist/utils/index.d.ts +2 -0
- package/dist/utils/index.js +8 -0
- package/dist/utils/jpeg_encoder.d.ts +14 -0
- package/dist/utils/jpeg_encoder.js +315 -0
- package/dist/utils/log_config.d.ts +34 -0
- package/dist/utils/log_config.js +76 -0
- package/dist/utils/logger.d.ts +40 -0
- package/dist/utils/logger.js +91 -0
- package/dist/utils/mixin.d.ts +14 -0
- package/dist/utils/mixin.js +63 -0
- package/dist/utils/network.d.ts +73 -0
- package/dist/utils/network.js +90 -0
- package/dist/utils/security/allowed_origins.d.ts +16 -0
- package/dist/utils/security/allowed_origins.js +34 -0
- package/dist/utils/security/index.d.ts +2 -0
- package/dist/utils/security/index.js +7 -0
- package/dist/utils/security/redaction.d.ts +27 -0
- package/dist/utils/security/redaction.js +123 -0
- package/dist/utils/security/ssrf.d.ts +79 -0
- package/dist/utils/security/ssrf.js +327 -0
- package/dist/utils/shared.d.ts +35 -0
- package/dist/utils/shared.js +136 -0
- package/dist/utils/startup.d.ts +17 -0
- package/dist/utils/startup.js +130 -0
- package/dist/utils/string.d.ts +116 -0
- package/dist/utils/string.js +460 -0
- package/dist/utils/sync/base_notifier.d.ts +25 -0
- package/dist/utils/sync/base_notifier.js +16 -0
- package/dist/utils/sync/event_notifier.d.ts +38 -0
- package/dist/utils/sync/event_notifier.js +51 -0
- package/dist/utils/sync/index.d.ts +2 -0
- package/dist/utils/sync/index.js +7 -0
- package/dist/utils/text/alnum_utils.d.ts +109 -0
- package/dist/utils/text/alnum_utils.js +262 -0
- package/dist/utils/text/base_text_aggregator.d.ts +146 -0
- package/dist/utils/text/base_text_aggregator.js +102 -0
- package/dist/utils/text/base_text_filter.d.ts +54 -0
- package/dist/utils/text/base_text_filter.js +50 -0
- package/dist/utils/text/index.d.ts +2 -0
- package/dist/utils/text/index.js +7 -0
- package/dist/utils/text/markdown_text_filter.d.ts +147 -0
- package/dist/utils/text/markdown_text_filter.js +522 -0
- package/dist/utils/text/markup_utils.d.ts +54 -0
- package/dist/utils/text/markup_utils.js +156 -0
- package/dist/utils/text/pattern_pair_aggregator.d.ts +251 -0
- package/dist/utils/text/pattern_pair_aggregator.js +478 -0
- package/dist/utils/text/phonemes.d.ts +60 -0
- package/dist/utils/text/phonemes.js +172 -0
- package/dist/utils/text/simple_text_aggregator.d.ts +135 -0
- package/dist/utils/text/simple_text_aggregator.js +254 -0
- package/dist/utils/text/skip_tags_aggregator.d.ts +85 -0
- package/dist/utils/text/skip_tags_aggregator.js +147 -0
- package/dist/utils/text/transforms/acronyms.d.ts +21 -0
- package/dist/utils/text/transforms/acronyms.js +31 -0
- package/dist/utils/text/transforms/currency.d.ts +16 -0
- package/dist/utils/text/transforms/currency.js +56 -0
- package/dist/utils/text/transforms/dates.d.ts +18 -0
- package/dist/utils/text/transforms/dates.js +102 -0
- package/dist/utils/text/transforms/email.d.ts +17 -0
- package/dist/utils/text/transforms/email.js +35 -0
- package/dist/utils/text/transforms/index.d.ts +37 -0
- package/dist/utils/text/transforms/index.js +42 -0
- package/dist/utils/text/transforms/numbers.d.ts +25 -0
- package/dist/utils/text/transforms/numbers.js +59 -0
- package/dist/utils/text/transforms/percentages.d.ts +16 -0
- package/dist/utils/text/transforms/percentages.js +32 -0
- package/dist/utils/text/transforms/phone.d.ts +21 -0
- package/dist/utils/text/transforms/phone.js +39 -0
- package/dist/utils/text/transforms/pronunciations.d.ts +65 -0
- package/dist/utils/text/transforms/pronunciations.js +112 -0
- package/dist/utils/text/transforms/replacements.d.ts +39 -0
- package/dist/utils/text/transforms/replacements.js +46 -0
- package/dist/utils/text/transforms/strip_markdown.d.ts +25 -0
- package/dist/utils/text/transforms/strip_markdown.js +60 -0
- package/dist/utils/text/transforms/units.d.ts +22 -0
- package/dist/utils/text/transforms/units.js +81 -0
- package/dist/utils/text/transforms/voice_formatter.d.ts +86 -0
- package/dist/utils/text/transforms/voice_formatter.js +98 -0
- package/dist/utils/text/unicode_digits.d.ts +3 -0
- package/dist/utils/text/unicode_digits.js +34 -0
- package/dist/utils/text/word_timestamp_utils.d.ts +26 -0
- package/dist/utils/text/word_timestamp_utils.js +52 -0
- package/dist/utils/time.d.ts +13 -0
- package/dist/utils/time.js +31 -0
- package/dist/utils/tracing/index.d.ts +3 -0
- package/dist/utils/tracing/index.js +8 -0
- package/dist/utils/tracing/service_attributes.d.ts +198 -0
- package/dist/utils/tracing/service_attributes.js +434 -0
- package/dist/utils/tracing/service_decorators.d.ts +214 -0
- package/dist/utils/tracing/service_decorators.js +1662 -0
- package/dist/utils/tracing/setup.d.ts +107 -0
- package/dist/utils/tracing/setup.js +160 -0
- package/dist/utils/tracing/tracing_context.d.ts +55 -0
- package/dist/utils/tracing/tracing_context.js +97 -0
- package/dist/utils/tracing/turn_trace_observer.d.ts +95 -0
- package/dist/utils/tracing/turn_trace_observer.js +233 -0
- package/dist/utils/types.d.ts +80 -0
- package/dist/utils/types.js +108 -0
- package/dist/utils/utils.d.ts +5 -0
- package/dist/utils/utils.js +22 -0
- package/dist/utils/yaml.d.ts +179 -0
- package/dist/utils/yaml.js +556 -0
- package/dist/version.d.ts +3 -0
- package/dist/version.js +7 -0
- package/dist/workers/base_worker.d.ts +772 -0
- package/dist/workers/base_worker.js +1298 -0
- package/dist/workers/index.d.ts +2 -0
- package/dist/workers/index.js +8 -0
- package/dist/workers/llm/backend_llm_worker.d.ts +552 -0
- package/dist/workers/llm/backend_llm_worker.js +1055 -0
- package/dist/workers/llm/index.d.ts +6 -0
- package/dist/workers/llm/index.js +11 -0
- package/dist/workers/llm/llm_context_worker.d.ts +66 -0
- package/dist/workers/llm/llm_context_worker.js +72 -0
- package/dist/workers/llm/llm_worker.d.ts +180 -0
- package/dist/workers/llm/llm_worker.js +323 -0
- package/dist/workers/llm/tool_decorator.d.ts +68 -0
- package/dist/workers/llm/tool_decorator.js +60 -0
- package/dist/workers/proxy/index.d.ts +3 -0
- package/dist/workers/proxy/index.js +9 -0
- package/dist/workers/proxy/websocket/client.d.ts +110 -0
- package/dist/workers/proxy/websocket/client.js +196 -0
- package/dist/workers/proxy/websocket/index.d.ts +3 -0
- package/dist/workers/proxy/websocket/index.js +10 -0
- package/dist/workers/runner.d.ts +268 -0
- package/dist/workers/runner.js +489 -0
- package/dist/workers/ui/index.d.ts +22 -0
- package/dist/workers/ui/index.js +27 -0
- package/dist/workers/ui/ui_event_decorator.d.ts +43 -0
- package/dist/workers/ui/ui_event_decorator.js +75 -0
- package/dist/workers/ui/ui_job_context.d.ts +12 -0
- package/dist/workers/ui/ui_job_context.js +17 -0
- package/dist/workers/ui/ui_prompts.d.ts +21 -0
- package/dist/workers/ui/ui_prompts.js +41 -0
- package/dist/workers/ui/ui_tools.d.ts +32 -0
- package/dist/workers/ui/ui_tools.js +112 -0
- package/dist/workers/ui/ui_worker.d.ts +571 -0
- package/dist/workers/ui/ui_worker.js +1156 -0
- package/package.json +61 -3
- package/README.md +0 -5
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
// Copyright (c) 2024-2026, Daily
|
|
2
|
+
// Copyright (c) 2026, pipedog contributors
|
|
3
|
+
// SPDX-License-Identifier: BSD-2-Clause
|
|
4
|
+
//
|
|
5
|
+
// Ported from pipecat: src/pipecat/utils/deprecation.py
|
|
6
|
+
/**
|
|
7
|
+
* Deprecation marker conventions for the Pipecat framework.
|
|
8
|
+
*
|
|
9
|
+
* Every deprecation is emitted with a message that follows the same canonical
|
|
10
|
+
* template so it is machine-parseable (see `DEPRECATION_MESSAGE_RE`) and
|
|
11
|
+
* consistent for readers:
|
|
12
|
+
*
|
|
13
|
+
* `Subject` is deprecated since X.Y.Z and will be removed in A.B.C. Use `Replacement` instead.
|
|
14
|
+
*
|
|
15
|
+
* where the removal version `A.B.C` is a concrete semantic version (e.g.
|
|
16
|
+
* `2.0.0`) — we commit to the release that removes it rather than saying "a
|
|
17
|
+
* future release" — and the second sentence is `No replacement.` when there is
|
|
18
|
+
* nothing to migrate to, stated explicitly and never omitted. Additional
|
|
19
|
+
* sentences may follow.
|
|
20
|
+
*
|
|
21
|
+
* Symbols (classes, functions, methods, properties) are marked with the
|
|
22
|
+
* `@deprecated` JSDoc tag, which TypeScript tooling and IDEs flag statically,
|
|
23
|
+
* and warn at runtime with `warnDeprecated`. Everything else — parameters,
|
|
24
|
+
* fields, module moves, behavior/value changes — warns with `warnDeprecated`.
|
|
25
|
+
*
|
|
26
|
+
* Porting notes: pipedog does not port deprecated upstream APIs, so the
|
|
27
|
+
* PEP 702 `deprecated` decorator re-export, `renamed_init_field` (a dataclass
|
|
28
|
+
* constructor rewriter for renamed fields) and the deprecated
|
|
29
|
+
* `warn_deprecated_read` are not ported.
|
|
30
|
+
*/
|
|
31
|
+
import { logger } from "./logger.js";
|
|
32
|
+
/**
|
|
33
|
+
* The canonical deprecation message, for symbol and hand-written warnings
|
|
34
|
+
* alike. Kept consistent and parseable so the developer-facing message agrees
|
|
35
|
+
* with the docstring directive.
|
|
36
|
+
*/
|
|
37
|
+
export const DEPRECATION_MESSAGE_RE = /^`(?<subject>[^`]+)` is deprecated since (?<version>\d+\.\d+\.\d+) and will be removed in (?<removal>\d+\.\d+\.\d+)\. (?:Use (?<replacement>.+) instead\.|No replacement\.)/;
|
|
38
|
+
/**
|
|
39
|
+
* Call sites already warned about by `warnDeprecated`, identified by message
|
|
40
|
+
* and source location (`message\u0000location`).
|
|
41
|
+
*
|
|
42
|
+
* The record lasts for the life of the process, so a test asserting on one of
|
|
43
|
+
* these warnings clears it first.
|
|
44
|
+
*/
|
|
45
|
+
export const _warnedSites = new Set();
|
|
46
|
+
// The stack line naming the caller `stacklevel` frames up from warnDeprecated's caller.
|
|
47
|
+
function callSite(stacklevel) {
|
|
48
|
+
const stack = new Error().stack;
|
|
49
|
+
if (!stack)
|
|
50
|
+
return "";
|
|
51
|
+
const lines = stack.split("\n").filter((line) => /^\s+at\s|@/.test(line));
|
|
52
|
+
// `lines` drops the message line: 0 is callSite, 1 warnDeprecated, 2 the caller.
|
|
53
|
+
return lines[1 + stacklevel]?.trim() ?? "";
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Warn once per call site that something deprecated was used.
|
|
57
|
+
*
|
|
58
|
+
* Many of Pipecat's deprecations are detected inside Pipecat, as a pipeline
|
|
59
|
+
* runs, so the warning is always logged, and a per-site record keeps it to one
|
|
60
|
+
* warning per call site: a deprecated field read wherever its object travels,
|
|
61
|
+
* or a check on every frame, would otherwise repeat without bound.
|
|
62
|
+
*
|
|
63
|
+
* @param message The warning message, following `DEPRECATION_MESSAGE_RE`.
|
|
64
|
+
* @param stacklevel Counted from the caller: `1` names the line that calls this
|
|
65
|
+
* function, `2` its caller.
|
|
66
|
+
*/
|
|
67
|
+
export function warnDeprecated(message, stacklevel = 1) {
|
|
68
|
+
const site = `${message}\u0000${callSite(stacklevel)}`;
|
|
69
|
+
if (_warnedSites.has(site)) {
|
|
70
|
+
return;
|
|
71
|
+
}
|
|
72
|
+
_warnedSites.add(site);
|
|
73
|
+
logger.warning(`DeprecationWarning: ${message}`);
|
|
74
|
+
}
|
|
75
|
+
//# sourceMappingURL=deprecation.js.map
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Environment variable helpers.
|
|
3
|
+
*
|
|
4
|
+
* This module provides small, centralized parsing helpers for environment variables.
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* Read an environment variable (Python's `os.getenv`), or `undefined` when it
|
|
8
|
+
* is not set or the runtime has no process environment (e.g. Cloudflare
|
|
9
|
+
* Workers without `nodejs_compat`).
|
|
10
|
+
*/
|
|
11
|
+
export declare function getEnv(name: string): string | undefined;
|
|
12
|
+
/** Raised when an environment variable value cannot be parsed. */
|
|
13
|
+
export declare class InvalidEnvVarValueError extends Error {
|
|
14
|
+
name: string;
|
|
15
|
+
/** The environment variable's name. */
|
|
16
|
+
readonly envName: string;
|
|
17
|
+
readonly value: string;
|
|
18
|
+
readonly expected: string;
|
|
19
|
+
/** Initialize an InvalidEnvVarValueError. */
|
|
20
|
+
constructor(options: {
|
|
21
|
+
name: string;
|
|
22
|
+
value: string;
|
|
23
|
+
expected: string;
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Interpret an environment variable as a boolean.
|
|
28
|
+
*
|
|
29
|
+
* - If the variable is **not set**, returns `defaultValue`.
|
|
30
|
+
* - If the variable is set to a recognized boolean string, returns the parsed value.
|
|
31
|
+
* - Otherwise, throws `InvalidEnvVarValueError`.
|
|
32
|
+
*
|
|
33
|
+
* Recognized values (case-insensitive, whitespace ignored):
|
|
34
|
+
* - Truthy: "1", "true", "yes", "y", "on"
|
|
35
|
+
* - Falsy: "0", "false", "no", "n", "off", ""
|
|
36
|
+
*/
|
|
37
|
+
export declare function envTruthy(name: string, defaultValue?: boolean): boolean;
|
|
38
|
+
//# sourceMappingURL=env.d.ts.map
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
// Copyright (c) 2024-2026, Daily
|
|
2
|
+
// Copyright (c) 2026, pipedog contributors
|
|
3
|
+
// SPDX-License-Identifier: BSD-2-Clause
|
|
4
|
+
//
|
|
5
|
+
// Ported from pipecat: src/pipecat/utils/env.py
|
|
6
|
+
/**
|
|
7
|
+
* Environment variable helpers.
|
|
8
|
+
*
|
|
9
|
+
* This module provides small, centralized parsing helpers for environment variables.
|
|
10
|
+
*/
|
|
11
|
+
/**
|
|
12
|
+
* Read an environment variable (Python's `os.getenv`), or `undefined` when it
|
|
13
|
+
* is not set or the runtime has no process environment (e.g. Cloudflare
|
|
14
|
+
* Workers without `nodejs_compat`).
|
|
15
|
+
*/
|
|
16
|
+
export function getEnv(name) {
|
|
17
|
+
const env = globalThis.process
|
|
18
|
+
?.env;
|
|
19
|
+
return env?.[name];
|
|
20
|
+
}
|
|
21
|
+
/** Raised when an environment variable value cannot be parsed. */
|
|
22
|
+
export class InvalidEnvVarValueError extends Error {
|
|
23
|
+
name = "InvalidEnvVarValueError";
|
|
24
|
+
/** The environment variable's name. */
|
|
25
|
+
envName;
|
|
26
|
+
value;
|
|
27
|
+
expected;
|
|
28
|
+
/** Initialize an InvalidEnvVarValueError. */
|
|
29
|
+
constructor(options) {
|
|
30
|
+
super(`Invalid value for env var '${options.name}': '${options.value}'. Expected ${options.expected}.`);
|
|
31
|
+
// `name` is taken by Error, so the variable's name is `envName`.
|
|
32
|
+
this.envName = options.name;
|
|
33
|
+
this.value = options.value;
|
|
34
|
+
this.expected = options.expected;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
const TRUTHY = new Set(["1", "true", "yes", "y", "on"]);
|
|
38
|
+
const FALSY = new Set(["0", "false", "no", "n", "off", ""]);
|
|
39
|
+
/**
|
|
40
|
+
* Interpret an environment variable as a boolean.
|
|
41
|
+
*
|
|
42
|
+
* - If the variable is **not set**, returns `defaultValue`.
|
|
43
|
+
* - If the variable is set to a recognized boolean string, returns the parsed value.
|
|
44
|
+
* - Otherwise, throws `InvalidEnvVarValueError`.
|
|
45
|
+
*
|
|
46
|
+
* Recognized values (case-insensitive, whitespace ignored):
|
|
47
|
+
* - Truthy: "1", "true", "yes", "y", "on"
|
|
48
|
+
* - Falsy: "0", "false", "no", "n", "off", ""
|
|
49
|
+
*/
|
|
50
|
+
export function envTruthy(name, defaultValue = false) {
|
|
51
|
+
const raw = getEnv(name);
|
|
52
|
+
if (raw === undefined) {
|
|
53
|
+
return defaultValue;
|
|
54
|
+
}
|
|
55
|
+
const val = raw.trim().toLowerCase();
|
|
56
|
+
if (TRUTHY.has(val))
|
|
57
|
+
return true;
|
|
58
|
+
if (FALSY.has(val))
|
|
59
|
+
return false;
|
|
60
|
+
throw new InvalidEnvVarValueError({ name, value: raw, expected: "true or false" });
|
|
61
|
+
}
|
|
62
|
+
//# sourceMappingURL=env.js.map
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Why an operation failed, independent of the provider that failed it.
|
|
3
|
+
*
|
|
4
|
+
* - UNKNOWN: The cause could not be determined.
|
|
5
|
+
* - AUTHENTICATION: Credentials are missing or invalid.
|
|
6
|
+
* - AUTHORIZATION: Credentials are valid but lack access to the resource.
|
|
7
|
+
* - INVALID_REQUEST: The request itself is malformed or names something that
|
|
8
|
+
* doesn't exist, such as an unknown model or voice.
|
|
9
|
+
* - RATE_LIMIT: Too many requests were sent in too short a window.
|
|
10
|
+
* - QUOTA: The account's credit or usage allowance is exhausted.
|
|
11
|
+
* - CONNECTIVITY: The service could not be reached.
|
|
12
|
+
* - SERVER: The provider reported an internal failure.
|
|
13
|
+
* - APPLICATION: The application failed, not the provider. Reported by a
|
|
14
|
+
* service on behalf of code it invoked — a tool handler, say — or for
|
|
15
|
+
* application-supplied content a provider rejected once the service
|
|
16
|
+
* has repaired its context (e.g. removed the rejected file message).
|
|
17
|
+
* Either way the failure says nothing about the service's own health.
|
|
18
|
+
*/
|
|
19
|
+
export declare class ErrorCategory {
|
|
20
|
+
static readonly UNKNOWN: ErrorCategory;
|
|
21
|
+
static readonly AUTHENTICATION: ErrorCategory;
|
|
22
|
+
static readonly AUTHORIZATION: ErrorCategory;
|
|
23
|
+
static readonly INVALID_REQUEST: ErrorCategory;
|
|
24
|
+
static readonly RATE_LIMIT: ErrorCategory;
|
|
25
|
+
static readonly QUOTA: ErrorCategory;
|
|
26
|
+
static readonly CONNECTIVITY: ErrorCategory;
|
|
27
|
+
static readonly SERVER: ErrorCategory;
|
|
28
|
+
static readonly APPLICATION: ErrorCategory;
|
|
29
|
+
readonly name: string;
|
|
30
|
+
readonly value: string;
|
|
31
|
+
private constructor();
|
|
32
|
+
/** All categories, in declaration order. */
|
|
33
|
+
static values(): readonly ErrorCategory[];
|
|
34
|
+
/** The category with the given value (`ErrorCategory("quota")`). */
|
|
35
|
+
static fromValue(value: string): ErrorCategory;
|
|
36
|
+
/**
|
|
37
|
+
* Whether the failure will keep recurring until something changes.
|
|
38
|
+
*
|
|
39
|
+
* A permanent failure gives the same result every time it is retried:
|
|
40
|
+
* the credentials stay rejected, the request stays malformed. Only new
|
|
41
|
+
* credentials or settings can clear it, so retrying is pointless.
|
|
42
|
+
*/
|
|
43
|
+
get isPermanent(): boolean;
|
|
44
|
+
toString(): string;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Classify an HTTP status code.
|
|
48
|
+
*
|
|
49
|
+
* @param statusCode The HTTP status code reported by the provider.
|
|
50
|
+
* @returns The matching category, or `ErrorCategory.UNKNOWN` if the code carries
|
|
51
|
+
* no provider-independent meaning.
|
|
52
|
+
*/
|
|
53
|
+
export declare function classifyHttpStatusCode(statusCode: number): ErrorCategory;
|
|
54
|
+
/**
|
|
55
|
+
* Extract an HTTP status code from an exception, if it carries one.
|
|
56
|
+
*
|
|
57
|
+
* Recognizes the attribute shapes used by the HTTP and websocket libraries
|
|
58
|
+
* services build on: a `response` holding `status_code` / `statusCode` or
|
|
59
|
+
* `status` (e.g. a fetch `Response`), and those same attributes directly on
|
|
60
|
+
* the exception (provider SDKs).
|
|
61
|
+
*
|
|
62
|
+
* @param exception The exception to inspect.
|
|
63
|
+
* @returns The status code, or null if the exception doesn't carry one.
|
|
64
|
+
*/
|
|
65
|
+
export declare function extractHttpStatusCode(exception: unknown): number | null;
|
|
66
|
+
/**
|
|
67
|
+
* Classify an exception by the HTTP status code it carries.
|
|
68
|
+
*
|
|
69
|
+
* @param exception The exception to classify.
|
|
70
|
+
* @returns The matching category, or `ErrorCategory.UNKNOWN` when the exception is
|
|
71
|
+
* not recognized. Providers that throw SDK-specific exceptions carrying no
|
|
72
|
+
* status code need their own classification.
|
|
73
|
+
*/
|
|
74
|
+
export declare function classifyHttpException(exception: unknown): ErrorCategory;
|
|
75
|
+
//# sourceMappingURL=errors.d.ts.map
|
|
@@ -0,0 +1,202 @@
|
|
|
1
|
+
// Copyright (c) 2024-2026, Daily
|
|
2
|
+
// Copyright (c) 2026, pipedog contributors
|
|
3
|
+
// SPDX-License-Identifier: BSD-2-Clause
|
|
4
|
+
//
|
|
5
|
+
// Ported from pipecat: src/pipecat/utils/errors.py
|
|
6
|
+
/**
|
|
7
|
+
* Error classification shared by services.
|
|
8
|
+
*
|
|
9
|
+
* Provides a provider-agnostic vocabulary for *why* an operation failed, so that
|
|
10
|
+
* callers can tell a transient failure (worth retrying) from a permanent one
|
|
11
|
+
* (retrying will never help).
|
|
12
|
+
*/
|
|
13
|
+
import { TimeoutError } from "@pipedog/asyncio";
|
|
14
|
+
/**
|
|
15
|
+
* Why an operation failed, independent of the provider that failed it.
|
|
16
|
+
*
|
|
17
|
+
* - UNKNOWN: The cause could not be determined.
|
|
18
|
+
* - AUTHENTICATION: Credentials are missing or invalid.
|
|
19
|
+
* - AUTHORIZATION: Credentials are valid but lack access to the resource.
|
|
20
|
+
* - INVALID_REQUEST: The request itself is malformed or names something that
|
|
21
|
+
* doesn't exist, such as an unknown model or voice.
|
|
22
|
+
* - RATE_LIMIT: Too many requests were sent in too short a window.
|
|
23
|
+
* - QUOTA: The account's credit or usage allowance is exhausted.
|
|
24
|
+
* - CONNECTIVITY: The service could not be reached.
|
|
25
|
+
* - SERVER: The provider reported an internal failure.
|
|
26
|
+
* - APPLICATION: The application failed, not the provider. Reported by a
|
|
27
|
+
* service on behalf of code it invoked — a tool handler, say — or for
|
|
28
|
+
* application-supplied content a provider rejected once the service
|
|
29
|
+
* has repaired its context (e.g. removed the rejected file message).
|
|
30
|
+
* Either way the failure says nothing about the service's own health.
|
|
31
|
+
*/
|
|
32
|
+
export class ErrorCategory {
|
|
33
|
+
static UNKNOWN = new ErrorCategory("UNKNOWN", "unknown");
|
|
34
|
+
static AUTHENTICATION = new ErrorCategory("AUTHENTICATION", "authentication");
|
|
35
|
+
static AUTHORIZATION = new ErrorCategory("AUTHORIZATION", "authorization");
|
|
36
|
+
static INVALID_REQUEST = new ErrorCategory("INVALID_REQUEST", "invalid_request");
|
|
37
|
+
static RATE_LIMIT = new ErrorCategory("RATE_LIMIT", "rate_limit");
|
|
38
|
+
static QUOTA = new ErrorCategory("QUOTA", "quota");
|
|
39
|
+
static CONNECTIVITY = new ErrorCategory("CONNECTIVITY", "connectivity");
|
|
40
|
+
static SERVER = new ErrorCategory("SERVER", "server");
|
|
41
|
+
static APPLICATION = new ErrorCategory("APPLICATION", "application");
|
|
42
|
+
name;
|
|
43
|
+
value;
|
|
44
|
+
constructor(name, value) {
|
|
45
|
+
this.name = name;
|
|
46
|
+
this.value = value;
|
|
47
|
+
}
|
|
48
|
+
/** All categories, in declaration order. */
|
|
49
|
+
static values() {
|
|
50
|
+
return [
|
|
51
|
+
ErrorCategory.UNKNOWN,
|
|
52
|
+
ErrorCategory.AUTHENTICATION,
|
|
53
|
+
ErrorCategory.AUTHORIZATION,
|
|
54
|
+
ErrorCategory.INVALID_REQUEST,
|
|
55
|
+
ErrorCategory.RATE_LIMIT,
|
|
56
|
+
ErrorCategory.QUOTA,
|
|
57
|
+
ErrorCategory.CONNECTIVITY,
|
|
58
|
+
ErrorCategory.SERVER,
|
|
59
|
+
ErrorCategory.APPLICATION,
|
|
60
|
+
];
|
|
61
|
+
}
|
|
62
|
+
/** The category with the given value (`ErrorCategory("quota")`). */
|
|
63
|
+
static fromValue(value) {
|
|
64
|
+
const category = ErrorCategory.values().find((c) => c.value === value);
|
|
65
|
+
if (!category) {
|
|
66
|
+
throw new Error(`'${value}' is not a valid ErrorCategory`);
|
|
67
|
+
}
|
|
68
|
+
return category;
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Whether the failure will keep recurring until something changes.
|
|
72
|
+
*
|
|
73
|
+
* A permanent failure gives the same result every time it is retried:
|
|
74
|
+
* the credentials stay rejected, the request stays malformed. Only new
|
|
75
|
+
* credentials or settings can clear it, so retrying is pointless.
|
|
76
|
+
*/
|
|
77
|
+
get isPermanent() {
|
|
78
|
+
return PERMANENT_CATEGORIES.has(this);
|
|
79
|
+
}
|
|
80
|
+
toString() {
|
|
81
|
+
return `ErrorCategory.${this.name}`;
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
const PERMANENT_CATEGORIES = new Set([
|
|
85
|
+
ErrorCategory.AUTHENTICATION,
|
|
86
|
+
ErrorCategory.AUTHORIZATION,
|
|
87
|
+
ErrorCategory.INVALID_REQUEST,
|
|
88
|
+
]);
|
|
89
|
+
const HTTP_STATUS_CODE_CATEGORIES = new Map([
|
|
90
|
+
[400, ErrorCategory.INVALID_REQUEST],
|
|
91
|
+
[401, ErrorCategory.AUTHENTICATION],
|
|
92
|
+
[402, ErrorCategory.QUOTA],
|
|
93
|
+
[403, ErrorCategory.AUTHORIZATION],
|
|
94
|
+
[404, ErrorCategory.INVALID_REQUEST],
|
|
95
|
+
[422, ErrorCategory.INVALID_REQUEST],
|
|
96
|
+
[429, ErrorCategory.RATE_LIMIT],
|
|
97
|
+
]);
|
|
98
|
+
// Error codes JS runtimes attach to connection failures (Python's
|
|
99
|
+
// ConnectionError subclasses and socket.gaierror).
|
|
100
|
+
const CONNECTIVITY_ERROR_CODES = new Set([
|
|
101
|
+
"ECONNREFUSED",
|
|
102
|
+
"ECONNRESET",
|
|
103
|
+
"ECONNABORTED",
|
|
104
|
+
"EPIPE",
|
|
105
|
+
"ENOTFOUND",
|
|
106
|
+
"EAI_AGAIN",
|
|
107
|
+
"EHOSTUNREACH",
|
|
108
|
+
"ENETUNREACH",
|
|
109
|
+
"ETIMEDOUT",
|
|
110
|
+
"ConnectionRefused",
|
|
111
|
+
"ConnectionClosed",
|
|
112
|
+
]);
|
|
113
|
+
// Python matches ConnectionError, TimeoutError and socket.gaierror. JS has no
|
|
114
|
+
// such hierarchy: match asyncio/DOM timeouts, network errors, the error codes
|
|
115
|
+
// above, and fetch's "fetch failed" TypeError (also on its `cause`).
|
|
116
|
+
function isConnectivityError(exception) {
|
|
117
|
+
if (exception instanceof TimeoutError)
|
|
118
|
+
return true;
|
|
119
|
+
if (typeof exception !== "object" || exception === null)
|
|
120
|
+
return false;
|
|
121
|
+
const e = exception;
|
|
122
|
+
if (e.name === "TimeoutError" || e.name === "NetworkError")
|
|
123
|
+
return true;
|
|
124
|
+
if (typeof e.code === "string" && CONNECTIVITY_ERROR_CODES.has(e.code))
|
|
125
|
+
return true;
|
|
126
|
+
if (exception instanceof TypeError && typeof e.message === "string") {
|
|
127
|
+
if (/fetch failed|network|connect/i.test(e.message))
|
|
128
|
+
return true;
|
|
129
|
+
}
|
|
130
|
+
if (e.cause !== undefined && e.cause !== exception)
|
|
131
|
+
return isConnectivityError(e.cause);
|
|
132
|
+
return false;
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* Classify an HTTP status code.
|
|
136
|
+
*
|
|
137
|
+
* @param statusCode The HTTP status code reported by the provider.
|
|
138
|
+
* @returns The matching category, or `ErrorCategory.UNKNOWN` if the code carries
|
|
139
|
+
* no provider-independent meaning.
|
|
140
|
+
*/
|
|
141
|
+
export function classifyHttpStatusCode(statusCode) {
|
|
142
|
+
const category = HTTP_STATUS_CODE_CATEGORIES.get(statusCode);
|
|
143
|
+
if (category) {
|
|
144
|
+
return category;
|
|
145
|
+
}
|
|
146
|
+
if (statusCode >= 500 && statusCode < 600) {
|
|
147
|
+
return ErrorCategory.SERVER;
|
|
148
|
+
}
|
|
149
|
+
return ErrorCategory.UNKNOWN;
|
|
150
|
+
}
|
|
151
|
+
function getAttr(obj, name) {
|
|
152
|
+
if ((typeof obj !== "object" && typeof obj !== "function") || obj === null)
|
|
153
|
+
return undefined;
|
|
154
|
+
return obj[name];
|
|
155
|
+
}
|
|
156
|
+
/**
|
|
157
|
+
* Extract an HTTP status code from an exception, if it carries one.
|
|
158
|
+
*
|
|
159
|
+
* Recognizes the attribute shapes used by the HTTP and websocket libraries
|
|
160
|
+
* services build on: a `response` holding `status_code` / `statusCode` or
|
|
161
|
+
* `status` (e.g. a fetch `Response`), and those same attributes directly on
|
|
162
|
+
* the exception (provider SDKs).
|
|
163
|
+
*
|
|
164
|
+
* @param exception The exception to inspect.
|
|
165
|
+
* @returns The status code, or null if the exception doesn't carry one.
|
|
166
|
+
*/
|
|
167
|
+
export function extractHttpStatusCode(exception) {
|
|
168
|
+
const response = getAttr(exception, "response");
|
|
169
|
+
const candidates = [
|
|
170
|
+
getAttr(response, "status_code"),
|
|
171
|
+
getAttr(response, "statusCode"),
|
|
172
|
+
getAttr(response, "status"),
|
|
173
|
+
getAttr(exception, "status_code"),
|
|
174
|
+
getAttr(exception, "statusCode"),
|
|
175
|
+
getAttr(exception, "status"),
|
|
176
|
+
];
|
|
177
|
+
for (const candidate of candidates) {
|
|
178
|
+
if (typeof candidate === "number" && Number.isInteger(candidate)) {
|
|
179
|
+
return candidate;
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
return null;
|
|
183
|
+
}
|
|
184
|
+
/**
|
|
185
|
+
* Classify an exception by the HTTP status code it carries.
|
|
186
|
+
*
|
|
187
|
+
* @param exception The exception to classify.
|
|
188
|
+
* @returns The matching category, or `ErrorCategory.UNKNOWN` when the exception is
|
|
189
|
+
* not recognized. Providers that throw SDK-specific exceptions carrying no
|
|
190
|
+
* status code need their own classification.
|
|
191
|
+
*/
|
|
192
|
+
export function classifyHttpException(exception) {
|
|
193
|
+
const statusCode = extractHttpStatusCode(exception);
|
|
194
|
+
if (statusCode !== null) {
|
|
195
|
+
return classifyHttpStatusCode(statusCode);
|
|
196
|
+
}
|
|
197
|
+
if (isConnectivityError(exception)) {
|
|
198
|
+
return ErrorCategory.CONNECTIVITY;
|
|
199
|
+
}
|
|
200
|
+
return ErrorCategory.UNKNOWN;
|
|
201
|
+
}
|
|
202
|
+
//# sourceMappingURL=errors.js.map
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
import { type FileStorage } from "./file_storage.ts";
|
|
2
|
+
import { IPNetwork, UrlReachability } from "./security/ssrf.ts";
|
|
3
|
+
/** Raised when a file URL in the LLM context cannot be resolved to bytes. */
|
|
4
|
+
export declare class FileResolverError extends Error {
|
|
5
|
+
name: string;
|
|
6
|
+
}
|
|
7
|
+
export interface FileResolverOptions {
|
|
8
|
+
/**
|
|
9
|
+
* Storage backend used to resolve URLs it minted (e.g. `pipecat:<id>` from
|
|
10
|
+
* the development runner's upload endpoints — pass `runnerArgs.fileStorage`
|
|
11
|
+
* there). Without it, only `data:` and `http(s)` URLs can be resolved.
|
|
12
|
+
*/
|
|
13
|
+
fileStorage?: FileStorage | null;
|
|
14
|
+
/**
|
|
15
|
+
* CIDR ranges (e.g. `["10.0.0.0/8"]`) this server is trusted to fetch from,
|
|
16
|
+
* in addition to the public internet. An `http(s)` URL that resolves outside
|
|
17
|
+
* both is refused. Defaults to the `PIPECAT_ALLOWED_FILE_URL_NETWORKS` env
|
|
18
|
+
* var (comma-separated).
|
|
19
|
+
*/
|
|
20
|
+
allowedUrlNetworks?: string[] | null;
|
|
21
|
+
/** Maximum size of a fetched file. */
|
|
22
|
+
maxFetchBytes?: number;
|
|
23
|
+
/** Total timeout for an `http(s)` fetch, in seconds. */
|
|
24
|
+
fetchTimeoutSecs?: number;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Fetches and caches the bytes behind file URLs the LLM provider can't fetch itself.
|
|
28
|
+
*
|
|
29
|
+
* Handles three kinds of URL:
|
|
30
|
+
*
|
|
31
|
+
* - `data:` URLs are decoded directly.
|
|
32
|
+
* - `http(s)` URLs are fetched by this server, but only when the resolved
|
|
33
|
+
* address is publicly routable or falls within `allowedUrlNetworks` —
|
|
34
|
+
* a client-supplied URL must not be able to point this server at arbitrary
|
|
35
|
+
* private address space (SSRF). Redirects are refused rather than followed.
|
|
36
|
+
* - Any other scheme is delegated to `fileStorage`, which resolves the
|
|
37
|
+
* URLs it minted (`pipecat:<id>` for `LocalFileStorage`; a custom backend
|
|
38
|
+
* resolves whatever `save()` returned, e.g. `gs://` with the deployment's
|
|
39
|
+
* own credentials).
|
|
40
|
+
*
|
|
41
|
+
* Each URL is fetched once and served from the cache afterwards: a URL is
|
|
42
|
+
* assumed to identify one immutable piece of content, the same assumption
|
|
43
|
+
* the rest of the web's caches make. Content that changes should live at a
|
|
44
|
+
* new URL (uploads through the development runner mint a fresh URL per
|
|
45
|
+
* upload; a cache-busting query string works for external URLs), or use
|
|
46
|
+
* `forget` when the application knows a URL's content changed. Note the flip
|
|
47
|
+
* side for URLs a provider consumes directly: the provider fetches those
|
|
48
|
+
* itself, on its own schedule, so their freshness is out of this resolver's
|
|
49
|
+
* hands entirely.
|
|
50
|
+
*
|
|
51
|
+
* A stored file whose backend sets `deleteAfterLoad` is deleted only after
|
|
52
|
+
* its bytes are cached, so the cache entry becomes the surviving copy — which
|
|
53
|
+
* is why LLM services that may consume the same files (e.g. services switched
|
|
54
|
+
* between mid-session) should share one resolver instance rather than each
|
|
55
|
+
* constructing their own. Scope a resolver to one session: an instance shared
|
|
56
|
+
* across sessions would hold every session's files in memory and stretch the
|
|
57
|
+
* one-fetch-per-URL assumption across all of them.
|
|
58
|
+
*
|
|
59
|
+
* Subclass and override `fetch` to support additional schemes or
|
|
60
|
+
* credentialed fetches beyond what the storage backend provides.
|
|
61
|
+
*/
|
|
62
|
+
export declare class FileResolver {
|
|
63
|
+
protected _fileStorage: FileStorage | null;
|
|
64
|
+
protected _allowedUrlNetworks: IPNetwork[];
|
|
65
|
+
protected _maxFetchBytes: number;
|
|
66
|
+
protected _fetchTimeoutSecs: number;
|
|
67
|
+
protected _bytesCache: Map<string, Uint8Array<ArrayBufferLike>>;
|
|
68
|
+
protected _dataUrlCache: Map<string, string>;
|
|
69
|
+
protected _reachabilityCache: Map<string, UrlReachability>;
|
|
70
|
+
constructor(options?: FileResolverOptions);
|
|
71
|
+
/** The storage backend used to resolve URLs it minted, if any. */
|
|
72
|
+
get fileStorage(): FileStorage | null;
|
|
73
|
+
/** Return the cached bytes for `url`, or null if it hasn't been fetched. */
|
|
74
|
+
cachedBytes(url: string): Uint8Array | null;
|
|
75
|
+
/**
|
|
76
|
+
* Return the cached `data:` form for `url`, or null if not prepared.
|
|
77
|
+
*
|
|
78
|
+
* A `data:` URL is its own data-URL form.
|
|
79
|
+
*/
|
|
80
|
+
cachedDataUrl(url: string): string | null;
|
|
81
|
+
/** Return the cached reachability verdict for `url`, or null if unclassified. */
|
|
82
|
+
cachedReachability(url: string): UrlReachability | null;
|
|
83
|
+
/**
|
|
84
|
+
* Drop everything cached for `url`, forcing a re-fetch on next use.
|
|
85
|
+
*
|
|
86
|
+
* For applications that know a URL's content has changed. A forgotten
|
|
87
|
+
* `deleteAfterLoad` upload can't be re-fetched — its stored copy was
|
|
88
|
+
* deleted when first cached — so forgetting one makes it unresolvable.
|
|
89
|
+
*
|
|
90
|
+
* @param url The URL whose cached content and reachability to drop.
|
|
91
|
+
*/
|
|
92
|
+
forget(url: string): void;
|
|
93
|
+
/**
|
|
94
|
+
* Classify who can reach an `http(s)` URL, honoring `allowedUrlNetworks`.
|
|
95
|
+
*
|
|
96
|
+
* Classified once per URL; later calls return the cached verdict.
|
|
97
|
+
*/
|
|
98
|
+
classify(url: string): Promise<UrlReachability>;
|
|
99
|
+
/**
|
|
100
|
+
* Return the bytes behind `url`, fetching and caching them on first use.
|
|
101
|
+
*
|
|
102
|
+
* @param url A `data:` URL, an `http(s)` URL, or a URL minted by the
|
|
103
|
+
* configured storage backend. A storage-resolved file is deleted after a
|
|
104
|
+
* successful load when the backend sets `deleteAfterLoad` — the bytes are
|
|
105
|
+
* cached first, so the cache entry becomes the surviving copy.
|
|
106
|
+
* @throws FileResolverError If the URL is refused by the reachability
|
|
107
|
+
* policy, exceeds the size limit, fails to download, or has a scheme
|
|
108
|
+
* nothing is configured to resolve.
|
|
109
|
+
*/
|
|
110
|
+
fetch(url: string): Promise<Uint8Array>;
|
|
111
|
+
/**
|
|
112
|
+
* Return the `data:` form of `url`'s bytes, encoding and caching it on first use.
|
|
113
|
+
*
|
|
114
|
+
* For adapters whose provider consumes base64 rather than raw bytes, so
|
|
115
|
+
* the encode happens once rather than on every context conversion.
|
|
116
|
+
*
|
|
117
|
+
* @param url A URL whose bytes are cached or fetchable — see `fetch`.
|
|
118
|
+
* @param mimeType The file's MIME type, used in the data URL.
|
|
119
|
+
* @throws FileResolverError If the bytes can't be fetched.
|
|
120
|
+
*/
|
|
121
|
+
ensureDataUrl(url: string, mimeType: string): Promise<string>;
|
|
122
|
+
protected _fetchUncached(url: string): Promise<Uint8Array>;
|
|
123
|
+
protected static _decodeDataUrl(url: string): Uint8Array;
|
|
124
|
+
protected _fetchHttp(url: string): Promise<Uint8Array>;
|
|
125
|
+
}
|
|
126
|
+
//# sourceMappingURL=file_resolver.d.ts.map
|