@pipedog/core 0.0.0 → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +25 -0
- package/NOTICE +9 -0
- package/dist/adapters/base_llm_adapter.d.ts +266 -0
- package/dist/adapters/base_llm_adapter.js +489 -0
- package/dist/adapters/index.d.ts +2 -0
- package/dist/adapters/index.js +8 -0
- package/dist/adapters/schemas/direct_function.d.ts +202 -0
- package/dist/adapters/schemas/direct_function.js +302 -0
- package/dist/adapters/schemas/function_schema.d.ts +67 -0
- package/dist/adapters/schemas/function_schema.js +72 -0
- package/dist/adapters/schemas/index.d.ts +2 -0
- package/dist/adapters/schemas/index.js +8 -0
- package/dist/adapters/schemas/tools_schema.d.ts +57 -0
- package/dist/adapters/schemas/tools_schema.js +79 -0
- package/dist/adapters/services/index.d.ts +2 -0
- package/dist/adapters/services/index.js +8 -0
- package/dist/adapters/services/open_ai_adapter.d.ts +147 -0
- package/dist/adapters/services/open_ai_adapter.js +250 -0
- package/dist/audio/dtmf/dtmf_data.d.ts +3 -0
- package/dist/audio/dtmf/dtmf_data.js +22 -0
- package/dist/audio/dtmf/index.d.ts +2 -0
- package/dist/audio/dtmf/index.js +8 -0
- package/dist/audio/dtmf/types.d.ts +31 -0
- package/dist/audio/dtmf/types.js +35 -0
- package/dist/audio/dtmf/utils.d.ts +13 -0
- package/dist/audio/dtmf/utils.js +62 -0
- package/dist/audio/filters/base_audio_filter.d.ts +51 -0
- package/dist/audio/filters/base_audio_filter.js +17 -0
- package/dist/audio/filters/index.d.ts +2 -0
- package/dist/audio/filters/index.js +8 -0
- package/dist/audio/index.d.ts +2 -0
- package/dist/audio/index.js +8 -0
- package/dist/audio/krisp_instance.d.ts +95 -0
- package/dist/audio/krisp_instance.js +229 -0
- package/dist/audio/mixers/base_audio_mixer.d.ts +56 -0
- package/dist/audio/mixers/base_audio_mixer.js +16 -0
- package/dist/audio/mixers/index.d.ts +2 -0
- package/dist/audio/mixers/index.js +8 -0
- package/dist/audio/resamplers/base_audio_resampler.d.ts +46 -0
- package/dist/audio/resamplers/base_audio_resampler.js +35 -0
- package/dist/audio/resamplers/index.d.ts +2 -0
- package/dist/audio/resamplers/index.js +8 -0
- package/dist/audio/resamplers/resampy_resampler.d.ts +10 -0
- package/dist/audio/resamplers/resampy_resampler.js +15 -0
- package/dist/audio/resamplers/soxr_resampler.d.ts +54 -0
- package/dist/audio/resamplers/soxr_resampler.js +69 -0
- package/dist/audio/resamplers/soxr_stream_resampler.d.ts +75 -0
- package/dist/audio/resamplers/soxr_stream_resampler.js +146 -0
- package/dist/audio/turn/base_turn_analyzer.d.ts +84 -0
- package/dist/audio/turn/base_turn_analyzer.js +61 -0
- package/dist/audio/turn/index.d.ts +2 -0
- package/dist/audio/turn/index.js +8 -0
- package/dist/audio/turn/smart_turn/_whisper_features.d.ts +30 -0
- package/dist/audio/turn/smart_turn/_whisper_features.js +225 -0
- package/dist/audio/turn/smart_turn/base_smart_turn.d.ts +94 -0
- package/dist/audio/turn/smart_turn/base_smart_turn.js +239 -0
- package/dist/audio/turn/smart_turn/local_smart_turn_v3.d.ts +76 -0
- package/dist/audio/turn/smart_turn/local_smart_turn_v3.js +143 -0
- package/dist/audio/utils.d.ts +224 -0
- package/dist/audio/utils.js +634 -0
- package/dist/audio/vad/data/index.d.ts +2 -0
- package/dist/audio/vad/data/index.js +8 -0
- package/dist/audio/vad/index.d.ts +2 -0
- package/dist/audio/vad/index.js +8 -0
- package/dist/audio/vad/vad_analyzer.d.ts +126 -0
- package/dist/audio/vad/vad_analyzer.js +211 -0
- package/dist/audio/vad/vad_controller.d.ts +143 -0
- package/dist/audio/vad/vad_controller.js +228 -0
- package/dist/audio/volume.d.ts +38 -0
- package/dist/audio/volume.js +75 -0
- package/dist/bus/adapters/base.d.ts +35 -0
- package/dist/bus/adapters/base.js +19 -0
- package/dist/bus/adapters/index.d.ts +10 -0
- package/dist/bus/adapters/index.js +15 -0
- package/dist/bus/adapters/llm_context_adapter.d.ts +36 -0
- package/dist/bus/adapters/llm_context_adapter.js +82 -0
- package/dist/bus/adapters/tools_schema_adapter.d.ts +25 -0
- package/dist/bus/adapters/tools_schema_adapter.js +70 -0
- package/dist/bus/bridge_processor.d.ts +111 -0
- package/dist/bus/bridge_processor.js +166 -0
- package/dist/bus/bus.d.ts +110 -0
- package/dist/bus/bus.js +200 -0
- package/dist/bus/index.d.ts +22 -0
- package/dist/bus/index.js +27 -0
- package/dist/bus/local/async_queue.d.ts +12 -0
- package/dist/bus/local/async_queue.js +21 -0
- package/dist/bus/local/index.d.ts +3 -0
- package/dist/bus/local/index.js +8 -0
- package/dist/bus/messages.d.ts +378 -0
- package/dist/bus/messages.js +357 -0
- package/dist/bus/network/index.d.ts +16 -0
- package/dist/bus/network/index.js +21 -0
- package/dist/bus/queue.d.ts +27 -0
- package/dist/bus/queue.js +51 -0
- package/dist/bus/serializers/base.d.ts +25 -0
- package/dist/bus/serializers/base.js +14 -0
- package/dist/bus/serializers/index.d.ts +9 -0
- package/dist/bus/serializers/index.js +14 -0
- package/dist/bus/serializers/json.d.ts +77 -0
- package/dist/bus/serializers/json.js +367 -0
- package/dist/bus/subscriber.d.ts +46 -0
- package/dist/bus/subscriber.js +27 -0
- package/dist/bus/ui/index.d.ts +3 -0
- package/dist/bus/ui/index.js +8 -0
- package/dist/bus/ui/messages.d.ts +186 -0
- package/dist/bus/ui/messages.js +171 -0
- package/dist/classifiers/base_classifier.d.ts +263 -0
- package/dist/classifiers/base_classifier.js +346 -0
- package/dist/classifiers/cloudflare/clef/classifier.d.ts +70 -0
- package/dist/classifiers/cloudflare/clef/classifier.js +204 -0
- package/dist/classifiers/cloudflare/clef/client.d.ts +104 -0
- package/dist/classifiers/cloudflare/clef/client.js +234 -0
- package/dist/classifiers/cloudflare/clef/index.d.ts +2 -0
- package/dist/classifiers/cloudflare/clef/index.js +8 -0
- package/dist/classifiers/cloudflare/index.d.ts +2 -0
- package/dist/classifiers/cloudflare/index.js +8 -0
- package/dist/classifiers/http_client.d.ts +70 -0
- package/dist/classifiers/http_client.js +161 -0
- package/dist/classifiers/index.d.ts +2 -0
- package/dist/classifiers/index.js +8 -0
- package/dist/classifiers/jev/classifier.d.ts +8 -0
- package/dist/classifiers/jev/classifier.js +13 -0
- package/dist/classifiers/jev/client.d.ts +8 -0
- package/dist/classifiers/jev/client.js +13 -0
- package/dist/classifiers/jev/index.d.ts +2 -0
- package/dist/classifiers/jev/index.js +8 -0
- package/dist/classifiers/llm/classifier.d.ts +72 -0
- package/dist/classifiers/llm/classifier.js +304 -0
- package/dist/classifiers/llm/index.d.ts +2 -0
- package/dist/classifiers/llm/index.js +8 -0
- package/dist/classifiers/openai/decisions/classifier.d.ts +77 -0
- package/dist/classifiers/openai/decisions/classifier.js +241 -0
- package/dist/classifiers/openai/decisions/client.d.ts +108 -0
- package/dist/classifiers/openai/decisions/client.js +234 -0
- package/dist/classifiers/openai/decisions/index.d.ts +2 -0
- package/dist/classifiers/openai/decisions/index.js +8 -0
- package/dist/classifiers/openai/index.d.ts +2 -0
- package/dist/classifiers/openai/index.js +8 -0
- package/dist/classifiers/typesafe/index.d.ts +2 -0
- package/dist/classifiers/typesafe/index.js +8 -0
- package/dist/classifiers/typesafe/jev/classifier.d.ts +70 -0
- package/dist/classifiers/typesafe/jev/classifier.js +220 -0
- package/dist/classifiers/typesafe/jev/client.d.ts +105 -0
- package/dist/classifiers/typesafe/jev/client.js +233 -0
- package/dist/classifiers/typesafe/jev/index.d.ts +2 -0
- package/dist/classifiers/typesafe/jev/index.js +8 -0
- package/dist/clocks/base_clock.d.ts +13 -0
- package/dist/clocks/base_clock.js +14 -0
- package/dist/clocks/index.d.ts +2 -0
- package/dist/clocks/index.js +8 -0
- package/dist/clocks/system_clock.d.ts +15 -0
- package/dist/clocks/system_clock.js +25 -0
- package/dist/frames/frames.d.ts +2533 -0
- package/dist/frames/frames.js +2485 -0
- package/dist/frames/index.d.ts +2 -0
- package/dist/frames/index.js +8 -0
- package/dist/frames/protobufs/frames_pb2.d.ts +229 -0
- package/dist/frames/protobufs/frames_pb2.js +466 -0
- package/dist/index.d.ts +11 -0
- package/dist/index.js +56 -0
- package/dist/metrics/index.d.ts +2 -0
- package/dist/metrics/index.js +8 -0
- package/dist/metrics/metrics.d.ts +276 -0
- package/dist/metrics/metrics.js +254 -0
- package/dist/observers/base_observer.d.ts +173 -0
- package/dist/observers/base_observer.js +151 -0
- package/dist/observers/error_observer.d.ts +75 -0
- package/dist/observers/error_observer.js +87 -0
- package/dist/observers/function_call_observer.d.ts +157 -0
- package/dist/observers/function_call_observer.js +222 -0
- package/dist/observers/index.d.ts +2 -0
- package/dist/observers/index.js +8 -0
- package/dist/observers/loggers/debug_log_observer.d.ts +91 -0
- package/dist/observers/loggers/debug_log_observer.js +228 -0
- package/dist/observers/loggers/index.d.ts +2 -0
- package/dist/observers/loggers/index.js +8 -0
- package/dist/observers/loggers/llm_log_observer.d.ts +24 -0
- package/dist/observers/loggers/llm_log_observer.js +110 -0
- package/dist/observers/loggers/metrics_log_observer.d.ts +85 -0
- package/dist/observers/loggers/metrics_log_observer.js +186 -0
- package/dist/observers/loggers/transcription_log_observer.d.ts +23 -0
- package/dist/observers/loggers/transcription_log_observer.js +74 -0
- package/dist/observers/service_metrics_observer.d.ts +168 -0
- package/dist/observers/service_metrics_observer.js +236 -0
- package/dist/observers/speaking_observer.d.ts +104 -0
- package/dist/observers/speaking_observer.js +150 -0
- package/dist/observers/startup_timing_observer.d.ts +221 -0
- package/dist/observers/startup_timing_observer.js +365 -0
- package/dist/observers/turn_tracking_observer.d.ts +78 -0
- package/dist/observers/turn_tracking_observer.js +189 -0
- package/dist/observers/user_bot_latency_observer.d.ts +411 -0
- package/dist/observers/user_bot_latency_observer.js +974 -0
- package/dist/pipeline/base_pipeline.d.ts +49 -0
- package/dist/pipeline/base_pipeline.js +101 -0
- package/dist/pipeline/capabilities.d.ts +76 -0
- package/dist/pipeline/capabilities.js +97 -0
- package/dist/pipeline/index.d.ts +2 -0
- package/dist/pipeline/index.js +8 -0
- package/dist/pipeline/job_context.d.ts +317 -0
- package/dist/pipeline/job_context.js +450 -0
- package/dist/pipeline/job_decorator.d.ts +54 -0
- package/dist/pipeline/job_decorator.js +92 -0
- package/dist/pipeline/llm_switcher.d.ts +84 -0
- package/dist/pipeline/llm_switcher.js +107 -0
- package/dist/pipeline/llm_with_backend.d.ts +435 -0
- package/dist/pipeline/llm_with_backend.js +806 -0
- package/dist/pipeline/parallel_pipeline.d.ts +83 -0
- package/dist/pipeline/parallel_pipeline.js +200 -0
- package/dist/pipeline/pipeline.d.ts +126 -0
- package/dist/pipeline/pipeline.js +196 -0
- package/dist/pipeline/service_switcher.d.ts +287 -0
- package/dist/pipeline/service_switcher.js +509 -0
- package/dist/pipeline/sync_parallel_pipeline.d.ts +192 -0
- package/dist/pipeline/sync_parallel_pipeline.js +387 -0
- package/dist/pipeline/worker.d.ts +814 -0
- package/dist/pipeline/worker.js +1639 -0
- package/dist/pipeline/worker_observer.d.ts +131 -0
- package/dist/pipeline/worker_observer.js +274 -0
- package/dist/pipeline/worker_ready_decorator.d.ts +45 -0
- package/dist/pipeline/worker_ready_decorator.js +76 -0
- package/dist/processors/aggregators/async_tool_messages.d.ts +146 -0
- package/dist/processors/aggregators/async_tool_messages.js +291 -0
- package/dist/processors/aggregators/dtmf_aggregator.d.ts +61 -0
- package/dist/processors/aggregators/dtmf_aggregator.js +144 -0
- package/dist/processors/aggregators/gated.d.ts +43 -0
- package/dist/processors/aggregators/gated.js +86 -0
- package/dist/processors/aggregators/gated_llm_context.d.ts +42 -0
- package/dist/processors/aggregators/gated_llm_context.js +86 -0
- package/dist/processors/aggregators/index.d.ts +2 -0
- package/dist/processors/aggregators/index.js +8 -0
- package/dist/processors/aggregators/llm_context.d.ts +370 -0
- package/dist/processors/aggregators/llm_context.js +580 -0
- package/dist/processors/aggregators/llm_context_summarizer.d.ts +219 -0
- package/dist/processors/aggregators/llm_context_summarizer.js +447 -0
- package/dist/processors/aggregators/llm_response.d.ts +37 -0
- package/dist/processors/aggregators/llm_response.js +71 -0
- package/dist/processors/aggregators/llm_response_universal.d.ts +966 -0
- package/dist/processors/aggregators/llm_response_universal.js +2394 -0
- package/dist/processors/aggregators/llm_text_processor.d.ts +53 -0
- package/dist/processors/aggregators/llm_text_processor.js +102 -0
- package/dist/processors/aggregators/sentence.d.ts +39 -0
- package/dist/processors/aggregators/sentence.js +69 -0
- package/dist/processors/async_generator.d.ts +42 -0
- package/dist/processors/async_generator.js +76 -0
- package/dist/processors/audio/audio_buffer_processor.d.ts +241 -0
- package/dist/processors/audio/audio_buffer_processor.js +565 -0
- package/dist/processors/audio/index.d.ts +2 -0
- package/dist/processors/audio/index.js +8 -0
- package/dist/processors/audio/vad_processor.d.ts +67 -0
- package/dist/processors/audio/vad_processor.js +103 -0
- package/dist/processors/consumer_processor.d.ts +49 -0
- package/dist/processors/consumer_processor.js +85 -0
- package/dist/processors/filters/frame_filter.d.ts +39 -0
- package/dist/processors/filters/frame_filter.js +52 -0
- package/dist/processors/filters/function_filter.d.ts +59 -0
- package/dist/processors/filters/function_filter.js +78 -0
- package/dist/processors/filters/identity_filter.d.ts +33 -0
- package/dist/processors/filters/identity_filter.js +37 -0
- package/dist/processors/filters/index.d.ts +2 -0
- package/dist/processors/filters/index.js +8 -0
- package/dist/processors/filters/null_filter.d.ts +34 -0
- package/dist/processors/filters/null_filter.js +47 -0
- package/dist/processors/filters/wake_notifier_filter.d.ts +48 -0
- package/dist/processors/filters/wake_notifier_filter.js +49 -0
- package/dist/processors/frame_processor.d.ts +360 -0
- package/dist/processors/frame_processor.js +932 -0
- package/dist/processors/frameworks/index.d.ts +2 -0
- package/dist/processors/frameworks/index.js +8 -0
- package/dist/processors/frameworks/rtvi/frames.d.ts +241 -0
- package/dist/processors/frameworks/rtvi/frames.js +259 -0
- package/dist/processors/frameworks/rtvi/index.d.ts +6 -0
- package/dist/processors/frameworks/rtvi/index.js +11 -0
- package/dist/processors/frameworks/rtvi/models.d.ts +1741 -0
- package/dist/processors/frameworks/rtvi/models.js +1807 -0
- package/dist/processors/frameworks/rtvi/observer.d.ts +340 -0
- package/dist/processors/frameworks/rtvi/observer.js +1113 -0
- package/dist/processors/frameworks/rtvi/processor.d.ts +182 -0
- package/dist/processors/frameworks/rtvi/processor.js +676 -0
- package/dist/processors/idle_frame_processor.d.ts +44 -0
- package/dist/processors/idle_frame_processor.js +86 -0
- package/dist/processors/index.d.ts +2 -0
- package/dist/processors/index.js +8 -0
- package/dist/processors/logger.d.ts +42 -0
- package/dist/processors/logger.js +87 -0
- package/dist/processors/metrics/frame_processor_metrics.d.ts +172 -0
- package/dist/processors/metrics/frame_processor_metrics.js +372 -0
- package/dist/processors/metrics/index.d.ts +2 -0
- package/dist/processors/metrics/index.js +8 -0
- package/dist/processors/producer_processor.d.ts +68 -0
- package/dist/processors/producer_processor.js +78 -0
- package/dist/processors/text_transformer.d.ts +30 -0
- package/dist/processors/text_transformer.js +48 -0
- package/dist/registry/index.d.ts +3 -0
- package/dist/registry/index.js +8 -0
- package/dist/registry/registry.d.ts +69 -0
- package/dist/registry/registry.js +149 -0
- package/dist/registry/types.d.ts +47 -0
- package/dist/registry/types.js +39 -0
- package/dist/serializers/base_serializer.d.ts +94 -0
- package/dist/serializers/base_serializer.js +82 -0
- package/dist/serializers/index.d.ts +2 -0
- package/dist/serializers/index.js +8 -0
- package/dist/services/ai_service.d.ts +145 -0
- package/dist/services/ai_service.js +262 -0
- package/dist/services/anthropic/index.d.ts +2 -0
- package/dist/services/anthropic/index.js +7 -0
- package/dist/services/assemblyai/index.d.ts +2 -0
- package/dist/services/assemblyai/index.js +7 -0
- package/dist/services/asyncai/index.d.ts +2 -0
- package/dist/services/asyncai/index.js +7 -0
- package/dist/services/aws/index.d.ts +2 -0
- package/dist/services/aws/index.js +7 -0
- package/dist/services/azure/index.d.ts +2 -0
- package/dist/services/azure/index.js +7 -0
- package/dist/services/baseten/index.d.ts +2 -0
- package/dist/services/baseten/index.js +7 -0
- package/dist/services/bland/index.d.ts +2 -0
- package/dist/services/bland/index.js +7 -0
- package/dist/services/camb/index.d.ts +2 -0
- package/dist/services/camb/index.js +7 -0
- package/dist/services/cartesia/index.d.ts +2 -0
- package/dist/services/cartesia/index.js +7 -0
- package/dist/services/cerebras/index.d.ts +2 -0
- package/dist/services/cerebras/index.js +7 -0
- package/dist/services/crusoe/index.d.ts +2 -0
- package/dist/services/crusoe/index.js +7 -0
- package/dist/services/deepgram/index.d.ts +2 -0
- package/dist/services/deepgram/index.js +7 -0
- package/dist/services/deepseek/index.d.ts +2 -0
- package/dist/services/deepseek/index.js +7 -0
- package/dist/services/elevenlabs/index.d.ts +2 -0
- package/dist/services/elevenlabs/index.js +7 -0
- package/dist/services/fal/index.d.ts +2 -0
- package/dist/services/fal/index.js +7 -0
- package/dist/services/fireworks/index.d.ts +2 -0
- package/dist/services/fireworks/index.js +7 -0
- package/dist/services/fish/index.d.ts +2 -0
- package/dist/services/fish/index.js +7 -0
- package/dist/services/funasr/index.d.ts +3 -0
- package/dist/services/funasr/index.js +8 -0
- package/dist/services/gladia/index.d.ts +2 -0
- package/dist/services/gladia/index.js +7 -0
- package/dist/services/google/index.d.ts +2 -0
- package/dist/services/google/index.js +7 -0
- package/dist/services/gradium/index.d.ts +2 -0
- package/dist/services/gradium/index.js +7 -0
- package/dist/services/grok/index.d.ts +2 -0
- package/dist/services/grok/index.js +7 -0
- package/dist/services/groq/index.d.ts +2 -0
- package/dist/services/groq/index.js +7 -0
- package/dist/services/heygen/index.d.ts +2 -0
- package/dist/services/heygen/index.js +7 -0
- package/dist/services/hume/index.d.ts +2 -0
- package/dist/services/hume/index.js +7 -0
- package/dist/services/image_service.d.ts +52 -0
- package/dist/services/image_service.js +60 -0
- package/dist/services/inception/index.d.ts +2 -0
- package/dist/services/inception/index.js +7 -0
- package/dist/services/index.d.ts +2 -0
- package/dist/services/index.js +8 -0
- package/dist/services/inworld/index.d.ts +2 -0
- package/dist/services/inworld/index.js +7 -0
- package/dist/services/keenable/index.d.ts +2 -0
- package/dist/services/keenable/index.js +7 -0
- package/dist/services/kokoro/index.d.ts +2 -0
- package/dist/services/kokoro/index.js +7 -0
- package/dist/services/llm_service.d.ts +1106 -0
- package/dist/services/llm_service.js +2231 -0
- package/dist/services/mem0/index.d.ts +2 -0
- package/dist/services/mem0/index.js +7 -0
- package/dist/services/meta/index.d.ts +2 -0
- package/dist/services/meta/index.js +7 -0
- package/dist/services/minimax/index.d.ts +2 -0
- package/dist/services/minimax/index.js +7 -0
- package/dist/services/mistral/index.d.ts +2 -0
- package/dist/services/mistral/index.js +7 -0
- package/dist/services/moondream/index.d.ts +2 -0
- package/dist/services/moondream/index.js +7 -0
- package/dist/services/moonshine/index.d.ts +2 -0
- package/dist/services/moonshine/index.js +7 -0
- package/dist/services/nebius/index.d.ts +2 -0
- package/dist/services/nebius/index.js +7 -0
- package/dist/services/neuphonic/index.d.ts +2 -0
- package/dist/services/neuphonic/index.js +7 -0
- package/dist/services/novita/index.d.ts +2 -0
- package/dist/services/novita/index.js +7 -0
- package/dist/services/nvidia/index.d.ts +2 -0
- package/dist/services/nvidia/index.js +11 -0
- package/dist/services/ollama/index.d.ts +2 -0
- package/dist/services/ollama/index.js +7 -0
- package/dist/services/openai/index.d.ts +2 -0
- package/dist/services/openai/index.js +7 -0
- package/dist/services/openclaw/index.d.ts +14 -0
- package/dist/services/openclaw/index.js +19 -0
- package/dist/services/openrouter/index.d.ts +2 -0
- package/dist/services/openrouter/index.js +7 -0
- package/dist/services/perplexity/index.d.ts +2 -0
- package/dist/services/perplexity/index.js +7 -0
- package/dist/services/piper/index.d.ts +2 -0
- package/dist/services/piper/index.js +7 -0
- package/dist/services/pocket_tts/index.d.ts +2 -0
- package/dist/services/pocket_tts/index.js +7 -0
- package/dist/services/qwen/index.d.ts +2 -0
- package/dist/services/qwen/index.js +7 -0
- package/dist/services/resembleai/index.d.ts +2 -0
- package/dist/services/resembleai/index.js +7 -0
- package/dist/services/rime/index.d.ts +2 -0
- package/dist/services/rime/index.js +7 -0
- package/dist/services/sambanova/index.d.ts +2 -0
- package/dist/services/sambanova/index.js +7 -0
- package/dist/services/sarvam/index.d.ts +2 -0
- package/dist/services/sarvam/index.js +7 -0
- package/dist/services/settings.d.ts +356 -0
- package/dist/services/settings.js +437 -0
- package/dist/services/simli/index.d.ts +2 -0
- package/dist/services/simli/index.js +7 -0
- package/dist/services/smallest/index.d.ts +2 -0
- package/dist/services/smallest/index.js +7 -0
- package/dist/services/soniox/index.d.ts +2 -0
- package/dist/services/soniox/index.js +7 -0
- package/dist/services/speechify/index.d.ts +2 -0
- package/dist/services/speechify/index.js +7 -0
- package/dist/services/speechmatics/index.d.ts +2 -0
- package/dist/services/speechmatics/index.js +7 -0
- package/dist/services/stt_latency.d.ts +62 -0
- package/dist/services/stt_latency.js +71 -0
- package/dist/services/stt_service.d.ts +601 -0
- package/dist/services/stt_service.js +1044 -0
- package/dist/services/tavus/index.d.ts +2 -0
- package/dist/services/tavus/index.js +7 -0
- package/dist/services/together/index.d.ts +2 -0
- package/dist/services/together/index.js +7 -0
- package/dist/services/tts_service.d.ts +909 -0
- package/dist/services/tts_service.js +2018 -0
- package/dist/services/ultravox/index.d.ts +2 -0
- package/dist/services/ultravox/index.js +9 -0
- package/dist/services/vision_service.d.ts +56 -0
- package/dist/services/vision_service.js +62 -0
- package/dist/services/websocket_service.d.ts +213 -0
- package/dist/services/websocket_service.js +654 -0
- package/dist/services/whisper/index.d.ts +2 -0
- package/dist/services/whisper/index.js +9 -0
- package/dist/services/xai/index.d.ts +2 -0
- package/dist/services/xai/index.js +9 -0
- package/dist/services/xtts/index.d.ts +2 -0
- package/dist/services/xtts/index.js +9 -0
- package/dist/tests/index.d.ts +2 -0
- package/dist/tests/index.js +8 -0
- package/dist/tests/utils.d.ts +123 -0
- package/dist/tests/utils.js +212 -0
- package/dist/transcriptions/index.d.ts +2 -0
- package/dist/transcriptions/index.js +8 -0
- package/dist/transcriptions/language.d.ts +376 -0
- package/dist/transcriptions/language.js +543 -0
- package/dist/transports/base_input.d.ts +149 -0
- package/dist/transports/base_input.js +338 -0
- package/dist/transports/base_output.d.ts +432 -0
- package/dist/transports/base_output.js +1231 -0
- package/dist/transports/base_transport.d.ts +223 -0
- package/dist/transports/base_transport.js +167 -0
- package/dist/transports/daily/index.d.ts +2 -0
- package/dist/transports/daily/index.js +9 -0
- package/dist/transports/heygen/index.d.ts +2 -0
- package/dist/transports/heygen/index.js +9 -0
- package/dist/transports/index.d.ts +2 -0
- package/dist/transports/index.js +8 -0
- package/dist/transports/lemonslice/index.d.ts +2 -0
- package/dist/transports/lemonslice/index.js +9 -0
- package/dist/transports/livekit/index.d.ts +2 -0
- package/dist/transports/livekit/index.js +9 -0
- package/dist/transports/local/index.d.ts +2 -0
- package/dist/transports/local/index.js +9 -0
- package/dist/transports/moq/index.d.ts +2 -0
- package/dist/transports/moq/index.js +9 -0
- package/dist/transports/smallwebrtc/index.d.ts +2 -0
- package/dist/transports/smallwebrtc/index.js +9 -0
- package/dist/transports/tavus/index.d.ts +2 -0
- package/dist/transports/tavus/index.js +9 -0
- package/dist/transports/video_in_sampler.d.ts +157 -0
- package/dist/transports/video_in_sampler.js +258 -0
- package/dist/transports/vonage/index.d.ts +2 -0
- package/dist/transports/vonage/index.js +9 -0
- package/dist/transports/websocket/index.d.ts +2 -0
- package/dist/transports/websocket/index.js +9 -0
- package/dist/transports/whatsapp/index.d.ts +2 -0
- package/dist/transports/whatsapp/index.js +9 -0
- package/dist/turns/eager_end_of_turn_mixin.d.ts +70 -0
- package/dist/turns/eager_end_of_turn_mixin.js +122 -0
- package/dist/turns/empty_user_turn.d.ts +55 -0
- package/dist/turns/empty_user_turn.js +53 -0
- package/dist/turns/index.d.ts +2 -0
- package/dist/turns/index.js +8 -0
- package/dist/turns/speculation_gate.d.ts +169 -0
- package/dist/turns/speculation_gate.js +294 -0
- package/dist/turns/types.d.ts +33 -0
- package/dist/turns/types.js +35 -0
- package/dist/turns/user_idle_controller.d.ts +94 -0
- package/dist/turns/user_idle_controller.js +187 -0
- package/dist/turns/user_mute/always_user_mute_strategy.d.ts +15 -0
- package/dist/turns/user_mute/always_user_mute_strategy.js +29 -0
- package/dist/turns/user_mute/base_user_mute_strategy.d.ts +39 -0
- package/dist/turns/user_mute/base_user_mute_strategy.js +45 -0
- package/dist/turns/user_mute/first_speech_user_mute_strategy.d.ts +28 -0
- package/dist/turns/user_mute/first_speech_user_mute_strategy.js +52 -0
- package/dist/turns/user_mute/function_call_user_mute_strategy.d.ts +25 -0
- package/dist/turns/user_mute/function_call_user_mute_strategy.js +50 -0
- package/dist/turns/user_mute/index.d.ts +6 -0
- package/dist/turns/user_mute/index.js +11 -0
- package/dist/turns/user_mute/mute_until_first_bot_complete_user_mute_strategy.d.ts +43 -0
- package/dist/turns/user_mute/mute_until_first_bot_complete_user_mute_strategy.js +76 -0
- package/dist/turns/user_start/base_user_turn_start_strategy.d.ts +135 -0
- package/dist/turns/user_start/base_user_turn_start_strategy.js +134 -0
- package/dist/turns/user_start/external_user_turn_start_strategy.d.ts +45 -0
- package/dist/turns/user_start/external_user_turn_start_strategy.js +64 -0
- package/dist/turns/user_start/index.d.ts +8 -0
- package/dist/turns/user_start/index.js +16 -0
- package/dist/turns/user_start/krisp_viva_ip_user_turn_start_strategy.d.ts +133 -0
- package/dist/turns/user_start/krisp_viva_ip_user_turn_start_strategy.js +243 -0
- package/dist/turns/user_start/min_words_user_turn_start_strategy.d.ts +60 -0
- package/dist/turns/user_start/min_words_user_turn_start_strategy.js +102 -0
- package/dist/turns/user_start/transcription_user_turn_start_strategy.d.ts +29 -0
- package/dist/turns/user_start/transcription_user_turn_start_strategy.js +43 -0
- package/dist/turns/user_start/vad_user_turn_start_strategy.d.ts +20 -0
- package/dist/turns/user_start/vad_user_turn_start_strategy.js +31 -0
- package/dist/turns/user_start/wake_phrase_user_turn_start_strategy.d.ts +141 -0
- package/dist/turns/user_start/wake_phrase_user_turn_start_strategy.js +238 -0
- package/dist/turns/user_stop/base_user_turn_stop_strategy.d.ts +174 -0
- package/dist/turns/user_stop/base_user_turn_stop_strategy.js +170 -0
- package/dist/turns/user_stop/deferred_user_turn_stop_strategy.d.ts +81 -0
- package/dist/turns/user_stop/deferred_user_turn_stop_strategy.js +107 -0
- package/dist/turns/user_stop/eager_match_policy.d.ts +36 -0
- package/dist/turns/user_stop/eager_match_policy.js +50 -0
- package/dist/turns/user_stop/eager_user_turn_stop_strategy.d.ts +84 -0
- package/dist/turns/user_stop/eager_user_turn_stop_strategy.js +154 -0
- package/dist/turns/user_stop/external_user_turn_completion_stop_strategy.d.ts +45 -0
- package/dist/turns/user_stop/external_user_turn_completion_stop_strategy.js +55 -0
- package/dist/turns/user_stop/external_user_turn_stop_strategy.d.ts +115 -0
- package/dist/turns/user_stop/external_user_turn_stop_strategy.js +205 -0
- package/dist/turns/user_stop/index.d.ts +10 -0
- package/dist/turns/user_stop/index.js +15 -0
- package/dist/turns/user_stop/llm_turn_completion_user_turn_stop_strategy.d.ts +44 -0
- package/dist/turns/user_stop/llm_turn_completion_user_turn_stop_strategy.js +59 -0
- package/dist/turns/user_stop/speech_timeout_user_turn_stop_strategy.d.ts +140 -0
- package/dist/turns/user_stop/speech_timeout_user_turn_stop_strategy.js +303 -0
- package/dist/turns/user_stop/turn_analyzer_user_turn_stop_strategy.d.ts +135 -0
- package/dist/turns/user_stop/turn_analyzer_user_turn_stop_strategy.js +332 -0
- package/dist/turns/user_turn_completion_mixin.d.ts +147 -0
- package/dist/turns/user_turn_completion_mixin.js +591 -0
- package/dist/turns/user_turn_controller.d.ts +134 -0
- package/dist/turns/user_turn_controller.js +335 -0
- package/dist/turns/user_turn_processor.d.ts +87 -0
- package/dist/turns/user_turn_processor.js +180 -0
- package/dist/turns/user_turn_strategies.d.ts +187 -0
- package/dist/turns/user_turn_strategies.js +222 -0
- package/dist/utils/async_tool_cancellation.d.ts +35 -0
- package/dist/utils/async_tool_cancellation.js +78 -0
- package/dist/utils/asyncio/index.d.ts +2 -0
- package/dist/utils/asyncio/index.js +7 -0
- package/dist/utils/asyncio/task_manager.d.ts +49 -0
- package/dist/utils/asyncio/task_manager.js +105 -0
- package/dist/utils/base_object.d.ts +76 -0
- package/dist/utils/base_object.js +154 -0
- package/dist/utils/context/aggregated_frame_sequencer.d.ts +491 -0
- package/dist/utils/context/aggregated_frame_sequencer.js +803 -0
- package/dist/utils/context/audio_context_manager.d.ts +131 -0
- package/dist/utils/context/audio_context_manager.js +233 -0
- package/dist/utils/context/index.d.ts +2 -0
- package/dist/utils/context/index.js +7 -0
- package/dist/utils/context/llm_context_summarization.d.ts +258 -0
- package/dist/utils/context/llm_context_summarization.js +511 -0
- package/dist/utils/context/text_segment_map.d.ts +611 -0
- package/dist/utils/context/text_segment_map.js +1132 -0
- package/dist/utils/context/word_completion_tracker.d.ts +273 -0
- package/dist/utils/context/word_completion_tracker.js +441 -0
- package/dist/utils/context/word_timestamp_tracker.d.ts +72 -0
- package/dist/utils/context/word_timestamp_tracker.js +98 -0
- package/dist/utils/deprecation.d.ts +28 -0
- package/dist/utils/deprecation.js +75 -0
- package/dist/utils/env.d.ts +38 -0
- package/dist/utils/env.js +62 -0
- package/dist/utils/errors.d.ts +75 -0
- package/dist/utils/errors.js +202 -0
- package/dist/utils/file_resolver.d.ts +126 -0
- package/dist/utils/file_resolver.js +314 -0
- package/dist/utils/file_storage.d.ts +99 -0
- package/dist/utils/file_storage.js +100 -0
- package/dist/utils/frame_queue.d.ts +36 -0
- package/dist/utils/frame_queue.js +66 -0
- package/dist/utils/http.d.ts +39 -0
- package/dist/utils/http.js +53 -0
- package/dist/utils/image.d.ts +15 -0
- package/dist/utils/image.js +30 -0
- package/dist/utils/index.d.ts +2 -0
- package/dist/utils/index.js +8 -0
- package/dist/utils/log_config.d.ts +34 -0
- package/dist/utils/log_config.js +76 -0
- package/dist/utils/logger.d.ts +40 -0
- package/dist/utils/logger.js +91 -0
- package/dist/utils/mixin.d.ts +14 -0
- package/dist/utils/mixin.js +63 -0
- package/dist/utils/network.d.ts +73 -0
- package/dist/utils/network.js +90 -0
- package/dist/utils/security/allowed_origins.d.ts +16 -0
- package/dist/utils/security/allowed_origins.js +34 -0
- package/dist/utils/security/index.d.ts +2 -0
- package/dist/utils/security/index.js +7 -0
- package/dist/utils/security/redaction.d.ts +27 -0
- package/dist/utils/security/redaction.js +123 -0
- package/dist/utils/security/ssrf.d.ts +79 -0
- package/dist/utils/security/ssrf.js +327 -0
- package/dist/utils/shared.d.ts +35 -0
- package/dist/utils/shared.js +136 -0
- package/dist/utils/startup.d.ts +17 -0
- package/dist/utils/startup.js +130 -0
- package/dist/utils/string.d.ts +116 -0
- package/dist/utils/string.js +460 -0
- package/dist/utils/sync/base_notifier.d.ts +25 -0
- package/dist/utils/sync/base_notifier.js +16 -0
- package/dist/utils/sync/event_notifier.d.ts +38 -0
- package/dist/utils/sync/event_notifier.js +51 -0
- package/dist/utils/sync/index.d.ts +2 -0
- package/dist/utils/sync/index.js +7 -0
- package/dist/utils/text/alnum_utils.d.ts +109 -0
- package/dist/utils/text/alnum_utils.js +262 -0
- package/dist/utils/text/base_text_aggregator.d.ts +146 -0
- package/dist/utils/text/base_text_aggregator.js +102 -0
- package/dist/utils/text/base_text_filter.d.ts +54 -0
- package/dist/utils/text/base_text_filter.js +50 -0
- package/dist/utils/text/index.d.ts +2 -0
- package/dist/utils/text/index.js +7 -0
- package/dist/utils/text/markdown_text_filter.d.ts +147 -0
- package/dist/utils/text/markdown_text_filter.js +522 -0
- package/dist/utils/text/markup_utils.d.ts +54 -0
- package/dist/utils/text/markup_utils.js +156 -0
- package/dist/utils/text/pattern_pair_aggregator.d.ts +251 -0
- package/dist/utils/text/pattern_pair_aggregator.js +478 -0
- package/dist/utils/text/phonemes.d.ts +60 -0
- package/dist/utils/text/phonemes.js +172 -0
- package/dist/utils/text/simple_text_aggregator.d.ts +135 -0
- package/dist/utils/text/simple_text_aggregator.js +254 -0
- package/dist/utils/text/skip_tags_aggregator.d.ts +85 -0
- package/dist/utils/text/skip_tags_aggregator.js +147 -0
- package/dist/utils/text/transforms/pronunciations.d.ts +65 -0
- package/dist/utils/text/transforms/pronunciations.js +111 -0
- package/dist/utils/text/word_timestamp_utils.d.ts +26 -0
- package/dist/utils/text/word_timestamp_utils.js +52 -0
- package/dist/utils/time.d.ts +13 -0
- package/dist/utils/time.js +31 -0
- package/dist/utils/tracing/index.d.ts +3 -0
- package/dist/utils/tracing/index.js +8 -0
- package/dist/utils/tracing/service_attributes.d.ts +198 -0
- package/dist/utils/tracing/service_attributes.js +434 -0
- package/dist/utils/tracing/service_decorators.d.ts +214 -0
- package/dist/utils/tracing/service_decorators.js +1662 -0
- package/dist/utils/tracing/setup.d.ts +95 -0
- package/dist/utils/tracing/setup.js +110 -0
- package/dist/utils/tracing/tracing_context.d.ts +55 -0
- package/dist/utils/tracing/tracing_context.js +97 -0
- package/dist/utils/tracing/turn_trace_observer.d.ts +90 -0
- package/dist/utils/tracing/turn_trace_observer.js +219 -0
- package/dist/utils/types.d.ts +80 -0
- package/dist/utils/types.js +108 -0
- package/dist/utils/utils.d.ts +5 -0
- package/dist/utils/utils.js +22 -0
- package/dist/utils/yaml.d.ts +64 -0
- package/dist/utils/yaml.js +41 -0
- package/dist/version.d.ts +3 -0
- package/dist/version.js +7 -0
- package/dist/workers/base_worker.d.ts +772 -0
- package/dist/workers/base_worker.js +1298 -0
- package/dist/workers/index.d.ts +2 -0
- package/dist/workers/index.js +8 -0
- package/dist/workers/llm/backend_llm_worker.d.ts +552 -0
- package/dist/workers/llm/backend_llm_worker.js +1055 -0
- package/dist/workers/llm/index.d.ts +6 -0
- package/dist/workers/llm/index.js +11 -0
- package/dist/workers/llm/llm_context_worker.d.ts +66 -0
- package/dist/workers/llm/llm_context_worker.js +72 -0
- package/dist/workers/llm/llm_worker.d.ts +180 -0
- package/dist/workers/llm/llm_worker.js +323 -0
- package/dist/workers/llm/tool_decorator.d.ts +68 -0
- package/dist/workers/llm/tool_decorator.js +60 -0
- package/dist/workers/runner.d.ts +268 -0
- package/dist/workers/runner.js +489 -0
- package/dist/workers/ui/index.d.ts +22 -0
- package/dist/workers/ui/index.js +27 -0
- package/dist/workers/ui/ui_event_decorator.d.ts +43 -0
- package/dist/workers/ui/ui_event_decorator.js +75 -0
- package/dist/workers/ui/ui_job_context.d.ts +12 -0
- package/dist/workers/ui/ui_job_context.js +17 -0
- package/dist/workers/ui/ui_prompts.d.ts +21 -0
- package/dist/workers/ui/ui_prompts.js +41 -0
- package/dist/workers/ui/ui_tools.d.ts +32 -0
- package/dist/workers/ui/ui_tools.js +112 -0
- package/dist/workers/ui/ui_worker.d.ts +571 -0
- package/dist/workers/ui/ui_worker.js +1156 -0
- package/package.json +46 -3
- package/README.md +0 -5
|
@@ -0,0 +1,147 @@
|
|
|
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/text/skip_tags_aggregator.py
|
|
6
|
+
/**
|
|
7
|
+
* Skip tags aggregator for preventing sentence boundaries within tagged content.
|
|
8
|
+
*
|
|
9
|
+
* This module provides a text aggregator that prevents end-of-sentence matching
|
|
10
|
+
* between specified start/end tag pairs, ensuring that tagged content is processed
|
|
11
|
+
* as a unit regardless of internal punctuation.
|
|
12
|
+
*/
|
|
13
|
+
import { longestTrailingPartialMatch, parseStartEndTags } from "../string.js";
|
|
14
|
+
import { Aggregation, TextType } from "./base_text_aggregator.js";
|
|
15
|
+
import { SimpleTextAggregator, } from "./simple_text_aggregator.js";
|
|
16
|
+
/**
|
|
17
|
+
* Aggregator that prevents end of sentence matching between start/end tags.
|
|
18
|
+
*
|
|
19
|
+
* This aggregator buffers text until it finds an end of sentence or a start
|
|
20
|
+
* tag. If a start tag is found the aggregator will keep aggregating text
|
|
21
|
+
* unconditionally until the corresponding end tag is found. It's particularly
|
|
22
|
+
* useful for processing content with custom delimiters that should prevent
|
|
23
|
+
* text from being considered for end of sentence matching.
|
|
24
|
+
*
|
|
25
|
+
* The aggregator ensures that tags spanning multiple text chunks are correctly
|
|
26
|
+
* identified and that content within tags is never split at sentence boundaries.
|
|
27
|
+
*/
|
|
28
|
+
export class SkipTagsAggregator extends SimpleTextAggregator {
|
|
29
|
+
_tags;
|
|
30
|
+
_currentTag;
|
|
31
|
+
_currentTagIndex;
|
|
32
|
+
/**
|
|
33
|
+
* Initialize the skip tags aggregator.
|
|
34
|
+
*
|
|
35
|
+
* @param options.tags Tag pairs that should prevent sentence boundary detection.
|
|
36
|
+
* Other options are passed to SimpleTextAggregator (e.g. aggregationType).
|
|
37
|
+
*/
|
|
38
|
+
constructor(options) {
|
|
39
|
+
super(options);
|
|
40
|
+
this._tags = options.tags;
|
|
41
|
+
this._currentTag = null;
|
|
42
|
+
this._currentTagIndex = 0;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Aggregate text while respecting tag boundaries.
|
|
46
|
+
*
|
|
47
|
+
* Processes the input text character-by-character, updates tag state, and
|
|
48
|
+
* uses the parent's lookahead logic for sentence detection when not
|
|
49
|
+
* inside tags.
|
|
50
|
+
*
|
|
51
|
+
* In TOKEN mode, text is passed through immediately unless we're inside
|
|
52
|
+
* a tag, in which case we buffer until the closing tag is found. Text
|
|
53
|
+
* ending in a partial start tag (e.g. `<spe` of `<spell>`) is held
|
|
54
|
+
* back until a later chunk determines whether it begins a tag, so a tag
|
|
55
|
+
* split across chunks is still recognized.
|
|
56
|
+
*
|
|
57
|
+
* @param text Text to aggregate.
|
|
58
|
+
* @returns Aggregation objects containing text up to a sentence boundary,
|
|
59
|
+
* marked as SENTENCE type (or TOKEN type in TOKEN mode).
|
|
60
|
+
*/
|
|
61
|
+
async *aggregate(text) {
|
|
62
|
+
if (this._aggregationType === TextType.TOKEN) {
|
|
63
|
+
// In TOKEN mode, process chars for tag tracking but yield the
|
|
64
|
+
// full input as a single token when not inside a tag.
|
|
65
|
+
for (const char of text) {
|
|
66
|
+
this._text += char;
|
|
67
|
+
// Update tag state
|
|
68
|
+
[this._currentTag, this._currentTagIndex] = parseStartEndTags(this._text, this._tags, this._currentTag, this._currentTagIndex);
|
|
69
|
+
}
|
|
70
|
+
// After processing all chars: if not inside a tag, yield accumulated text.
|
|
71
|
+
// A trailing partial start tag (e.g. "<spe" of "<spell>") is held back
|
|
72
|
+
// so a tag split across chunks isn't leaked as plain text; it's retained
|
|
73
|
+
// in the buffer to be completed by the next chunk. The tag-scan index
|
|
74
|
+
// resets to 0 so the retained partial tag is rescanned once complete.
|
|
75
|
+
if (!this._currentTag && this._text) {
|
|
76
|
+
const heldBack = longestTrailingPartialMatch(this._text, this._tags.map(([start]) => start));
|
|
77
|
+
const yieldLength = this._text.length - heldBack;
|
|
78
|
+
if (yieldLength > 0) {
|
|
79
|
+
const content = this._text.slice(0, yieldLength);
|
|
80
|
+
this._text = this._text.slice(yieldLength);
|
|
81
|
+
this._currentTagIndex = 0;
|
|
82
|
+
yield new Aggregation({ text: content, type: TextType.TOKEN });
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
return;
|
|
86
|
+
}
|
|
87
|
+
// Process text character by character
|
|
88
|
+
for (const char of text) {
|
|
89
|
+
this._text += char;
|
|
90
|
+
// Update tag state
|
|
91
|
+
[this._currentTag, this._currentTagIndex] = parseStartEndTags(this._text, this._tags, this._currentTag, this._currentTagIndex);
|
|
92
|
+
// If inside tags, don't check for sentences
|
|
93
|
+
if (this._currentTag) {
|
|
94
|
+
continue;
|
|
95
|
+
}
|
|
96
|
+
// Otherwise, use parent's lookahead logic for sentence detection
|
|
97
|
+
const result = await super._checkSentenceWithLookahead(char);
|
|
98
|
+
if (result) {
|
|
99
|
+
yield result;
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Flush any remaining text in the buffer.
|
|
105
|
+
*
|
|
106
|
+
* In SENTENCE mode, returns the buffered text as-is: tags are
|
|
107
|
+
* pass-through markers, so content is spoken whether or not a start
|
|
108
|
+
* tag's closing tag ever arrived. In TOKEN mode, returns any text
|
|
109
|
+
* still buffered behind an unclosed tag instead of discarding it.
|
|
110
|
+
*
|
|
111
|
+
* @returns Any remaining text, or null if the buffer is empty.
|
|
112
|
+
*/
|
|
113
|
+
async flush() {
|
|
114
|
+
if (this._aggregationType === TextType.TOKEN) {
|
|
115
|
+
if (this._text) {
|
|
116
|
+
const result = this._text;
|
|
117
|
+
await this.reset();
|
|
118
|
+
return new Aggregation({ text: result, type: TextType.TOKEN });
|
|
119
|
+
}
|
|
120
|
+
return null;
|
|
121
|
+
}
|
|
122
|
+
return await super.flush();
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Handle interruptions by clearing the buffer and tag state.
|
|
126
|
+
*
|
|
127
|
+
* Called when an interruption occurs in the processing pipeline,
|
|
128
|
+
* to reset the state and discard any partially aggregated text.
|
|
129
|
+
*/
|
|
130
|
+
async handleInterruption() {
|
|
131
|
+
await super.handleInterruption();
|
|
132
|
+
this._currentTag = null;
|
|
133
|
+
this._currentTagIndex = 0;
|
|
134
|
+
}
|
|
135
|
+
/**
|
|
136
|
+
* Clear the internally aggregated text and tag state.
|
|
137
|
+
*
|
|
138
|
+
* Resets the aggregator to its initial state, discarding any
|
|
139
|
+
* buffered text.
|
|
140
|
+
*/
|
|
141
|
+
async reset() {
|
|
142
|
+
await super.reset();
|
|
143
|
+
this._currentTag = null;
|
|
144
|
+
this._currentTagIndex = 0;
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
//# sourceMappingURL=skip_tags_aggregator.js.map
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Replace words with a TTS service's pronunciation markup.
|
|
3
|
+
*
|
|
4
|
+
* Applications usually reach this through a service's
|
|
5
|
+
* `TTSService.pronunciationTransformIpa` static method, which supplies the
|
|
6
|
+
* service's own formatter.
|
|
7
|
+
*/
|
|
8
|
+
import type { TextType } from "../../../frames/frames.ts";
|
|
9
|
+
/** Turns `(word, ipa)` into the text to send, or null when it cannot. */
|
|
10
|
+
export type PronunciationFormatter = (word: string, ipa: string) => string | null;
|
|
11
|
+
/** Returns the text to send in place of a match. */
|
|
12
|
+
export type PronunciationReplacer = (match: RegExpExecArray) => string;
|
|
13
|
+
export interface PronunciationTransform {
|
|
14
|
+
(text: string, textType: string | TextType): Promise<string>;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* A text transform that replaces words with a service's pronunciation markup.
|
|
18
|
+
*
|
|
19
|
+
* TTS services recognize it among their `textTransforms` and skip it while
|
|
20
|
+
* they cannot read pronunciation markup (see `TTSService.supportsPronunciations`),
|
|
21
|
+
* so the words are spoken as written.
|
|
22
|
+
*/
|
|
23
|
+
export declare class PronunciationTransform {
|
|
24
|
+
protected _pattern: RegExp | null;
|
|
25
|
+
protected _replace: PronunciationReplacer;
|
|
26
|
+
/**
|
|
27
|
+
* Initialize the transform.
|
|
28
|
+
*
|
|
29
|
+
* @param pattern Matches the words to replace, or null when there are none.
|
|
30
|
+
* @param replace Returns the text to send in place of a match.
|
|
31
|
+
*/
|
|
32
|
+
constructor(pattern: RegExp | null, replace: PronunciationReplacer);
|
|
33
|
+
/**
|
|
34
|
+
* Replace every matched word in `text`.
|
|
35
|
+
*
|
|
36
|
+
* Python's `__call__`; calling the instance runs this.
|
|
37
|
+
*
|
|
38
|
+
* @param text The text about to be sent to the service.
|
|
39
|
+
* @param _textType The text type of the text (unused).
|
|
40
|
+
* @returns The text with each matched word replaced.
|
|
41
|
+
*/
|
|
42
|
+
transform(text: string, _textType: string | TextType): string;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Return a transform that replaces each word with its formatted pronunciation.
|
|
46
|
+
*
|
|
47
|
+
* Words match whole and case-insensitively, longest first, and never as part
|
|
48
|
+
* of a longer or hyphenated word. The matched text is passed to the formatter,
|
|
49
|
+
* so markup that keeps the word (such as an SSML `<phoneme>` tag) keeps it as
|
|
50
|
+
* written.
|
|
51
|
+
*
|
|
52
|
+
* Every pronunciation is formatted once here, so one the service cannot use
|
|
53
|
+
* is reported when the transform is built rather than while speaking. Those
|
|
54
|
+
* words are left out and spoken as written.
|
|
55
|
+
*
|
|
56
|
+
* @param pronunciations Word to IPA, e.g. `{ Metformin: "mɛtˈfɔɹmɪn" }`.
|
|
57
|
+
* @param formatPronunciation Turns `(word, ipa)` into the text to send, or
|
|
58
|
+
* null when it cannot.
|
|
59
|
+
* @param options.serviceName Name used in the warning for unusable pronunciations.
|
|
60
|
+
* @returns A transform to register with `textTransforms`.
|
|
61
|
+
*/
|
|
62
|
+
export declare function pronunciationTransform(pronunciations: Readonly<Record<string, string>>, formatPronunciation: PronunciationFormatter, options?: {
|
|
63
|
+
serviceName?: string;
|
|
64
|
+
}): PronunciationTransform;
|
|
65
|
+
//# sourceMappingURL=pronunciations.d.ts.map
|
|
@@ -0,0 +1,111 @@
|
|
|
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/text/transforms/pronunciations.py
|
|
6
|
+
import { logger } from "../../logger.js";
|
|
7
|
+
/**
|
|
8
|
+
* A text transform that replaces words with a service's pronunciation markup.
|
|
9
|
+
*
|
|
10
|
+
* TTS services recognize it among their `textTransforms` and skip it while
|
|
11
|
+
* they cannot read pronunciation markup (see `TTSService.supportsPronunciations`),
|
|
12
|
+
* so the words are spoken as written.
|
|
13
|
+
*/
|
|
14
|
+
// biome-ignore lint/suspicious/noUnsafeDeclarationMerging: adds Python's `__call__` signature to the class.
|
|
15
|
+
export class PronunciationTransform {
|
|
16
|
+
_pattern;
|
|
17
|
+
_replace;
|
|
18
|
+
/**
|
|
19
|
+
* Initialize the transform.
|
|
20
|
+
*
|
|
21
|
+
* @param pattern Matches the words to replace, or null when there are none.
|
|
22
|
+
* @param replace Returns the text to send in place of a match.
|
|
23
|
+
*/
|
|
24
|
+
constructor(pattern, replace) {
|
|
25
|
+
const call = async (text, textType) => self.transform(text, textType);
|
|
26
|
+
const self = Object.setPrototypeOf(call, new.target.prototype);
|
|
27
|
+
self._pattern = pattern;
|
|
28
|
+
self._replace = replace;
|
|
29
|
+
// biome-ignore lint/correctness/noConstructorReturn: returning the callable is the point (see above).
|
|
30
|
+
return self;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Replace every matched word in `text`.
|
|
34
|
+
*
|
|
35
|
+
* Python's `__call__`; calling the instance runs this.
|
|
36
|
+
*
|
|
37
|
+
* @param text The text about to be sent to the service.
|
|
38
|
+
* @param _textType The text type of the text (unused).
|
|
39
|
+
* @returns The text with each matched word replaced.
|
|
40
|
+
*/
|
|
41
|
+
transform(text, _textType) {
|
|
42
|
+
const pattern = this._pattern;
|
|
43
|
+
if (!pattern)
|
|
44
|
+
return text;
|
|
45
|
+
pattern.lastIndex = 0;
|
|
46
|
+
return text.replace(pattern, (...args) => {
|
|
47
|
+
// `replace` passes (match, ...groups, offset, input); rebuild an exec array.
|
|
48
|
+
const match = [args[0]];
|
|
49
|
+
return this._replace(match);
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
/** Python's `re.escape` for a JS (`u`-flag) regular expression. */
|
|
54
|
+
function escapeRegex(text) {
|
|
55
|
+
return text.replace(/[.*+?^${}()|[\]\\/]/g, "\\$&");
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Return a transform that replaces each word with its formatted pronunciation.
|
|
59
|
+
*
|
|
60
|
+
* Words match whole and case-insensitively, longest first, and never as part
|
|
61
|
+
* of a longer or hyphenated word. The matched text is passed to the formatter,
|
|
62
|
+
* so markup that keeps the word (such as an SSML `<phoneme>` tag) keeps it as
|
|
63
|
+
* written.
|
|
64
|
+
*
|
|
65
|
+
* Every pronunciation is formatted once here, so one the service cannot use
|
|
66
|
+
* is reported when the transform is built rather than while speaking. Those
|
|
67
|
+
* words are left out and spoken as written.
|
|
68
|
+
*
|
|
69
|
+
* @param pronunciations Word to IPA, e.g. `{ Metformin: "mɛtˈfɔɹmɪn" }`.
|
|
70
|
+
* @param formatPronunciation Turns `(word, ipa)` into the text to send, or
|
|
71
|
+
* null when it cannot.
|
|
72
|
+
* @param options.serviceName Name used in the warning for unusable pronunciations.
|
|
73
|
+
* @returns A transform to register with `textTransforms`.
|
|
74
|
+
*/
|
|
75
|
+
export function pronunciationTransform(pronunciations, formatPronunciation, options = {}) {
|
|
76
|
+
const serviceName = options.serviceName ?? "TTS service";
|
|
77
|
+
const phonemes = new Map();
|
|
78
|
+
const unusable = [];
|
|
79
|
+
for (const [rawWord, value] of Object.entries(pronunciations)) {
|
|
80
|
+
const word = rawWord.trim();
|
|
81
|
+
if (!word)
|
|
82
|
+
continue;
|
|
83
|
+
if (formatPronunciation(word, value) === null) {
|
|
84
|
+
unusable.push(word);
|
|
85
|
+
}
|
|
86
|
+
else {
|
|
87
|
+
phonemes.set(word.toLowerCase(), value);
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
if (unusable.length > 0) {
|
|
91
|
+
logger.warning(`${serviceName} cannot use these IPA pronunciations, so they ` +
|
|
92
|
+
`will be spoken as written: ${unusable.join(", ")}`);
|
|
93
|
+
}
|
|
94
|
+
let pattern = null;
|
|
95
|
+
if (phonemes.size > 0) {
|
|
96
|
+
const words = [...phonemes.keys()].sort((a, b) => b.length - a.length);
|
|
97
|
+
// Python's Unicode `\w` is letters, digits and underscore.
|
|
98
|
+
pattern = new RegExp(`(?<![\\p{L}\\p{N}_-])(?:${words.map(escapeRegex).join("|")})(?![\\p{L}\\p{N}_-])`, "giu");
|
|
99
|
+
}
|
|
100
|
+
const replace = (match) => {
|
|
101
|
+
const word = match[0];
|
|
102
|
+
// Python indexes the dict directly; a case-folding mismatch would raise
|
|
103
|
+
// there, here the word is kept as written.
|
|
104
|
+
const ipa = phonemes.get(word.toLowerCase());
|
|
105
|
+
if (ipa === undefined)
|
|
106
|
+
return word;
|
|
107
|
+
return formatPronunciation(word, ipa) || word;
|
|
108
|
+
};
|
|
109
|
+
return new PronunciationTransform(pattern, replace);
|
|
110
|
+
}
|
|
111
|
+
//# sourceMappingURL=pronunciations.js.map
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Merge punctuation/space-only tokens into the preceding word.
|
|
3
|
+
*
|
|
4
|
+
* Some TTS services (e.g. Inworld) emit spaces and punctuation as separate
|
|
5
|
+
* word-timestamp tokens rather than attaching them to the adjacent word.
|
|
6
|
+
* This function collapses those tokens so downstream consumers always receive
|
|
7
|
+
* words with trailing punctuation already attached — identical to the format
|
|
8
|
+
* produced by ElevenLabs or Cartesia.
|
|
9
|
+
*
|
|
10
|
+
* A token is considered punct/space-only when its text contains no alphanumeric
|
|
11
|
+
* characters after stripping XML/HTML tags. Such tokens are appended to the
|
|
12
|
+
* preceding word's text and their timestamp is discarded (the preceding word's
|
|
13
|
+
* timestamp is kept). Leading punct/space tokens with no preceding word are
|
|
14
|
+
* silently discarded. Every output token is stripped of leading and trailing
|
|
15
|
+
* whitespace (spaces, tabs, newlines).
|
|
16
|
+
*
|
|
17
|
+
* @param wordTimes Raw list of `[word, timestamp]` pairs from the TTS service.
|
|
18
|
+
* @returns Merged list where every entry contains at least one alphanumeric
|
|
19
|
+
* character and has no leading or trailing whitespace.
|
|
20
|
+
*
|
|
21
|
+
* @example
|
|
22
|
+
* mergePunctTokens([["questions", 1.0], [", ", 1.2], ["explain", 1.4]]);
|
|
23
|
+
* // → [["questions,", 1.0], ["explain", 1.4]]
|
|
24
|
+
*/
|
|
25
|
+
export declare function mergePunctTokens(wordTimes: readonly (readonly [string, number])[]): [string, number][];
|
|
26
|
+
//# sourceMappingURL=word_timestamp_utils.d.ts.map
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
// Copyright (c) 2024-2026, Daily
|
|
2
|
+
// Copyright (c) 2026, pipedog contributors
|
|
3
|
+
// SPDX-License-Identifier: BSD-2-Clause
|
|
4
|
+
//
|
|
5
|
+
// Ported from pipecat: src/pipecat/utils/text/word_timestamp_utils.py
|
|
6
|
+
/** Utilities for normalizing word-timestamp streams from TTS services. */
|
|
7
|
+
const TAG_RE = /<[^>]+>/g;
|
|
8
|
+
const ALNUM_RE = /[\p{L}\p{N}]/u;
|
|
9
|
+
/**
|
|
10
|
+
* Merge punctuation/space-only tokens into the preceding word.
|
|
11
|
+
*
|
|
12
|
+
* Some TTS services (e.g. Inworld) emit spaces and punctuation as separate
|
|
13
|
+
* word-timestamp tokens rather than attaching them to the adjacent word.
|
|
14
|
+
* This function collapses those tokens so downstream consumers always receive
|
|
15
|
+
* words with trailing punctuation already attached — identical to the format
|
|
16
|
+
* produced by ElevenLabs or Cartesia.
|
|
17
|
+
*
|
|
18
|
+
* A token is considered punct/space-only when its text contains no alphanumeric
|
|
19
|
+
* characters after stripping XML/HTML tags. Such tokens are appended to the
|
|
20
|
+
* preceding word's text and their timestamp is discarded (the preceding word's
|
|
21
|
+
* timestamp is kept). Leading punct/space tokens with no preceding word are
|
|
22
|
+
* silently discarded. Every output token is stripped of leading and trailing
|
|
23
|
+
* whitespace (spaces, tabs, newlines).
|
|
24
|
+
*
|
|
25
|
+
* @param wordTimes Raw list of `[word, timestamp]` pairs from the TTS service.
|
|
26
|
+
* @returns Merged list where every entry contains at least one alphanumeric
|
|
27
|
+
* character and has no leading or trailing whitespace.
|
|
28
|
+
*
|
|
29
|
+
* @example
|
|
30
|
+
* mergePunctTokens([["questions", 1.0], [", ", 1.2], ["explain", 1.4]]);
|
|
31
|
+
* // → [["questions,", 1.0], ["explain", 1.4]]
|
|
32
|
+
*/
|
|
33
|
+
export function mergePunctTokens(wordTimes) {
|
|
34
|
+
const merged = [];
|
|
35
|
+
for (const [word, ts] of wordTimes) {
|
|
36
|
+
const stripped = word.replace(TAG_RE, "");
|
|
37
|
+
const hasAlnum = ALNUM_RE.test(stripped);
|
|
38
|
+
if (!hasAlnum) {
|
|
39
|
+
const last = merged[merged.length - 1];
|
|
40
|
+
if (last) {
|
|
41
|
+
const [prevWord, prevTs] = last;
|
|
42
|
+
merged[merged.length - 1] = [prevWord + word, prevTs];
|
|
43
|
+
}
|
|
44
|
+
// else: leading punct/space with no preceding word → discard
|
|
45
|
+
}
|
|
46
|
+
else {
|
|
47
|
+
merged.push([word, ts]);
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
return merged.map(([word, ts]) => [word.trim(), ts]);
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=word_timestamp_utils.js.map
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Time utilities: ISO8601 formatting, nanosecond conversions, and
|
|
3
|
+
* human-readable time strings.
|
|
4
|
+
*/
|
|
5
|
+
/** The current UTC time as an ISO8601 string with millisecond precision. */
|
|
6
|
+
export declare function timeNowIso8601(): string;
|
|
7
|
+
/** Convert seconds to (integer) nanoseconds. */
|
|
8
|
+
export declare function secondsToNanoseconds(seconds: number): number;
|
|
9
|
+
/** Convert nanoseconds to seconds. */
|
|
10
|
+
export declare function nanosecondsToSeconds(nanoseconds: number): number;
|
|
11
|
+
/** Convert nanoseconds to an "H:MM:SS.microseconds" string. */
|
|
12
|
+
export declare function nanosecondsToStr(nanoseconds: number): string;
|
|
13
|
+
//# sourceMappingURL=time.d.ts.map
|
|
@@ -0,0 +1,31 @@
|
|
|
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/time.py
|
|
6
|
+
/**
|
|
7
|
+
* Time utilities: ISO8601 formatting, nanosecond conversions, and
|
|
8
|
+
* human-readable time strings.
|
|
9
|
+
*/
|
|
10
|
+
/** The current UTC time as an ISO8601 string with millisecond precision. */
|
|
11
|
+
export function timeNowIso8601() {
|
|
12
|
+
return new Date().toISOString().replace("Z", "+00:00");
|
|
13
|
+
}
|
|
14
|
+
/** Convert seconds to (integer) nanoseconds. */
|
|
15
|
+
export function secondsToNanoseconds(seconds) {
|
|
16
|
+
return Math.trunc(seconds * 1_000_000_000);
|
|
17
|
+
}
|
|
18
|
+
/** Convert nanoseconds to seconds. */
|
|
19
|
+
export function nanosecondsToSeconds(nanoseconds) {
|
|
20
|
+
return nanoseconds / 1_000_000_000;
|
|
21
|
+
}
|
|
22
|
+
/** Convert nanoseconds to an "H:MM:SS.microseconds" string. */
|
|
23
|
+
export function nanosecondsToStr(nanoseconds) {
|
|
24
|
+
const totalSeconds = nanosecondsToSeconds(nanoseconds);
|
|
25
|
+
const hours = Math.floor(totalSeconds / 3600);
|
|
26
|
+
const minutes = Math.floor((totalSeconds % 3600) / 60);
|
|
27
|
+
const seconds = Math.floor(totalSeconds % 60);
|
|
28
|
+
const microseconds = Math.trunc((totalSeconds - Math.trunc(totalSeconds)) * 1_000_000);
|
|
29
|
+
return `${hours}:${String(minutes).padStart(2, "0")}:${String(seconds).padStart(2, "0")}.${String(microseconds).padStart(6, "0")}`;
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=time.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/utils/tracing/__init__.py
|
|
6
|
+
/** OpenTelemetry tracing utilities for Pipecat. */
|
|
7
|
+
export {};
|
|
8
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1,198 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Functions for adding attributes to OpenTelemetry spans.
|
|
3
|
+
*
|
|
4
|
+
* This module provides specialized functions for adding service-specific
|
|
5
|
+
* attributes to OpenTelemetry spans, following standard semantic conventions
|
|
6
|
+
* where applicable and Pipecat-specific conventions for additional context.
|
|
7
|
+
*
|
|
8
|
+
* Porting notes:
|
|
9
|
+
* - Upstream's keyword arguments become an options object after the span.
|
|
10
|
+
* Extra keyword arguments (upstream `**kwargs`) are any other keys of that
|
|
11
|
+
* object; they are used verbatim as attribute names.
|
|
12
|
+
* - Settings field names are camelCase in TS (`givenFields()`); they are
|
|
13
|
+
* converted back to snake_case for the `settings.*` attribute names so spans
|
|
14
|
+
* carry the same attribute names as upstream.
|
|
15
|
+
*/
|
|
16
|
+
import type { ServiceSettings } from "../../services/settings.ts";
|
|
17
|
+
import type { OtelSpan } from "./setup.ts";
|
|
18
|
+
/** Convert a camelCase name back to upstream's snake_case (`voiceId` → `voice_id`). */
|
|
19
|
+
export declare function _camelToSnake(name: string): string;
|
|
20
|
+
/**
|
|
21
|
+
* Extract the standardized gen_ai.provider.name value from a service class name.
|
|
22
|
+
*
|
|
23
|
+
* Source:
|
|
24
|
+
* https://github.com/open-telemetry/semantic-conventions-genai/blob/main/docs/registry/attributes/gen-ai.md
|
|
25
|
+
*
|
|
26
|
+
* Uses standard OTel names where possible, with special case mappings for
|
|
27
|
+
* service names that don't follow the pattern.
|
|
28
|
+
*
|
|
29
|
+
* @param serviceName The service class name to extract provider name from.
|
|
30
|
+
* @returns The standardized gen_ai.provider.name value.
|
|
31
|
+
*/
|
|
32
|
+
export declare function _getProviderNameFromServiceName(serviceName: string): string;
|
|
33
|
+
export interface TtsSpanAttributesOptions {
|
|
34
|
+
/** Name of the TTS service (e.g., "cartesia"). */
|
|
35
|
+
serviceName: string;
|
|
36
|
+
/** Model name/identifier. */
|
|
37
|
+
model: string;
|
|
38
|
+
/** Voice identifier. */
|
|
39
|
+
voiceId: string;
|
|
40
|
+
/** The text being synthesized. */
|
|
41
|
+
text?: string | null;
|
|
42
|
+
/** Service configuration settings. */
|
|
43
|
+
settings?: ServiceSettings | null;
|
|
44
|
+
/** Number of characters in the text. */
|
|
45
|
+
characterCount?: number | null;
|
|
46
|
+
/** Name of the operation (default: "tts"). */
|
|
47
|
+
operationName?: string;
|
|
48
|
+
/** Time to first byte in seconds. */
|
|
49
|
+
ttfb?: number | null;
|
|
50
|
+
/** Additional attributes to add. */
|
|
51
|
+
[key: string]: unknown;
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Add TTS-specific attributes to a span.
|
|
55
|
+
*
|
|
56
|
+
* @param span The span to add attributes to.
|
|
57
|
+
* @param options The TTS attributes; any other key is added as an attribute.
|
|
58
|
+
*/
|
|
59
|
+
export declare function addTtsSpanAttributes(span: OtelSpan, options: TtsSpanAttributesOptions): void;
|
|
60
|
+
export interface SttSpanAttributesOptions {
|
|
61
|
+
/** Name of the STT service (e.g., "deepgram"). */
|
|
62
|
+
serviceName: string;
|
|
63
|
+
/** Model name/identifier. */
|
|
64
|
+
model: string;
|
|
65
|
+
/** Name of the operation (default: "stt"). */
|
|
66
|
+
operationName?: string;
|
|
67
|
+
/** The transcribed text. */
|
|
68
|
+
transcript?: string | null;
|
|
69
|
+
/** Whether this is a final transcript. */
|
|
70
|
+
isFinal?: boolean | null;
|
|
71
|
+
/** Detected or configured language. */
|
|
72
|
+
language?: string | null;
|
|
73
|
+
/** User ID associated with the audio being transcribed. */
|
|
74
|
+
userId?: string | null;
|
|
75
|
+
/** Service configuration settings. */
|
|
76
|
+
settings?: ServiceSettings | null;
|
|
77
|
+
/** Whether voice activity detection is enabled. */
|
|
78
|
+
vadEnabled?: boolean;
|
|
79
|
+
/** Time to first byte in seconds. */
|
|
80
|
+
ttfb?: number | null;
|
|
81
|
+
/** Additional attributes to add. */
|
|
82
|
+
[key: string]: unknown;
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Add STT-specific attributes to a span.
|
|
86
|
+
*
|
|
87
|
+
* @param span The span to add attributes to.
|
|
88
|
+
* @param options The STT attributes; any other key is added as an attribute.
|
|
89
|
+
*/
|
|
90
|
+
export declare function addSttSpanAttributes(span: OtelSpan, options: SttSpanAttributesOptions): void;
|
|
91
|
+
export interface LlmSpanAttributesOptions {
|
|
92
|
+
/** Name of the LLM service (e.g., "openai"). */
|
|
93
|
+
serviceName: string;
|
|
94
|
+
/** Model name/identifier. */
|
|
95
|
+
model: string;
|
|
96
|
+
/** Whether streaming is enabled. */
|
|
97
|
+
stream?: boolean;
|
|
98
|
+
/** JSON-serialized messages. */
|
|
99
|
+
messages?: string | null;
|
|
100
|
+
/** Aggregated output text from the LLM. */
|
|
101
|
+
output?: string | null;
|
|
102
|
+
/** JSON-serialized tools configuration. */
|
|
103
|
+
tools?: string | null;
|
|
104
|
+
/** Number of tools available. */
|
|
105
|
+
toolCount?: number | null;
|
|
106
|
+
/** Tool selection configuration. */
|
|
107
|
+
toolChoice?: string | null;
|
|
108
|
+
/** System instructions. */
|
|
109
|
+
systemInstructions?: string | null;
|
|
110
|
+
/** Service parameters. */
|
|
111
|
+
parameters?: Record<string, unknown> | null;
|
|
112
|
+
/** Additional parameters. */
|
|
113
|
+
extraParameters?: Record<string, unknown> | null;
|
|
114
|
+
/** Time to first byte in seconds. */
|
|
115
|
+
ttfb?: number | null;
|
|
116
|
+
/** Additional attributes to add. */
|
|
117
|
+
[key: string]: unknown;
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* Add LLM-specific attributes to a span.
|
|
121
|
+
*
|
|
122
|
+
* @param span The span to add attributes to.
|
|
123
|
+
* @param options The LLM attributes; any other key is added as an attribute.
|
|
124
|
+
* Keys of `parameters` may be camelCase settings names; they are converted
|
|
125
|
+
* to snake_case attribute names.
|
|
126
|
+
*/
|
|
127
|
+
export declare function addLlmSpanAttributes(span: OtelSpan, options: LlmSpanAttributesOptions): void;
|
|
128
|
+
export interface GeminiLiveSpanAttributesOptions {
|
|
129
|
+
/** Name of the service. */
|
|
130
|
+
serviceName: string;
|
|
131
|
+
/** Model name/identifier. */
|
|
132
|
+
model: string;
|
|
133
|
+
/** Name of the operation (setup, model_turn, tool_call, etc.). */
|
|
134
|
+
operationName: string;
|
|
135
|
+
/** Voice identifier used for output. */
|
|
136
|
+
voiceId?: string | null;
|
|
137
|
+
/** Language code for the session. */
|
|
138
|
+
language?: string | null;
|
|
139
|
+
/** Supported modalities (e.g., "AUDIO", "TEXT"). */
|
|
140
|
+
modalities?: string | null;
|
|
141
|
+
/** Service configuration settings. */
|
|
142
|
+
settings?: ServiceSettings | null;
|
|
143
|
+
/** Available tools/functions list. */
|
|
144
|
+
tools?: unknown[] | null;
|
|
145
|
+
/** JSON-serialized tools for detailed inspection. */
|
|
146
|
+
toolsSerialized?: string | null;
|
|
147
|
+
/** Transcription text. */
|
|
148
|
+
transcript?: string | null;
|
|
149
|
+
/** Whether transcript is input (true) or output (false). */
|
|
150
|
+
isInput?: boolean | null;
|
|
151
|
+
/** Text output from model. */
|
|
152
|
+
textOutput?: string | null;
|
|
153
|
+
/** Size of audio data in bytes. */
|
|
154
|
+
audioDataSize?: number | null;
|
|
155
|
+
/** Additional attributes to add. */
|
|
156
|
+
[key: string]: unknown;
|
|
157
|
+
}
|
|
158
|
+
/**
|
|
159
|
+
* Add Gemini Live specific attributes to a span.
|
|
160
|
+
*
|
|
161
|
+
* @param span The span to add attributes to.
|
|
162
|
+
* @param options The Gemini Live attributes; any other key is added as an attribute.
|
|
163
|
+
*/
|
|
164
|
+
export declare function addGeminiLiveSpanAttributes(span: OtelSpan, options: GeminiLiveSpanAttributesOptions): void;
|
|
165
|
+
export interface OpenaiRealtimeSpanAttributesOptions {
|
|
166
|
+
/** Name of the service. */
|
|
167
|
+
serviceName: string;
|
|
168
|
+
/** Model name/identifier. */
|
|
169
|
+
model: string;
|
|
170
|
+
/** Name of the operation (setup, transcription, response, etc.). */
|
|
171
|
+
operationName: string;
|
|
172
|
+
/** Session configuration properties. */
|
|
173
|
+
sessionProperties?: Record<string, unknown> | null;
|
|
174
|
+
/** Transcription text. */
|
|
175
|
+
transcript?: string | null;
|
|
176
|
+
/** Whether transcript is input (true) or output (false). */
|
|
177
|
+
isInput?: boolean | null;
|
|
178
|
+
/** JSON-serialized context messages. */
|
|
179
|
+
contextMessages?: string | null;
|
|
180
|
+
/** Function calls being made. */
|
|
181
|
+
functionCalls?: unknown[] | null;
|
|
182
|
+
/** Available tools/functions list. */
|
|
183
|
+
tools?: unknown[] | null;
|
|
184
|
+
/** JSON-serialized tools for detailed inspection. */
|
|
185
|
+
toolsSerialized?: string | null;
|
|
186
|
+
/** Size of audio data in bytes. */
|
|
187
|
+
audioDataSize?: number | null;
|
|
188
|
+
/** Additional attributes to add. */
|
|
189
|
+
[key: string]: unknown;
|
|
190
|
+
}
|
|
191
|
+
/**
|
|
192
|
+
* Add OpenAI Realtime specific attributes to a span.
|
|
193
|
+
*
|
|
194
|
+
* @param span The span to add attributes to.
|
|
195
|
+
* @param options The OpenAI Realtime attributes; any other key is added as an attribute.
|
|
196
|
+
*/
|
|
197
|
+
export declare function addOpenaiRealtimeSpanAttributes(span: OtelSpan, options: OpenaiRealtimeSpanAttributesOptions): void;
|
|
198
|
+
//# sourceMappingURL=service_attributes.d.ts.map
|