signalwire-sdk 3.0.2.dev41__tar.gz → 3.0.2.dev43__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 (208) hide show
  1. {signalwire_sdk-3.0.2.dev41/signalwire/signalwire_sdk.egg-info → signalwire_sdk-3.0.2.dev43}/PKG-INFO +1 -1
  2. {signalwire_sdk-3.0.2.dev41 → signalwire_sdk-3.0.2.dev43}/pyproject.toml +1 -1
  3. {signalwire_sdk-3.0.2.dev41 → signalwire_sdk-3.0.2.dev43}/signalwire/signalwire/__init__.py +9 -27
  4. {signalwire_sdk-3.0.2.dev41 → signalwire_sdk-3.0.2.dev43}/signalwire/signalwire/agent_server.py +1 -1
  5. {signalwire_sdk-3.0.2.dev41 → signalwire_sdk-3.0.2.dev43}/signalwire/signalwire/relay/call.py +214 -0
  6. {signalwire_sdk-3.0.2.dev41 → signalwire_sdk-3.0.2.dev43}/signalwire/signalwire/skills/registry.py +7 -4
  7. {signalwire_sdk-3.0.2.dev41 → signalwire_sdk-3.0.2.dev43/signalwire/signalwire_sdk.egg-info}/PKG-INFO +1 -1
  8. {signalwire_sdk-3.0.2.dev41 → signalwire_sdk-3.0.2.dev43}/LICENSE +0 -0
  9. {signalwire_sdk-3.0.2.dev41 → signalwire_sdk-3.0.2.dev43}/README.md +0 -0
  10. {signalwire_sdk-3.0.2.dev41 → signalwire_sdk-3.0.2.dev43}/man/sw-agent-init.1 +0 -0
  11. {signalwire_sdk-3.0.2.dev41 → signalwire_sdk-3.0.2.dev43}/man/sw-search.1 +0 -0
  12. {signalwire_sdk-3.0.2.dev41 → signalwire_sdk-3.0.2.dev43}/man/swaig-test.1 +0 -0
  13. {signalwire_sdk-3.0.2.dev41 → signalwire_sdk-3.0.2.dev43}/setup.cfg +0 -0
  14. {signalwire_sdk-3.0.2.dev41 → signalwire_sdk-3.0.2.dev43}/setup.py +0 -0
  15. {signalwire_sdk-3.0.2.dev41 → signalwire_sdk-3.0.2.dev43}/signalwire/signalwire/agents/bedrock.py +0 -0
  16. {signalwire_sdk-3.0.2.dev41 → signalwire_sdk-3.0.2.dev43}/signalwire/signalwire/cli/__init__.py +0 -0
  17. {signalwire_sdk-3.0.2.dev41 → signalwire_sdk-3.0.2.dev43}/signalwire/signalwire/cli/build_search.py +0 -0
  18. {signalwire_sdk-3.0.2.dev41 → signalwire_sdk-3.0.2.dev43}/signalwire/signalwire/cli/config.py +0 -0
  19. {signalwire_sdk-3.0.2.dev41 → signalwire_sdk-3.0.2.dev43}/signalwire/signalwire/cli/core/__init__.py +0 -0
  20. {signalwire_sdk-3.0.2.dev41 → signalwire_sdk-3.0.2.dev43}/signalwire/signalwire/cli/core/agent_loader.py +0 -0
  21. {signalwire_sdk-3.0.2.dev41 → signalwire_sdk-3.0.2.dev43}/signalwire/signalwire/cli/core/argparse_helpers.py +0 -0
  22. {signalwire_sdk-3.0.2.dev41 → signalwire_sdk-3.0.2.dev43}/signalwire/signalwire/cli/core/dynamic_config.py +0 -0
  23. {signalwire_sdk-3.0.2.dev41 → signalwire_sdk-3.0.2.dev43}/signalwire/signalwire/cli/core/service_loader.py +0 -0
  24. {signalwire_sdk-3.0.2.dev41 → signalwire_sdk-3.0.2.dev43}/signalwire/signalwire/cli/dokku.py +0 -0
  25. {signalwire_sdk-3.0.2.dev41 → signalwire_sdk-3.0.2.dev43}/signalwire/signalwire/cli/execution/__init__.py +0 -0
  26. {signalwire_sdk-3.0.2.dev41 → signalwire_sdk-3.0.2.dev43}/signalwire/signalwire/cli/execution/datamap_exec.py +0 -0
  27. {signalwire_sdk-3.0.2.dev41 → signalwire_sdk-3.0.2.dev43}/signalwire/signalwire/cli/execution/webhook_exec.py +0 -0
  28. {signalwire_sdk-3.0.2.dev41 → signalwire_sdk-3.0.2.dev43}/signalwire/signalwire/cli/init_project.py +0 -0
  29. {signalwire_sdk-3.0.2.dev41 → signalwire_sdk-3.0.2.dev43}/signalwire/signalwire/cli/output/__init__.py +0 -0
  30. {signalwire_sdk-3.0.2.dev41 → signalwire_sdk-3.0.2.dev43}/signalwire/signalwire/cli/output/output_formatter.py +0 -0
  31. {signalwire_sdk-3.0.2.dev41 → signalwire_sdk-3.0.2.dev43}/signalwire/signalwire/cli/output/swml_dump.py +0 -0
  32. {signalwire_sdk-3.0.2.dev41 → signalwire_sdk-3.0.2.dev43}/signalwire/signalwire/cli/simulation/__init__.py +0 -0
  33. {signalwire_sdk-3.0.2.dev41 → signalwire_sdk-3.0.2.dev43}/signalwire/signalwire/cli/simulation/data_generation.py +0 -0
  34. {signalwire_sdk-3.0.2.dev41 → signalwire_sdk-3.0.2.dev43}/signalwire/signalwire/cli/simulation/data_overrides.py +0 -0
  35. {signalwire_sdk-3.0.2.dev41 → signalwire_sdk-3.0.2.dev43}/signalwire/signalwire/cli/simulation/mock_env.py +0 -0
  36. {signalwire_sdk-3.0.2.dev41 → signalwire_sdk-3.0.2.dev43}/signalwire/signalwire/cli/swaig_test_wrapper.py +0 -0
  37. {signalwire_sdk-3.0.2.dev41 → signalwire_sdk-3.0.2.dev43}/signalwire/signalwire/cli/test_swaig.py +0 -0
  38. {signalwire_sdk-3.0.2.dev41 → signalwire_sdk-3.0.2.dev43}/signalwire/signalwire/cli/types.py +0 -0
  39. {signalwire_sdk-3.0.2.dev41 → signalwire_sdk-3.0.2.dev43}/signalwire/signalwire/core/__init__.py +0 -0
  40. {signalwire_sdk-3.0.2.dev41 → signalwire_sdk-3.0.2.dev43}/signalwire/signalwire/core/agent/__init__.py +0 -0
  41. {signalwire_sdk-3.0.2.dev41 → signalwire_sdk-3.0.2.dev43}/signalwire/signalwire/core/agent/config/__init__.py +0 -0
  42. {signalwire_sdk-3.0.2.dev41 → signalwire_sdk-3.0.2.dev43}/signalwire/signalwire/core/agent/deployment/__init__.py +0 -0
  43. {signalwire_sdk-3.0.2.dev41 → signalwire_sdk-3.0.2.dev43}/signalwire/signalwire/core/agent/deployment/handlers/__init__.py +0 -0
  44. {signalwire_sdk-3.0.2.dev41 → signalwire_sdk-3.0.2.dev43}/signalwire/signalwire/core/agent/prompt/__init__.py +0 -0
  45. {signalwire_sdk-3.0.2.dev41 → signalwire_sdk-3.0.2.dev43}/signalwire/signalwire/core/agent/prompt/manager.py +0 -0
  46. {signalwire_sdk-3.0.2.dev41 → signalwire_sdk-3.0.2.dev43}/signalwire/signalwire/core/agent/routing/__init__.py +0 -0
  47. {signalwire_sdk-3.0.2.dev41 → signalwire_sdk-3.0.2.dev43}/signalwire/signalwire/core/agent/security/__init__.py +0 -0
  48. {signalwire_sdk-3.0.2.dev41 → signalwire_sdk-3.0.2.dev43}/signalwire/signalwire/core/agent/swml/__init__.py +0 -0
  49. {signalwire_sdk-3.0.2.dev41 → signalwire_sdk-3.0.2.dev43}/signalwire/signalwire/core/agent/tools/__init__.py +0 -0
  50. {signalwire_sdk-3.0.2.dev41 → signalwire_sdk-3.0.2.dev43}/signalwire/signalwire/core/agent/tools/decorator.py +0 -0
  51. {signalwire_sdk-3.0.2.dev41 → signalwire_sdk-3.0.2.dev43}/signalwire/signalwire/core/agent/tools/registry.py +0 -0
  52. {signalwire_sdk-3.0.2.dev41 → signalwire_sdk-3.0.2.dev43}/signalwire/signalwire/core/agent/tools/type_inference.py +0 -0
  53. {signalwire_sdk-3.0.2.dev41 → signalwire_sdk-3.0.2.dev43}/signalwire/signalwire/core/agent_base.py +0 -0
  54. {signalwire_sdk-3.0.2.dev41 → signalwire_sdk-3.0.2.dev43}/signalwire/signalwire/core/auth_handler.py +0 -0
  55. {signalwire_sdk-3.0.2.dev41 → signalwire_sdk-3.0.2.dev43}/signalwire/signalwire/core/config_loader.py +0 -0
  56. {signalwire_sdk-3.0.2.dev41 → signalwire_sdk-3.0.2.dev43}/signalwire/signalwire/core/contexts.py +0 -0
  57. {signalwire_sdk-3.0.2.dev41 → signalwire_sdk-3.0.2.dev43}/signalwire/signalwire/core/data_map.py +0 -0
  58. {signalwire_sdk-3.0.2.dev41 → signalwire_sdk-3.0.2.dev43}/signalwire/signalwire/core/function_result.py +0 -0
  59. {signalwire_sdk-3.0.2.dev41 → signalwire_sdk-3.0.2.dev43}/signalwire/signalwire/core/logging_config.py +0 -0
  60. {signalwire_sdk-3.0.2.dev41 → signalwire_sdk-3.0.2.dev43}/signalwire/signalwire/core/mixins/__init__.py +0 -0
  61. {signalwire_sdk-3.0.2.dev41 → signalwire_sdk-3.0.2.dev43}/signalwire/signalwire/core/mixins/ai_config_mixin.py +0 -0
  62. {signalwire_sdk-3.0.2.dev41 → signalwire_sdk-3.0.2.dev43}/signalwire/signalwire/core/mixins/auth_mixin.py +0 -0
  63. {signalwire_sdk-3.0.2.dev41 → signalwire_sdk-3.0.2.dev43}/signalwire/signalwire/core/mixins/mcp_server_mixin.py +0 -0
  64. {signalwire_sdk-3.0.2.dev41 → signalwire_sdk-3.0.2.dev43}/signalwire/signalwire/core/mixins/prompt_mixin.py +0 -0
  65. {signalwire_sdk-3.0.2.dev41 → signalwire_sdk-3.0.2.dev43}/signalwire/signalwire/core/mixins/serverless_mixin.py +0 -0
  66. {signalwire_sdk-3.0.2.dev41 → signalwire_sdk-3.0.2.dev43}/signalwire/signalwire/core/mixins/skill_mixin.py +0 -0
  67. {signalwire_sdk-3.0.2.dev41 → signalwire_sdk-3.0.2.dev43}/signalwire/signalwire/core/mixins/state_mixin.py +0 -0
  68. {signalwire_sdk-3.0.2.dev41 → signalwire_sdk-3.0.2.dev43}/signalwire/signalwire/core/mixins/tool_mixin.py +0 -0
  69. {signalwire_sdk-3.0.2.dev41 → signalwire_sdk-3.0.2.dev43}/signalwire/signalwire/core/mixins/web_mixin.py +0 -0
  70. {signalwire_sdk-3.0.2.dev41 → signalwire_sdk-3.0.2.dev43}/signalwire/signalwire/core/pom_builder.py +0 -0
  71. {signalwire_sdk-3.0.2.dev41 → signalwire_sdk-3.0.2.dev43}/signalwire/signalwire/core/security/__init__.py +0 -0
  72. {signalwire_sdk-3.0.2.dev41 → signalwire_sdk-3.0.2.dev43}/signalwire/signalwire/core/security/session_manager.py +0 -0
  73. {signalwire_sdk-3.0.2.dev41 → signalwire_sdk-3.0.2.dev43}/signalwire/signalwire/core/security/webhook_middleware.py +0 -0
  74. {signalwire_sdk-3.0.2.dev41 → signalwire_sdk-3.0.2.dev43}/signalwire/signalwire/core/security/webhook_validator.py +0 -0
  75. {signalwire_sdk-3.0.2.dev41 → signalwire_sdk-3.0.2.dev43}/signalwire/signalwire/core/security_config.py +0 -0
  76. {signalwire_sdk-3.0.2.dev41 → signalwire_sdk-3.0.2.dev43}/signalwire/signalwire/core/skill_base.py +0 -0
  77. {signalwire_sdk-3.0.2.dev41 → signalwire_sdk-3.0.2.dev43}/signalwire/signalwire/core/skill_manager.py +0 -0
  78. {signalwire_sdk-3.0.2.dev41 → signalwire_sdk-3.0.2.dev43}/signalwire/signalwire/core/swaig_function.py +0 -0
  79. {signalwire_sdk-3.0.2.dev41 → signalwire_sdk-3.0.2.dev43}/signalwire/signalwire/core/swml_builder.py +0 -0
  80. {signalwire_sdk-3.0.2.dev41 → signalwire_sdk-3.0.2.dev43}/signalwire/signalwire/core/swml_handler.py +0 -0
  81. {signalwire_sdk-3.0.2.dev41 → signalwire_sdk-3.0.2.dev43}/signalwire/signalwire/core/swml_renderer.py +0 -0
  82. {signalwire_sdk-3.0.2.dev41 → signalwire_sdk-3.0.2.dev43}/signalwire/signalwire/core/swml_service.py +0 -0
  83. {signalwire_sdk-3.0.2.dev41 → signalwire_sdk-3.0.2.dev43}/signalwire/signalwire/livewire/__init__.py +0 -0
  84. {signalwire_sdk-3.0.2.dev41 → signalwire_sdk-3.0.2.dev43}/signalwire/signalwire/livewire/plugins.py +0 -0
  85. {signalwire_sdk-3.0.2.dev41 → signalwire_sdk-3.0.2.dev43}/signalwire/signalwire/mcp_gateway/__init__.py +0 -0
  86. {signalwire_sdk-3.0.2.dev41 → signalwire_sdk-3.0.2.dev43}/signalwire/signalwire/mcp_gateway/gateway_service.py +0 -0
  87. {signalwire_sdk-3.0.2.dev41 → signalwire_sdk-3.0.2.dev43}/signalwire/signalwire/mcp_gateway/mcp_manager.py +0 -0
  88. {signalwire_sdk-3.0.2.dev41 → signalwire_sdk-3.0.2.dev43}/signalwire/signalwire/mcp_gateway/session_manager.py +0 -0
  89. {signalwire_sdk-3.0.2.dev41 → signalwire_sdk-3.0.2.dev43}/signalwire/signalwire/pom/__init__.py +0 -0
  90. {signalwire_sdk-3.0.2.dev41 → signalwire_sdk-3.0.2.dev43}/signalwire/signalwire/pom/pom.py +0 -0
  91. {signalwire_sdk-3.0.2.dev41 → signalwire_sdk-3.0.2.dev43}/signalwire/signalwire/pom/pom_tool.py +0 -0
  92. {signalwire_sdk-3.0.2.dev41 → signalwire_sdk-3.0.2.dev43}/signalwire/signalwire/prefabs/__init__.py +0 -0
  93. {signalwire_sdk-3.0.2.dev41 → signalwire_sdk-3.0.2.dev43}/signalwire/signalwire/prefabs/concierge.py +0 -0
  94. {signalwire_sdk-3.0.2.dev41 → signalwire_sdk-3.0.2.dev43}/signalwire/signalwire/prefabs/faq_bot.py +0 -0
  95. {signalwire_sdk-3.0.2.dev41 → signalwire_sdk-3.0.2.dev43}/signalwire/signalwire/prefabs/info_gatherer.py +0 -0
  96. {signalwire_sdk-3.0.2.dev41 → signalwire_sdk-3.0.2.dev43}/signalwire/signalwire/prefabs/receptionist.py +0 -0
  97. {signalwire_sdk-3.0.2.dev41 → signalwire_sdk-3.0.2.dev43}/signalwire/signalwire/prefabs/survey.py +0 -0
  98. {signalwire_sdk-3.0.2.dev41 → signalwire_sdk-3.0.2.dev43}/signalwire/signalwire/relay/__init__.py +0 -0
  99. {signalwire_sdk-3.0.2.dev41 → signalwire_sdk-3.0.2.dev43}/signalwire/signalwire/relay/client.py +0 -0
  100. {signalwire_sdk-3.0.2.dev41 → signalwire_sdk-3.0.2.dev43}/signalwire/signalwire/relay/constants.py +0 -0
  101. {signalwire_sdk-3.0.2.dev41 → signalwire_sdk-3.0.2.dev43}/signalwire/signalwire/relay/event.py +0 -0
  102. {signalwire_sdk-3.0.2.dev41 → signalwire_sdk-3.0.2.dev43}/signalwire/signalwire/relay/message.py +0 -0
  103. {signalwire_sdk-3.0.2.dev41 → signalwire_sdk-3.0.2.dev43}/signalwire/signalwire/rest/__init__.py +0 -0
  104. {signalwire_sdk-3.0.2.dev41 → signalwire_sdk-3.0.2.dev43}/signalwire/signalwire/rest/_base.py +0 -0
  105. {signalwire_sdk-3.0.2.dev41 → signalwire_sdk-3.0.2.dev43}/signalwire/signalwire/rest/_pagination.py +0 -0
  106. {signalwire_sdk-3.0.2.dev41 → signalwire_sdk-3.0.2.dev43}/signalwire/signalwire/rest/call_handler.py +0 -0
  107. {signalwire_sdk-3.0.2.dev41 → signalwire_sdk-3.0.2.dev43}/signalwire/signalwire/rest/client.py +0 -0
  108. {signalwire_sdk-3.0.2.dev41 → signalwire_sdk-3.0.2.dev43}/signalwire/signalwire/rest/namespaces/__init__.py +0 -0
  109. {signalwire_sdk-3.0.2.dev41 → signalwire_sdk-3.0.2.dev43}/signalwire/signalwire/rest/namespaces/addresses.py +0 -0
  110. {signalwire_sdk-3.0.2.dev41 → signalwire_sdk-3.0.2.dev43}/signalwire/signalwire/rest/namespaces/calling.py +0 -0
  111. {signalwire_sdk-3.0.2.dev41 → signalwire_sdk-3.0.2.dev43}/signalwire/signalwire/rest/namespaces/chat.py +0 -0
  112. {signalwire_sdk-3.0.2.dev41 → signalwire_sdk-3.0.2.dev43}/signalwire/signalwire/rest/namespaces/compat.py +0 -0
  113. {signalwire_sdk-3.0.2.dev41 → signalwire_sdk-3.0.2.dev43}/signalwire/signalwire/rest/namespaces/datasphere.py +0 -0
  114. {signalwire_sdk-3.0.2.dev41 → signalwire_sdk-3.0.2.dev43}/signalwire/signalwire/rest/namespaces/fabric.py +0 -0
  115. {signalwire_sdk-3.0.2.dev41 → signalwire_sdk-3.0.2.dev43}/signalwire/signalwire/rest/namespaces/imported_numbers.py +0 -0
  116. {signalwire_sdk-3.0.2.dev41 → signalwire_sdk-3.0.2.dev43}/signalwire/signalwire/rest/namespaces/logs.py +0 -0
  117. {signalwire_sdk-3.0.2.dev41 → signalwire_sdk-3.0.2.dev43}/signalwire/signalwire/rest/namespaces/lookup.py +0 -0
  118. {signalwire_sdk-3.0.2.dev41 → signalwire_sdk-3.0.2.dev43}/signalwire/signalwire/rest/namespaces/mfa.py +0 -0
  119. {signalwire_sdk-3.0.2.dev41 → signalwire_sdk-3.0.2.dev43}/signalwire/signalwire/rest/namespaces/number_groups.py +0 -0
  120. {signalwire_sdk-3.0.2.dev41 → signalwire_sdk-3.0.2.dev43}/signalwire/signalwire/rest/namespaces/phone_numbers.py +0 -0
  121. {signalwire_sdk-3.0.2.dev41 → signalwire_sdk-3.0.2.dev43}/signalwire/signalwire/rest/namespaces/project.py +0 -0
  122. {signalwire_sdk-3.0.2.dev41 → signalwire_sdk-3.0.2.dev43}/signalwire/signalwire/rest/namespaces/pubsub.py +0 -0
  123. {signalwire_sdk-3.0.2.dev41 → signalwire_sdk-3.0.2.dev43}/signalwire/signalwire/rest/namespaces/queues.py +0 -0
  124. {signalwire_sdk-3.0.2.dev41 → signalwire_sdk-3.0.2.dev43}/signalwire/signalwire/rest/namespaces/recordings.py +0 -0
  125. {signalwire_sdk-3.0.2.dev41 → signalwire_sdk-3.0.2.dev43}/signalwire/signalwire/rest/namespaces/registry.py +0 -0
  126. {signalwire_sdk-3.0.2.dev41 → signalwire_sdk-3.0.2.dev43}/signalwire/signalwire/rest/namespaces/short_codes.py +0 -0
  127. {signalwire_sdk-3.0.2.dev41 → signalwire_sdk-3.0.2.dev43}/signalwire/signalwire/rest/namespaces/sip_profile.py +0 -0
  128. {signalwire_sdk-3.0.2.dev41 → signalwire_sdk-3.0.2.dev43}/signalwire/signalwire/rest/namespaces/verified_callers.py +0 -0
  129. {signalwire_sdk-3.0.2.dev41 → signalwire_sdk-3.0.2.dev43}/signalwire/signalwire/rest/namespaces/video.py +0 -0
  130. {signalwire_sdk-3.0.2.dev41 → signalwire_sdk-3.0.2.dev43}/signalwire/signalwire/schema.json +0 -0
  131. {signalwire_sdk-3.0.2.dev41 → signalwire_sdk-3.0.2.dev43}/signalwire/signalwire/search/__init__.py +0 -0
  132. {signalwire_sdk-3.0.2.dev41 → signalwire_sdk-3.0.2.dev43}/signalwire/signalwire/search/document_processor.py +0 -0
  133. {signalwire_sdk-3.0.2.dev41 → signalwire_sdk-3.0.2.dev43}/signalwire/signalwire/search/index_builder.py +0 -0
  134. {signalwire_sdk-3.0.2.dev41 → signalwire_sdk-3.0.2.dev43}/signalwire/signalwire/search/migration.py +0 -0
  135. {signalwire_sdk-3.0.2.dev41 → signalwire_sdk-3.0.2.dev43}/signalwire/signalwire/search/models.py +0 -0
  136. {signalwire_sdk-3.0.2.dev41 → signalwire_sdk-3.0.2.dev43}/signalwire/signalwire/search/pgvector_backend.py +0 -0
  137. {signalwire_sdk-3.0.2.dev41 → signalwire_sdk-3.0.2.dev43}/signalwire/signalwire/search/query_processor.py +0 -0
  138. {signalwire_sdk-3.0.2.dev41 → signalwire_sdk-3.0.2.dev43}/signalwire/signalwire/search/search_engine.py +0 -0
  139. {signalwire_sdk-3.0.2.dev41 → signalwire_sdk-3.0.2.dev43}/signalwire/signalwire/search/search_service.py +0 -0
  140. {signalwire_sdk-3.0.2.dev41 → signalwire_sdk-3.0.2.dev43}/signalwire/signalwire/skills/README.md +0 -0
  141. {signalwire_sdk-3.0.2.dev41 → signalwire_sdk-3.0.2.dev43}/signalwire/signalwire/skills/__init__.py +0 -0
  142. {signalwire_sdk-3.0.2.dev41 → signalwire_sdk-3.0.2.dev43}/signalwire/signalwire/skills/api_ninjas_trivia/README.md +0 -0
  143. {signalwire_sdk-3.0.2.dev41 → signalwire_sdk-3.0.2.dev43}/signalwire/signalwire/skills/api_ninjas_trivia/__init__.py +0 -0
  144. {signalwire_sdk-3.0.2.dev41 → signalwire_sdk-3.0.2.dev43}/signalwire/signalwire/skills/api_ninjas_trivia/skill.py +0 -0
  145. {signalwire_sdk-3.0.2.dev41 → signalwire_sdk-3.0.2.dev43}/signalwire/signalwire/skills/claude_skills/README.md +0 -0
  146. {signalwire_sdk-3.0.2.dev41 → signalwire_sdk-3.0.2.dev43}/signalwire/signalwire/skills/claude_skills/__init__.py +0 -0
  147. {signalwire_sdk-3.0.2.dev41 → signalwire_sdk-3.0.2.dev43}/signalwire/signalwire/skills/claude_skills/skill.py +0 -0
  148. {signalwire_sdk-3.0.2.dev41 → signalwire_sdk-3.0.2.dev43}/signalwire/signalwire/skills/datasphere/README.md +0 -0
  149. {signalwire_sdk-3.0.2.dev41 → signalwire_sdk-3.0.2.dev43}/signalwire/signalwire/skills/datasphere/__init__.py +0 -0
  150. {signalwire_sdk-3.0.2.dev41 → signalwire_sdk-3.0.2.dev43}/signalwire/signalwire/skills/datasphere/skill.py +0 -0
  151. {signalwire_sdk-3.0.2.dev41 → signalwire_sdk-3.0.2.dev43}/signalwire/signalwire/skills/datasphere_serverless/README.md +0 -0
  152. {signalwire_sdk-3.0.2.dev41 → signalwire_sdk-3.0.2.dev43}/signalwire/signalwire/skills/datasphere_serverless/__init__.py +0 -0
  153. {signalwire_sdk-3.0.2.dev41 → signalwire_sdk-3.0.2.dev43}/signalwire/signalwire/skills/datasphere_serverless/skill.py +0 -0
  154. {signalwire_sdk-3.0.2.dev41 → signalwire_sdk-3.0.2.dev43}/signalwire/signalwire/skills/datetime/README.md +0 -0
  155. {signalwire_sdk-3.0.2.dev41 → signalwire_sdk-3.0.2.dev43}/signalwire/signalwire/skills/datetime/__init__.py +0 -0
  156. {signalwire_sdk-3.0.2.dev41 → signalwire_sdk-3.0.2.dev43}/signalwire/signalwire/skills/datetime/skill.py +0 -0
  157. {signalwire_sdk-3.0.2.dev41 → signalwire_sdk-3.0.2.dev43}/signalwire/signalwire/skills/google_maps/__init__.py +0 -0
  158. {signalwire_sdk-3.0.2.dev41 → signalwire_sdk-3.0.2.dev43}/signalwire/signalwire/skills/google_maps/skill.py +0 -0
  159. {signalwire_sdk-3.0.2.dev41 → signalwire_sdk-3.0.2.dev43}/signalwire/signalwire/skills/info_gatherer/README.md +0 -0
  160. {signalwire_sdk-3.0.2.dev41 → signalwire_sdk-3.0.2.dev43}/signalwire/signalwire/skills/info_gatherer/__init__.py +0 -0
  161. {signalwire_sdk-3.0.2.dev41 → signalwire_sdk-3.0.2.dev43}/signalwire/signalwire/skills/info_gatherer/skill.py +0 -0
  162. {signalwire_sdk-3.0.2.dev41 → signalwire_sdk-3.0.2.dev43}/signalwire/signalwire/skills/joke/README.md +0 -0
  163. {signalwire_sdk-3.0.2.dev41 → signalwire_sdk-3.0.2.dev43}/signalwire/signalwire/skills/joke/__init__.py +0 -0
  164. {signalwire_sdk-3.0.2.dev41 → signalwire_sdk-3.0.2.dev43}/signalwire/signalwire/skills/joke/skill.py +0 -0
  165. {signalwire_sdk-3.0.2.dev41 → signalwire_sdk-3.0.2.dev43}/signalwire/signalwire/skills/math/README.md +0 -0
  166. {signalwire_sdk-3.0.2.dev41 → signalwire_sdk-3.0.2.dev43}/signalwire/signalwire/skills/math/__init__.py +0 -0
  167. {signalwire_sdk-3.0.2.dev41 → signalwire_sdk-3.0.2.dev43}/signalwire/signalwire/skills/math/skill.py +0 -0
  168. {signalwire_sdk-3.0.2.dev41 → signalwire_sdk-3.0.2.dev43}/signalwire/signalwire/skills/mcp_gateway/README.md +0 -0
  169. {signalwire_sdk-3.0.2.dev41 → signalwire_sdk-3.0.2.dev43}/signalwire/signalwire/skills/mcp_gateway/__init__.py +0 -0
  170. {signalwire_sdk-3.0.2.dev41 → signalwire_sdk-3.0.2.dev43}/signalwire/signalwire/skills/mcp_gateway/skill.py +0 -0
  171. {signalwire_sdk-3.0.2.dev41 → signalwire_sdk-3.0.2.dev43}/signalwire/signalwire/skills/native_vector_search/README.md +0 -0
  172. {signalwire_sdk-3.0.2.dev41 → signalwire_sdk-3.0.2.dev43}/signalwire/signalwire/skills/native_vector_search/__init__.py +0 -0
  173. {signalwire_sdk-3.0.2.dev41 → signalwire_sdk-3.0.2.dev43}/signalwire/signalwire/skills/native_vector_search/skill.py +0 -0
  174. {signalwire_sdk-3.0.2.dev41 → signalwire_sdk-3.0.2.dev43}/signalwire/signalwire/skills/play_background_file/README.md +0 -0
  175. {signalwire_sdk-3.0.2.dev41 → signalwire_sdk-3.0.2.dev43}/signalwire/signalwire/skills/play_background_file/__init__.py +0 -0
  176. {signalwire_sdk-3.0.2.dev41 → signalwire_sdk-3.0.2.dev43}/signalwire/signalwire/skills/play_background_file/skill.py +0 -0
  177. {signalwire_sdk-3.0.2.dev41 → signalwire_sdk-3.0.2.dev43}/signalwire/signalwire/skills/spider/README.md +0 -0
  178. {signalwire_sdk-3.0.2.dev41 → signalwire_sdk-3.0.2.dev43}/signalwire/signalwire/skills/spider/__init__.py +0 -0
  179. {signalwire_sdk-3.0.2.dev41 → signalwire_sdk-3.0.2.dev43}/signalwire/signalwire/skills/spider/skill.py +0 -0
  180. {signalwire_sdk-3.0.2.dev41 → signalwire_sdk-3.0.2.dev43}/signalwire/signalwire/skills/swml_transfer/README.md +0 -0
  181. {signalwire_sdk-3.0.2.dev41 → signalwire_sdk-3.0.2.dev43}/signalwire/signalwire/skills/swml_transfer/__init__.py +0 -0
  182. {signalwire_sdk-3.0.2.dev41 → signalwire_sdk-3.0.2.dev43}/signalwire/signalwire/skills/swml_transfer/skill.py +0 -0
  183. {signalwire_sdk-3.0.2.dev41 → signalwire_sdk-3.0.2.dev43}/signalwire/signalwire/skills/weather_api/README.md +0 -0
  184. {signalwire_sdk-3.0.2.dev41 → signalwire_sdk-3.0.2.dev43}/signalwire/signalwire/skills/weather_api/__init__.py +0 -0
  185. {signalwire_sdk-3.0.2.dev41 → signalwire_sdk-3.0.2.dev43}/signalwire/signalwire/skills/weather_api/skill.py +0 -0
  186. {signalwire_sdk-3.0.2.dev41 → signalwire_sdk-3.0.2.dev43}/signalwire/signalwire/skills/web_search/README.md +0 -0
  187. {signalwire_sdk-3.0.2.dev41 → signalwire_sdk-3.0.2.dev43}/signalwire/signalwire/skills/web_search/__init__.py +0 -0
  188. {signalwire_sdk-3.0.2.dev41 → signalwire_sdk-3.0.2.dev43}/signalwire/signalwire/skills/web_search/skill.py +0 -0
  189. {signalwire_sdk-3.0.2.dev41 → signalwire_sdk-3.0.2.dev43}/signalwire/signalwire/skills/web_search/skill_improved.py +0 -0
  190. {signalwire_sdk-3.0.2.dev41 → signalwire_sdk-3.0.2.dev43}/signalwire/signalwire/skills/web_search/skill_original.py +0 -0
  191. {signalwire_sdk-3.0.2.dev41 → signalwire_sdk-3.0.2.dev43}/signalwire/signalwire/skills/wikipedia_search/README.md +0 -0
  192. {signalwire_sdk-3.0.2.dev41 → signalwire_sdk-3.0.2.dev43}/signalwire/signalwire/skills/wikipedia_search/__init__.py +0 -0
  193. {signalwire_sdk-3.0.2.dev41 → signalwire_sdk-3.0.2.dev43}/signalwire/signalwire/skills/wikipedia_search/skill.py +0 -0
  194. {signalwire_sdk-3.0.2.dev41 → signalwire_sdk-3.0.2.dev43}/signalwire/signalwire/utils/__init__.py +0 -0
  195. {signalwire_sdk-3.0.2.dev41 → signalwire_sdk-3.0.2.dev43}/signalwire/signalwire/utils/pom_utils.py +0 -0
  196. {signalwire_sdk-3.0.2.dev41 → signalwire_sdk-3.0.2.dev43}/signalwire/signalwire/utils/schema_utils.py +0 -0
  197. {signalwire_sdk-3.0.2.dev41 → signalwire_sdk-3.0.2.dev43}/signalwire/signalwire/utils/token_generators.py +0 -0
  198. {signalwire_sdk-3.0.2.dev41 → signalwire_sdk-3.0.2.dev43}/signalwire/signalwire/utils/url_validator.py +0 -0
  199. {signalwire_sdk-3.0.2.dev41 → signalwire_sdk-3.0.2.dev43}/signalwire/signalwire/utils/validators.py +0 -0
  200. {signalwire_sdk-3.0.2.dev41 → signalwire_sdk-3.0.2.dev43}/signalwire/signalwire/web/__init__.py +0 -0
  201. {signalwire_sdk-3.0.2.dev41 → signalwire_sdk-3.0.2.dev43}/signalwire/signalwire/web/web_service.py +0 -0
  202. {signalwire_sdk-3.0.2.dev41 → signalwire_sdk-3.0.2.dev43}/signalwire/signalwire_sdk.egg-info/SOURCES.txt +0 -0
  203. {signalwire_sdk-3.0.2.dev41 → signalwire_sdk-3.0.2.dev43}/signalwire/signalwire_sdk.egg-info/dependency_links.txt +0 -0
  204. {signalwire_sdk-3.0.2.dev41 → signalwire_sdk-3.0.2.dev43}/signalwire/signalwire_sdk.egg-info/entry_points.txt +0 -0
  205. {signalwire_sdk-3.0.2.dev41 → signalwire_sdk-3.0.2.dev43}/signalwire/signalwire_sdk.egg-info/requires.txt +0 -0
  206. {signalwire_sdk-3.0.2.dev41 → signalwire_sdk-3.0.2.dev43}/signalwire/signalwire_sdk.egg-info/top_level.txt +0 -0
  207. {signalwire_sdk-3.0.2.dev41 → signalwire_sdk-3.0.2.dev43}/tests/test_examples.py +0 -0
  208. {signalwire_sdk-3.0.2.dev41 → signalwire_sdk-3.0.2.dev43}/tests/test_mcp_integration.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: signalwire-sdk
