dv-pipecat-ai 0.0.74.dev623__tar.gz → 0.0.74.dev640__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.
Files changed (390) hide show
  1. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/.github/workflows/github.yml +72 -41
  2. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/.github/workflows/smart-auto-release.yml +33 -22
  3. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/PKG-INFO +1 -1
  4. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/dv_pipecat_ai.egg-info/PKG-INFO +1 -1
  5. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/serializers/convox.py +14 -1
  6. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/services/deepgram/stt.py +53 -19
  7. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/.dockerignore +0 -0
  8. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/.github/ISSUE_TEMPLATE/1-bug_report.yml +0 -0
  9. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/.github/ISSUE_TEMPLATE/2-question.yml +0 -0
  10. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/.github/ISSUE_TEMPLATE/3-feature_request.yml +0 -0
  11. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/.github/ISSUE_TEMPLATE/4-service-issue.yml +0 -0
  12. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/.github/ISSUE_TEMPLATE/5-new-service.yml +0 -0
  13. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/.github/ISSUE_TEMPLATE/6-dependency.yml +0 -0
  14. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/.github/ISSUE_TEMPLATE/7-troubleshooting.yml +0 -0
  15. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/.github/ISSUE_TEMPLATE/config.yml +0 -0
  16. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
  17. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/.github/workflows/android.yaml +0 -0
  18. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/.github/workflows/build.yaml +0 -0
  19. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/.github/workflows/coverage.yaml +0 -0
  20. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/.github/workflows/format.yaml +0 -0
  21. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/.github/workflows/promote-prod.yml +0 -0
  22. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/.github/workflows/publish.yaml +0 -0
  23. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/.github/workflows/publish_test.yaml +0 -0
  24. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/.github/workflows/set-traffic-split.yml +0 -0
  25. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/.github/workflows/tests.yaml +0 -0
  26. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/.gitignore +0 -0
  27. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/.pre-commit-config.yaml +0 -0
  28. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/.readthedocs.yaml +0 -0
  29. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/CHANGELOG.md +0 -0
  30. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/CHANGELOG.md.template +0 -0
  31. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/CLAUDE.md +0 -0
  32. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/CONTRIBUTING.md +0 -0
  33. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/Dockerfile +0 -0
  34. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/LICENSE +0 -0
  35. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/MANIFEST.in +0 -0
  36. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/README.md +0 -0
  37. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/ansible.cfg +0 -0
  38. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/ansible_deployment.sh +0 -0
  39. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/cleanup_old_containers.yml +0 -0
  40. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/codecov.yml +0 -0
  41. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/create-new-machine/ansible.cfg +0 -0
  42. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/create-new-machine/ansible_setup.sh +0 -0
  43. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/create-new-machine/inventory.ini +0 -0
  44. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/create-new-machine/replace_env.yml +0 -0
  45. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/create-new-machine/setup_playbook.yml +0 -0
  46. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/create_inventory.py +0 -0
  47. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/delete_old_dockers.sh +0 -0
  48. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/deploy.sh +0 -0
  49. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/deploy_playbook.yml +0 -0
  50. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/dev-requirements.txt +0 -0
  51. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/docker-compose.dev.yml +0 -0
  52. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/dot-env.template +0 -0
  53. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/dump_logs.yml +0 -0
  54. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/fetch_logs.yml +0 -0
  55. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/inventory.ini +0 -0
  56. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/k8s/dv-pipecat/.helmignore +0 -0
  57. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/k8s/dv-pipecat/Chart.yaml +0 -0
  58. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/k8s/dv-pipecat/templates/_helpers.tpl +0 -0
  59. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/k8s/dv-pipecat/templates/backendconfig.yaml +0 -0
  60. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/k8s/dv-pipecat/templates/deployment.yaml +0 -0
  61. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/k8s/dv-pipecat/templates/hpa.yaml +0 -0
  62. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/k8s/dv-pipecat/templates/ingress.yaml +0 -0
  63. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/k8s/dv-pipecat/templates/service.yaml +0 -0
  64. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/k8s/dv-pipecat/values-canary.yaml +0 -0
  65. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/k8s/dv-pipecat/values-prod.yaml +0 -0
  66. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/k8s/dv-pipecat/values-stage.yaml +0 -0
  67. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/k8s/dv-pipecat/values.yaml +0 -0
  68. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/k8s/istio/destination-virtualservice.yaml +0 -0
  69. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/merge-code-into-single-file.sh +0 -0
  70. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/pipecat.png +0 -0
  71. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/pyproject.toml +0 -0
  72. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/restart.sh +0 -0
  73. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/restart_playbook.yml +0 -0
  74. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/setup.cfg +0 -0
  75. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/dv_pipecat_ai.egg-info/SOURCES.txt +0 -0
  76. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/dv_pipecat_ai.egg-info/dependency_links.txt +0 -0
  77. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/dv_pipecat_ai.egg-info/requires.txt +0 -0
  78. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/dv_pipecat_ai.egg-info/top_level.txt +0 -0
  79. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/__init__.py +0 -0
  80. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/adapters/__init__.py +0 -0
  81. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/adapters/base_llm_adapter.py +0 -0
  82. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/adapters/schemas/__init__.py +0 -0
  83. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/adapters/schemas/function_schema.py +0 -0
  84. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/adapters/schemas/tools_schema.py +0 -0
  85. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/adapters/services/__init__.py +0 -0
  86. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/adapters/services/anthropic_adapter.py +0 -0
  87. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/adapters/services/aws_nova_sonic_adapter.py +0 -0
  88. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/adapters/services/bedrock_adapter.py +0 -0
  89. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/adapters/services/gemini_adapter.py +0 -0
  90. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/adapters/services/open_ai_adapter.py +0 -0
  91. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/adapters/services/open_ai_realtime_adapter.py +0 -0
  92. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/audio/__init__.py +0 -0
  93. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/audio/filters/__init__.py +0 -0
  94. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/audio/filters/base_audio_filter.py +0 -0
  95. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/audio/filters/koala_filter.py +0 -0
  96. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/audio/filters/krisp_filter.py +0 -0
  97. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/audio/filters/noisereduce_filter.py +0 -0
  98. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/audio/interruptions/__init__.py +0 -0
  99. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/audio/interruptions/base_interruption_strategy.py +0 -0
  100. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/audio/interruptions/min_words_interruption_strategy.py +0 -0
  101. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/audio/mixers/__init__.py +0 -0
  102. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/audio/mixers/base_audio_mixer.py +0 -0
  103. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/audio/mixers/soundfile_mixer.py +0 -0
  104. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/audio/resamplers/__init__.py +0 -0
  105. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/audio/resamplers/base_audio_resampler.py +0 -0
  106. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/audio/resamplers/resampy_resampler.py +0 -0
  107. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/audio/resamplers/soxr_resampler.py +0 -0
  108. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/audio/turn/__init__.py +0 -0
  109. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/audio/turn/base_turn_analyzer.py +0 -0
  110. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/audio/turn/smart_turn/__init__.py +0 -0
  111. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/audio/turn/smart_turn/base_smart_turn.py +0 -0
  112. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/audio/turn/smart_turn/fal_smart_turn.py +0 -0
  113. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/audio/turn/smart_turn/http_smart_turn.py +0 -0
  114. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/audio/turn/smart_turn/local_coreml_smart_turn.py +0 -0
  115. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/audio/turn/smart_turn/local_smart_turn.py +0 -0
  116. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/audio/utils.py +0 -0
  117. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/audio/vad/__init__.py +0 -0
  118. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/audio/vad/data/__init__.py +0 -0
  119. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/audio/vad/data/silero_vad.onnx +0 -0
  120. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/audio/vad/silero.py +0 -0
  121. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/audio/vad/vad_analyzer.py +0 -0
  122. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/clocks/__init__.py +0 -0
  123. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/clocks/base_clock.py +0 -0
  124. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/clocks/system_clock.py +0 -0
  125. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/examples/__init__.py +0 -0
  126. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/examples/daily_runner.py +0 -0
  127. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/examples/run.py +0 -0
  128. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/frames/__init__.py +0 -0
  129. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/frames/frames.proto +0 -0
  130. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/frames/frames.py +0 -0
  131. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/frames/protobufs/frames_pb2.py +0 -0
  132. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/metrics/__init__.py +0 -0
  133. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/metrics/metrics.py +0 -0
  134. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/observers/__init__.py +0 -0
  135. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/observers/base_observer.py +0 -0
  136. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/observers/loggers/__init__.py +0 -0
  137. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/observers/loggers/debug_log_observer.py +0 -0
  138. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/observers/loggers/llm_log_observer.py +0 -0
  139. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/observers/loggers/transcription_log_observer.py +0 -0
  140. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/observers/loggers/user_bot_latency_log_observer.py +0 -0
  141. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/observers/turn_tracking_observer.py +0 -0
  142. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/pipeline/__init__.py +0 -0
  143. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/pipeline/base_pipeline.py +0 -0
  144. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/pipeline/base_task.py +0 -0
  145. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/pipeline/parallel_pipeline.py +0 -0
  146. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/pipeline/pipeline.py +0 -0
  147. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/pipeline/runner.py +0 -0
  148. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/pipeline/sync_parallel_pipeline.py +0 -0
  149. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/pipeline/task.py +0 -0
  150. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/pipeline/task_observer.py +0 -0
  151. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/pipeline/to_be_updated/merge_pipeline.py +0 -0
  152. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/processors/__init__.py +0 -0
  153. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/processors/aggregators/__init__.py +0 -0
  154. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/processors/aggregators/dtmf_aggregator.py +0 -0
  155. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/processors/aggregators/gated.py +0 -0
  156. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/processors/aggregators/gated_openai_llm_context.py +0 -0
  157. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/processors/aggregators/llm_response.py +0 -0
  158. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/processors/aggregators/openai_llm_context.py +0 -0
  159. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/processors/aggregators/sentence.py +0 -0
  160. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/processors/aggregators/user_response.py +0 -0
  161. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/processors/aggregators/vision_image_frame.py +0 -0
  162. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/processors/async_generator.py +0 -0
  163. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/processors/audio/__init__.py +0 -0
  164. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/processors/audio/audio_buffer_processor.py +0 -0
  165. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/processors/consumer_processor.py +0 -0
  166. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/processors/dtmf_aggregator.py +0 -0
  167. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/processors/filters/__init__.py +0 -0
  168. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/processors/filters/frame_filter.py +0 -0
  169. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/processors/filters/function_filter.py +0 -0
  170. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/processors/filters/identity_filter.py +0 -0
  171. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/processors/filters/null_filter.py +0 -0
  172. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/processors/filters/stt_mute_filter.py +0 -0
  173. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/processors/filters/wake_check_filter.py +0 -0
  174. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/processors/filters/wake_notifier_filter.py +0 -0
  175. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/processors/frame_processor.py +0 -0
  176. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/processors/frameworks/__init__.py +0 -0
  177. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/processors/frameworks/langchain.py +0 -0
  178. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/processors/frameworks/rtvi.py +0 -0
  179. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/processors/gstreamer/__init__.py +0 -0
  180. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/processors/gstreamer/pipeline_source.py +0 -0
  181. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/processors/idle_frame_processor.py +0 -0
  182. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/processors/logger.py +0 -0
  183. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/processors/metrics/__init__.py +0 -0
  184. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/processors/metrics/frame_processor_metrics.py +0 -0
  185. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/processors/metrics/sentry.py +0 -0
  186. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/processors/producer_processor.py +0 -0
  187. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/processors/text_transformer.py +0 -0
  188. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/processors/transcript_processor.py +0 -0
  189. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/processors/two_stage_user_idle_processor.py +0 -0
  190. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/processors/user_idle_processor.py +0 -0
  191. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/py.typed +0 -0
  192. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/serializers/__init__.py +0 -0
  193. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/serializers/base_serializer.py +0 -0
  194. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/serializers/exotel.py +0 -0
  195. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/serializers/genesys.py +0 -0
  196. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/serializers/livekit.py +0 -0
  197. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/serializers/plivo.py +0 -0
  198. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/serializers/protobuf.py +0 -0
  199. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/serializers/telnyx.py +0 -0
  200. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/serializers/twilio.py +0 -0
  201. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/services/__init__.py +0 -0
  202. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/services/ai_service.py +0 -0
  203. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/services/ai_services.py +0 -0
  204. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/services/anthropic/__init__.py +0 -0
  205. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/services/anthropic/llm.py +0 -0
  206. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/services/assemblyai/__init__.py +0 -0
  207. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/services/assemblyai/models.py +0 -0
  208. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/services/assemblyai/stt.py +0 -0
  209. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/services/aws/__init__.py +0 -0
  210. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/services/aws/llm.py +0 -0
  211. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/services/aws/stt.py +0 -0
  212. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/services/aws/tts.py +0 -0
  213. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/services/aws/utils.py +0 -0
  214. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/services/aws_nova_sonic/__init__.py +0 -0
  215. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/services/aws_nova_sonic/aws.py +0 -0
  216. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/services/aws_nova_sonic/context.py +0 -0
  217. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/services/aws_nova_sonic/frames.py +0 -0
  218. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/services/aws_nova_sonic/ready.wav +0 -0
  219. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/services/azure/__init__.py +0 -0
  220. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/services/azure/common.py +0 -0
  221. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/services/azure/image.py +0 -0
  222. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/services/azure/llm.py +0 -0
  223. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/services/azure/stt.py +0 -0
  224. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/services/azure/tts.py +0 -0
  225. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/services/cartesia/__init__.py +0 -0
  226. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/services/cartesia/stt.py +0 -0
  227. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/services/cartesia/tts.py +0 -0
  228. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/services/cerebras/__init__.py +0 -0
  229. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/services/cerebras/llm.py +0 -0
  230. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/services/deepgram/__init__.py +0 -0
  231. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/services/deepgram/tts.py +0 -0
  232. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/services/deepseek/__init__.py +0 -0
  233. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/services/deepseek/llm.py +0 -0
  234. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/services/elevenlabs/__init__.py +0 -0
  235. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/services/elevenlabs/tts.py +0 -0
  236. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/services/fal/__init__.py +0 -0
  237. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/services/fal/image.py +0 -0
  238. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/services/fal/stt.py +0 -0
  239. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/services/fireworks/__init__.py +0 -0
  240. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/services/fireworks/llm.py +0 -0
  241. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/services/fish/__init__.py +0 -0
  242. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/services/fish/tts.py +0 -0
  243. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/services/gemini_multimodal_live/__init__.py +0 -0
  244. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/services/gemini_multimodal_live/events.py +0 -0
  245. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/services/gemini_multimodal_live/gemini.py +0 -0
  246. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/services/gladia/__init__.py +0 -0
  247. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/services/gladia/config.py +0 -0
  248. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/services/gladia/stt.py +0 -0
  249. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/services/google/__init__.py +0 -0
  250. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/services/google/frames.py +0 -0
  251. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/services/google/google.py +0 -0
  252. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/services/google/image.py +0 -0
  253. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/services/google/llm.py +0 -0
  254. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/services/google/llm_openai.py +0 -0
  255. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/services/google/llm_vertex.py +0 -0
  256. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/services/google/rtvi.py +0 -0
  257. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/services/google/stt.py +0 -0
  258. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/services/google/test-google-chirp.py +0 -0
  259. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/services/google/tts.py +0 -0
  260. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/services/grok/__init__.py +0 -0
  261. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/services/grok/llm.py +0 -0
  262. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/services/groq/__init__.py +0 -0
  263. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/services/groq/llm.py +0 -0
  264. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/services/groq/stt.py +0 -0
  265. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/services/groq/tts.py +0 -0
  266. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/services/image_service.py +0 -0
  267. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/services/llm_service.py +0 -0
  268. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/services/lmnt/__init__.py +0 -0
  269. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/services/lmnt/tts.py +0 -0
  270. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/services/mcp_service.py +0 -0
  271. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/services/mem0/__init__.py +0 -0
  272. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/services/mem0/memory.py +0 -0
  273. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/services/minimax/__init__.py +0 -0
  274. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/services/minimax/tts.py +0 -0
  275. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/services/moondream/__init__.py +0 -0
  276. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/services/moondream/vision.py +0 -0
  277. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/services/neuphonic/__init__.py +0 -0
  278. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/services/neuphonic/tts.py +0 -0
  279. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/services/nim/__init__.py +0 -0
  280. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/services/nim/llm.py +0 -0
  281. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/services/ollama/__init__.py +0 -0
  282. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/services/ollama/llm.py +0 -0
  283. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/services/openai/__init__.py +0 -0
  284. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/services/openai/base_llm.py +0 -0
  285. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/services/openai/image.py +0 -0
  286. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/services/openai/llm.py +0 -0
  287. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/services/openai/stt.py +0 -0
  288. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/services/openai/tts.py +0 -0
  289. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/services/openai.py +0 -0
  290. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/services/openai_realtime_beta/__init__.py +0 -0
  291. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/services/openai_realtime_beta/azure.py +0 -0
  292. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/services/openai_realtime_beta/context.py +0 -0
  293. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/services/openai_realtime_beta/events.py +0 -0
  294. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/services/openai_realtime_beta/frames.py +0 -0
  295. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/services/openai_realtime_beta/openai.py +0 -0
  296. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/services/openpipe/__init__.py +0 -0
  297. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/services/openpipe/llm.py +0 -0
  298. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/services/openrouter/__init__.py +0 -0
  299. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/services/openrouter/llm.py +0 -0
  300. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/services/perplexity/__init__.py +0 -0
  301. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/services/perplexity/llm.py +0 -0
  302. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/services/piper/__init__.py +0 -0
  303. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/services/piper/tts.py +0 -0
  304. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/services/playht/__init__.py +0 -0
  305. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/services/playht/tts.py +0 -0
  306. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/services/qwen/__init__.py +0 -0
  307. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/services/qwen/llm.py +0 -0
  308. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/services/rime/__init__.py +0 -0
  309. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/services/rime/tts.py +0 -0
  310. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/services/riva/__init__.py +0 -0
  311. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/services/riva/stt.py +0 -0
  312. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/services/riva/tts.py +0 -0
  313. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/services/sambanova/__init__.py +0 -0
  314. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/services/sambanova/llm.py +0 -0
  315. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/services/sambanova/stt.py +0 -0
  316. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/services/sarvam/__init__.py +0 -0
  317. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/services/sarvam/tts.py +0 -0
  318. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/services/simli/__init__.py +0 -0
  319. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/services/simli/video.py +0 -0
  320. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/services/stt_service.py +0 -0
  321. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/services/tavus/__init__.py +0 -0
  322. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/services/tavus/video.py +0 -0
  323. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/services/together/__init__.py +0 -0
  324. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/services/together/llm.py +0 -0
  325. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/services/tts_service.py +0 -0
  326. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/services/ultravox/__init__.py +0 -0
  327. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/services/ultravox/stt.py +0 -0
  328. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/services/vision_service.py +0 -0
  329. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/services/websocket_service.py +0 -0
  330. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/services/whisper/__init__.py +0 -0
  331. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/services/whisper/base_stt.py +0 -0
  332. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/services/whisper/stt.py +0 -0
  333. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/services/xtts/__init__.py +0 -0
  334. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/services/xtts/tts.py +0 -0
  335. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/sync/__init__.py +0 -0
  336. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/sync/base_notifier.py +0 -0
  337. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/sync/event_notifier.py +0 -0
  338. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/tests/__init__.py +0 -0
  339. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/tests/utils.py +0 -0
  340. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/transcriptions/__init__.py +0 -0
  341. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/transcriptions/language.py +0 -0
  342. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/transports/__init__.py +0 -0
  343. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/transports/base_input.py +0 -0
  344. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/transports/base_output.py +0 -0
  345. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/transports/base_transport.py +0 -0
  346. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/transports/local/__init__.py +0 -0
  347. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/transports/local/audio.py +0 -0
  348. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/transports/local/tk.py +0 -0
  349. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/transports/network/__init__.py +0 -0
  350. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/transports/network/fastapi_websocket.py +0 -0
  351. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/transports/network/small_webrtc.py +0 -0
  352. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/transports/network/webrtc_connection.py +0 -0
  353. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/transports/network/websocket_client.py +0 -0
  354. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/transports/network/websocket_server.py +0 -0
  355. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/transports/services/__init__.py +0 -0
  356. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/transports/services/daily.py +0 -0
  357. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/transports/services/helpers/__init__.py +0 -0
  358. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/transports/services/helpers/daily_rest.py +0 -0
  359. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/transports/services/livekit.py +0 -0
  360. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/transports/services/tavus.py +0 -0
  361. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/utils/__init__.py +0 -0
  362. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/utils/asyncio/__init__.py +0 -0
  363. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/utils/asyncio/task_manager.py +0 -0
  364. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/utils/asyncio/watchdog_async_iterator.py +0 -0
  365. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/utils/asyncio/watchdog_event.py +0 -0
  366. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/utils/asyncio/watchdog_priority_queue.py +0 -0
  367. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/utils/asyncio/watchdog_queue.py +0 -0
  368. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/utils/base_object.py +0 -0
  369. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/utils/logger_config.py +0 -0
  370. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/utils/network.py +0 -0
  371. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/utils/string.py +0 -0
  372. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/utils/text/__init__.py +0 -0
  373. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/utils/text/base_text_aggregator.py +0 -0
  374. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/utils/text/base_text_filter.py +0 -0
  375. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/utils/text/markdown_text_filter.py +0 -0
  376. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/utils/text/pattern_pair_aggregator.py +0 -0
  377. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/utils/text/simple_text_aggregator.py +0 -0
  378. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/utils/text/skip_tags_aggregator.py +0 -0
  379. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/utils/time.py +0 -0
  380. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/utils/tracing/__init__.py +0 -0
  381. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/utils/tracing/class_decorators.py +0 -0
  382. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/utils/tracing/conversation_context_provider.py +0 -0
  383. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/utils/tracing/service_attributes.py +0 -0
  384. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/utils/tracing/service_decorators.py +0 -0
  385. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/utils/tracing/setup.py +0 -0
  386. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/utils/tracing/turn_context_provider.py +0 -0
  387. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/utils/tracing/turn_trace_observer.py +0 -0
  388. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/src/pipecat/utils/utils.py +0 -0
  389. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/stop_container.yml +0 -0
  390. {dv_pipecat_ai-0.0.74.dev623 → dv_pipecat_ai-0.0.74.dev640}/test-requirements.txt +0 -0
