dv-pipecat-ai 0.0.85.dev7__tar.gz → 0.0.85.dev698__tar.gz

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.

Potentially problematic release.


This version of dv-pipecat-ai might be problematic. Click here for more details.

Files changed (503) hide show
  1. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/.github/workflows/publish.yaml +11 -11
  2. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/.github/workflows/publish_test.yaml +6 -6
  3. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/CHANGELOG.md +426 -5
  4. dv_pipecat_ai-0.0.85.dev698/COMMUNITY_INTEGRATIONS.md +336 -0
  5. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/CONTRIBUTING.md +4 -0
  6. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/PKG-INFO +78 -117
  7. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/README.md +39 -86
  8. dv_pipecat_ai-0.0.85.dev698/SECURITY.md +5 -0
  9. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/env.example +14 -2
  10. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/pyproject.toml +28 -23
  11. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/dv_pipecat_ai.egg-info/PKG-INFO +78 -117
  12. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/dv_pipecat_ai.egg-info/SOURCES.txt +38 -2
  13. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/dv_pipecat_ai.egg-info/requires.txt +42 -30
  14. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/adapters/base_llm_adapter.py +38 -1
  15. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/adapters/services/anthropic_adapter.py +9 -14
  16. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/adapters/services/aws_nova_sonic_adapter.py +5 -0
  17. dv_pipecat_ai-0.0.85.dev698/src/pipecat/adapters/services/bedrock_adapter.py +318 -0
  18. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/adapters/services/gemini_adapter.py +12 -8
  19. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/adapters/services/open_ai_adapter.py +19 -7
  20. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/adapters/services/open_ai_realtime_adapter.py +5 -0
  21. dv_pipecat_ai-0.0.85.dev698/src/pipecat/audio/filters/krisp_viva_filter.py +193 -0
  22. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/audio/filters/noisereduce_filter.py +15 -0
  23. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/audio/turn/base_turn_analyzer.py +9 -1
  24. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/audio/turn/smart_turn/base_smart_turn.py +14 -8
  25. dv_pipecat_ai-0.0.85.dev698/src/pipecat/audio/turn/smart_turn/data/smart-turn-v3.0.onnx +0 -0
  26. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/audio/turn/smart_turn/http_smart_turn.py +6 -2
  27. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/audio/turn/smart_turn/local_smart_turn.py +1 -1
  28. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/audio/turn/smart_turn/local_smart_turn_v2.py +1 -1
  29. dv_pipecat_ai-0.0.85.dev698/src/pipecat/audio/turn/smart_turn/local_smart_turn_v3.py +124 -0
  30. dv_pipecat_ai-0.0.85.dev698/src/pipecat/audio/vad/data/README.md +10 -0
  31. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/audio/vad/vad_analyzer.py +13 -1
  32. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/extensions/voicemail/voicemail_detector.py +5 -5
  33. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/frames/frames.py +120 -87
  34. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/observers/loggers/debug_log_observer.py +3 -3
  35. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/observers/loggers/llm_log_observer.py +7 -3
  36. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/observers/loggers/user_bot_latency_log_observer.py +22 -10
  37. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/pipeline/runner.py +12 -4
  38. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/pipeline/service_switcher.py +64 -36
  39. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/pipeline/task.py +85 -24
  40. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/processors/aggregators/dtmf_aggregator.py +28 -22
  41. dv_pipecat_ai-0.0.85.dev7/src/pipecat/processors/aggregators/gated_openai_llm_context.py → dv_pipecat_ai-0.0.85.dev698/src/pipecat/processors/aggregators/gated_llm_context.py +9 -9
  42. dv_pipecat_ai-0.0.85.dev698/src/pipecat/processors/aggregators/gated_open_ai_llm_context.py +12 -0
  43. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/processors/aggregators/llm_response.py +6 -7
  44. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/processors/aggregators/llm_response_universal.py +19 -15
  45. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/processors/aggregators/user_response.py +6 -6
  46. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/processors/aggregators/vision_image_frame.py +24 -2
  47. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/processors/audio/audio_buffer_processor.py +43 -8
  48. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/processors/filters/stt_mute_filter.py +2 -0
  49. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/processors/frame_processor.py +103 -17
  50. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/processors/frameworks/langchain.py +8 -2
  51. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/processors/frameworks/rtvi.py +209 -68
  52. dv_pipecat_ai-0.0.85.dev698/src/pipecat/processors/frameworks/strands_agents.py +170 -0
  53. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/processors/logger.py +2 -2
  54. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/processors/transcript_processor.py +4 -4
  55. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/processors/user_idle_processor.py +3 -6
  56. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/runner/run.py +270 -50
  57. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/runner/types.py +2 -0
  58. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/runner/utils.py +51 -10
  59. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/serializers/exotel.py +5 -5
  60. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/serializers/livekit.py +20 -0
  61. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/serializers/plivo.py +6 -9
  62. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/serializers/protobuf.py +6 -5
  63. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/serializers/telnyx.py +2 -2
  64. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/serializers/twilio.py +43 -23
  65. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/ai_service.py +2 -6
  66. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/anthropic/llm.py +2 -25
  67. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/asyncai/tts.py +2 -3
  68. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/aws/__init__.py +1 -0
  69. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/aws/llm.py +122 -97
  70. {dv_pipecat_ai-0.0.85.dev7/src/pipecat/services/aws_nova_sonic → dv_pipecat_ai-0.0.85.dev698/src/pipecat/services/aws/nova_sonic}/context.py +3 -3
  71. dv_pipecat_ai-0.0.85.dev7/src/pipecat/services/aws_nova_sonic/aws.py → dv_pipecat_ai-0.0.85.dev698/src/pipecat/services/aws/nova_sonic/llm.py +18 -28
  72. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/aws/stt.py +1 -3
  73. dv_pipecat_ai-0.0.85.dev698/src/pipecat/services/aws_nova_sonic/__init__.py +19 -0
  74. dv_pipecat_ai-0.0.85.dev698/src/pipecat/services/aws_nova_sonic/aws.py +25 -0
  75. dv_pipecat_ai-0.0.85.dev698/src/pipecat/services/aws_nova_sonic/context.py +25 -0
  76. dv_pipecat_ai-0.0.85.dev698/src/pipecat/services/aws_nova_sonic/frames.py +21 -0
  77. dv_pipecat_ai-0.0.85.dev698/src/pipecat/services/azure/realtime/llm.py +65 -0
  78. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/azure/stt.py +15 -0
  79. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/cartesia/tts.py +2 -2
  80. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/deepgram/__init__.py +1 -0
  81. dv_pipecat_ai-0.0.85.dev698/src/pipecat/services/deepgram/flux/stt.py +636 -0
  82. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/elevenlabs/__init__.py +2 -1
  83. dv_pipecat_ai-0.0.85.dev698/src/pipecat/services/elevenlabs/stt.py +339 -0
  84. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/elevenlabs/tts.py +5 -5
  85. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/fish/tts.py +2 -2
  86. dv_pipecat_ai-0.0.85.dev698/src/pipecat/services/gemini_multimodal_live/events.py +44 -0
  87. dv_pipecat_ai-0.0.85.dev698/src/pipecat/services/gemini_multimodal_live/file_api.py +39 -0
  88. dv_pipecat_ai-0.0.85.dev698/src/pipecat/services/gemini_multimodal_live/gemini.py +57 -0
  89. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/gladia/stt.py +56 -72
  90. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/google/__init__.py +1 -0
  91. dv_pipecat_ai-0.0.85.dev698/src/pipecat/services/google/gemini_live/__init__.py +3 -0
  92. dv_pipecat_ai-0.0.85.dev7/src/pipecat/services/gemini_multimodal_live/gemini.py → dv_pipecat_ai-0.0.85.dev698/src/pipecat/services/google/gemini_live/llm.py +522 -359
  93. dv_pipecat_ai-0.0.85.dev698/src/pipecat/services/google/gemini_live/llm_vertex.py +184 -0
  94. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/google/llm.py +15 -11
  95. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/google/llm_openai.py +3 -3
  96. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/google/llm_vertex.py +86 -16
  97. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/google/tts.py +7 -3
  98. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/heygen/api.py +2 -0
  99. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/heygen/client.py +8 -4
  100. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/heygen/video.py +2 -0
  101. dv_pipecat_ai-0.0.85.dev698/src/pipecat/services/hume/tts.py +220 -0
  102. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/inworld/tts.py +6 -6
  103. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/llm_service.py +15 -5
  104. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/lmnt/tts.py +2 -2
  105. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/mcp_service.py +4 -2
  106. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/mem0/memory.py +6 -5
  107. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/mistral/llm.py +29 -8
  108. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/moondream/vision.py +42 -16
  109. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/neuphonic/tts.py +2 -2
  110. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/openai/__init__.py +1 -0
  111. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/openai/base_llm.py +27 -20
  112. dv_pipecat_ai-0.0.85.dev698/src/pipecat/services/openai/realtime/events.py +1106 -0
  113. dv_pipecat_ai-0.0.85.dev698/src/pipecat/services/openai/realtime/frames.py +37 -0
  114. dv_pipecat_ai-0.0.85.dev698/src/pipecat/services/openai/realtime/llm.py +829 -0
  115. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/openai/tts.py +16 -8
  116. dv_pipecat_ai-0.0.85.dev698/src/pipecat/services/openai_realtime/__init__.py +27 -0
  117. dv_pipecat_ai-0.0.85.dev698/src/pipecat/services/openai_realtime/azure.py +21 -0
  118. dv_pipecat_ai-0.0.85.dev698/src/pipecat/services/openai_realtime/context.py +21 -0
  119. dv_pipecat_ai-0.0.85.dev698/src/pipecat/services/openai_realtime/events.py +21 -0
  120. dv_pipecat_ai-0.0.85.dev698/src/pipecat/services/openai_realtime/frames.py +21 -0
  121. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/openai_realtime_beta/azure.py +16 -0
  122. dv_pipecat_ai-0.0.85.dev698/src/pipecat/services/openai_realtime_beta/context.py +272 -0
  123. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/openai_realtime_beta/openai.py +17 -5
  124. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/playht/tts.py +31 -4
  125. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/rime/tts.py +3 -4
  126. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/sarvam/tts.py +2 -6
  127. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/simli/video.py +2 -2
  128. dv_pipecat_ai-0.0.85.dev698/src/pipecat/services/speechmatics/__init__.py +5 -0
  129. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/speechmatics/stt.py +1 -7
  130. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/stt_service.py +34 -0
  131. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/tavus/video.py +2 -2
  132. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/tts_service.py +9 -9
  133. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/vision_service.py +7 -6
  134. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/tests/utils.py +4 -4
  135. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/transcriptions/language.py +41 -1
  136. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/transports/base_input.py +17 -42
  137. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/transports/base_output.py +42 -26
  138. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/transports/daily/transport.py +199 -26
  139. dv_pipecat_ai-0.0.85.dev698/src/pipecat/transports/heygen/transport.py +381 -0
  140. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/transports/livekit/transport.py +228 -63
  141. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/transports/local/audio.py +6 -1
  142. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/transports/local/tk.py +11 -2
  143. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/transports/network/fastapi_websocket.py +1 -1
  144. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/transports/smallwebrtc/connection.py +98 -19
  145. dv_pipecat_ai-0.0.85.dev698/src/pipecat/transports/smallwebrtc/request_handler.py +204 -0
  146. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/transports/smallwebrtc/transport.py +65 -23
  147. dv_pipecat_ai-0.0.85.dev698/src/pipecat/transports/tavus/__init__.py +0 -0
  148. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/transports/tavus/transport.py +23 -12
  149. dv_pipecat_ai-0.0.85.dev698/src/pipecat/transports/websocket/__init__.py +0 -0
  150. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/transports/websocket/client.py +41 -5
  151. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/transports/websocket/fastapi.py +21 -11
  152. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/transports/websocket/server.py +14 -7
  153. dv_pipecat_ai-0.0.85.dev698/src/pipecat/transports/whatsapp/__init__.py +0 -0
  154. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/transports/whatsapp/api.py +8 -0
  155. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/transports/whatsapp/client.py +47 -0
  156. dv_pipecat_ai-0.0.85.dev698/src/pipecat/utils/__init__.py +0 -0
  157. dv_pipecat_ai-0.0.85.dev698/src/pipecat/utils/asyncio/__init__.py +0 -0
  158. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/utils/base_object.py +54 -22
  159. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/utils/string.py +12 -1
  160. dv_pipecat_ai-0.0.85.dev698/src/pipecat/utils/text/__init__.py +0 -0
  161. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/utils/tracing/service_decorators.py +21 -21
  162. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/uv.lock +2008 -1714
  163. dv_pipecat_ai-0.0.85.dev7/src/pipecat/adapters/services/bedrock_adapter.py +0 -95
  164. dv_pipecat_ai-0.0.85.dev7/src/pipecat/services/aws_nova_sonic/__init__.py +0 -1
  165. dv_pipecat_ai-0.0.85.dev7/src/pipecat/services/elevenlabs/stt.py +0 -361
  166. dv_pipecat_ai-0.0.85.dev7/src/pipecat/services/gemini_multimodal_live/events.py +0 -530
  167. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/.dockerignore +0 -0
  168. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/.github/ISSUE_TEMPLATE/1-bug_report.yml +0 -0
  169. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/.github/ISSUE_TEMPLATE/2-question.yml +0 -0
  170. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/.github/ISSUE_TEMPLATE/3-feature_request.yml +0 -0
  171. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/.github/ISSUE_TEMPLATE/4-service-issue.yml +0 -0
  172. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/.github/ISSUE_TEMPLATE/5-new-service.yml +0 -0
  173. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/.github/ISSUE_TEMPLATE/6-dependency.yml +0 -0
  174. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/.github/ISSUE_TEMPLATE/7-troubleshooting.yml +0 -0
  175. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/.github/ISSUE_TEMPLATE/config.yml +0 -0
  176. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
  177. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/.github/workflows/build.yaml +0 -0
  178. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/.github/workflows/coverage.yaml +0 -0
  179. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/.github/workflows/force_push_to_pypi.yml +0 -0
  180. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/.github/workflows/format.yaml +0 -0
  181. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/.github/workflows/github.yml +0 -0
  182. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/.github/workflows/promote-prod.yml +0 -0
  183. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/.github/workflows/python-compatibility.yaml +0 -0
  184. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/.github/workflows/set-traffic-split.yml +0 -0
  185. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/.github/workflows/sync-quickstart.yaml +0 -0
  186. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/.github/workflows/tests.yaml +0 -0
  187. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/.gitignore +0 -0
  188. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/.pre-commit-config.yaml +0 -0
  189. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/.readthedocs.yaml +0 -0
  190. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/CHANGELOG.md.template +0 -0
  191. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/CLAUDE.md +0 -0
  192. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/DOCKER_BUILD_OPTIMIZATION_SUMMARY.md +0 -0
  193. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/LICENSE +0 -0
  194. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/MANIFEST.in +0 -0
  195. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/ansible.cfg +0 -0
  196. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/ansible_deployment.sh +0 -0
  197. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/cleanup_old_containers.yml +0 -0
  198. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/codecov.yml +0 -0
  199. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/create-new-machine/ansible.cfg +0 -0
  200. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/create-new-machine/ansible_setup.sh +0 -0
  201. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/create-new-machine/inventory.ini +0 -0
  202. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/create-new-machine/replace_env.yml +0 -0
  203. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/create-new-machine/setup_playbook.yml +0 -0
  204. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/create_inventory.py +0 -0
  205. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/delete_old_dockers.sh +0 -0
  206. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/deploy.sh +0 -0
  207. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/deploy_playbook.yml +0 -0
  208. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/docker-compose.dev.yml +0 -0
  209. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/dump_logs.yml +0 -0
  210. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/fetch_logs.yml +0 -0
  211. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/inventory.ini +0 -0
  212. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/k8s/dv-pipecat/.helmignore +0 -0
  213. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/k8s/dv-pipecat/Chart.yaml +0 -0
  214. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/k8s/dv-pipecat/templates/_helpers.tpl +0 -0
  215. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/k8s/dv-pipecat/templates/backendconfig.yaml +0 -0
  216. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/k8s/dv-pipecat/templates/cluster-role.yaml +0 -0
  217. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/k8s/dv-pipecat/templates/deployment.yaml +0 -0
  218. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/k8s/dv-pipecat/templates/hpa.yaml +0 -0
  219. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/k8s/dv-pipecat/templates/ingress.yaml +0 -0
  220. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/k8s/dv-pipecat/templates/keda-api-key-secret.yaml +0 -0
  221. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/k8s/dv-pipecat/templates/keda-scaledobject.yaml +0 -0
  222. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/k8s/dv-pipecat/templates/keda-trigger-auth.yaml +0 -0
  223. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/k8s/dv-pipecat/templates/pdb.yaml +0 -0
  224. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/k8s/dv-pipecat/templates/service.yaml +0 -0
  225. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/k8s/dv-pipecat/values-canary.yaml +0 -0
  226. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/k8s/dv-pipecat/values-prod.yaml +0 -0
  227. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/k8s/dv-pipecat/values-stage.yaml +0 -0
  228. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/k8s/dv-pipecat/values.yaml +0 -0
  229. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/k8s/istio/destination-virtualservice.yaml +0 -0
  230. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/merge-code-into-single-file.sh +0 -0
  231. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/pipecat.png +0 -0
  232. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/restart.sh +0 -0
  233. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/restart_playbook.yml +0 -0
  234. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/setup.cfg +0 -0
  235. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/dv_pipecat_ai.egg-info/dependency_links.txt +0 -0
  236. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/dv_pipecat_ai.egg-info/top_level.txt +0 -0
  237. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/__init__.py +0 -0
  238. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/adapters/__init__.py +0 -0
  239. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/adapters/schemas/__init__.py +0 -0
  240. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/adapters/schemas/direct_function.py +0 -0
  241. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/adapters/schemas/function_schema.py +0 -0
  242. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/adapters/schemas/tools_schema.py +0 -0
  243. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/adapters/services/__init__.py +0 -0
  244. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/audio/__init__.py +0 -0
  245. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/audio/dtmf/__init__.py +0 -0
  246. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/audio/dtmf/dtmf-0.wav +0 -0
  247. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/audio/dtmf/dtmf-1.wav +0 -0
  248. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/audio/dtmf/dtmf-2.wav +0 -0
  249. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/audio/dtmf/dtmf-3.wav +0 -0
  250. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/audio/dtmf/dtmf-4.wav +0 -0
  251. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/audio/dtmf/dtmf-5.wav +0 -0
  252. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/audio/dtmf/dtmf-6.wav +0 -0
  253. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/audio/dtmf/dtmf-7.wav +0 -0
  254. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/audio/dtmf/dtmf-8.wav +0 -0
  255. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/audio/dtmf/dtmf-9.wav +0 -0
  256. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/audio/dtmf/dtmf-pound.wav +0 -0
  257. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/audio/dtmf/dtmf-star.wav +0 -0
  258. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/audio/dtmf/types.py +0 -0
  259. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/audio/dtmf/utils.py +0 -0
  260. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/audio/filters/__init__.py +0 -0
  261. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/audio/filters/aic_filter.py +0 -0
  262. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/audio/filters/base_audio_filter.py +0 -0
  263. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/audio/filters/koala_filter.py +0 -0
  264. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/audio/filters/krisp_filter.py +0 -0
  265. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/audio/filters/pyrnn_local_filter.py +0 -0
  266. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/audio/interruptions/__init__.py +0 -0
  267. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/audio/interruptions/base_interruption_strategy.py +0 -0
  268. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/audio/interruptions/min_words_interruption_strategy.py +0 -0
  269. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/audio/mixers/__init__.py +0 -0
  270. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/audio/mixers/base_audio_mixer.py +0 -0
  271. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/audio/mixers/soundfile_mixer.py +0 -0
  272. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/audio/resamplers/__init__.py +0 -0
  273. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/audio/resamplers/base_audio_resampler.py +0 -0
  274. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/audio/resamplers/resampy_resampler.py +0 -0
  275. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/audio/resamplers/soxr_resampler.py +0 -0
  276. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/audio/resamplers/soxr_stream_resampler.py +0 -0
  277. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/audio/turn/__init__.py +0 -0
  278. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/audio/turn/smart_turn/__init__.py +0 -0
  279. {dv_pipecat_ai-0.0.85.dev7/src/pipecat/audio/vad → dv_pipecat_ai-0.0.85.dev698/src/pipecat/audio/turn/smart_turn/data}/__init__.py +0 -0
  280. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/audio/turn/smart_turn/fal_smart_turn.py +0 -0
  281. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/audio/turn/smart_turn/local_coreml_smart_turn.py +0 -0
  282. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/audio/utils.py +0 -0
  283. {dv_pipecat_ai-0.0.85.dev7/src/pipecat/audio/vad/data → dv_pipecat_ai-0.0.85.dev698/src/pipecat/audio/vad}/__init__.py +0 -0
  284. {dv_pipecat_ai-0.0.85.dev7/src/pipecat/clocks → dv_pipecat_ai-0.0.85.dev698/src/pipecat/audio/vad/data}/__init__.py +0 -0
  285. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/audio/vad/data/silero_vad.onnx +0 -0
  286. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/audio/vad/data/silero_vad_v2.onnx +0 -0
  287. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/audio/vad/silero.py +0 -0
  288. {dv_pipecat_ai-0.0.85.dev7/src/pipecat/extensions → dv_pipecat_ai-0.0.85.dev698/src/pipecat/clocks}/__init__.py +0 -0
  289. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/clocks/base_clock.py +0 -0
  290. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/clocks/system_clock.py +0 -0
  291. {dv_pipecat_ai-0.0.85.dev7/src/pipecat/extensions/ivr → dv_pipecat_ai-0.0.85.dev698/src/pipecat/extensions}/__init__.py +0 -0
  292. {dv_pipecat_ai-0.0.85.dev7/src/pipecat/extensions/voicemail → dv_pipecat_ai-0.0.85.dev698/src/pipecat/extensions/ivr}/__init__.py +0 -0
  293. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/extensions/ivr/ivr_navigator.py +0 -0
  294. {dv_pipecat_ai-0.0.85.dev7/src/pipecat/frames → dv_pipecat_ai-0.0.85.dev698/src/pipecat/extensions/voicemail}/__init__.py +0 -0
  295. {dv_pipecat_ai-0.0.85.dev7/src/pipecat/metrics → dv_pipecat_ai-0.0.85.dev698/src/pipecat/frames}/__init__.py +0 -0
  296. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/frames/frames.proto +0 -0
  297. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/frames/protobufs/frames_pb2.py +0 -0
  298. {dv_pipecat_ai-0.0.85.dev7/src/pipecat/observers → dv_pipecat_ai-0.0.85.dev698/src/pipecat/metrics}/__init__.py +0 -0
  299. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/metrics/metrics.py +0 -0
  300. {dv_pipecat_ai-0.0.85.dev7/src/pipecat/observers/loggers → dv_pipecat_ai-0.0.85.dev698/src/pipecat/observers}/__init__.py +0 -0
  301. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/observers/base_observer.py +0 -0
  302. {dv_pipecat_ai-0.0.85.dev7/src/pipecat/pipeline → dv_pipecat_ai-0.0.85.dev698/src/pipecat/observers/loggers}/__init__.py +0 -0
  303. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/observers/loggers/transcription_log_observer.py +0 -0
  304. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/observers/turn_tracking_observer.py +0 -0
  305. {dv_pipecat_ai-0.0.85.dev7/src/pipecat/processors → dv_pipecat_ai-0.0.85.dev698/src/pipecat/pipeline}/__init__.py +0 -0
  306. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/pipeline/base_pipeline.py +0 -0
  307. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/pipeline/base_task.py +0 -0
  308. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/pipeline/llm_switcher.py +0 -0
  309. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/pipeline/parallel_pipeline.py +0 -0
  310. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/pipeline/pipeline.py +0 -0
  311. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/pipeline/sync_parallel_pipeline.py +0 -0
  312. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/pipeline/task_observer.py +0 -0
  313. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/pipeline/to_be_updated/merge_pipeline.py +0 -0
  314. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/pipeline/tts_switcher.py +0 -0
  315. {dv_pipecat_ai-0.0.85.dev7/src/pipecat/processors/aggregators → dv_pipecat_ai-0.0.85.dev698/src/pipecat/processors}/__init__.py +0 -0
  316. {dv_pipecat_ai-0.0.85.dev7/src/pipecat/processors/audio → dv_pipecat_ai-0.0.85.dev698/src/pipecat/processors/aggregators}/__init__.py +0 -0
  317. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/processors/aggregators/gated.py +0 -0
  318. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/processors/aggregators/llm_context.py +0 -0
  319. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/processors/aggregators/openai_llm_context.py +0 -0
  320. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/processors/aggregators/sentence.py +0 -0
  321. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/processors/async_generator.py +0 -0
  322. {dv_pipecat_ai-0.0.85.dev7/src/pipecat/processors/filters → dv_pipecat_ai-0.0.85.dev698/src/pipecat/processors/audio}/__init__.py +0 -0
  323. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/processors/consumer_processor.py +0 -0
  324. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/processors/dtmf_aggregator.py +0 -0
  325. {dv_pipecat_ai-0.0.85.dev7/src/pipecat/processors/frameworks → dv_pipecat_ai-0.0.85.dev698/src/pipecat/processors/filters}/__init__.py +0 -0
  326. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/processors/filters/frame_filter.py +0 -0
  327. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/processors/filters/function_filter.py +0 -0
  328. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/processors/filters/identity_filter.py +0 -0
  329. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/processors/filters/null_filter.py +0 -0
  330. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/processors/filters/wake_check_filter.py +0 -0
  331. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/processors/filters/wake_notifier_filter.py +0 -0
  332. {dv_pipecat_ai-0.0.85.dev7/src/pipecat/processors/gstreamer → dv_pipecat_ai-0.0.85.dev698/src/pipecat/processors/frameworks}/__init__.py +0 -0
  333. {dv_pipecat_ai-0.0.85.dev7/src/pipecat/processors/metrics → dv_pipecat_ai-0.0.85.dev698/src/pipecat/processors/gstreamer}/__init__.py +0 -0
  334. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/processors/gstreamer/pipeline_source.py +0 -0
  335. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/processors/idle_frame_processor.py +0 -0
  336. {dv_pipecat_ai-0.0.85.dev7/src/pipecat/services/asyncai → dv_pipecat_ai-0.0.85.dev698/src/pipecat/processors/metrics}/__init__.py +0 -0
  337. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/processors/metrics/frame_processor_metrics.py +0 -0
  338. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/processors/metrics/sentry.py +0 -0
  339. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/processors/producer_processor.py +0 -0
  340. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/processors/text_transformer.py +0 -0
  341. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/processors/two_stage_user_idle_processor.py +0 -0
  342. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/py.typed +0 -0
  343. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/runner/__init__.py +0 -0
  344. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/runner/daily.py +0 -0
  345. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/runner/livekit.py +0 -0
  346. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/serializers/__init__.py +0 -0
  347. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/serializers/asterisk.py +0 -0
  348. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/serializers/base_serializer.py +0 -0
  349. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/serializers/convox.py +0 -0
  350. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/serializers/custom.py +0 -0
  351. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/__init__.py +0 -0
  352. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/ai_services.py +0 -0
  353. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/anthropic/__init__.py +0 -0
  354. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/assemblyai/__init__.py +0 -0
  355. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/assemblyai/models.py +0 -0
  356. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/assemblyai/stt.py +0 -0
  357. {dv_pipecat_ai-0.0.85.dev7/src/pipecat/services/mistral → dv_pipecat_ai-0.0.85.dev698/src/pipecat/services/asyncai}/__init__.py +0 -0
  358. {dv_pipecat_ai-0.0.85.dev7/src/pipecat/services/soniox → dv_pipecat_ai-0.0.85.dev698/src/pipecat/services/aws/nova_sonic}/__init__.py +0 -0
  359. {dv_pipecat_ai-0.0.85.dev7/src/pipecat/services/aws_nova_sonic → dv_pipecat_ai-0.0.85.dev698/src/pipecat/services/aws/nova_sonic}/frames.py +0 -0
  360. {dv_pipecat_ai-0.0.85.dev7/src/pipecat/services/aws_nova_sonic → dv_pipecat_ai-0.0.85.dev698/src/pipecat/services/aws/nova_sonic}/ready.wav +0 -0
  361. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/aws/tts.py +0 -0
  362. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/aws/utils.py +0 -0
  363. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/azure/__init__.py +0 -0
  364. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/azure/common.py +0 -0
  365. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/azure/image.py +0 -0
  366. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/azure/llm.py +0 -0
  367. {dv_pipecat_ai-0.0.85.dev7/src/pipecat/sync → dv_pipecat_ai-0.0.85.dev698/src/pipecat/services/azure/realtime}/__init__.py +0 -0
  368. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/azure/tts.py +0 -0
  369. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/cartesia/__init__.py +0 -0
  370. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/cartesia/stt.py +0 -0
  371. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/cerebras/__init__.py +0 -0
  372. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/cerebras/llm.py +0 -0
  373. {dv_pipecat_ai-0.0.85.dev7/src/pipecat/tests → dv_pipecat_ai-0.0.85.dev698/src/pipecat/services/deepgram/flux}/__init__.py +0 -0
  374. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/deepgram/stt.py +0 -0
  375. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/deepgram/tts.py +0 -0
  376. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/deepseek/__init__.py +0 -0
  377. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/deepseek/llm.py +0 -0
  378. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/fal/__init__.py +0 -0
  379. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/fal/image.py +0 -0
  380. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/fal/stt.py +0 -0
  381. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/fireworks/__init__.py +0 -0
  382. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/fireworks/llm.py +0 -0
  383. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/fish/__init__.py +0 -0
  384. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/gemini_multimodal_live/__init__.py +0 -0
  385. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/gladia/__init__.py +0 -0
  386. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/gladia/config.py +0 -0
  387. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/google/frames.py +0 -0
  388. {dv_pipecat_ai-0.0.85.dev7/src/pipecat/services/gemini_multimodal_live → dv_pipecat_ai-0.0.85.dev698/src/pipecat/services/google/gemini_live}/file_api.py +0 -0
  389. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/google/google.py +0 -0
  390. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/google/image.py +0 -0
  391. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/google/rtvi.py +0 -0
  392. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/google/stt.py +0 -0
  393. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/grok/__init__.py +0 -0
  394. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/grok/llm.py +0 -0
  395. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/groq/__init__.py +0 -0
  396. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/groq/llm.py +0 -0
  397. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/groq/stt.py +0 -0
  398. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/groq/tts.py +0 -0
  399. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/hamsa/__init__.py +0 -0
  400. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/hamsa/stt.py +0 -0
  401. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/heygen/__init__.py +0 -0
  402. {dv_pipecat_ai-0.0.85.dev7/src/pipecat/services/speechmatics → dv_pipecat_ai-0.0.85.dev698/src/pipecat/services/hume}/__init__.py +0 -0
  403. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/image_service.py +0 -0
  404. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/inworld/__init__.py +0 -0
  405. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/lmnt/__init__.py +0 -0
  406. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/mem0/__init__.py +0 -0
  407. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/minimax/__init__.py +0 -0
  408. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/minimax/tts.py +0 -0
  409. {dv_pipecat_ai-0.0.85.dev7/src/pipecat/transcriptions → dv_pipecat_ai-0.0.85.dev698/src/pipecat/services/mistral}/__init__.py +0 -0
  410. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/moondream/__init__.py +0 -0
  411. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/neuphonic/__init__.py +0 -0
  412. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/nim/__init__.py +0 -0
  413. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/nim/llm.py +0 -0
  414. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/ollama/__init__.py +0 -0
  415. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/ollama/llm.py +0 -0
  416. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/openai/image.py +0 -0
  417. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/openai/llm.py +0 -0
  418. {dv_pipecat_ai-0.0.85.dev7/src/pipecat/transports → dv_pipecat_ai-0.0.85.dev698/src/pipecat/services/openai/realtime}/__init__.py +0 -0
  419. {dv_pipecat_ai-0.0.85.dev7/src/pipecat/services/openai_realtime_beta → dv_pipecat_ai-0.0.85.dev698/src/pipecat/services/openai/realtime}/context.py +0 -0
  420. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/openai/stt.py +0 -0
  421. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/openai_realtime_beta/__init__.py +0 -0
  422. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/openai_realtime_beta/events.py +0 -0
  423. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/openai_realtime_beta/frames.py +0 -0
  424. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/openpipe/__init__.py +0 -0
  425. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/openpipe/llm.py +0 -0
  426. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/openrouter/__init__.py +0 -0
  427. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/openrouter/llm.py +0 -0
  428. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/perplexity/__init__.py +0 -0
  429. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/perplexity/llm.py +0 -0
  430. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/piper/__init__.py +0 -0
  431. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/piper/tts.py +0 -0
  432. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/playht/__init__.py +0 -0
  433. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/qwen/__init__.py +0 -0
  434. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/qwen/llm.py +0 -0
  435. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/rime/__init__.py +0 -0
  436. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/riva/__init__.py +0 -0
  437. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/riva/stt.py +0 -0
  438. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/riva/tts.py +0 -0
  439. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/sambanova/__init__.py +0 -0
  440. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/sambanova/llm.py +0 -0
  441. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/sambanova/stt.py +0 -0
  442. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/sarvam/__init__.py +0 -0
  443. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/sarvam/stt.py +0 -0
  444. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/simli/__init__.py +0 -0
  445. {dv_pipecat_ai-0.0.85.dev7/src/pipecat/transports/daily → dv_pipecat_ai-0.0.85.dev698/src/pipecat/services/soniox}/__init__.py +0 -0
  446. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/soniox/stt.py +0 -0
  447. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/tavus/__init__.py +0 -0
  448. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/together/__init__.py +0 -0
  449. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/together/llm.py +0 -0
  450. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/ultravox/__init__.py +0 -0
  451. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/ultravox/stt.py +0 -0
  452. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/vistaar/__init__.py +0 -0
  453. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/vistaar/llm.py +0 -0
  454. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/websocket_service.py +0 -0
  455. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/whisper/__init__.py +0 -0
  456. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/whisper/base_stt.py +0 -0
  457. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/whisper/stt.py +0 -0
  458. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/xtts/__init__.py +0 -0
  459. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/services/xtts/tts.py +0 -0
  460. {dv_pipecat_ai-0.0.85.dev7/src/pipecat/transports/livekit → dv_pipecat_ai-0.0.85.dev698/src/pipecat/sync}/__init__.py +0 -0
  461. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/sync/base_notifier.py +0 -0
  462. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/sync/event_notifier.py +0 -0
  463. {dv_pipecat_ai-0.0.85.dev7/src/pipecat/transports/local → dv_pipecat_ai-0.0.85.dev698/src/pipecat/tests}/__init__.py +0 -0
  464. {dv_pipecat_ai-0.0.85.dev7/src/pipecat/transports/network → dv_pipecat_ai-0.0.85.dev698/src/pipecat/transcriptions}/__init__.py +0 -0
  465. {dv_pipecat_ai-0.0.85.dev7/src/pipecat/transports/services → dv_pipecat_ai-0.0.85.dev698/src/pipecat/transports}/__init__.py +0 -0
  466. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/transports/base_transport.py +0 -0
  467. {dv_pipecat_ai-0.0.85.dev7/src/pipecat/transports/services/helpers → dv_pipecat_ai-0.0.85.dev698/src/pipecat/transports/daily}/__init__.py +0 -0
  468. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/transports/daily/utils.py +0 -0
  469. {dv_pipecat_ai-0.0.85.dev7/src/pipecat/transports/smallwebrtc → dv_pipecat_ai-0.0.85.dev698/src/pipecat/transports/heygen}/__init__.py +0 -0
  470. {dv_pipecat_ai-0.0.85.dev7/src/pipecat/transports/tavus → dv_pipecat_ai-0.0.85.dev698/src/pipecat/transports/livekit}/__init__.py +0 -0
  471. {dv_pipecat_ai-0.0.85.dev7/src/pipecat/transports/websocket → dv_pipecat_ai-0.0.85.dev698/src/pipecat/transports/local}/__init__.py +0 -0
  472. {dv_pipecat_ai-0.0.85.dev7/src/pipecat/transports/whatsapp → dv_pipecat_ai-0.0.85.dev698/src/pipecat/transports/network}/__init__.py +0 -0
  473. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/transports/network/small_webrtc.py +0 -0
  474. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/transports/network/webrtc_connection.py +0 -0
  475. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/transports/network/websocket_client.py +0 -0
  476. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/transports/network/websocket_server.py +0 -0
  477. {dv_pipecat_ai-0.0.85.dev7/src/pipecat/utils → dv_pipecat_ai-0.0.85.dev698/src/pipecat/transports/services}/__init__.py +0 -0
  478. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/transports/services/daily.py +0 -0
  479. {dv_pipecat_ai-0.0.85.dev7/src/pipecat/utils/asyncio → dv_pipecat_ai-0.0.85.dev698/src/pipecat/transports/services/helpers}/__init__.py +0 -0
  480. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/transports/services/helpers/daily_rest.py +0 -0
  481. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/transports/services/livekit.py +0 -0
  482. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/transports/services/tavus.py +0 -0
  483. {dv_pipecat_ai-0.0.85.dev7/src/pipecat/utils/text → dv_pipecat_ai-0.0.85.dev698/src/pipecat/transports/smallwebrtc}/__init__.py +0 -0
  484. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/utils/asyncio/task_manager.py +0 -0
  485. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/utils/logger_config.py +0 -0
  486. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/utils/network.py +0 -0
  487. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/utils/text/base_text_aggregator.py +0 -0
  488. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/utils/text/base_text_filter.py +0 -0
  489. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/utils/text/markdown_text_filter.py +0 -0
  490. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/utils/text/pattern_pair_aggregator.py +0 -0
  491. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/utils/text/simple_text_aggregator.py +0 -0
  492. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/utils/text/skip_tags_aggregator.py +0 -0
  493. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/utils/time.py +0 -0
  494. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/utils/tracing/__init__.py +0 -0
  495. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/utils/tracing/class_decorators.py +0 -0
  496. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/utils/tracing/conversation_context_provider.py +0 -0
  497. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/utils/tracing/service_attributes.py +0 -0
  498. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/utils/tracing/setup.py +0 -0
  499. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/utils/tracing/turn_context_provider.py +0 -0
  500. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/utils/tracing/turn_trace_observer.py +0 -0
  501. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/src/pipecat/utils/utils.py +0 -0
  502. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/stop_container.yml +0 -0
  503. {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev698}/test_elevenlabs_stt_segmented.py +0 -0
