dv-pipecat-ai 0.0.82.dev807__tar.gz → 0.0.82.dev815__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 (420) hide show
  1. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/.github/workflows/github.yml +1 -1
  2. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/PKG-INFO +1 -1
  3. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/dv_pipecat_ai.egg-info/PKG-INFO +1 -1
  4. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/dv_pipecat_ai.egg-info/SOURCES.txt +1 -0
  5. dv_pipecat_ai-0.0.82.dev815/src/pipecat/serializers/asterisk.py +129 -0
  6. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/vistaar/llm.py +56 -2
  7. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/.dockerignore +0 -0
  8. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/.github/ISSUE_TEMPLATE/1-bug_report.yml +0 -0
  9. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/.github/ISSUE_TEMPLATE/2-question.yml +0 -0
  10. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/.github/ISSUE_TEMPLATE/3-feature_request.yml +0 -0
  11. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/.github/ISSUE_TEMPLATE/4-service-issue.yml +0 -0
  12. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/.github/ISSUE_TEMPLATE/5-new-service.yml +0 -0
  13. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/.github/ISSUE_TEMPLATE/6-dependency.yml +0 -0
  14. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/.github/ISSUE_TEMPLATE/7-troubleshooting.yml +0 -0
  15. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/.github/ISSUE_TEMPLATE/config.yml +0 -0
  16. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
  17. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/.github/workflows/build.yaml +0 -0
  18. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/.github/workflows/coverage.yaml +0 -0
  19. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/.github/workflows/format.yaml +0 -0
  20. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/.github/workflows/promote-prod.yml +0 -0
  21. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/.github/workflows/publish.yaml +0 -0
  22. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/.github/workflows/publish_test.yaml +0 -0
  23. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/.github/workflows/python-compatibility.yaml +0 -0
  24. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/.github/workflows/set-traffic-split.yml +0 -0
  25. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/.github/workflows/smart-auto-release.yml +0 -0
  26. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/.github/workflows/sync-quickstart.yaml +0 -0
  27. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/.github/workflows/tests.yaml +0 -0
  28. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/.gitignore +0 -0
  29. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/.pre-commit-config.yaml +0 -0
  30. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/.readthedocs.yaml +0 -0
  31. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/CHANGELOG.md +0 -0
  32. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/CHANGELOG.md.template +0 -0
  33. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/CLAUDE.md +0 -0
  34. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/CONTRIBUTING.md +0 -0
  35. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/DOCKER_BUILD_OPTIMIZATION_SUMMARY.md +0 -0
  36. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/LICENSE +0 -0
  37. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/MANIFEST.in +0 -0
  38. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/README.md +0 -0
  39. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/ansible.cfg +0 -0
  40. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/ansible_deployment.sh +0 -0
  41. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/cleanup_old_containers.yml +0 -0
  42. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/codecov.yml +0 -0
  43. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/create-new-machine/ansible.cfg +0 -0
  44. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/create-new-machine/ansible_setup.sh +0 -0
  45. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/create-new-machine/inventory.ini +0 -0
  46. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/create-new-machine/replace_env.yml +0 -0
  47. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/create-new-machine/setup_playbook.yml +0 -0
  48. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/create_inventory.py +0 -0
  49. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/delete_old_dockers.sh +0 -0
  50. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/deploy.sh +0 -0
  51. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/deploy_playbook.yml +0 -0
  52. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/docker-compose.dev.yml +0 -0
  53. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/dump_logs.yml +0 -0
  54. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/env.example +0 -0
  55. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/fetch_logs.yml +0 -0
  56. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/inventory.ini +0 -0
  57. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/k8s/dv-pipecat/.helmignore +0 -0
  58. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/k8s/dv-pipecat/Chart.yaml +0 -0
  59. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/k8s/dv-pipecat/templates/_helpers.tpl +0 -0
  60. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/k8s/dv-pipecat/templates/backendconfig.yaml +0 -0
  61. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/k8s/dv-pipecat/templates/cluster-role.yaml +0 -0
  62. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/k8s/dv-pipecat/templates/deployment.yaml +0 -0
  63. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/k8s/dv-pipecat/templates/hpa.yaml +0 -0
  64. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/k8s/dv-pipecat/templates/ingress.yaml +0 -0
  65. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/k8s/dv-pipecat/templates/keda-api-key-secret.yaml +0 -0
  66. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/k8s/dv-pipecat/templates/keda-scaledobject.yaml +0 -0
  67. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/k8s/dv-pipecat/templates/keda-trigger-auth.yaml +0 -0
  68. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/k8s/dv-pipecat/templates/service.yaml +0 -0
  69. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/k8s/dv-pipecat/values-canary.yaml +0 -0
  70. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/k8s/dv-pipecat/values-prod.yaml +0 -0
  71. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/k8s/dv-pipecat/values-stage.yaml +0 -0
  72. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/k8s/dv-pipecat/values.yaml +0 -0
  73. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/k8s/istio/destination-virtualservice.yaml +0 -0
  74. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/merge-code-into-single-file.sh +0 -0
  75. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/pipecat.png +0 -0
  76. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/pyproject.toml +0 -0
  77. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/restart.sh +0 -0
  78. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/restart_playbook.yml +0 -0
  79. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/setup.cfg +0 -0
  80. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/dv_pipecat_ai.egg-info/dependency_links.txt +0 -0
  81. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/dv_pipecat_ai.egg-info/requires.txt +0 -0
  82. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/dv_pipecat_ai.egg-info/top_level.txt +0 -0
  83. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/__init__.py +0 -0
  84. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/adapters/__init__.py +0 -0
  85. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/adapters/base_llm_adapter.py +0 -0
  86. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/adapters/schemas/__init__.py +0 -0
  87. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/adapters/schemas/direct_function.py +0 -0
  88. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/adapters/schemas/function_schema.py +0 -0
  89. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/adapters/schemas/tools_schema.py +0 -0
  90. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/adapters/services/__init__.py +0 -0
  91. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/adapters/services/anthropic_adapter.py +0 -0
  92. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/adapters/services/aws_nova_sonic_adapter.py +0 -0
  93. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/adapters/services/bedrock_adapter.py +0 -0
  94. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/adapters/services/gemini_adapter.py +0 -0
  95. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/adapters/services/open_ai_adapter.py +0 -0
  96. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/adapters/services/open_ai_realtime_adapter.py +0 -0
  97. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/audio/__init__.py +0 -0
  98. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/audio/filters/__init__.py +0 -0
  99. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/audio/filters/base_audio_filter.py +0 -0
  100. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/audio/filters/koala_filter.py +0 -0
  101. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/audio/filters/krisp_filter.py +0 -0
  102. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/audio/filters/noisereduce_filter.py +0 -0
  103. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/audio/filters/pyrnn_local_filter.py +0 -0
  104. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/audio/interruptions/__init__.py +0 -0
  105. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/audio/interruptions/base_interruption_strategy.py +0 -0
  106. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/audio/interruptions/min_words_interruption_strategy.py +0 -0
  107. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/audio/mixers/__init__.py +0 -0
  108. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/audio/mixers/base_audio_mixer.py +0 -0
  109. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/audio/mixers/soundfile_mixer.py +0 -0
  110. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/audio/resamplers/__init__.py +0 -0
  111. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/audio/resamplers/base_audio_resampler.py +0 -0
  112. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/audio/resamplers/resampy_resampler.py +0 -0
  113. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/audio/resamplers/soxr_resampler.py +0 -0
  114. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/audio/resamplers/soxr_stream_resampler.py +0 -0
  115. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/audio/turn/__init__.py +0 -0
  116. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/audio/turn/base_turn_analyzer.py +0 -0
  117. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/audio/turn/smart_turn/__init__.py +0 -0
  118. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/audio/turn/smart_turn/base_smart_turn.py +0 -0
  119. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/audio/turn/smart_turn/fal_smart_turn.py +0 -0
  120. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/audio/turn/smart_turn/http_smart_turn.py +0 -0
  121. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/audio/turn/smart_turn/local_coreml_smart_turn.py +0 -0
  122. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/audio/turn/smart_turn/local_smart_turn.py +0 -0
  123. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/audio/turn/smart_turn/local_smart_turn_v2.py +0 -0
  124. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/audio/utils.py +0 -0
  125. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/audio/vad/__init__.py +0 -0
  126. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/audio/vad/data/__init__.py +0 -0
  127. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/audio/vad/data/silero_vad.onnx +0 -0
  128. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/audio/vad/silero.py +0 -0
  129. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/audio/vad/vad_analyzer.py +0 -0
  130. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/clocks/__init__.py +0 -0
  131. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/clocks/base_clock.py +0 -0
  132. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/clocks/system_clock.py +0 -0
  133. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/extensions/__init__.py +0 -0
  134. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/extensions/voicemail/__init__.py +0 -0
  135. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/extensions/voicemail/voicemail_detector.py +0 -0
  136. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/frames/__init__.py +0 -0
  137. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/frames/frames.proto +0 -0
  138. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/frames/frames.py +0 -0
  139. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/frames/protobufs/frames_pb2.py +0 -0
  140. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/metrics/__init__.py +0 -0
  141. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/metrics/metrics.py +0 -0
  142. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/observers/__init__.py +0 -0
  143. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/observers/base_observer.py +0 -0
  144. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/observers/loggers/__init__.py +0 -0
  145. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/observers/loggers/debug_log_observer.py +0 -0
  146. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/observers/loggers/llm_log_observer.py +0 -0
  147. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/observers/loggers/transcription_log_observer.py +0 -0
  148. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/observers/loggers/user_bot_latency_log_observer.py +0 -0
  149. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/observers/turn_tracking_observer.py +0 -0
  150. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/pipeline/__init__.py +0 -0
  151. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/pipeline/base_pipeline.py +0 -0
  152. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/pipeline/base_task.py +0 -0
  153. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/pipeline/parallel_pipeline.py +0 -0
  154. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/pipeline/pipeline.py +0 -0
  155. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/pipeline/runner.py +0 -0
  156. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/pipeline/sync_parallel_pipeline.py +0 -0
  157. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/pipeline/task.py +0 -0
  158. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/pipeline/task_observer.py +0 -0
  159. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/pipeline/to_be_updated/merge_pipeline.py +0 -0
  160. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/processors/__init__.py +0 -0
  161. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/processors/aggregators/__init__.py +0 -0
  162. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/processors/aggregators/dtmf_aggregator.py +0 -0
  163. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/processors/aggregators/gated.py +0 -0
  164. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/processors/aggregators/gated_openai_llm_context.py +0 -0
  165. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/processors/aggregators/llm_response.py +0 -0
  166. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/processors/aggregators/openai_llm_context.py +0 -0
  167. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/processors/aggregators/sentence.py +0 -0
  168. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/processors/aggregators/user_response.py +0 -0
  169. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/processors/aggregators/vision_image_frame.py +0 -0
  170. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/processors/async_generator.py +0 -0
  171. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/processors/audio/__init__.py +0 -0
  172. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/processors/audio/audio_buffer_processor.py +0 -0
  173. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/processors/consumer_processor.py +0 -0
  174. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/processors/dtmf_aggregator.py +0 -0
  175. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/processors/filters/__init__.py +0 -0
  176. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/processors/filters/frame_filter.py +0 -0
  177. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/processors/filters/function_filter.py +0 -0
  178. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/processors/filters/identity_filter.py +0 -0
  179. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/processors/filters/null_filter.py +0 -0
  180. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/processors/filters/stt_mute_filter.py +0 -0
  181. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/processors/filters/wake_check_filter.py +0 -0
  182. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/processors/filters/wake_notifier_filter.py +0 -0
  183. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/processors/frame_processor.py +0 -0
  184. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/processors/frameworks/__init__.py +0 -0
  185. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/processors/frameworks/langchain.py +0 -0
  186. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/processors/frameworks/rtvi.py +0 -0
  187. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/processors/gstreamer/__init__.py +0 -0
  188. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/processors/gstreamer/pipeline_source.py +0 -0
  189. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/processors/idle_frame_processor.py +0 -0
  190. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/processors/logger.py +0 -0
  191. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/processors/metrics/__init__.py +0 -0
  192. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/processors/metrics/frame_processor_metrics.py +0 -0
  193. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/processors/metrics/sentry.py +0 -0
  194. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/processors/producer_processor.py +0 -0
  195. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/processors/text_transformer.py +0 -0
  196. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/processors/transcript_processor.py +0 -0
  197. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/processors/two_stage_user_idle_processor.py +0 -0
  198. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/processors/user_idle_processor.py +0 -0
  199. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/py.typed +0 -0
  200. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/runner/__init__.py +0 -0
  201. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/runner/daily.py +0 -0
  202. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/runner/livekit.py +0 -0
  203. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/runner/run.py +0 -0
  204. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/runner/types.py +0 -0
  205. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/runner/utils.py +0 -0
  206. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/serializers/__init__.py +0 -0
  207. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/serializers/base_serializer.py +0 -0
  208. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/serializers/convox.py +0 -0
  209. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/serializers/exotel.py +0 -0
  210. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/serializers/genesys.py +0 -0
  211. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/serializers/livekit.py +0 -0
  212. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/serializers/plivo.py +0 -0
  213. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/serializers/protobuf.py +0 -0
  214. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/serializers/telnyx.py +0 -0
  215. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/serializers/twilio.py +0 -0
  216. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/__init__.py +0 -0
  217. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/ai_service.py +0 -0
  218. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/ai_services.py +0 -0
  219. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/anthropic/__init__.py +0 -0
  220. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/anthropic/llm.py +0 -0
  221. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/assemblyai/__init__.py +0 -0
  222. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/assemblyai/models.py +0 -0
  223. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/assemblyai/stt.py +0 -0
  224. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/asyncai/__init__.py +0 -0
  225. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/asyncai/tts.py +0 -0
  226. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/aws/__init__.py +0 -0
  227. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/aws/llm.py +0 -0
  228. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/aws/stt.py +0 -0
  229. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/aws/tts.py +0 -0
  230. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/aws/utils.py +0 -0
  231. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/aws_nova_sonic/__init__.py +0 -0
  232. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/aws_nova_sonic/aws.py +0 -0
  233. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/aws_nova_sonic/context.py +0 -0
  234. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/aws_nova_sonic/frames.py +0 -0
  235. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/aws_nova_sonic/ready.wav +0 -0
  236. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/azure/__init__.py +0 -0
  237. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/azure/common.py +0 -0
  238. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/azure/image.py +0 -0
  239. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/azure/llm.py +0 -0
  240. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/azure/stt.py +0 -0
  241. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/azure/tts.py +0 -0
  242. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/cartesia/__init__.py +0 -0
  243. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/cartesia/stt.py +0 -0
  244. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/cartesia/tts.py +0 -0
  245. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/cerebras/__init__.py +0 -0
  246. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/cerebras/llm.py +0 -0
  247. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/deepgram/__init__.py +0 -0
  248. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/deepgram/stt.py +0 -0
  249. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/deepgram/tts.py +0 -0
  250. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/deepseek/__init__.py +0 -0
  251. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/deepseek/llm.py +0 -0
  252. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/elevenlabs/__init__.py +0 -0
  253. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/elevenlabs/tts.py +0 -0
  254. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/fal/__init__.py +0 -0
  255. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/fal/image.py +0 -0
  256. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/fal/stt.py +0 -0
  257. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/fireworks/__init__.py +0 -0
  258. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/fireworks/llm.py +0 -0
  259. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/fish/__init__.py +0 -0
  260. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/fish/tts.py +0 -0
  261. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/gemini_multimodal_live/__init__.py +0 -0
  262. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/gemini_multimodal_live/events.py +0 -0
  263. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/gemini_multimodal_live/file_api.py +0 -0
  264. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/gemini_multimodal_live/gemini.py +0 -0
  265. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/gladia/__init__.py +0 -0
  266. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/gladia/config.py +0 -0
  267. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/gladia/stt.py +0 -0
  268. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/google/__init__.py +0 -0
  269. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/google/frames.py +0 -0
  270. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/google/google.py +0 -0
  271. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/google/image.py +0 -0
  272. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/google/llm.py +0 -0
  273. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/google/llm_openai.py +0 -0
  274. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/google/llm_vertex.py +0 -0
  275. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/google/rtvi.py +0 -0
  276. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/google/stt.py +0 -0
  277. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/google/test-google-chirp.py +0 -0
  278. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/google/tts.py +0 -0
  279. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/grok/__init__.py +0 -0
  280. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/grok/llm.py +0 -0
  281. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/groq/__init__.py +0 -0
  282. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/groq/llm.py +0 -0
  283. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/groq/stt.py +0 -0
  284. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/groq/tts.py +0 -0
  285. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/hamsa/__init__.py +0 -0
  286. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/hamsa/stt.py +0 -0
  287. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/heygen/__init__.py +0 -0
  288. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/heygen/api.py +0 -0
  289. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/heygen/client.py +0 -0
  290. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/heygen/video.py +0 -0
  291. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/image_service.py +0 -0
  292. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/inworld/__init__.py +0 -0
  293. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/inworld/tts.py +0 -0
  294. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/llm_service.py +0 -0
  295. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/lmnt/__init__.py +0 -0
  296. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/lmnt/tts.py +0 -0
  297. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/mcp_service.py +0 -0
  298. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/mem0/__init__.py +0 -0
  299. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/mem0/memory.py +0 -0
  300. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/minimax/__init__.py +0 -0
  301. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/minimax/tts.py +0 -0
  302. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/mistral/__init__.py +0 -0
  303. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/mistral/llm.py +0 -0
  304. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/moondream/__init__.py +0 -0
  305. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/moondream/vision.py +0 -0
  306. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/neuphonic/__init__.py +0 -0
  307. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/neuphonic/tts.py +0 -0
  308. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/nim/__init__.py +0 -0
  309. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/nim/llm.py +0 -0
  310. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/ollama/__init__.py +0 -0
  311. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/ollama/llm.py +0 -0
  312. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/openai/__init__.py +0 -0
  313. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/openai/base_llm.py +0 -0
  314. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/openai/image.py +0 -0
  315. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/openai/llm.py +0 -0
  316. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/openai/stt.py +0 -0
  317. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/openai/tts.py +0 -0
  318. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/openai.py +0 -0
  319. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/openai_realtime_beta/__init__.py +0 -0
  320. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/openai_realtime_beta/azure.py +0 -0
  321. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/openai_realtime_beta/context.py +0 -0
  322. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/openai_realtime_beta/events.py +0 -0
  323. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/openai_realtime_beta/frames.py +0 -0
  324. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/openai_realtime_beta/openai.py +0 -0
  325. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/openpipe/__init__.py +0 -0
  326. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/openpipe/llm.py +0 -0
  327. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/openrouter/__init__.py +0 -0
  328. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/openrouter/llm.py +0 -0
  329. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/perplexity/__init__.py +0 -0
  330. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/perplexity/llm.py +0 -0
  331. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/piper/__init__.py +0 -0
  332. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/piper/tts.py +0 -0
  333. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/playht/__init__.py +0 -0
  334. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/playht/tts.py +0 -0
  335. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/qwen/__init__.py +0 -0
  336. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/qwen/llm.py +0 -0
  337. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/rime/__init__.py +0 -0
  338. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/rime/tts.py +0 -0
  339. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/riva/__init__.py +0 -0
  340. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/riva/stt.py +0 -0
  341. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/riva/tts.py +0 -0
  342. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/sambanova/__init__.py +0 -0
  343. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/sambanova/llm.py +0 -0
  344. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/sambanova/stt.py +0 -0
  345. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/sarvam/__init__.py +0 -0
  346. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/sarvam/tts.py +0 -0
  347. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/simli/__init__.py +0 -0
  348. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/simli/video.py +0 -0
  349. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/soniox/__init__.py +0 -0
  350. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/soniox/stt.py +0 -0
  351. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/speechmatics/__init__.py +0 -0
  352. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/speechmatics/stt.py +0 -0
  353. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/stt_service.py +0 -0
  354. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/tavus/__init__.py +0 -0
  355. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/tavus/video.py +0 -0
  356. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/together/__init__.py +0 -0
  357. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/together/llm.py +0 -0
  358. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/tts_service.py +0 -0
  359. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/ultravox/__init__.py +0 -0
  360. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/ultravox/stt.py +0 -0
  361. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/vision_service.py +0 -0
  362. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/vistaar/__init__.py +0 -0
  363. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/websocket_service.py +0 -0
  364. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/whisper/__init__.py +0 -0
  365. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/whisper/base_stt.py +0 -0
  366. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/whisper/stt.py +0 -0
  367. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/xtts/__init__.py +0 -0
  368. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/services/xtts/tts.py +0 -0
  369. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/sync/__init__.py +0 -0
  370. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/sync/base_notifier.py +0 -0
  371. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/sync/event_notifier.py +0 -0
  372. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/tests/__init__.py +0 -0
  373. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/tests/utils.py +0 -0
  374. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/transcriptions/__init__.py +0 -0
  375. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/transcriptions/language.py +0 -0
  376. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/transports/__init__.py +0 -0
  377. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/transports/base_input.py +0 -0
  378. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/transports/base_output.py +0 -0
  379. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/transports/base_transport.py +0 -0
  380. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/transports/local/__init__.py +0 -0
  381. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/transports/local/audio.py +0 -0
  382. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/transports/local/tk.py +0 -0
  383. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/transports/network/__init__.py +0 -0
  384. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/transports/network/fastapi_websocket.py +0 -0
  385. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/transports/network/small_webrtc.py +0 -0
  386. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/transports/network/webrtc_connection.py +0 -0
  387. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/transports/network/websocket_client.py +0 -0
  388. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/transports/network/websocket_server.py +0 -0
  389. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/transports/services/__init__.py +0 -0
  390. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/transports/services/daily.py +0 -0
  391. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/transports/services/helpers/__init__.py +0 -0
  392. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/transports/services/helpers/daily_rest.py +0 -0
  393. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/transports/services/livekit.py +0 -0
  394. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/transports/services/tavus.py +0 -0
  395. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/utils/__init__.py +0 -0
  396. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/utils/asyncio/__init__.py +0 -0
  397. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/utils/asyncio/task_manager.py +0 -0
  398. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/utils/base_object.py +0 -0
  399. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/utils/logger_config.py +0 -0
  400. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/utils/network.py +0 -0
  401. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/utils/string.py +0 -0
  402. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/utils/text/__init__.py +0 -0
  403. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/utils/text/base_text_aggregator.py +0 -0
  404. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/utils/text/base_text_filter.py +0 -0
  405. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/utils/text/markdown_text_filter.py +0 -0
  406. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/utils/text/pattern_pair_aggregator.py +0 -0
  407. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/utils/text/simple_text_aggregator.py +0 -0
  408. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/utils/text/skip_tags_aggregator.py +0 -0
  409. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/utils/time.py +0 -0
  410. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/utils/tracing/__init__.py +0 -0
  411. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/utils/tracing/class_decorators.py +0 -0
  412. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/utils/tracing/conversation_context_provider.py +0 -0
  413. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/utils/tracing/service_attributes.py +0 -0
  414. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/utils/tracing/service_decorators.py +0 -0
  415. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/utils/tracing/setup.py +0 -0
  416. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/utils/tracing/turn_context_provider.py +0 -0
  417. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/utils/tracing/turn_trace_observer.py +0 -0
  418. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/src/pipecat/utils/utils.py +0 -0
  419. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/stop_container.yml +0 -0
  420. {dv_pipecat_ai-0.0.82.dev807 → dv_pipecat_ai-0.0.82.dev815}/uv.lock +0 -0