@@ -31,57 +31,88 @@ jobs:
31
31
  id-token: write # Required for Workload Identity Federation
32
32
 
33
33
  steps:
34
+ - name: Wait for auto-release to complete
35
+ if: github.event_name == 'push'
36
+ run: |
37
+ echo "⏳ Waiting for auto-release workflow to complete..."
38
+
39
+ # Wait up to 10 minutes for the auto-release workflow
40
+ MAX_WAIT_TIME=600 # 10 minutes in seconds
41
+ WAIT_INTERVAL=30 # Check every 30 seconds
42
+ ELAPSED_TIME=0
43
+
44
+ while [ $ELAPSED_TIME -lt $MAX_WAIT_TIME ]; do
45
+ # Check if any workflow runs are still in progress for this commit
46
+ RUNNING_WORKFLOWS=$(gh api /repos/${{ github.repository }}/actions/runs \
47
+ --jq '.workflow_runs[] | select(.head_sha == "${{ github.sha }}" and .name == "Smart Auto-Release on PR Merge" and .status == "in_progress") | .id' | wc -l)
48
+
49
+ if [ "$RUNNING_WORKFLOWS" -eq 0 ]; then
50
+ echo "✅ Auto-release workflow completed for commit ${{ github.sha }}"
51
+ break
52
+ fi
53
+
54
+ echo "🔄 Auto-release still running, waiting ${WAIT_INTERVAL}s... (${ELAPSED_TIME}s elapsed)"
55
+ sleep $WAIT_INTERVAL
56
+ ELAPSED_TIME=$((ELAPSED_TIME + WAIT_INTERVAL))
57
+ done
58
+
59
+ if [ $ELAPSED_TIME -ge $MAX_WAIT_TIME ]; then
60
+ echo "⚠️ Timeout waiting for auto-release workflow, proceeding anyway..."
61
+ fi
62
+ env:
63
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
64
+
34
65
  - name: Checkout code