@@ -5,25 +5,25 @@ on:
5
5
  inputs:
6
6
  gitref:
7
7
  type: string
8
- description: "what git tag to build (e.g. v0.0.74)"
8
+ description: 'what git tag to build (e.g. v0.0.74)'
9
9
  required: true
10
10
 
11
11
  jobs:
12
12
  build:
13
- name: "Build and upload wheels"
13
+ name: 'Build and upload wheels'
14
14
  runs-on: ubuntu-latest
15
15
  steps:
16
16
  - name: Checkout repo
17
17
  uses: actions/checkout@v4
18
18
  with:
19
19
  ref: ${{ github.event.inputs.gitref }}
20
-
20
+
21
21
  - name: Install uv
22
22
  uses: astral-sh/setup-uv@v3
23
23
  with:
24
- version: "latest"
24
+ version: 'latest'
25
25
  - name: Set up Python
26
- run: uv python install 3.10
26
+ run: uv python install 3.12
27
27
  - name: Install development dependencies
28
28
  run: uv sync --group dev
29
29
  - name: Build project
@@ -35,9 +35,9 @@ jobs:
35
35
  path: ./dist
36
36
 
37
37
  publish-to-pypi:
38
- name: "Publish to PyPI"
38
+ name: 'Publish to PyPI'
39
39
  runs-on: ubuntu-latest
