dv-pipecat-ai 0.0.82.dev45__tar.gz → 0.0.82.dev49__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 (461) hide show
  1. dv_pipecat_ai-0.0.82.dev49/.github/workflows/github.yml +414 -0
  2. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/PKG-INFO +1 -1
  3. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/dv_pipecat_ai.egg-info/PKG-INFO +1 -1
  4. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/dv_pipecat_ai.egg-info/SOURCES.txt +1 -0
  5. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/serializers/__init__.py +3 -1
  6. dv_pipecat_ai-0.0.82.dev49/src/pipecat/serializers/custom.py +245 -0
  7. dv_pipecat_ai-0.0.82.dev45/.github/workflows/github.yml +0 -511
  8. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/.dockerignore +0 -0
  9. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/.github/ISSUE_TEMPLATE/1-bug_report.yml +0 -0
  10. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/.github/ISSUE_TEMPLATE/2-question.yml +0 -0
  11. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/.github/ISSUE_TEMPLATE/3-feature_request.yml +0 -0
  12. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/.github/ISSUE_TEMPLATE/4-service-issue.yml +0 -0
  13. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/.github/ISSUE_TEMPLATE/5-new-service.yml +0 -0
  14. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/.github/ISSUE_TEMPLATE/6-dependency.yml +0 -0
  15. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/.github/ISSUE_TEMPLATE/7-troubleshooting.yml +0 -0
  16. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/.github/ISSUE_TEMPLATE/config.yml +0 -0
  17. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
  18. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/.github/workflows/build.yaml +0 -0
  19. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/.github/workflows/coverage.yaml +0 -0
  20. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/.github/workflows/format.yaml +0 -0
  21. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/.github/workflows/promote-prod.yml +0 -0
  22. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/.github/workflows/publish.yaml +0 -0
  23. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/.github/workflows/publish_test.yaml +0 -0
  24. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/.github/workflows/python-compatibility.yaml +0 -0
  25. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/.github/workflows/set-traffic-split.yml +0 -0
  26. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/.github/workflows/sync-quickstart.yaml +0 -0
  27. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/.github/workflows/tests.yaml +0 -0
  28. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/.gitignore +0 -0
  29. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/.pre-commit-config.yaml +0 -0
  30. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/.readthedocs.yaml +0 -0
  31. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/CHANGELOG.md +0 -0
  32. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/CHANGELOG.md.template +0 -0
  33. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/CLAUDE.md +0 -0
  34. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/CONTRIBUTING.md +0 -0
  35. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/DOCKER_BUILD_OPTIMIZATION_SUMMARY.md +0 -0
  36. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/LICENSE +0 -0
  37. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/MANIFEST.in +0 -0
  38. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/README.md +0 -0
  39. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/ansible.cfg +0 -0
  40. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/ansible_deployment.sh +0 -0
  41. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/cleanup_old_containers.yml +0 -0
  42. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/codecov.yml +0 -0
  43. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/create-new-machine/ansible.cfg +0 -0
  44. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/create-new-machine/ansible_setup.sh +0 -0
  45. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/create-new-machine/inventory.ini +0 -0
  46. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/create-new-machine/replace_env.yml +0 -0
  47. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/create-new-machine/setup_playbook.yml +0 -0
  48. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/create_inventory.py +0 -0
  49. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/delete_old_dockers.sh +0 -0
  50. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/deploy.sh +0 -0
  51. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/deploy_playbook.yml +0 -0
  52. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/docker-compose.dev.yml +0 -0
  53. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/dump_logs.yml +0 -0
  54. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/env.example +0 -0
  55. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/fetch_logs.yml +0 -0
  56. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/inventory.ini +0 -0
  57. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/k8s/dv-pipecat/.helmignore +0 -0
  58. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/k8s/dv-pipecat/Chart.yaml +0 -0
  59. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/k8s/dv-pipecat/templates/_helpers.tpl +0 -0
  60. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/k8s/dv-pipecat/templates/backendconfig.yaml +0 -0
  61. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/k8s/dv-pipecat/templates/cluster-role.yaml +0 -0
  62. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/k8s/dv-pipecat/templates/deployment.yaml +0 -0
  63. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/k8s/dv-pipecat/templates/hpa.yaml +0 -0
  64. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/k8s/dv-pipecat/templates/ingress.yaml +0 -0
  65. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/k8s/dv-pipecat/templates/keda-api-key-secret.yaml +0 -0
  66. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/k8s/dv-pipecat/templates/keda-scaledobject.yaml +0 -0
  67. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/k8s/dv-pipecat/templates/keda-trigger-auth.yaml +0 -0
  68. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/k8s/dv-pipecat/templates/pdb.yaml +0 -0
  69. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/k8s/dv-pipecat/templates/service.yaml +0 -0
  70. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/k8s/dv-pipecat/values-canary.yaml +0 -0
  71. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/k8s/dv-pipecat/values-prod.yaml +0 -0
  72. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/k8s/dv-pipecat/values-stage.yaml +0 -0
  73. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/k8s/dv-pipecat/values.yaml +0 -0
  74. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/k8s/istio/destination-virtualservice.yaml +0 -0
  75. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/merge-code-into-single-file.sh +0 -0
  76. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/pipecat.png +0 -0
  77. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/pyproject.toml +0 -0
  78. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/restart.sh +0 -0
  79. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/restart_playbook.yml +0 -0
  80. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/setup.cfg +0 -0
  81. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/dv_pipecat_ai.egg-info/dependency_links.txt +0 -0
  82. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/dv_pipecat_ai.egg-info/requires.txt +0 -0
  83. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/dv_pipecat_ai.egg-info/top_level.txt +0 -0
  84. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/__init__.py +0 -0
  85. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/adapters/__init__.py +0 -0
  86. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/adapters/base_llm_adapter.py +0 -0
  87. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/adapters/schemas/__init__.py +0 -0
  88. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/adapters/schemas/direct_function.py +0 -0
  89. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/adapters/schemas/function_schema.py +0 -0
  90. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/adapters/schemas/tools_schema.py +0 -0
  91. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/adapters/services/__init__.py +0 -0
  92. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/adapters/services/anthropic_adapter.py +0 -0
  93. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/adapters/services/aws_nova_sonic_adapter.py +0 -0
  94. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/adapters/services/bedrock_adapter.py +0 -0
  95. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/adapters/services/gemini_adapter.py +0 -0
  96. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/adapters/services/open_ai_adapter.py +0 -0
  97. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/adapters/services/open_ai_realtime_adapter.py +0 -0
  98. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/audio/__init__.py +0 -0
  99. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/audio/dtmf/__init__.py +0 -0
  100. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/audio/dtmf/dtmf-0.wav +0 -0
  101. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/audio/dtmf/dtmf-1.wav +0 -0
  102. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/audio/dtmf/dtmf-2.wav +0 -0
  103. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/audio/dtmf/dtmf-3.wav +0 -0
  104. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/audio/dtmf/dtmf-4.wav +0 -0
  105. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/audio/dtmf/dtmf-5.wav +0 -0
  106. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/audio/dtmf/dtmf-6.wav +0 -0
  107. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/audio/dtmf/dtmf-7.wav +0 -0
  108. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/audio/dtmf/dtmf-8.wav +0 -0
  109. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/audio/dtmf/dtmf-9.wav +0 -0
  110. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/audio/dtmf/dtmf-pound.wav +0 -0
  111. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/audio/dtmf/dtmf-star.wav +0 -0
  112. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/audio/dtmf/types.py +0 -0
  113. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/audio/dtmf/utils.py +0 -0
  114. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/audio/filters/__init__.py +0 -0
  115. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/audio/filters/aic_filter.py +0 -0
  116. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/audio/filters/base_audio_filter.py +0 -0
  117. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/audio/filters/koala_filter.py +0 -0
  118. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/audio/filters/krisp_filter.py +0 -0
  119. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/audio/filters/noisereduce_filter.py +0 -0
  120. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/audio/filters/pyrnn_local_filter.py +0 -0
  121. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/audio/interruptions/__init__.py +0 -0
  122. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/audio/interruptions/base_interruption_strategy.py +0 -0
  123. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/audio/interruptions/min_words_interruption_strategy.py +0 -0
  124. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/audio/mixers/__init__.py +0 -0
  125. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/audio/mixers/base_audio_mixer.py +0 -0
  126. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/audio/mixers/soundfile_mixer.py +0 -0
  127. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/audio/resamplers/__init__.py +0 -0
  128. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/audio/resamplers/base_audio_resampler.py +0 -0
  129. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/audio/resamplers/resampy_resampler.py +0 -0
  130. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/audio/resamplers/soxr_resampler.py +0 -0
  131. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/audio/resamplers/soxr_stream_resampler.py +0 -0
  132. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/audio/turn/__init__.py +0 -0
  133. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/audio/turn/base_turn_analyzer.py +0 -0
  134. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/audio/turn/smart_turn/__init__.py +0 -0
  135. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/audio/turn/smart_turn/base_smart_turn.py +0 -0
  136. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/audio/turn/smart_turn/fal_smart_turn.py +0 -0
  137. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/audio/turn/smart_turn/http_smart_turn.py +0 -0
  138. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/audio/turn/smart_turn/local_coreml_smart_turn.py +0 -0
  139. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/audio/turn/smart_turn/local_smart_turn.py +0 -0
  140. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/audio/turn/smart_turn/local_smart_turn_v2.py +0 -0
  141. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/audio/utils.py +0 -0
  142. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/audio/vad/__init__.py +0 -0
  143. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/audio/vad/data/__init__.py +0 -0
  144. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/audio/vad/data/silero_vad.onnx +0 -0
  145. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/audio/vad/data/silero_vad_v2.onnx +0 -0
  146. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/audio/vad/silero.py +0 -0
  147. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/audio/vad/vad_analyzer.py +0 -0
  148. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/clocks/__init__.py +0 -0
  149. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/clocks/base_clock.py +0 -0
  150. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/clocks/system_clock.py +0 -0
  151. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/extensions/__init__.py +0 -0
  152. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/extensions/ivr/__init__.py +0 -0
  153. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/extensions/ivr/ivr_navigator.py +0 -0
  154. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/extensions/voicemail/__init__.py +0 -0
  155. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/extensions/voicemail/voicemail_detector.py +0 -0
  156. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/frames/__init__.py +0 -0
  157. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/frames/frames.proto +0 -0
  158. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/frames/frames.py +0 -0
  159. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/frames/protobufs/frames_pb2.py +0 -0
  160. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/metrics/__init__.py +0 -0
  161. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/metrics/metrics.py +0 -0
  162. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/observers/__init__.py +0 -0
  163. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/observers/base_observer.py +0 -0
  164. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/observers/loggers/__init__.py +0 -0
  165. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/observers/loggers/debug_log_observer.py +0 -0
  166. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/observers/loggers/llm_log_observer.py +0 -0
  167. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/observers/loggers/transcription_log_observer.py +0 -0
  168. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/observers/loggers/user_bot_latency_log_observer.py +0 -0
  169. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/observers/turn_tracking_observer.py +0 -0
  170. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/pipeline/__init__.py +0 -0
  171. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/pipeline/base_pipeline.py +0 -0
  172. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/pipeline/base_task.py +0 -0
  173. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/pipeline/llm_switcher.py +0 -0
  174. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/pipeline/parallel_pipeline.py +0 -0
  175. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/pipeline/pipeline.py +0 -0
  176. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/pipeline/runner.py +0 -0
  177. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/pipeline/service_switcher.py +0 -0
  178. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/pipeline/sync_parallel_pipeline.py +0 -0
  179. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/pipeline/task.py +0 -0
  180. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/pipeline/task_observer.py +0 -0
  181. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/pipeline/to_be_updated/merge_pipeline.py +0 -0
  182. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/processors/__init__.py +0 -0
  183. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/processors/aggregators/__init__.py +0 -0
  184. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/processors/aggregators/dtmf_aggregator.py +0 -0
  185. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/processors/aggregators/gated.py +0 -0
  186. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/processors/aggregators/gated_openai_llm_context.py +0 -0
  187. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/processors/aggregators/llm_context.py +0 -0
  188. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/processors/aggregators/llm_response.py +0 -0
  189. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/processors/aggregators/llm_response_universal.py +0 -0
  190. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/processors/aggregators/openai_llm_context.py +0 -0
  191. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/processors/aggregators/sentence.py +0 -0
  192. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/processors/aggregators/user_response.py +0 -0
  193. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/processors/aggregators/vision_image_frame.py +0 -0
  194. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/processors/async_generator.py +0 -0
  195. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/processors/audio/__init__.py +0 -0
  196. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/processors/audio/audio_buffer_processor.py +0 -0
  197. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/processors/consumer_processor.py +0 -0
  198. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/processors/dtmf_aggregator.py +0 -0
  199. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/processors/filters/__init__.py +0 -0
  200. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/processors/filters/frame_filter.py +0 -0
  201. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/processors/filters/function_filter.py +0 -0
  202. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/processors/filters/identity_filter.py +0 -0
  203. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/processors/filters/null_filter.py +0 -0
  204. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/processors/filters/stt_mute_filter.py +0 -0
  205. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/processors/filters/wake_check_filter.py +0 -0
  206. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/processors/filters/wake_notifier_filter.py +0 -0
  207. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/processors/frame_processor.py +0 -0
  208. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/processors/frameworks/__init__.py +0 -0
  209. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/processors/frameworks/langchain.py +0 -0
  210. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/processors/frameworks/rtvi.py +0 -0
  211. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/processors/gstreamer/__init__.py +0 -0
  212. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/processors/gstreamer/pipeline_source.py +0 -0
  213. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/processors/idle_frame_processor.py +0 -0
  214. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/processors/logger.py +0 -0
  215. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/processors/metrics/__init__.py +0 -0
  216. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/processors/metrics/frame_processor_metrics.py +0 -0
  217. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/processors/metrics/sentry.py +0 -0
  218. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/processors/producer_processor.py +0 -0
  219. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/processors/text_transformer.py +0 -0
  220. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/processors/transcript_processor.py +0 -0
  221. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/processors/two_stage_user_idle_processor.py +0 -0
  222. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/processors/user_idle_processor.py +0 -0
  223. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/py.typed +0 -0
  224. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/runner/__init__.py +0 -0
  225. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/runner/daily.py +0 -0
  226. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/runner/livekit.py +0 -0
  227. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/runner/run.py +0 -0
  228. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/runner/types.py +0 -0
  229. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/runner/utils.py +0 -0
  230. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/serializers/asterisk.py +0 -0
  231. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/serializers/base_serializer.py +0 -0
  232. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/serializers/convox.py +0 -0
  233. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/serializers/exotel.py +0 -0
  234. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/serializers/livekit.py +0 -0
  235. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/serializers/plivo.py +0 -0
  236. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/serializers/protobuf.py +0 -0
  237. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/serializers/telnyx.py +0 -0
  238. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/serializers/twilio.py +0 -0
  239. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/services/__init__.py +0 -0
  240. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/services/ai_service.py +0 -0
  241. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/services/ai_services.py +0 -0
  242. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/services/anthropic/__init__.py +0 -0
  243. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/services/anthropic/llm.py +0 -0
  244. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/services/assemblyai/__init__.py +0 -0
  245. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/services/assemblyai/models.py +0 -0
  246. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/services/assemblyai/stt.py +0 -0
  247. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/services/asyncai/__init__.py +0 -0
  248. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/services/asyncai/tts.py +0 -0
  249. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/services/aws/__init__.py +0 -0
  250. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/services/aws/llm.py +0 -0
  251. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/services/aws/stt.py +0 -0
  252. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/services/aws/tts.py +0 -0
  253. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/services/aws/utils.py +0 -0
  254. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/services/aws_nova_sonic/__init__.py +0 -0
  255. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/services/aws_nova_sonic/aws.py +0 -0
  256. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/services/aws_nova_sonic/context.py +0 -0
  257. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/services/aws_nova_sonic/frames.py +0 -0
  258. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/services/aws_nova_sonic/ready.wav +0 -0
  259. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/services/azure/__init__.py +0 -0
  260. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/services/azure/common.py +0 -0
  261. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/services/azure/image.py +0 -0
  262. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/services/azure/llm.py +0 -0
  263. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/services/azure/stt.py +0 -0
  264. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/services/azure/tts.py +0 -0
  265. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/services/cartesia/__init__.py +0 -0
  266. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/services/cartesia/stt.py +0 -0
  267. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/services/cartesia/tts.py +0 -0
  268. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/services/cerebras/__init__.py +0 -0
  269. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/services/cerebras/llm.py +0 -0
  270. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/services/deepgram/__init__.py +0 -0
  271. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/services/deepgram/stt.py +0 -0
  272. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/services/deepgram/tts.py +0 -0
  273. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/services/deepseek/__init__.py +0 -0
  274. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/services/deepseek/llm.py +0 -0
  275. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/services/elevenlabs/__init__.py +0 -0
  276. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/services/elevenlabs/stt.py +0 -0
  277. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/services/elevenlabs/tts.py +0 -0
  278. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/services/fal/__init__.py +0 -0
  279. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/services/fal/image.py +0 -0
  280. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/services/fal/stt.py +0 -0
  281. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/services/fireworks/__init__.py +0 -0
  282. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/services/fireworks/llm.py +0 -0
  283. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/services/fish/__init__.py +0 -0
  284. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/services/fish/tts.py +0 -0
  285. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/services/gemini_multimodal_live/__init__.py +0 -0
  286. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/services/gemini_multimodal_live/events.py +0 -0
  287. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/services/gemini_multimodal_live/file_api.py +0 -0
  288. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/services/gemini_multimodal_live/gemini.py +0 -0
  289. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/services/gladia/__init__.py +0 -0
  290. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/services/gladia/config.py +0 -0
  291. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/services/gladia/stt.py +0 -0
  292. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/services/google/__init__.py +0 -0
  293. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/services/google/frames.py +0 -0
  294. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/services/google/google.py +0 -0
  295. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/services/google/image.py +0 -0
  296. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/services/google/llm.py +0 -0
  297. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/services/google/llm_openai.py +0 -0
  298. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/services/google/llm_vertex.py +0 -0
  299. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/services/google/rtvi.py +0 -0
  300. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/services/google/stt.py +0 -0
  301. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/services/google/tts.py +0 -0
  302. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/services/grok/__init__.py +0 -0
  303. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/services/grok/llm.py +0 -0
  304. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/services/groq/__init__.py +0 -0
  305. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/services/groq/llm.py +0 -0
  306. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/services/groq/stt.py +0 -0
  307. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/services/groq/tts.py +0 -0
  308. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/services/hamsa/__init__.py +0 -0
  309. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/services/hamsa/stt.py +0 -0
  310. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/services/heygen/__init__.py +0 -0
  311. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/services/heygen/api.py +0 -0
  312. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/services/heygen/client.py +0 -0
  313. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/services/heygen/video.py +0 -0
  314. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/services/image_service.py +0 -0
  315. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/services/inworld/__init__.py +0 -0
  316. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/services/inworld/tts.py +0 -0
  317. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/services/llm_service.py +0 -0
  318. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/services/lmnt/__init__.py +0 -0
  319. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/services/lmnt/tts.py +0 -0
  320. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/services/mcp_service.py +0 -0
  321. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/services/mem0/__init__.py +0 -0
  322. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/services/mem0/memory.py +0 -0
  323. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/services/minimax/__init__.py +0 -0
  324. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/services/minimax/tts.py +0 -0
  325. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/services/mistral/__init__.py +0 -0
  326. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/services/mistral/llm.py +0 -0
  327. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/services/moondream/__init__.py +0 -0
  328. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/services/moondream/vision.py +0 -0
  329. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/services/neuphonic/__init__.py +0 -0
  330. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/services/neuphonic/tts.py +0 -0
  331. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/services/nim/__init__.py +0 -0
  332. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/services/nim/llm.py +0 -0
  333. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/services/ollama/__init__.py +0 -0
  334. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/services/ollama/llm.py +0 -0
  335. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/services/openai/__init__.py +0 -0
  336. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/services/openai/base_llm.py +0 -0
  337. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/services/openai/image.py +0 -0
  338. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/services/openai/llm.py +0 -0
  339. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/services/openai/stt.py +0 -0
  340. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/services/openai/tts.py +0 -0
  341. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/services/openai_realtime_beta/__init__.py +0 -0
  342. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/services/openai_realtime_beta/azure.py +0 -0
  343. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/services/openai_realtime_beta/context.py +0 -0
  344. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/services/openai_realtime_beta/events.py +0 -0
  345. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/services/openai_realtime_beta/frames.py +0 -0
  346. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/services/openai_realtime_beta/openai.py +0 -0
  347. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/services/openpipe/__init__.py +0 -0
  348. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/services/openpipe/llm.py +0 -0
  349. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/services/openrouter/__init__.py +0 -0
  350. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/services/openrouter/llm.py +0 -0
  351. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/services/perplexity/__init__.py +0 -0
  352. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/services/perplexity/llm.py +0 -0
  353. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/services/piper/__init__.py +0 -0
  354. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/services/piper/tts.py +0 -0
  355. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/services/playht/__init__.py +0 -0
  356. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/services/playht/tts.py +0 -0
  357. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/services/qwen/__init__.py +0 -0
  358. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/services/qwen/llm.py +0 -0
  359. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/services/rime/__init__.py +0 -0
  360. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/services/rime/tts.py +0 -0
  361. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/services/riva/__init__.py +0 -0
  362. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/services/riva/stt.py +0 -0
  363. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/services/riva/tts.py +0 -0
  364. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/services/sambanova/__init__.py +0 -0
  365. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/services/sambanova/llm.py +0 -0
  366. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/services/sambanova/stt.py +0 -0
  367. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/services/sarvam/__init__.py +0 -0
  368. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/services/sarvam/tts.py +0 -0
  369. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/services/simli/__init__.py +0 -0
  370. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/services/simli/video.py +0 -0
  371. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/services/soniox/__init__.py +0 -0
  372. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/services/soniox/stt.py +0 -0
  373. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/services/speechmatics/__init__.py +0 -0
  374. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/services/speechmatics/stt.py +0 -0
  375. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/services/stt_service.py +0 -0
  376. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/services/tavus/__init__.py +0 -0
  377. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/services/tavus/video.py +0 -0
  378. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/services/together/__init__.py +0 -0
  379. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/services/together/llm.py +0 -0
  380. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/services/tts_service.py +0 -0
  381. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/services/ultravox/__init__.py +0 -0
  382. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/services/ultravox/stt.py +0 -0
  383. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/services/vision_service.py +0 -0
  384. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/services/vistaar/__init__.py +0 -0
  385. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/services/vistaar/llm.py +0 -0
  386. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/services/websocket_service.py +0 -0
  387. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/services/whisper/__init__.py +0 -0
  388. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/services/whisper/base_stt.py +0 -0
  389. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/services/whisper/stt.py +0 -0
  390. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/services/xtts/__init__.py +0 -0
  391. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/services/xtts/tts.py +0 -0
  392. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/sync/__init__.py +0 -0
  393. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/sync/base_notifier.py +0 -0
  394. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/sync/event_notifier.py +0 -0
  395. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/tests/__init__.py +0 -0
  396. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/tests/utils.py +0 -0
  397. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/transcriptions/__init__.py +0 -0
  398. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/transcriptions/language.py +0 -0
  399. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/transports/__init__.py +0 -0
  400. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/transports/base_input.py +0 -0
  401. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/transports/base_output.py +0 -0
  402. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/transports/base_transport.py +0 -0
  403. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/transports/daily/__init__.py +0 -0
  404. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/transports/daily/transport.py +0 -0
  405. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/transports/daily/utils.py +0 -0
  406. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/transports/livekit/__init__.py +0 -0
  407. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/transports/livekit/transport.py +0 -0
  408. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/transports/local/__init__.py +0 -0
  409. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/transports/local/audio.py +0 -0
  410. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/transports/local/tk.py +0 -0
  411. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/transports/network/__init__.py +0 -0
  412. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/transports/network/fastapi_websocket.py +0 -0
  413. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/transports/network/small_webrtc.py +0 -0
  414. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/transports/network/webrtc_connection.py +0 -0
  415. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/transports/network/websocket_client.py +0 -0
  416. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/transports/network/websocket_server.py +0 -0
  417. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/transports/services/__init__.py +0 -0
  418. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/transports/services/daily.py +0 -0
  419. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/transports/services/helpers/__init__.py +0 -0
  420. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/transports/services/helpers/daily_rest.py +0 -0
  421. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/transports/services/livekit.py +0 -0
  422. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/transports/services/tavus.py +0 -0
  423. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/transports/smallwebrtc/__init__.py +0 -0
  424. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/transports/smallwebrtc/connection.py +0 -0
  425. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/transports/smallwebrtc/transport.py +0 -0
  426. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/transports/tavus/__init__.py +0 -0
  427. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/transports/tavus/transport.py +0 -0
  428. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/transports/websocket/__init__.py +0 -0
  429. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/transports/websocket/client.py +0 -0
  430. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/transports/websocket/fastapi.py +0 -0
  431. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/transports/websocket/server.py +0 -0
  432. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/transports/whatsapp/__init__.py +0 -0
  433. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/transports/whatsapp/api.py +0 -0
  434. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/transports/whatsapp/client.py +0 -0
  435. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/utils/__init__.py +0 -0
  436. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/utils/asyncio/__init__.py +0 -0
  437. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/utils/asyncio/task_manager.py +0 -0
  438. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/utils/base_object.py +0 -0
  439. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/utils/logger_config.py +0 -0
  440. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/utils/network.py +0 -0
  441. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/utils/string.py +0 -0
  442. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/utils/text/__init__.py +0 -0
  443. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/utils/text/base_text_aggregator.py +0 -0
  444. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/utils/text/base_text_filter.py +0 -0
  445. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/utils/text/markdown_text_filter.py +0 -0
  446. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/utils/text/pattern_pair_aggregator.py +0 -0
  447. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/utils/text/simple_text_aggregator.py +0 -0
  448. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/utils/text/skip_tags_aggregator.py +0 -0
  449. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/utils/time.py +0 -0
  450. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/utils/tracing/__init__.py +0 -0
  451. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/utils/tracing/class_decorators.py +0 -0
  452. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/utils/tracing/conversation_context_provider.py +0 -0
  453. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/utils/tracing/service_attributes.py +0 -0
  454. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/utils/tracing/service_decorators.py +0 -0
  455. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/utils/tracing/setup.py +0 -0
  456. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/utils/tracing/turn_context_provider.py +0 -0
  457. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/utils/tracing/turn_trace_observer.py +0 -0
  458. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/src/pipecat/utils/utils.py +0 -0
  459. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/stop_container.yml +0 -0
  460. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/test_elevenlabs_stt_segmented.py +0 -0
  461. {dv_pipecat_ai-0.0.82.dev45 → dv_pipecat_ai-0.0.82.dev49}/uv.lock +0 -0