35
66
  uses: actions/checkout@v4
36
67
 
37
- # - name: Set up Python
38
- # uses: actions/setup-python@v4
39
- # with:
40
- # python-version: '3.10'
68
+ - name: Set up Python
69
+ uses: actions/setup-python@v4
70
+ with:
71
+ python-version: '3.10'
41
72
 
42
- # - name: Install Python dependencies
43
- # run: |
44
- # python -m pip install --upgrade pip
45
- # pip install requests packaging
73
+ - name: Install Python dependencies
74
+ run: |
75
+ python -m pip install --upgrade pip
76
+ pip install requests packaging
46
77
 
47
- # - name: Verify PyPI package availability
48
- # run: |
49
- # echo "🔍 Verifying PyPI package availability..."
78
+ - name: Verify PyPI package availability
79
+ run: |
80
+ echo "🔍 Verifying PyPI package availability..."
50
81
 
51
- # # Get version from remote-requirements.txt
52
- # PIPECAT_VERSION=$(grep "dv-pipecat-ai" examples/ringg-chatbot/remote-requirements.txt | sed -n 's/.*==\([^]]*\).*/\1/p')
53
- # echo "📦 Required pipecat version: $PIPECAT_VERSION"
82
+ # Get version from remote-requirements.txt
83
+ PIPECAT_VERSION=$(grep "dv-pipecat-ai" examples/ringg-chatbot/remote-requirements.txt | sed -n 's/.*==\([^]]*\).*/\1/p')
84
+ echo "📦 Required pipecat version: $PIPECAT_VERSION"
54
85
 
