jaxl-python 0.0.47__tar.gz → 0.0.49__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 (281) hide show
  1. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/PKG-INFO +1 -1
  2. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/base.py +33 -1
  3. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/_scm_version.py +2 -2
  4. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/resources/apps.py +43 -12
  5. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl_python.egg-info/PKG-INFO +1 -1
  6. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/.github/workflows/sdk.yml +0 -0
  7. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/.gitignore +0 -0
  8. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/.isort.cfg +0 -0
  9. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/.pylintrc +0 -0
  10. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/.vscode/settings.json +0 -0
  11. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/LICENSE.md +0 -0
  12. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/README.md +0 -0
  13. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/SPECIFICATION.md +0 -0
  14. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/docs.sh +0 -0
  15. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/examples/README.md +0 -0
  16. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/examples/__init__.py +0 -0
  17. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/examples/prompts/example.txt +0 -0
  18. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/examples/py.typed +0 -0
  19. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/examples/request_and_confirm_code_then_send_to_phone.py +0 -0
  20. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/examples/request_code_and_send_to_phone.py +0 -0
  21. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/examples/send_to_phone.py +0 -0
  22. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/examples/streaming_aiagent.py +0 -0
  23. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/examples/streaming_audio_chunks.py +0 -0
  24. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/examples/streaming_speech_segments.py +0 -0
  25. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/examples/streaming_transcriptions.py +0 -0
  26. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/examples/streaming_wav_file.py +0 -0
  27. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/index.md +0 -0
  28. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/__init__.py +0 -0
  29. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/_client.py +0 -0
  30. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/_sdk.py +0 -0
  31. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/cli.py +0 -0
  32. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/__init__.py +0 -0
  33. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/api/__init__.py +0 -0
  34. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/api/v1/__init__.py +0 -0
  35. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/api/v1/v1_app_organizations_list.py +0 -0
  36. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/api/v1/v1_app_organizations_providers_list.py +0 -0
  37. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/api/v1/v1_appusers_me_retrieve.py +0 -0
  38. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/api/v1/v1_calls_add_create.py +0 -0
  39. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/api/v1/v1_calls_audio_retrieve.py +0 -0
  40. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/api/v1/v1_calls_hangup_retrieve.py +0 -0
  41. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/api/v1/v1_calls_list.py +0 -0
  42. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/api/v1/v1_calls_messages_create.py +0 -0
  43. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/api/v1/v1_calls_metadata_create.py +0 -0
  44. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/api/v1/v1_calls_report_retrieve.py +0 -0
  45. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/api/v1/v1_calls_retrieve.py +0 -0
  46. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/api/v1/v1_calls_tags_create.py +0 -0
  47. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/api/v1/v1_calls_token_create.py +0 -0
  48. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/api/v1/v1_calls_transfer_create.py +0 -0
  49. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/api/v1/v1_calls_tts_create.py +0 -0
  50. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/api/v1/v1_calls_usage_retrieve.py +0 -0
  51. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/api/v1/v1_campaign_list.py +0 -0
  52. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/api/v1/v1_campaign_upload_create.py +0 -0
  53. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/api/v1/v1_customer_consumables_retrieve.py +0 -0
  54. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/api/v1/v1_devices_attest_create.py +0 -0
  55. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/api/v1/v1_devices_list.py +0 -0
  56. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/api/v1/v1_integrations_create.py +0 -0
  57. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/api/v1/v1_ivr_create.py +0 -0
  58. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/api/v1/v1_ivr_list.py +0 -0
  59. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/api/v1/v1_ivr_options_create.py +0 -0
  60. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/api/v1/v1_ivr_options_list.py +0 -0
  61. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/api/v1/v1_ivr_options_partial_update.py +0 -0
  62. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/api/v1/v1_kyc_list.py +0 -0
  63. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/api/v1/v1_messages_list.py +0 -0
  64. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/api/v1/v1_phonenumbers_list.py +0 -0
  65. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/api/v1/v1_phonenumbers_partial_update.py +0 -0
  66. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/api/v1/v1_phonenumbers_search_retrieve.py +0 -0
  67. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/api/v2/__init__.py +0 -0
  68. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/api/v2/v2_app_organizations_employees_list.py +0 -0
  69. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/api/v2/v2_app_organizations_groups_list.py +0 -0
  70. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/api/v3/__init__.py +0 -0
  71. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/api/v3/v3_orders_subscriptions_list.py +0 -0
  72. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/client.py +0 -0
  73. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/errors.py +0 -0
  74. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/models/__init__.py +0 -0
  75. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/models/address_provider.py +0 -0
  76. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/models/address_provider_status_enum.py +0 -0
  77. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/models/analytic.py +0 -0
  78. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/models/app_price.py +0 -0
  79. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/models/app_user.py +0 -0
  80. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/models/available_phone_number.py +0 -0
  81. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/models/available_phone_number_capabilities.py +0 -0
  82. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/models/available_phone_number_provider_enum.py +0 -0
  83. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/models/call.py +0 -0
  84. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/models/call_add_request_request.py +0 -0
  85. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/models/call_audio_reason.py +0 -0
  86. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/models/call_cost.py +0 -0
  87. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/models/call_location_epoch.py +0 -0
  88. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/models/call_message_request_request.py +0 -0
  89. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/models/call_message_request_type_enum.py +0 -0
  90. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/models/call_metadata.py +0 -0
  91. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/models/call_report.py +0 -0
  92. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/models/call_report_reason.py +0 -0
  93. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/models/call_report_status_enum.py +0 -0
  94. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/models/call_tag_request.py +0 -0
  95. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/models/call_tag_response.py +0 -0
  96. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/models/call_token_request.py +0 -0
  97. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/models/call_token_response.py +0 -0
  98. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/models/call_transfer_request_request.py +0 -0
  99. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/models/call_tts_request_request.py +0 -0
  100. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/models/call_type_enum.py +0 -0
  101. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/models/call_usage_by_currency_response.py +0 -0
  102. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/models/call_usage_response.py +0 -0
  103. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/models/call_usage_stats_response.py +0 -0
  104. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/models/campaign.py +0 -0
  105. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/models/campaign_metadata.py +0 -0
  106. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/models/campaign_metadata_metadata.py +0 -0
  107. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/models/campaign_response.py +0 -0
  108. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/models/campaign_response_status_enum.py +0 -0
  109. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/models/campaign_stats.py +0 -0
  110. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/models/campaign_tag.py +0 -0
  111. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/models/campaign_upload_request.py +0 -0
  112. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/models/campaign_upload_request_options.py +0 -0
  113. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/models/campaign_upload_type_enum.py +0 -0
  114. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/models/campaign_window_request.py +0 -0
  115. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/models/can_user_resubscribe_plan.py +0 -0
  116. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/models/canceled_by_enum.py +0 -0
  117. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/models/capabilities.py +0 -0
  118. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/models/connection.py +0 -0
  119. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/models/content_type_enum.py +0 -0
  120. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/models/country.py +0 -0
  121. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/models/cta.py +0 -0
  122. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/models/cta_request.py +0 -0
  123. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/models/cta_type_enum.py +0 -0
  124. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/models/currency_enum.py +0 -0
  125. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/models/customer_consumable_total.py +0 -0
  126. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/models/customer_order_subscriptions_serializer_v2.py +0 -0
  127. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/models/customer_order_subscriptions_serializer_v2_status_enum.py +0 -0
  128. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/models/customer_provider_serializer_v2.py +0 -0
  129. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/models/device.py +0 -0
  130. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/models/device_attestation_error.py +0 -0
  131. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/models/device_attestation_error_reason_enum.py +0 -0
  132. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/models/device_attestation_response.py +0 -0
  133. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/models/dh_message.py +0 -0
  134. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/models/dh_message_attachment.py +0 -0
  135. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/models/dh_message_reaction.py +0 -0
  136. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/models/dh_message_type_enum.py +0 -0
  137. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/models/direction_enum.py +0 -0
  138. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/models/emoji.py +0 -0
  139. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/models/emoji_reaction.py +0 -0
  140. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/models/exotel_auth_request_request.py +0 -0
  141. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/models/failure_reason_enum.py +0 -0
  142. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/models/id_enum.py +0 -0
  143. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/models/integrations_error_response.py +0 -0
  144. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/models/integrations_properties_request.py +0 -0
  145. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/models/integrations_request_provider_enum.py +0 -0
  146. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/models/integrations_request_request.py +0 -0
  147. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/models/integrations_response.py +0 -0
  148. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/models/intent_enum.py +0 -0
  149. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/models/invalid_provider_request.py +0 -0
  150. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/models/iso_country_enum.py +0 -0
  151. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/models/item.py +0 -0
  152. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/models/ivr_collection.py +0 -0
  153. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/models/ivr_collection_request.py +0 -0
  154. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/models/ivr_menu_request.py +0 -0
  155. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/models/ivr_menu_request_settings.py +0 -0
  156. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/models/ivr_menu_response.py +0 -0
  157. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/models/ivr_menu_response_settings.py +0 -0
  158. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/models/ivr_menu_response_status_enum.py +0 -0
  159. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/models/ivr_options_invalid_response.py +0 -0
  160. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/models/ivr_options_request.py +0 -0
  161. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/models/ivr_options_response.py +0 -0
  162. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/models/kyc.py +0 -0
  163. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/models/kyc_status_enum.py +0 -0
  164. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/models/kyc_upload_metadata.py +0 -0
  165. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/models/location.py +0 -0
  166. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/models/next_or_cta_request.py +0 -0
  167. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/models/nimbus_post_auth_request_request.py +0 -0
  168. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/models/order_status_enum.py +0 -0
  169. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/models/organization.py +0 -0
  170. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/models/organization_employee.py +0 -0
  171. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/models/organization_employee_preferences.py +0 -0
  172. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/models/organization_employee_status_enum.py +0 -0
  173. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/models/organization_group_inline.py +0 -0
  174. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/models/organization_group_response.py +0 -0
  175. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/models/organization_preferences.py +0 -0
  176. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/models/organization_provider.py +0 -0
  177. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/models/paginated_call_list.py +0 -0
  178. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/models/paginated_campaign_response_list.py +0 -0
  179. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/models/paginated_customer_order_subscriptions_serializer_v2_list.py +0 -0
  180. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/models/paginated_device_list.py +0 -0
  181. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/models/paginated_dh_message_list.py +0 -0
  182. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/models/paginated_ivr_menu_response_list.py +0 -0
  183. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/models/paginated_ivr_options_response_list.py +0 -0
  184. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/models/paginated_kyc_list.py +0 -0
  185. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/models/paginated_organization_employee_list.py +0 -0
  186. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/models/paginated_organization_group_response_list.py +0 -0
  187. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/models/paginated_organization_list.py +0 -0
  188. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/models/paginated_organization_provider_list.py +0 -0
  189. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/models/paginated_phone_number_list.py +0 -0
  190. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/models/patched_ivr_options_update_request.py +0 -0
  191. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/models/patched_phone_number_update_request.py +0 -0
  192. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/models/patched_phone_number_update_request_frontdesk.py +0 -0
  193. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/models/payment_gateway_fees_info.py +0 -0
  194. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/models/period_enum.py +0 -0
  195. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/models/phone_number.py +0 -0
  196. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/models/phone_number_attributes.py +0 -0
  197. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/models/phone_number_capabilities.py +0 -0
  198. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/models/phone_number_frontdesk.py +0 -0
  199. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/models/phone_number_provider_enum.py +0 -0
  200. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/models/phone_number_search_response.py +0 -0
  201. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/models/phone_number_status_enum.py +0 -0
  202. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/models/plan.py +0 -0
  203. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/models/plan_cancel_info.py +0 -0
  204. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/models/plan_expiry_timestamp.py +0 -0
  205. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/models/plan_expiry_timestamp_type_enum.py +0 -0
  206. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/models/plan_extra_details.py +0 -0
  207. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/models/plan_item.py +0 -0
  208. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/models/plan_type.py +0 -0
  209. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/models/plan_type_cycle.py +0 -0
  210. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/models/platform_enum.py +0 -0
  211. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/models/product_group.py +0 -0
  212. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/models/proof.py +0 -0
  213. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/models/proof_status_enum.py +0 -0
  214. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/models/provider_status_enum.py +0 -0
  215. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/models/reaction_by.py +0 -0
  216. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/models/rental_currency_enum.py +0 -0
  217. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/models/resource_enum.py +0 -0
  218. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/models/ringing_strategy_enum.py +0 -0
  219. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/models/sales_max_auth_request_request.py +0 -0
  220. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/models/shopify_auth_request_request.py +0 -0
  221. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/models/stripe_auth_request_request.py +0 -0
  222. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/models/upload_metadata.py +0 -0
  223. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/models/user_agent.py +0 -0
  224. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/models/user_agent_browser.py +0 -0
  225. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/models/user_agent_device.py +0 -0
  226. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/models/user_agent_operating_system.py +0 -0
  227. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/models/user_agent_platform.py +0 -0
  228. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/models/user_identity.py +0 -0
  229. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/models/v1_app_organizations_list_status_item.py +0 -0
  230. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/models/v1_calls_list_direction.py +0 -0
  231. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/models/v1_calls_metadata_create_json_body.py +0 -0
  232. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/models/v1_calls_metadata_create_response_200.py +0 -0
  233. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/models/v1_calls_report_retrieve_date_range.py +0 -0
  234. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/models/v1_calls_report_retrieve_fields_item.py +0 -0
  235. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/models/v1_campaign_list_status_item.py +0 -0
  236. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/models/v1_customer_consumables_retrieve_currency.py +0 -0
  237. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/models/v1_ivr_list_duration.py +0 -0
  238. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/models/v1_kyc_list_iso_country.py +0 -0
  239. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/models/v1_kyc_list_provider_status_item.py +0 -0
  240. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/models/v1_kyc_list_resource.py +0 -0
  241. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/models/v1_kyc_list_status.py +0 -0
  242. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/models/v1_messages_list_types_item.py +0 -0
  243. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/models/v1_phonenumbers_list_additional_status_item.py +0 -0
  244. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/models/v1_phonenumbers_list_provider.py +0 -0
  245. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/models/v1_phonenumbers_list_status.py +0 -0
  246. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/models/v1_phonenumbers_search_retrieve_intent.py +0 -0
  247. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/models/v1_phonenumbers_search_retrieve_iso_country_code.py +0 -0
  248. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/models/v1_phonenumbers_search_retrieve_resource.py +0 -0
  249. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/models/v2_app_organizations_employees_list_status_item.py +0 -0
  250. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/models/v3_orders_subscriptions_list_currency.py +0 -0
  251. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/models/v3_orders_subscriptions_list_status_item.py +0 -0
  252. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/models/why_enum.py +0 -0
  253. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/client/types.py +0 -0
  254. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/py.typed +0 -0
  255. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/resources/__init__.py +0 -0
  256. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/resources/_constants.py +0 -0
  257. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/resources/accounts.py +0 -0
  258. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/resources/calls.py +0 -0
  259. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/resources/campaigns.py +0 -0
  260. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/resources/devices.py +0 -0
  261. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/resources/ivrs.py +0 -0
  262. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/resources/kycs.py +0 -0
  263. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/resources/members.py +0 -0
  264. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/resources/messages.py +0 -0
  265. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/resources/notifications.py +0 -0
  266. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/resources/orgs.py +0 -0
  267. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/resources/payments.py +0 -0
  268. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/resources/phones.py +0 -0
  269. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/resources/silence.py +0 -0
  270. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl/api/resources/teams.py +0 -0
  271. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl_python.egg-info/SOURCES.txt +0 -0
  272. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl_python.egg-info/dependency_links.txt +0 -0
  273. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl_python.egg-info/entry_points.txt +0 -0
  274. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl_python.egg-info/not-zip-safe +0 -0
  275. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl_python.egg-info/requires.txt +0 -0
  276. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/jaxl_python.egg-info/top_level.txt +0 -0
  277. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/mkdocs.yml +0 -0
  278. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/pyproject.toml +0 -0
  279. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/setup.cfg +0 -0
  280. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/setup.gif +0 -0
  281. {jaxl_python-0.0.47 → jaxl_python-0.0.49}/tests/test_streaming_vad.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: jaxl-python