3
- Version: 3.0.2.dev41
3
+ Version: 3.0.2.dev43
4
4
  Summary: SignalWire SDK
5
5
  Author-email: SignalWire Team <info@signalwire.com>
6
6
  License: MIT
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "signalwire-sdk"
7
- version = "3.0.2.dev41"
7
+ version = "3.0.2.dev43"
8
8
  description = "SignalWire SDK"
9
9
  authors = [
10
10
  {name = "SignalWire Team", email = "info@signalwire.com"}
@@ -18,7 +18,7 @@ A package for building AI agents using SignalWire's AI and SWML capabilities.
18
18
  from .core.logging_config import configure_logging
19
19
  configure_logging()
20
20
 
21
- __version__ = "3.0.2.dev41"
21
+ __version__ = "3.0.2.dev43"
22
22
 
23
23
  # Import core classes for easier access
24
24
  from .core.agent_base import AgentBase
@@ -42,30 +42,14 @@ def _get_skill_registry():
42
42
  import signalwire.skills
43
43
  return signalwire.skills.skill_registry
44
44
 
45
- # Lazy import convenience functions from the CLI (if available)
46
- def start_agent(*args, **kwargs):
47
- """Start an agent (lazy import)"""
48
- try:
49
- from signalwire.cli.helpers import start_agent as _start_agent
50
- return _start_agent(*args, **kwargs)
51
- except ImportError:
52
- raise NotImplementedError("CLI helpers not available")
53
-
54
- def run_agent(*args, **kwargs):
55
- """Run an agent (lazy import)"""
56
- try:
57
- from signalwire.cli.helpers import run_agent as _run_agent
58
- return _run_agent(*args, **kwargs)
59
- except ImportError:
60
- raise NotImplementedError("CLI helpers not available")
61
-
62
- def list_skills(*args, **kwargs):
63
- """List available skills (lazy import)"""
64
- try:
65
- from signalwire.cli.helpers import list_skills as _list_skills
66
- return _list_skills(*args, **kwargs)
67
- except ImportError:
68
- raise NotImplementedError("CLI helpers not available")
45
+ def list_skills():
46
+ """List all available skills with metadata.
47
+
48
+ Returns one dict per skill (name, description, version, required packages /
49
+ env vars, multi-instance support). Delegates to the skill registry — the
50
+ same source as ``list_skills_with_params()``, but the lighter summary."""
51
+ from signalwire.skills.registry import skill_registry
52
+ return skill_registry.list_skills()
69
53
 
70
54
  def list_skills_with_params():
71
55
  """
@@ -148,8 +132,6 @@ __all__ = [
148
132
  "Step",
149
133
  "create_simple_context",
150
134
  "WebService",
151
- "start_agent",
152
- "run_agent",
153
135
  "list_skills",
154
136
  "list_skills_with_params",
155
137
  "register_skill",
@@ -61,7 +61,7 @@ class AgentServer:
61
61
  self.app = FastAPI(
62
62
  title="SignalWire AI Agents",
63
63
  description="Hosted SignalWire AI Agents",
64
- version="3.0.2.dev41",
64
+ version="3.0.2.dev43",
65
65
  redirect_slashes=False,
66
66
  docs_url=None,
67
67
  redoc_url=None,
@@ -9,6 +9,10 @@ from typing import Any, Callable, Coroutine, Optional, TYPE_CHECKING
9
9
  from signalwire.core.logging_config import get_logger
10
10
 
11
11
  from .constants import (
12
+ CALL_STATE_CREATED,
13
+ CALL_STATE_RINGING,
14
+ CALL_STATE_ANSWERED,
15
+ CALL_STATE_ENDING,
12
16
  CALL_STATE_ENDED,
13
17
  EVENT_CALL_PLAY,
14
18
  EVENT_CALL_RECORD,
@@ -515,6 +519,216 @@ class Call:
515
519
  action = PlayAction(self, cid)
516
520
  return await self._start_action(action, "play", params, on_completed=on_completed)
517
521
 
522
+ async def play_tts(
523
+ self,
524
+ text: str,
525
+ *,
526
+ language: Optional[str] = None,
527
+ gender: Optional[str] = None,
528
+ voice: Optional[str] = None,
529
+ volume: Optional[float] = None,
530
+ on_completed: Optional[Callable[[RelayEvent], Any]] = None,
531
+ ) -> PlayAction:
532
+ """Play text-to-speech. Typed convenience over :meth:`play`.
533
+
534
+ Restores the legacy ``call.play_tts(text=...)`` ergonomics so callers
535
+ don't hand-build the ``{"type": "tts", "params": {...}}`` media shape.
536
+ """
537
+ tts: dict[str, Any] = {"text": text}
538
+ if language is not None:
539
+ tts["language"] = language
540
+ if gender is not None:
541
+ tts["gender"] = gender
542
+ if voice is not None:
543
+ tts["voice"] = voice
544
+ return await self.play(
545
+ [{"type": "tts", "params": tts}], volume=volume, on_completed=on_completed
546
+ )
547
+
548
+ async def play_audio(
549
+ self,
550
+ url: str,
551
+ *,
552
+ volume: Optional[float] = None,
553
+ on_completed: Optional[Callable[[RelayEvent], Any]] = None,
554
+ ) -> PlayAction:
555
+ """Play an audio file from a URL. Typed convenience over :meth:`play`."""
556
+ return await self.play(
557
+ [{"type": "audio", "params": {"url": url}}],
558
+ volume=volume,
559
+ on_completed=on_completed,
560
+ )
561
+
562
+ async def play_silence(
563
+ self,
564
+ duration: float,
565
+ *,
566
+ on_completed: Optional[Callable[[RelayEvent], Any]] = None,
567
+ ) -> PlayAction:
568
+ """Play silence for ``duration`` seconds. Typed convenience over :meth:`play`."""
569
+ return await self.play(
570
+ [{"type": "silence", "params": {"duration": duration}}],
571
+ on_completed=on_completed,
572
+ )
573
+
574
+ async def play_ringtone(
575
+ self,
576
+ name: str,
577
+ *,
578
+ duration: Optional[float] = None,
579
+ volume: Optional[float] = None,
580
+ on_completed: Optional[Callable[[RelayEvent], Any]] = None,
581
+ ) -> PlayAction:
582
+ """Play a named ringtone by country code. Typed convenience over :meth:`play`."""
583
+ rt: dict[str, Any] = {"name": name}
584
+ if duration is not None:
585
+ rt["duration"] = duration
586
+ return await self.play(
587
+ [{"type": "ringtone", "params": rt}], volume=volume, on_completed=on_completed
588
+ )
589
+
590
+ # ------------------------------------------------------------------
591
+ # Detect convenience (typed wrappers over detect())
592
+ # ------------------------------------------------------------------
593
+
594
+ async def detect_digit(
595
+ self,
596
+ *,
597
+ digits: Optional[str] = None,
598
+ timeout: Optional[float] = None,
599
+ on_completed: Optional[Callable[[RelayEvent], Any]] = None,
600
+ ) -> DetectAction:
601
+ """Detect DTMF digits. Typed convenience over :meth:`detect`."""
602
+ params: dict[str, Any] = {}
603
+ if digits is not None:
604
+ params["digits"] = digits
605
+ return await self.detect(
606
+ {"type": "digit", "params": params}, timeout=timeout, on_completed=on_completed
607
+ )
608
+
609
+ async def detect_answering_machine(
610
+ self,
611
+ *,
612
+ initial_timeout: Optional[float] = None,
613
+ end_silence_timeout: Optional[float] = None,
614
+ machine_voice_threshold: Optional[float] = None,
615
+ machine_words_threshold: Optional[int] = None,
616
+ detect_interruptions: Optional[bool] = None,
617
+ detect_message_end: Optional[bool] = None,
618
+ timeout: Optional[float] = None,
619
+ on_completed: Optional[Callable[[RelayEvent], Any]] = None,
620
+ ) -> DetectAction:
621
+ """Detect human vs answering machine (AMD). Typed convenience over :meth:`detect`."""
622
+ params: dict[str, Any] = {}
623
+ for key, val in (
624
+ ("initial_timeout", initial_timeout),
625
+ ("end_silence_timeout", end_silence_timeout),
626
+ ("machine_voice_threshold", machine_voice_threshold),
627
+ ("machine_words_threshold", machine_words_threshold),
628
+ ("detect_interruptions", detect_interruptions),
629
+ ("detect_message_end", detect_message_end),
630
+ ):
631
+ if val is not None:
632
+ params[key] = val
633
+ return await self.detect(
634
+ {"type": "machine", "params": params}, timeout=timeout, on_completed=on_completed
635
+ )
636
+
637
+ async def detect_fax(
638
+ self,
639
+ *,
640
+ tone: Optional[str] = None,
641
+ timeout: Optional[float] = None,
642
+ on_completed: Optional[Callable[[RelayEvent], Any]] = None,
643
+ ) -> DetectAction:
644
+ """Detect a fax tone (CED/CNG). Typed convenience over :meth:`detect`."""
645
+ params: dict[str, Any] = {}
646
+ if tone is not None:
647
+ params["tone"] = tone
648
+ return await self.detect(
649
+ {"type": "fax", "params": params}, timeout=timeout, on_completed=on_completed
650
+ )
651
+
652
+ # ------------------------------------------------------------------
653
+ # Prompt convenience (typed media over play_and_collect())
654
+ # ------------------------------------------------------------------
655
+
656
+ async def prompt_tts(
657
+ self,
658
+ text: str,
659
+ collect: dict[str, Any],
660
+ *,
661
+ language: Optional[str] = None,
662
+ gender: Optional[str] = None,
663
+ voice: Optional[str] = None,
664
+ volume: Optional[float] = None,
665
+ on_completed: Optional[Callable[[RelayEvent], Any]] = None,
666
+ ) -> CollectAction:
667
+ """Play TTS then collect input. Typed media over :meth:`play_and_collect`."""
668
+ tts: dict[str, Any] = {"text": text}
669
+ if language is not None:
670
+ tts["language"] = language
671
+ if gender is not None:
672
+ tts["gender"] = gender
673
+ if voice is not None:
674
+ tts["voice"] = voice
675
+ return await self.play_and_collect(
676
+ [{"type": "tts", "params": tts}], collect, volume=volume, on_completed=on_completed
677
+ )
678
+
679
+ async def prompt_audio(
680
+ self,
681
+ url: str,
682
+ collect: dict[str, Any],
683
+ *,
684
+ volume: Optional[float] = None,
685
+ on_completed: Optional[Callable[[RelayEvent], Any]] = None,
686
+ ) -> CollectAction:
687
+ """Play an audio file then collect input. Typed media over :meth:`play_and_collect`."""
688
+ return await self.play_and_collect(
689
+ [{"type": "audio", "params": {"url": url}}],
690
+ collect,
691
+ volume=volume,
692
+ on_completed=on_completed,
693
+ )
694
+
695
+ # ------------------------------------------------------------------
696
+ # State-wait convenience (typed waits over wait_for())
697
+ # ------------------------------------------------------------------
698
+
699
+ async def _wait_for_state(self, target: str, timeout: Optional[float]) -> RelayEvent:
700
+ order = (
701
+ CALL_STATE_CREATED,
702
+ CALL_STATE_RINGING,
703
+ CALL_STATE_ANSWERED,
704
+ CALL_STATE_ENDING,
705
+ CALL_STATE_ENDED,
706
+ )
707
+
708
+ def rank(s: str) -> int:
709
+ return order.index(s) if s in order else -1
710
+
711
+ # Already at or past the target -> return immediately (matches legacy SDK).
712
+ if rank(self.state) >= rank(target):
713
+ return RelayEvent(event_type=EVENT_CALL_STATE, params={"call_state": self.state})
714
+ return await self.wait_for(
715
+ EVENT_CALL_STATE,
716
+ lambda e: e.params.get("call_state") == target,
717
+ timeout=timeout,
718
+ )
719
+
720
+ async def wait_for_answered(self, timeout: Optional[float] = None) -> RelayEvent:
721
+ """Wait until the call is answered (immediate if already answered or past it)."""
722
+ return await self._wait_for_state(CALL_STATE_ANSWERED, timeout)
723
+
724
+ async def wait_for_ringing(self, timeout: Optional[float] = None) -> RelayEvent:
725
+ """Wait until the call is ringing (immediate if already ringing or past it)."""
726
+ return await self._wait_for_state(CALL_STATE_RINGING, timeout)
727
+
728
+ async def wait_for_ending(self, timeout: Optional[float] = None) -> RelayEvent:
729
+ """Wait until the call is ending (immediate if already ending or past it)."""
730
+ return await self._wait_for_state(CALL_STATE_ENDING, timeout)
731
+
518
732
  # ------------------------------------------------------------------
519
733
  # Recording
520
734
  # ------------------------------------------------------------------
@@ -119,10 +119,13 @@ class SkillRegistry:
119
119
  self.logger.error(f"Failed to load skill '{skill_name}' from {skill_file}: {e}")
120
120
  return None
121
121
 
122
- def discover_skills(self) -> None:
123
- """Deprecated: Skills are now loaded on-demand"""
124
- # Keep this method for backwards compatibility but make it a no-op
125
- pass
122
+ def discover_skills(self) -> List[Dict[str, str]]:
123
+ """Discover and return all available skills.
124
+
125
+ Skills load on-demand, so there is nothing to eagerly register; this
126
+ scans the skills package and returns metadata for everything
127
+ discoverable, so callers can enumerate what is available."""
128
+ return self.list_skills()
126
129
 
127
130
  def _load_skill_from_directory(self, skill_dir: Path) -> None:
128
131
  """Deprecated: Skills are now loaded on-demand"""
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: signalwire-sdk
3
- Version: 3.0.2.dev41
3
+ Version: 3.0.2.dev43
4
4
  Summary: SignalWire SDK
5
5
  Author-email: SignalWire Team <info@signalwire.com>
6
6
  License: MIT