@@ -88,7 +88,7 @@ jobs:
88
88
  echo "📦 Required pipecat version: $PIPECAT_VERSION"
89
89
 
90
90
  # Verify package is available on PyPI with retry logic
91
- MAX_ATTEMPTS=30
91
+ MAX_ATTEMPTS=2
92
92
  ATTEMPT=1
93
93
  PACKAGE_AVAILABLE=false
94
94
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dv-pipecat-ai
3
- Version: 0.0.82.dev807
3
+ Version: 0.0.82.dev815
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.dev807
3
+ Version: 0.0.82.dev815
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
@@ -202,6 +202,7 @@ src/pipecat/runner/run.py
202
202
  src/pipecat/runner/types.py
203
203
  src/pipecat/runner/utils.py
204
204
  src/pipecat/serializers/__init__.py
205
+ src/pipecat/serializers/asterisk.py
205
206
  src/pipecat/serializers/base_serializer.py
206
207
  src/pipecat/serializers/convox.py
207
208
  src/pipecat/serializers/exotel.py
@@ -0,0 +1,129 @@
1
+ # asterisk_ws_serializer.py
2
+ import base64
3
+ import json
4
+ from typing import Literal, Optional
5
+
6
+ from pydantic import BaseModel
7
+
8
+ from pipecat.audio.utils import create_stream_resampler, pcm_to_ulaw, ulaw_to_pcm
9
+ from pipecat.frames.frames import (
10
+ AudioRawFrame,
11
+ CancelFrame,
12
+ EndFrame,
13
+ Frame,
14
+ InputAudioRawFrame,
15
+ StartFrame,
16
+ StartInterruptionFrame,
17
+ TransportMessageFrame,
18
+ TransportMessageUrgentFrame,
19
+ )
20
+ from pipecat.serializers.base_serializer import FrameSerializer, FrameSerializerType
21
+
22
+
23
+ class AsteriskFrameSerializer(FrameSerializer):
24
+ class InputParams(BaseModel):
25
+ """Configuration parameters for AsteriskFrameSerializer.
26
+
27
+ Parameters:
28
+ telephony_encoding: The encoding used by the telephony system (e.g., "pcmu" for μ-law).
29
+ telephony_sample_rate: The sample rate used by the telephony system (e.g., 8000 Hz).
30
+ sample_rate: Optional override for pipeline input sample rate.
31
+ auto_hang_up: Whether to automatically terminate call on EndFrame.
32
+ """
33
+
34
+ # What the ADAPTER/Asterisk is sending/expecting on the wire:
35
+ # "pcmu" -> μ-law @ 8k; "pcm16" -> signed 16-bit @ 8k
36
+ telephony_encoding: Literal["pcmu", "pcm16"] = "pcmu"
37
+ telephony_sample_rate: int = 8000
38
+ sample_rate: Optional[int] = None # pipeline input rate
39
+ auto_hang_up: bool = False # no-op here; adapter handles hangup
40
+
41
+ def __init__(self, stream_id: str, params: Optional[InputParams] = None):
42
+ self._stream_id = stream_id
43
+ self._params = params or AsteriskFrameSerializer.InputParams()
44
+ self._tel_rate = self._params.telephony_sample_rate
45
+ self._sample_rate = 0
46
+ self._in_resampler = create_stream_resampler()
47
+ self._out_resampler = create_stream_resampler()
48
+
49
+ @property
50
+ def type(self) -> FrameSerializerType:
51
+ return FrameSerializerType.TEXT # we send/recv JSON strings
52
+
53
+ async def setup(self, frame: StartFrame):
54
+ self._sample_rate = self._params.sample_rate or frame.audio_in_sample_rate
55
+
56
+ # Pipecat -> Adapter (play to caller)
57
+ async def serialize(self, frame: Frame) -> str | bytes | None:
58
+ # On pipeline end, ask bridge to hang up
59
+ if (
60
+ self._params.auto_hang_up
61
+ and not self._hangup_sent
62
+ and isinstance(frame, (EndFrame, CancelFrame))
63
+ ):
64
+ self._hangup_sent = True
65
+ return json.dumps({"event": "hangup"})
66
+ if isinstance(frame, StartInterruptionFrame):
67
+ return json.dumps({"event": "clear", "streamId": self._stream_id})
68
+ if isinstance(frame, AudioRawFrame):
69
+ pcm = frame.audio
70
+ if self._params.telephony_encoding == "pcmu":
71
+ ul = await pcm_to_ulaw(pcm, frame.sample_rate, self._tel_rate, self._out_resampler)
72
+ if not ul:
73
+ return None
74
+ payload = base64.b64encode(ul).decode("utf-8")
75
+ return json.dumps(
76
+ {
77
+ "event": "media",
78
+ "encoding": "pcmu",
79
+ "sampleRate": self._tel_rate,
80
+ "payload": payload,
81
+ }
82
+ )
83
+ else: # "pcm16"
84
+ # resample to 8k if needed, but data stays PCM16 bytes
85
+ pcm8 = await self._out_resampler.resample(pcm, frame.sample_rate, self._tel_rate)
86
+ if not pcm8:
87
+ return None
88
+ payload = base64.b64encode(pcm8).decode("utf-8")
89
+ return json.dumps(
90
+ {
91
+ "event": "media",
92
+ "encoding": "pcm16",
93
+ "sampleRate": self._tel_rate,
94
+ "payload": payload,
95
+ }
96
+ )
97
+ if isinstance(frame, (TransportMessageFrame, TransportMessageUrgentFrame)):
98
+ return json.dumps(frame.message)
99
+ return None
100
+
101
+ # Adapter -> Pipecat (audio from caller)
102
+ async def deserialize(self, data: str | bytes) -> Frame | None:
103
+ try:
104
+ msg = json.loads(data)
105
+ except Exception:
106
+ return None
107
+ if msg.get("event") == "media":
108
+ enc = msg.get("encoding")
109
+ sr = int(msg.get("sampleRate", self._tel_rate))
110
+ raw = base64.b64decode(msg.get("payload", ""))
111
+ if not raw:
112
+ return None
113
+ if enc == "pcmu":
114
+ pcm = await ulaw_to_pcm(raw, sr, self._sample_rate, self._in_resampler)
115
+ elif enc == "pcm16":
116
+ # resample if pipeline rate != 8k
117
+ pcm = await self._in_resampler.resample(raw, sr, self._sample_rate)
118
+ else:
119
+ return None
120
+ if not pcm:
121
+ return None
122
+ return InputAudioRawFrame(audio=pcm, num_channels=1, sample_rate=self._sample_rate)
123
+ elif msg.get("event") == "dtmf":
124
+ # optional: map to InputDTMFFrame if you want
125
+ return None
126
+ elif msg.get("event") == "hangup":
127
+ # Bridge is hanging up; you can treat as EndFrame if you want.
128
+ return CancelFrame()
129
+ return None
@@ -13,6 +13,8 @@ from loguru import logger
13
13
  from pydantic import BaseModel, Field