40
- needs: [ build ]
40
+ needs: [build]
41
41
  environment:
42
42
  name: pypi
43
43
  url: https://pypi.org/p/pipecat-ai
@@ -56,12 +56,12 @@ jobs:
56
56
  print-hash: true
57
57
 
58
58
  publish-to-test-pypi:
59
- name: "Publish to Test PyPI"
59
+ name: 'Publish to Test PyPI'
60
60
  runs-on: ubuntu-latest
61
- needs: [ build ]
61
+ needs: [build]
62
62
  environment:
63
63
  name: testpypi
64
- url: https://pypi.org/p/pipecat-ai
64
+ url: https://test.pypi.org/p/pipecat-ai
65
65
  permissions:
66
66
  id-token: write
67
67
  steps:
@@ -70,7 +70,7 @@ jobs:
70
70
  with:
71
71
  name: wheels
72
72
  path: ./dist
73
- - name: Publish to PyPI
73
+ - name: Publish to Test PyPI
74
74
  uses: pypa/gh-action-pypi-publish@release/v1
75
75
  with:
76
76
  verbose: true
@@ -4,7 +4,7 @@ on: workflow_dispatch
4
4
 
5
5
  jobs:
6
6
  build:
7
- name: "Build and upload wheels"
7
+ name: 'Build and upload wheels'
8
8
  runs-on: ubuntu-latest