55
- # # Verify package is available on PyPI with retry logic
56
- # MAX_ATTEMPTS=30
57
- # ATTEMPT=1
58
- # PACKAGE_AVAILABLE=false
86
+ # Verify package is available on PyPI with retry logic
87
+ MAX_ATTEMPTS=30
88
+ ATTEMPT=1
89
+ PACKAGE_AVAILABLE=false
59
90
 
60
- # while [ $ATTEMPT -le $MAX_ATTEMPTS ]; do
61
- # echo "🔍 Attempt $ATTEMPT/$MAX_ATTEMPTS: Checking PyPI for dv-pipecat-ai==$PIPECAT_VERSION"
91
+ while [ $ATTEMPT -le $MAX_ATTEMPTS ]; do
92
+ echo "🔍 Attempt $ATTEMPT/$MAX_ATTEMPTS: Checking PyPI for dv-pipecat-ai==$PIPECAT_VERSION"
62
93
 
63
- # if python scripts/check-pypi-package.py dv-pipecat-ai "$PIPECAT_VERSION"; then
64
- # PACKAGE_AVAILABLE=true
65
- # echo "✅ PyPI package verification successful!"
66
- # break
67
- # else
68
- # if [ $ATTEMPT -eq $MAX_ATTEMPTS ]; then
69
- # echo "❌ FAILED: Package dv-pipecat-ai==$PIPECAT_VERSION not available on PyPI after $MAX_ATTEMPTS attempts"
70
- # echo "🚨 This usually means:"
71
- # echo " 1. The auto-release workflow failed to publish"
72
- # echo " 2. PyPI is experiencing delays"
73
- # echo " 3. Version mismatch between requirements.txt and PyPI"
74
- # exit 1
75
- # else
76
- # WAIT_TIME=$((ATTEMPT * 10))
77
- # echo "⏳ Package not yet available, waiting ${WAIT_TIME}s before retry..."
78
- # sleep $WAIT_TIME
79
- # fi
80
- # fi
81
- # ATTEMPT=$((ATTEMPT + 1))
82
- # done
94
+ if python scripts/check-pypi-package.py dv-pipecat-ai "$PIPECAT_VERSION"; then
95
+ PACKAGE_AVAILABLE=true
96
+ echo "✅ PyPI package verification successful!"
97
+ break
98
+ else
99
+ if [ $ATTEMPT -eq $MAX_ATTEMPTS ]; then
100
+ echo "❌ FAILED: Package dv-pipecat-ai==$PIPECAT_VERSION not available on PyPI after $MAX_ATTEMPTS attempts"
101
+ echo "🚨 This usually means:"
102
+ echo " 1. The auto-release workflow failed to publish"
103
+ echo " 2. PyPI is experiencing delays"
104
+ echo " 3. Version mismatch between requirements.txt and PyPI"
105
+ exit 1
106
+ else
107
+ WAIT_TIME=$((ATTEMPT * 10))
108
+ echo "⏳ Package not yet available, waiting ${WAIT_TIME}s before retry..."
109
+ sleep $WAIT_TIME
110
+ fi
111
+ fi
112
+ ATTEMPT=$((ATTEMPT + 1))
113
+ done
83
114
 