14
14
 
15
15
  from pipecat.frames.frames import (
16
+ CancelFrame,
17
+ EndFrame,
16
18
  Frame,
17
19
  LLMFullResponseEndFrame,
18
20
  LLMFullResponseStartFrame,
@@ -68,6 +70,8 @@ class VistaarLLMService(LLMService):
68
70
  base_url: str = "https://vistaar.kenpath.ai/api",
69
71
  params: Optional[InputParams] = None,
70
72
  timeout: float = 30.0,
73
+ interim_timeout: float = 5.0,
74
+ interim_message: str = "एक क्षण थांबा, मी बघतो. ",
71
75
  **kwargs,
72
76
  ):
73
77
  """Initialize Vistaar LLM service.
@@ -76,6 +80,8 @@ class VistaarLLMService(LLMService):
76
80
  base_url: The base URL for Vistaar API. Defaults to "https://vistaar.kenpath.ai/api".
77
81
  params: Input parameters for model configuration and behavior.
78
82
  timeout: Request timeout in seconds. Defaults to 30.0 seconds.
83
+ interim_timeout: Time in seconds before sending interim message. Defaults to 3.0 seconds.
84
+ interim_message: Message to send if API takes longer than interim_timeout. Defaults to "एक क्षण थांबा, मी बघतो. ".
79
85
  **kwargs: Additional arguments passed to the parent LLMService.
80
86
  """
