dv-pipecat-ai 0.0.85.dev822__tar.gz → 0.0.85.dev824__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.
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/PKG-INFO +1 -1
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/dv_pipecat_ai.egg-info/PKG-INFO +1 -1
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/processors/frame_processor.py +7 -7
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/services/salesforce/llm.py +136 -28
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/.dockerignore +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/.github/ISSUE_TEMPLATE/1-bug_report.yml +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/.github/ISSUE_TEMPLATE/2-question.yml +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/.github/ISSUE_TEMPLATE/3-feature_request.yml +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/.github/ISSUE_TEMPLATE/4-service-issue.yml +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/.github/ISSUE_TEMPLATE/5-new-service.yml +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/.github/ISSUE_TEMPLATE/6-dependency.yml +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/.github/ISSUE_TEMPLATE/7-troubleshooting.yml +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/.github/ISSUE_TEMPLATE/config.yml +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/.github/workflows/build.yaml +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/.github/workflows/coverage.yaml +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/.github/workflows/force_push_to_pypi.yml +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/.github/workflows/format.yaml +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/.github/workflows/github.yml +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/.github/workflows/promote-prod.yml +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/.github/workflows/publish.yaml +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/.github/workflows/publish_test.yaml +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/.github/workflows/python-compatibility.yaml +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/.github/workflows/set-traffic-split.yml +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/.github/workflows/sync-quickstart.yaml +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/.github/workflows/tests.yaml +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/.gitignore +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/.pre-commit-config.yaml +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/.readthedocs.yaml +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/CHANGELOG.md +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/CHANGELOG.md.template +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/CLAUDE.md +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/COMMUNITY_INTEGRATIONS.md +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/CONTRIBUTING.md +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/DOCKER_BUILD_OPTIMIZATION_SUMMARY.md +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/LICENSE +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/MANIFEST.in +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/README.md +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/SECURITY.md +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/ansible.cfg +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/ansible_deployment.sh +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/cleanup_old_containers.yml +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/codecov.yml +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/create-new-machine/ansible.cfg +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/create-new-machine/ansible_setup.sh +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/create-new-machine/inventory.ini +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/create-new-machine/replace_env.yml +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/create-new-machine/setup_playbook.yml +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/create_inventory.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/delete_old_dockers.sh +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/deploy.sh +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/deploy_playbook.yml +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/docker-compose.dev.yml +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/dump_logs.yml +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/env.example +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/fetch_logs.yml +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/inventory.ini +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/k8s/dv-pipecat/.helmignore +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/k8s/dv-pipecat/Chart.yaml +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/k8s/dv-pipecat/templates/_helpers.tpl +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/k8s/dv-pipecat/templates/backendconfig.yaml +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/k8s/dv-pipecat/templates/cluster-role.yaml +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/k8s/dv-pipecat/templates/deployment.yaml +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/k8s/dv-pipecat/templates/hpa.yaml +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/k8s/dv-pipecat/templates/ingress.yaml +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/k8s/dv-pipecat/templates/keda-api-key-secret.yaml +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/k8s/dv-pipecat/templates/keda-scaledobject.yaml +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/k8s/dv-pipecat/templates/keda-trigger-auth.yaml +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/k8s/dv-pipecat/templates/pdb.yaml +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/k8s/dv-pipecat/templates/service.yaml +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/k8s/dv-pipecat/values-canary.yaml +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/k8s/dv-pipecat/values-prod.yaml +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/k8s/dv-pipecat/values-stage.yaml +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/k8s/dv-pipecat/values.yaml +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/k8s/istio/destination-virtualservice.yaml +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/merge-code-into-single-file.sh +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/pipecat.png +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/pyproject.toml +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/restart.sh +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/restart_playbook.yml +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/setup.cfg +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/dv_pipecat_ai.egg-info/SOURCES.txt +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/dv_pipecat_ai.egg-info/dependency_links.txt +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/dv_pipecat_ai.egg-info/requires.txt +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/dv_pipecat_ai.egg-info/top_level.txt +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/adapters/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/adapters/base_llm_adapter.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/adapters/schemas/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/adapters/schemas/direct_function.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/adapters/schemas/function_schema.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/adapters/schemas/tools_schema.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/adapters/services/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/adapters/services/anthropic_adapter.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/adapters/services/aws_nova_sonic_adapter.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/adapters/services/bedrock_adapter.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/adapters/services/gemini_adapter.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/adapters/services/open_ai_adapter.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/adapters/services/open_ai_realtime_adapter.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/audio/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/audio/dtmf/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/audio/dtmf/dtmf-0.wav +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/audio/dtmf/dtmf-1.wav +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/audio/dtmf/dtmf-2.wav +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/audio/dtmf/dtmf-3.wav +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/audio/dtmf/dtmf-4.wav +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/audio/dtmf/dtmf-5.wav +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/audio/dtmf/dtmf-6.wav +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/audio/dtmf/dtmf-7.wav +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/audio/dtmf/dtmf-8.wav +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/audio/dtmf/dtmf-9.wav +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/audio/dtmf/dtmf-pound.wav +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/audio/dtmf/dtmf-star.wav +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/audio/dtmf/types.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/audio/dtmf/utils.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/audio/filters/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/audio/filters/aic_filter.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/audio/filters/base_audio_filter.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/audio/filters/koala_filter.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/audio/filters/krisp_filter.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/audio/filters/krisp_viva_filter.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/audio/filters/noisereduce_filter.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/audio/filters/pyrnn_local_filter.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/audio/interruptions/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/audio/interruptions/base_interruption_strategy.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/audio/interruptions/min_words_interruption_strategy.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/audio/mixers/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/audio/mixers/base_audio_mixer.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/audio/mixers/soundfile_mixer.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/audio/resamplers/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/audio/resamplers/base_audio_resampler.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/audio/resamplers/resampy_resampler.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/audio/resamplers/soxr_resampler.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/audio/resamplers/soxr_stream_resampler.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/audio/turn/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/audio/turn/base_turn_analyzer.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/audio/turn/smart_turn/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/audio/turn/smart_turn/base_smart_turn.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/audio/turn/smart_turn/data/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/audio/turn/smart_turn/data/smart-turn-v3.0.onnx +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/audio/turn/smart_turn/fal_smart_turn.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/audio/turn/smart_turn/http_smart_turn.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/audio/turn/smart_turn/local_coreml_smart_turn.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/audio/turn/smart_turn/local_smart_turn.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/audio/turn/smart_turn/local_smart_turn_v2.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/audio/turn/smart_turn/local_smart_turn_v3.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/audio/utils.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/audio/vad/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/audio/vad/data/README.md +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/audio/vad/data/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/audio/vad/data/silero_vad.onnx +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/audio/vad/data/silero_vad_v2.onnx +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/audio/vad/silero.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/audio/vad/vad_analyzer.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/clocks/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/clocks/base_clock.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/clocks/system_clock.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/extensions/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/extensions/ivr/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/extensions/ivr/ivr_navigator.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/extensions/voicemail/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/extensions/voicemail/voicemail_detector.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/frames/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/frames/frames.proto +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/frames/frames.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/frames/protobufs/frames_pb2.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/metrics/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/metrics/metrics.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/observers/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/observers/base_observer.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/observers/loggers/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/observers/loggers/debug_log_observer.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/observers/loggers/llm_log_observer.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/observers/loggers/transcription_log_observer.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/observers/loggers/user_bot_latency_log_observer.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/observers/turn_tracking_observer.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/pipeline/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/pipeline/base_pipeline.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/pipeline/base_task.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/pipeline/llm_switcher.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/pipeline/parallel_pipeline.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/pipeline/pipeline.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/pipeline/runner.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/pipeline/service_switcher.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/pipeline/sync_parallel_pipeline.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/pipeline/task.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/pipeline/task_observer.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/pipeline/to_be_updated/merge_pipeline.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/pipeline/tts_switcher.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/processors/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/processors/aggregators/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/processors/aggregators/dtmf_aggregator.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/processors/aggregators/gated.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/processors/aggregators/gated_llm_context.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/processors/aggregators/gated_open_ai_llm_context.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/processors/aggregators/llm_context.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/processors/aggregators/llm_response.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/processors/aggregators/llm_response_universal.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/processors/aggregators/openai_llm_context.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/processors/aggregators/sentence.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/processors/aggregators/user_response.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/processors/aggregators/vision_image_frame.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/processors/async_generator.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/processors/audio/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/processors/audio/audio_buffer_processor.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/processors/consumer_processor.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/processors/dtmf_aggregator.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/processors/filters/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/processors/filters/frame_filter.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/processors/filters/function_filter.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/processors/filters/identity_filter.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/processors/filters/null_filter.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/processors/filters/stt_mute_filter.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/processors/filters/wake_check_filter.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/processors/filters/wake_notifier_filter.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/processors/frameworks/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/processors/frameworks/langchain.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/processors/frameworks/rtvi.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/processors/frameworks/strands_agents.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/processors/gstreamer/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/processors/gstreamer/pipeline_source.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/processors/idle_frame_processor.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/processors/logger.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/processors/metrics/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/processors/metrics/frame_processor_metrics.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/processors/metrics/sentry.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/processors/producer_processor.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/processors/text_transformer.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/processors/transcript_processor.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/processors/two_stage_user_idle_processor.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/processors/user_idle_processor.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/py.typed +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/runner/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/runner/daily.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/runner/livekit.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/runner/run.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/runner/types.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/runner/utils.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/serializers/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/serializers/asterisk.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/serializers/base_serializer.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/serializers/convox.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/serializers/custom.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/serializers/exotel.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/serializers/livekit.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/serializers/plivo.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/serializers/protobuf.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/serializers/telnyx.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/serializers/twilio.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/services/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/services/ai_service.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/services/ai_services.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/services/anthropic/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/services/anthropic/llm.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/services/assemblyai/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/services/assemblyai/models.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/services/assemblyai/stt.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/services/asyncai/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/services/asyncai/tts.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/services/aws/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/services/aws/llm.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/services/aws/nova_sonic/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/services/aws/nova_sonic/context.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/services/aws/nova_sonic/frames.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/services/aws/nova_sonic/llm.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/services/aws/nova_sonic/ready.wav +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/services/aws/stt.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/services/aws/tts.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/services/aws/utils.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/services/aws_nova_sonic/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/services/aws_nova_sonic/aws.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/services/aws_nova_sonic/context.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/services/aws_nova_sonic/frames.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/services/azure/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/services/azure/common.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/services/azure/image.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/services/azure/llm.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/services/azure/realtime/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/services/azure/realtime/llm.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/services/azure/stt.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/services/azure/tts.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/services/cartesia/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/services/cartesia/stt.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/services/cartesia/tts.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/services/cerebras/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/services/cerebras/llm.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/services/deepgram/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/services/deepgram/flux/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/services/deepgram/flux/stt.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/services/deepgram/stt.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/services/deepgram/tts.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/services/deepseek/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/services/deepseek/llm.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/services/elevenlabs/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/services/elevenlabs/stt.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/services/elevenlabs/tts.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/services/fal/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/services/fal/image.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/services/fal/stt.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/services/fireworks/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/services/fireworks/llm.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/services/fish/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/services/fish/tts.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/services/gemini_multimodal_live/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/services/gemini_multimodal_live/events.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/services/gemini_multimodal_live/file_api.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/services/gemini_multimodal_live/gemini.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/services/gladia/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/services/gladia/config.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/services/gladia/stt.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/services/google/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/services/google/frames.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/services/google/gemini_live/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/services/google/gemini_live/file_api.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/services/google/gemini_live/llm.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/services/google/gemini_live/llm_vertex.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/services/google/google.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/services/google/image.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/services/google/llm.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/services/google/llm_openai.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/services/google/llm_vertex.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/services/google/rtvi.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/services/google/stt.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/services/google/tts.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/services/grok/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/services/grok/llm.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/services/groq/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/services/groq/llm.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/services/groq/stt.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/services/groq/tts.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/services/hamsa/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/services/hamsa/stt.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/services/heygen/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/services/heygen/api.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/services/heygen/client.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/services/heygen/video.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/services/hume/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/services/hume/tts.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/services/image_service.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/services/inworld/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/services/inworld/tts.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/services/llm_service.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/services/lmnt/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/services/lmnt/tts.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/services/mcp_service.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/services/mem0/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/services/mem0/memory.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/services/minimax/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/services/minimax/tts.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/services/mistral/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/services/mistral/llm.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/services/moondream/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/services/moondream/vision.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/services/neuphonic/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/services/neuphonic/tts.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/services/nim/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/services/nim/llm.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/services/ollama/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/services/ollama/llm.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/services/openai/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/services/openai/base_llm.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/services/openai/image.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/services/openai/llm.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/services/openai/realtime/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/services/openai/realtime/context.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/services/openai/realtime/events.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/services/openai/realtime/frames.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/services/openai/realtime/llm.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/services/openai/stt.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/services/openai/tts.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/services/openai_realtime/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/services/openai_realtime/azure.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/services/openai_realtime/context.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/services/openai_realtime/events.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/services/openai_realtime/frames.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/services/openai_realtime_beta/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/services/openai_realtime_beta/azure.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/services/openai_realtime_beta/context.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/services/openai_realtime_beta/events.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/services/openai_realtime_beta/frames.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/services/openai_realtime_beta/openai.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/services/openpipe/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/services/openpipe/llm.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/services/openrouter/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/services/openrouter/llm.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/services/perplexity/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/services/perplexity/llm.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/services/piper/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/services/piper/tts.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/services/playht/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/services/playht/tts.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/services/qwen/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/services/qwen/llm.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/services/rime/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/services/rime/tts.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/services/riva/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/services/riva/stt.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/services/riva/tts.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/services/salesforce/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/services/sambanova/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/services/sambanova/llm.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/services/sambanova/stt.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/services/sarvam/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/services/sarvam/stt.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/services/sarvam/tts.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/services/simli/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/services/simli/video.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/services/soniox/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/services/soniox/stt.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/services/speechmatics/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/services/speechmatics/stt.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/services/stt_service.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/services/tavus/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/services/tavus/video.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/services/together/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/services/together/llm.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/services/tts_service.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/services/ultravox/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/services/ultravox/stt.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/services/vision_service.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/services/vistaar/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/services/vistaar/llm.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/services/websocket_service.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/services/whisper/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/services/whisper/base_stt.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/services/whisper/stt.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/services/xtts/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/services/xtts/tts.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/sync/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/sync/base_notifier.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/sync/event_notifier.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/tests/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/tests/utils.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/transcriptions/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/transcriptions/language.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/transports/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/transports/base_input.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/transports/base_output.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/transports/base_transport.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/transports/daily/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/transports/daily/transport.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/transports/daily/utils.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/transports/heygen/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/transports/heygen/transport.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/transports/livekit/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/transports/livekit/transport.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/transports/local/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/transports/local/audio.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/transports/local/tk.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/transports/network/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/transports/network/fastapi_websocket.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/transports/network/small_webrtc.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/transports/network/webrtc_connection.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/transports/network/websocket_client.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/transports/network/websocket_server.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/transports/services/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/transports/services/daily.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/transports/services/helpers/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/transports/services/helpers/daily_rest.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/transports/services/livekit.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/transports/services/tavus.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/transports/smallwebrtc/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/transports/smallwebrtc/connection.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/transports/smallwebrtc/request_handler.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/transports/smallwebrtc/transport.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/transports/tavus/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/transports/tavus/transport.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/transports/websocket/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/transports/websocket/client.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/transports/websocket/fastapi.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/transports/websocket/server.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/transports/whatsapp/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/transports/whatsapp/api.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/transports/whatsapp/client.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/utils/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/utils/asyncio/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/utils/asyncio/task_manager.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/utils/base_object.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/utils/logger_config.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/utils/network.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/utils/redis.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/utils/string.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/utils/text/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/utils/text/base_text_aggregator.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/utils/text/base_text_filter.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/utils/text/markdown_text_filter.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/utils/text/pattern_pair_aggregator.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/utils/text/simple_text_aggregator.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/utils/text/skip_tags_aggregator.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/utils/time.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/utils/tracing/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/utils/tracing/class_decorators.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/utils/tracing/conversation_context_provider.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/utils/tracing/service_attributes.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/utils/tracing/service_decorators.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/utils/tracing/setup.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/utils/tracing/turn_context_provider.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/utils/tracing/turn_trace_observer.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/utils/utils.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/stop_container.yml +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/test_elevenlabs_stt_segmented.py +0 -0
- {dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/uv.lock +0 -0
|
@@ -591,7 +591,7 @@ class FrameProcessor(BaseObject):
|
|
|
591
591
|
|
|
592
592
|
async def pause_processing_system_frames(self):
|
|
593
593
|
"""Pause processing of queued system frames."""
|
|
594
|
-
logger.trace(f"{self}: pausing system frame processing")
|
|
594
|
+
self.logger.trace(f"{self}: pausing system frame processing")
|
|
595
595
|
self.__should_block_system_frames = True
|
|
596
596
|
if self.__input_event:
|
|
597
597
|
self.__input_event.clear()
|
|
@@ -812,7 +812,7 @@ class FrameProcessor(BaseObject):
|
|
|
812
812
|
True if the processor has been started.
|
|
813
813
|
"""
|
|
814
814
|
if not self.__started:
|
|
815
|
-
logger.error(f"{self} Trying to process {frame} but StartFrame not received yet")
|
|
815
|
+
self.logger.error(f"{self} Trying to process {frame} but StartFrame not received yet")
|
|
816
816
|
return self.__started
|
|
817
817
|
|
|
818
818
|
def __create_input_task(self):
|
|
@@ -876,7 +876,7 @@ class FrameProcessor(BaseObject):
|
|
|
876
876
|
|
|
877
877
|
await self._call_event_handler("on_after_process_frame", frame)
|
|
878
878
|
except Exception as e:
|
|
879
|
-
logger.exception(f"{self}: error processing frame: {e}")
|
|
879
|
+
self.logger.exception(f"{self}: error processing frame: {e}")
|
|
880
880
|
await self.push_error(ErrorFrame(str(e)))
|
|
881
881
|
|
|
882
882
|
async def __input_frame_task_handler(self):
|
|
@@ -890,11 +890,11 @@ class FrameProcessor(BaseObject):
|
|
|
890
890
|
(frame, direction, callback) = await self.__input_queue.get()
|
|
891
891
|
|
|
892
892
|
if self.__should_block_system_frames and self.__input_event:
|
|
893
|
-
logger.trace(f"{self}: system frame processing paused")
|
|
893
|
+
self.logger.trace(f"{self}: system frame processing paused")
|
|
894
894
|
await self.__input_event.wait()
|
|
895
895
|
self.__input_event.clear()
|
|
896
896
|
self.__should_block_system_frames = False
|
|
897
|
-
logger.trace(f"{self}: system frame processing resumed")
|
|
897
|
+
self.logger.trace(f"{self}: system frame processing resumed")
|
|
898
898
|
|
|
899
899
|
if isinstance(frame, SystemFrame):
|
|
900
900
|
await self.__process_frame(frame, direction, callback)
|
|
@@ -913,11 +913,11 @@ class FrameProcessor(BaseObject):
|
|
|
913
913
|
(frame, direction, callback) = await self.__process_queue.get()
|
|
914
914
|
|
|
915
915
|
if self.__should_block_frames and self.__process_event:
|
|
916
|
-
logger.trace(f"{self}: frame processing paused")
|
|
916
|
+
self.logger.trace(f"{self}: frame processing paused")
|
|
917
917
|
await self.__process_event.wait()
|
|
918
918
|
self.__process_event.clear()
|
|
919
919
|
self.__should_block_frames = False
|
|
920
|
-
logger.trace(f"{self}: frame processing resumed")
|
|
920
|
+
self.logger.trace(f"{self}: frame processing resumed")
|
|
921
921
|
|
|
922
922
|
await self.__process_frame(frame, direction, callback)
|
|
923
923
|
|
{dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/services/salesforce/llm.py
RENAMED
|
@@ -236,23 +236,49 @@ class SalesforceAgentLLMService(LLMService):
|
|
|
236
236
|
if not redis_client:
|
|
237
237
|
return
|
|
238
238
|
|
|
239
|
-
ttl_seconds = 3600
|
|
239
|
+
ttl_seconds = 3600 # Default fallback
|
|
240
|
+
|
|
241
|
+
# Try to get expiration from expires_in parameter first
|
|
240
242
|
if expires_in is not None:
|
|
241
243
|
try:
|
|
242
244
|
ttl_seconds = max(int(expires_in) - self._token_cache_leeway_secs, 30)
|
|
245
|
+
logger.debug(f"Using expires_in parameter: {expires_in}s, TTL: {ttl_seconds}s")
|
|
243
246
|
except (TypeError, ValueError):
|
|
244
|
-
logger.debug("Unable to parse
|
|
247
|
+
logger.debug("Unable to parse expires_in parameter")
|
|
248
|
+
expires_in = None
|
|
249
|
+
|
|
250
|
+
# If no expires_in available, use default TTL
|
|
251
|
+
if expires_in is None:
|
|
252
|
+
logger.debug("No expiration info found, using default TTL")
|
|
245
253
|
|
|
246
254
|
try:
|
|
247
255
|
await redis_client.set(self._token_cache_key, token, ex=ttl_seconds)
|
|
256
|
+
logger.debug(f"Cached Salesforce token with TTL: {ttl_seconds}s")
|
|
248
257
|
except Exception as exc: # pragma: no cover - cache failures shouldn't break flow
|
|
249
258
|
logger.warning(f"Failed to store Salesforce token in Redis: {exc}")
|
|
250
259
|
|
|
251
|
-
async def
|
|
252
|
-
"""
|
|
253
|
-
|
|
254
|
-
if
|
|
255
|
-
return
|
|
260
|
+
async def _clear_cached_access_token(self):
|
|
261
|
+
"""Clear cached access token from Redis."""
|
|
262
|
+
redis_client = self._get_redis_client()
|
|
263
|
+
if not redis_client:
|
|
264
|
+
return
|
|
265
|
+
|
|
266
|
+
try:
|
|
267
|
+
await redis_client.delete(self._token_cache_key)
|
|
268
|
+
logger.debug("Cleared cached Salesforce access token")
|
|
269
|
+
except Exception as exc: # pragma: no cover - cache failures shouldn't break flow
|
|
270
|
+
logger.warning(f"Failed to clear Salesforce token from Redis: {exc}")
|
|
271
|
+
|
|
272
|
+
async def _get_access_token(self, *, force_refresh: bool = False) -> str:
|
|
273
|
+
"""Get OAuth access token using client credentials.
|
|
274
|
+
|
|
275
|
+
Args:
|
|
276
|
+
force_refresh: If True, skip cache and fetch fresh token from Salesforce.
|
|
277
|
+
"""
|
|
278
|
+
if not force_refresh:
|
|
279
|
+
cached_token = await self._get_cached_access_token()
|
|
280
|
+
if cached_token:
|
|
281
|
+
return cached_token
|
|
256
282
|
|
|
257
283
|
token_url = f"{self._org_domain}/services/oauth2/token"
|
|
258
284
|
data = {
|
|
@@ -267,21 +293,58 @@ class SalesforceAgentLLMService(LLMService):
|
|
|
267
293
|
token_data = response.json()
|
|
268
294
|
access_token = token_data["access_token"]
|
|
269
295
|
await self._set_cached_access_token(access_token, token_data.get("expires_in"))
|
|
296
|
+
logger.debug("Retrieved fresh Salesforce access token")
|
|
270
297
|
return access_token
|
|
271
298
|
except Exception as e:
|
|
272
299
|
logger.error(f"Failed to get access token: {e}")
|
|
273
300
|
raise
|
|
274
301
|
|
|
302
|
+
async def _make_authenticated_request(self, method: str, url: str, **kwargs):
|
|
303
|
+
"""Make an authenticated HTTP request with automatic token refresh on auth errors.
|
|
304
|
+
|
|
305
|
+
Args:
|
|
306
|
+
method: HTTP method (GET, POST, DELETE, etc.)
|
|
307
|
+
url: Request URL
|
|
308
|
+
**kwargs: Additional arguments passed to httpx request
|
|
309
|
+
|
|
310
|
+
Returns:
|
|
311
|
+
httpx.Response: The HTTP response
|
|
312
|
+
|
|
313
|
+
Raises:
|
|
314
|
+
Exception: If request fails after token refresh attempt
|
|
315
|
+
"""
|
|
316
|
+
# First attempt with current token
|
|
317
|
+
access_token = await self._get_access_token()
|
|
318
|
+
headers = kwargs.get("headers", {})
|
|
319
|
+
headers["Authorization"] = f"Bearer {access_token}"
|
|
320
|
+
kwargs["headers"] = headers
|
|
321
|
+
|
|
322
|
+
try:
|
|
323
|
+
response = await self._http_client.request(method, url, **kwargs)
|
|
324
|
+
response.raise_for_status()
|
|
325
|
+
return response
|
|
326
|
+
except httpx.HTTPStatusError as e:
|
|
327
|
+
# If authentication error, clear cache and retry with fresh token
|
|
328
|
+
if e.response.status_code in (401, 403):
|
|
329
|
+
logger.warning(f"Salesforce authentication error ({e.response.status_code}), refreshing token")
|
|
330
|
+
await self._clear_cached_access_token()
|
|
331
|
+
|
|
332
|
+
# Retry with fresh token
|
|
333
|
+
fresh_token = await self._get_access_token(force_refresh=True)
|
|
334
|
+
headers["Authorization"] = f"Bearer {fresh_token}"
|
|
335
|
+
kwargs["headers"] = headers
|
|
336
|
+
|
|
337
|
+
response = await self._http_client.request(method, url, **kwargs)
|
|
338
|
+
response.raise_for_status()
|
|
339
|
+
return response
|
|
340
|
+
else:
|
|
341
|
+
# Re-raise non-auth errors
|
|
342
|
+
raise
|
|
343
|
+
|
|
275
344
|
async def _create_session(self) -> str:
|
|
276
345
|
"""Create a new Salesforce Agent session."""
|
|
277
|
-
access_token = await self._get_access_token()
|
|
278
346
|
session_url = f"{self._api_host}/einstein/ai-agent/v1/agents/{self._agent_id}/sessions"
|
|
279
347
|
|
|
280
|
-
headers = {
|
|
281
|
-
"Authorization": f"Bearer {access_token}",
|
|
282
|
-
"Content-Type": "application/json",
|
|
283
|
-
}
|
|
284
|
-
|
|
285
348
|
external_session_key = f"pipecat-{int(time.time())}-{id(self)}"
|
|
286
349
|
|
|
287
350
|
payload = {
|
|
@@ -295,8 +358,11 @@ class SalesforceAgentLLMService(LLMService):
|
|
|
295
358
|
}
|
|
296
359
|
|
|
297
360
|
try:
|
|
298
|
-
response = await self.
|
|
299
|
-
|
|
361
|
+
response = await self._make_authenticated_request(
|
|
362
|
+
"POST", session_url,
|
|
363
|
+
headers={"Content-Type": "application/json"},
|
|
364
|
+
json=payload
|
|
365
|
+
)
|
|
300
366
|
session_data = response.json()
|
|
301
367
|
session_id = session_data["sessionId"]
|
|
302
368
|
|
|
@@ -351,13 +417,11 @@ class SalesforceAgentLLMService(LLMService):
|
|
|
351
417
|
for session_id in expired_sessions:
|
|
352
418
|
try:
|
|
353
419
|
# End the session via API
|
|
354
|
-
access_token = await self._get_access_token()
|
|
355
420
|
url = f"{self._api_host}/einstein/ai-agent/v1/sessions/{session_id}"
|
|
356
|
-
|
|
357
|
-
"
|
|
358
|
-
"x-session-end-reason": "UserRequest"
|
|
359
|
-
|
|
360
|
-
await self._http_client.delete(url, headers=headers)
|
|
421
|
+
await self._make_authenticated_request(
|
|
422
|
+
"DELETE", url,
|
|
423
|
+
headers={"x-session-end-reason": "UserRequest"}
|
|
424
|
+
)
|
|
361
425
|
except Exception as e:
|
|
362
426
|
logger.warning(f"Failed to end session {session_id}: {e}")
|
|
363
427
|
finally:
|
|
@@ -402,14 +466,7 @@ class SalesforceAgentLLMService(LLMService):
|
|
|
402
466
|
|
|
403
467
|
async def _stream_salesforce_response(self, session_id: str, user_message: str) -> AsyncGenerator[str, None]:
|
|
404
468
|
"""Stream response from Salesforce Agent API."""
|
|
405
|
-
access_token = await self._get_access_token()
|
|
406
469
|
url = f"{self._api_host}/einstein/ai-agent/v1/sessions/{session_id}/messages/stream"
|
|
407
|
-
|
|
408
|
-
headers = {
|
|
409
|
-
"Authorization": f"Bearer {access_token}",
|
|
410
|
-
"Content-Type": "application/json",
|
|
411
|
-
"Accept": "text/event-stream",
|
|
412
|
-
}
|
|
413
470
|
|
|
414
471
|
message_data = {
|
|
415
472
|
"message": {
|
|
@@ -426,6 +483,14 @@ class SalesforceAgentLLMService(LLMService):
|
|
|
426
483
|
]
|
|
427
484
|
}
|
|
428
485
|
|
|
486
|
+
# First attempt with current token
|
|
487
|
+
access_token = await self._get_access_token()
|
|
488
|
+
headers = {
|
|
489
|
+
"Authorization": f"Bearer {access_token}",
|
|
490
|
+
"Content-Type": "application/json",
|
|
491
|
+
"Accept": "text/event-stream",
|
|
492
|
+
}
|
|
493
|
+
|
|
429
494
|
try:
|
|
430
495
|
logger.info(f"🌐 Salesforce API request: {user_message[:50]}...")
|
|
431
496
|
async with self._http_client.stream("POST", url, headers=headers, json=message_data) as response:
|
|
@@ -457,6 +522,49 @@ class SalesforceAgentLLMService(LLMService):
|
|
|
457
522
|
logger.warning(f"JSON decode error: {e}, line: {line}")
|
|
458
523
|
continue
|
|
459
524
|
|
|
525
|
+
except httpx.HTTPStatusError as e:
|
|
526
|
+
# If authentication error, retry with fresh token
|
|
527
|
+
if e.response.status_code in (401, 403):
|
|
528
|
+
logger.warning(f"Salesforce streaming authentication error ({e.response.status_code}), refreshing token")
|
|
529
|
+
await self._clear_cached_access_token()
|
|
530
|
+
|
|
531
|
+
# Retry with fresh token
|
|
532
|
+
fresh_token = await self._get_access_token(force_refresh=True)
|
|
533
|
+
headers["Authorization"] = f"Bearer {fresh_token}"
|
|
534
|
+
|
|
535
|
+
logger.info(f"🔄 Retrying Salesforce stream with fresh token: {user_message[:50]}...")
|
|
536
|
+
async with self._http_client.stream("POST", url, headers=headers, json=message_data) as response:
|
|
537
|
+
response.raise_for_status()
|
|
538
|
+
|
|
539
|
+
async for line in response.aiter_lines():
|
|
540
|
+
if not line:
|
|
541
|
+
continue
|
|
542
|
+
|
|
543
|
+
# Parse SSE format
|
|
544
|
+
if line.startswith("data: "):
|
|
545
|
+
try:
|
|
546
|
+
data = json.loads(line[6:])
|
|
547
|
+
message = data.get("message", {})
|
|
548
|
+
message_type = message.get("type")
|
|
549
|
+
|
|
550
|
+
if message_type == "TextChunk":
|
|
551
|
+
content = message.get("text", "") or message.get("message", "")
|
|
552
|
+
if content:
|
|
553
|
+
yield content
|
|
554
|
+
elif message_type == "EndOfTurn":
|
|
555
|
+
logger.info("🏁 Salesforce response complete")
|
|
556
|
+
break
|
|
557
|
+
elif message_type == "Inform":
|
|
558
|
+
# Skip INFORM events to avoid duplication
|
|
559
|
+
continue
|
|
560
|
+
|
|
561
|
+
except json.JSONDecodeError as e:
|
|
562
|
+
logger.warning(f"JSON decode error: {e}, line: {line}")
|
|
563
|
+
continue
|
|
564
|
+
else:
|
|
565
|
+
# Re-raise non-auth errors
|
|
566
|
+
logger.error(f"Failed to stream from Salesforce Agent API: {e}")
|
|
567
|
+
raise
|
|
460
568
|
except Exception as e:
|
|
461
569
|
logger.error(f"Failed to stream from Salesforce Agent API: {e}")
|
|
462
570
|
raise
|
|
File without changes
|
{dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/.github/ISSUE_TEMPLATE/1-bug_report.yml
RENAMED
|
File without changes
|
{dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/.github/ISSUE_TEMPLATE/2-question.yml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/.github/ISSUE_TEMPLATE/5-new-service.yml
RENAMED
|
File without changes
|
{dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/.github/ISSUE_TEMPLATE/6-dependency.yml
RENAMED
|
File without changes
|
|
File without changes
|
{dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/.github/ISSUE_TEMPLATE/config.yml
RENAMED
|
File without changes
|
{dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/.github/PULL_REQUEST_TEMPLATE.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/.github/workflows/force_push_to_pypi.yml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/.github/workflows/promote-prod.yml
RENAMED
|
File without changes
|
|
File without changes
|
{dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/.github/workflows/publish_test.yaml
RENAMED
|
File without changes
|
|
File without changes
|
{dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/.github/workflows/set-traffic-split.yml
RENAMED
|
File without changes
|
{dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/.github/workflows/sync-quickstart.yaml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/DOCKER_BUILD_OPTIMIZATION_SUMMARY.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/create-new-machine/ansible_setup.sh
RENAMED
|
File without changes
|
{dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/create-new-machine/inventory.ini
RENAMED
|
File without changes
|
{dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/create-new-machine/replace_env.yml
RENAMED
|
File without changes
|
{dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/create-new-machine/setup_playbook.yml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/k8s/dv-pipecat/templates/_helpers.tpl
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/k8s/dv-pipecat/templates/deployment.yaml
RENAMED
|
File without changes
|
{dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/k8s/dv-pipecat/templates/hpa.yaml
RENAMED
|
File without changes
|
{dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/k8s/dv-pipecat/templates/ingress.yaml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/k8s/dv-pipecat/templates/pdb.yaml
RENAMED
|
File without changes
|
{dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/k8s/dv-pipecat/templates/service.yaml
RENAMED
|
File without changes
|
{dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/k8s/dv-pipecat/values-canary.yaml
RENAMED
|
File without changes
|
|
File without changes
|
{dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/k8s/dv-pipecat/values-stage.yaml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/dv_pipecat_ai.egg-info/SOURCES.txt
RENAMED
|
File without changes
|
|
File without changes
|
{dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/dv_pipecat_ai.egg-info/requires.txt
RENAMED
|
File without changes
|
{dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/dv_pipecat_ai.egg-info/top_level.txt
RENAMED
|
File without changes
|
|
File without changes
|
{dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/adapters/__init__.py
RENAMED
|
File without changes
|
{dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/adapters/base_llm_adapter.py
RENAMED
|
File without changes
|
{dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/adapters/schemas/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/audio/dtmf/__init__.py
RENAMED
|
File without changes
|
{dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/audio/dtmf/dtmf-0.wav
RENAMED
|
File without changes
|
{dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/audio/dtmf/dtmf-1.wav
RENAMED
|
File without changes
|
{dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/audio/dtmf/dtmf-2.wav
RENAMED
|
File without changes
|
{dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/audio/dtmf/dtmf-3.wav
RENAMED
|
File without changes
|
{dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/audio/dtmf/dtmf-4.wav
RENAMED
|
File without changes
|
{dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/audio/dtmf/dtmf-5.wav
RENAMED
|
File without changes
|
{dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/audio/dtmf/dtmf-6.wav
RENAMED
|
File without changes
|
{dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/audio/dtmf/dtmf-7.wav
RENAMED
|
File without changes
|
{dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/audio/dtmf/dtmf-8.wav
RENAMED
|
File without changes
|
{dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/audio/dtmf/dtmf-9.wav
RENAMED
|
File without changes
|
{dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/audio/dtmf/dtmf-pound.wav
RENAMED
|
File without changes
|
{dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/audio/dtmf/dtmf-star.wav
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/audio/filters/__init__.py
RENAMED
|
File without changes
|
{dv_pipecat_ai-0.0.85.dev822 → dv_pipecat_ai-0.0.85.dev824}/src/pipecat/audio/filters/aic_filter.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|