avartha-python-sdk 0.0.7__tar.gz → 0.0.8__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 (278) hide show
  1. {avartha_python_sdk-0.0.7/src/avartha_python_sdk.egg-info → avartha_python_sdk-0.0.8}/PKG-INFO +13 -10
  2. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/README.md +19 -26
  3. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/docs/compatibility.md +68 -11
  4. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/docs/migration.md +21 -18
  5. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/docs/platform.md +27 -22
  6. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/docs/pypi.md +12 -9
  7. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/docs/voice-conversations.md +14 -100
  8. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/examples/realtime.py +4 -0
  9. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/examples/realtime_asr.py +2 -2
  10. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/examples/tts.py +17 -8
  11. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/examples/tts_multi_context.py +16 -2
  12. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/examples/voice_conversation.py +4 -3
  13. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/_conversation_resources.py +7 -207
  14. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/_realtime_tts.py +97 -39
  15. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/_speech_http.py +9 -22
  16. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/types/conversational_ai.py +1 -26
  17. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/types/voice_agents.py +0 -6
  18. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8/src/avartha_python_sdk.egg-info}/PKG-INFO +13 -10
  19. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/LICENSE +0 -0
  20. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/MANIFEST.in +0 -0
  21. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/THIRD_PARTY_NOTICES +0 -0
  22. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/pyproject.toml +0 -0
  23. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/setup.cfg +0 -0
  24. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/setup.py +0 -0
  25. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/__init__.py +0 -0
  26. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/_config.py +0 -0
  27. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/_exceptions.py +0 -0
  28. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/_http_errors.py +0 -0
  29. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/_models.py +0 -0
  30. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/_openai_http.py +0 -0
  31. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/_openai_http_errors.py +0 -0
  32. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/_pacing.py +0 -0
  33. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/_realtime_asr.py +0 -0
  34. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/_realtime_openai.py +0 -0
  35. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/_realtime_resources.py +0 -0
  36. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/_realtime_sampling.py +0 -0
  37. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/_sentinels.py +0 -0
  38. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/_speech_config.py +0 -0
  39. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/_speech_resources.py +0 -0
  40. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/_unsupported.py +0 -0
  41. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/_websocket.py +0 -0
  42. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/_ws_state.py +0 -0
  43. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/client.py +0 -0
  44. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/control.py +0 -0
  45. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/conversational_ai/__init__.py +0 -0
  46. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/conversational_ai/conversation.py +0 -0
  47. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/elevenlabs.py +0 -0
  48. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/errors.py +0 -0
  49. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/openai.py +0 -0
  50. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/pagination.py +0 -0
  51. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/py.typed +0 -0
  52. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/realtime/__init__.py +0 -0
  53. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/realtime/speech.py +0 -0
  54. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/resources/__init__.py +0 -0
  55. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/resources/models.py +0 -0
  56. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/resources/realtime/__init__.py +0 -0
  57. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/resources/realtime/realtime.py +0 -0
  58. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/types/__init__.py +0 -0
  59. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/types/audio/__init__.py +0 -0
  60. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/types/audio/transcription_language.py +0 -0
  61. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/types/model.py +0 -0
  62. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/types/realtime/__init__.py +0 -0
  63. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/types/realtime/audio_transcription.py +0 -0
  64. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/types/realtime/audio_transcription_param.py +0 -0
  65. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/types/realtime/conversation_created_event.py +0 -0
  66. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/types/realtime/conversation_item.py +0 -0
  67. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/types/realtime/conversation_item_added.py +0 -0
  68. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/types/realtime/conversation_item_create_event.py +0 -0
  69. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/types/realtime/conversation_item_create_event_param.py +0 -0
  70. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/types/realtime/conversation_item_created_event.py +0 -0
  71. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/types/realtime/conversation_item_delete_event.py +0 -0
  72. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/types/realtime/conversation_item_delete_event_param.py +0 -0
  73. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/types/realtime/conversation_item_deleted_event.py +0 -0
  74. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/types/realtime/conversation_item_done.py +0 -0
  75. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/types/realtime/conversation_item_input_audio_transcription_completed_event.py +0 -0
  76. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/types/realtime/conversation_item_input_audio_transcription_delta_event.py +0 -0
  77. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/types/realtime/conversation_item_input_audio_transcription_failed_event.py +0 -0
  78. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/types/realtime/conversation_item_input_audio_transcription_segment.py +0 -0
  79. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/types/realtime/conversation_item_param.py +0 -0
  80. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/types/realtime/conversation_item_retrieve_event.py +0 -0
  81. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/types/realtime/conversation_item_retrieve_event_param.py +0 -0
  82. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/types/realtime/conversation_item_truncate_event.py +0 -0
  83. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/types/realtime/conversation_item_truncate_event_param.py +0 -0
  84. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/types/realtime/conversation_item_truncated_event.py +0 -0
  85. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/types/realtime/input_audio_buffer_append_event.py +0 -0
  86. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/types/realtime/input_audio_buffer_append_event_param.py +0 -0
  87. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/types/realtime/input_audio_buffer_clear_event.py +0 -0
  88. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/types/realtime/input_audio_buffer_clear_event_param.py +0 -0
  89. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/types/realtime/input_audio_buffer_cleared_event.py +0 -0
  90. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/types/realtime/input_audio_buffer_commit_event.py +0 -0
  91. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/types/realtime/input_audio_buffer_commit_event_param.py +0 -0
  92. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/types/realtime/input_audio_buffer_committed_event.py +0 -0
  93. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/types/realtime/input_audio_buffer_dtmf_event_received_event.py +0 -0
  94. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/types/realtime/input_audio_buffer_speech_started_event.py +0 -0
  95. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/types/realtime/input_audio_buffer_speech_stopped_event.py +0 -0
  96. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/types/realtime/input_audio_buffer_timeout_triggered.py +0 -0
  97. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/types/realtime/log_prob_properties.py +0 -0
  98. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/types/realtime/mcp_list_tools_completed.py +0 -0
  99. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/types/realtime/mcp_list_tools_failed.py +0 -0
  100. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/types/realtime/mcp_list_tools_in_progress.py +0 -0
  101. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/types/realtime/noise_reduction_type.py +0 -0
  102. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/types/realtime/output_audio_buffer_clear_event.py +0 -0
  103. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/types/realtime/output_audio_buffer_clear_event_param.py +0 -0
  104. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/types/realtime/rate_limits_updated_event.py +0 -0
  105. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/types/realtime/realtime_audio_config.py +0 -0
  106. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/types/realtime/realtime_audio_config_input.py +0 -0
  107. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/types/realtime/realtime_audio_config_input_param.py +0 -0
  108. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/types/realtime/realtime_audio_config_output.py +0 -0
  109. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/types/realtime/realtime_audio_config_output_param.py +0 -0
  110. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/types/realtime/realtime_audio_config_param.py +0 -0
  111. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/types/realtime/realtime_audio_formats.py +0 -0
  112. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/types/realtime/realtime_audio_formats_param.py +0 -0
  113. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/types/realtime/realtime_audio_input_turn_detection.py +0 -0
  114. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/types/realtime/realtime_audio_input_turn_detection_param.py +0 -0
  115. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/types/realtime/realtime_client_event.py +0 -0
  116. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/types/realtime/realtime_client_event_param.py +0 -0
  117. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/types/realtime/realtime_conversation_item_assistant_message.py +0 -0
  118. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/types/realtime/realtime_conversation_item_assistant_message_param.py +0 -0
  119. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/types/realtime/realtime_conversation_item_function_call.py +0 -0
  120. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/types/realtime/realtime_conversation_item_function_call_output.py +0 -0
  121. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/types/realtime/realtime_conversation_item_function_call_output_param.py +0 -0
  122. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/types/realtime/realtime_conversation_item_function_call_param.py +0 -0
  123. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/types/realtime/realtime_conversation_item_system_message.py +0 -0
  124. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/types/realtime/realtime_conversation_item_system_message_param.py +0 -0
  125. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/types/realtime/realtime_conversation_item_user_message.py +0 -0
  126. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/types/realtime/realtime_conversation_item_user_message_param.py +0 -0
  127. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/types/realtime/realtime_error.py +0 -0
  128. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/types/realtime/realtime_error_event.py +0 -0
  129. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/types/realtime/realtime_function_tool.py +0 -0
  130. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/types/realtime/realtime_function_tool_param.py +0 -0
  131. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/types/realtime/realtime_mcp_approval_request.py +0 -0
  132. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/types/realtime/realtime_mcp_approval_request_param.py +0 -0
  133. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/types/realtime/realtime_mcp_approval_response.py +0 -0
  134. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/types/realtime/realtime_mcp_approval_response_param.py +0 -0
  135. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/types/realtime/realtime_mcp_list_tools.py +0 -0
  136. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/types/realtime/realtime_mcp_list_tools_param.py +0 -0
  137. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/types/realtime/realtime_mcp_protocol_error.py +0 -0
  138. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/types/realtime/realtime_mcp_protocol_error_param.py +0 -0
  139. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/types/realtime/realtime_mcp_tool_call.py +0 -0
  140. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/types/realtime/realtime_mcp_tool_call_param.py +0 -0
  141. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/types/realtime/realtime_mcp_tool_execution_error.py +0 -0
  142. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/types/realtime/realtime_mcp_tool_execution_error_param.py +0 -0
  143. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/types/realtime/realtime_mcphttp_error.py +0 -0
  144. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/types/realtime/realtime_mcphttp_error_param.py +0 -0
  145. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/types/realtime/realtime_reasoning.py +0 -0
  146. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/types/realtime/realtime_reasoning_effort.py +0 -0
  147. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/types/realtime/realtime_reasoning_param.py +0 -0
  148. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/types/realtime/realtime_response.py +0 -0
  149. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/types/realtime/realtime_response_create_audio_output.py +0 -0
  150. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/types/realtime/realtime_response_create_audio_output_param.py +0 -0
  151. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/types/realtime/realtime_response_create_mcp_tool.py +0 -0
  152. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/types/realtime/realtime_response_create_mcp_tool_param.py +0 -0
  153. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/types/realtime/realtime_response_create_params.py +0 -0
  154. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/types/realtime/realtime_response_create_params_param.py +0 -0
  155. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/types/realtime/realtime_response_status.py +0 -0
  156. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/types/realtime/realtime_response_usage.py +0 -0
  157. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/types/realtime/realtime_response_usage_input_token_details.py +0 -0
  158. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/types/realtime/realtime_response_usage_output_token_details.py +0 -0
  159. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/types/realtime/realtime_server_event.py +0 -0
  160. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/types/realtime/realtime_session_create_request.py +0 -0
  161. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/types/realtime/realtime_session_create_request_param.py +0 -0
  162. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/types/realtime/realtime_tool_choice_config.py +0 -0
  163. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/types/realtime/realtime_tool_choice_config_param.py +0 -0
  164. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/types/realtime/realtime_tools_config.py +0 -0
  165. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/types/realtime/realtime_tools_config_param.py +0 -0
  166. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/types/realtime/realtime_tools_config_union.py +0 -0
  167. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/types/realtime/realtime_tracing_config.py +0 -0
  168. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/types/realtime/realtime_tracing_config_param.py +0 -0
  169. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/types/realtime/realtime_transcription_session_audio.py +0 -0
  170. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/types/realtime/realtime_transcription_session_audio_input.py +0 -0
  171. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/types/realtime/realtime_transcription_session_audio_input_param.py +0 -0
  172. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/types/realtime/realtime_transcription_session_audio_input_turn_detection.py +0 -0
  173. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/types/realtime/realtime_transcription_session_audio_input_turn_detection_param.py +0 -0
  174. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/types/realtime/realtime_transcription_session_audio_param.py +0 -0
  175. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/types/realtime/realtime_transcription_session_create_request.py +0 -0
  176. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/types/realtime/realtime_transcription_session_create_request_param.py +0 -0
  177. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/types/realtime/realtime_truncation.py +0 -0
  178. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/types/realtime/realtime_truncation_param.py +0 -0
  179. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/types/realtime/realtime_truncation_retention_ratio.py +0 -0
  180. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/types/realtime/realtime_truncation_retention_ratio_param.py +0 -0
  181. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/types/realtime/response_audio_delta_event.py +0 -0
  182. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/types/realtime/response_audio_done_event.py +0 -0
  183. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/types/realtime/response_audio_transcript_delta_event.py +0 -0
  184. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/types/realtime/response_audio_transcript_done_event.py +0 -0
  185. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/types/realtime/response_cancel_event.py +0 -0
  186. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/types/realtime/response_cancel_event_param.py +0 -0
  187. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/types/realtime/response_content_part_added_event.py +0 -0
  188. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/types/realtime/response_content_part_done_event.py +0 -0
  189. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/types/realtime/response_create_event.py +0 -0
  190. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/types/realtime/response_create_event_param.py +0 -0
  191. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/types/realtime/response_created_event.py +0 -0
  192. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/types/realtime/response_done_event.py +0 -0
  193. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/types/realtime/response_function_call_arguments_delta_event.py +0 -0
  194. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/types/realtime/response_function_call_arguments_done_event.py +0 -0
  195. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/types/realtime/response_mcp_call_arguments_delta.py +0 -0
  196. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/types/realtime/response_mcp_call_arguments_done.py +0 -0
  197. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/types/realtime/response_mcp_call_completed.py +0 -0
  198. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/types/realtime/response_mcp_call_failed.py +0 -0
  199. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/types/realtime/response_mcp_call_in_progress.py +0 -0
  200. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/types/realtime/response_output_item_added_event.py +0 -0
  201. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/types/realtime/response_output_item_done_event.py +0 -0
  202. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/types/realtime/response_text_delta_event.py +0 -0
  203. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/types/realtime/response_text_done_event.py +0 -0
  204. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/types/realtime/session_created_event.py +0 -0
  205. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/types/realtime/session_update_event.py +0 -0
  206. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/types/realtime/session_update_event_param.py +0 -0
  207. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/types/realtime/session_updated_event.py +0 -0
  208. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/types/responses/__init__.py +0 -0
  209. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/types/responses/image_detail.py +0 -0
  210. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/types/responses/response_input_file.py +0 -0
  211. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/types/responses/response_input_file_param.py +0 -0
  212. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/types/responses/response_input_image.py +0 -0
  213. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/types/responses/response_input_image_param.py +0 -0
  214. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/types/responses/response_input_text.py +0 -0
  215. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/types/responses/response_input_text_param.py +0 -0
  216. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/types/responses/response_prompt.py +0 -0
  217. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/types/responses/response_prompt_param.py +0 -0
  218. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/types/responses/tool_choice_function.py +0 -0
  219. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/types/responses/tool_choice_function_param.py +0 -0
  220. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/types/responses/tool_choice_mcp.py +0 -0
  221. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/types/responses/tool_choice_mcp_param.py +0 -0
  222. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/types/responses/tool_choice_options.py +0 -0
  223. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/types/shared/__init__.py +0 -0
  224. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/types/shared/metadata.py +0 -0
  225. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/types/shared_params/__init__.py +0 -0
  226. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/types/shared_params/metadata.py +0 -0
  227. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/types/speech/__init__.py +0 -0
  228. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/types/speech/alignment.py +0 -0
  229. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/types/speech/audio_output_multi.py +0 -0
  230. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/types/speech/close_context.py +0 -0
  231. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/types/speech/close_socket.py +0 -0
  232. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/types/speech/final_output_multi.py +0 -0
  233. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/types/speech/fine_tuning_response.py +0 -0
  234. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/types/speech/fine_tuning_response_state_value.py +0 -0
  235. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/types/speech/flush_context.py +0 -0
  236. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/types/speech/generation_config.py +0 -0
  237. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/types/speech/get_voices_response.py +0 -0
  238. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/types/speech/get_voices_v_2_response.py +0 -0
  239. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/types/speech/initialize_connection_multi.py +0 -0
  240. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/types/speech/language_response.py +0 -0
  241. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/types/speech/manual_verification_file_response.py +0 -0
  242. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/types/speech/manual_verification_response.py +0 -0
  243. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/types/speech/model.py +0 -0
  244. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/types/speech/model_rates_response_model.py +0 -0
  245. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/types/speech/normalized_alignment.py +0 -0
  246. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/types/speech/output_format.py +0 -0
  247. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/types/speech/pronunciation_dictionary_locator.py +0 -0
  248. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/types/speech/reader_resource_response_model.py +0 -0
  249. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/types/speech/reader_resource_response_model_resource_type.py +0 -0
  250. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/types/speech/realtime_voice_settings.py +0 -0
  251. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/types/speech/recording_response.py +0 -0
  252. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/types/speech/review_status.py +0 -0
  253. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/types/speech/send_text_multi.py +0 -0
  254. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/types/speech/speaker_response_model.py +0 -0
  255. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/types/speech/speaker_separation_response_model.py +0 -0
  256. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/types/speech/speaker_separation_response_model_status.py +0 -0
  257. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/types/speech/utterance_response_model.py +0 -0
  258. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/types/speech/verification_attempt_response.py +0 -0
  259. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/types/speech/verified_voice_language_response_model.py +0 -0
  260. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/types/speech/voice.py +0 -0
  261. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/types/speech/voice_category.py +0 -0
  262. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/types/speech/voice_labelling_status.py +0 -0
  263. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/types/speech/voice_recording_quality.py +0 -0
  264. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/types/speech/voice_safety_control.py +0 -0
  265. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/types/speech/voice_sample.py +0 -0
  266. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/types/speech/voice_settings.py +0 -0
  267. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/types/speech/voice_sharing_moderation_check_response_model.py +0 -0
  268. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/types/speech/voice_sharing_response.py +0 -0
  269. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/types/speech/voice_sharing_response_category.py +0 -0
  270. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/types/speech/voice_sharing_state.py +0 -0
  271. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/types/speech/voice_verification_response.py +0 -0
  272. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/types/speech_language.py +0 -0
  273. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/types/websocket_connection_options.py +0 -0
  274. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha/types/websocket_reconnection.py +0 -0
  275. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha_python_sdk.egg-info/SOURCES.txt +0 -0
  276. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha_python_sdk.egg-info/dependency_links.txt +0 -0
  277. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha_python_sdk.egg-info/requires.txt +0 -0
  278. {avartha_python_sdk-0.0.7 → avartha_python_sdk-0.0.8}/src/avartha_python_sdk.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: avartha-python-sdk