84
- # echo "PIPECAT_VERSION=$PIPECAT_VERSION" >> $GITHUB_ENV
115
+ echo "PIPECAT_VERSION=$PIPECAT_VERSION" >> $GITHUB_ENV
85
116
 
86
117
  - name: Authenticate to GCP using Workload Identity Federation
87
118
  id: auth
@@ -101,27 +101,38 @@ jobs:
101
101
  fi
102
102
  echo "Skip reason: $SKIP_REASON"
103
103
 
104
- - name: Calculate new version
104
+ - name: Build package
105
105
  if: steps.decision.outputs.SHOULD_RELEASE == 'true'
106
- id: new-version
107
106
  run: |
108
- CURRENT_VERSION="${{ steps.versions.outputs.PYPI_VERSION }}"
109
- echo "📈 Calculating new version from: $CURRENT_VERSION"
110
-
111
- # Use helper script to increment version
112
- NEW_VERSION=$(python scripts/increment-version.py "$CURRENT_VERSION")
113
-
114
- echo "NEW_VERSION=$NEW_VERSION" >> $GITHUB_OUTPUT
115
- echo "🚀 New version will be: $NEW_VERSION"
116
-
117
- - name: Build package
118
- if: steps.decision.outputs.SHOULD_RELEASE == 'true'
119
- run: |
120
- echo "🔨 Building package..."
107
+ echo "🔨 Building package with setuptools_scm auto-versioning..."
121
108
  python -m build