3
- Version: 0.0.47
3
+ Version: 0.0.49
4
4
  Summary: Official Python SDK and CLI for interfacing with the Jaxl API. Manage calls, messages, IVRs, devices, teams, payments, campaigns, streaming transcriptions and AI Agents. Built on OpenAPI, it offers both generated API clients and Pythonic wrappers for ease of use.
5
5
  Home-page: https://github.com/jaxl-innovations-private-limited/jaxl-python
6
6
  Download-URL: https://github.com/jaxl-innovations-private-limited/jaxl-python/archive/main.zip
@@ -113,8 +113,14 @@ class JaxlStreamMeta(BaseModel):
113
113
  class JaxlStreamRequest(BaseModel):
114
114
  # IVR ID
115
115
  pk: int
116
- # Webhook state
116
+ # Webhook state (present on legacy streams that carry the full
117
+ # base64 state blob in the websocket URL; None on slim streams)
117
118
  state: Optional[JaxlWebhookState]
119
+ # Call ID for this stream — always populated by the SDK server.
120
+ # On slim streams (the `call_id=` query form) this is the ONLY
121
+ # call identity on the socket; apps needing the full state should
122
+ # take it from the SETUP webhook instead.
123
+ call_id: Optional[int] = None
118
124
 
119
125
 