3
- Version: 0.0.7
3
+ Version: 0.0.8
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
@@ -33,11 +33,12 @@ Dynamic: license-file
33
33
 
34
34
  Synchronous and asynchronous Python clients for Avartha Realtime text,
35
35
  streaming speech, and platform management. Requires Python 3.12+.
36
+ The guides and examples below use SDK 0.0.7 or later.
36
37
 
37
38
  ## Install
38
39
 
39
40
  ```sh
40
- python -m pip install avartha-python-sdk
41
+ python -m pip install --upgrade 'avartha-python-sdk>=0.0.7'
41
42
  ```
42
43
 
43
44
  Configure your Avartha API key and platform root:
@@ -55,15 +56,18 @@ to your workspace. Unsupported tier values and dedicated inference URLs raise
55
56
  ## Discover models
56
57
 
57
58
  ```python
58
- from avartha import OpenAI
59
+ from avartha import Avartha
59
60
 
60
- with OpenAI() as client:
61
+ with Avartha() as client:
61
62
  for model in client.models.list():
62
63
  print(model.id, model.to_dict().get("protocols", []))
64
+ for model in client.elevenlabs.models.list():
65
+ print(model.model_id, getattr(model, "protocols", []))
63
66
  ```
64
67
 
65
- Choose a model supporting `openai_realtime` for text, `elevenlabs_tts` for
66
- speech synthesis, or `elevenlabs_asr` for speech recognition.
68
+ `client.models` lists Voice LLMs; choose `openai_realtime` for text.
69
+ `client.elevenlabs.models` lists speech models; choose `elevenlabs_tts` for
70
+ speech synthesis or `elevenlabs_asr` for speech recognition.
67
71
 