81
87
  super().__init__(**kwargs)
@@ -88,14 +94,18 @@ class VistaarLLMService(LLMService):
88
94
  self._session_id = params.session_id or str(uuid.uuid4())
89
95
  self._extra = params.extra if isinstance(params.extra, dict) else {}
90
96
  self._timeout = timeout
97
+ self._interim_timeout = interim_timeout
98
+ self._interim_message = interim_message
91
99
 
92
100
  # Create an async HTTP client
93
- self._client = httpx.AsyncClient(timeout=httpx.Timeout(self._timeout))
101
+ self._client = httpx.AsyncClient(timeout=httpx.Timeout(self._timeout), verify=False)
94
102
 
95
103
  # Interruption handling state
96
104
  self._current_response = None # Track current HTTP response stream
97
105
  self._is_interrupted = False # Track if current generation was interrupted
98
106
  self._partial_response = [] # Track what was actually sent before interruption
107
+ self._interim_sent = False # Track if interim message was sent
108
+ self._interim_task = None # Track interim message task
99
109
 
100
110
  logger.info(
101
111
  f"Vistaar LLM initialized - Base URL: {self._base_url}, Session ID: {self._session_id}, Source Lang: {self._source_lang}, Target Lang: {self._target_lang}, Timeout: {self._timeout}s"
@@ -154,6 +164,11 @@ class VistaarLLMService(LLMService):
154
164
  # Set interruption flag
155
165
  self._is_interrupted = True
156
166
 
167
+ # Cancel interim message task if active
168
+ await self._cancel_interim_message_task(
169
+ "Cancelled interim message task - handling interruption"
170
+ )
171
+
157
172
  # Cancel ongoing HTTP response stream if active
158
173
  if self._current_response:
159
174
  try:
@@ -174,6 +189,19 @@ class VistaarLLMService(LLMService):
174
189
  # Clear current partial response
175
190
  self._partial_response = []
176
191
 
192
+ async def _send_interim_message(self):
193
+ """Send interim message after timeout."""
194
+ try:
195
+ await asyncio.sleep(self._interim_timeout)
196
+ if not self._is_interrupted and not self._interim_sent:
197
+ logger.info(f"Sending interim message after {self._interim_timeout}s timeout")
198
+ self._interim_sent = True
199
+ await self.push_frame(LLMTextFrame(text=self._interim_message))
200
+ except asyncio.CancelledError:
201
+ logger.debug("Interim message task cancelled")
202
+ except Exception as e:
203
+ logger.error(f"Error sending interim message: {e}")
204
+
177
205
  async def _stream_response(self, query: str) -> AsyncGenerator[str, None]:
178
206
  """Stream response from Vistaar API using Server-Sent Events.
179
207
 
@@ -205,6 +233,7 @@ class VistaarLLMService(LLMService):
205
233
  # Reset interruption state and partial response for new request
206
234
  self._is_interrupted = False
207
235
  self._partial_response = []
236
+ self._interim_sent = False
208
237
 
209
238
  try:
210
239
  # Use httpx to handle SSE streaming
@@ -268,6 +297,11 @@ class VistaarLLMService(LLMService):
268
297
  await self.start_processing_metrics()
269
298
  await self.start_ttfb_metrics()
270
299
 
300
+ # Start interim message task
301
+ self._interim_task = self.create_task(
302
+ self._send_interim_message(), "Vistaar LLM - _send_interim_message"
303
+ )
304
+
271
305
  first_chunk = True
272
306
  full_response = []
273
307
 
@@ -276,6 +310,10 @@ class VistaarLLMService(LLMService):
276
310
  if first_chunk:
277
311
  await self.stop_ttfb_metrics()
278
312
  first_chunk = False
313
+ # Cancel interim message task since we got first response
314
+ await self._cancel_interim_message_task(
315
+ "Cancelled interim message task - got first response"
316
+ )
279
317
 
280
318
  # Push each text chunk as it arrives
281
319
  await self.push_frame(LLMTextFrame(text=text_chunk))
@@ -293,6 +331,10 @@ class VistaarLLMService(LLMService):
293
331
  logger.error(f"Vistaar traceback: {traceback.format_exc()}")
294
332
  raise
295
333
  finally:
334
+ # Clean up interim message task
335
+ await self._cancel_interim_message_task(
336
+ "Cancelled interim message task in finally block"
337
+ )
296
338
  await self.stop_processing_metrics()
297
339
  await self.push_frame(LLMFullResponseEndFrame())
298
340
 
@@ -308,7 +350,13 @@ class VistaarLLMService(LLMService):
308
350
  """
309
351
  await super().process_frame(frame, direction)
310
352
  context = None
311
- if isinstance(frame, StartInterruptionFrame):
353
+ if isinstance(frame, (EndFrame, CancelFrame)):
354
+ await self._cancel_interim_message_task(
355
+ f"Cancelled interim message task - received {type(frame).__name__}"
356
+ )
357
+ await self.push_frame(frame, direction)
358
+ return
359
+ elif isinstance(frame, StartInterruptionFrame):
312
360
  await self._handle_interruption()
313
361
  await self.push_frame(frame, direction)
314
362
  return
@@ -375,3 +423,9 @@ class VistaarLLMService(LLMService):
375
423
  asyncio.create_task(self._client.aclose())
376
424
  except:
377
425
  pass
426
+
427
+ async def _cancel_interim_message_task(self, message: str = "Cancelled interim message task"):
428
+ if self._interim_task and not self._interim_task.done():
429
+ await self.cancel_task(self._interim_task)
430
+ self._interim_task = None
431
+ logger.debug(message)