120
126
  class JaxlPhoneCta(BaseModel):
@@ -176,6 +182,32 @@ class BaseJaxlApp:
176
182
  def websocket_routes(self) -> List[Tuple[str, WebsocketRouteFunc]]:
177
183
  return []
178
184
 
185
+ # pylint: disable=no-self-use,unused-argument
186
+ async def on_startup(self) -> None:
187
+ """Invoked ONCE, on the server's startup event, before any call.
188
+
189
+ This is the first point at which a running event loop exists —
190
+ ``__init__`` runs while the app object is constructed, which
191
+ happens synchronously before the server starts, so background
192
+ tasks cannot be scheduled there.
193
+
194
+ Use it to warm anything that would otherwise be paid on the
195
+ critical path of the first call: connection pools, model
196
+ clients, caches, on-disk asset checks. Keep it non-blocking and
197
+ never raise — an exception here is logged and ignored so a slow
198
+ or failing warm-up can never stop the server from serving.
199
+ """
200
+ return None
201
+
202
+ # pylint: disable=no-self-use,unused-argument
203
+ async def on_shutdown(self) -> None:
204
+ """Invoked ONCE, on the server's shutdown event.
205
+
206
+ Counterpart to :meth:`on_startup` — release anything it warmed
207
+ (open sockets, background tasks). Never raise.
208
+ """
209
+ return None
210
+
179
211
  # pylint: disable=no-self-use,unused-argument
