avartha-python-sdk 0.0.4__tar.gz → 0.0.6__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (272) hide show
  1. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/MANIFEST.in +1 -1
  2. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/PKG-INFO +6 -5
  3. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/README.md +33 -16
  4. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/docs/compatibility.md +54 -15
  5. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/docs/migration.md +143 -21
  6. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/docs/platform.md +3 -37
  7. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/docs/pypi.md +5 -4
  8. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/examples/realtime_asr.py +4 -2
  9. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/_config.py +25 -10
  10. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/_realtime_asr.py +9 -1
  11. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/_speech_http.py +7 -1
  12. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/_speech_resources.py +47 -9
  13. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/client.py +12 -0
  14. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/elevenlabs.py +1 -0
  15. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/openai.py +1 -0
  16. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/realtime_reasoning_effort.py +3 -1
  17. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha_python_sdk.egg-info/PKG-INFO +6 -5
  18. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha_python_sdk.egg-info/SOURCES.txt +0 -1
  19. avartha_python_sdk-0.0.4/examples/endpoints.py +0 -39
  20. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/LICENSE +0 -0
  21. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/THIRD_PARTY_NOTICES +0 -0
  22. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/examples/realtime.py +0 -0
  23. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/examples/tts.py +0 -0
  24. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/examples/tts_multi_context.py +0 -0
  25. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/pyproject.toml +0 -0
  26. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/setup.cfg +0 -0
  27. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/setup.py +0 -0
  28. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/__init__.py +0 -0
  29. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/_exceptions.py +0 -0
  30. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/_http_errors.py +0 -0
  31. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/_models.py +0 -0
  32. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/_openai_http.py +0 -0
  33. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/_openai_http_errors.py +0 -0
  34. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/_pacing.py +0 -0
  35. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/_realtime_openai.py +0 -0
  36. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/_realtime_resources.py +0 -0
  37. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/_realtime_tts.py +0 -0
  38. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/_sentinels.py +0 -0
  39. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/_speech_config.py +0 -0
  40. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/_unsupported.py +0 -0
  41. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/_websocket.py +0 -0
  42. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/_ws_state.py +0 -0
  43. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/control.py +0 -0
  44. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/conversational_ai/__init__.py +0 -0
  45. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/errors.py +0 -0
  46. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/pagination.py +0 -0
  47. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/py.typed +0 -0
  48. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/realtime/__init__.py +0 -0
  49. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/realtime/speech.py +0 -0
  50. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/resources/__init__.py +0 -0
  51. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/resources/models.py +0 -0
  52. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/resources/realtime/__init__.py +0 -0
  53. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/resources/realtime/realtime.py +0 -0
  54. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/__init__.py +0 -0
  55. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/audio/__init__.py +0 -0
  56. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/audio/transcription_language.py +0 -0
  57. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/model.py +0 -0
  58. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/__init__.py +0 -0
  59. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/audio_transcription.py +0 -0
  60. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/audio_transcription_param.py +0 -0
  61. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/conversation_created_event.py +0 -0
  62. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/conversation_item.py +0 -0
  63. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/conversation_item_added.py +0 -0
  64. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/conversation_item_create_event.py +0 -0
  65. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/conversation_item_create_event_param.py +0 -0
  66. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/conversation_item_created_event.py +0 -0
  67. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/conversation_item_delete_event.py +0 -0
  68. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/conversation_item_delete_event_param.py +0 -0
  69. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/conversation_item_deleted_event.py +0 -0
  70. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/conversation_item_done.py +0 -0
  71. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/conversation_item_input_audio_transcription_completed_event.py +0 -0
  72. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/conversation_item_input_audio_transcription_delta_event.py +0 -0
  73. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/conversation_item_input_audio_transcription_failed_event.py +0 -0
  74. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/conversation_item_input_audio_transcription_segment.py +0 -0
  75. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/conversation_item_param.py +0 -0
  76. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/conversation_item_retrieve_event.py +0 -0
  77. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/conversation_item_retrieve_event_param.py +0 -0
  78. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/conversation_item_truncate_event.py +0 -0
  79. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/conversation_item_truncate_event_param.py +0 -0
  80. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/conversation_item_truncated_event.py +0 -0
  81. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/input_audio_buffer_append_event.py +0 -0
  82. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/input_audio_buffer_append_event_param.py +0 -0
  83. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/input_audio_buffer_clear_event.py +0 -0
  84. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/input_audio_buffer_clear_event_param.py +0 -0
  85. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/input_audio_buffer_cleared_event.py +0 -0
  86. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/input_audio_buffer_commit_event.py +0 -0
  87. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/input_audio_buffer_commit_event_param.py +0 -0
  88. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/input_audio_buffer_committed_event.py +0 -0
  89. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/input_audio_buffer_dtmf_event_received_event.py +0 -0
  90. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/input_audio_buffer_speech_started_event.py +0 -0
  91. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/input_audio_buffer_speech_stopped_event.py +0 -0
  92. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/input_audio_buffer_timeout_triggered.py +0 -0
  93. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/log_prob_properties.py +0 -0
  94. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/mcp_list_tools_completed.py +0 -0
  95. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/mcp_list_tools_failed.py +0 -0
  96. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/mcp_list_tools_in_progress.py +0 -0
  97. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/noise_reduction_type.py +0 -0
  98. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/output_audio_buffer_clear_event.py +0 -0
  99. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/output_audio_buffer_clear_event_param.py +0 -0
  100. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/rate_limits_updated_event.py +0 -0
  101. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/realtime_audio_config.py +0 -0
  102. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/realtime_audio_config_input.py +0 -0
  103. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/realtime_audio_config_input_param.py +0 -0
  104. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/realtime_audio_config_output.py +0 -0
  105. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/realtime_audio_config_output_param.py +0 -0
  106. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/realtime_audio_config_param.py +0 -0
  107. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/realtime_audio_formats.py +0 -0
  108. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/realtime_audio_formats_param.py +0 -0
  109. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/realtime_audio_input_turn_detection.py +0 -0
  110. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/realtime_audio_input_turn_detection_param.py +0 -0
  111. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/realtime_client_event.py +0 -0
  112. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/realtime_client_event_param.py +0 -0
  113. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/realtime_conversation_item_assistant_message.py +0 -0
  114. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/realtime_conversation_item_assistant_message_param.py +0 -0
  115. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/realtime_conversation_item_function_call.py +0 -0
  116. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/realtime_conversation_item_function_call_output.py +0 -0
  117. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/realtime_conversation_item_function_call_output_param.py +0 -0
  118. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/realtime_conversation_item_function_call_param.py +0 -0
  119. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/realtime_conversation_item_system_message.py +0 -0
  120. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/realtime_conversation_item_system_message_param.py +0 -0
  121. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/realtime_conversation_item_user_message.py +0 -0
  122. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/realtime_conversation_item_user_message_param.py +0 -0
  123. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/realtime_error.py +0 -0
  124. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/realtime_error_event.py +0 -0
  125. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/realtime_function_tool.py +0 -0
  126. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/realtime_function_tool_param.py +0 -0
  127. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/realtime_mcp_approval_request.py +0 -0
  128. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/realtime_mcp_approval_request_param.py +0 -0
  129. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/realtime_mcp_approval_response.py +0 -0
  130. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/realtime_mcp_approval_response_param.py +0 -0
  131. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/realtime_mcp_list_tools.py +0 -0
  132. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/realtime_mcp_list_tools_param.py +0 -0
  133. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/realtime_mcp_protocol_error.py +0 -0
  134. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/realtime_mcp_protocol_error_param.py +0 -0
  135. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/realtime_mcp_tool_call.py +0 -0
  136. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/realtime_mcp_tool_call_param.py +0 -0
  137. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/realtime_mcp_tool_execution_error.py +0 -0
  138. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/realtime_mcp_tool_execution_error_param.py +0 -0
  139. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/realtime_mcphttp_error.py +0 -0
  140. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/realtime_mcphttp_error_param.py +0 -0
  141. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/realtime_reasoning.py +0 -0
  142. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/realtime_reasoning_param.py +0 -0
  143. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/realtime_response.py +0 -0
  144. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/realtime_response_create_audio_output.py +0 -0
  145. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/realtime_response_create_audio_output_param.py +0 -0
  146. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/realtime_response_create_mcp_tool.py +0 -0
  147. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/realtime_response_create_mcp_tool_param.py +0 -0
  148. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/realtime_response_create_params.py +0 -0
  149. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/realtime_response_create_params_param.py +0 -0
  150. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/realtime_response_status.py +0 -0
  151. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/realtime_response_usage.py +0 -0
  152. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/realtime_response_usage_input_token_details.py +0 -0
  153. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/realtime_response_usage_output_token_details.py +0 -0
  154. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/realtime_server_event.py +0 -0
  155. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/realtime_session_create_request.py +0 -0
  156. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/realtime_session_create_request_param.py +0 -0
  157. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/realtime_tool_choice_config.py +0 -0
  158. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/realtime_tool_choice_config_param.py +0 -0
  159. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/realtime_tools_config.py +0 -0
  160. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/realtime_tools_config_param.py +0 -0
  161. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/realtime_tools_config_union.py +0 -0
  162. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/realtime_tracing_config.py +0 -0
  163. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/realtime_tracing_config_param.py +0 -0
  164. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/realtime_transcription_session_audio.py +0 -0
  165. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/realtime_transcription_session_audio_input.py +0 -0
  166. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/realtime_transcription_session_audio_input_param.py +0 -0
  167. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/realtime_transcription_session_audio_input_turn_detection.py +0 -0
  168. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/realtime_transcription_session_audio_input_turn_detection_param.py +0 -0
  169. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/realtime_transcription_session_audio_param.py +0 -0
  170. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/realtime_transcription_session_create_request.py +0 -0
  171. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/realtime_transcription_session_create_request_param.py +0 -0
  172. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/realtime_truncation.py +0 -0
  173. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/realtime_truncation_param.py +0 -0
  174. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/realtime_truncation_retention_ratio.py +0 -0
  175. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/realtime_truncation_retention_ratio_param.py +0 -0
  176. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/response_audio_delta_event.py +0 -0
  177. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/response_audio_done_event.py +0 -0
  178. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/response_audio_transcript_delta_event.py +0 -0
  179. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/response_audio_transcript_done_event.py +0 -0
  180. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/response_cancel_event.py +0 -0
  181. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/response_cancel_event_param.py +0 -0
  182. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/response_content_part_added_event.py +0 -0
  183. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/response_content_part_done_event.py +0 -0
  184. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/response_create_event.py +0 -0
  185. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/response_create_event_param.py +0 -0
  186. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/response_created_event.py +0 -0
  187. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/response_done_event.py +0 -0
  188. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/response_function_call_arguments_delta_event.py +0 -0
  189. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/response_function_call_arguments_done_event.py +0 -0
  190. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/response_mcp_call_arguments_delta.py +0 -0
  191. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/response_mcp_call_arguments_done.py +0 -0
  192. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/response_mcp_call_completed.py +0 -0
  193. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/response_mcp_call_failed.py +0 -0
  194. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/response_mcp_call_in_progress.py +0 -0
  195. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/response_output_item_added_event.py +0 -0
  196. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/response_output_item_done_event.py +0 -0
  197. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/response_text_delta_event.py +0 -0
  198. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/response_text_done_event.py +0 -0
  199. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/session_created_event.py +0 -0
  200. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/session_update_event.py +0 -0
  201. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/session_update_event_param.py +0 -0
  202. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/session_updated_event.py +0 -0
  203. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/responses/__init__.py +0 -0
  204. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/responses/image_detail.py +0 -0
  205. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/responses/response_input_file.py +0 -0
  206. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/responses/response_input_file_param.py +0 -0
  207. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/responses/response_input_image.py +0 -0
  208. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/responses/response_input_image_param.py +0 -0
  209. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/responses/response_input_text.py +0 -0
  210. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/responses/response_input_text_param.py +0 -0
  211. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/responses/response_prompt.py +0 -0
  212. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/responses/response_prompt_param.py +0 -0
  213. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/responses/tool_choice_function.py +0 -0
  214. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/responses/tool_choice_function_param.py +0 -0
  215. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/responses/tool_choice_mcp.py +0 -0
  216. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/responses/tool_choice_mcp_param.py +0 -0
  217. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/responses/tool_choice_options.py +0 -0
  218. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/shared/__init__.py +0 -0
  219. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/shared/metadata.py +0 -0
  220. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/shared_params/__init__.py +0 -0
  221. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/shared_params/metadata.py +0 -0
  222. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/speech/__init__.py +0 -0
  223. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/speech/alignment.py +0 -0
  224. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/speech/audio_output_multi.py +0 -0
  225. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/speech/close_context.py +0 -0
  226. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/speech/close_socket.py +0 -0
  227. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/speech/final_output_multi.py +0 -0
  228. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/speech/fine_tuning_response.py +0 -0
  229. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/speech/fine_tuning_response_state_value.py +0 -0
  230. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/speech/flush_context.py +0 -0
  231. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/speech/generation_config.py +0 -0
  232. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/speech/get_voices_response.py +0 -0
  233. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/speech/get_voices_v_2_response.py +0 -0
  234. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/speech/initialize_connection_multi.py +0 -0
  235. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/speech/language_response.py +0 -0
  236. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/speech/manual_verification_file_response.py +0 -0
  237. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/speech/manual_verification_response.py +0 -0
  238. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/speech/model.py +0 -0
  239. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/speech/model_rates_response_model.py +0 -0
  240. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/speech/normalized_alignment.py +0 -0
  241. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/speech/output_format.py +0 -0
  242. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/speech/pronunciation_dictionary_locator.py +0 -0
  243. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/speech/reader_resource_response_model.py +0 -0
  244. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/speech/reader_resource_response_model_resource_type.py +0 -0
  245. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/speech/realtime_voice_settings.py +0 -0
  246. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/speech/recording_response.py +0 -0
  247. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/speech/review_status.py +0 -0
  248. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/speech/send_text_multi.py +0 -0
  249. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/speech/speaker_response_model.py +0 -0
  250. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/speech/speaker_separation_response_model.py +0 -0
  251. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/speech/speaker_separation_response_model_status.py +0 -0
  252. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/speech/utterance_response_model.py +0 -0
  253. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/speech/verification_attempt_response.py +0 -0
  254. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/speech/verified_voice_language_response_model.py +0 -0
  255. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/speech/voice.py +0 -0
  256. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/speech/voice_category.py +0 -0
  257. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/speech/voice_labelling_status.py +0 -0
  258. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/speech/voice_recording_quality.py +0 -0
  259. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/speech/voice_safety_control.py +0 -0
  260. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/speech/voice_sample.py +0 -0
  261. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/speech/voice_settings.py +0 -0
  262. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/speech/voice_sharing_moderation_check_response_model.py +0 -0
  263. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/speech/voice_sharing_response.py +0 -0
  264. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/speech/voice_sharing_response_category.py +0 -0
  265. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/speech/voice_sharing_state.py +0 -0
  266. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/speech/voice_verification_response.py +0 -0
  267. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/speech_language.py +0 -0
  268. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/websocket_connection_options.py +0 -0
  269. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/websocket_reconnection.py +0 -0
  270. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha_python_sdk.egg-info/dependency_links.txt +0 -0
  271. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha_python_sdk.egg-info/requires.txt +0 -0
  272. {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha_python_sdk.egg-info/top_level.txt +0 -0
@@ -6,4 +6,4 @@ exclude src/avartha/_version.py
6
6
  recursive-include src/avartha_python_sdk.egg-info PKG-INFO SOURCES.txt dependency_links.txt requires.txt top_level.txt
7
7
  include docs/pypi.md docs/compatibility.md docs/migration.md docs/platform.md
8
8
  include examples/realtime.py examples/tts.py examples/tts_multi_context.py
9
- include examples/realtime_asr.py examples/endpoints.py
9
+ include examples/realtime_asr.py
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: avartha-python-sdk
3
- Version: 0.0.4
3
+ Version: 0.0.6
4
4
  Summary: Python clients for Avartha Realtime text, streaming speech, and platform management
5
5
  Author-email: "Avartha Inc." <team@avartha.ai>
6
6
  License-Expression: LicenseRef-Avartha-Proprietary
@@ -47,9 +47,10 @@ export AVARTHA_API_KEY='avk_...'
47
47
  export AVARTHA_BASE_URL='https://platform.preview.avartha.ai'
48
48
  ```
49
49
 
50
- Clients default to the preview platform and the `serverless` tier. Set
51
- `AVARTHA_BASE_URL` for another environment or `tier="dedicated"` for dedicated
52
- inference. Use model and voice IDs available to your workspace and tier.
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.
53
54
 
54
55
  ## Discover models
55
56
 
@@ -107,7 +108,7 @@ Inference consumes credits.
107
108
  | Multi-context TTS | `ElevenLabs` / `AsyncElevenLabs`: `text_to_speech.connect_multi_context` |
108
109
  | Realtime ASR | `await client.speech_to_text.realtime.connect(...)` on either speech client |
109
110
  | Speech discovery | Speech clients: models, voices, voice settings, ASR languages |
110
- | Workspaces, members, invitations, endpoints | `Control` / `AsyncControl` |
111
+ | Workspaces, members, invitations | `Control` / `AsyncControl` |
111
112
  | Combined inference and management | `Avartha` / `AsyncAvartha` |
112
113
 
113
114
  Managed inference uses WebSockets; Chat Completions, Responses, HTTP TTS,
@@ -95,7 +95,7 @@ with OpenAI() as client:
95
95
  print(model.id, model.to_dict().get("protocols", []))
96
96
  ```
97
97
 
98
- Model availability depends on your workspace, environment, and tier. Replace
98
+ Model availability depends on your workspace and environment. Replace
99
99
  the example IDs with models returned for your key and the protocol you need:
100
100
  `openai_realtime`, `elevenlabs_tts`, or `elevenlabs_asr`.
101
101
 
@@ -210,8 +210,20 @@ managed inference uses the realtime methods above.
210
210
 
211
211
  ### Speech to text
212
212
 
213
- Realtime ASR uses `await client.speech_to_text.realtime.connect(...)` on both
214
- ElevenLabs client variants. Send mono PCM16 audio and await a committed transcript.
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
+ Current ASR models require 16 kHz mono PCM16 audio. Convert other formats or
225
+ sample rates before sending audio chunks; the SDK does not resample them.
226
+ Await a committed transcript before closing the session.
215
227
  [The complete example](examples/realtime_asr.py) reads a WAV file, registers
216
228
  transcript/error callbacks, streams chunks, commits, and closes the connection:
217
229
 
@@ -219,12 +231,20 @@ transcript/error callbacks, streams chunks, commits, and closes the connection:
219
231
  python examples/realtime_asr.py mistralai/voxtral-mini-4b-realtime-2602 speech-16k.wav
220
232
  ```
221
233
 
222
- `previous_text` is optional text context for transcription. When omitted from
223
- `connection.send` data, Avartha sends `null`, meaning no context. You can omit
224
- this field when streaming audio without prior text.
234
+ Current ASR models reject nonempty `previous_text`. Omit it from
235
+ `connection.send`; the SDK sends `null`. An empty string is also accepted.
236
+ For vocabulary hints on supported models, pass `keyterms` in the connection
237
+ options instead.
225
238
 
226
239
  File-based HTTP `speech_to_text.convert` is retired on managed inference.
227
240
 
241
+ Connection options cover background speech filtering, vocabulary hints,
242
+ manual/VAD commits, Smart Turn, word log probabilities, timestamps, and speaker
243
+ labels on supported models. Register `RealtimeEvents.WARNING` for nonfatal
244
+ warnings, including unavailable timing metadata. See
245
+ [ASR options and callbacks](docs/migration.md#recognition-and-context-hints)
246
+ for configuration and server requirements.
247
+
228
248
  ## Agents
229
249
 
230
250
  Agent management, tools, knowledge bases, and conversation sessions/history are
@@ -354,10 +374,12 @@ automatically. See [timeouts and cleanup](docs/migration.md#timeouts-retries-and
354
374
 
355
375
  Without an explicit URL, protocol clients derive their URL from
356
376
  `AVARTHA_BASE_URL`, defaulting to `https://platform.preview.avartha.ai` and the
357
- `serverless` tier. Set `tier="dedicated"` for dedicated inference; there is no
358
- automatic fallback between tiers. An explicit protocol `base_url` takes
359
- precedence over `tier`. `AVARTHA_ELEVENLABS_BASE_URL` overrides the derived speech
360
- root, and an explicit ElevenLabs `base_url` overrides that environment variable.
377
+ `serverless` tier. Only serverless inference is supported. Unsupported `tier`
378
+ values and dedicated inference URLs raise `ConfigurationError` locally before
379
+ any request; the SDK does not silently change the selected tier.
380
+ `AVARTHA_ELEVENLABS_BASE_URL` overrides the derived speech root, and an explicit
381
+ protocol `base_url` overrides its derived URL. URL overrides do not bypass tier
382
+ validation.
361
383
 
362
384
  Keys are read at construction from `AVARTHA_API_KEY` or `api_key`.
363
385
  Vendor default keys and base URL variables are not substituted.
@@ -379,7 +401,6 @@ with Avartha() as client:
379
401
  print(client.control.catalog.skus(provider="modal"))
380
402
  print(client.control.organizations.list())
381
403
  print(client.control.organizations.limits("your-workspace-id"))
382
- print(client.control.endpoints.list(workspace_id="your-workspace-id"))
383
404
  ```
384
405
 
385
406
  `client.openai` and `client.elevenlabs` are the protocol clients;
@@ -392,15 +413,11 @@ creation, revocation, and acceptance. For example,
392
413
  See [workspace administration](docs/platform.md#workspace-administration) for
393
414
  sync/async usage and server permissions.
394
415
 
395
- Endpoint creation, readiness waiting,
396
- scaling, routing, stopping, and deletion are described in the
397
- [management guide](docs/platform.md).
398
-
399
416
  ## Examples
400
417
 
401
418
  Runnable examples cover [Realtime text](examples/realtime.py),
402
419
  [TTS](examples/tts.py), [multi-context TTS](examples/tts_multi_context.py),
403
- [ASR](examples/realtime_asr.py), and [endpoint management](examples/endpoints.py).
420
+ [ASR](examples/realtime_asr.py).
404
421
  Microphone capture and speaker playback are handled by your application.
405
422
 
406
423
  Running inference examples consumes credits.
@@ -8,14 +8,14 @@ Avartha; see the [migration guide](migration.md).
8
8
  ## Supported APIs
9
9
 
10
10
  SDK support and server availability are separate. Select a model available to
11
- your workspace and tier, and use only the features that model supports.
11
+ your workspace on serverless inference, and use only the features that model supports.
12
12
  Avartha managed inference uses WebSockets. Discovery and platform management
13
13
  use HTTP.
14
14
 
15
15
  | Surface | SDK support | Server prerequisites |
16
16
  | --- | --- | --- |
17
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 and tier |
18
+ | OpenAI model discovery | Sync/async `models.list()` and `models.retrieve(model)` | A valid Avartha key; results depend on workspace |
19
19
  | OpenAI Realtime audio, transcription, images, and beta API | Unavailable | Use speech clients for supported audio workflows |
20
20
  | Chat Completions, Responses, SSE, and OpenAI HTTP speech | Unavailable | Managed inference requires a Realtime connection |
21
21
  | Speech models and voices | Typed sync/async HTTP discovery | A visible speech model; voice discovery requires a routable TTS model |
@@ -25,11 +25,11 @@ use HTTP.
25
25
  | Realtime ASR | Async connections on both speech clients | An ASR model supporting the supplied audio format and sample rate |
26
26
  | HTTP TTS and file transcription | Unavailable | Use realtime speech methods |
27
27
  | Agents, tools, knowledge bases, conversation sessions/history | Planned; currently unavailable | Accessing `conversational_ai` raises `NotImplementedError` |
28
- | Catalog, workspaces, members, invitations, and endpoints | Sync/async `Control` | An Avartha API key with the required workspace role and allocation |
28
+ | Catalog, workspaces, members, and invitations | Sync/async `Control` | An Avartha API key with the required workspace role and allocation |
29
29
  | API-key administration | Unavailable through `Control` | Use the platform portal; these operations require a browser session |
30
30
 
31
31
  See [platform management](platform.md) for workspace roles, invitation
32
- requirements, endpoint readiness, and provisioning.
32
+ requirements, and permissions.
33
33
 
34
34
  ## OpenAI Realtime text
35
35
 
@@ -56,8 +56,8 @@ schema compatibility. Unsupported HTTP resources, including Chat Completions,
56
56
  Responses, and Realtime calls/client secrets, raise the same exception.
57
57
  The older `client.beta.realtime` wire schema is outside this contract.
58
58
 
59
- The constructor and `copy()` / `with_options()` accept an Avartha `tier` option;
60
- custom `http_client` arguments are unsupported.
59
+ The constructor accepts only `tier="serverless"`. Client copies apply the same
60
+ configuration validation. Custom `http_client` arguments are unsupported.
61
61
  HTTP settings such as `timeout` and `max_retries` do not control the WebSocket. Use
62
62
  `websocket_connection_options` and the arguments to `realtime.connect()` for
63
63
  socket timeouts and retries. Closing a client closes its internally created HTTP
@@ -81,12 +81,12 @@ with OpenAI() as client:
81
81
  ```
82
82
 
83
83
  The client uses these HTTP routes under
84
- `/inference/{serverless|dedicated}/openai/v1`:
84
+ `/inference/serverless/openai/v1`:
85
85
 
86
86
  | SDK method | GET path | Server prerequisites |
87
87
  | --- | --- | --- |
88
- | `models.list()` | `/models` | Returns models visible to the caller on the selected tier; an empty list is valid |
89
- | `models.retrieve(model)` | `/models/{model}` | Model ID must be visible on that tier; slashes in IDs are URL-encoded |
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 |
90
90
 
91
91
  Both clients return typed `avartha.types.Model` objects and preserve additional
92
92
  platform fields such as `protocols`, `model_type`, and `websocket_limits`.
@@ -115,18 +115,22 @@ raise `APITimeoutError`. The OpenAI HTTP 422 class is
115
115
  ## Speech HTTP discovery
116
116
 
117
117
  Speech discovery uses these HTTP routes under
118
- `/inference/{serverless|dedicated}/elevenlabs`:
118
+ `/inference/serverless/elevenlabs`:
119
119
 
120
120
  | SDK method | GET path | Server prerequisites |
121
121
  | --- | --- | --- |
122
- | `models.list()` | `/v1/models` | A speech model visible to the caller and tier |
122
+ | `models.list()` | `/v1/models` | A serverless speech model visible to the caller |
123
123
  | `voices.get_all()` | `/v1/voices` | A routable TTS model with runtime voice discovery |
124
124
  | `voices.search(...)` | `/v2/voices` | Same; supported filters are `search`, `page_size` (1–100), `next_page_token`, and `include_total_count` |
125
125
  | `voices.get(voice_id)` | `/v1/voices/{voice_id}` | Voice exists for the selected model |
126
126
  | `voices.settings.get(voice_id)` | `/v1/voices/{voice_id}/settings` | Same; server reports supported `speed=1.0` |
127
- | `speech_to_text.languages.list(model_id=...)` | `/v1/speech-to-text/languages` | A routable ASR model; runtime reports supported languages or unavailable hints |
127
+ | `speech_to_text.languages.list(model_id=...)` | `/v1/models` | Selects the ASR model's language metadata from the speech catalog |
128
128
 
129
129
  All methods have sync and async variants and typed raw-response access.
130
+ The language helper maps catalog `language_id` entries to `code`. An empty
131
+ language list means hints are unsupported; missing metadata or an unavailable
132
+ model raises `ApiError`. Its raw-response wrapper retains the catalog response's
133
+ HTTP status and headers while exposing the selected model's typed language list.
130
134
  Model/voice methods retain upstream signatures; language discovery is an
131
135
  Avartha extension. Pass the TTS `model_id` through
132
136
  `request_options.additional_query_parameters`, especially when multiple TTS
@@ -258,15 +262,50 @@ Audio formats and `voice_settings` depend on the selected model. Specifying an
258
262
  option in the SDK does not make it available on the server. Runnable examples:
259
263
  [single-context](../examples/tts.py), [multi-context](../examples/tts_multi_context.py).
260
264
 
265
+ ## Realtime ASR
266
+
267
+ Current ASR models require 16 kHz mono PCM16 audio. The SDK retains the other
268
+ `AudioFormat` enum values for protocol compatibility; their presence does not
269
+ imply server support. Audio-chunk mode sends samples unchanged. Convert the
270
+ source before sending, or use URL mode, which requires FFmpeg and converts to
271
+ 16 kHz mono PCM16.
272
+
273
+ The SDK also preserves `previous_text` on audio chunks, but current ASR models
274
+ accept only omission, `null`, or an empty string. Nonempty values are rejected.
275
+ Vocabulary hints use `keyterms` on models that support them.
276
+
277
+ The SDK forwards background filtering (`filter_background_audio`), vocabulary
278
+ hints (`keyterms`), manual/VAD commit controls, and `include_timestamps`.
279
+ It additionally exposes Avartha's `diarize`, `include_logprobs`, `turn_model`,
280
+ and `turn_threshold` options on both audio-chunk and URL connections. These
281
+ extensions are not a claim of upstream ElevenLabs realtime feature parity.
282
+ Omitted extension options are not added to the query; explicit booleans are
283
+ sent as `true` or `false`.
284
+
285
+ The server validates feature combinations and model availability. Diarization
286
+ requires timestamps and a model with speaker-label support. Timestamps also
287
+ depend on language support. Smart Turn requires VAD mode and a server with
288
+ `smart_turn_v3` enabled; `turn_threshold` is only meaningful in that mode.
289
+ Background filtering and vocabulary hints also depend on the model.
290
+
291
+ Transcript callbacks preserve server dictionaries, including `words` with
292
+ timing, speaker labels, and log probabilities when supplied.
293
+ `RealtimeEvents.WARNING` delivers nonfatal warnings without also dispatching
294
+ `ERROR`. A timing warning can replace a timed result; the preceding plain
295
+ committed transcript remains usable. See the
296
+ [ASR options and event guidance](migration.md#recognition-and-context-hints).
297
+
261
298
  ## URLs and authentication
262
299
 
263
300
  - `Avartha` and `Control` accept a platform root, including a proxy prefix.
264
- - OpenAI defaults to `ROOT/inference/{tier}/openai/v1`, using bearer auth.
265
- - ElevenLabs defaults to `ROOT/inference/{tier}/elevenlabs` and appends its
301
+ - OpenAI defaults to `ROOT/inference/serverless/openai/v1`, using bearer auth.
302
+ - ElevenLabs defaults to `ROOT/inference/serverless/elevenlabs` and appends its
266
303
  original `/v1/...` paths, using `xi-api-key`.
267
304
  - An explicit protocol `base_url` is a full dialect/service base. Speech also
268
305
  supports `AVARTHA_ELEVENLABS_BASE_URL` as an override.
269
- - Both protocol clients default to `serverless`; `tier="dedicated"` never falls back.
306
+ - Both protocol clients support only `tier="serverless"`. Other tier values and
307
+ dedicated inference URLs raise `ConfigurationError` before any request,
308
+ including with explicit or environment URL overrides.
270
309
  - HTTP/HTTPS maps to WS/WSS. No implicit hosted-vendor credential fallback exists.
271
310
  - Clients never read vendor environment variables. `OPENAI_ADMIN_KEY`,
272
311
  `OPENAI_API_KEY`, `OPENAI_BASE_URL`, `OPENAI_CUSTOM_HEADERS`, `OPENAI_ORG_ID`,
@@ -174,7 +174,7 @@ your application uses it.
174
174
  ### Discover models, voices, and ASR languages
175
175
 
176
176
  Call discovery resources on the speech client. Replace the example model IDs
177
- with models available for your workspace, environment, and tier:
177
+ with models available for your workspace and environment:
178
178
 
179
179
  ```python
180
180
  from avartha import ElevenLabs
@@ -191,9 +191,7 @@ with ElevenLabs() as client:
191
191
  if voices:
192
192
  voice = client.voices.get(voices[0].voice_id, request_options=options)
193
193
  settings = client.voices.settings.get(voice.voice_id, request_options=options)
194
- languages = client.speech_to_text.languages.list(
195
- model_id="mistralai/voxtral-mini-4b-realtime-2602"
196
- )
194
+ languages = client.speech_to_text.languages.list(model_id="YOUR_ASR_MODEL_ID")
197
195
  ```
198
196
 
199
197
  Use `AsyncElevenLabs` with `async with` and `await` for each call. Each resource
@@ -213,8 +211,10 @@ available as `error.__cause__`.
213
211
  `model_id` is an Avartha query extension for voice discovery. Specify it when
214
212
  more than one TTS model is available. The platform supports `search`, `page_size`,
215
213
  `next_page_token`, and `include_total_count` on `voices.search`; other vendor
216
- filters are forwarded and may be rejected by the server. ASR language hints
217
- can be unavailable, with `language_hints_supported=False` and an empty list.
214
+ filters are forwarded and may be rejected by the server. The language helper
215
+ selects the requested ASR model from `models.list()`. An empty language list
216
+ means hints are unsupported (`language_hints_supported=False`); a missing
217
+ model or missing language metadata raises `ApiError` instead.
218
218
  See [supported HTTP endpoints and server prerequisites](compatibility.md#speech-http-discovery).
219
219
 
220
220
  ### Speech-specific configuration
@@ -229,22 +229,142 @@ Text fragments are forwarded unchanged, including whitespace. Include any
229
229
  intended spaces in your text. The Avartha Platform handles buffering and
230
230
  segmentation; when synthesis starts depends on the model.
231
231
 
232
- `previous_text` supplies optional text context for transcription. When omitted,
233
- Avartha sends `null`, meaning no context. Audio-send code can omit the field:
232
+ TTS `convert_realtime` supports sync and async clients; the async helper also
233
+ accepts async text streams. Both receive audio independently of text production.
234
+ See [input cancellation and cleanup](compatibility.md#realtime-tts)
235
+ for blocking text iterators and early playback stops.
236
+
237
+ ### Live speech-to-text
238
+
239
+ Realtime ASR is asynchronous on both speech clients and through
240
+ `Avartha.elevenlabs.speech_to_text.realtime` and
241
+ `AsyncAvartha.elevenlabs.speech_to_text.realtime`. Choosing `Avartha` does not
242
+ make live STT operations synchronous; existing awaited calls remain supported.
243
+
244
+ Await `realtime.connect()`, `connection.send()`, `connection.commit()`, and
245
+ `connection.close()`. Callback registration with `connection.on()` is synchronous.
246
+ Callbacks run on the session's event loop, which must remain running to receive
247
+ transcripts. Handlers can be ordinary functions or async functions.
248
+ ASR events retain their names and raw dictionary payloads, including the
249
+ deprecated `UNACCEPTED_TERMS_ERROR` callback alias.
250
+
251
+ Current ASR models require raw 16 kHz mono PCM16 samples without a file header.
252
+ For audio chunks, select `AudioFormat.PCM_16000` and `sample_rate=16000`, and
253
+ convert other formats or sample rates before sending. The SDK does not
254
+ resample chunks or convert their encoding. URL mode uses FFmpeg to convert the
255
+ source to the required format and requires FFmpeg on `PATH`.
256
+
257
+ Nonempty `previous_text` is unsupported by current ASR models. The SDK
258
+ preserves this protocol field, but the server rejects nonempty values rather
259
+ than using them as context. Omission, `None`, or an empty string supplies no
260
+ context. Use `keyterms` in the connection options for vocabulary hints on
261
+ supported models. Audio-send code can omit `previous_text`; the SDK sends `null`:
234
262
 
235
263
  ```python
236
264
  async def send_audio(connection, encoded_chunk):
237
265
  await connection.send({"audio_base_64": encoded_chunk})
238
266
  ```
239
267
 
240
- See the [complete ASR example](../examples/realtime_asr.py).
268
+ The [complete ASR example](../examples/realtime_asr.py) uses `AsyncElevenLabs`,
269
+ waits for a committed transcript, and awaits `connection.close()` in `finally`.
270
+ For a combined inference and management client, adapt that example to use
271
+ `async with AsyncAvartha() as client` and connect through
272
+ `await client.elevenlabs.speech_to_text.realtime.connect(options)`.
273
+
274
+ In a standalone script, put the complete session workflow in an async function
275
+ and call it once with `asyncio.run(main())`. Keep connection creation, audio
276
+ sending, transcript handling, and session cleanup on that same event loop.
277
+ In an application or notebook with a running event loop, await the workflow
278
+ directly instead of calling `asyncio.run()`. Close the live session before
279
+ leaving the client context; closing the client only closes its HTTP transports.
280
+
281
+ #### Recognition and context hints
282
+
283
+ Pass options to `realtime.connect()` using `RealtimeAudioOptions` for audio
284
+ chunks or `RealtimeUrlOptions` for an audio URL. The SDK forwards these settings;
285
+ the selected model and server must support them.
286
+
287
+ `filter_background_audio=True` enables experimental background speech filtering
288
+ on supported models. Use it to reduce transcription of background speakers.
289
+ It defaults to off and is separate from microphone echo cancellation.
290
+
291
+ Use `keyterms=["Avartha", "Kubernetes"]` for vocabulary hints on models that
292
+ support them. The SDK sends each term as a separate query parameter and handles
293
+ URL encoding. Hints do not guarantee a spelling and are not a free-form prompt.
294
+ `language_code` can constrain recognition to a supported language; use
295
+ `speech_to_text.languages.list(model_id=...)` to check language support.
296
+
297
+ #### Ending an utterance
298
+
299
+ `commit_strategy=CommitStrategy.MANUAL` is the default. Send audio, then call
300
+ `await connection.commit()` when your application decides the utterance is
301
+ complete. This waits for the send, not the transcript: wait for
302
+ `RealtimeEvents.COMMITTED_TRANSCRIPT` before treating transcription as complete.
303
+ Do not commit an empty audio buffer as a completion check.
304
+
305
+ For automatic commits, use `commit_strategy=CommitStrategy.VAD`. Set
306
+ `turn_model="silence"` for silence-based turn detection; omitting it uses the
307
+ server's default. Tune `vad_silence_threshold_secs` for the silence
308
+ wait and `vad_threshold` for speech detection sensitivity. VAD controls require
309
+ VAD mode; omit them in manual mode.
310
+
311
+ On servers supporting Smart Turn, add `turn_model="smart_turn_v3"`. It uses an
312
+ end-of-turn model to judge whether the speaker has finished, with a silence
313
+ timeout as fallback. `turn_threshold` controls its decision threshold, defaults
314
+ to `0.5`, and must be strictly between `0` and `1`. Only pass this threshold with
315
+ Smart Turn. For example, inside an async client context:
241
316
 
242
- TTS `convert_realtime` supports sync and async clients; the async helper also
243
- accepts async text streams. Both receive audio independently of text production.
244
- See [input cancellation and cleanup](compatibility.md#realtime-tts)
245
- for blocking text iterators and early playback stops. Realtime ASR is async on
246
- both client variants. ASR events retain their names and raw dictionary payloads,
247
- including the deprecated `UNACCEPTED_TERMS_ERROR` callback alias.
317
+ ```python
318
+ from avartha import AudioFormat, CommitStrategy, RealtimeAudioOptions
319
+
320
+ options = RealtimeAudioOptions(
321
+ model_id="YOUR_ASR_MODEL_ID",
322
+ audio_format=AudioFormat.PCM_16000,
323
+ sample_rate=16000,
324
+ commit_strategy=CommitStrategy.VAD,
325
+ turn_model="smart_turn_v3",
326
+ turn_threshold=0.5,
327
+ )
328
+ connection = await client.speech_to_text.realtime.connect(options)
329
+ ```
330
+
331
+ #### Transcript details
332
+
333
+ `include_logprobs=True` requests word log probabilities in final transcripts.
334
+ These are model scores, not calibrated confidence percentages. This option does
335
+ not enable timestamps. `include_timestamps=True` requests a separate
336
+ `RealtimeEvents.COMMITTED_TRANSCRIPT_WITH_TIMESTAMPS` event after the plain
337
+ committed transcript. Use it to enrich the same utterance, not append a duplicate.
338
+
339
+ `diarize=True` requests speaker labels and requires `include_timestamps=True`.
340
+ On supported models, timed `words` entries can include `speaker_id` alongside
341
+ `start` and `end`. Speaker labels may be absent if diarization fails; timestamps
342
+ can still be returned. These three options default to off. For a model and
343
+ language that support the requested details:
344
+
345
+ Add `include_timestamps=True`, `diarize=True`, and `include_logprobs=True` to
346
+ the `RealtimeAudioOptions` above before connecting. Omit options you do not need.
347
+
348
+ Register handlers before sending audio. Callbacks receive the unmodified server
349
+ dictionary, including word scores, timestamps, and speaker labels:
350
+
351
+ ```python
352
+ from avartha import RealtimeEvents
353
+
354
+ connection.on(RealtimeEvents.COMMITTED_TRANSCRIPT, lambda event: print(event["text"]))
355
+ connection.on(
356
+ RealtimeEvents.COMMITTED_TRANSCRIPT_WITH_TIMESTAMPS,
357
+ lambda event: print(event.get("words", [])),
358
+ )
359
+ connection.on(RealtimeEvents.WARNING, lambda event: print("Warning:", event))
360
+ connection.on(RealtimeEvents.ERROR, lambda event: print("Error:", event))
361
+ ```
362
+
363
+ If timing cannot be produced, the server can send a `WARNING` instead of the
364
+ timed event. Retain the plain committed transcript. Warnings do not trigger the
365
+ `ERROR` callback or close the SDK connection. When waiting for optional metadata,
366
+ handle both the timed event and the warning, and use an application timeout.
367
+ Do not close immediately after the plain final if you still need its metadata.
248
368
 
249
369
  ## Configuration
250
370
 
@@ -252,8 +372,8 @@ including the deprecated `UNACCEPTED_TERMS_ERROR` callback alias.
252
372
  | --- | --- |
253
373
  | Default API key | `AVARTHA_API_KEY`, read at construction |
254
374
  | Default platform root | `AVARTHA_BASE_URL`, or `https://platform.preview.avartha.ai` |
255
- | Default inference tier | `serverless`; use `tier="dedicated"` for dedicated inference |
256
- | Explicit `OpenAI(base_url=...)` | Full base including `/inference/{tier}/openai/v1` |
375
+ | Inference tier | `serverless` only; other values raise `ConfigurationError` locally |
376
+ | Explicit `OpenAI(base_url=...)` | Full base including `/inference/serverless/openai/v1` |
257
377
  | Explicit OpenAI `websocket_base_url` | Optional `wss://` service base before `/realtime`; other schemes are rejected |
258
378
  | Explicit `ElevenLabs(base_url=...)` | Speech service root before `/v1` |
259
379
  | Speech URL override | Explicit `base_url`, then `AVARTHA_ELEVENLABS_BASE_URL`, then the derived platform URL |
@@ -261,10 +381,12 @@ including the deprecated `UNACCEPTED_TERMS_ERROR` callback alias.
261
381
  | Existing vendor key/URL variables | Update to Avartha variables or explicit arguments |
262
382
  | Model and voice names | Use IDs supported by the configured service; no automatic mapping |
263
383
 
264
- Explicit protocol URLs take precedence over `tier`. Proxy path prefixes are
265
- preserved. Without a WebSocket override, the SDK derives a WS/WSS address from
266
- the HTTP/HTTPS service base. Avartha keys are never routed to an implicit hosted
267
- OpenAI or ElevenLabs endpoint.
384
+ Explicit protocol URLs override the derived service URL. Only serverless
385
+ inference is supported: unsupported `tier` values are rejected even with a URL
386
+ override, and dedicated inference URLs are rejected before any request. Proxy
387
+ path prefixes are preserved. Without a WebSocket override, the SDK derives a
388
+ WS/WSS address from the HTTP/HTTPS service base. Avartha keys are never routed
389
+ to an implicit hosted OpenAI or ElevenLabs endpoint.
268
390
 
269
391
  Speech clients also accept `environment` as a service URL or URL-valued enum
270
392
  when `base_url` is omitted. Update any vendor environment value to your Avartha
@@ -21,7 +21,7 @@ and lists, preserving the server's fields.
21
21
  ## Workspace administration
22
22
 
23
23
  The platform calls workspaces `organizations`. Use the same ID returned by
24
- `organizations.list()` wherever an endpoint method takes `workspace_id`.
24
+ `organizations.list()` wherever a method takes `workspace_id`.
25
25
 
26
26
  ```python
27
27
  from avartha import Control
@@ -87,7 +87,7 @@ asyncio.run(main())
87
87
  change or remove other admins. The server refuses removing or demoting the
88
88
  last owner, including through `leave`, with a conflict.
89
89
  - New customer workspaces start with a serverless-only, zero-budget allocation.
90
- Creation alone does not provide inference credits or dedicated capacity.
90
+ Creation alone does not provide inference credits.
91
91
  - Targeted customer invitations require a workspace member-allocation policy
92
92
  and a valid member entitlement policy. Email delivery requires server email
93
93
  configuration.
@@ -95,40 +95,6 @@ asyncio.run(main())
95
95
  keys requires an interactive browser session and is not available through
96
96
  this bearer-key client.
97
97
 
98
- ## Dedicated endpoints
99
-
100
- `control.endpoints` supports `create`, `get`, `list`, `management`, `stop`,
101
- `delete`, `update_scaling`, `update_routing`, and `wait_until_ready`.
102
- [The provisioning example](../examples/endpoints.py) takes a workspace, model,
103
- name, and SKU JSON and requests GPU capacity. The endpoint remains running
104
- until explicitly stopped.
105
-
106
- Creation persists launch intent and returns immediately. Readiness waiting is
107
- explicit and requires a `running` endpoint with an accepting replica:
108
-
109
- ```python
110
- from avartha import Control
111
-
112
- with Control() as client:
113
- ready = client.endpoints.wait_until_ready(
114
- "your-endpoint-id",
115
- timeout=600,
116
- poll_interval=2,
117
- )
118
- print(ready)
119
- ```
120
-
121
- The waiter raises `EndpointFailedError` if the endpoint fails, stops, or starts
122
- stopping. The polling budget caps each HTTP timeout to the remaining time.
123
- HTTP timeouts are per-phase inactivity timeouts, not a strict total wall-clock
124
- deadline. Network errors propagate. Async waits support normal asyncio
125
- cancellation.
126
-
127
- Scaling and routing updates require `expected_generation` and `policy`.
128
- Read the current policy generation through `management` before an update.
129
- A stale generation returns a conflict; re-read state before deciding whether
130
- to submit another update.
131
-
132
98
  ## Errors and other routes
133
99
 
134
100
  `PlatformAPIError` retains `status_code`, `body`, `field_errors`, `request_id`,
@@ -151,7 +117,7 @@ The combined client accepts `openai_options`, `elevenlabs_options`, and
151
117
  `control_options` dictionaries for transport and timeout settings. Use its
152
118
  named arguments for service URLs and keys. Set `elevenlabs_api_key` when the
153
119
  voice service uses a different credential; otherwise it receives the Avartha
154
- key. The speech URL defaults to the same platform root and tier; use
120
+ key. The speech URL defaults to serverless inference on the same platform root; use
155
121
  `elevenlabs_base_url` to select a separate compatible service.
156
122
 
157
123
  Use context managers or call `close()` (`await close()` for async clients).
@@ -16,9 +16,10 @@ export AVARTHA_API_KEY='avk_...'
16
16
  export AVARTHA_BASE_URL='https://platform.preview.avartha.ai'
17
17
  ```
18
18
 
19
- Clients default to the preview platform and the `serverless` tier. Set
20
- `AVARTHA_BASE_URL` for another environment or `tier="dedicated"` for dedicated
21
- inference. Use model and voice IDs available to your workspace and tier.
19
+ Clients default to the preview platform and support only serverless inference.
20
+ Set `AVARTHA_BASE_URL` for another environment. Use model and voice IDs available
21
+ to your workspace. Unsupported tier values and dedicated inference URLs raise
22
+ `ConfigurationError` locally before any request.
22
23
 
23
24
  ## Discover models
24
25
 
@@ -76,7 +77,7 @@ Inference consumes credits.
76
77
  | Multi-context TTS | `ElevenLabs` / `AsyncElevenLabs`: `text_to_speech.connect_multi_context` |
77
78
  | Realtime ASR | `await client.speech_to_text.realtime.connect(...)` on either speech client |
78
79
  | Speech discovery | Speech clients: models, voices, voice settings, ASR languages |
79
- | Workspaces, members, invitations, endpoints | `Control` / `AsyncControl` |
80
+ | Workspaces, members, invitations | `Control` / `AsyncControl` |
80
81
  | Combined inference and management | `Avartha` / `AsyncAvartha` |
81
82
 
82
83
  Managed inference uses WebSockets; Chat Completions, Responses, HTTP TTS,
@@ -1,7 +1,8 @@
1
- """Stream mono, signed 16-bit PCM WAV audio with the ElevenLabs ASR protocol.
1
+ """Stream 16 kHz mono, signed 16-bit PCM WAV audio with the ElevenLabs ASR protocol.
2
2
 
3
3
  Set AVARTHA_API_KEY and optionally AVARTHA_BASE_URL.
4
- Run: python examples/realtime_asr.py MODEL_ID speech.wav
4
+ Run: python examples/realtime_asr.py MODEL_ID speech-16k.wav
5
+ Convert other sample rates before running; this example does not resample audio.
5
6
  """
6
7
 
7
8
  import argparse
@@ -39,6 +40,7 @@ async def run(model: str, audio_path: str):
39
40
 
40
41
  connection.on(RealtimeEvents.PARTIAL_TRANSCRIPT, lambda event: print(event["text"]))
41
42
  connection.on(RealtimeEvents.COMMITTED_TRANSCRIPT, transcript)
43
+ connection.on(RealtimeEvents.WARNING, lambda event: print("Warning:", event))
42
44
  connection.on(RealtimeEvents.ERROR, failed)
43
45
  try:
44
46
  while chunk := audio.readframes(sample_rate // 10):