68
72
  ## Generate text
69
73
 
@@ -111,11 +115,10 @@ Inference consumes credits.
111
115
  | Workspaces, members, invitations | `Control` / `AsyncControl` |
112
116
  | Voice agents: create, edit, publish, restore, delete | `Control` / `AsyncControl`: `voice_agents` |
113
117
  | Live conversations with published agents | `avartha.conversational_ai`: `Conversation`, `AsyncConversation` |
114
- | Placing phone calls from Twilio numbers | `ElevenLabs` / `AsyncElevenLabs`: `conversational_ai.twilio.outbound_call` |
115
118
  | Combined inference and management | `Avartha` / `AsyncAvartha` |
116
119
 
117
- Managed inference uses WebSockets; Chat Completions, Responses, HTTP TTS,
118
- and file transcription are unavailable. ElevenLabs-schema agent management is not
120
+ This SDK provides model inference over WebSockets; it does not wrap HTTP
121
+ Chat Completions, Responses, speech synthesis, or file transcription. ElevenLabs-schema agent management is not
119
122
  implemented, and accessing it under `conversational_ai` raises `NotImplementedError`.
120
123
 
121
124
  ## Migrating and handling errors
@@ -140,4 +143,4 @@ never retried automatically.
140
143
  The [source archive on PyPI](https://pypi.org/project/avartha-python-sdk/#files)
141
144
  includes `README.md`, customer guides in `docs/`, and runnable examples in
142
145
  `examples/`. Download and unpack the archive to read the migration, compatibility,
143
- and platform-management guides and run the text, speech, and endpoint examples.
146
+ and platform-management guides and run the text, speech, and voice-agent examples.
@@ -4,6 +4,7 @@
4
4
 
5
5
  Synchronous and asynchronous Python clients for Avartha Realtime LLMs,
6
6
  streaming speech, and platform management. Requires Python 3.12+.
7
+ The guides and examples below use SDK 0.0.7 or later.
7
8
 
8
9
  **Familiar Python interfaces for OpenAI Realtime and ElevenLabs speech.** Change
9
10
  client, type, and exception imports, then configure Avartha credentials, URLs,
@@ -20,9 +21,11 @@ and model/voice IDs. The supported APIs use the same method names and event loop
20
21
  ```
21
22
 
22
23
  Neither vendor SDK needs to be installed. Avartha supports Realtime text,
23
- streaming speech, HTTP discovery, and platform management. Managed inference is
24
- **WebSocket-only**; Chat Completions, Responses, and HTTP speech inference are
25
- unavailable. See the guides below for supported features and migration steps.
24
+ streaming speech, HTTP discovery, and platform management. This SDK uses
25
+ WebSockets for model inference. It does not wrap HTTP Chat Completions,
26
+ Responses, or speech synthesis. Enabled platform HTTP endpoints have their
27
+ own model and workspace prerequisites. See the guides below for supported
28
+ features and migration steps.
26
29
 
27
30
  ## Documentation
28
31
 
@@ -36,7 +39,7 @@ unavailable. See the guides below for supported features and migration steps.
36
39
  Install from [PyPI](https://pypi.org/project/avartha-python-sdk/):
37
40
 
38
41
  ```sh
39
- python -m pip install avartha-python-sdk
42
+ python -m pip install --upgrade 'avartha-python-sdk>=0.0.7'
40
43
  ```
41
44
 
42
45
  Set your Avartha API key and platform root. Update `AVARTHA_BASE_URL` to match
@@ -88,16 +91,19 @@ and response on the same connection to preserve conversation state.
88
91
  To discover available models and their enabled protocols:
89
92
 
90
93
  ```python
91
- from avartha import OpenAI
94
+ from avartha import Avartha
92
95
 
93
- with OpenAI() as client:
96
+ with Avartha() as client:
94
97
  for model in client.models.list():
95
98
  print(model.id, model.to_dict().get("protocols", []))
99
+ for model in client.elevenlabs.models.list():
100
+ print(model.model_id, getattr(model, "protocols", []))
96
101
  ```
97
102
 
98
103
  Model availability depends on your workspace and environment. Replace
99
- the example IDs with models returned for your key and the protocol you need:
100
- `openai_realtime`, `elevenlabs_tts`, or `elevenlabs_asr`.
104
+ the example IDs with models returned for your key. `client.models` lists
105
+ Voice LLMs; choose `openai_realtime` for text. `client.elevenlabs.models` lists
106
+ speech models; choose `elevenlabs_tts` or `elevenlabs_asr` for speech.
101
107
 
102
108
  ## Async usage
103
109
 
@@ -169,6 +175,7 @@ G.711 (`ulaw_8000`, `alaw_8000`). This example writes 24 kHz PCM to a WAV file:
169
175
 
170
176
  ```python
171
177
  import wave
178
+ from contextlib import closing
172
179
  from avartha import ElevenLabs
173
180
 
174
181
  with ElevenLabs() as client:
@@ -178,7 +185,7 @@ with ElevenLabs() as client:
178
185
  output_format="pcm_24000",
179
186
  text=iter(["Welcome. ", "How can I help?"]),
180
187
  )