9
9
  steps:
10
10
  - name: Checkout repo
@@ -15,9 +15,9 @@ jobs:
15
15
  - name: Install uv
16
16
  uses: astral-sh/setup-uv@v3
17
17
  with:
18
- version: "latest"
18
+ version: 'latest'
19
19
  - name: Set up Python
20
- run: uv python install 3.10
20
+ run: uv python install 3.12
21
21
  - name: Install development dependencies
22
22
  run: uv sync --group dev
23
23
  - name: Build project
@@ -29,12 +29,12 @@ jobs:
29
29
  path: ./dist
30
30
 
31
31
  publish-to-test-pypi:
32
- name: "Publish to Test PyPI"
32
+ name: 'Publish to Test PyPI'
33
33
  runs-on: ubuntu-latest
34
34
  needs: [build]
35
35
  environment:
36
36
  name: testpypi
37
- url: https://pypi.org/p/pipecat-ai
37
+ url: https://test.pypi.org/p/pipecat-ai
38
38
  permissions:
39
39
  id-token: write
40
40
  steps:
@@ -43,7 +43,7 @@ jobs:
43
43
  with:
44
44
  name: wheels
45
45
  path: ./dist
46
- - name: Publish to PyPI
46
+ - name: Publish to Test PyPI
47
47
  uses: pypa/gh-action-pypi-publish@release/v1