@@ -0,0 +1,414 @@
1
+ name: Build and Deploy to Kubernetes
2
+
3
+ on:
4
+ push:
5
+ branches:
6
+ - dv-stage # Trigger only on pushes to this specific branch.
7
+ - dv-main
8
+ - test/deployment_cache
9
+
10
+ env:
11
+ PROJECT_ID: desivocalprod01
12
+ REGION: asia-south1
13
+ REPOSITORY: ${{ github.ref == 'refs/heads/dv-main' && 'ringg-registry-prod' || 'ringg-registry-stage' }}
14
+ IMAGE_NAME: dv-pipecat
15
+ # Determine cluster and secrets based on the target branch (dv-main for prod, others for stage)
16
+ CLUSTER: ${{ github.ref == 'refs/heads/dv-main' && 'desivocal-prod-us-e1-cluster' || 'desivocal-staging-cluster' }}
17
+ CLUSTER_ZONE: ${{ github.ref == 'refs/heads/dv-main' && 'us-east1' || 'asia-south1-a' }}
18
+ GITHUB_SHA: ${{ github.sha }}
19
+ # Assuming secrets are named like PROD_SECRETS_JSON / STAGE_SECRETS_JSON etc.
20
+ # SECRETS_JSON should contain a JSON object like {"VAR1": "value1", "VAR2": "value2"}
21
+ SECRETS_JSON: ${{ github.ref == 'refs/heads/dv-main' && secrets.PROD_SECRETS_JSON || secrets.STAGE_SECRETS_JSON }}
22
+ # CREDS_JSON should contain the raw content of the creds.json file
23
+ CREDS_JSON: ${{ github.ref == 'refs/heads/dv-main' && secrets.PROD_CREDS_JSON || secrets.STAGE_CREDS_JSON }}
24
+ # Helm release name
25
+ HELM_RELEASE_NAME: dv-pipecat
26
+
27
+ jobs:
28
+ build-and-deploy:
29
+ # Skip dv-stage runs that are only the auto-bump commit we just pushed
30
+ if: github.ref != 'refs/heads/dv-stage' || !contains(github.event.head_commit.message, 'Auto-bump dv-pipecat-ai')
31
+ runs-on: ubuntu-latest
32
+ permissions:
33
+ contents: write
34
+ id-token: write # Required for Workload Identity Federation
35
+
36
+ steps:
37
+ - name: Checkout code
38
+ uses: actions/checkout@v4
39
+ with:
40
+ ref: ${{ github.ref }}
41
+ fetch-depth: 0
42
+
43
+ # Integrated smart auto-release logic (moved from smart-auto-release.yml)
44
+ - name: Set up Python
45
+ uses: actions/setup-python@v4
46
+ with:
47
+ python-version: '3.10'
48
+
49
+ - name: Install build tooling
50
+ if: github.ref == 'refs/heads/dv-stage'
51
+ run: |
52
+ python -m pip install --upgrade pip
53
+ pip install build requests packaging
54
+
55
+ - name: Check for src/pipecat changes (push diff)
56
+ if: github.ref == 'refs/heads/dv-stage'
57
+ id: check_changes
58
+ run: |
59
+ echo "Checking for changes in src/pipecat between ${{ github.event.before }} and ${{ github.sha }}..."
60
+ if git diff --name-only ${{ github.event.before }}..${{ github.sha }} | grep -q "^src/pipecat"; then
61
+ echo "has_pipecat_changes=true" >> $GITHUB_OUTPUT
62
+ echo "✅ Found changes in src/pipecat"
63
+ else
64
+ echo "has_pipecat_changes=false" >> $GITHUB_OUTPUT
65
+ echo "ℹ️ No changes in src/pipecat detected"
66
+ fi
67
+
68
+ - name: Get dv-pipecat-ai versions (before vs after)
69
+ if: github.ref == 'refs/heads/dv-stage' && steps.check_changes.outputs.has_pipecat_changes == 'true'
70
+ id: versions
71
+ env:
72
+ REQUIREMENTS_FILE: examples/ringg-chatbot/remote-requirements.txt
73
+ PACKAGE_NAME: dv-pipecat-ai
74
+ run: |
75
+ echo "Getting current and previous ${PACKAGE_NAME} versions from ${REQUIREMENTS_FILE}..."
76
+
77
+ # Current merged version (after)
78
+ if [ -f "$REQUIREMENTS_FILE" ]; then
79
+ MERGED_REQUIREMENTS_VERSION=$(grep "${PACKAGE_NAME}" "$REQUIREMENTS_FILE" | sed -n 's/.*==\([^]]*\).*/\1/p')
80
+ fi
81
+ if [ -z "$MERGED_REQUIREMENTS_VERSION" ]; then
82
+ MERGED_REQUIREMENTS_VERSION="0.0.0.dev0"
83
+ fi
84
+ echo "merged_requirements_version=$MERGED_REQUIREMENTS_VERSION" >> $GITHUB_OUTPUT
85
+
86
+ # Previous version (before)
87
+ git show ${{ github.event.before }}:"$REQUIREMENTS_FILE" > before_requirements.txt 2>/dev/null || echo "${PACKAGE_NAME}==0.0.0.dev0" > before_requirements.txt
88
+ BASE_REQUIREMENTS_VERSION=$(grep "${PACKAGE_NAME}" before_requirements.txt | sed -n 's/.*==\([^]]*\).*/\1/p')
89
+ if [ -z "$BASE_REQUIREMENTS_VERSION" ]; then
90
+ BASE_REQUIREMENTS_VERSION="0.0.0.dev0"
91
+ fi
92
+ echo "base_requirements_version=$BASE_REQUIREMENTS_VERSION" >> $GITHUB_OUTPUT
93
+
94
+ echo "📊 Version Status:"
95
+ echo " Base (before) requirements version: $BASE_REQUIREMENTS_VERSION"
96
+ echo " Merged (after) requirements version: $MERGED_REQUIREMENTS_VERSION"
97
+
98
+ - name: Decide auto-release action
99
+ if: github.ref == 'refs/heads/dv-stage' && steps.check_changes.outputs.has_pipecat_changes == 'true'
100
+ id: decision
101
+ run: |
102
+ BASE_VERSION="${{ steps.versions.outputs.base_requirements_version }}"
103
+ MERGED_VERSION="${{ steps.versions.outputs.merged_requirements_version }}"
104
+
105
+ echo "🤔 Decision Logic:"
106
+ echo " Base version: $BASE_VERSION"
107
+ echo " Merged version: $MERGED_VERSION"
108
+
109
+ if [ "$BASE_VERSION" = "$MERGED_VERSION" ]; then
110
+ echo "should_release=true" >> $GITHUB_OUTPUT
111
+ echo "reason=Versions match between before/after - auto-bump needed" >> $GITHUB_OUTPUT
112
+ echo "✅ Decision: AUTO-RELEASE"
113
+ else
114
+ echo "should_release=false" >> $GITHUB_OUTPUT
115
+ echo "reason=Version already changed in the merge" >> $GITHUB_OUTPUT
116
+ echo "⏭️ Decision: SKIP (developer updated version)"
117
+ fi
118
+
119
+ - name: Build package (setuptools_scm)
120
+ if: github.ref == 'refs/heads/dv-stage' && steps.decision.outputs.should_release == 'true'
121
+ run: |
122
+ echo "🔨 Building package..."
123
+ python -m build
124
+ ls -la dist/
125
+
126
+ - name: Extract built version
127
+ if: github.ref == 'refs/heads/dv-stage' && steps.decision.outputs.should_release == 'true'
128
+ id: extract_version
129
+ run: |
130
+ WHEEL_FILE=$(ls dist/*.whl | head -1)
131
+ BUILT_VERSION=$(echo "$WHEEL_FILE" | sed -E 's/.*-([0-9]+\.[0-9]+\.[0-9]+\.dev[0-9]+)-.*/\1/')
132
+ echo "built_version=$BUILT_VERSION" >> $GITHUB_OUTPUT
133
+ echo "🔍 Built version: $BUILT_VERSION"
134
+ # Verify tar.gz matches
135
+ TAR_FILE=$(ls dist/*.tar.gz | head -1)
136
+ TAR_VERSION=$(echo "$TAR_FILE" | sed -E 's/.*-([0-9]+\.[0-9]+\.[0-9]+\.dev[0-9]+)\.tar\.gz/\1/')
137
+ [ "$BUILT_VERSION" = "$TAR_VERSION" ] || { echo "❌ Version mismatch"; exit 1; }
138
+
139
+ - name: Publish to PyPI
140
+ if: github.ref == 'refs/heads/dv-stage' && steps.decision.outputs.should_release == 'true'
141
+ uses: pypa/gh-action-pypi-publish@release/v1
142
+ with:
143
+ password: ${{ secrets.PYPI_API_TOKEN }}
144
+ print-hash: true
145
+ verbose: true
146
+
147
+ # - name: Update remote-requirements.txt with built version and push
148
+ # if: github.ref == 'refs/heads/dv-stage' && steps.decision.outputs.should_release == 'true'
149
+ # env:
150
+ # REQUIREMENTS_FILE: examples/ringg-chatbot/remote-requirements.txt
151
+ # PACKAGE_NAME: dv-pipecat-ai
152
+ # run: |
153
+ # BUILT_VERSION="${{ steps.extract_version.outputs.built_version }}"
154
+ # echo "📝 Updating ${REQUIREMENTS_FILE} to ${PACKAGE_NAME}==${BUILT_VERSION} (preserve extras)"
155
+ # CURRENT_DEPS=$(grep "${PACKAGE_NAME}" "$REQUIREMENTS_FILE" | sed -n 's/.*\[\([^]]*\)\].*/\1/p')
156
+ # if [ -z "$CURRENT_DEPS" ]; then
157
+ # # No extras bracket found; keep line format simple
158
+ # sed -i.bak "s/${PACKAGE_NAME}==.*/${PACKAGE_NAME}==${BUILT_VERSION}/" "$REQUIREMENTS_FILE"
159
+ # else
160
+ # sed -i.bak "s/${PACKAGE_NAME}\[.*\]==.*/${PACKAGE_NAME}[$CURRENT_DEPS]==${BUILT_VERSION}/" "$REQUIREMENTS_FILE"
161
+ # fi
162
+ # grep "${PACKAGE_NAME}" "$REQUIREMENTS_FILE"
163
+
164
+ # git config --local user.email "action@github.com"
165
+ # git config --local user.name "GitHub Action"
166
+ # git add "$REQUIREMENTS_FILE"
167
+ # git commit -m "🤖 Auto-bump ${PACKAGE_NAME} to ${BUILT_VERSION}"
168
+ # git push origin HEAD:dv-stage
169
+
170
+ # - name: Log auto-release skip reason
171
+ # if: github.ref == 'refs/heads/dv-stage' && (steps.check_changes.outputs.has_pipecat_changes == 'false' || steps.decision.outputs.should_release == 'false')
172
+ # run: |
173
+ # if [ "${{ steps.check_changes.outputs.has_pipecat_changes }}" = "false" ]; then
174
+ # echo "⏭️ SKIPPING auto-release: No src/pipecat changes detected"
175
+ # else
176
+ # echo "⏭️ SKIPPING auto-release: ${{ steps.decision.outputs.reason }}"
177
+ # fi
178
+
179
+ # # Python already set up above
180
+
181
+ # - name: Install Python dependencies
182
+ # run: |
183
+ # python -m pip install --upgrade pip
184
+ # pip install requests packaging
185
+
186
+ # - name: Verify PyPI package availability
187
+ # run: |
188
+ # echo "🔍 Verifying PyPI package availability..."
189
+
190
+ # # Get version from remote-requirements.txt
191
+ # PIPECAT_VERSION=$(grep "dv-pipecat-ai" examples/ringg-chatbot/remote-requirements.txt | sed -n 's/.*==\([^]]*\).*/\1/p')
192
+ # echo "📦 Required pipecat version: $PIPECAT_VERSION"
193
+
194
+ # # Verify package is available on PyPI with retry logic
195
+ # MAX_ATTEMPTS=12
196
+ # ATTEMPT=1
197
+ # WAIT_TIME=5
198
+ # PACKAGE_AVAILABLE=false
199
+
200
+ # while [ $ATTEMPT -le $MAX_ATTEMPTS ]; do
201
+ # echo "🔍 Attempt $ATTEMPT/$MAX_ATTEMPTS: Checking PyPI for dv-pipecat-ai==$PIPECAT_VERSION"
202
+
203
+ # if python scripts/check-pypi-package.py dv-pipecat-ai "$PIPECAT_VERSION"; then
204
+ # PACKAGE_AVAILABLE=true
205
+ # echo "✅ PyPI package verification successful!"
206
+ # break
207
+ # else
208
+ # if [ $ATTEMPT -eq $MAX_ATTEMPTS ]; then
209
+ # echo "❌ FAILED: Package dv-pipecat-ai==$PIPECAT_VERSION not available on PyPI after $MAX_ATTEMPTS attempts"
210
+ # echo "🚨 This usually means:"
211
+ # echo " 1. The auto-release workflow failed to publish"
212
+ # echo " 2. PyPI is experiencing delays"
213
+ # echo " 3. Version mismatch between requirements.txt and PyPI"
214
+ # exit 1
215
+ # else
216
+ # echo "⏳ Package not yet available, waiting ${WAIT_TIME}s before retry..."
217
+ # sleep $WAIT_TIME
218
+ # # Exponential backoff with cap at 30s
219
+ # if [ $WAIT_TIME -lt 30 ]; then
220
+ # WAIT_TIME=$((WAIT_TIME * 2))
221
+ # if [ $WAIT_TIME -gt 30 ]; then WAIT_TIME=30; fi
222
+ # fi
223
+ # fi
224
+ # fi
225
+ # ATTEMPT=$((ATTEMPT + 1))
226
+ # done
227
+
228
+ # echo "PIPECAT_VERSION=$PIPECAT_VERSION" >> $GITHUB_ENV
229
+
230
+ # - name: Authenticate to GCP using Workload Identity Federation
231
+ # id: auth
232
+ # uses: google-github-actions/auth@v2
233
+ # with:
234
+ # workload_identity_provider: projects/623676891410/locations/global/workloadIdentityPools/desivocal-staging-pool/providers/github # TODO: Update for production if needed
235
+ # service_account: gke-githubactions-svc-stage@desivocalprod01.iam.gserviceaccount.com # TODO: Update for production if needed
236
+
237
+ # - name: Configure gcloud
238
+ # run: |
239
+ # gcloud config set project $PROJECT_ID
240
+ # gcloud auth configure-docker $REGION-docker.pkg.dev --quiet
241
+
242
+ # - name: Set up Docker Buildx
243
+ # uses: docker/setup-buildx-action@v3
244
+
245
+ # - name: Build & push image (with GHA cache)
246
+ # uses: docker/build-push-action@v6
247
+ # with:
248
+ # context: ./examples/ringg-chatbot
249
+ # file: ./examples/ringg-chatbot/remote-Dockerfile
250
+ # platforms: linux/${{ github.ref == 'refs/heads/dv-main' && 'arm64' || 'amd64' }}
251
+ # push: true
252
+ # tags: ${{ env.REGION }}-docker.pkg.dev/${{ env.PROJECT_ID }}/${{ env.REPOSITORY }}/${{ env.IMAGE_NAME }}:${{ env.GITHUB_SHA }}
253
+ # cache-from: type=gha,scope=${{ github.ref == 'refs/heads/dv-main' && 'arm64' || 'amd64' }}
254
+ # cache-to: type=gha,mode=max,scope=${{ github.ref == 'refs/heads/dv-main' && 'arm64' || 'amd64' }}
255
+ # provenance: 'false'
256
+
257
+ # # - name: Build Docker image
258
+ # # run: |
259
+ # # cd examples/ringg-chatbot
260
+ # # docker build -t $REGION-docker.pkg.dev/$PROJECT_ID/$REPOSITORY/$IMAGE_NAME:$GITHUB_SHA -f remote-Dockerfile .
261
+
262
+ # # - name: Push Docker image to Artifact Registry
263
+ # # run: |
264
+ # # docker push $REGION-docker.pkg.dev/$PROJECT_ID/$REPOSITORY/$IMAGE_NAME:$GITHUB_SHA
265
+
266
+ # - name: Install Helm
267
+ # uses: azure/setup-helm@v4
268
+ # with:
269
+ # version: v3.13.3 # Specify Helm version if needed
270
+
271
+ # - name: Connect to GKE
272
+ # uses: google-github-actions/get-gke-credentials@v2
273
+ # with:
274
+ # cluster_name: ${{ env.CLUSTER }}
275
+ # location: ${{ env.CLUSTER_ZONE }}
276
+
277
+ # - name: Install KEDA (if not already installed)
278
+ # run: |
279
+ # echo "🔍 Checking if KEDA is already installed..."
280
+
281
+ # # Ensure KEDA Helm repository exists and is up-to-date for both install and upgrade paths
282
+ # if ! helm repo list | grep -q '^kedacore\s'; then
283
+ # helm repo add kedacore https://kedacore.github.io/charts
284
+ # else
285
+ # # Force update in case URL changed or local cache is stale
286
+ # helm repo add kedacore https://kedacore.github.io/charts --force-update
287
+ # fi
288
+ # helm repo update
289
+
290
+ # # Install KEDA if needed
291
+ # if ! kubectl get deployment -n keda keda-operator >/dev/null 2>&1; then
292
+ # echo "🚀 Installing KEDA core..."
293
+
294
+ # # Install KEDA core (required before HTTP add-on) with 30s HTTP timeout
295
+ # helm install keda kedacore/keda --namespace keda --create-namespace --wait --timeout=5m \
296
+ # --set operator.extraEnvs[0].name=KEDA_HTTP_DEFAULT_TIMEOUT \
297
+ # --set operator.extraEnvs[0].value="30000"
298
+
299
+ # echo "✅ KEDA core installation completed with 30s HTTP timeout"
300
+ # else
301
+ # echo "✅ KEDA core already installed"
302
+
303
+ # # Update existing KEDA installation to ensure HTTP timeout is set
304
+ # echo "🔄 Updating KEDA configuration to ensure 30s HTTP timeout..."
305
+ # helm upgrade keda kedacore/keda --namespace keda --reuse-values \
306
+ # --set operator.extraEnvs[0].name=KEDA_HTTP_DEFAULT_TIMEOUT \
307
+ # --set operator.extraEnvs[0].value="30000" \
308
+ # --wait --timeout=5m
309
+
310
+ # echo "✅ KEDA configuration updated with 30s HTTP timeout"
311
+ # fi
312
+
313
+ # # Verify KEDA CRDs are available
314
+ # echo "🔍 Verifying KEDA CRDs..."
315
+ # kubectl get crd | grep keda || {
316
+ # echo "❌ KEDA CRDs not found, waiting for them to be ready..."
317
+ # sleep 30
318
+ # kubectl get crd | grep keda || {
319
+ # echo "❌ KEDA CRDs still not available after waiting"
320
+ # exit 1
321
+ # }
322
+ # }
323
+
324
+ # echo "✅ KEDA is ready"
325
+
326
+ # - name: Install jq (for parsing JSON secrets)
327
+ # run: sudo apt-get update && sudo apt-get install -y jq
328
+
329
+ # - name: Create/Update GCP Credentials Secret
330
+ # run: |
331
+ # echo "Creating/Updating Kubernetes secret for GCP credentials..."
332
+ # # Create secret with creds.json key from CREDS_JSON content
333
+ # echo "$CREDS_JSON" | kubectl create secret generic ${{ env.HELM_RELEASE_NAME }}-gcp-creds --from-file=creds.json=/dev/stdin --dry-run=client -o yaml | kubectl apply -f - --overwrite
334
+ # env:
335
+ # CREDS_JSON: ${{ env.CREDS_JSON }}
336
+
337
+ # - name: Create/Update Application Secrets
338
+ # run: |
339
+ # echo "Creating/Updating Kubernetes secret for application environment variables..."
340
+ # # Build the --from-literal arguments dynamically from the JSON object stored in SECRETS_JSON
341
+ # # This creates one key in the secret for each key in the JSON, matching the file structure expected by read_secret
342
+ # LITERAL_ARGS=$(echo "$SECRETS_JSON" | jq -r 'to_entries | .[] | "--from-literal=\(.key)=\(.value)"' | tr '\n' ' ')
343
+ # if [ -z "$LITERAL_ARGS" ]; then
344
+ # echo "SECRETS_JSON is empty or not valid JSON. Skipping secret creation."
345
+ # # Handle error or create empty secret if absolutely required by envFrom (though optional should be fine)
346
+ # # kubectl create secret generic ${{ env.HELM_RELEASE_NAME }}-app-secrets --dry-run=client -o yaml | kubectl apply -f - --overwrite
347
+ # else
348
+ # kubectl create secret generic ${{ env.HELM_RELEASE_NAME }}-app-secrets $LITERAL_ARGS --dry-run=client -o yaml | kubectl apply -f - --overwrite
349
+ # fi
350
+ # env:
351
+ # SECRETS_JSON: ${{ env.SECRETS_JSON }}
352
+
353
+ # # Old code
354
+ # # - name: Deploy to GKE using Helm
355
+ # # run: |
356
+ # # if [ "${{ github.ref }}" == "refs/heads/dv-main" ]; then
357
+ # # VALUES_FILE="values-prod.yaml"
358
+ # # echo "Using production values: $VALUES_FILE"
359
+ # # else
360
+ # # VALUES_FILE="values-stage.yaml"
361
+ # # echo "Using staging values: $VALUES_FILE"
362
+ # # fi
363
+
364
+ # # helm upgrade --install ${{ env.HELM_RELEASE_NAME }} ./k8s/dv-pipecat \
365
+ # # --set image.repository=$REGION-docker.pkg.dev/$PROJECT_ID/$REPOSITORY/$IMAGE_NAME \
366
+ # # --set image.tag=$GITHUB_SHA \
367
+ # # --namespace default \
368
+ # # -f ./k8s/dv-pipecat/$VALUES_FILE
369
+ # # ---------- DEPLOY ----------
370
+ # # 1) Deploy stage
371
+ # - name: Deploy stage service
372
+ # if: github.ref == 'refs/heads/dv-stage'
373
+ # run: |
374
+ # STAGE_ADMIN_API_KEY=$(echo "$SECRETS_JSON" | jq -r '.ADMIN_API_KEY // empty')
375
+ # if [ -z "$STAGE_ADMIN_API_KEY" ]; then
376
+ # echo "❌ ADMIN_API_KEY not found in SECRETS_JSON"
377
+ # exit 1
378
+ # fi
379
+ # STAGE_CALLING_BACKEND_URL=$(echo "$SECRETS_JSON" | jq -r '.CALLING_BACKEND_URL // empty')
380
+ # if [ -z "$STAGE_CALLING_BACKEND_URL" ]; then
381
+ # echo "❌ CALLING_BACKEND_URL not found in SECRETS_JSON"
382
+ # exit 1
383
+ # fi
384
+ # helm upgrade --install $HELM_RELEASE_NAME ./k8s/dv-pipecat \
385
+ # -f ./k8s/dv-pipecat/values-stage.yaml \
386
+ # --set image.repository=$REGION-docker.pkg.dev/$PROJECT_ID/$REPOSITORY/$IMAGE_NAME \
387
+ # --set image.tag=$GITHUB_SHA \
388
+ # --set ADMIN_API_KEY="${STAGE_ADMIN_API_KEY}" \
389
+ # --set CALLING_BACKEND_URL="${STAGE_CALLING_BACKEND_URL}" \
390
+ # --namespace default
391
+
392
+ # # 2) **ONLY** when branch is dv-main: deploy/update the CANARY release
393
+ # - name: Deploy canary service
394
+ # if: github.ref == 'refs/heads/dv-main'
395
+ # run: |
396
+ # PROD_ADMIN_API_KEY=$(echo "$SECRETS_JSON" | jq -r '.ADMIN_API_KEY // empty')
397
+ # if [ -z "$PROD_ADMIN_API_KEY" ]; then
398
+ # echo "❌ ADMIN_API_KEY not found in SECRETS_JSON"
399
+ # exit 1
400
+ # fi
401
+ # PROD_CALLING_BACKEND_URL=$(echo "$SECRETS_JSON" | jq -r '.CALLING_BACKEND_URL // empty')
402
+ # if [ -z "$PROD_CALLING_BACKEND_URL" ]; then
403
+ # echo "❌ CALLING_BACKEND_URL not found in SECRETS_JSON"
404
+ # exit 1
405
+ # fi
406
+ # echo "🚀 Deploying canary service..."
407
+ # helm upgrade --install ${HELM_RELEASE_NAME}-canary ./k8s/dv-pipecat \
408
+ # -f ./k8s/dv-pipecat/values-prod.yaml \
409
+ # -f ./k8s/dv-pipecat/values-canary.yaml \
410
+ # --set image.repository=$REGION-docker.pkg.dev/$PROJECT_ID/$REPOSITORY/$IMAGE_NAME \
411
+ # --set image.tag=$GITHUB_SHA \
412
+ # --set ADMIN_API_KEY="${PROD_ADMIN_API_KEY}" \
413
+ # --set CALLING_BACKEND_URL="${PROD_CALLING_BACKEND_URL}" \
414
+ # --namespace default
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dv-pipecat-ai
3
- Version: 0.0.82.dev45
3
+ Version: 0.0.82.dev49
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.82.dev45
3
+ Version: 0.0.82.dev49
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
@@ -229,6 +229,7 @@ src/pipecat/serializers/__init__.py
229
229
  src/pipecat/serializers/asterisk.py
230
230
  src/pipecat/serializers/base_serializer.py
231
231
  src/pipecat/serializers/convox.py
232
+ src/pipecat/serializers/custom.py
232
233
  src/pipecat/serializers/exotel.py
233
234
  src/pipecat/serializers/livekit.py
234
235
  src/pipecat/serializers/plivo.py
@@ -1,5 +1,6 @@
1
1
  from .base_serializer import FrameSerializer, FrameSerializerType
2
2
  from .convox import ConVoxFrameSerializer
3
+ from .custom import CustomFrameSerializer
3
4
  from .exotel import ExotelFrameSerializer
4
5
  from .plivo import PlivoFrameSerializer
5
6
  from .telnyx import TelnyxFrameSerializer
@@ -7,8 +8,9 @@ from .twilio import TwilioFrameSerializer
7
8
 
8
9
  __all__ = [
9
10
  "FrameSerializer",
10
- "FrameSerializerType",
11
+ "FrameSerializerType",
11
12
  "ConVoxFrameSerializer",
13
+ "CustomFrameSerializer",
12
14
  "ExotelFrameSerializer",
13
15
  "PlivoFrameSerializer",
14
16
  "TelnyxFrameSerializer",