181
- with wave.open("welcome.wav", "wb") as output:
188
+ with closing(audio), wave.open("welcome.wav", "wb") as output:
182
189
  output.setnchannels(1)
183
190
  output.setsampwidth(2)
184
191
  output.setframerate(24000)
@@ -225,8 +232,9 @@ Use `AsyncAvartha` or `AsyncElevenLabs` for an async application. See the
225
232
  [live STT execution guidance](docs/migration.md#live-speech-to-text) for scripts
226
233
  and applications with an existing event loop.
227
234
 
228
- Current ASR models require 16 kHz mono PCM16 audio. Convert other formats or
229
- sample rates before sending audio chunks; the SDK does not resample them.
235
+ ASR accepts mono PCM16 at 8, 16, 22.05, 24, 44.1, or 48 kHz, and 8 kHz mu-law.
236
+ Choose the `AudioFormat` and `sample_rate` that match your samples; the server
237
+ resamples them, and the SDK sends chunks unchanged.
230
238
  Await a committed transcript before closing the session.
231
239
  [The complete example](examples/realtime_asr.py) reads a WAV file, registers
232
240
  transcript/error callbacks, streams chunks, commits, and closes the connection:
@@ -294,21 +302,6 @@ with ElevenLabs() as client:
294
302
  conversation.wait_for_session_end()
295
303
  ```
296
304
 
297
- An agent can also call someone from one of the workspace's Twilio numbers. Pass an
298
- `idempotency_key`, so a retry can't ring them twice, and check `placed.success`:
299
-
300
- ```python
301
- placed = client.conversational_ai.twilio.outbound_call(
302
- agent_id="your-agent-id",
303
- agent_phone_number_id="your-twilio-number-id",
304
- to_number="+14155550100",
305
- idempotency_key="order-1042-reminder",
306
- )
307
- ```
308
-
309
- See [placing a phone call](docs/voice-conversations.md#placing-a-phone-call) for its
310
- prerequisites and how to follow the call.
311
-
312
305
  ElevenLabs-schema agent management, tools, and knowledge bases are not implemented.
313
306
  Accessing them under `client.conversational_ai` raises `NotImplementedError`.
314
307
 
@@ -1,6 +1,7 @@
1
1
  # Compatibility and server support
2
2
 
3
- Avartha supports the OpenAI Python 3.13.0 Realtime text interface and the
3
+ This guide covers Avartha Python SDK 0.0.7 or later. Avartha supports the
4
+ OpenAI Python 3.13.0 Realtime text interface and the
4
5
  ElevenLabs Python 2.68.0 realtime speech and discovery interfaces. Neither
5
6
  vendor SDK needs to be installed. Import clients, types, and exceptions from
6
7
  Avartha; see the [migration guide](migration.md).
@@ -9,27 +10,29 @@ Avartha; see the [migration guide](migration.md).
9
10
 
10
11
  SDK support and server availability are separate. Select a model available to
11
12
  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.
13
+ These SDK model clients provide inference over WebSockets. Discovery and platform
14
+ management use HTTP. The platform also has enabled HTTP inference routes that
15
+ this SDK does not wrap: OpenAI speech/batch and Decisions, plus Chat Completions
16
+ for authorized OpenRouter-provider workspaces. Those routes do not imply that
17
+ ordinary workspace keys can use HTTP LLM inference.
14
18
 
15
19
  | Surface | SDK support | Server prerequisites |
16
20
  | --- | --- | --- |
17
21
  | OpenAI Realtime text | Sync/async `realtime.connect()` | A model supporting `openai_realtime` and the requested session options |
18
22
  | OpenAI model discovery | Sync/async `models.list()` and `models.retrieve(model)` | A valid Avartha key; results depend on workspace |
19
23
  | 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 |
24
+ | Chat Completions, Responses, SSE, and OpenAI HTTP speech | No SDK wrappers | Enabled platform HTTP routes have separate prerequisites; use Realtime for this SDK’s model clients |
21
25
  | Speech models and voices | Typed sync/async HTTP discovery | A visible speech model; voice discovery requires a routable TTS model |
22
26
  | ASR languages | Sync/async `speech_to_text.languages.list(model_id=...)` | A routable ASR model; language hints depend on the model |
23
27
  | Single-context TTS | Sync/async `convert_realtime` | A TTS model and voice; the runtime converts to the selected PCM, MP3 or G.711 format |
24
28
  | Multi-context TTS | Sync/async `connect_multi_context` | A model supporting multiple contexts; each utterance needs a new context ID. Character timestamps need a timestamp-capable model |
25
29
  | 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 |
30
+ | HTTP TTS and file transcription | No SDK wrappers | Use these SDK realtime speech methods, or an explicitly enabled platform HTTP route |
27
31
  | Live conversations and their history | Sync/async `Conversation`, `AsyncConversation`, and `conversational_ai.conversations` | A published agent and an API key for its workspace; see [voice conversations](voice-conversations.md) |
28
- | Placing phone calls | Sync/async `conversational_ai.twilio.outbound_call` | Outbound calling enabled, a key with `voice_calls_place`, a Twilio number, and a published agent; see [placing a phone call](voice-conversations.md#placing-a-phone-call) |
29
32
  | ElevenLabs-schema agents, tools, knowledge bases | Not implemented | Accessing them under `conversational_ai` raises `NotImplementedError` |
30
- | Avartha voice agents: create, read, edit, publish, restore, delete | Sync/async `Control.voice_agents` | An API key with voice-agent management access to that workspace; the feature enabled; capacity to publish |
33
+ | Avartha voice agents: create, read, edit, publish, restore, delete | Sync/async `Control.voice_agents` | An API key with voice-agent management access to that workspace; capacity to publish |
31
34
  | Catalog, workspaces, members, and invitations | Sync/async `Control` | An Avartha API key with the required workspace role and allocation |
32
- | API-key administration | Unavailable through `Control` | Use the platform portal; these operations require a browser session |
35
+ | API-key administration | No convenience resource; verified routes can use `Control.request` | A workspace-bound key with `keys` access and a creator who is still an Owner or Admin, or a console session |
33
36
 
34
37
  See [platform management](platform.md) for workspace roles, invitation
35
38
  requirements, voice agents, and permissions.
@@ -53,6 +56,13 @@ serialization methods. The server must implement each requested feature.
53
56
  Inspect `response.done.response.status` to distinguish successful completion
54
57
  from failure, cancellation, or an incomplete response.
55
58
 
59
+ A new connection can rebuild a saved conversation on a compatible model.
60
+ Before its first `response.create`, append the saved items in order: assistant
61
+ messages with `role: "assistant"` and `output_text` content, and each tool call
62
+ as a `function_call` item (`call_id`, `name`, and JSON-object `arguments`)
63
+ followed by its `function_call_output`. Wait for each item's acknowledgement
64
+ before requesting a reply. This rebuilds the input history, not the old session.
65
+
56
66
  ### Sampling controls
57
67
 
58
68
  Avartha adds sampling controls to `session.update` and `response.create`:
@@ -88,6 +98,32 @@ or queued, including through `send_raw()`:
88
98
  Active penalties also require deployment support; otherwise the server refuses
89
99
  them with an `error` event. Speech-to-text connections have no temperature setting.
90
100
 
101
+ ### Native options beyond the typed schema
102
+
103
+ The SDK's public types cover its supported subset of the OpenAI schema and the
104
+ sampling controls above. Some Avartha Realtime extensions, including
105
+ `include_reasoning` and `reasoning.thinking_enabled`, are not yet declared in
106
+ those types. A supported runtime can receive them as explicit JSON:
107
+
108
+ ```python
109
+ import json
110
+
111
+ await connection.send_raw(
112
+ json.dumps(
113
+ {
114
+ "type": "session.update",
115
+ "session": {"type": "realtime", "include_reasoning": True},
116
+ }
117
+ )
118
+ )
119
+ ```
120
+
121
+ This opts into reasoning output without changing the model's reasoning effort.
122
+ The synchronous connection uses the same call without `await`. Raw frames still
123
+ pass the SDK's text-only and sampling checks, and the server validates all
124
+ remaining fields. A field's absence from the Python type does not establish
125
+ server support; check the selected model and platform protocol documentation.
126
+
91
127
  ### Unsupported operations
92
128
 
93
129
  Explicit audio/transcription/image requests raise `UnsupportedOperationError`
@@ -242,6 +278,22 @@ Out-of-range `inactivity_timeout` values, a non-boolean `sync_alignment`, and
242
278
  `sync_alignment=True` with MP3 raise `ValueError` before connecting. For
243
279
  `convert_realtime`, that happens when iteration starts.
244
280
 
281
+ ### Voice settings, warnings, and other query parameters
282
+
283
+ ElevenLabs' `stability`, `similarity_boost`, and `style` (finite numbers from 0
284
+ to 1) and `use_speaker_boost` (a boolean) are accepted in `voice_settings` for
285
+ compatibility, but they do not change synthesis. `speed` must be omitted or 1.0.
286
+ Other names, types, and ranges are refused. When accepted settings have no
287
+ effect, the runtime sends a `warning` once per connection. The SDK logs it on
288
+ the `avartha._realtime_tts` logger at `WARNING` level and keeps streaming: a
289
+ warning never raises or settles a context.
290
+
291
+ Pass other documented stream parameters, such as `language_code`, in
292
+ `request_options={"additional_query_parameters": {...}}`. Values there override
293
+ the SDK's own query values, and `None` omits one. Some models cannot detect the
294
+ language of streamed text, so they refuse it unless `language_code` is set;
295
+ send `"en"` for English text.
296
+
245
297
  Use `contextlib.closing(audio)` for the sync iterator or
246
298
  `contextlib.aclosing(audio)` for the async iterator when playback may stop early.
247
299
  Closing the iterator closes the socket and waits for its sender to stop. Started
@@ -343,8 +395,11 @@ the server. Runnable examples:
343
395
  ## Realtime ASR
344
396
 
345
397
  Audio-chunk mode sends samples unchanged. Supply matching `audio_format` and
346
- `sample_rate`; mismatches raise `ValueError` before opening a socket. Supported
347
- encodings and rates depend on the server. URL mode requires FFmpeg and converts
398
+ `sample_rate`; mismatches raise `ValueError` before opening a socket. Every
399
+ `AudioFormat` value is accepted: mono PCM16 at 8, 16, 22.05, 24, 44.1, or 48 kHz,
400
+ and 8 kHz mu-law (`ULAW_8000`). The server resamples them for recognition. Send
401
+ raw samples without a file header; a chunk can hold at most 320,000 decoded bytes
402
+ and 160,000 samples, and must end on a sample boundary. URL mode requires FFmpeg and converts
348
403
  the source to 16 kHz mono PCM16. After a successful, nonempty source reaches EOF,
349
404
  the SDK commits the final turn and keeps receiving transcript events until the
350
405
  application closes the connection. FFmpeg failures emit `RealtimeEvents.ERROR`.
@@ -454,4 +509,6 @@ committed transcript remains usable. See the
454
509
  fence. Pass `organization` or `project` explicitly to set them.
455
510
  - The ASR token option is preserved, including suppression of the API-key header
456
511
  when a token is supplied. Token issuance is a separate server prerequisite.
457
- Agent signed-URL handling will be implemented with the future Agents client.
512
+ Published-agent signed URLs are available through
513
+ `conversational_ai.conversations.get_signed_url` and
514
+ `Conversation(requires_auth=True)`; see [voice conversations](voice-conversations.md).
@@ -7,16 +7,17 @@ URLs, and model/voice IDs. Keep the supported realtime calls and event loops.
7
7
  The supported interfaces match OpenAI Python 3.13.0 and ElevenLabs Python 2.68.0.
8
8
  Neither vendor SDK needs to be installed to use Avartha.
9
9
 
10
- Client compatibility does not add server endpoints. Current managed inference
11
- supports WebSocket inference and HTTP discovery. HTTP speech synthesis/file
12
- transcription, Chat Completions, and Responses are retired. See [SDK support and server prerequisites](compatibility.md).
10
+ This guide uses SDK 0.0.7 or later. Its model clients provide WebSocket
11
+ inference and HTTP discovery. HTTP inference wrappers are outside this SDK
12
+ subset; enabled platform HTTP endpoints have separate prerequisites. See
13
+ [SDK support and server prerequisites](compatibility.md).
13
14
 
14
15
  ## From OpenAI Realtime
15
16
 
16
17
  Install the package:
17
18
 
18
19
  ```sh
19
- python -m pip install avartha-python-sdk
20
+ python -m pip install --upgrade 'avartha-python-sdk>=0.0.7'
20
21
  ```
21
22
 
22
23
  Then change the client import:
@@ -105,8 +106,9 @@ application uses it.
105
106
 
106
107
  ### Existing HTTP inference applications
107
108
 
108
- Applications using Chat Completions, Responses, SSE, or HTTP speech inference
109
- must switch to the corresponding Realtime protocol. Calls to OpenAI-compatible
109
+ Applications moving HTTP inference code to these SDK model clients use the
110
+ corresponding Realtime protocol. A direct platform HTTP integration uses its
111
+ own documented endpoint and model prerequisites. Calls to OpenAI-compatible
110
112
  HTTP inference resources raise `avartha.UnsupportedOperationError` before any
111
113
  request is sent, including when a custom service URL is supplied.
112
114
 
@@ -165,13 +167,12 @@ use `avartha.ApiError`. WebSocket exceptions retain the `websockets` classes.
165
167
  | ASR languages | `speech_to_text.languages.list(model_id=...)` | Typed sync/async Avartha extension |
166
168
  | HTTP TTS, file ASR | `text_to_speech.convert`, `text_to_speech.stream`, `speech_to_text.convert` | Unavailable in this SDK |
167
169
  | Conversation sessions and history | `conversational_ai.conversation`, `conversational_ai.conversations` | A documented subset; see [voice conversations](voice-conversations.md) |
168
- | Placing phone calls | `conversational_ai.twilio.outbound_call` | A documented subset; see [placing a phone call](voice-conversations.md#placing-a-phone-call) |
169
- | Registering Twilio calls | `conversational_ai.twilio.register_call` | Unavailable in this SDK |
170
170
  | Agents, tools, knowledge bases | `conversational_ai` | Not implemented |
171
+ | Twilio phone calls | `conversational_ai.twilio` | Unavailable in this SDK |
171
172
 
172
173
  Replace `avartha.legacy.ElevenLabs` and `avartha.legacy.AsyncElevenLabs` imports
173
174
  with `avartha.ElevenLabs` and `avartha.AsyncElevenLabs`.
174
- Accessing agents, tools, or knowledge bases under `conversational_ai` raises
175
+ Accessing agents, tools, knowledge bases, or `twilio` under `conversational_ai` raises
175
176
  `NotImplementedError`; Avartha's own voice agents use a different schema and are managed
176
177
  with [`Control.voice_agents`](platform.md#voice-agents). Conversations use
177
178
  `avartha.conversational_ai`; call `wait_for_session_start()` before sending, and pass
@@ -264,11 +265,12 @@ transcripts. Handlers can be ordinary functions or async functions.
264
265
  ASR events retain their names and raw dictionary payloads, including the
265
266
  deprecated `UNACCEPTED_TERMS_ERROR` callback alias.
266
267
 
267
- Current ASR models require raw 16 kHz mono PCM16 samples without a file header.
268
- For audio chunks, select `AudioFormat.PCM_16000` and `sample_rate=16000`, and
269
- convert other formats or sample rates before sending. The SDK does not
270
- resample chunks or convert their encoding. URL mode uses FFmpeg to convert the
271
- source to the required format and requires FFmpeg on `PATH`.
268
+ ASR accepts raw mono samples without a file header: PCM16 at 8, 16, 22.05, 24,
269
+ 44.1, or 48 kHz, or 8 kHz mu-law. Select the matching `AudioFormat` and
270
+ `sample_rate`, such as `AudioFormat.PCM_24000` with `sample_rate=24000`; the
271
+ server resamples them for recognition. The SDK sends chunks unchanged and does
272
+ not convert their encoding. URL mode uses FFmpeg to convert the source to 16 kHz
273
+ PCM16 and requires FFmpeg on `PATH`.
272
274
 
273
275
  Nonempty `previous_text` is unsupported by current ASR models. The SDK
274
276
  preserves this protocol field, but the server rejects nonempty values rather
@@ -448,9 +450,10 @@ Speech discovery retries transient HTTP statuses twice by default; use
448
450
  `request_options={"max_retries": 0}` to disable retries. Redirects must stay on
449
451
  the configured origin. Platform management writes are never retried automatically.
450
452
 
451
- HTTP timeout and retry settings do not configure WebSockets. Use
452
- `client.realtime.connect(..., max_retries=0)` on OpenAI-compatible clients to
453
- disable automatic reconnection, and `websocket_connection_options` for
454
- connection settings. Use `asyncio.timeout` when an async operation needs an
453
+ HTTP timeout and retry settings do not configure WebSockets. Realtime
454
+ reconnection is opt-in through `on_reconnecting`; `max_retries=0` disables
455
+ retries even with a callback. Each reconnect starts a fresh session, so the
456
+ application must restore configuration and conversation history. Use
457
+ `websocket_connection_options` for connection settings. Use `asyncio.timeout` when an async operation needs an
455
458
  overall deadline. Close active WebSocket sessions separately, including when
456
459
  cancelling or stopping playback early.
@@ -14,8 +14,11 @@ with Avartha() as client:
14
14
  print(models, sizes, organizations)
15
15
  ```
16
16
 
17
+ These examples use SDK 0.0.7 or later.
18
+
17
19
  `organizations.limits(workspace_id)` returns quota policy, current usage, and
18
- any pending quota increase request. Management responses are JSON dictionaries
20
+ any pending quota increase request. A null `entitlement_policy` means the
21
+ workspace uses platform defaults, not that it is unlimited. Management responses are JSON dictionaries
19
22
  and lists, preserving the server's fields.
20
23
 
21
24
  ## Workspace administration
@@ -27,7 +30,7 @@ The platform calls workspaces `organizations`. Use the same ID returned by
27
30
  from avartha import Control
28
31
 
29
32
  with Control() as client:
30
- workspace = client.organizations.create(name="Research")
33
+ workspace = client.organizations.list()[0] # The API key's bound workspace.
31
34
  workspace_id = str(workspace["id"])
32
35
  client.organizations.update(workspace_id, name="Research team")
33
36
  members = client.organizations.members.list(workspace_id)
@@ -38,7 +41,7 @@ with Control() as client:
38
41
  | --- | --- |
39
42
  | `control.organizations` | `list()`, `get(id)`, `create(name=...)`, `update(id, name=...)`, `delete(id)`, `leave(id)`, `limits(id)` |
40
43
  | `control.organizations.members` | `list(id)`, `update(id, user_id, role=...)`, `remove(id, user_id)` |
41
- | `control.organizations.invitations` | `list(id)`, `create(id, role=..., email=..., entitlement_policy=...)`, `revoke(id, invitation_id)` |
44
+ | `control.organizations.invitations` | `list(id)`, `create(id, role=..., email=...)`, `revoke(id, invitation_id)` |
42
45
  | `control.invitations` | `preview(token)`, `accept(token=...)` |
43
46
 
44
47
  Here, `id` is the organization ID. Roles are `"owner"`, `"admin"`, and
@@ -49,9 +52,9 @@ return `None`. Revoking an invitation returns its updated JSON object.
49
52
  Create an invitation link with
50
53
  `client.organizations.invitations.create(workspace_id, role="member")`.
51
54
  The response includes `accept_url`. Supplying `email` also asks the platform to
52
- send an invitation email. Targeted customer invitations require an
53
- `entitlement_policy` JSON object defining the member's credit budget and rate
54
- limits; the SDK sends it unchanged. Omitted or `None` optional arguments are
55
+ send an invitation email. The supported request fields are `role` and `email`.
56
+ The SDK retains an `entitlement_policy` parameter, but the platform ignores it;
57
+ it does not set a recipient credit budget or rate limit. Omitted or `None` optional arguments are
55
58
  left out of the request. Inspect `delivery_warning`: creation can succeed even
56
59
  if email delivery fails.
57
60
 
@@ -79,21 +82,25 @@ asyncio.run(main())
79
82
 
80
83
  ### Server prerequisites
81
84
 
82
- - Customer routes accept an active customer's Avartha API key. Workspace
83
- membership and roles determine access; a key's workspace binding is used for
84
- inference routing and does not replace management authorization.
85
+ - A key acts only in the workspace it is bound to. Workspace administration
86
+ also needs the **Workspace** management access (`workspace`) and the required
87
+ role. A default inference key does not have that access. Listing workspaces
88
+ returns only the key's bound workspace.
89
+ - `organizations.create()` needs `workspace` access. The returned workspace is
90
+ new; the key remains bound to the original workspace. Create a key for the new
91
+ workspace in the console before managing it with another client.
85
92
  - Owners and admins can rename workspaces and manage members/invitations.
86
93
  Only owners can delete a workspace or change owner access. Admins cannot
87
94
  change or remove other admins. The server refuses removing or demoting the
88
95
  last owner, including through `leave`, with a conflict.
89
96
  - New customer workspaces start with a serverless-only, zero-budget allocation.
90
97
  Creation alone does not provide inference credits.
91
- - Targeted customer invitations require a workspace member-allocation policy
92
- and a valid member entitlement policy. Email delivery requires server email
93
- configuration.
94
- - Manage API keys through the customer portal. Creating, listing, and revoking
95
- keys requires an interactive browser session and is not available through
96
- this bearer-key client.
98
+ - Email delivery requires server email configuration. Inspect any
99
+ `delivery_warning` even after an invitation is created.
100
+ - API-key administration has no convenience resource in `Control`. Its verified
101
+ `auth/api-keys` routes accept a key with **Keys** management access (`keys`),
102
+ bound to the workspace, whose creator is still an Owner or Admin. The console
103
+ also provides these operations. Existing key secrets cannot be retrieved.
97
104
 
98
105
  ## Voice agents
99
106
 
@@ -154,7 +161,6 @@ with Control() as client:
154
161
  | `create(workspace_id, name=..., template_id=..., config=..., description=..., use_case=..., color=...)` | The new draft |
155
162
  | `update(workspace_id, agent_id, expected_generation=..., name=..., description=..., template_id=..., use_case=..., config=..., color=...)` | The saved draft |
156
163
  | `publish(workspace_id, agent_id, expected_agent_generation=..., expected_publication_generation=...)` | `action`, `publication_generation`, and `publication` |
157
-
158
164
  | `delete(workspace_id, agent_id, expected_generation=...)` | Nothing; the agent is gone |
159
165
  | `publications.list(workspace_id, agent_id, before=..., limit=...)` | `publications`, newest first, and `next_before` |
160
166
  | `publications.get(workspace_id, agent_id, publication_id)` | One revision with its name and `config` |
@@ -241,7 +247,6 @@ client.voice_agents.publish(
241
247
  | 409, `body["code"] == "voice_agent_capacity_exceeded"` | The workspace is at its published-agent limit | See the prerequisites below |
242
248
  | 429, `body["code"] == "rate_limit_exceeded"` | Too many management requests for this user or workspace | Wait `retry_after` seconds, then retry |
243
249
  | 403 | The key lacks the access below | Check its scope, workspace, and creator's role |
244
- | 404 `Voice agents aren't available for this workspace` | The feature is off for the workspace | Ask Avartha to enable it |
245
250
  | 422 with a text `body` | A required key is missing or a value has the wrong type | Correct the request as `body` describes |
246
251
  | 503 `No voice environment serves this caller...` | The platform has no voice environment for this caller, so drafts can't be saved | Contact Avartha |
247
252
 
@@ -249,9 +254,9 @@ client.voice_agents.publish(
249
254
  before trying again, because the draft may have been saved.
250
255
 
251
256
  Unpublishing, test calls, changing data retention, and creating or revoking
252
- credentials aren't available to API keys, so use the console for them. Tools and
253
- knowledge sources can be referenced in `config` once they
254
- exist in the workspace, but are managed elsewhere. Publishing makes an agent available,
257
+ voice-provider credentials aren't available to API keys, so use the console for them. Tools can be
258
+ referenced in `config` once they exist in the workspace, but are managed elsewhere.
259
+ Publishing makes an agent available,
255
260
  and the workspace's voice-call policy still decides whether calls are admitted. To talk
256
261
  to a published agent, see [voice conversations](voice-conversations.md).
257
262
 
@@ -265,8 +270,8 @@ to a published agent, see [voice conversations](voice-conversations.md).
265
270
  name and configuration. It gets HTTP 403 for every write, for revision history, and
266
271
  for credentials. `runtime_defaults()` and `data_retention()` need only workspace
267
272
  membership.
268
- - The workspace needs the voice agents feature; `organizations.get(id)` lists it in
269
- `feature_flags`. Saving drafts needs no other allowance.
273
+ - Voice agents are available to every workspace; saving drafts needs no other
274
+ allowance.
270
275
  - Publishing a new agent needs capacity: `organizations.limits(id)` reports
271
276
  `max_voice_agents` under `limits`, and new workspaces start at zero.
272
277
 
@@ -2,11 +2,12 @@
2
2
 
3
3
  Synchronous and asynchronous Python clients for Avartha Realtime text,
4
4
  streaming speech, and platform management. Requires Python 3.12+.
5
+ The guides and examples below use SDK 0.0.7 or later.
5
6
 
6
7
  ## Install
7
8
 
8
9
  ```sh
9
- python -m pip install avartha-python-sdk
10
+ python -m pip install --upgrade 'avartha-python-sdk>=0.0.7'
10
11
  ```
11
12
 
12
13
  Configure your Avartha API key and platform root:
@@ -24,15 +25,18 @@ to your workspace. Unsupported tier values and dedicated inference URLs raise
24
25
  ## Discover models
25
26
 
26
27
  ```python
27
- from avartha import OpenAI
28
+ from avartha import Avartha
28
29
 
29
- with OpenAI() as client:
30
+ with Avartha() as client:
30
31
  for model in client.models.list():
31
32
  print(model.id, model.to_dict().get("protocols", []))
33
+ for model in client.elevenlabs.models.list():
34
+ print(model.model_id, getattr(model, "protocols", []))
32
35
  ```
33
36
 
34
- Choose a model supporting `openai_realtime` for text, `elevenlabs_tts` for
35
- speech synthesis, or `elevenlabs_asr` for speech recognition.
37
+ `client.models` lists Voice LLMs; choose `openai_realtime` for text.
38
+ `client.elevenlabs.models` lists speech models; choose `elevenlabs_tts` for
39
+ speech synthesis or `elevenlabs_asr` for speech recognition.
36
40
 
37
41
  ## Generate text
38
42
 
@@ -80,11 +84,10 @@ Inference consumes credits.
80
84
  | Workspaces, members, invitations | `Control` / `AsyncControl` |
81
85
  | Voice agents: create, edit, publish, restore, delete | `Control` / `AsyncControl`: `voice_agents` |
82
86
  | Live conversations with published agents | `avartha.conversational_ai`: `Conversation`, `AsyncConversation` |
83
- | Placing phone calls from Twilio numbers | `ElevenLabs` / `AsyncElevenLabs`: `conversational_ai.twilio.outbound_call` |
84
87
  | Combined inference and management | `Avartha` / `AsyncAvartha` |
85
88
 
86
- Managed inference uses WebSockets; Chat Completions, Responses, HTTP TTS,
87
- and file transcription are unavailable. ElevenLabs-schema agent management is not
89
+ This SDK provides model inference over WebSockets; it does not wrap HTTP
90
+ Chat Completions, Responses, speech synthesis, or file transcription. ElevenLabs-schema agent management is not
88
91
  implemented, and accessing it under `conversational_ai` raises `NotImplementedError`.
89
92
 
90
93
  ## Migrating and handling errors
@@ -109,4 +112,4 @@ never retried automatically.
109
112
  The [source archive on PyPI](https://pypi.org/project/avartha-python-sdk/#files)
110
113
  includes `README.md`, customer guides in `docs/`, and runnable examples in
111
114
  `examples/`. Download and unpack the archive to read the migration, compatibility,
112
- and platform-management guides and run the text, speech, and endpoint examples.
115
+ and platform-management guides and run the text, speech, and voice-agent examples.