122
109
  echo "✅ Package built successfully"
123
110
  ls -la dist/
124
111
 
112
+ - name: Extract actual built version
113
+ if: steps.decision.outputs.SHOULD_RELEASE == 'true'
114
+ id: extract-version
115
+ run: |
116
+ echo "📦 Extracting version from built package..."
117
+
118
+ # Get the wheel filename and extract version
119
+ WHEEL_FILE=$(ls dist/*.whl | head -1)
120
+ BUILT_VERSION=$(echo "$WHEEL_FILE" | sed -E 's/.*-([0-9]+\.[0-9]+\.[0-9]+\.dev[0-9]+)-.*/\1/')
121
+
122
+ echo "BUILT_VERSION=$BUILT_VERSION" >> $GITHUB_OUTPUT
123
+ echo "🔍 Actual built version: $BUILT_VERSION"
124
+
125
+ # Verify this matches the tar.gz file too
126
+ TAR_FILE=$(ls dist/*.tar.gz | head -1)
127
+ TAR_VERSION=$(echo "$TAR_FILE" | sed -E 's/.*-([0-9]+\.[0-9]+\.[0-9]+\.dev[0-9]+)\.tar\.gz/\1/')
128
+
129
+ if [ "$BUILT_VERSION" = "$TAR_VERSION" ]; then
130
+ echo "✅ Version consistency check passed: $BUILT_VERSION"
131
+ else
132
+ echo "❌ Version mismatch between wheel ($BUILT_VERSION) and tar ($TAR_VERSION)"
133
+ exit 1
134
+ fi
135
+
125
136
  - name: Publish to PyPI
126
137
  if: steps.decision.outputs.SHOULD_RELEASE == 'true'
127
138
  uses: pypa/gh-action-pypi-publish@release/v1
@@ -133,11 +144,11 @@ jobs:
133
144
  - name: Update remote-requirements.txt
134
145
  if: steps.decision.outputs.SHOULD_RELEASE == 'true'
135
146
  run: |
136
- NEW_VERSION="${{ steps.new-version.outputs.NEW_VERSION }}"
137
- echo "📝 Updating ${{ env.REQUIREMENTS_FILE }} with version $NEW_VERSION"
147
+ BUILT_VERSION="${{ steps.extract-version.outputs.BUILT_VERSION }}"
148
+ echo "📝 Updating ${{ env.REQUIREMENTS_FILE }} with actual built version $BUILT_VERSION"
138
149
 
139
150
  # Update the version in remote-requirements.txt
140
- sed -i.bak "s/${{ env.PACKAGE_NAME }}\[.*\]==.*/${{ env.PACKAGE_NAME }}[daily,cartesia,openai,silero,deepgram,azure,elevenlabs,google,groq,sentry,soundfile]==$NEW_VERSION/" ${{ env.REQUIREMENTS_FILE }}
151
+ sed -i.bak "s/${{ env.PACKAGE_NAME }}\[.*\]==.*/${{ env.PACKAGE_NAME }}[daily,cartesia,openai,silero,deepgram,azure,elevenlabs,google,groq,sentry,soundfile]==$BUILT_VERSION/" ${{ env.REQUIREMENTS_FILE }}
141
152
 
142
153
  # Show the change
143
154
  echo "📋 Updated requirements file:"
@@ -149,7 +160,7 @@ jobs:
149
160
 
150
161
  # Commit the change
151
162
  git add ${{ env.REQUIREMENTS_FILE }}
152
- git commit -m "🤖 Auto-bump pipecat version to $NEW_VERSION"
163
+ git commit -m "🤖 Auto-bump pipecat version to $BUILT_VERSION"
153
164
 
154
165
  # Push to dv-stage
155
166
  git push origin HEAD:dv-stage
@@ -157,10 +168,10 @@ jobs:
157
168
  - name: Success notification
158
169
  if: steps.decision.outputs.SHOULD_RELEASE == 'true'
159
170
  run: |
160
- NEW_VERSION="${{ steps.new-version.outputs.NEW_VERSION }}"
171
+ BUILT_VERSION="${{ steps.extract-version.outputs.BUILT_VERSION }}"
161
172
  echo "🎉 SUCCESS: Auto-release completed!"
162
- echo " 📦 Published: ${{ env.PACKAGE_NAME }} v$NEW_VERSION"
163
- echo " 🔗 PyPI: https://pypi.org/project/${{ env.PACKAGE_NAME }}/$NEW_VERSION/"
173
+ echo " 📦 Published: ${{ env.PACKAGE_NAME }} v$BUILT_VERSION"
174
+ echo " 🔗 PyPI: https://pypi.org/project/${{ env.PACKAGE_NAME }}/$BUILT_VERSION/"
164
175
  echo " 📝 Updated: ${{ env.REQUIREMENTS_FILE }}"
165
176
  echo " 🚀 Deployment will proceed automatically"
166
177
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dv-pipecat-ai
3
- Version: 0.0.74.dev623
3
+ Version: 0.0.74.dev640
4
4
  Summary: An open source framework for voice (and multimodal) assistants
5
5
  License-Expression: BSD-2-Clause
6
6
  Project-URL: Source, https://github.com/pipecat-ai/pipecat
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dv-pipecat-ai
3
- Version: 0.0.74.dev623
3
+ Version: 0.0.74.dev640
4
4
  Summary: An open source framework for voice (and multimodal) assistants
5
5
  License-Expression: BSD-2-Clause
6
6
  Project-URL: Source, https://github.com/pipecat-ai/pipecat
@@ -181,7 +181,12 @@ class ConVoxFrameSerializer(FrameSerializer):
181
181
  logger.error(f"Invalid JSON received from ConVox: {data}")
182
182
  return None
183
183
 
184
+ # Log all incoming events for debugging and monitoring
184
185
  event = message.get("event")
186
+ # logger.info(
187
+ # f"📥 CONVOX INCOMING EVENT: {event} - stream_id: {self._stream_id}, call_id: {self._call_id}"
188
+ # )
189
+ # logger.info(f"📥 CONVOX FULL MESSAGE: {json.dumps(message, indent=2)}")
185
190
 
186
191
  if event == "media":
187
192
  # Handle incoming audio data
@@ -238,6 +243,10 @@ class ConVoxFrameSerializer(FrameSerializer):
238
243
  logger.info(f"ConVox stream started: {message}")
239
244
  return None
240
245
 
246
+ elif event == "bridge_connected":
247
+ logger.info(f"ConVox bridge connected: {message}")
248
+ return None
249
+
241
250
  elif event == "stop":
242
251
  # Handle stream stop event
243
252
  logger.info(f"ConVox stream stopped: {message}")
@@ -249,7 +258,7 @@ class ConVoxFrameSerializer(FrameSerializer):
249
258
  logger.error(f"ConVox error: {error_msg}")
250
259
  return None
251
260
 
252
- elif event == "end_call" or event == "call_end":
261
+ elif event == "callEnd" or event == "call_end":
253
262
  logger.info("ConVox call end event received")
254
263
  self._call_ended = True
255
264
  return CancelFrame()
@@ -258,5 +267,9 @@ class ConVoxFrameSerializer(FrameSerializer):
258
267
  logger.info(f"ConVox failed event received: {message}")
259
268
  self._call_ended = True
260
269
  return CancelFrame()
270
+ # else:
271
+ # logger.warning(
272
+ # f"📥 CONVOX UNHANDLED EVENT: {event} - Full message: {json.dumps(message, indent=2)}"
273
+ # )
261
274
 
262
275
  return None
@@ -6,6 +6,7 @@
6
6
 
7
7
  """Deepgram speech-to-text service implementation."""
8
8
 
9
+ import asyncio
9
10
  import logging
10
11
  from typing import AsyncGenerator, Dict, Optional
11
12
 
@@ -113,15 +114,20 @@ class DeepgramSTTService(STTService):
113
114
  self._settings = merged_options
114
115
  self._addons = addons
115
116
 
117
+ # Connection retry settings
118
+ self._max_connect_retries = 3
119
+ self._connect_retry_delay_s = 0.1
120
+
116
121
  self._client = DeepgramClient(
117
122
  api_key,
118
123
  config=DeepgramClientOptions(
119
124
  url=base_url,
120
125
  options={
121
126
  "keepalive": "true",
127
+ "open_timeout": 3, # Max wait for only 3 seconds for the connection to establish #
122
128
  # "termination_exception_connect": True, # Enable exception propagation
123
129
  },
124
- verbose=logging.ERROR, # Enable warning level and above logging
130
+ verbose=logging.ERROR, # Enable error level and above logging
125
131
  ),
126
132
  )
127
133
 
@@ -210,27 +216,55 @@ class DeepgramSTTService(STTService):
210
216
  yield None
211
217
 
212
218
  async def _connect(self):
213
- self.logger.debug("Connecting to Deepgram")
219
+ self.logger.debug("Attempting to connect to Deepgram...")
214
220
 
215
- self._connection: AsyncListenWebSocketClient = self._client.listen.asyncwebsocket.v("1")
221
+ for attempt in range(self._max_connect_retries):
222
+ try:
223
+ # Create a new connection object for a clean attempt
224
+ self._connection: AsyncListenWebSocketClient = self._client.listen.asyncwebsocket.v(
225
+ "1"
226
+ )
216
227
 
217
- self._connection.on(
218
- LiveTranscriptionEvents(LiveTranscriptionEvents.Transcript), self._on_message
219
- )
220
- self._connection.on(LiveTranscriptionEvents(LiveTranscriptionEvents.Error), self._on_error)
228
+ # Register event handlers
229
+ self._connection.on(
230
+ LiveTranscriptionEvents(LiveTranscriptionEvents.Transcript), self._on_message
231
+ )
232
+ self._connection.on(
233
+ LiveTranscriptionEvents(LiveTranscriptionEvents.Error), self._on_error
234
+ )
221
235
 
222
- if self.vad_enabled:
223
- self._connection.on(
224
- LiveTranscriptionEvents(LiveTranscriptionEvents.SpeechStarted),
225
- self._on_speech_started,
226
- )
227
- self._connection.on(
228
- LiveTranscriptionEvents(LiveTranscriptionEvents.UtteranceEnd),
229
- self._on_utterance_end,
230
- )
231
-
232
- if not await self._connection.start(options=self._settings, addons=self._addons):
233
- self.logger.error(f"{self}: unable to connect to Deepgram")
236
+ if self.vad_enabled:
237
+ self._connection.on(
238
+ LiveTranscriptionEvents(LiveTranscriptionEvents.SpeechStarted),
239
+ self._on_speech_started,
240
+ )
241
+ self._connection.on(
242
+ LiveTranscriptionEvents(LiveTranscriptionEvents.UtteranceEnd),
243
+ self._on_utterance_end,
244
+ )
245
+
246
+ # Attempt to start the connection (timeout handled by open_timeout config)
247
+ if await self._connection.start(options=self._settings, addons=self._addons):
248
+ self.logger.info("Successfully connected to Deepgram.")
249
+ return # Exit the method on success
250
+
251
+ self.logger.warning(
252
+ f"Deepgram connection attempt {attempt + 1}/{self._max_connect_retries} failed."
253
+ )
254
+
255
+ except Exception as e:
256
+ self.logger.warning(
257
+ f"Deepgram connection attempt {attempt + 1}/{self._max_connect_retries} failed with an exception: {e}"
258
+ )
259
+
260
+ # If this is not the last attempt, wait briefly before retrying
261
+ if attempt < self._max_connect_retries - 1:
262
+ self.logger.info(f"Retrying in {self._connect_retry_delay_s} second(s)...")
263
+ await asyncio.sleep(self._connect_retry_delay_s)
264
+
265
+ self.logger.error(
266
+ f"{self}: unable to connect to Deepgram after {self._max_connect_retries} attempts."
267
+ )
234
268
 
235
269
  async def _disconnect(self):
236
270
  if self._connection.is_connected: