dv-pipecat-ai 0.0.82.dev884__tar.gz → 0.0.85.dev5__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.
- dv_pipecat_ai-0.0.85.dev5/.github/workflows/force_push_to_pypi.yml +72 -0
- dv_pipecat_ai-0.0.85.dev5/.github/workflows/github.yml +414 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/PKG-INFO +2 -1
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/pyproject.toml +1 -1
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/dv_pipecat_ai.egg-info/PKG-INFO +2 -1
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/dv_pipecat_ai.egg-info/SOURCES.txt +4 -3
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/dv_pipecat_ai.egg-info/requires.txt +1 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/audio/vad/silero.py +1 -1
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/frames/frames.py +49 -0
- dv_pipecat_ai-0.0.85.dev5/src/pipecat/pipeline/tts_switcher.py +30 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/processors/aggregators/dtmf_aggregator.py +22 -29
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/processors/aggregators/llm_response.py +1 -4
- dv_pipecat_ai-0.0.85.dev5/src/pipecat/processors/dtmf_aggregator.py +255 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/processors/filters/stt_mute_filter.py +15 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/processors/user_idle_processor.py +32 -5
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/serializers/__init__.py +3 -1
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/serializers/convox.py +40 -3
- dv_pipecat_ai-0.0.85.dev5/src/pipecat/serializers/custom.py +257 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/serializers/plivo.py +4 -1
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/services/elevenlabs/stt.py +18 -8
- dv_pipecat_ai-0.0.85.dev5/src/pipecat/services/sarvam/__init__.py +15 -0
- dv_pipecat_ai-0.0.85.dev5/src/pipecat/services/sarvam/stt.py +540 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/services/sarvam/tts.py +13 -1
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/services/speechmatics/stt.py +16 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/services/vistaar/llm.py +45 -7
- dv_pipecat_ai-0.0.82.dev884/.github/workflows/github.yml +0 -402
- dv_pipecat_ai-0.0.82.dev884/.github/workflows/smart-auto-release.yml +0 -192
- dv_pipecat_ai-0.0.82.dev884/src/pipecat/processors/dtmf_aggregator.py +0 -154
- dv_pipecat_ai-0.0.82.dev884/src/pipecat/serializers/genesys.py +0 -95
- dv_pipecat_ai-0.0.82.dev884/src/pipecat/services/google/test-google-chirp.py +0 -45
- dv_pipecat_ai-0.0.82.dev884/src/pipecat/services/sarvam/__init__.py +0 -8
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/.dockerignore +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/.github/ISSUE_TEMPLATE/1-bug_report.yml +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/.github/ISSUE_TEMPLATE/2-question.yml +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/.github/ISSUE_TEMPLATE/3-feature_request.yml +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/.github/ISSUE_TEMPLATE/4-service-issue.yml +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/.github/ISSUE_TEMPLATE/5-new-service.yml +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/.github/ISSUE_TEMPLATE/6-dependency.yml +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/.github/ISSUE_TEMPLATE/7-troubleshooting.yml +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/.github/ISSUE_TEMPLATE/config.yml +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/.github/workflows/build.yaml +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/.github/workflows/coverage.yaml +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/.github/workflows/format.yaml +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/.github/workflows/promote-prod.yml +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/.github/workflows/publish.yaml +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/.github/workflows/publish_test.yaml +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/.github/workflows/python-compatibility.yaml +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/.github/workflows/set-traffic-split.yml +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/.github/workflows/sync-quickstart.yaml +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/.github/workflows/tests.yaml +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/.gitignore +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/.pre-commit-config.yaml +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/.readthedocs.yaml +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/CHANGELOG.md +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/CHANGELOG.md.template +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/CLAUDE.md +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/CONTRIBUTING.md +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/DOCKER_BUILD_OPTIMIZATION_SUMMARY.md +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/LICENSE +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/MANIFEST.in +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/README.md +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/ansible.cfg +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/ansible_deployment.sh +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/cleanup_old_containers.yml +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/codecov.yml +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/create-new-machine/ansible.cfg +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/create-new-machine/ansible_setup.sh +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/create-new-machine/inventory.ini +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/create-new-machine/replace_env.yml +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/create-new-machine/setup_playbook.yml +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/create_inventory.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/delete_old_dockers.sh +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/deploy.sh +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/deploy_playbook.yml +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/docker-compose.dev.yml +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/dump_logs.yml +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/env.example +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/fetch_logs.yml +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/inventory.ini +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/k8s/dv-pipecat/.helmignore +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/k8s/dv-pipecat/Chart.yaml +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/k8s/dv-pipecat/templates/_helpers.tpl +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/k8s/dv-pipecat/templates/backendconfig.yaml +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/k8s/dv-pipecat/templates/cluster-role.yaml +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/k8s/dv-pipecat/templates/deployment.yaml +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/k8s/dv-pipecat/templates/hpa.yaml +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/k8s/dv-pipecat/templates/ingress.yaml +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/k8s/dv-pipecat/templates/keda-api-key-secret.yaml +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/k8s/dv-pipecat/templates/keda-scaledobject.yaml +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/k8s/dv-pipecat/templates/keda-trigger-auth.yaml +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/k8s/dv-pipecat/templates/pdb.yaml +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/k8s/dv-pipecat/templates/service.yaml +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/k8s/dv-pipecat/values-canary.yaml +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/k8s/dv-pipecat/values-prod.yaml +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/k8s/dv-pipecat/values-stage.yaml +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/k8s/dv-pipecat/values.yaml +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/k8s/istio/destination-virtualservice.yaml +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/merge-code-into-single-file.sh +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/pipecat.png +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/restart.sh +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/restart_playbook.yml +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/setup.cfg +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/dv_pipecat_ai.egg-info/dependency_links.txt +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/dv_pipecat_ai.egg-info/top_level.txt +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/__init__.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/adapters/__init__.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/adapters/base_llm_adapter.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/adapters/schemas/__init__.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/adapters/schemas/direct_function.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/adapters/schemas/function_schema.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/adapters/schemas/tools_schema.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/adapters/services/__init__.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/adapters/services/anthropic_adapter.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/adapters/services/aws_nova_sonic_adapter.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/adapters/services/bedrock_adapter.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/adapters/services/gemini_adapter.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/adapters/services/open_ai_adapter.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/adapters/services/open_ai_realtime_adapter.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/audio/__init__.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/audio/dtmf/__init__.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/audio/dtmf/dtmf-0.wav +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/audio/dtmf/dtmf-1.wav +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/audio/dtmf/dtmf-2.wav +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/audio/dtmf/dtmf-3.wav +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/audio/dtmf/dtmf-4.wav +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/audio/dtmf/dtmf-5.wav +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/audio/dtmf/dtmf-6.wav +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/audio/dtmf/dtmf-7.wav +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/audio/dtmf/dtmf-8.wav +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/audio/dtmf/dtmf-9.wav +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/audio/dtmf/dtmf-pound.wav +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/audio/dtmf/dtmf-star.wav +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/audio/dtmf/types.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/audio/dtmf/utils.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/audio/filters/__init__.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/audio/filters/aic_filter.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/audio/filters/base_audio_filter.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/audio/filters/koala_filter.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/audio/filters/krisp_filter.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/audio/filters/noisereduce_filter.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/audio/filters/pyrnn_local_filter.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/audio/interruptions/__init__.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/audio/interruptions/base_interruption_strategy.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/audio/interruptions/min_words_interruption_strategy.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/audio/mixers/__init__.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/audio/mixers/base_audio_mixer.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/audio/mixers/soundfile_mixer.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/audio/resamplers/__init__.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/audio/resamplers/base_audio_resampler.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/audio/resamplers/resampy_resampler.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/audio/resamplers/soxr_resampler.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/audio/resamplers/soxr_stream_resampler.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/audio/turn/__init__.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/audio/turn/base_turn_analyzer.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/audio/turn/smart_turn/__init__.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/audio/turn/smart_turn/base_smart_turn.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/audio/turn/smart_turn/fal_smart_turn.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/audio/turn/smart_turn/http_smart_turn.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/audio/turn/smart_turn/local_coreml_smart_turn.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/audio/turn/smart_turn/local_smart_turn.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/audio/turn/smart_turn/local_smart_turn_v2.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/audio/utils.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/audio/vad/__init__.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/audio/vad/data/__init__.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/audio/vad/data/silero_vad.onnx +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/audio/vad/data/silero_vad_v2.onnx +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/audio/vad/vad_analyzer.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/clocks/__init__.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/clocks/base_clock.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/clocks/system_clock.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/extensions/__init__.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/extensions/ivr/__init__.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/extensions/ivr/ivr_navigator.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/extensions/voicemail/__init__.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/extensions/voicemail/voicemail_detector.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/frames/__init__.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/frames/frames.proto +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/frames/protobufs/frames_pb2.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/metrics/__init__.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/metrics/metrics.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/observers/__init__.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/observers/base_observer.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/observers/loggers/__init__.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/observers/loggers/debug_log_observer.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/observers/loggers/llm_log_observer.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/observers/loggers/transcription_log_observer.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/observers/loggers/user_bot_latency_log_observer.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/observers/turn_tracking_observer.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/pipeline/__init__.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/pipeline/base_pipeline.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/pipeline/base_task.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/pipeline/llm_switcher.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/pipeline/parallel_pipeline.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/pipeline/pipeline.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/pipeline/runner.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/pipeline/service_switcher.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/pipeline/sync_parallel_pipeline.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/pipeline/task.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/pipeline/task_observer.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/pipeline/to_be_updated/merge_pipeline.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/processors/__init__.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/processors/aggregators/__init__.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/processors/aggregators/gated.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/processors/aggregators/gated_openai_llm_context.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/processors/aggregators/llm_context.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/processors/aggregators/llm_response_universal.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/processors/aggregators/openai_llm_context.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/processors/aggregators/sentence.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/processors/aggregators/user_response.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/processors/aggregators/vision_image_frame.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/processors/async_generator.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/processors/audio/__init__.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/processors/audio/audio_buffer_processor.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/processors/consumer_processor.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/processors/filters/__init__.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/processors/filters/frame_filter.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/processors/filters/function_filter.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/processors/filters/identity_filter.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/processors/filters/null_filter.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/processors/filters/wake_check_filter.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/processors/filters/wake_notifier_filter.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/processors/frame_processor.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/processors/frameworks/__init__.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/processors/frameworks/langchain.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/processors/frameworks/rtvi.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/processors/gstreamer/__init__.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/processors/gstreamer/pipeline_source.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/processors/idle_frame_processor.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/processors/logger.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/processors/metrics/__init__.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/processors/metrics/frame_processor_metrics.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/processors/metrics/sentry.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/processors/producer_processor.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/processors/text_transformer.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/processors/transcript_processor.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/processors/two_stage_user_idle_processor.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/py.typed +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/runner/__init__.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/runner/daily.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/runner/livekit.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/runner/run.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/runner/types.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/runner/utils.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/serializers/asterisk.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/serializers/base_serializer.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/serializers/exotel.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/serializers/livekit.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/serializers/protobuf.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/serializers/telnyx.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/serializers/twilio.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/services/__init__.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/services/ai_service.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/services/ai_services.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/services/anthropic/__init__.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/services/anthropic/llm.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/services/assemblyai/__init__.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/services/assemblyai/models.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/services/assemblyai/stt.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/services/asyncai/__init__.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/services/asyncai/tts.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/services/aws/__init__.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/services/aws/llm.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/services/aws/stt.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/services/aws/tts.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/services/aws/utils.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/services/aws_nova_sonic/__init__.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/services/aws_nova_sonic/aws.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/services/aws_nova_sonic/context.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/services/aws_nova_sonic/frames.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/services/aws_nova_sonic/ready.wav +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/services/azure/__init__.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/services/azure/common.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/services/azure/image.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/services/azure/llm.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/services/azure/stt.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/services/azure/tts.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/services/cartesia/__init__.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/services/cartesia/stt.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/services/cartesia/tts.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/services/cerebras/__init__.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/services/cerebras/llm.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/services/deepgram/__init__.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/services/deepgram/stt.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/services/deepgram/tts.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/services/deepseek/__init__.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/services/deepseek/llm.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/services/elevenlabs/__init__.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/services/elevenlabs/tts.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/services/fal/__init__.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/services/fal/image.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/services/fal/stt.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/services/fireworks/__init__.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/services/fireworks/llm.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/services/fish/__init__.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/services/fish/tts.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/services/gemini_multimodal_live/__init__.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/services/gemini_multimodal_live/events.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/services/gemini_multimodal_live/file_api.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/services/gemini_multimodal_live/gemini.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/services/gladia/__init__.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/services/gladia/config.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/services/gladia/stt.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/services/google/__init__.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/services/google/frames.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/services/google/google.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/services/google/image.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/services/google/llm.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/services/google/llm_openai.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/services/google/llm_vertex.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/services/google/rtvi.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/services/google/stt.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/services/google/tts.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/services/grok/__init__.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/services/grok/llm.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/services/groq/__init__.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/services/groq/llm.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/services/groq/stt.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/services/groq/tts.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/services/hamsa/__init__.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/services/hamsa/stt.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/services/heygen/__init__.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/services/heygen/api.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/services/heygen/client.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/services/heygen/video.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/services/image_service.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/services/inworld/__init__.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/services/inworld/tts.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/services/llm_service.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/services/lmnt/__init__.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/services/lmnt/tts.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/services/mcp_service.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/services/mem0/__init__.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/services/mem0/memory.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/services/minimax/__init__.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/services/minimax/tts.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/services/mistral/__init__.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/services/mistral/llm.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/services/moondream/__init__.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/services/moondream/vision.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/services/neuphonic/__init__.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/services/neuphonic/tts.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/services/nim/__init__.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/services/nim/llm.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/services/ollama/__init__.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/services/ollama/llm.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/services/openai/__init__.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/services/openai/base_llm.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/services/openai/image.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/services/openai/llm.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/services/openai/stt.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/services/openai/tts.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/services/openai_realtime_beta/__init__.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/services/openai_realtime_beta/azure.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/services/openai_realtime_beta/context.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/services/openai_realtime_beta/events.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/services/openai_realtime_beta/frames.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/services/openai_realtime_beta/openai.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/services/openpipe/__init__.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/services/openpipe/llm.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/services/openrouter/__init__.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/services/openrouter/llm.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/services/perplexity/__init__.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/services/perplexity/llm.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/services/piper/__init__.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/services/piper/tts.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/services/playht/__init__.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/services/playht/tts.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/services/qwen/__init__.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/services/qwen/llm.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/services/rime/__init__.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/services/rime/tts.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/services/riva/__init__.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/services/riva/stt.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/services/riva/tts.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/services/sambanova/__init__.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/services/sambanova/llm.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/services/sambanova/stt.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/services/simli/__init__.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/services/simli/video.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/services/soniox/__init__.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/services/soniox/stt.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/services/speechmatics/__init__.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/services/stt_service.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/services/tavus/__init__.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/services/tavus/video.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/services/together/__init__.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/services/together/llm.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/services/tts_service.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/services/ultravox/__init__.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/services/ultravox/stt.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/services/vision_service.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/services/vistaar/__init__.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/services/websocket_service.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/services/whisper/__init__.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/services/whisper/base_stt.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/services/whisper/stt.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/services/xtts/__init__.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/services/xtts/tts.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/sync/__init__.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/sync/base_notifier.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/sync/event_notifier.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/tests/__init__.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/tests/utils.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/transcriptions/__init__.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/transcriptions/language.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/transports/__init__.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/transports/base_input.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/transports/base_output.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/transports/base_transport.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/transports/daily/__init__.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/transports/daily/transport.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/transports/daily/utils.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/transports/livekit/__init__.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/transports/livekit/transport.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/transports/local/__init__.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/transports/local/audio.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/transports/local/tk.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/transports/network/__init__.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/transports/network/fastapi_websocket.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/transports/network/small_webrtc.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/transports/network/webrtc_connection.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/transports/network/websocket_client.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/transports/network/websocket_server.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/transports/services/__init__.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/transports/services/daily.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/transports/services/helpers/__init__.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/transports/services/helpers/daily_rest.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/transports/services/livekit.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/transports/services/tavus.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/transports/smallwebrtc/__init__.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/transports/smallwebrtc/connection.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/transports/smallwebrtc/transport.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/transports/tavus/__init__.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/transports/tavus/transport.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/transports/websocket/__init__.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/transports/websocket/client.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/transports/websocket/fastapi.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/transports/websocket/server.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/transports/whatsapp/__init__.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/transports/whatsapp/api.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/transports/whatsapp/client.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/utils/__init__.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/utils/asyncio/__init__.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/utils/asyncio/task_manager.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/utils/base_object.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/utils/logger_config.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/utils/network.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/utils/string.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/utils/text/__init__.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/utils/text/base_text_aggregator.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/utils/text/base_text_filter.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/utils/text/markdown_text_filter.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/utils/text/pattern_pair_aggregator.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/utils/text/simple_text_aggregator.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/utils/text/skip_tags_aggregator.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/utils/time.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/utils/tracing/__init__.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/utils/tracing/class_decorators.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/utils/tracing/conversation_context_provider.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/utils/tracing/service_attributes.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/utils/tracing/service_decorators.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/utils/tracing/setup.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/utils/tracing/turn_context_provider.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/utils/tracing/turn_trace_observer.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/pipecat/utils/utils.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/stop_container.yml +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/test_elevenlabs_stt_segmented.py +0 -0
- {dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/uv.lock +0 -0
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
name: Force Push to PyPI
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
workflow_dispatch:
|
|
5
|
+
inputs:
|
|
6
|
+
branch:
|
|
7
|
+
description: "Branch to build and publish to PyPI"
|
|
8
|
+
required: true
|
|
9
|
+
default: "dv-stage"
|
|
10
|
+
type: string
|
|
11
|
+
|
|
12
|
+
jobs:
|
|
13
|
+
build-and-publish:
|
|
14
|
+
runs-on: ubuntu-latest
|
|
15
|
+
permissions:
|
|
16
|
+
contents: read
|
|
17
|
+
id-token: write
|
|
18
|
+
|
|
19
|
+
steps:
|
|
20
|
+
- name: Checkout code
|
|
21
|
+
uses: actions/checkout@v4
|
|
22
|
+
with:
|
|
23
|
+
ref: ${{ github.event.inputs.branch }}
|
|
24
|
+
fetch-depth: 0
|
|
25
|
+
|
|
26
|
+
- name: Set up Python
|
|
27
|
+
uses: actions/setup-python@v4
|
|
28
|
+
with:
|
|
29
|
+
python-version: "3.12"
|
|
30
|
+
|
|
31
|
+
- name: Install build tooling
|
|
32
|
+
run: |
|
|
33
|
+
python -m pip install --upgrade pip
|
|
34
|
+
pip install build requests packaging
|
|
35
|
+
|
|
36
|
+
- name: Build package (setuptools_scm)
|
|
37
|
+
run: |
|
|
38
|
+
echo "Building package from branch: ${{ github.event.inputs.branch }}"
|
|
39
|
+
python -m build
|
|
40
|
+
ls -la dist/
|
|
41
|
+
|
|
42
|
+
- name: Extract built version
|
|
43
|
+
id: extract_version
|
|
44
|
+
run: |
|
|
45
|
+
WHEEL_FILE=$(ls dist/*.whl | head -1)
|
|
46
|
+
BUILT_VERSION=$(echo "$WHEEL_FILE" | sed -E 's/.*-([0-9]+\.[0-9]+\.[0-9]+\.dev[0-9]+)-.*/\1/')
|
|
47
|
+
echo "built_version=$BUILT_VERSION" >> $GITHUB_OUTPUT
|
|
48
|
+
echo "Built version: $BUILT_VERSION"
|
|
49
|
+
|
|
50
|
+
# Verify tar.gz matches
|
|
51
|
+
TAR_FILE=$(ls dist/*.tar.gz | head -1)
|
|
52
|
+
TAR_VERSION=$(echo "$TAR_FILE" | sed -E 's/.*-([0-9]+\.[0-9]+\.[0-9]+\.dev[0-9]+)\.tar\.gz/\1/')
|
|
53
|
+
|
|
54
|
+
if [ "$BUILT_VERSION" != "$TAR_VERSION" ]; then
|
|
55
|
+
echo "Version mismatch between wheel and tar.gz"
|
|
56
|
+
exit 1
|
|
57
|
+
fi
|
|
58
|
+
|
|
59
|
+
echo "Package ready to publish: dv-pipecat-ai version $BUILT_VERSION"
|
|
60
|
+
|
|
61
|
+
- name: Publish to PyPI
|
|
62
|
+
uses: pypa/gh-action-pypi-publish@release/v1
|
|
63
|
+
with:
|
|
64
|
+
password: ${{ secrets.PYPI_API_TOKEN }}
|
|
65
|
+
print-hash: true
|
|
66
|
+
verbose: true
|
|
67
|
+
|
|
68
|
+
- name: Summary
|
|
69
|
+
run: |
|
|
70
|
+
echo "Successfully published dv-pipecat-ai version ${{ steps.extract_version.outputs.built_version }} to PyPI"
|
|
71
|
+
echo "Branch: ${{ github.event.inputs.branch }}"
|
|
72
|
+
echo "Commit: ${{ github.sha }}"
|
|
@@ -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.
|
|
3
|
+
Version: 0.0.85.dev5
|
|
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
|
|
@@ -134,6 +134,7 @@ Requires-Dist: fastapi<0.117.0,>=0.115.6; extra == "runner"
|
|
|
134
134
|
Requires-Dist: pipecat-ai-small-webrtc-prebuilt>=1.0.0; extra == "runner"
|
|
135
135
|
Provides-Extra: sambanova
|
|
136
136
|
Provides-Extra: sarvam
|
|
137
|
+
Requires-Dist: sarvamai<1,>=0.1.19; extra == "sarvam"
|
|
137
138
|
Requires-Dist: websockets<15.0,>=13.1; extra == "sarvam"
|
|
138
139
|
Provides-Extra: sentry
|
|
139
140
|
Requires-Dist: sentry-sdk~=2.23.1; extra == "sentry"
|
|
@@ -92,7 +92,7 @@ rime = [ "websockets>=13.1,<15.0" ]
|
|
|
92
92
|
riva = [ "nvidia-riva-client~=2.21.1" ]
|
|
93
93
|
runner = [ "python-dotenv>=1.0.0,<2.0.0", "uvicorn>=0.32.0,<1.0.0", "fastapi>=0.115.6,<0.117.0", "pipecat-ai-small-webrtc-prebuilt>=1.0.0"]
|
|
94
94
|
sambanova = []
|
|
95
|
-
sarvam = [ "websockets>=13.1,<15.0" ]
|
|
95
|
+
sarvam = [ "sarvamai>=0.1.19,<1", "websockets>=13.1,<15.0" ]
|
|
96
96
|
sentry = [ "sentry-sdk~=2.23.1" ]
|
|
97
97
|
local-smart-turn = [ "coremltools>=8.0", "transformers", "torch>=2.5.0,<3", "torchaudio>=2.5.0,<3" ]
|
|
98
98
|
remote-smart-turn = []
|
{dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/dv_pipecat_ai.egg-info/PKG-INFO
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: dv-pipecat-ai
|
|
3
|
-
Version: 0.0.
|
|
3
|
+
Version: 0.0.85.dev5
|
|
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
|
|
@@ -134,6 +134,7 @@ Requires-Dist: fastapi<0.117.0,>=0.115.6; extra == "runner"
|
|
|
134
134
|
Requires-Dist: pipecat-ai-small-webrtc-prebuilt>=1.0.0; extra == "runner"
|
|
135
135
|
Provides-Extra: sambanova
|
|
136
136
|
Provides-Extra: sarvam
|
|
137
|
+
Requires-Dist: sarvamai<1,>=0.1.19; extra == "sarvam"
|
|
137
138
|
Requires-Dist: websockets<15.0,>=13.1; extra == "sarvam"
|
|
138
139
|
Provides-Extra: sentry
|
|
139
140
|
Requires-Dist: sentry-sdk~=2.23.1; extra == "sentry"
|
{dv_pipecat_ai-0.0.82.dev884 → dv_pipecat_ai-0.0.85.dev5}/src/dv_pipecat_ai.egg-info/SOURCES.txt
RENAMED
|
@@ -42,6 +42,7 @@ uv.lock
|
|
|
42
42
|
.github/ISSUE_TEMPLATE/config.yml
|
|
43
43
|
.github/workflows/build.yaml
|
|
44
44
|
.github/workflows/coverage.yaml
|
|
45
|
+
.github/workflows/force_push_to_pypi.yml
|
|
45
46
|
.github/workflows/format.yaml
|
|
46
47
|
.github/workflows/github.yml
|
|
47
48
|
.github/workflows/promote-prod.yml
|
|
@@ -49,7 +50,6 @@ uv.lock
|
|
|
49
50
|
.github/workflows/publish_test.yaml
|
|
50
51
|
.github/workflows/python-compatibility.yaml
|
|
51
52
|
.github/workflows/set-traffic-split.yml
|
|
52
|
-
.github/workflows/smart-auto-release.yml
|
|
53
53
|
.github/workflows/sync-quickstart.yaml
|
|
54
54
|
.github/workflows/tests.yaml
|
|
55
55
|
create-new-machine/ansible.cfg
|
|
@@ -178,6 +178,7 @@ src/pipecat/pipeline/service_switcher.py
|
|
|
178
178
|
src/pipecat/pipeline/sync_parallel_pipeline.py
|
|
179
179
|
src/pipecat/pipeline/task.py
|
|
180
180
|
src/pipecat/pipeline/task_observer.py
|
|
181
|
+
src/pipecat/pipeline/tts_switcher.py
|
|
181
182
|
src/pipecat/pipeline/to_be_updated/merge_pipeline.py
|
|
182
183
|
src/pipecat/processors/__init__.py
|
|
183
184
|
src/pipecat/processors/async_generator.py
|
|
@@ -230,8 +231,8 @@ src/pipecat/serializers/__init__.py
|
|
|
230
231
|
src/pipecat/serializers/asterisk.py
|
|
231
232
|
src/pipecat/serializers/base_serializer.py
|
|
232
233
|
src/pipecat/serializers/convox.py
|
|
234
|
+
src/pipecat/serializers/custom.py
|
|
233
235
|
src/pipecat/serializers/exotel.py
|
|
234
|
-
src/pipecat/serializers/genesys.py
|
|
235
236
|
src/pipecat/serializers/livekit.py
|
|
236
237
|
src/pipecat/serializers/plivo.py
|
|
237
238
|
src/pipecat/serializers/protobuf.py
|
|
@@ -306,7 +307,6 @@ src/pipecat/services/google/llm_openai.py
|
|
|
306
307
|
src/pipecat/services/google/llm_vertex.py
|
|
307
308
|
src/pipecat/services/google/rtvi.py
|
|
308
309
|
src/pipecat/services/google/stt.py
|
|
309
|
-
src/pipecat/services/google/test-google-chirp.py
|
|
310
310
|
src/pipecat/services/google/tts.py
|
|
311
311
|
src/pipecat/services/grok/__init__.py
|
|
312
312
|
src/pipecat/services/grok/llm.py
|
|
@@ -371,6 +371,7 @@ src/pipecat/services/sambanova/__init__.py
|
|
|
371
371
|
src/pipecat/services/sambanova/llm.py
|
|
372
372
|
src/pipecat/services/sambanova/stt.py
|
|
373
373
|
src/pipecat/services/sarvam/__init__.py
|
|
374
|
+
src/pipecat/services/sarvam/stt.py
|
|
374
375
|
src/pipecat/services/sarvam/tts.py
|
|
375
376
|
src/pipecat/services/simli/__init__.py
|
|
376
377
|
src/pipecat/services/simli/video.py
|
|
@@ -1306,6 +1306,20 @@ class SpeechControlParamsFrame(SystemFrame):
|
|
|
1306
1306
|
turn_params: Optional[SmartTurnParams] = None
|
|
1307
1307
|
|
|
1308
1308
|
|
|
1309
|
+
@dataclass
|
|
1310
|
+
class StartDTMFCaptureFrame(SystemFrame):
|
|
1311
|
+
"""System frame indicating the bot is actively collecting DTMF input."""
|
|
1312
|
+
|
|
1313
|
+
pass
|
|
1314
|
+
|
|
1315
|
+
|
|
1316
|
+
@dataclass
|
|
1317
|
+
class EndDTMFCaptureFrame(SystemFrame):
|
|
1318
|
+
"""System frame indicating DTMF collection has finished."""
|
|
1319
|
+
|
|
1320
|
+
pass
|
|
1321
|
+
|
|
1322
|
+
|
|
1309
1323
|
#
|
|
1310
1324
|
# Control frames
|
|
1311
1325
|
#
|
|
@@ -1473,6 +1487,17 @@ class STTUpdateSettingsFrame(ServiceUpdateSettingsFrame):
|
|
|
1473
1487
|
pass
|
|
1474
1488
|
|
|
1475
1489
|
|
|
1490
|
+
@dataclass
|
|
1491
|
+
class DTMFUpdateSettingsFrame(ServiceUpdateSettingsFrame):
|
|
1492
|
+
"""Frame for updating DTMF aggregator settings.
|
|
1493
|
+
|
|
1494
|
+
Updates DTMF configuration dynamically during conversation flow.
|
|
1495
|
+
Settings can include: timeout, digits, end, reset parameters.
|
|
1496
|
+
"""
|
|
1497
|
+
|
|
1498
|
+
pass
|
|
1499
|
+
|
|
1500
|
+
|
|
1476
1501
|
@dataclass
|
|
1477
1502
|
class VADParamsUpdateFrame(SystemFrame):
|
|
1478
1503
|
"""Frame for updating VAD parameters.
|
|
@@ -1564,6 +1589,19 @@ class StopUserIdleProcessorFrame(SystemFrame):
|
|
|
1564
1589
|
pass
|
|
1565
1590
|
|
|
1566
1591
|
|
|
1592
|
+
@dataclass
|
|
1593
|
+
class ResetUserIdleProcessorFrame(SystemFrame):
|
|
1594
|
+
"""Frame signalling the UserIdleProcessor to treat the user as active again.
|
|
1595
|
+
|
|
1596
|
+
Parameters:
|
|
1597
|
+
text: Optional transcription text that triggered the reset.
|
|
1598
|
+
is_final: Whether the transcription was marked final by STT.
|
|
1599
|
+
"""
|
|
1600
|
+
|
|
1601
|
+
text: str = ""
|
|
1602
|
+
is_final: bool = False
|
|
1603
|
+
|
|
1604
|
+
|
|
1567
1605
|
@dataclass
|
|
1568
1606
|
class WaitForDTMFFrame(ControlFrame):
|
|
1569
1607
|
"""Frame to stop the UserIdleProcessor monitoring."""
|
|
@@ -1571,6 +1609,17 @@ class WaitForDTMFFrame(ControlFrame):
|
|
|
1571
1609
|
pass
|
|
1572
1610
|
|
|
1573
1611
|
|
|
1612
|
+
@dataclass
|
|
1613
|
+
class CallTransferFrame(ControlFrame):
|
|
1614
|
+
"""Frame to request call transfer to another number/destination.
|
|
1615
|
+
|
|
1616
|
+
Parameters:
|
|
1617
|
+
target: The phone number or destination to transfer the call to.
|
|
1618
|
+
"""
|
|
1619
|
+
|
|
1620
|
+
target: str
|
|
1621
|
+
|
|
1622
|
+
|
|
1574
1623
|
@dataclass
|
|
1575
1624
|
class ManuallySwitchServiceFrame(ServiceSwitcherFrame):
|
|
1576
1625
|
"""A frame to request a manual switch in the active service in a ServiceSwitcher.
|