48
48
  with:
49
49
  verbose: true
@@ -5,6 +5,427 @@ All notable changes to **Pipecat** will be documented in this file.
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ## [0.0.90] - 2025-10-10
9
+
10
+ ### Added
11
+
12
+ - Added audio filter `KrispVivaFilter` using the Krisp VIVA SDK.
13
+
14
+ - Added `--folder` argument to the runner, allowing files saved in that folder
15
+ to be downloaded from `http://HOST:PORT/file/FILE`.
16
+
17
+ - Added `GeminiLiveVertexLLMService`, for accessing Gemini Live via Google
18
+ Vertex AI.
19
+
20
+ - Added some new configuration options to `GeminiLiveLLMService`:
21
+
22
+ - `thinking`
23
+ - `enable_affective_dialog`
24
+ - `proactivity`
25
+
26
+ Note that these new configuration options require using a newer model than
27
+ the default, like "gemini-2.5-flash-native-audio-preview-09-2025". The last
28
+ two require specifying `http_options=HttpOptions(api_version="v1alpha")`.
29
+
30
+ - Added `on_pipeline_error` event to `PipelineTask`. This event will get fired
31
+ when an `ErrorFrame` is pushed (use `FrameProcessor.push_error()`).
32
+
33
+ ```python
34
+ @task.event_handler("on_pipeline_error")
35
+ async def on_pipeline_error(task: PipelineTask, frame: ErrorFrame):
36
+ ...
37
+ ```
38
+
39
+ - Added a `service_tier` `InputParam` to the `BaseOpenAILLMService`. This
40
+ parameter can influence the latency of the response. For example `"priority"`
41
+ will result in faster completions, but in exchange for a higher price.
42
+
43
+ ### Changed
44
+
45
+ - Updated `GeminiLiveLLMService` to use the `google-genai` library rather than
46
+ use WebSockets directly.
47
+
48
+ ### Deprecated
49
+
50
+ - `LivekitFrameSerializer` is now deprecated. Use `LiveKitTransport` instead.
51
+
52
+ - `pipecat.service.openai_realtime` is now deprecated, use
53
+ `pipecat.services.openai.realtime` instead or
54
+ `pipecat.services.azure.realtime` for Azure Realtime.
55
+
56
+ - `pipecat.service.aws_nova_sonic` is now deprecated, use
57
+ `pipecat.services.aws.nova_sonic` instead.
58
+
59
+ - `GeminiMultimodalLiveLLMService` is now deprecated, use
60
+ `GeminiLiveLLMService`.
61
+
62
+ ### Fixed
63
+
64
+ - Fixed a `GoogleVertexLLMService` issue that would generate an error if no
65
+ token information was returned.
66
+
67
+ - `GeminiLiveLLMService` will now end gracefully (i.e. after the bot has
68
+ finished) upon receiving an `EndFrame`.
69
+
70
+ - `GeminiLiveLLMService` will try to seamlessly reconnect when it loses its
71
+ connection.
72
+
73
+ ## [0.0.89] - 2025-10-07
74
+
75
+ ### Fixed
76
+
77
+ - Reverted a change introduced in 0.0.88 that was causing pipelines to be frozen
78
+ when using interruption strategies and processors that block interruption
79
+ frames (e.g. `STTMuteFilter`).
80
+
81
+ ## [0.0.88] - 2025-10-07
82
+
83
+ ### Added
84
+
85
+ - Added support for Nano Banana models to `GoogleLLMService`. For example, you
86
+ can now use the `gemini-2.5-flash-image` model to generate images.
87
+
88
+ - Added `HumeTTSService` for text-to-speech synthesis using Hume AI's expressive
89
+ voice models. Provides high-quality, emotionally expressive speech synthesis
90
+ with support for various voice models. Includes example in
91
+ `examples/foundational/07ad-interruptible-hume.py`. Use with:
92
+ `uv pip install pipecat-ai[hume]`.
93
+
94
+ ### Changed
95
+
96
+ - Updated default `GoogleLLMService` model to `gemini-2.5-flash`.
97
+
98
+ ### Deprecated
99
+
100
+ - PlayHT is shutting down their API on December 31st, 2025. As a result,
101
+ `PlayHTTTSService` and `PlayHTHttpTTSService` are deprecated and will be
102
+ removed in a future version.
103
+
104
+ ### Fixed
105
+
106
+ - Fixed an issue with `AWSNovaSonicLLMService` where the client wouldn't
107
+ connect due to a breaking change in the AWS dependency chain.
108
+
109
+ - `PermissionError` is now caught if NLTK's `punkt_tab` can't be downloaded.
110
+
111
+ - Fixed an issue that would cause wrong user/assistant context ordering when
112
+ using interruption strategies.
113
+
114
+ - Fixed RTVI incoming message handling, broken in 0.0.87.
115
+
116
+ ## [0.0.87] - 2025-10-02
117
+
118
+ ### Added
119
+
120
+ - Added `WebsocketSTTService` base class for websocket-based STT services.
121
+ Combines STT functionality with websocket connectivity, providing automatic
122
+ error handling and reconnection capabilities with exponential backoff.
123
+
124
+ - Added `DeepgramFluxSTTService` for real-time speech recognition using
125
+ Deepgram's Flux WebSocket API. Flux understands conversational flow and
126
+ automatically handles turn-taking.
127
+
128
+ - Added RTVI messages for user/bot audio levels and system logs.
129
+
130
+ - Include OpenAI-based LLM services cached tokens to `MetricsFrame`.
131
+
132
+ ### Changed
133
+
134
+ - Updated the default model for `AnthropicLLMService` to
135
+ `claude-sonnet-4-5-20250929`.
136
+
137
+ ### Deprecated
138
+
139
+ - `DailyTransportMessageFrame` and `DailyTransportMessageUrgentFrame` are
140
+ deprecated, use `DailyOutputTransportMessageFrame` and
141
+ `DailyOutputTransportMessageUrgentFrame` respectively instead.
142
+
143
+ - `LiveKitTransportMessageFrame` and `LiveKitTransportMessageUrgentFrame` are
144
+ deprecated, use `LiveKitOutputTransportMessageFrame` and
145
+ `LiveKitOutputTransportMessageUrgentFrame` respectively instead.
146
+
147
+ - `TransportMessageFrame` and `TransportMessageUrgentFrame` are deprecated, use
148
+ `OutputTransportMessageFrame` and `OutputTransportMessageUrgentFrame`
149
+ respectively instead.
150
+
151
+ - `InputTransportMessageUrgentFrame` is deprecated, use
152
+ `InputTransportMessageFrame` instead.
153
+
154
+ - `DailyUpdateRemoteParticipantsFrame` is deprecated and will be removed in a
155
+ future version. Instead, create your own custom frame and handle it in the
156
+ `@transport.output().event_handler("on_after_push_frame")` event handler or a
157
+ custom processor.
158
+
159
+ ## Fixed
160
+
161
+ - Fixed an issue in `AWSBedrockLLMService` where timeout exceptions weren't
162
+ being detected.
163
+
164
+ - Fixed a `PipelineTask` issue that could prevent the application to exit if
165
+ `task.cancel()` was called when the task was already finished.
166
+
167
+ - Fixed an issue where local SmartTurn was not being ran in a separate thread.
168
+
169
+ ## [0.0.86] - 2025-09-24
170
+
171
+ ### Added
172
+
173
+ - Added `HeyGenTransport`. This is an integration for HeyGen Interactive
174
+ Avatar. A video service that handles audio streaming and requests HeyGen to
175
+ generate avatar video responses. (see https://www.heygen.com/). When used, the
176
+ Pipecat bot joins the same virtual room as the HeyGen Avatar and the user.
177
+
178
+ - Added support to `TwilioFrameSerializer` for `region` and `edge` settings.
179
+
180
+ - Added support for using universal `LLMContext` with:
181
+
182
+ - `LLMLogObserver`
183
+ - `GatedLLMContextAggregator` (formerly `GatedOpenAILLMContextAggregator`)
184
+ - `LangchainProcessor`
185
+ - `Mem0MemoryService`
186
+
187
+ - Added `StrandsAgentProcessor` which allows you to use the Strands Agents
188
+ framework to build your voice agents.
189
+ See https://strandsagents.com
190
+
191
+ - Added `ElevenLabsSTTService` for speech-to-text transcription.
192
+
193
+ - Added a peer connection monitor to the `SmallWebRTCConnection` that
194
+ automatically disconnects if the connection fails to establish within
195
+ the timeout (1 minute by default).
196
+
197
+ - Added memory cleanup improvements to reduce memory peaks.
198
+
199
+ - Added `on_before_process_frame`, `on_after_process_frame`,
200
+ `on_before_push_frame` and `on_after_push_frame`. These are synchronous events
201
+ that get called before and after a frame is processed or pushed. Note that
202
+ these events are synchrnous so they should ideally perform lightweight tasks
203
+ in order to not block the pipeline. See
204
+ `examples/foundational/45-before-and-after-events.py`.
205
+
206
+ - Added `on_before_leave` synchronous event to `DailyTransport`.
207
+
208
+ - Added `on_before_disconnect` synchronous event to `LiveKitTransport`.
209
+
210
+ - It is now possible to register synchronous event handlers. By default, all
211
+ event handlers are executed in a separate task. However, in some cases we want
212
+ to guarantee order of execution, for example, executing something before
213
+ disconnecting a transport.
214
+
215
+ ```python
216
+ self._register_event_handler("on_event_name", sync=True)
217
+ ```
218
+
219
+ - Added support for global location in `GoogleVertexLLMService`. The service now
220
+ supports both regional locations (e.g., "us-east4") and the "global" location
221
+ for Vertex AI endpoints. When using "global" location, the service will use
222
+ `aiplatform.googleapis.com` as the API host instead of the regional format.
223
+
224
+ - Added `on_pipeline_finished` event to `PipelineTask`. This event will get
225
+ fired when the pipeline is done running. This can be the result of a
226
+ `StopFrame`, `CancelFrame` or `EndFrame`.
227
+
228
+ ```python
229
+ @task.event_handler("on_pipeline_finished")
230
+ async def on_pipeline_finished(task: PipelineTask, frame: Frame):
231
+ ...
232
+ ```
233
+
234
+ - Added support for new RTVI `send-text` event, along with the ability to toggle
235
+ the audio response off (skip tts) while handling the new context.
236
+
237
+ ### Changed
238
+
239
+ - Updated `aiortc` to 1.13.0.
240
+
241
+ - Updated `sentry` to 2.38.0.
242
+
243
+ - `BaseOutputTransport` methods `write_audio_frame` and `write_video_frame` now
244
+ return a boolean to indicate if the transport implementation was able to write
245
+ the given frame or not.
246
+
247
+ - Updated Silero VAD model to v6.
248
+
249
+ - Updated `livekit` to 1.0.13.
250
+
251
+ - `torch` and `torchaudio` are no longer required for running Smart Turn
252
+ locally. This avoids gigabytes of dependencies being installed.
253
+
254
+ - Updated `websockets` dependency to support version 15.0. Removed deprecated
255
+ usage of `ConnectionClosed.code` and `ConnectionClosed.reason` attributes in
256
+ `AWSTranscribeSTTService` for compatibility.
257
+
258
+ - Refactored `pyproject.toml` to reduce websockets dependency repetition using
259
+ self-referencing extras. All websockets-dependent services now reference a
260
+ shared `websockets-base` extra.
261
+
262
+ ### Deprecated
263
+
264
+ - `GladiaSTTService`'s `confidence` arg is deprecated. `confidence` is no
265
+ longer needed to determine which transcription or translation frames to
266
+ emit.
267
+
268
+ - `PipelineTask` events `on_pipeline_stopped`, `on_pipeline_ended` and
269
+ `on_pipeline_cancelled` are now deprecated. Use `on_pipeline_finished`
270
+ instead.
271
+
272
+ - Support for the RTVI `append-to-context` event, in lieu of the new `send-text`
273
+ event and making way for future events like `send-image`.
274
+
275
+ ### Fixed
276
+
277
+ - Fixed an issue where the pipeline could freeze if a task cancellation never
278
+ completed because a third-party library swallowed asyncio.CancelledError. We
279
+ now apply a timeout to task cancellations to prevent these freezes. If the
280
+ timeout is reached, the system logs warnings and leaves dangling tasks behind,
281
+ which can help diagnose where cancellation is being blocked.
282
+
283
+ - Fixed an `AudioBufferProcessor` issues that was causing user audio to be
284
+ missing in stereo recordings causing bot and user overlaps.
285
+
286
+ - Fixed a `BaseOutputTransport` issue that could produce large saved
287
+ `AudioBufferProcessor` files when using an audio mixer.
288
+
289
+ - Fixed a `PipelineRunner` issue on Windows where setting up SIGINT and SIGTERM
290
+ was raising an exception.
291
+
292
+ - Fixed an issue where multiple handlers for an event would not run in parallel.
293
+
294
+ - Fixed `DailyTransport.sip_call_transfer()` to automatically use the session
295
+ ID from the `on_dialin_connected` event, when not explicitly provided. Now
296
+ supports cold transfers (from incoming dial-in calls) by automatically
297
+ tracking session IDs from connection events.
298
+
299
+ - Fixed a memory leak in `SmallWebRTCTransport`. In `aiortc`, when you receive
300
+ a `MediaStreamTrack` (audio or video), frames are produced asynchronously. If
301
+ the code never consumes these frames, they are queued in memory, causing a
302
+ memory leak.
303
+
304
+ - Fixed an issue in `AsyncAITTSService`, where `TTSTextFrames` were not being
305
+ pushed.
306
+
307
+ - Fixed an issue that would cause `push_interruption_task_frame_and_wait()` to
308
+ not wait if a previous interruption had already happened.
309
+
310
+ - Fixed a couple of bugs in `ServiceSwitcher`:
311
+
312
+ - Using multiple `ServiceSwitcher`s in a pipeline would result in an error.
313
+ - `ServiceSwitcherFrame`s (such as `ManuallySwitchServiceFrame`s) were having
314
+ an effect too early, essentially "jumping the queue" in terms of pipeline
315
+ frame ordering.
316
+
317
+ - Fixed a self-cancellation deadlock in `UserIdleProcessor` when returning
318
+ `False` from an idle callback. The task now terminates naturally instead of
319
+ attempting to cancel itself.
320
+
321
+ - Fixed an issue in `AudioBufferProcessor` where a recording is not created
322
+ when a bot speaks and user input is blocked.
323
+
324
+ - Fixed a `FastAPIWebsocketTransport` and `SmallWebRTCTransport` issue where
325
+ `on_client_disconnected` would be triggered when the bot ends the
326
+ conversation. That is, `on_client_disconnected` should only be triggered when
327
+ the remote client actually disconnects.
328
+
329
+ - Fixed an issue in `HeyGenVideoService` where the `BotStartedSpeakingFrame`
330
+ was blocked from moving through the Pipeline.
331
+
332
+ ## [0.0.85] - 2025-09-12
333
+
334
+ ### Added
335
+
336
+ - `AzureSTTService` now pushes interim transcriptions.
337
+
338
+ - Added `voice_cloning_key` to `GoogleTTSService` to support custom cloned
339
+ voices.
340
+
341
+ - Added `speaking_rate` to `GoogleTTSService.InputParams` to control the
342
+ speaking rate.
343
+
344
+ - Added a `speed` arg to `OpenAITTSService` to control the speed of the voice
345
+ response.
346
+
347
+ - Added `FrameProcessor.push_interruption_task_frame_and_wait()`. Use this
348
+ method to programatically interrupt the bot from any part of the
349
+ pipeline. This guarantees that all the processors in the pipeline are
350
+ interrupted in order (from upstream to downstream). Internally, this works by
351
+ first pushing an `InterruptionTaskFrame` upstream until it reaches the
352
+ pipeline task. The pipeline task then generates an `InterruptionFrame`, which
353
+ flows downstream through all processors. Once the `InterruptionFrame` has
354
+ reaches the processor waiting for the interruption, the function returns and
355
+ execution continues after the call. Think of it as sending an upstream request
356
+ for interruption and waiting until the acknowledgment flows back downstream.
357
+
358
+ - Added new base `TaskFrame` (which is a system frame). This is the base class
359
+ for all task frames (`EndTaskFrame`, `CancelTaskFrame`, etc.) that are meant
360
+ to be pushed upstream to reach the pipeline task.
361
+
362
+ - Expanded support for universal `LLMContext` to the AWS Bedrock LLM service.
363
+ Using the universal `LLMContext` and associated `LLMContextAggregatorPair` is
364
+ a pre-requisite for using `LLMSwitcher` to switch between LLMs at runtime.
365
+
366
+ - Added new fields to the development runner's `parse_telephony_websocket`
367
+ method in support of providing dynamic data to a bot.
368
+
369
+ - Twilio: Added a new `body` parameter, which parses the websocket message
370
+ for `customParameters`. Provide data via the `Parameter` nouns in your
371
+ TwiML to use this feature.
372
+ - Telnyx & Exotel: Both providers make the `to` and `from` phone numbers
373
+ available in the websocket messages. You can now access these numbers as
374
+ `call_data["to"]` and `call_data["from"]`.
375
+
376
+ Note: Each telephony provider offers different features. Refer to the
377
+ corresponding example in `pipecat-examples` to see how to pass custom data
378
+ to your bot.
379
+
380
+ - Added `body` to the `WebsocketRunnerArguments` as an optional parameter.
381
+ Custom `body` information can be passed from the server into the bot file via
382
+ the `bot()` method using this new parameter.
383
+
384
+ - Added video streaming support to `LiveKitTransport`.
385
+
386
+ - Added `OpenAIRealtimeLLMService` and `AzureRealtimeLLMService` which provide
387
+ access to OpenAI Realtime.
388
+
389
+ ### Changed
390
+
391
+ - `pipeline.tests.utils.run_test()` now allows passing `PipelineParams` instead
392
+ of individual parameters.
393
+
394
+ ### Removed
395
+
396
+ - Remove `VisionImageRawFrame` in favor of context frames (`LLMContextFrame` or
397
+ `OpenAILLMContextFrame`).
398
+
399
+ ### Deprecated
400
+
401
+ - `BotInterruptionFrame` is now deprecated, use `InterruptionTaskFrame` instead.
402
+
403
+ - `StartInterruptionFrame` is now deprected, use `InterruptionFrame` instead.
404
+
405
+ - Deprecate `VisionImageFrameAggregator` because `VisionImageRawFrame` has been
406
+ removed. See the `12*` examples for the new recommended replacement pattern.
407
+
408
+ - `NoisereduceFilter` is now deprecated and will be removed in a future
409
+ version. Use other audio filters like `KrispFilter` or `AICFilter`.
410
+
411
+ - Deprecated `OpenAIRealtimeBetaLLMService` and `AzureRealtimeBetaLLMService`.
412
+ Use `OpenAIRealtimeLLMService` and `AzureRealtimeLLMService`, respectively.
413
+ Each service will be removed in an upcoming version, 1.0.0.
414
+
415
+ ### Fixed
416
+
417
+ - Fixed a `BaseOutputTransport` issue that caused incorrect detection of when
418
+ the bot stopped talking while using an audio mixer.
419
+
420
+ - Fixed a `LiveKitTransport` issue where RTVI messages were not properly
421
+ encoded.
422
+
423
+ - Add additional fixups to Mistral context messages to ensure they meet
424
+ Mistral-specific requirements, avoiding Mistral "invalid request" errors.
425
+
426
+ - Fixed `DailyTransport` transcription handling to gracefully handle missing
427
+ `rawResponse` field in transcription messages, preventing KeyError crashes.
428
+
8
429
  ## [0.0.84] - 2025-09-05
9
430
 
10
431
  ### Added
@@ -1066,7 +1487,7 @@ quality and critical bugs impacting `ParallelPipelines` functionality.**
1066
1487
  - Added `session_token` parameter to `AWSNovaSonicLLMService`.
1067
1488
 
1068
1489
  - Added Gemini Multimodal Live File API for uploading, fetching, listing, and
1069
- deleting files. See `26f-gemini-multimodal-live-files-api.py` for example usage.
1490
+ deleting files. See `26f-gemini-live-files-api.py` for example usage.
1070
1491
 
1071
1492
  ### Changed
1072
1493
 
@@ -3072,7 +3493,7 @@ stt = DeepgramSTTService(..., live_options=LiveOptions(model="nova-2-general"))
3072
3493
  - Added the new modalities option and helper function to set Gemini output
3073
3494
  modalities.
3074
3495
 
3075
- - Added `examples/foundational/26d-gemini-multimodal-live-text.py` which is
3496
+ - Added `examples/foundational/26d-gemini-live-text.py` which is
3076
3497
  using Gemini as TEXT modality and using another TTS provider for TTS process.
3077
3498
 
3078
3499
  ### Changed
@@ -3259,9 +3680,9 @@ stt = DeepgramSTTService(..., live_options=LiveOptions(model="nova-2-general"))
3259
3680
  - Added new foundational examples for `GeminiMultimodalLiveLLMService`:
3260
3681
 
3261
3682
  - `26-gemini-multimodal-live.py`
3262
- - `26a-gemini-multimodal-live-transcription.py`
3263
- - `26b-gemini-multimodal-live-video.py`
3264
- - `26c-gemini-multimodal-live-video.py`
3683
+ - `26a-gemini-live-transcription.py`
3684
+ - `26b-gemini-live-video.py`
3685
+ - `26c-gemini-live-video.py`
3265
3686
 
3266
3687
  - Added `SimliVideoService`. This is an integration for Simli AI avatars.
3267
3688
  (see https://www.simli.com)