@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,57 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tools schema definitions for function calling adapters.
|
|
3
|
+
*
|
|
4
|
+
* Provides schemas for managing both standardized function tools and custom
|
|
5
|
+
* adapter-specific tools in the Pipecat framework.
|
|
6
|
+
*/
|
|
7
|
+
import { type DirectFunction, DirectFunctionWrapper } from "./direct_function.ts";
|
|
8
|
+
import { FunctionSchema } from "./function_schema.ts";
|
|
9
|
+
/**
|
|
10
|
+
* Supported adapter types for custom tools.
|
|
11
|
+
*
|
|
12
|
+
* - GEMINI: Google Gemini adapter.
|
|
13
|
+
* - OPENAI: OpenAI adapter (Chat Completions, Responses, and Realtime API).
|
|
14
|
+
*/
|
|
15
|
+
export declare const AdapterType: {
|
|
16
|
+
readonly GEMINI: "gemini";
|
|
17
|
+
readonly OPENAI: "openai";
|
|
18
|
+
};
|
|
19
|
+
export type AdapterType = (typeof AdapterType)[keyof typeof AdapterType];
|
|
20
|
+
/** Custom tool definitions keyed by adapter type. */
|
|
21
|
+
export type CustomTools = Partial<Record<AdapterType, Record<string, unknown>[]>>;
|
|
22
|
+
export interface ToolsSchemaOptions {
|
|
23
|
+
/** List of tools following the standardized FunctionSchema format (or direct functions). */
|
|
24
|
+
standardTools: readonly (FunctionSchema | DirectFunction)[];
|
|
25
|
+
/**
|
|
26
|
+
* Object mapping adapter types to their custom tool definitions. These
|
|
27
|
+
* tools may not follow the FunctionSchema format (e.g., search_tool).
|
|
28
|
+
*/
|
|
29
|
+
customTools?: CustomTools | null;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Schema for managing both standard and custom function calling tools.
|
|
33
|
+
*
|
|
34
|
+
* Provides a unified interface for handling standardized function schemas
|
|
35
|
+
* alongside custom tools that may not follow the standard format, such as
|
|
36
|
+
* adapter-specific search tools.
|
|
37
|
+
*/
|
|
38
|
+
export declare class ToolsSchema {
|
|
39
|
+
protected _standardTools: FunctionSchema[];
|
|
40
|
+
protected _directFunctions: DirectFunctionWrapper[];
|
|
41
|
+
protected _customTools: CustomTools | null;
|
|
42
|
+
constructor(options: ToolsSchemaOptions);
|
|
43
|
+
/** The list of tools following the FunctionSchema format. */
|
|
44
|
+
get standardTools(): FunctionSchema[];
|
|
45
|
+
/**
|
|
46
|
+
* The wrappers for standard tools that were given as direct functions.
|
|
47
|
+
*
|
|
48
|
+
* These retain a reference to the original function, allowing the LLM
|
|
49
|
+
* service to register their handlers automatically. Standard tools given as
|
|
50
|
+
* `FunctionSchema` objects (advertise-only) are not included.
|
|
51
|
+
*/
|
|
52
|
+
get directFunctions(): DirectFunctionWrapper[];
|
|
53
|
+
/** Object mapping adapter types to their custom tool definitions. */
|
|
54
|
+
get customTools(): CustomTools | null;
|
|
55
|
+
set customTools(value: CustomTools | null);
|
|
56
|
+
}
|
|
57
|
+
//# sourceMappingURL=tools_schema.d.ts.map
|
|
@@ -0,0 +1,79 @@
|
|
|
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/adapters/schemas/tools_schema.py
|
|
6
|
+
/**
|
|
7
|
+
* Tools schema definitions for function calling adapters.
|
|
8
|
+
*
|
|
9
|
+
* Provides schemas for managing both standardized function tools and custom
|
|
10
|
+
* adapter-specific tools in the Pipecat framework.
|
|
11
|
+
*/
|
|
12
|
+
import { DirectFunctionWrapper } from "./direct_function.js";
|
|
13
|
+
import { FunctionSchema } from "./function_schema.js";
|
|
14
|
+
/**
|
|
15
|
+
* Supported adapter types for custom tools.
|
|
16
|
+
*
|
|
17
|
+
* - GEMINI: Google Gemini adapter.
|
|
18
|
+
* - OPENAI: OpenAI adapter (Chat Completions, Responses, and Realtime API).
|
|
19
|
+
*/
|
|
20
|
+
export const AdapterType = {
|
|
21
|
+
GEMINI: "gemini",
|
|
22
|
+
OPENAI: "openai",
|
|
23
|
+
};
|
|
24
|
+
/**
|
|
25
|
+
* Schema for managing both standard and custom function calling tools.
|
|
26
|
+
*
|
|
27
|
+
* Provides a unified interface for handling standardized function schemas
|
|
28
|
+
* alongside custom tools that may not follow the standard format, such as
|
|
29
|
+
* adapter-specific search tools.
|
|
30
|
+
*/
|
|
31
|
+
export class ToolsSchema {
|
|
32
|
+
_standardTools;
|
|
33
|
+
_directFunctions;
|
|
34
|
+
_customTools;
|
|
35
|
+
constructor(options) {
|
|
36
|
+
const mapStandardTools = (tools) => {
|
|
37
|
+
const schemas = [];
|
|
38
|
+
const directFunctions = [];
|
|
39
|
+
for (const tool of tools) {
|
|
40
|
+
if (tool instanceof FunctionSchema) {
|
|
41
|
+
schemas.push(tool);
|
|
42
|
+
}
|
|
43
|
+
else if (typeof tool === "function") {
|
|
44
|
+
const wrapper = new DirectFunctionWrapper(tool);
|
|
45
|
+
schemas.push(wrapper.toFunctionSchema());
|
|
46
|
+
directFunctions.push(wrapper);
|
|
47
|
+
}
|
|
48
|
+
else {
|
|
49
|
+
throw new TypeError(`Unsupported tool type: ${typeof tool}`);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
return [schemas, directFunctions];
|
|
53
|
+
};
|
|
54
|
+
[this._standardTools, this._directFunctions] = mapStandardTools(options.standardTools);
|
|
55
|
+
this._customTools = options.customTools ?? null;
|
|
56
|
+
}
|
|
57
|
+
/** The list of tools following the FunctionSchema format. */
|
|
58
|
+
get standardTools() {
|
|
59
|
+
return this._standardTools;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* The wrappers for standard tools that were given as direct functions.
|
|
63
|
+
*
|
|
64
|
+
* These retain a reference to the original function, allowing the LLM
|
|
65
|
+
* service to register their handlers automatically. Standard tools given as
|
|
66
|
+
* `FunctionSchema` objects (advertise-only) are not included.
|
|
67
|
+
*/
|
|
68
|
+
get directFunctions() {
|
|
69
|
+
return this._directFunctions;
|
|
70
|
+
}
|
|
71
|
+
/** Object mapping adapter types to their custom tool definitions. */
|
|
72
|
+
get customTools() {
|
|
73
|
+
return this._customTools;
|
|
74
|
+
}
|
|
75
|
+
set customTools(value) {
|
|
76
|
+
this._customTools = value;
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
//# sourceMappingURL=tools_schema.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/adapters/services/__init__.py
|
|
6
|
+
// Upstream's `__init__.py` is empty: import the package's modules directly.
|
|
7
|
+
export {};
|
|
8
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
import type { LLMContext, LLMContextMessage, LLMContextToolChoice, LLMStandardMessage, NotGiven } from "../../processors/aggregators/llm_context.ts";
|
|
2
|
+
import { BaseLLMAdapter } from "../base_llm_adapter.ts";
|
|
3
|
+
import { type ToolsSchema } from "../schemas/tools_schema.ts";
|
|
4
|
+
type Dict = Record<string, any>;
|
|
5
|
+
/** An OpenAI Chat Completions message (`ChatCompletionMessageParam`). */
|
|
6
|
+
export type ChatCompletionMessageParam = Dict;
|
|
7
|
+
/** An OpenAI Chat Completions tool (`ChatCompletionToolParam`). */
|
|
8
|
+
export type ChatCompletionToolParam = {
|
|
9
|
+
type: "function";
|
|
10
|
+
function: Dict;
|
|
11
|
+
} | Dict;
|
|
12
|
+
/** An OpenAI Chat Completions tool choice (`ChatCompletionToolChoiceOptionParam`). */
|
|
13
|
+
export type ChatCompletionToolChoiceOptionParam = "none" | "auto" | "required" | {
|
|
14
|
+
type: "function";
|
|
15
|
+
function: {
|
|
16
|
+
name: string;
|
|
17
|
+
};
|
|
18
|
+
} | Dict;
|
|
19
|
+
/** The OpenAI SDK's "not given" value: an omitted (undefined) field. */
|
|
20
|
+
export type OpenAINotGiven = undefined;
|
|
21
|
+
/** The OpenAI SDK's "not given" sentinel. */
|
|
22
|
+
export declare const OPENAI_NOT_GIVEN: OpenAINotGiven;
|
|
23
|
+
/**
|
|
24
|
+
* Reinterpret an LLMContext `toolChoice` as OpenAI's type.
|
|
25
|
+
*
|
|
26
|
+
* The value types are aliased — `LLMContextToolChoice` is
|
|
27
|
+
* `ChatCompletionToolChoiceOptionParam` — so only the "not provided" sentinel
|
|
28
|
+
* needs translating: LLMContext has its own, and the SDK recognizes only its
|
|
29
|
+
* own.
|
|
30
|
+
*
|
|
31
|
+
* @param toolChoice A context's tool choice, or its "not provided" sentinel.
|
|
32
|
+
* @returns The tool choice unchanged, with LLMContext's sentinel replaced by
|
|
33
|
+
* the SDK's.
|
|
34
|
+
*/
|
|
35
|
+
export declare function openaiFromLlmContextToolChoice(toolChoice: LLMContextToolChoice | NotGiven): ChatCompletionToolChoiceOptionParam | OpenAINotGiven;
|
|
36
|
+
/**
|
|
37
|
+
* Reinterpret converted LLMContext tools as OpenAI's type.
|
|
38
|
+
*
|
|
39
|
+
* Same boundary as `openaiFromLlmContextToolChoice()`: the tool entries are
|
|
40
|
+
* already in OpenAI's format by this point, so only the absence of tools has
|
|
41
|
+
* to be respelled. The SDK's sentinel is the one that omits `tools` from the
|
|
42
|
+
* request body, so both of the ways absence arrives here — LLMContext's
|
|
43
|
+
* sentinel and `null` — map onto it.
|
|
44
|
+
*
|
|
45
|
+
* Generic over the tool entry type so that every OpenAI surface can share one
|
|
46
|
+
* translation: the Chat Completions and Responses APIs each have their own.
|
|
47
|
+
*
|
|
48
|
+
* @param tools Converted tools, or a value meaning no tools were provided.
|
|
49
|
+
* @returns The tools unchanged, or the SDK's sentinel if there are none.
|
|
50
|
+
*/
|
|
51
|
+
export declare function openaiFromLlmContextTools<T>(tools: T[] | NotGiven | null | undefined): T[] | OpenAINotGiven;
|
|
52
|
+
/**
|
|
53
|
+
* Reinterpret an LLMContext standard message as OpenAI's type.
|
|
54
|
+
*
|
|
55
|
+
* Same rationale as `openaiFromLlmContextToolChoice()`: the aliased types
|
|
56
|
+
* make this a no-op today, but the boundary is preserved for future
|
|
57
|
+
* divergence.
|
|
58
|
+
*
|
|
59
|
+
* @param message A context's standard message.
|
|
60
|
+
* @returns The message unchanged, typed as OpenAI's.
|
|
61
|
+
*/
|
|
62
|
+
export declare function openaiFromLlmStandardMessage(message: LLMStandardMessage): ChatCompletionMessageParam;
|
|
63
|
+
/**
|
|
64
|
+
* Check whether a value was explicitly provided to the OpenAI SDK.
|
|
65
|
+
*
|
|
66
|
+
* Asks about the SDK's sentinel, not Pipecat's — use `isGiven` from
|
|
67
|
+
* `utils/types` for values that are still Pipecat's.
|
|
68
|
+
*
|
|
69
|
+
* Also acts as a type guard: inside a true branch, the value is narrowed to
|
|
70
|
+
* exclude `OpenAINotGiven`.
|
|
71
|
+
*
|
|
72
|
+
* @example
|
|
73
|
+
* if (openaiIsGiven(toolChoice)) { ... }
|
|
74
|
+
*
|
|
75
|
+
* @param value The value to check.
|
|
76
|
+
* @returns True if `value` is anything other than the SDK's `NOT_GIVEN`.
|
|
77
|
+
*/
|
|
78
|
+
export declare function openaiIsGiven<T>(value: T | OpenAINotGiven): value is T;
|
|
79
|
+
/** Context-based parameters for invoking OpenAI ChatCompletion API. */
|
|
80
|
+
export interface OpenAILLMInvocationParams {
|
|
81
|
+
messages: ChatCompletionMessageParam[];
|
|
82
|
+
tools: ChatCompletionToolParam[] | OpenAINotGiven;
|
|
83
|
+
tool_choice: ChatCompletionToolChoiceOptionParam | OpenAINotGiven;
|
|
84
|
+
}
|
|
85
|
+
export interface OpenAILLMInvocationParamsOptions {
|
|
86
|
+
/**
|
|
87
|
+
* Optional system instruction from service settings or `runInference`. If
|
|
88
|
+
* provided, prepended as a system message.
|
|
89
|
+
*/
|
|
90
|
+
systemInstruction?: string | null;
|
|
91
|
+
/**
|
|
92
|
+
* If true, convert "developer"-role messages to "user"-role messages. Used
|
|
93
|
+
* by OpenAI-compatible services that don't support the "developer" role.
|
|
94
|
+
*/
|
|
95
|
+
convertDeveloperToUser: boolean;
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* OpenAI-specific adapter for Pipecat.
|
|
99
|
+
*
|
|
100
|
+
* Handles:
|
|
101
|
+
*
|
|
102
|
+
* - Extracting parameters for OpenAI's ChatCompletion API from a universal
|
|
103
|
+
* LLM context
|
|
104
|
+
* - Converting Pipecat's standardized tools schema to OpenAI's
|
|
105
|
+
* function-calling format.
|
|
106
|
+
* - Extracting and sanitizing messages from the LLM context for logging
|
|
107
|
+
* about OpenAI.
|
|
108
|
+
*/
|
|
109
|
+
export declare class OpenAILLMAdapter extends BaseLLMAdapter<OpenAILLMInvocationParams> {
|
|
110
|
+
/** The identifier used in LLMSpecificMessage instances for OpenAI. */
|
|
111
|
+
get idForLlmSpecificMessages(): string;
|
|
112
|
+
/**
|
|
113
|
+
* Get OpenAI-specific LLM invocation parameters from a universal LLM context.
|
|
114
|
+
*
|
|
115
|
+
* @param context The LLM context containing messages, tools, etc.
|
|
116
|
+
* @returns Object of parameters for OpenAI's ChatCompletion API.
|
|
117
|
+
*/
|
|
118
|
+
getLlmInvocationParams(context: LLMContext, options: OpenAILLMInvocationParamsOptions): Promise<OpenAILLMInvocationParams>;
|
|
119
|
+
/**
|
|
120
|
+
* Convert function schemas to OpenAI's function-calling format.
|
|
121
|
+
*
|
|
122
|
+
* @param toolsSchema The Pipecat tools schema to convert.
|
|
123
|
+
* @returns List of OpenAI formatted function call definitions ready for use
|
|
124
|
+
* with ChatCompletion API.
|
|
125
|
+
*/
|
|
126
|
+
toProviderToolsFormat(toolsSchema: ToolsSchema): ChatCompletionToolParam[];
|
|
127
|
+
/**
|
|
128
|
+
* Get messages from a universal LLM context in a format ready for logging
|
|
129
|
+
* about OpenAI.
|
|
130
|
+
*
|
|
131
|
+
* Binary data (images, audio) is replaced with short placeholders.
|
|
132
|
+
*
|
|
133
|
+
* @param context The LLM context containing messages.
|
|
134
|
+
* @returns List of messages in a format ready for logging about OpenAI.
|
|
135
|
+
*/
|
|
136
|
+
getMessagesForLogging(context: LLMContext): Record<string, unknown>[];
|
|
137
|
+
/** OpenAI Chat Completions fetches image URLs itself; other files must be inlined. */
|
|
138
|
+
supportsFileUrl(url: string, mimeType: string): boolean;
|
|
139
|
+
protected _fromUniversalContextMessages(messages: LLMContextMessage[], options: {
|
|
140
|
+
convertDeveloperToUser: boolean;
|
|
141
|
+
}): ChatCompletionMessageParam[];
|
|
142
|
+
/** Build the ChatCompletion content item for an inline (base64) file. */
|
|
143
|
+
protected _inlineFileItem(fileDataUrl: string, filename: string, mimeType: string): Dict;
|
|
144
|
+
protected _fromStandardToolChoice(toolChoice: LLMContextToolChoice | NotGiven): ChatCompletionToolChoiceOptionParam | OpenAINotGiven;
|
|
145
|
+
}
|
|
146
|
+
export {};
|
|
147
|
+
//# sourceMappingURL=open_ai_adapter.d.ts.map
|
|
@@ -0,0 +1,250 @@
|
|
|
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/adapters/services/open_ai_adapter.py
|
|
6
|
+
/**
|
|
7
|
+
* OpenAI LLM adapter for Pipecat.
|
|
8
|
+
*
|
|
9
|
+
* Porting note: core does not depend on the `openai` SDK. The Chat
|
|
10
|
+
* Completions types are declared structurally here, and the SDK's
|
|
11
|
+
* `NOT_GIVEN` sentinel is `undefined` (how the JS SDK omits a field).
|
|
12
|
+
*/
|
|
13
|
+
import { rethrowIfCancelled } from "@pipedog/asyncio";
|
|
14
|
+
import { LLMSpecificMessage } from "../../processors/aggregators/llm_context.js";
|
|
15
|
+
import { isGiven } from "../../utils/types.js";
|
|
16
|
+
import { BaseLLMAdapter, LLMContextConversionError } from "../base_llm_adapter.js";
|
|
17
|
+
import { AdapterType } from "../schemas/tools_schema.js";
|
|
18
|
+
/** The OpenAI SDK's "not given" sentinel. */
|
|
19
|
+
export const OPENAI_NOT_GIVEN = undefined;
|
|
20
|
+
/**
|
|
21
|
+
* Reinterpret an LLMContext `toolChoice` as OpenAI's type.
|
|
22
|
+
*
|
|
23
|
+
* The value types are aliased — `LLMContextToolChoice` is
|
|
24
|
+
* `ChatCompletionToolChoiceOptionParam` — so only the "not provided" sentinel
|
|
25
|
+
* needs translating: LLMContext has its own, and the SDK recognizes only its
|
|
26
|
+
* own.
|
|
27
|
+
*
|
|
28
|
+
* @param toolChoice A context's tool choice, or its "not provided" sentinel.
|
|
29
|
+
* @returns The tool choice unchanged, with LLMContext's sentinel replaced by
|
|
30
|
+
* the SDK's.
|
|
31
|
+
*/
|
|
32
|
+
export function openaiFromLlmContextToolChoice(toolChoice) {
|
|
33
|
+
if (!isGiven(toolChoice)) {
|
|
34
|
+
return OPENAI_NOT_GIVEN;
|
|
35
|
+
}
|
|
36
|
+
return toolChoice;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Reinterpret converted LLMContext tools as OpenAI's type.
|
|
40
|
+
*
|
|
41
|
+
* Same boundary as `openaiFromLlmContextToolChoice()`: the tool entries are
|
|
42
|
+
* already in OpenAI's format by this point, so only the absence of tools has
|
|
43
|
+
* to be respelled. The SDK's sentinel is the one that omits `tools` from the
|
|
44
|
+
* request body, so both of the ways absence arrives here — LLMContext's
|
|
45
|
+
* sentinel and `null` — map onto it.
|
|
46
|
+
*
|
|
47
|
+
* Generic over the tool entry type so that every OpenAI surface can share one
|
|
48
|
+
* translation: the Chat Completions and Responses APIs each have their own.
|
|
49
|
+
*
|
|
50
|
+
* @param tools Converted tools, or a value meaning no tools were provided.
|
|
51
|
+
* @returns The tools unchanged, or the SDK's sentinel if there are none.
|
|
52
|
+
*/
|
|
53
|
+
export function openaiFromLlmContextTools(tools) {
|
|
54
|
+
if (tools == null || !isGiven(tools)) {
|
|
55
|
+
return OPENAI_NOT_GIVEN;
|
|
56
|
+
}
|
|
57
|
+
return tools;
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Reinterpret an LLMContext standard message as OpenAI's type.
|
|
61
|
+
*
|
|
62
|
+
* Same rationale as `openaiFromLlmContextToolChoice()`: the aliased types
|
|
63
|
+
* make this a no-op today, but the boundary is preserved for future
|
|
64
|
+
* divergence.
|
|
65
|
+
*
|
|
66
|
+
* @param message A context's standard message.
|
|
67
|
+
* @returns The message unchanged, typed as OpenAI's.
|
|
68
|
+
*/
|
|
69
|
+
export function openaiFromLlmStandardMessage(message) {
|
|
70
|
+
return message;
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Check whether a value was explicitly provided to the OpenAI SDK.
|
|
74
|
+
*
|
|
75
|
+
* Asks about the SDK's sentinel, not Pipecat's — use `isGiven` from
|
|
76
|
+
* `utils/types` for values that are still Pipecat's.
|
|
77
|
+
*
|
|
78
|
+
* Also acts as a type guard: inside a true branch, the value is narrowed to
|
|
79
|
+
* exclude `OpenAINotGiven`.
|
|
80
|
+
*
|
|
81
|
+
* @example
|
|
82
|
+
* if (openaiIsGiven(toolChoice)) { ... }
|
|
83
|
+
*
|
|
84
|
+
* @param value The value to check.
|
|
85
|
+
* @returns True if `value` is anything other than the SDK's `NOT_GIVEN`.
|
|
86
|
+
*/
|
|
87
|
+
export function openaiIsGiven(value) {
|
|
88
|
+
return value !== OPENAI_NOT_GIVEN;
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* OpenAI-specific adapter for Pipecat.
|
|
92
|
+
*
|
|
93
|
+
* Handles:
|
|
94
|
+
*
|
|
95
|
+
* - Extracting parameters for OpenAI's ChatCompletion API from a universal
|
|
96
|
+
* LLM context
|
|
97
|
+
* - Converting Pipecat's standardized tools schema to OpenAI's
|
|
98
|
+
* function-calling format.
|
|
99
|
+
* - Extracting and sanitizing messages from the LLM context for logging
|
|
100
|
+
* about OpenAI.
|
|
101
|
+
*/
|
|
102
|
+
export class OpenAILLMAdapter extends BaseLLMAdapter {
|
|
103
|
+
/** The identifier used in LLMSpecificMessage instances for OpenAI. */
|
|
104
|
+
get idForLlmSpecificMessages() {
|
|
105
|
+
return "openai";
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Get OpenAI-specific LLM invocation parameters from a universal LLM context.
|
|
109
|
+
*
|
|
110
|
+
* @param context The LLM context containing messages, tools, etc.
|
|
111
|
+
* @returns Object of parameters for OpenAI's ChatCompletion API.
|
|
112
|
+
*/
|
|
113
|
+
async getLlmInvocationParams(context, options) {
|
|
114
|
+
const systemInstruction = options.systemInstruction ?? null;
|
|
115
|
+
await this.prepareFileContent(context);
|
|
116
|
+
let messages = this._fromUniversalContextMessages(this.getMessages(context), {
|
|
117
|
+
convertDeveloperToUser: options.convertDeveloperToUser,
|
|
118
|
+
});
|
|
119
|
+
// Detect initial system message for warning purposes (don't extract).
|
|
120
|
+
// The content is `string | parts[]`; we only forward it for warning
|
|
121
|
+
// purposes, so coerce non-strings to null — the resolver handles null.
|
|
122
|
+
let initialContent = null;
|
|
123
|
+
if (messages.length > 0 && messages[0].role === "system") {
|
|
124
|
+
this._warnContextSystemMessage();
|
|
125
|
+
const rawContent = messages[0].content ?? "";
|
|
126
|
+
if (typeof rawContent === "string") {
|
|
127
|
+
initialContent = rawContent;
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
if (systemInstruction) {
|
|
131
|
+
this._resolveSystemInstruction(initialContent, systemInstruction, {
|
|
132
|
+
discardContextSystem: false,
|
|
133
|
+
});
|
|
134
|
+
messages = [{ role: "system", content: systemInstruction }, ...messages];
|
|
135
|
+
}
|
|
136
|
+
return {
|
|
137
|
+
messages,
|
|
138
|
+
// NOTE: LLMContext's tools are guaranteed to be a ToolsSchema (or NOT_GIVEN)
|
|
139
|
+
tools: openaiFromLlmContextTools(this.fromStandardTools(context.tools)),
|
|
140
|
+
tool_choice: openaiFromLlmContextToolChoice(context.toolChoice),
|
|
141
|
+
};
|
|
142
|
+
}
|
|
143
|
+
/**
|
|
144
|
+
* Convert function schemas to OpenAI's function-calling format.
|
|
145
|
+
*
|
|
146
|
+
* @param toolsSchema The Pipecat tools schema to convert.
|
|
147
|
+
* @returns List of OpenAI formatted function call definitions ready for use
|
|
148
|
+
* with ChatCompletion API.
|
|
149
|
+
*/
|
|
150
|
+
toProviderToolsFormat(toolsSchema) {
|
|
151
|
+
const functionsSchema = toolsSchema.standardTools;
|
|
152
|
+
const formattedStandardTools = functionsSchema.map((func) => ({
|
|
153
|
+
type: "function",
|
|
154
|
+
function: func.toDefaultDict(),
|
|
155
|
+
}));
|
|
156
|
+
let customOpenaiTools = [];
|
|
157
|
+
if (toolsSchema.customTools) {
|
|
158
|
+
customOpenaiTools = (toolsSchema.customTools[AdapterType.OPENAI] ??
|
|
159
|
+
[]);
|
|
160
|
+
}
|
|
161
|
+
return [...formattedStandardTools, ...customOpenaiTools];
|
|
162
|
+
}
|
|
163
|
+
/**
|
|
164
|
+
* Get messages from a universal LLM context in a format ready for logging
|
|
165
|
+
* about OpenAI.
|
|
166
|
+
*
|
|
167
|
+
* Binary data (images, audio) is replaced with short placeholders.
|
|
168
|
+
*
|
|
169
|
+
* @param context The LLM context containing messages.
|
|
170
|
+
* @returns List of messages in a format ready for logging about OpenAI.
|
|
171
|
+
*/
|
|
172
|
+
getMessagesForLogging(context) {
|
|
173
|
+
return this.getMessages(context, { truncateLargeValues: true });
|
|
174
|
+
}
|
|
175
|
+
/** OpenAI Chat Completions fetches image URLs itself; other files must be inlined. */
|
|
176
|
+
supportsFileUrl(url, mimeType) {
|
|
177
|
+
return (mimeType.startsWith("image/") && (url.startsWith("http://") || url.startsWith("https://")));
|
|
178
|
+
}
|
|
179
|
+
_fromUniversalContextMessages(messages, options) {
|
|
180
|
+
let result = [];
|
|
181
|
+
for (const message of messages) {
|
|
182
|
+
if (message instanceof LLMSpecificMessage) {
|
|
183
|
+
result.push(message.message);
|
|
184
|
+
}
|
|
185
|
+
else {
|
|
186
|
+
const msg = { ...openaiFromLlmStandardMessage(message) };
|
|
187
|
+
const content = msg.content;
|
|
188
|
+
if (Array.isArray(content)) {
|
|
189
|
+
const newContent = [];
|
|
190
|
+
for (let item of content) {
|
|
191
|
+
if (item.type === "file_base64") {
|
|
192
|
+
const fData = item.file;
|
|
193
|
+
item = this._inlineFileItem(fData.file_data, fData.filename, fData.mime_type);
|
|
194
|
+
}
|
|
195
|
+
else if (item.type === "file_url") {
|
|
196
|
+
const fData = item.file;
|
|
197
|
+
// inlinedFileContent throws a plain Error so adapters with a
|
|
198
|
+
// message-level wrapper don't double-wrap; this adapter has no
|
|
199
|
+
// such wrapper, so wrap here.
|
|
200
|
+
let resolved;
|
|
201
|
+
try {
|
|
202
|
+
resolved = this.inlinedFileContent(fData);
|
|
203
|
+
}
|
|
204
|
+
catch (e) {
|
|
205
|
+
rethrowIfCancelled(e);
|
|
206
|
+
if (e instanceof LLMContextConversionError || !(e instanceof Error))
|
|
207
|
+
throw e;
|
|
208
|
+
throw new LLMContextConversionError(e);
|
|
209
|
+
}
|
|
210
|
+
if (resolved === null) {
|
|
211
|
+
// Pass-through: only image URLs, per supportsFileUrl.
|
|
212
|
+
item = {
|
|
213
|
+
type: "image_url",
|
|
214
|
+
image_url: { url: fData.url },
|
|
215
|
+
};
|
|
216
|
+
}
|
|
217
|
+
else {
|
|
218
|
+
// Non-raw adapters always cache the data-URL form.
|
|
219
|
+
item = this._inlineFileItem(resolved, fData.filename ?? "", fData.mime_type);
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
newContent.push(item);
|
|
223
|
+
}
|
|
224
|
+
msg.content = newContent;
|
|
225
|
+
}
|
|
226
|
+
result.push(msg);
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
if (options.convertDeveloperToUser) {
|
|
230
|
+
// Copy rather than mutate: the message objects are shared with the
|
|
231
|
+
// source LLMContext.
|
|
232
|
+
result = result.map((msg) => (msg.role === "developer" ? { ...msg, role: "user" } : msg));
|
|
233
|
+
}
|
|
234
|
+
return result;
|
|
235
|
+
}
|
|
236
|
+
/** Build the ChatCompletion content item for an inline (base64) file. */
|
|
237
|
+
_inlineFileItem(fileDataUrl, filename, mimeType) {
|
|
238
|
+
if (mimeType.startsWith("image/")) {
|
|
239
|
+
return { type: "image_url", image_url: { url: fileDataUrl } };
|
|
240
|
+
}
|
|
241
|
+
if (mimeType === "application/pdf") {
|
|
242
|
+
return { type: "file", file: { filename, file_data: fileDataUrl } };
|
|
243
|
+
}
|
|
244
|
+
throw new LLMContextConversionError(new Error(`Unsupported 'file' MIME type for OpenAI: ${mimeType}`));
|
|
245
|
+
}
|
|
246
|
+
_fromStandardToolChoice(toolChoice) {
|
|
247
|
+
return openaiFromLlmContextToolChoice(toolChoice);
|
|
248
|
+
}
|
|
249
|
+
}
|
|
250
|
+
//# sourceMappingURL=open_ai_adapter.js.map
|