180
212
  async def handle_configure(self, req: JaxlWebhookRequest) -> HANDLER_RESPONSE:
181
213
  """Invoked when a phone number gets assigned to IVR."""
@@ -17,5 +17,5 @@ __version__: str
17
17
  __version_tuple__: VERSION_TUPLE
18
18
  version_tuple: VERSION_TUPLE
19
19
 
20
- __version__ = version = '0.0.47'
21
- __version_tuple__ = version_tuple = (0, 0, 47)
20
+ __version__ = version = '0.0.49'
21
+ __version_tuple__ = version_tuple = (0, 0, 49)
@@ -248,12 +248,23 @@ def _start_server(
248
248
  """Jaxl Streaming Unidirectional Websockets Endpoint."""
249
249
  _ivr_id = ws.query_params.get("ivr_id")
250
250
  _state = ws.query_params.get("state")
251
- if _state is None or _ivr_id is None:
251
+ _call_id = ws.query_params.get("call_id")
252
+ # Exactly ONE of `state` (legacy: the full webhook-state blob,
253
+ # base64-encoded into the websocket URL) or `call_id` (slim
254
+ # form: only the call identity rides the URL; the full state
255
+ # travels via the SETUP webhook) must be present — never both,
256
+ # never neither.
257
+ if _ivr_id is None or (_state is None) == (_call_id is None):
252
258
  await ws.close(code=1008)
253
259
  return
254
260
 
255
261
  ivr_id = int(_ivr_id)
256
- state = json.loads(base64.urlsafe_b64decode(_state))
262
+ if _state is not None:
263
+ state = json.loads(base64.urlsafe_b64decode(_state))
264
+ call_id = int(state["call_id"])
265
+ else:
266
+ state = None
267
+ call_id = int(_call_id) # type: ignore[arg-type]
257
268
 
258
269
  # Speech detector, Speech state & Segment buffer
259
270
  sdetector = SilenceDetector(
@@ -265,10 +276,10 @@ def _start_server(
265
276
  slin16s: List[bytes] = []
266
277
 
267
278
  await ws.accept()
268
- wss[state["call_id"]] = ws
279
+ wss[call_id] = ws
269
280
 
270
281
  # pylint: disable=too-many-nested-blocks
271
- await app.on_stream_connect(state["call_id"])
282
+ await app.on_stream_connect(call_id)
272
283
  try:
273
284
  while True:
274
285
  try:
@@ -284,7 +295,7 @@ def _start_server(
284
295
  data = json.loads(raw)
285
296
  ev = data["event"]
286
297
  if ev == "media":
287
- req = JaxlStreamRequest(pk=ivr_id, state=state)
298
+ req = JaxlStreamRequest(pk=ivr_id, state=state, call_id=call_id)
288
299
  slin16 = base64.b64decode(data[ev]["payload"])
289
300
  # Optional per-packet metadata (e.g. speaker attribution)
290
301
  _meta = data[ev].get("meta")
@@ -296,7 +307,7 @@ def _start_server(
296
307
  # Manage speech segments
297
308
  if change is True:
298
309
  speaking = change
299
- await app.handle_speech_detection(state["call_id"], speaking)
310
+ await app.handle_speech_detection(call_id, speaking)
300
311
  # Pull the detector's preroll — this contains the
301
312
  # trigger frames (the `speech_frame_threshold` speech
302
313
  # frames that fired speech-start) plus a few earlier
@@ -310,7 +321,7 @@ def _start_server(
310
321
  await app.handle_speech_chunks(req, preroll_chunks)
311
322
  elif change is False:
312
323
  speaking = change
313
- await app.handle_speech_detection(state["call_id"], speaking)
324
+ await app.handle_speech_detection(call_id, speaking)
314
325
  if len(slin16s) > 0:
315
326
  # Invoke speech segment handlers
316
327
  await app.handle_speech_segment(req, slin16s)
@@ -341,14 +352,14 @@ def _start_server(
341
352
  assert speaking is False
342
353
  elif ev == "handoff":
343
354
  await app.handle_handoff(
344
- state["call_id"],
355
+ call_id,
345
356
  int(data[ev]["call_id"]),
346
357
  str(data[ev]["status"]),
347
358
  )
348
359
  elif ev == "mark":
349
360
  # Echo envelope is {"event": "mark", "mark": {"name": ...}}
350
361
  await app.handle_stream_mark(
351
- state["call_id"], str(data[ev]["name"])
362
+ call_id, str(data[ev]["name"])
352
363
  )
353
364
  elif ev == "connected":
354
365
  pass
@@ -358,8 +369,8 @@ def _start_server(
358
369
  pass
359
370
  finally:
360
371
  try:
361
- if state["call_id"] in wss:
362
- del wss[state["call_id"]]
372
+ if call_id in wss:
373
+ del wss[call_id]
363
374
  if ws.client_state != WebSocketState.DISCONNECTED:
364
375
  try:
365
376
  await ws.close()
@@ -369,7 +380,27 @@ def _start_server(
369
380
  # message has been sent." Nothing to do.
370
381
  pass
371
382
  finally:
372
- await app.on_stream_disconnect(state["call_id"])
383
+ await app.on_stream_disconnect(call_id)
384
+
385
+ async def _on_startup() -> None:
386
+ """Give the app its ONE pre-traffic moment with a live event
387
+ loop. The app object is constructed synchronously before the
388
+ server starts, so `__init__` cannot schedule background work —
389
+ this is where a pool/cache/client warm-up belongs. Guarded: a
390
+ slow or failing warm-up must never stop the server serving."""
391
+ try:
392
+ await app.on_startup()
393
+ except Exception as exc: # pylint: disable=broad-exception-caught
394
+ logger.exception(f"on_startup failed, continuing: {exc!r}")
395
+
396
+ async def _on_shutdown() -> None:
397
+ try:
398
+ await app.on_shutdown()
399
+ except Exception as exc: # pylint: disable=broad-exception-caught
400
+ logger.exception(f"on_shutdown failed, continuing: {exc!r}")
401
+
402
+ server.add_event_handler("startup", _on_startup)
403
+ server.add_event_handler("shutdown", _on_shutdown)
373
404
 
374
405
  for config, func in app.api_routes():
375
406
  server.add_api_route(
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: jaxl-python
3
- Version: 0.0.47
3
+ Version: 0.0.49
4
4
  Summary: Official Python SDK and CLI for interfacing with the Jaxl API. Manage calls, messages, IVRs, devices, teams, payments, campaigns, streaming transcriptions and AI Agents. Built on OpenAPI, it offers both generated API clients and Pythonic wrappers for ease of use.
5
5
  Home-page: https://github.com/jaxl-innovations-private-limited/jaxl-python
6
6
  Download-URL: https://github.com/jaxl-innovations-private-limited/jaxl-python/archive/main.zip
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes