avartha-python-sdk 0.0.3__tar.gz → 0.0.5__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.
- avartha_python_sdk-0.0.5/MANIFEST.in +9 -0
- avartha_python_sdk-0.0.5/PKG-INFO +141 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/README.md +21 -16
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/THIRD_PARTY_NOTICES +9 -9
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/docs/compatibility.md +63 -162
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/docs/migration.md +39 -14
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/docs/platform.md +3 -37
- avartha_python_sdk-0.0.5/docs/pypi.md +110 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/examples/tts.py +1 -1
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/pyproject.toml +7 -9
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/setup.py +1 -4
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/_config.py +25 -10
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/client.py +12 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/elevenlabs.py +1 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/openai.py +1 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/realtime_reasoning_effort.py +3 -1
- avartha_python_sdk-0.0.5/src/avartha_python_sdk.egg-info/PKG-INFO +141 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha_python_sdk.egg-info/SOURCES.txt +2 -77
- avartha_python_sdk-0.0.3/.github/CODEOWNERS +0 -5
- avartha_python_sdk-0.0.3/.github/workflows/ci.yml +0 -102
- avartha_python_sdk-0.0.3/.github/workflows/preview-behavior.yml +0 -80
- avartha_python_sdk-0.0.3/.github/workflows/publish.yml +0 -73
- avartha_python_sdk-0.0.3/.gitignore +0 -13
- avartha_python_sdk-0.0.3/AGENTS.md +0 -21
- avartha_python_sdk-0.0.3/CONTRIBUTING.md +0 -62
- avartha_python_sdk-0.0.3/MANIFEST.in +0 -10
- avartha_python_sdk-0.0.3/Makefile +0 -30
- avartha_python_sdk-0.0.3/PKG-INFO +0 -441
- avartha_python_sdk-0.0.3/docs/audit/category-c-validation.md +0 -71
- avartha_python_sdk-0.0.3/docs/audit/findings.csv +0 -59
- avartha_python_sdk-0.0.3/docs/audit/findings.json +0 -1246
- avartha_python_sdk-0.0.3/docs/audit/fuzz-coverage.csv +0 -6751
- avartha_python_sdk-0.0.3/docs/audit/http-coverage.csv +0 -22
- avartha_python_sdk-0.0.3/docs/audit/http-results.json +0 -350
- avartha_python_sdk-0.0.3/docs/audit/invariants.json +0 -322
- avartha_python_sdk-0.0.3/docs/audit/inventory.csv +0 -350
- avartha_python_sdk-0.0.3/docs/audit/inventory.json +0 -3152
- avartha_python_sdk-0.0.3/docs/audit/live-coverage.csv +0 -220
- avartha_python_sdk-0.0.3/docs/audit/live-results.json +0 -36886
- avartha_python_sdk-0.0.3/docs/audit/report.md +0 -317
- avartha_python_sdk-0.0.3/docs/audit/source-fuzz-results.json +0 -6917
- avartha_python_sdk-0.0.3/docs/audit/source-manifest.json +0 -387
- avartha_python_sdk-0.0.3/docs/audit/state-fuzz-results.json +0 -80072
- avartha_python_sdk-0.0.3/docs/audit/summary.json +0 -19
- avartha_python_sdk-0.0.3/docs/audit/surface-matrix.csv +0 -38
- avartha_python_sdk-0.0.3/docs/audit/wire-schema-results.json +0 -56
- avartha_python_sdk-0.0.3/docs/github-policies.md +0 -26
- avartha_python_sdk-0.0.3/docs/preview-results.json +0 -123
- avartha_python_sdk-0.0.3/docs/preview-testing.md +0 -195
- avartha_python_sdk-0.0.3/docs/tts-reception-validation.md +0 -78
- avartha_python_sdk-0.0.3/docs/websocket-behavior.md +0 -140
- avartha_python_sdk-0.0.3/docs/websocket-fuzz.md +0 -107
- avartha_python_sdk-0.0.3/examples/endpoints.py +0 -39
- avartha_python_sdk-0.0.3/scripts/audit/catalog.py +0 -218
- avartha_python_sdk-0.0.3/scripts/audit/fetch_sources.py +0 -47
- avartha_python_sdk-0.0.3/scripts/audit/http_probe.py +0 -102
- avartha_python_sdk-0.0.3/scripts/audit/invariants.py +0 -121
- avartha_python_sdk-0.0.3/scripts/audit/probe.py +0 -1667
- avartha_python_sdk-0.0.3/scripts/audit/report.py +0 -312
- avartha_python_sdk-0.0.3/scripts/audit/source_fuzz.py +0 -391
- avartha_python_sdk-0.0.3/scripts/audit/state_fuzz.py +0 -39
- avartha_python_sdk-0.0.3/scripts/audit/state_model.py +0 -266
- avartha_python_sdk-0.0.3/scripts/freeze_realtime_types.py +0 -157
- avartha_python_sdk-0.0.3/scripts/preview_behavior.py +0 -1355
- avartha_python_sdk-0.0.3/scripts/preview_smoke.py +0 -375
- avartha_python_sdk-0.0.3/src/avartha/_version.py +0 -24
- avartha_python_sdk-0.0.3/src/avartha_python_sdk.egg-info/PKG-INFO +0 -441
- avartha_python_sdk-0.0.3/tests/conftest.py +0 -10
- avartha_python_sdk-0.0.3/tests/fixtures/elevenlabs-2.68.0.json +0 -1542
- avartha_python_sdk-0.0.3/tests/fixtures/openai/realtime.json +0 -2791
- avartha_python_sdk-0.0.3/tests/fixtures/openai-models-3.13.0.json +0 -325
- avartha_python_sdk-0.0.3/tests/fixtures/preview/constraints.txt +0 -4
- avartha_python_sdk-0.0.3/tests/fixtures/preview/contract.json +0 -255
- avartha_python_sdk-0.0.3/tests/fixtures/speech-contract.md +0 -46
- avartha_python_sdk-0.0.3/tests/fixtures/speech-http-2.68.0.json +0 -1081
- avartha_python_sdk-0.0.3/tests/test_clients.py +0 -124
- avartha_python_sdk-0.0.3/tests/test_control.py +0 -243
- avartha_python_sdk-0.0.3/tests/test_control_workspaces.py +0 -458
- avartha_python_sdk-0.0.3/tests/test_fence.py +0 -136
- avartha_python_sdk-0.0.3/tests/test_openai_client.py +0 -263
- avartha_python_sdk-0.0.3/tests/test_openai_http.py +0 -434
- avartha_python_sdk-0.0.3/tests/test_owned_asr.py +0 -354
- avartha_python_sdk-0.0.3/tests/test_owned_contract.py +0 -197
- avartha_python_sdk-0.0.3/tests/test_pacing.py +0 -42
- avartha_python_sdk-0.0.3/tests/test_platform_e2e.py +0 -169
- avartha_python_sdk-0.0.3/tests/test_preview_behavior_runner.py +0 -325
- avartha_python_sdk-0.0.3/tests/test_preview_fuzz.py +0 -299
- avartha_python_sdk-0.0.3/tests/test_realtime_lifecycle.py +0 -307
- avartha_python_sdk-0.0.3/tests/test_realtime_model_discovery.py +0 -253
- avartha_python_sdk-0.0.3/tests/test_speech_contract.py +0 -178
- avartha_python_sdk-0.0.3/tests/test_speech_http.py +0 -485
- avartha_python_sdk-0.0.3/tests/test_tts_context_errors.py +0 -188
- avartha_python_sdk-0.0.3/tests/test_tts_iteration.py +0 -199
- avartha_python_sdk-0.0.3/tests/test_tts_reception.py +0 -394
- avartha_python_sdk-0.0.3/tests/test_tts_send_cancellation.py +0 -431
- avartha_python_sdk-0.0.3/tests/test_websocket_urls.py +0 -152
- avartha_python_sdk-0.0.3/tests/test_websockets.py +0 -714
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/LICENSE +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/examples/realtime.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/examples/realtime_asr.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/examples/tts_multi_context.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/setup.cfg +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/__init__.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/_exceptions.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/_http_errors.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/_models.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/_openai_http.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/_openai_http_errors.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/_pacing.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/_realtime_asr.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/_realtime_openai.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/_realtime_resources.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/_realtime_tts.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/_sentinels.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/_speech_config.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/_speech_http.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/_speech_resources.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/_unsupported.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/_websocket.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/_ws_state.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/control.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/conversational_ai/__init__.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/errors.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/pagination.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/py.typed +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/realtime/__init__.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/realtime/speech.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/resources/__init__.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/resources/models.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/resources/realtime/__init__.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/resources/realtime/realtime.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/types/__init__.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/types/audio/__init__.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/types/audio/transcription_language.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/types/model.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/__init__.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/audio_transcription.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/audio_transcription_param.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/conversation_created_event.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/conversation_item.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/conversation_item_added.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/conversation_item_create_event.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/conversation_item_create_event_param.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/conversation_item_created_event.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/conversation_item_delete_event.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/conversation_item_delete_event_param.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/conversation_item_deleted_event.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/conversation_item_done.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/conversation_item_input_audio_transcription_completed_event.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/conversation_item_input_audio_transcription_delta_event.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/conversation_item_input_audio_transcription_failed_event.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/conversation_item_input_audio_transcription_segment.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/conversation_item_param.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/conversation_item_retrieve_event.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/conversation_item_retrieve_event_param.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/conversation_item_truncate_event.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/conversation_item_truncate_event_param.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/conversation_item_truncated_event.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/input_audio_buffer_append_event.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/input_audio_buffer_append_event_param.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/input_audio_buffer_clear_event.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/input_audio_buffer_clear_event_param.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/input_audio_buffer_cleared_event.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/input_audio_buffer_commit_event.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/input_audio_buffer_commit_event_param.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/input_audio_buffer_committed_event.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/input_audio_buffer_dtmf_event_received_event.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/input_audio_buffer_speech_started_event.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/input_audio_buffer_speech_stopped_event.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/input_audio_buffer_timeout_triggered.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/log_prob_properties.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/mcp_list_tools_completed.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/mcp_list_tools_failed.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/mcp_list_tools_in_progress.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/noise_reduction_type.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/output_audio_buffer_clear_event.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/output_audio_buffer_clear_event_param.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/rate_limits_updated_event.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/realtime_audio_config.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/realtime_audio_config_input.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/realtime_audio_config_input_param.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/realtime_audio_config_output.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/realtime_audio_config_output_param.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/realtime_audio_config_param.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/realtime_audio_formats.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/realtime_audio_formats_param.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/realtime_audio_input_turn_detection.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/realtime_audio_input_turn_detection_param.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/realtime_client_event.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/realtime_client_event_param.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/realtime_conversation_item_assistant_message.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/realtime_conversation_item_assistant_message_param.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/realtime_conversation_item_function_call.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/realtime_conversation_item_function_call_output.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/realtime_conversation_item_function_call_output_param.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/realtime_conversation_item_function_call_param.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/realtime_conversation_item_system_message.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/realtime_conversation_item_system_message_param.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/realtime_conversation_item_user_message.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/realtime_conversation_item_user_message_param.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/realtime_error.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/realtime_error_event.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/realtime_function_tool.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/realtime_function_tool_param.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/realtime_mcp_approval_request.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/realtime_mcp_approval_request_param.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/realtime_mcp_approval_response.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/realtime_mcp_approval_response_param.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/realtime_mcp_list_tools.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/realtime_mcp_list_tools_param.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/realtime_mcp_protocol_error.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/realtime_mcp_protocol_error_param.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/realtime_mcp_tool_call.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/realtime_mcp_tool_call_param.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/realtime_mcp_tool_execution_error.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/realtime_mcp_tool_execution_error_param.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/realtime_mcphttp_error.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/realtime_mcphttp_error_param.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/realtime_reasoning.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/realtime_reasoning_param.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/realtime_response.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/realtime_response_create_audio_output.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/realtime_response_create_audio_output_param.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/realtime_response_create_mcp_tool.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/realtime_response_create_mcp_tool_param.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/realtime_response_create_params.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/realtime_response_create_params_param.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/realtime_response_status.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/realtime_response_usage.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/realtime_response_usage_input_token_details.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/realtime_response_usage_output_token_details.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/realtime_server_event.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/realtime_session_create_request.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/realtime_session_create_request_param.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/realtime_tool_choice_config.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/realtime_tool_choice_config_param.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/realtime_tools_config.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/realtime_tools_config_param.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/realtime_tools_config_union.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/realtime_tracing_config.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/realtime_tracing_config_param.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/realtime_transcription_session_audio.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/realtime_transcription_session_audio_input.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/realtime_transcription_session_audio_input_param.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/realtime_transcription_session_audio_input_turn_detection.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/realtime_transcription_session_audio_input_turn_detection_param.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/realtime_transcription_session_audio_param.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/realtime_transcription_session_create_request.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/realtime_transcription_session_create_request_param.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/realtime_truncation.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/realtime_truncation_param.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/realtime_truncation_retention_ratio.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/realtime_truncation_retention_ratio_param.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/response_audio_delta_event.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/response_audio_done_event.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/response_audio_transcript_delta_event.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/response_audio_transcript_done_event.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/response_cancel_event.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/response_cancel_event_param.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/response_content_part_added_event.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/response_content_part_done_event.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/response_create_event.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/response_create_event_param.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/response_created_event.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/response_done_event.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/response_function_call_arguments_delta_event.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/response_function_call_arguments_done_event.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/response_mcp_call_arguments_delta.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/response_mcp_call_arguments_done.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/response_mcp_call_completed.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/response_mcp_call_failed.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/response_mcp_call_in_progress.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/response_output_item_added_event.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/response_output_item_done_event.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/response_text_delta_event.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/response_text_done_event.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/session_created_event.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/session_update_event.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/session_update_event_param.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/session_updated_event.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/types/responses/__init__.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/types/responses/image_detail.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/types/responses/response_input_file.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/types/responses/response_input_file_param.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/types/responses/response_input_image.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/types/responses/response_input_image_param.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/types/responses/response_input_text.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/types/responses/response_input_text_param.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/types/responses/response_prompt.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/types/responses/response_prompt_param.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/types/responses/tool_choice_function.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/types/responses/tool_choice_function_param.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/types/responses/tool_choice_mcp.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/types/responses/tool_choice_mcp_param.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/types/responses/tool_choice_options.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/types/shared/__init__.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/types/shared/metadata.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/types/shared_params/__init__.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/types/shared_params/metadata.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/types/speech/__init__.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/types/speech/alignment.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/types/speech/audio_output_multi.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/types/speech/close_context.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/types/speech/close_socket.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/types/speech/final_output_multi.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/types/speech/fine_tuning_response.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/types/speech/fine_tuning_response_state_value.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/types/speech/flush_context.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/types/speech/generation_config.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/types/speech/get_voices_response.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/types/speech/get_voices_v_2_response.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/types/speech/initialize_connection_multi.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/types/speech/language_response.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/types/speech/manual_verification_file_response.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/types/speech/manual_verification_response.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/types/speech/model.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/types/speech/model_rates_response_model.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/types/speech/normalized_alignment.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/types/speech/output_format.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/types/speech/pronunciation_dictionary_locator.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/types/speech/reader_resource_response_model.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/types/speech/reader_resource_response_model_resource_type.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/types/speech/realtime_voice_settings.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/types/speech/recording_response.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/types/speech/review_status.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/types/speech/send_text_multi.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/types/speech/speaker_response_model.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/types/speech/speaker_separation_response_model.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/types/speech/speaker_separation_response_model_status.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/types/speech/utterance_response_model.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/types/speech/verification_attempt_response.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/types/speech/verified_voice_language_response_model.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/types/speech/voice.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/types/speech/voice_category.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/types/speech/voice_labelling_status.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/types/speech/voice_recording_quality.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/types/speech/voice_safety_control.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/types/speech/voice_sample.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/types/speech/voice_settings.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/types/speech/voice_sharing_moderation_check_response_model.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/types/speech/voice_sharing_response.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/types/speech/voice_sharing_response_category.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/types/speech/voice_sharing_state.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/types/speech/voice_verification_response.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/types/speech_language.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/types/websocket_connection_options.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha/types/websocket_reconnection.py +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha_python_sdk.egg-info/dependency_links.txt +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha_python_sdk.egg-info/requires.txt +0 -0
- {avartha_python_sdk-0.0.3 → avartha_python_sdk-0.0.5}/src/avartha_python_sdk.egg-info/top_level.txt +0 -0
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
# Start from an allowlist, including when setuptools discovers tracked files.
|
|
2
|
+
global-exclude *
|
|
3
|
+
include LICENSE THIRD_PARTY_NOTICES README.md pyproject.toml setup.py MANIFEST.in
|
|
4
|
+
recursive-include src/avartha *.py py.typed
|
|
5
|
+
exclude src/avartha/_version.py
|
|
6
|
+
recursive-include src/avartha_python_sdk.egg-info PKG-INFO SOURCES.txt dependency_links.txt requires.txt top_level.txt
|
|
7
|
+
include docs/pypi.md docs/compatibility.md docs/migration.md docs/platform.md
|
|
8
|
+
include examples/realtime.py examples/tts.py examples/tts_multi_context.py
|
|
9
|
+
include examples/realtime_asr.py
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: avartha-python-sdk
|
|
3
|
+
Version: 0.0.5
|
|
4
|
+
Summary: Python clients for Avartha Realtime text, streaming speech, and platform management
|
|
5
|
+
Author-email: "Avartha Inc." <team@avartha.ai>
|
|
6
|
+
License-Expression: LicenseRef-Avartha-Proprietary
|
|
7
|
+
Classifier: Development Status :: 3 - Alpha
|
|
8
|
+
Classifier: Intended Audience :: Developers
|
|
9
|
+
Classifier: Operating System :: OS Independent
|
|
10
|
+
Classifier: Programming Language :: Python :: 3
|
|
11
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
12
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
13
|
+
Classifier: Programming Language :: Python :: 3.14
|
|
14
|
+
Classifier: Typing :: Typed
|
|
15
|
+
Requires-Python: >=3.12
|
|
16
|
+
Description-Content-Type: text/markdown
|
|
17
|
+
License-File: LICENSE
|
|
18
|
+
License-File: THIRD_PARTY_NOTICES
|
|
19
|
+
Requires-Dist: httpx<0.29,>=0.28.1
|
|
20
|
+
Requires-Dist: websockets<16,>=15.0.1
|
|
21
|
+
Requires-Dist: pydantic<3,>=2.11
|
|
22
|
+
Requires-Dist: typing-extensions<5,>=4.12
|
|
23
|
+
Provides-Extra: dev
|
|
24
|
+
Requires-Dist: pytest<10,>=8; extra == "dev"
|
|
25
|
+
Requires-Dist: pytest-asyncio<2,>=1; extra == "dev"
|
|
26
|
+
Requires-Dist: ruff<0.17,>=0.16; extra == "dev"
|
|
27
|
+
Requires-Dist: mypy<3,>=2.3; extra == "dev"
|
|
28
|
+
Requires-Dist: build<2,>=1; extra == "dev"
|
|
29
|
+
Requires-Dist: setuptools-scm<9,>=8; extra == "dev"
|
|
30
|
+
Dynamic: license-file
|
|
31
|
+
|
|
32
|
+
# Avartha Python SDK
|
|
33
|
+
|
|
34
|
+
Synchronous and asynchronous Python clients for Avartha Realtime text,
|
|
35
|
+
streaming speech, and platform management. Requires Python 3.12+.
|
|
36
|
+
|
|
37
|
+
## Install
|
|
38
|
+
|
|
39
|
+
```sh
|
|
40
|
+
python -m pip install avartha-python-sdk
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
Configure your Avartha API key and platform root:
|
|
44
|
+
|
|
45
|
+
```sh
|
|
46
|
+
export AVARTHA_API_KEY='avk_...'
|
|
47
|
+
export AVARTHA_BASE_URL='https://platform.preview.avartha.ai'
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
Clients default to the preview platform and support only serverless inference.
|
|
51
|
+
Set `AVARTHA_BASE_URL` for another environment. Use model and voice IDs available
|
|
52
|
+
to your workspace. Unsupported tier values and dedicated inference URLs raise
|
|
53
|
+
`ConfigurationError` locally before any request.
|
|
54
|
+
|
|
55
|
+
## Discover models
|
|
56
|
+
|
|
57
|
+
```python
|
|
58
|
+
from avartha import OpenAI
|
|
59
|
+
|
|
60
|
+
with OpenAI() as client:
|
|
61
|
+
for model in client.models.list():
|
|
62
|
+
print(model.id, model.to_dict().get("protocols", []))
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
Choose a model supporting `openai_realtime` for text, `elevenlabs_tts` for
|
|
66
|
+
speech synthesis, or `elevenlabs_asr` for speech recognition.
|
|
67
|
+
|
|
68
|
+
## Generate text
|
|
69
|
+
|
|
70
|
+
Replace `your-avartha-model` with a Realtime text model returned by discovery:
|
|
71
|
+
|
|
72
|
+
```python
|
|
73
|
+
from avartha import OpenAI
|
|
74
|
+
|
|
75
|
+
with OpenAI() as client:
|
|
76
|
+
with client.realtime.connect(model="your-avartha-model") as connection:
|
|
77
|
+
connection.session.update(session={"type": "realtime", "output_modalities": ["text"]})
|
|
78
|
+
connection.conversation.item.create(
|
|
79
|
+
item={
|
|
80
|
+
"type": "message",
|
|
81
|
+
"role": "user",
|
|
82
|
+
"content": [{"type": "input_text", "text": "Explain Python dictionaries."}],
|
|
83
|
+
}
|
|
84
|
+
)
|
|
85
|
+
connection.response.create()
|
|
86
|
+
for event in connection:
|
|
87
|
+
if event.type == "response.output_text.delta":
|
|
88
|
+
print(event.delta, end="", flush=True)
|
|
89
|
+
elif event.type == "response.done":
|
|
90
|
+
if event.response.status != "completed":
|
|
91
|
+
raise RuntimeError(f"Response ended with status: {event.response.status}")
|
|
92
|
+
break
|
|
93
|
+
elif event.type == "error":
|
|
94
|
+
raise RuntimeError(event.error.message)
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
For asynchronous text generation, use `AsyncOpenAI`, `async with`, `await`,
|
|
98
|
+
and `async for`. Close clients and active WebSocket sessions when finished.
|
|
99
|
+
Inference consumes credits.
|
|
100
|
+
|
|
101
|
+
## Supported workflows
|
|
102
|
+
|
|
103
|
+
| Workflow | Client and interface |
|
|
104
|
+
| --- | --- |
|
|
105
|
+
| Realtime text | `OpenAI` / `AsyncOpenAI`: `realtime.connect` |
|
|
106
|
+
| Model discovery | `OpenAI` / `AsyncOpenAI`: `models.list`, `models.retrieve` |
|
|
107
|
+
| Streaming TTS | `ElevenLabs` / `AsyncElevenLabs`: `text_to_speech.convert_realtime` |
|
|
108
|
+
| Multi-context TTS | `ElevenLabs` / `AsyncElevenLabs`: `text_to_speech.connect_multi_context` |
|
|
109
|
+
| Realtime ASR | `await client.speech_to_text.realtime.connect(...)` on either speech client |
|
|
110
|
+
| Speech discovery | Speech clients: models, voices, voice settings, ASR languages |
|
|
111
|
+
| Workspaces, members, invitations | `Control` / `AsyncControl` |
|
|
112
|
+
| Combined inference and management | `Avartha` / `AsyncAvartha` |
|
|
113
|
+
|
|
114
|
+
Managed inference uses WebSockets; Chat Completions, Responses, HTTP TTS,
|
|
115
|
+
and file transcription are unavailable. Agent management and conversation
|
|
116
|
+
sessions are planned; accessing `conversational_ai` currently raises
|
|
117
|
+
`NotImplementedError`.
|
|
118
|
+
|
|
119
|
+
## Migrating and handling errors
|
|
120
|
+
|
|
121
|
+
Import clients, types, and exceptions from `avartha`. Neither the OpenAI nor
|
|
122
|
+
ElevenLabs SDK needs to be installed. The supported interfaces are compatible
|
|
123
|
+
with OpenAI Python 3.13.0 and ElevenLabs Python 2.68.0. Model and voice IDs are
|
|
124
|
+
specific to the selected Avartha environment.
|
|
125
|
+
|
|
126
|
+
OpenAI-compatible HTTP discovery uses `avartha.APIStatusError` and
|
|
127
|
+
`avartha.APIConnectionError`. Speech HTTP errors use `avartha.ApiError`.
|
|
128
|
+
Management HTTP status errors use `avartha.PlatformAPIError`. Speech and
|
|
129
|
+
management HTTP network failures also raise `avartha.ApiError`, with no status
|
|
130
|
+
or headers and the original exception in `__cause__`.
|
|
131
|
+
|
|
132
|
+
Handle Realtime server error events in the receive loop. HTTP timeout and
|
|
133
|
+
retry settings do not configure WebSocket connections. Management writes are
|
|
134
|
+
never retried automatically.
|
|
135
|
+
|
|
136
|
+
## Complete guides and examples
|
|
137
|
+
|
|
138
|
+
The [source archive on PyPI](https://pypi.org/project/avartha-python-sdk/#files)
|
|
139
|
+
includes `README.md`, customer guides in `docs/`, and runnable examples in
|
|
140
|
+
`examples/`. Download and unpack the archive to read the migration, compatibility,
|
|
141
|
+
and platform-management guides and run the text, speech, and endpoint examples.
|
|
@@ -30,7 +30,6 @@ unavailable. See the guides below for supported features and migration steps.
|
|
|
30
30
|
- [Compatibility and endpoint coverage](docs/compatibility.md)
|
|
31
31
|
- [Platform management](docs/platform.md)
|
|
32
32
|
- [Runnable examples](examples)
|
|
33
|
-
- [Contributing](CONTRIBUTING.md)
|
|
34
33
|
|
|
35
34
|
## Installation
|
|
36
35
|
|
|
@@ -96,7 +95,7 @@ with OpenAI() as client:
|
|
|
96
95
|
print(model.id, model.to_dict().get("protocols", []))
|
|
97
96
|
```
|
|
98
97
|
|
|
99
|
-
Model availability depends on your workspace
|
|
98
|
+
Model availability depends on your workspace and environment. Replace
|
|
100
99
|
the example IDs with models returned for your key and the protocol you need:
|
|
101
100
|
`openai_realtime`, `elevenlabs_tts`, or `elevenlabs_asr`.
|
|
102
101
|
|
|
@@ -211,8 +210,18 @@ managed inference uses the realtime methods above.
|
|
|
211
210
|
|
|
212
211
|
### Speech to text
|
|
213
212
|
|
|
214
|
-
|
|
215
|
-
|
|
213
|
+
Live speech-to-text (realtime ASR) is asynchronous on both `ElevenLabs` and
|
|
214
|
+
`AsyncElevenLabs`. This also applies through `Avartha` and `AsyncAvartha` at
|
|
215
|
+
`client.elevenlabs.speech_to_text.realtime`; the synchronous `Avartha` client
|
|
216
|
+
does not provide a blocking live STT interface.
|
|
217
|
+
|
|
218
|
+
Await `realtime.connect()`, `connection.send()`, `connection.commit()`, and
|
|
219
|
+
`connection.close()`. Register callbacks with `connection.on()` without `await`.
|
|
220
|
+
Use `AsyncAvartha` or `AsyncElevenLabs` for an async application. See the
|
|
221
|
+
[live STT execution guidance](docs/migration.md#live-speech-to-text) for scripts
|
|
222
|
+
and applications with an existing event loop.
|
|
223
|
+
|
|
224
|
+
Send mono PCM16 audio and await a committed transcript.
|
|
216
225
|
[The complete example](examples/realtime_asr.py) reads a WAV file, registers
|
|
217
226
|
transcript/error callbacks, streams chunks, commits, and closes the connection:
|
|
218
227
|
|
|
@@ -355,10 +364,12 @@ automatically. See [timeouts and cleanup](docs/migration.md#timeouts-retries-and
|
|
|
355
364
|
|
|
356
365
|
Without an explicit URL, protocol clients derive their URL from
|
|
357
366
|
`AVARTHA_BASE_URL`, defaulting to `https://platform.preview.avartha.ai` and the
|
|
358
|
-
`serverless` tier.
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
root, and an explicit
|
|
367
|
+
`serverless` tier. Only serverless inference is supported. Unsupported `tier`
|
|
368
|
+
values and dedicated inference URLs raise `ConfigurationError` locally before
|
|
369
|
+
any request; the SDK does not silently change the selected tier.
|
|
370
|
+
`AVARTHA_ELEVENLABS_BASE_URL` overrides the derived speech root, and an explicit
|
|
371
|
+
protocol `base_url` overrides its derived URL. URL overrides do not bypass tier
|
|
372
|
+
validation.
|
|
362
373
|
|
|
363
374
|
Keys are read at construction from `AVARTHA_API_KEY` or `api_key`.
|
|
364
375
|
Vendor default keys and base URL variables are not substituted.
|
|
@@ -380,7 +391,6 @@ with Avartha() as client:
|
|
|
380
391
|
print(client.control.catalog.skus(provider="modal"))
|
|
381
392
|
print(client.control.organizations.list())
|
|
382
393
|
print(client.control.organizations.limits("your-workspace-id"))
|
|
383
|
-
print(client.control.endpoints.list(workspace_id="your-workspace-id"))
|
|
384
394
|
```
|
|
385
395
|
|
|
386
396
|
`client.openai` and `client.elevenlabs` are the protocol clients;
|
|
@@ -393,16 +403,11 @@ creation, revocation, and acceptance. For example,
|
|
|
393
403
|
See [workspace administration](docs/platform.md#workspace-administration) for
|
|
394
404
|
sync/async usage and server permissions.
|
|
395
405
|
|
|
396
|
-
Endpoint creation, readiness waiting,
|
|
397
|
-
scaling, routing, stopping, and deletion are described in the
|
|
398
|
-
[management guide](docs/platform.md).
|
|
399
|
-
|
|
400
406
|
## Examples
|
|
401
407
|
|
|
402
408
|
Runnable examples cover [Realtime text](examples/realtime.py),
|
|
403
409
|
[TTS](examples/tts.py), [multi-context TTS](examples/tts_multi_context.py),
|
|
404
|
-
[ASR](examples/realtime_asr.py)
|
|
410
|
+
[ASR](examples/realtime_asr.py).
|
|
405
411
|
Microphone capture and speaker playback are handled by your application.
|
|
406
412
|
|
|
407
|
-
Running inference examples consumes credits.
|
|
408
|
-
see [Contributing](CONTRIBUTING.md).
|
|
413
|
+
Running inference examples consumes credits.
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
Third-party schema notices
|
|
2
2
|
==========================
|
|
3
3
|
|
|
4
|
-
The
|
|
5
|
-
shared, shared_params, model
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
and
|
|
12
|
-
|
|
4
|
+
The declarations in avartha.types.realtime, avartha.types.responses,
|
|
5
|
+
avartha.types.shared, avartha.types.shared_params, avartha.types.model, and
|
|
6
|
+
avartha.types.websocket_connection_options are derived from OpenAI Python
|
|
7
|
+
3.13.0. The declarations in avartha.types.speech are derived from ElevenLabs
|
|
8
|
+
Python 2.68.0.
|
|
9
|
+
|
|
10
|
+
Avartha modified these declarations by removing descriptions and legacy
|
|
11
|
+
Pydantic branches and replacing runtime imports. These notices apply to those
|
|
12
|
+
declarations; the Avartha proprietary LICENSE remains unchanged.
|
|
13
13
|
|
|
14
14
|
OpenAI Python 3.13.0
|
|
15
15
|
--------------------
|
|
@@ -1,73 +1,37 @@
|
|
|
1
|
-
# Compatibility
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
without vendor SDKs installed: 14 SDK scenarios and two raw multi-context TTS
|
|
17
|
-
protocol scenarios. The [frozen contract](websocket-behavior.md) defines their
|
|
18
|
-
coverage and limits. Server findings below are historical prerequisites,
|
|
19
|
-
separate from SDK compatibility.
|
|
20
|
-
|
|
21
|
-
## Server baseline
|
|
22
|
-
|
|
23
|
-
Inspected and tested on 2026-09-13:
|
|
24
|
-
|
|
25
|
-
- OpenAI Python `3.13.0` and ElevenLabs Python `2.68.0` were the original
|
|
26
|
-
comparison references. Recorded contracts and owned schemas now preserve
|
|
27
|
-
compatibility without either SDK dependency or private vendor access.
|
|
28
|
-
- WebSockets `15.0.1`, HTTPX `0.28.1`, and OpenAI's HTTPX2 transport.
|
|
29
|
-
- Current `avartha/platform` main source at
|
|
30
|
-
[`1992c3ad`](https://github.com/avartha/platform/tree/1992c3ade7089195d622f98ba2676bde90812799).
|
|
31
|
-
- Live preview at `https://platform.preview.avartha.ai`; its deployed source
|
|
32
|
-
revision was not independently identified. [Initial test report](preview-testing.md).
|
|
33
|
-
- Expanded audit: **219 WebSocket cases, 21 HTTP cases, 6,750 local parser cases,
|
|
34
|
-
2,221 local state-machine sequences, and 58 triaged findings**.
|
|
35
|
-
[Full tables and evidence](audit/report.md).
|
|
36
|
-
|
|
37
|
-
The original platform checkout used during scaffolding was older than preview.
|
|
38
|
-
Its HTTP inference and missing-ElevenLabs assumptions are superseded by this audit.
|
|
39
|
-
|
|
40
|
-
## What drop-in covers
|
|
41
|
-
|
|
42
|
-
Owned clients preserve the in-scope method shapes, payloads, event schemas,
|
|
43
|
-
and error attributes with their own types and exceptions. Change the `openai`
|
|
44
|
-
import prefix to `avartha` for the supported Realtime text surface, and use
|
|
45
|
-
Avartha speech clients, types, and errors in place of ElevenLabs imports.
|
|
46
|
-
Compatibility is limited by the selected service and model; the SDK does not
|
|
47
|
-
translate between protocols.
|
|
48
|
-
|
|
49
|
-
| Surface | SDK support | Current managed platform / live preview |
|
|
1
|
+
# Compatibility and server support
|
|
2
|
+
|
|
3
|
+
Avartha supports the OpenAI Python 3.13.0 Realtime text interface and the
|
|
4
|
+
ElevenLabs Python 2.68.0 realtime speech and discovery interfaces. Neither
|
|
5
|
+
vendor SDK needs to be installed. Import clients, types, and exceptions from
|
|
6
|
+
Avartha; see the [migration guide](migration.md).
|
|
7
|
+
|
|
8
|
+
## Supported APIs
|
|
9
|
+
|
|
10
|
+
SDK support and server availability are separate. Select a model available to
|
|
11
|
+
your workspace on serverless inference, and use only the features that model supports.
|
|
12
|
+
Avartha managed inference uses WebSockets. Discovery and platform management
|
|
13
|
+
use HTTP.
|
|
14
|
+
|
|
15
|
+
| Surface | SDK support | Server prerequisites |
|
|
50
16
|
| --- | --- | --- |
|
|
51
|
-
| OpenAI Realtime text |
|
|
52
|
-
| OpenAI
|
|
53
|
-
| OpenAI
|
|
54
|
-
| Chat Completions, Responses, SSE
|
|
55
|
-
|
|
|
56
|
-
|
|
|
57
|
-
|
|
|
58
|
-
|
|
|
59
|
-
|
|
|
60
|
-
|
|
|
61
|
-
|
|
|
62
|
-
|
|
|
63
|
-
|
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
## Standalone OpenAI Realtime text
|
|
17
|
+
| OpenAI Realtime text | Sync/async `realtime.connect()` | A model supporting `openai_realtime` and the requested session options |
|
|
18
|
+
| OpenAI model discovery | Sync/async `models.list()` and `models.retrieve(model)` | A valid Avartha key; results depend on workspace |
|
|
19
|
+
| OpenAI Realtime audio, transcription, images, and beta API | Unavailable | Use speech clients for supported audio workflows |
|
|
20
|
+
| Chat Completions, Responses, SSE, and OpenAI HTTP speech | Unavailable | Managed inference requires a Realtime connection |
|
|
21
|
+
| Speech models and voices | Typed sync/async HTTP discovery | A visible speech model; voice discovery requires a routable TTS model |
|
|
22
|
+
| ASR languages | Sync/async `speech_to_text.languages.list(model_id=...)` | A routable ASR model; language hints depend on the model |
|
|
23
|
+
| Single-context TTS | Sync/async `convert_realtime` | A TTS model and voice supporting the selected PCM format |
|
|
24
|
+
| Multi-context TTS | Sync/async `connect_multi_context` | A model supporting multiple contexts; each utterance needs a new context ID |
|
|
25
|
+
| Realtime ASR | Async connections on both speech clients | An ASR model supporting the supplied audio format and sample rate |
|
|
26
|
+
| HTTP TTS and file transcription | Unavailable | Use realtime speech methods |
|
|
27
|
+
| Agents, tools, knowledge bases, conversation sessions/history | Planned; currently unavailable | Accessing `conversational_ai` raises `NotImplementedError` |
|
|
28
|
+
| Catalog, workspaces, members, and invitations | Sync/async `Control` | An Avartha API key with the required workspace role and allocation |
|
|
29
|
+
| API-key administration | Unavailable through `Control` | Use the platform portal; these operations require a browser session |
|
|
30
|
+
|
|
31
|
+
See [platform management](platform.md) for workspace roles, invitation
|
|
32
|
+
requirements, and permissions.
|
|
33
|
+
|
|
34
|
+
## OpenAI Realtime text
|
|
71
35
|
|
|
72
36
|
`avartha.OpenAI` / `Client` and `avartha.AsyncOpenAI` / `AsyncClient` support the
|
|
73
37
|
current `client.realtime.connect()` API from OpenAI 3.13.0. Connection and resource
|
|
@@ -82,8 +46,9 @@ creation/cancellation, text deltas, function-call arguments and outputs, raw
|
|
|
82
46
|
frames, sync/async iteration, callbacks, pre-connection buffering, and opt-in
|
|
83
47
|
reconnection. Payloads and unknown event fields are preserved. Incomplete server
|
|
84
48
|
events are constructed permissively; `to_dict()` and `to_json()` retain the
|
|
85
|
-
|
|
86
|
-
|
|
49
|
+
serialization methods. The server must implement each requested feature.
|
|
50
|
+
Inspect `response.done.response.status` to distinguish successful completion
|
|
51
|
+
from failure, cancellation, or an incomplete response.
|
|
87
52
|
|
|
88
53
|
Explicit audio/transcription/image requests raise `UnsupportedOperationError`
|
|
89
54
|
before a frame is sent or queued. Audio event declarations remain importable for
|
|
@@ -91,11 +56,9 @@ schema compatibility. Unsupported HTTP resources, including Chat Completions,
|
|
|
91
56
|
Responses, and Realtime calls/client secrets, raise the same exception.
|
|
92
57
|
The older `client.beta.realtime` wire schema is outside this contract.
|
|
93
58
|
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
HTTP-only settings such as `timeout`, `max_retries`, and
|
|
98
|
-
`_strict_response_validation` do not control the WebSocket. Use
|
|
59
|
+
The constructor accepts only `tier="serverless"`. Client copies apply the same
|
|
60
|
+
configuration validation. Custom `http_client` arguments are unsupported.
|
|
61
|
+
HTTP settings such as `timeout` and `max_retries` do not control the WebSocket. Use
|
|
99
62
|
`websocket_connection_options` and the arguments to `realtime.connect()` for
|
|
100
63
|
socket timeouts and retries. Closing a client closes its internally created HTTP
|
|
101
64
|
transport and prevents new connections; each Realtime context owns its socket.
|
|
@@ -117,14 +80,13 @@ with OpenAI() as client:
|
|
|
117
80
|
print(client.models.list().to_json())
|
|
118
81
|
```
|
|
119
82
|
|
|
120
|
-
The
|
|
121
|
-
|
|
122
|
-
under `/inference/{serverless|dedicated}/openai/v1`:
|
|
83
|
+
The client uses these HTTP routes under
|
|
84
|
+
`/inference/serverless/openai/v1`:
|
|
123
85
|
|
|
124
86
|
| SDK method | GET path | Server prerequisites |
|
|
125
87
|
| --- | --- | --- |
|
|
126
|
-
| `models.list()` | `/models` | Returns models visible to the caller
|
|
127
|
-
| `models.retrieve(model)` | `/models/{model}` | Model ID must be visible on
|
|
88
|
+
| `models.list()` | `/models` | Returns serverless models visible to the caller; an empty list is valid |
|
|
89
|
+
| `models.retrieve(model)` | `/models/{model}` | Model ID must be visible on serverless inference; slashes in IDs are URL-encoded |
|
|
128
90
|
|
|
129
91
|
Both clients return typed `avartha.types.Model` objects and preserve additional
|
|
130
92
|
platform fields such as `protocols`, `model_type`, and `websocket_limits`.
|
|
@@ -136,8 +98,8 @@ are unsupported.
|
|
|
136
98
|
|
|
137
99
|
The transport is created on the first HTTP request and closed with the client.
|
|
138
100
|
`copy()` and `with_options()` create clients with independently owned transports.
|
|
139
|
-
`timeout
|
|
140
|
-
|
|
101
|
+
`timeout` and `max_retries` apply to these HTTP calls.
|
|
102
|
+
Transient failures retry twice by default; `max_retries=0` disables retries.
|
|
141
103
|
Redirects must stay on the configured origin, including the platform redirect
|
|
142
104
|
that decodes slashes in model IDs. Neither constructor nor copy method accepts
|
|
143
105
|
`http_client`.
|
|
@@ -152,13 +114,12 @@ raise `APITimeoutError`. The OpenAI HTTP 422 class is
|
|
|
152
114
|
|
|
153
115
|
## Speech HTTP discovery
|
|
154
116
|
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
under `/inference/{serverless|dedicated}/elevenlabs`:
|
|
117
|
+
Speech discovery uses these HTTP routes under
|
|
118
|
+
`/inference/serverless/elevenlabs`:
|
|
158
119
|
|
|
159
120
|
| SDK method | GET path | Server prerequisites |
|
|
160
121
|
| --- | --- | --- |
|
|
161
|
-
| `models.list()` | `/v1/models` | A speech model visible to the caller
|
|
122
|
+
| `models.list()` | `/v1/models` | A serverless speech model visible to the caller |
|
|
162
123
|
| `voices.get_all()` | `/v1/voices` | A routable TTS model with runtime voice discovery |
|
|
163
124
|
| `voices.search(...)` | `/v2/voices` | Same; supported filters are `search`, `page_size` (1–100), `next_page_token`, and `include_total_count` |
|
|
164
125
|
| `voices.get(voice_id)` | `/v1/voices/{voice_id}` | Voice exists for the selected model |
|
|
@@ -174,9 +135,10 @@ are forwarded without translation and are currently rejected by this server.
|
|
|
174
135
|
Voice creation, deletion, default settings, model detail, and HTTP speech
|
|
175
136
|
inference are not part of this resource set.
|
|
176
137
|
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
138
|
+
Failed HTTP responses raise `avartha.ApiError`, with status, headers, and body;
|
|
139
|
+
HTTP 422 raises `avartha.UnprocessableEntityError`. HTTP network failures and
|
|
140
|
+
timeouts also raise `avartha.ApiError`, with no status or headers, a description
|
|
141
|
+
in `body`, and the original exception in `__cause__`.
|
|
180
142
|
[Usage examples](migration.md#discover-models-voices-and-asr-languages).
|
|
181
143
|
|
|
182
144
|
## Realtime TTS
|
|
@@ -195,8 +157,6 @@ Text order and ingress pacing are preserved. The helpers
|
|
|
195
157
|
use one socket reader and the WebSocket library's bounded buffers; a slow audio
|
|
196
158
|
consumer applies backpressure instead of filling an unbounded SDK audio queue.
|
|
197
159
|
This does not change when the serving model starts generating audio.
|
|
198
|
-
See the [reception validation report](tts-reception-validation.md) for regression
|
|
199
|
-
coverage and the limits of the live Preview evidence.
|
|
200
160
|
|
|
201
161
|
Both single-context and multi-context SDK helpers always send `auto_mode=true`.
|
|
202
162
|
The SDK does not support `auto_mode=False` or `default_mode`.
|
|
@@ -225,7 +185,7 @@ with the async client when available.
|
|
|
225
185
|
before the server's inactivity deadline while the context remains open.
|
|
226
186
|
3. `flush(context_id)` generates audio and completes that context. Alternatively,
|
|
227
187
|
`close_context(context_id)` flushes pending text before closing the context.
|
|
228
|
-
4. Receive
|
|
188
|
+
4. Receive typed audio/final messages. Use `message.context_id` to route audio
|
|
229
189
|
and `audio_bytes(message)` to decode it.
|
|
230
190
|
|
|
231
191
|
**Connection consumer:** `for message in session` (or `async for`) waits for
|
|
@@ -286,29 +246,31 @@ for a replacement. Errors without a known
|
|
|
286
246
|
context ID do not settle other contexts or hide missing finals.
|
|
287
247
|
|
|
288
248
|
Keepalives require an existing context that has not been flushed, closed, or
|
|
289
|
-
completed.
|
|
290
|
-
|
|
249
|
+
completed. Create a new context ID for each utterance; reusing a context after
|
|
250
|
+
flushing it is unsupported.
|
|
291
251
|
|
|
292
252
|
TTS sends are paced automatically with headroom below the default ingress
|
|
293
253
|
budget of 1,000 burst frames and 250 frames/second. If a deployment advertises
|
|
294
254
|
different limits, pass its `websocket_limits` mapping to the `ElevenLabs` or
|
|
295
255
|
`AsyncElevenLabs` constructor. Limits are applied separately to each socket.
|
|
296
256
|
|
|
297
|
-
|
|
298
|
-
|
|
257
|
+
Audio formats and `voice_settings` depend on the selected model. Specifying an
|
|
258
|
+
option in the SDK does not make it available on the server. Runnable examples:
|
|
299
259
|
[single-context](../examples/tts.py), [multi-context](../examples/tts_multi_context.py).
|
|
300
260
|
|
|
301
261
|
## URLs and authentication
|
|
302
262
|
|
|
303
263
|
- `Avartha` and `Control` accept a platform root, including a proxy prefix.
|
|
304
|
-
- OpenAI defaults to `ROOT/inference/
|
|
305
|
-
- ElevenLabs defaults to `ROOT/inference/
|
|
264
|
+
- OpenAI defaults to `ROOT/inference/serverless/openai/v1`, using bearer auth.
|
|
265
|
+
- ElevenLabs defaults to `ROOT/inference/serverless/elevenlabs` and appends its
|
|
306
266
|
original `/v1/...` paths, using `xi-api-key`.
|
|
307
267
|
- An explicit protocol `base_url` is a full dialect/service base. Speech also
|
|
308
268
|
supports `AVARTHA_ELEVENLABS_BASE_URL` as an override.
|
|
309
|
-
- Both
|
|
269
|
+
- Both protocol clients support only `tier="serverless"`. Other tier values and
|
|
270
|
+
dedicated inference URLs raise `ConfigurationError` before any request,
|
|
271
|
+
including with explicit or environment URL overrides.
|
|
310
272
|
- HTTP/HTTPS maps to WS/WSS. No implicit hosted-vendor credential fallback exists.
|
|
311
|
-
-
|
|
273
|
+
- Clients never read vendor environment variables. `OPENAI_ADMIN_KEY`,
|
|
312
274
|
`OPENAI_API_KEY`, `OPENAI_BASE_URL`, `OPENAI_CUSTOM_HEADERS`, `OPENAI_ORG_ID`,
|
|
313
275
|
`OPENAI_PROJECT_ID` and `OPENAI_WEBHOOK_SECRET` never reach an Avartha request,
|
|
314
276
|
and `base_url`, `websocket_base_url` and `data_residency` are refused when they
|
|
@@ -317,64 +279,3 @@ support for other codecs or non-null `voice_settings`. Runnable examples:
|
|
|
317
279
|
- The ASR token option is preserved, including suppression of the API-key header
|
|
318
280
|
when a token is supplied. Token issuance is a separate server prerequisite.
|
|
319
281
|
Agent signed-URL handling will be implemented with the future Agents client.
|
|
320
|
-
|
|
321
|
-
## Remaining server compatibility work
|
|
322
|
-
|
|
323
|
-
The [expanded audit](audit/report.md) separates substantial feature work (A),
|
|
324
|
-
bounded additions (B), and small corrections (C). It includes successful flows
|
|
325
|
-
and expected rejections alongside defects; error quality and session recovery
|
|
326
|
-
are tracked as required compatibility work.
|
|
327
|
-
|
|
328
|
-
The Avartha Platform needs to support the official helper's default generation controls;
|
|
329
|
-
the SDK now sends an envelope the gateway accepts, but `voice_settings` stays
|
|
330
|
-
unusable because any non-null value is refused. A TTS rejection still collapses
|
|
331
|
-
to a generic `upstream_error` regardless of cause, so the SDK reports the
|
|
332
|
-
server's payload without being able to explain it. The original upstream errors
|
|
333
|
-
and failures remain visible; the SDK does not turn failures into success.
|
|
334
|
-
|
|
335
|
-
Programmatic agent creation with the ElevenLabs schema requires matching
|
|
336
|
-
`/v1/convai/agents/...` endpoints. Current Avartha agent CRUD lives at
|
|
337
|
-
`/control/v1/organizations/{workspace_id}/voice-agents` with a different request
|
|
338
|
-
schema and generation rules. The SDK does not translate between those contracts.
|
|
339
|
-
An empty conversation list does not establish populated history, filtering,
|
|
340
|
-
agent CRUD, or conversation runtime compatibility. The official agent helper
|
|
341
|
-
also sends initialization metadata the current gateway rejects, and its default
|
|
342
|
-
audio playback rate differs from the advertised agent output rate.
|
|
343
|
-
|
|
344
|
-
API-key administration and staff routes are outside the bearer-authenticated
|
|
345
|
-
Control client's promised resources.
|
|
346
|
-
|
|
347
|
-
## Validation
|
|
348
|
-
|
|
349
|
-
HTTP contracts cover owned speech discovery and Control. OpenAI HTTP calls are
|
|
350
|
-
tested for explicit local rejection without network requests. Loopback
|
|
351
|
-
WebSocket tests exercise Realtime text and speech clients, including pacing,
|
|
352
|
-
cancellation, context lifecycle, errors, authentication, and callback delivery.
|
|
353
|
-
Frozen ElevenLabs 2.68.0 fixtures verify signatures, enum members, type
|
|
354
|
-
serialization, and error attributes without installing that SDK. TTS text
|
|
355
|
-
forwarding deliberately differs from upstream chunking: local WebSocket tests
|
|
356
|
-
verify exact input text and delivery while the producer is paused.
|
|
357
|
-
Frozen HTTP fixtures cover voice/model method signatures, query encoding, and
|
|
358
|
-
nested response types. Loopback HTTP tests exercise every discovery method
|
|
359
|
-
through internally managed transports and verify that fuzz assertions reject
|
|
360
|
-
broken pagination, settings, model capabilities, and language metadata.
|
|
361
|
-
|
|
362
|
-
OpenAI parser expectations are captured in
|
|
363
|
-
[`tests/fixtures/openai/realtime.json`](../tests/fixtures/openai/realtime.json),
|
|
364
|
-
with complete and incomplete payloads for all 46 pinned server-event variants.
|
|
365
|
-
They do not require an installed OpenAI package. GitHub CI runs the complete
|
|
366
|
-
local test suite, including real WebSocket tests.
|
|
367
|
-
|
|
368
|
-
The explicit live runner exercises preview separately and exits nonzero on a
|
|
369
|
-
failed check. It never provisions or deletes endpoints. Upstream WebSocket
|
|
370
|
-
deprecation warnings remain visible in the local suite.
|
|
371
|
-
|
|
372
|
-
## References
|
|
373
|
-
|
|
374
|
-
- [Avartha managed realtime contract](https://github.com/avartha/platform/blob/1992c3ade7089195d622f98ba2676bde90812799/docs/realtime-protocol-migration.md)
|
|
375
|
-
- [Avartha TTS contract](https://github.com/avartha/platform/blob/1992c3ade7089195d622f98ba2676bde90812799/docs/console/api/text-to-speech.rst)
|
|
376
|
-
- [Avartha ASR contract](https://github.com/avartha/platform/blob/1992c3ade7089195d622f98ba2676bde90812799/docs/console/api/speech-to-text.rst)
|
|
377
|
-
- [OpenAI Realtime guide](https://developers.openai.com/api/docs/guides/realtime)
|
|
378
|
-
- [ElevenLabs streaming TTS](https://elevenlabs.io/docs/eleven-api/guides/how-to/websockets/realtime-tts)
|
|
379
|
-
- [ElevenLabs realtime ASR](https://elevenlabs.io/docs/eleven-api/guides/how-to/speech-to-text/realtime/server-side-streaming)
|
|
380
|
-
- [ElevenLabs agent creation](https://elevenlabs.io/docs/eleven-agents/api-reference/agents/create)
|