alita-sdk 0.3.437__tar.gz → 0.3.439__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.

Potentially problematic release.


This version of alita-sdk might be problematic. Click here for more details.

Files changed (376) hide show
  1. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/PKG-INFO +1 -1
  2. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/runtime/clients/client.py +16 -6
  3. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/runtime/langchain/assistant.py +10 -2
  4. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/runtime/toolkits/mcp.py +36 -12
  5. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/runtime/toolkits/tools.py +13 -2
  6. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/runtime/tools/mcp_remote_tool.py +28 -0
  7. alita_sdk-0.3.439/alita_sdk/runtime/utils/mcp_oauth.py +103 -0
  8. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk.egg-info/PKG-INFO +1 -1
  9. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk.egg-info/SOURCES.txt +1 -0
  10. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/pyproject.toml +1 -1
  11. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/LICENSE +0 -0
  12. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/README.md +0 -0
  13. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/__init__.py +0 -0
  14. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/community/__init__.py +0 -0
  15. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/community/utils.py +0 -0
  16. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/configurations/__init__.py +0 -0
  17. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/configurations/ado.py +0 -0
  18. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/configurations/azure_search.py +0 -0
  19. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/configurations/bigquery.py +0 -0
  20. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/configurations/bitbucket.py +0 -0
  21. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/configurations/browser.py +0 -0
  22. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/configurations/carrier.py +0 -0
  23. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/configurations/confluence.py +0 -0
  24. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/configurations/delta_lake.py +0 -0
  25. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/configurations/embedding.py +0 -0
  26. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/configurations/figma.py +0 -0
  27. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/configurations/github.py +0 -0
  28. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/configurations/gitlab.py +0 -0
  29. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/configurations/google_places.py +0 -0
  30. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/configurations/jira.py +0 -0
  31. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/configurations/pgvector.py +0 -0
  32. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/configurations/postman.py +0 -0
  33. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/configurations/qtest.py +0 -0
  34. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/configurations/rally.py +0 -0
  35. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/configurations/report_portal.py +0 -0
  36. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/configurations/salesforce.py +0 -0
  37. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/configurations/service_now.py +0 -0
  38. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/configurations/sharepoint.py +0 -0
  39. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/configurations/slack.py +0 -0
  40. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/configurations/sonar.py +0 -0
  41. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/configurations/sql.py +0 -0
  42. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/configurations/testio.py +0 -0
  43. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/configurations/testrail.py +0 -0
  44. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/configurations/xray.py +0 -0
  45. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/configurations/zephyr.py +0 -0
  46. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/configurations/zephyr_enterprise.py +0 -0
  47. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/configurations/zephyr_essential.py +0 -0
  48. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/runtime/__init__.py +0 -0
  49. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/runtime/clients/__init__.py +0 -0
  50. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/runtime/clients/artifact.py +0 -0
  51. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/runtime/clients/datasource.py +0 -0
  52. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/runtime/clients/mcp_discovery.py +0 -0
  53. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/runtime/clients/mcp_manager.py +0 -0
  54. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/runtime/clients/prompt.py +0 -0
  55. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/runtime/clients/sandbox_client.py +0 -0
  56. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/runtime/langchain/__init__.py +0 -0
  57. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/runtime/langchain/agents/__init__.py +0 -0
  58. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/runtime/langchain/agents/xml_chat.py +0 -0
  59. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/runtime/langchain/chat_message_template.py +0 -0
  60. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/runtime/langchain/constants.py +0 -0
  61. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/runtime/langchain/document_loaders/AlitaBDDScenariosLoader.py +0 -0
  62. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/runtime/langchain/document_loaders/AlitaCSVLoader.py +0 -0
  63. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/runtime/langchain/document_loaders/AlitaConfluenceLoader.py +0 -0
  64. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/runtime/langchain/document_loaders/AlitaDirectoryLoader.py +0 -0
  65. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/runtime/langchain/document_loaders/AlitaDocxMammothLoader.py +0 -0
  66. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/runtime/langchain/document_loaders/AlitaExcelLoader.py +0 -0
  67. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/runtime/langchain/document_loaders/AlitaGitRepoLoader.py +0 -0
  68. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/runtime/langchain/document_loaders/AlitaImageLoader.py +0 -0
  69. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/runtime/langchain/document_loaders/AlitaJSONLoader.py +0 -0
  70. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/runtime/langchain/document_loaders/AlitaJiraLoader.py +0 -0
  71. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/runtime/langchain/document_loaders/AlitaMarkdownLoader.py +0 -0
  72. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/runtime/langchain/document_loaders/AlitaPDFLoader.py +0 -0
  73. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/runtime/langchain/document_loaders/AlitaPowerPointLoader.py +0 -0
  74. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/runtime/langchain/document_loaders/AlitaPythonLoader.py +0 -0
  75. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/runtime/langchain/document_loaders/AlitaQtestLoader.py +0 -0
  76. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/runtime/langchain/document_loaders/AlitaTableLoader.py +0 -0
  77. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/runtime/langchain/document_loaders/AlitaTextLoader.py +0 -0
  78. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/runtime/langchain/document_loaders/ImageParser.py +0 -0
  79. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/runtime/langchain/document_loaders/__init__.py +0 -0
  80. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/runtime/langchain/document_loaders/constants.py +0 -0
  81. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/runtime/langchain/document_loaders/utils.py +0 -0
  82. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/runtime/langchain/indexer.py +0 -0
  83. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/runtime/langchain/interfaces/__init__.py +0 -0
  84. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/runtime/langchain/interfaces/kwextractor.py +0 -0
  85. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/runtime/langchain/interfaces/llm_processor.py +0 -0
  86. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/runtime/langchain/interfaces/loaders.py +0 -0
  87. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/runtime/langchain/interfaces/splitters.py +0 -0
  88. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/runtime/langchain/langraph_agent.py +0 -0
  89. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/runtime/langchain/mixedAgentParser.py +0 -0
  90. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/runtime/langchain/mixedAgentRenderes.py +0 -0
  91. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/runtime/langchain/retrievers/AlitaRetriever.py +0 -0
  92. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/runtime/langchain/retrievers/VectorstoreRetriever.py +0 -0
  93. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/runtime/langchain/retrievers/__init__.py +0 -0
  94. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/runtime/langchain/store_manager.py +0 -0
  95. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/runtime/langchain/tools/__init__.py +0 -0
  96. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/runtime/langchain/tools/bdd_parser/__init__.py +0 -0
  97. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/runtime/langchain/tools/bdd_parser/bdd_exceptions.py +0 -0
  98. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/runtime/langchain/tools/bdd_parser/bdd_parser.py +0 -0
  99. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/runtime/langchain/tools/bdd_parser/feature_types.py +0 -0
  100. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/runtime/langchain/tools/bdd_parser/parser.py +0 -0
  101. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/runtime/langchain/tools/git.py +0 -0
  102. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/runtime/langchain/tools/log.py +0 -0
  103. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/runtime/langchain/tools/quota.py +0 -0
  104. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/runtime/langchain/tools/state.py +0 -0
  105. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/runtime/langchain/tools/utils.py +0 -0
  106. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/runtime/langchain/tools/vector.py +0 -0
  107. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/runtime/langchain/utils.py +0 -0
  108. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/runtime/llms/__init__.py +0 -0
  109. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/runtime/llms/preloaded.py +0 -0
  110. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/runtime/models/mcp_models.py +0 -0
  111. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/runtime/toolkits/__init__.py +0 -0
  112. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/runtime/toolkits/application.py +0 -0
  113. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/runtime/toolkits/artifact.py +0 -0
  114. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/runtime/toolkits/configurations.py +0 -0
  115. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/runtime/toolkits/datasource.py +0 -0
  116. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/runtime/toolkits/prompt.py +0 -0
  117. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/runtime/toolkits/subgraph.py +0 -0
  118. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/runtime/toolkits/vectorstore.py +0 -0
  119. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/runtime/tools/__init__.py +0 -0
  120. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/runtime/tools/agent.py +0 -0
  121. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/runtime/tools/application.py +0 -0
  122. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/runtime/tools/artifact.py +0 -0
  123. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/runtime/tools/datasource.py +0 -0
  124. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/runtime/tools/echo.py +0 -0
  125. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/runtime/tools/function.py +0 -0
  126. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/runtime/tools/graph.py +0 -0
  127. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/runtime/tools/image_generation.py +0 -0
  128. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/runtime/tools/indexer_tool.py +0 -0
  129. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/runtime/tools/llm.py +0 -0
  130. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/runtime/tools/loop.py +0 -0
  131. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/runtime/tools/loop_output.py +0 -0
  132. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/runtime/tools/mcp_inspect_tool.py +0 -0
  133. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/runtime/tools/mcp_server_tool.py +0 -0
  134. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/runtime/tools/pgvector_search.py +0 -0
  135. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/runtime/tools/prompt.py +0 -0
  136. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/runtime/tools/router.py +0 -0
  137. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/runtime/tools/sandbox.py +0 -0
  138. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/runtime/tools/tool.py +0 -0
  139. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/runtime/tools/vectorstore.py +0 -0
  140. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/runtime/tools/vectorstore_base.py +0 -0
  141. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/runtime/utils/AlitaCallback.py +0 -0
  142. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/runtime/utils/__init__.py +0 -0
  143. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/runtime/utils/constants.py +0 -0
  144. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/runtime/utils/evaluate.py +0 -0
  145. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/runtime/utils/logging.py +0 -0
  146. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/runtime/utils/save_dataframe.py +0 -0
  147. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/runtime/utils/streamlit.py +0 -0
  148. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/runtime/utils/toolkit_runtime.py +0 -0
  149. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/runtime/utils/toolkit_utils.py +0 -0
  150. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/runtime/utils/utils.py +0 -0
  151. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/tools/__init__.py +0 -0
  152. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/tools/ado/__init__.py +0 -0
  153. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/tools/ado/repos/__init__.py +0 -0
  154. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/tools/ado/repos/repos_wrapper.py +0 -0
  155. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/tools/ado/test_plan/__init__.py +0 -0
  156. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/tools/ado/test_plan/test_plan_wrapper.py +0 -0
  157. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/tools/ado/utils.py +0 -0
  158. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/tools/ado/wiki/__init__.py +0 -0
  159. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/tools/ado/wiki/ado_wrapper.py +0 -0
  160. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/tools/ado/work_item/__init__.py +0 -0
  161. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/tools/ado/work_item/ado_wrapper.py +0 -0
  162. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/tools/advanced_jira_mining/__init__.py +0 -0
  163. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/tools/advanced_jira_mining/data_mining_wrapper.py +0 -0
  164. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/tools/aws/__init__.py +0 -0
  165. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/tools/aws/delta_lake/__init__.py +0 -0
  166. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/tools/aws/delta_lake/api_wrapper.py +0 -0
  167. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/tools/aws/delta_lake/schemas.py +0 -0
  168. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/tools/aws/delta_lake/tool.py +0 -0
  169. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/tools/azure_ai/__init__.py +0 -0
  170. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/tools/azure_ai/search/__init__.py +0 -0
  171. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/tools/azure_ai/search/api_wrapper.py +0 -0
  172. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/tools/base/__init__.py +0 -0
  173. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/tools/base/tool.py +0 -0
  174. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/tools/base_indexer_toolkit.py +0 -0
  175. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/tools/bitbucket/__init__.py +0 -0
  176. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/tools/bitbucket/api_wrapper.py +0 -0
  177. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/tools/bitbucket/bitbucket_constants.py +0 -0
  178. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/tools/bitbucket/cloud_api_wrapper.py +0 -0
  179. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/tools/browser/__init__.py +0 -0
  180. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/tools/browser/crawler.py +0 -0
  181. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/tools/browser/duck_duck_go_search.py +0 -0
  182. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/tools/browser/google_search_rag.py +0 -0
  183. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/tools/browser/utils.py +0 -0
  184. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/tools/browser/wiki.py +0 -0
  185. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/tools/carrier/__init__.py +0 -0
  186. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/tools/carrier/api_wrapper.py +0 -0
  187. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/tools/carrier/backend_reports_tool.py +0 -0
  188. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/tools/carrier/backend_tests_tool.py +0 -0
  189. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/tools/carrier/cancel_ui_test_tool.py +0 -0
  190. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/tools/carrier/carrier_sdk.py +0 -0
  191. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/tools/carrier/create_ui_excel_report_tool.py +0 -0
  192. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/tools/carrier/create_ui_test_tool.py +0 -0
  193. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/tools/carrier/excel_reporter.py +0 -0
  194. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/tools/carrier/lighthouse_excel_reporter.py +0 -0
  195. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/tools/carrier/run_ui_test_tool.py +0 -0
  196. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/tools/carrier/tickets_tool.py +0 -0
  197. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/tools/carrier/tools.py +0 -0
  198. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/tools/carrier/ui_reports_tool.py +0 -0
  199. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/tools/carrier/update_ui_test_schedule_tool.py +0 -0
  200. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/tools/carrier/utils.py +0 -0
  201. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/tools/chunkers/__init__.py +0 -0
  202. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/tools/chunkers/code/__init__.py +0 -0
  203. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/tools/chunkers/code/codeparser.py +0 -0
  204. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/tools/chunkers/code/constants.py +0 -0
  205. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/tools/chunkers/code/treesitter/__init__.py +0 -0
  206. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/tools/chunkers/code/treesitter/treesitter.py +0 -0
  207. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/tools/chunkers/code/treesitter/treesitter_c.py +0 -0
  208. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/tools/chunkers/code/treesitter/treesitter_cpp.py +0 -0
  209. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/tools/chunkers/code/treesitter/treesitter_cs.py +0 -0
  210. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/tools/chunkers/code/treesitter/treesitter_go.py +0 -0
  211. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/tools/chunkers/code/treesitter/treesitter_hs.py +0 -0
  212. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/tools/chunkers/code/treesitter/treesitter_java.py +0 -0
  213. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/tools/chunkers/code/treesitter/treesitter_js.py +0 -0
  214. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/tools/chunkers/code/treesitter/treesitter_kt.py +0 -0
  215. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/tools/chunkers/code/treesitter/treesitter_py.py +0 -0
  216. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/tools/chunkers/code/treesitter/treesitter_rb.py +0 -0
  217. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/tools/chunkers/code/treesitter/treesitter_registry.py +0 -0
  218. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/tools/chunkers/code/treesitter/treesitter_rs.py +0 -0
  219. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/tools/chunkers/code/treesitter/treesitter_ts.py +0 -0
  220. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/tools/chunkers/models.py +0 -0
  221. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/tools/chunkers/sematic/__init__.py +0 -0
  222. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/tools/chunkers/sematic/base.py +0 -0
  223. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/tools/chunkers/sematic/json_chunker.py +0 -0
  224. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/tools/chunkers/sematic/markdown_chunker.py +0 -0
  225. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/tools/chunkers/sematic/proposal_chunker.py +0 -0
  226. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/tools/chunkers/sematic/statistical_chunker.py +0 -0
  227. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/tools/chunkers/utils.py +0 -0
  228. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/tools/cloud/__init__.py +0 -0
  229. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/tools/cloud/aws/__init__.py +0 -0
  230. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/tools/cloud/aws/api_wrapper.py +0 -0
  231. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/tools/cloud/azure/__init__.py +0 -0
  232. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/tools/cloud/azure/api_wrapper.py +0 -0
  233. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/tools/cloud/gcp/__init__.py +0 -0
  234. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/tools/cloud/gcp/api_wrapper.py +0 -0
  235. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/tools/cloud/k8s/__init__.py +0 -0
  236. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/tools/cloud/k8s/api_wrapper.py +0 -0
  237. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/tools/code/__init__.py +0 -0
  238. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/tools/code/linter/__init__.py +0 -0
  239. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/tools/code/linter/api_wrapper.py +0 -0
  240. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/tools/code/loaders/codesearcher.py +0 -0
  241. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/tools/code/sonar/__init__.py +0 -0
  242. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/tools/code/sonar/api_wrapper.py +0 -0
  243. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/tools/code_indexer_toolkit.py +0 -0
  244. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/tools/confluence/__init__.py +0 -0
  245. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/tools/confluence/api_wrapper.py +0 -0
  246. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/tools/confluence/loader.py +0 -0
  247. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/tools/confluence/utils.py +0 -0
  248. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/tools/custom_open_api/__init__.py +0 -0
  249. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/tools/custom_open_api/api_wrapper.py +0 -0
  250. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/tools/elastic/__init__.py +0 -0
  251. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/tools/elastic/api_wrapper.py +0 -0
  252. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/tools/elitea_base.py +0 -0
  253. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/tools/figma/__init__.py +0 -0
  254. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/tools/figma/api_wrapper.py +0 -0
  255. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/tools/github/__init__.py +0 -0
  256. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/tools/github/api_wrapper.py +0 -0
  257. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/tools/github/github_client.py +0 -0
  258. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/tools/github/graphql_client_wrapper.py +0 -0
  259. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/tools/github/schemas.py +0 -0
  260. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/tools/github/tool.py +0 -0
  261. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/tools/github/tool_prompts.py +0 -0
  262. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/tools/gitlab/__init__.py +0 -0
  263. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/tools/gitlab/api_wrapper.py +0 -0
  264. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/tools/gitlab/tools.py +0 -0
  265. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/tools/gitlab/utils.py +0 -0
  266. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/tools/gitlab_org/__init__.py +0 -0
  267. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/tools/gitlab_org/api_wrapper.py +0 -0
  268. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/tools/gmail/__init__.py +0 -0
  269. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/tools/gmail/gmail_wrapper.py +0 -0
  270. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/tools/gmail/utils.py +0 -0
  271. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/tools/google/__init__.py +0 -0
  272. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/tools/google/bigquery/__init__.py +0 -0
  273. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/tools/google/bigquery/api_wrapper.py +0 -0
  274. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/tools/google/bigquery/schemas.py +0 -0
  275. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/tools/google/bigquery/tool.py +0 -0
  276. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/tools/google_places/__init__.py +0 -0
  277. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/tools/google_places/api_wrapper.py +0 -0
  278. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/tools/jira/__init__.py +0 -0
  279. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/tools/jira/api_wrapper.py +0 -0
  280. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/tools/keycloak/__init__.py +0 -0
  281. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/tools/keycloak/api_wrapper.py +0 -0
  282. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/tools/llm/__init__.py +0 -0
  283. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/tools/llm/img_utils.py +0 -0
  284. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/tools/llm/llm_utils.py +0 -0
  285. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/tools/localgit/__init__.py +0 -0
  286. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/tools/localgit/local_git.py +0 -0
  287. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/tools/localgit/tool.py +0 -0
  288. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/tools/memory/__init__.py +0 -0
  289. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/tools/non_code_indexer_toolkit.py +0 -0
  290. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/tools/ocr/__init__.py +0 -0
  291. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/tools/ocr/api_wrapper.py +0 -0
  292. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/tools/ocr/text_detection.py +0 -0
  293. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/tools/openapi/__init__.py +0 -0
  294. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/tools/pandas/__init__.py +0 -0
  295. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/tools/pandas/api_wrapper.py +0 -0
  296. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/tools/pandas/dataframe/__init__.py +0 -0
  297. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/tools/pandas/dataframe/errors.py +0 -0
  298. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/tools/pandas/dataframe/executor/__init__.py +0 -0
  299. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/tools/pandas/dataframe/executor/code_environment.py +0 -0
  300. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/tools/pandas/dataframe/executor/code_executor.py +0 -0
  301. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/tools/pandas/dataframe/generator/__init__.py +0 -0
  302. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/tools/pandas/dataframe/generator/base.py +0 -0
  303. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/tools/pandas/dataframe/generator/code_cleaning.py +0 -0
  304. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/tools/pandas/dataframe/generator/code_validator.py +0 -0
  305. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/tools/pandas/dataframe/prompts.py +0 -0
  306. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/tools/pandas/dataframe/serializer.py +0 -0
  307. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/tools/pandas/dataframe/utils.py +0 -0
  308. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/tools/pandas/statsmodels/__init__.py +0 -0
  309. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/tools/pandas/statsmodels/base_stats.py +0 -0
  310. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/tools/pandas/statsmodels/descriptive.py +0 -0
  311. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/tools/pandas/statsmodels/hypothesis_testing.py +0 -0
  312. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/tools/pandas/statsmodels/regression.py +0 -0
  313. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/tools/postman/__init__.py +0 -0
  314. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/tools/postman/api_wrapper.py +0 -0
  315. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/tools/postman/postman_analysis.py +0 -0
  316. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/tools/pptx/__init__.py +0 -0
  317. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/tools/pptx/pptx_wrapper.py +0 -0
  318. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/tools/qtest/__init__.py +0 -0
  319. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/tools/qtest/api_wrapper.py +0 -0
  320. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/tools/qtest/tool.py +0 -0
  321. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/tools/rally/__init__.py +0 -0
  322. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/tools/rally/api_wrapper.py +0 -0
  323. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/tools/report_portal/__init__.py +0 -0
  324. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/tools/report_portal/api_wrapper.py +0 -0
  325. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/tools/report_portal/report_portal_client.py +0 -0
  326. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/tools/salesforce/__init__.py +0 -0
  327. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/tools/salesforce/api_wrapper.py +0 -0
  328. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/tools/salesforce/model.py +0 -0
  329. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/tools/servicenow/__init__.py +0 -0
  330. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/tools/servicenow/api_wrapper.py +0 -0
  331. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/tools/servicenow/servicenow_client.py +0 -0
  332. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/tools/sharepoint/__init__.py +0 -0
  333. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/tools/sharepoint/api_wrapper.py +0 -0
  334. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/tools/sharepoint/authorization_helper.py +0 -0
  335. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/tools/sharepoint/utils.py +0 -0
  336. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/tools/slack/__init__.py +0 -0
  337. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/tools/slack/api_wrapper.py +0 -0
  338. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/tools/sql/__init__.py +0 -0
  339. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/tools/sql/api_wrapper.py +0 -0
  340. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/tools/sql/models.py +0 -0
  341. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/tools/testio/__init__.py +0 -0
  342. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/tools/testio/api_wrapper.py +0 -0
  343. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/tools/testrail/__init__.py +0 -0
  344. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/tools/testrail/api_wrapper.py +0 -0
  345. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/tools/utils/__init__.py +0 -0
  346. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/tools/utils/available_tools_decorator.py +0 -0
  347. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/tools/utils/content_parser.py +0 -0
  348. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/tools/vector_adapters/VectorStoreAdapter.py +0 -0
  349. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/tools/vector_adapters/__init__.py +0 -0
  350. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/tools/xray/__init__.py +0 -0
  351. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/tools/xray/api_wrapper.py +0 -0
  352. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/tools/yagmail/__init__.py +0 -0
  353. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/tools/yagmail/yagmail_wrapper.py +0 -0
  354. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/tools/zephyr/Zephyr.py +0 -0
  355. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/tools/zephyr/__init__.py +0 -0
  356. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/tools/zephyr/api_wrapper.py +0 -0
  357. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/tools/zephyr/rest_client.py +0 -0
  358. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/tools/zephyr_enterprise/__init__.py +0 -0
  359. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/tools/zephyr_enterprise/api_wrapper.py +0 -0
  360. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/tools/zephyr_enterprise/zephyr_enterprise.py +0 -0
  361. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/tools/zephyr_essential/__init__.py +0 -0
  362. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/tools/zephyr_essential/api_wrapper.py +0 -0
  363. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/tools/zephyr_essential/client.py +0 -0
  364. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/tools/zephyr_scale/__init__.py +0 -0
  365. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/tools/zephyr_scale/api_wrapper.py +0 -0
  366. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/tools/zephyr_squad/__init__.py +0 -0
  367. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/tools/zephyr_squad/api_wrapper.py +0 -0
  368. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk/tools/zephyr_squad/zephyr_squad_cloud_client.py +0 -0
  369. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk.egg-info/dependency_links.txt +0 -0
  370. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk.egg-info/requires.txt +0 -0
  371. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/alita_sdk.egg-info/top_level.txt +0 -0
  372. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/setup.cfg +0 -0
  373. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/tests/test_ado_analysis.py +0 -0
  374. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/tests/test_github_analysis.py +0 -0
  375. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/tests/test_gitlab_analysis.py +0 -0
  376. {alita_sdk-0.3.437 → alita_sdk-0.3.439}/tests/test_jira_analysis.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: alita_sdk
3
- Version: 0.3.437
3
+ Version: 0.3.439
4
4
  Summary: SDK for building langchain agents using resources from Alita
5
5
  Author-email: Artem Rozumenko <artyom.rozumenko@gmail.com>, Mikalai Biazruchka <mikalai_biazruchka@epam.com>, Roman Mitusov <roman_mitusov@epam.com>, Ivan Krakhmaliuk <lifedj27@gmail.com>, Artem Dubrovskiy <ad13box@gmail.com>
6
6
  License-Expression: Apache-2.0
@@ -303,7 +303,7 @@ class AlitaClient:
303
303
  app_type=None, memory=None, runtime='langchain',
304
304
  application_variables: Optional[dict] = None,
305
305
  version_details: Optional[dict] = None, store: Optional[BaseStore] = None,
306
- llm: Optional[ChatOpenAI] = None):
306
+ llm: Optional[ChatOpenAI] = None, mcp_tokens: Optional[dict] = None):
307
307
  if tools is None:
308
308
  tools = []
309
309
  if chat_history is None:
@@ -344,11 +344,11 @@ class AlitaClient:
344
344
  app_type = "react"
345
345
  if runtime == 'nonrunnable':
346
346
  return LangChainAssistant(self, data, llm, chat_history, app_type,
347
- tools=tools, memory=memory, store=store)
347
+ tools=tools, memory=memory, store=store, mcp_tokens=mcp_tokens)
348
348
  if runtime == 'langchain':
349
349
  return LangChainAssistant(self, data, llm,
350
350
  chat_history, app_type,
351
- tools=tools, memory=memory, store=store).runnable()
351
+ tools=tools, memory=memory, store=store, mcp_tokens=mcp_tokens).runnable()
352
352
  elif runtime == 'llama':
353
353
  raise NotImplementedError("LLama runtime is not supported")
354
354
 
@@ -568,7 +568,8 @@ class AlitaClient:
568
568
  def predict_agent(self, llm: ChatOpenAI, instructions: str = "You are a helpful assistant.",
569
569
  tools: Optional[list] = None, chat_history: Optional[List[Any]] = None,
570
570
  memory=None, runtime='langchain', variables: Optional[list] = None,
571
- store: Optional[BaseStore] = None, debug_mode: Optional[bool] = False):
571
+ store: Optional[BaseStore] = None, debug_mode: Optional[bool] = False,
572
+ mcp_tokens: Optional[dict] = None):
572
573
  """
573
574
  Create a predict-type agent with minimal configuration.
574
575
 
@@ -604,8 +605,17 @@ class AlitaClient:
604
605
  'tools': tools, # Tool configs that will be processed by get_tools()
605
606
  'variables': variables
606
607
  }
607
- return LangChainAssistant(self, agent_data, llm,
608
- chat_history, "predict", memory=memory, store=store, debug_mode=debug_mode).runnable()
608
+ return LangChainAssistant(
609
+ self,
610
+ agent_data,
611
+ llm,
612
+ chat_history,
613
+ "predict",
614
+ memory=memory,
615
+ store=store,
616
+ debug_mode=debug_mode,
617
+ mcp_tokens=mcp_tokens
618
+ ).runnable()
609
619
 
610
620
  def test_toolkit_tool(self, toolkit_config: dict, tool_name: str, tool_params: dict = None,
611
621
  runtime_config: dict = None, llm_model: str = None,
@@ -31,7 +31,8 @@ class Assistant:
31
31
  tools: Optional[list] = [],
32
32
  memory: Optional[Any] = None,
33
33
  store: Optional[BaseStore] = None,
34
- debug_mode: Optional[bool] = False):
34
+ debug_mode: Optional[bool] = False,
35
+ mcp_tokens: Optional[dict] = None):
35
36
 
36
37
  self.app_type = app_type
37
38
  self.memory = memory
@@ -89,7 +90,14 @@ class Assistant:
89
90
  for internal_tool_name in meta.get("internal_tools"):
90
91
  version_tools.append({"type": "internal_tool", "name": internal_tool_name})
91
92
 
92
- self.tools = get_tools(version_tools, alita_client=alita, llm=self.client, memory_store=self.store, debug_mode=debug_mode)
93
+ self.tools = get_tools(
94
+ version_tools,
95
+ alita_client=alita,
96
+ llm=self.client,
97
+ memory_store=self.store,
98
+ debug_mode=debug_mode,
99
+ mcp_tokens=mcp_tokens
100
+ )
93
101
  if tools:
94
102
  self.tools += tools
95
103
  # Handle prompt setup
@@ -7,7 +7,7 @@ Following MCP specification: https://modelcontextprotocol.io/specification/2025-
7
7
  import logging
8
8
  import re
9
9
  import requests
10
- from typing import List, Optional, Any, Dict, Literal, ClassVar
10
+ from typing import List, Optional, Any, Dict, Literal, ClassVar, Union
11
11
 
12
12
  from langchain_core.tools import BaseToolkit, BaseTool
13
13
  from pydantic import BaseModel, ConfigDict, Field
@@ -17,6 +17,12 @@ from ..tools.mcp_remote_tool import McpRemoteTool
17
17
  from ..tools.mcp_inspect_tool import McpInspectTool
18
18
  from ...tools.utils import TOOLKIT_SPLITTER, clean_string
19
19
  from ..models.mcp_models import McpConnectionConfig
20
+ from ..utils.mcp_oauth import (
21
+ McpAuthorizationRequired,
22
+ canonical_resource,
23
+ extract_resource_metadata_url,
24
+ fetch_resource_metadata,
25
+ )
20
26
 
21
27
  logger = logging.getLogger(__name__)
22
28
 
@@ -200,11 +206,10 @@ class McpToolkit(BaseToolkit):
200
206
  )
201
207
  ),
202
208
  timeout=(
203
- int,
209
+ Union[int, str], # TODO: remove one I will figure out why UI sends str
204
210
  Field(
205
- default=60,
206
- ge=1, le=300,
207
- description="Request timeout in seconds"
211
+ default=300,
212
+ description="Request timeout in seconds (1-3600)"
208
213
  )
209
214
  ),
210
215
  discovery_mode=(
@@ -218,11 +223,10 @@ class McpToolkit(BaseToolkit):
218
223
  )
219
224
  ),
220
225
  discovery_interval=(
221
- int,
226
+ Union[int, str],
222
227
  Field(
223
228
  default=300,
224
- ge=60, le=3600,
225
- description="Discovery interval in seconds (for periodic discovery)"
229
+ description="Discovery interval in seconds (60-3600, for periodic discovery)"
226
230
  )
227
231
  ),
228
232
  selected_tools=(
@@ -243,11 +247,10 @@ class McpToolkit(BaseToolkit):
243
247
  )
244
248
  ),
245
249
  cache_ttl=(
246
- int,
250
+ Union[int, str],
247
251
  Field(
248
252
  default=300,
249
- ge=60, le=3600,
250
- description="Cache TTL in seconds"
253
+ description="Cache TTL in seconds (60-3600)"
251
254
  )
252
255
  ),
253
256
  __config__=ConfigDict(
@@ -309,6 +312,11 @@ class McpToolkit(BaseToolkit):
309
312
  if not toolkit_name:
310
313
  raise ValueError("toolkit_name is required")
311
314
 
315
+ # Convert numeric parameters that may come as strings from UI
316
+ timeout = safe_int(timeout, 60)
317
+ discovery_interval = safe_int(discovery_interval, 300)
318
+ cache_ttl = safe_int(cache_ttl, 300)
319
+
312
320
  logger.info(f"Creating MCP toolkit: {toolkit_name}")
313
321
 
314
322
  # Parse headers if they're provided as a JSON string
@@ -407,6 +415,9 @@ class McpToolkit(BaseToolkit):
407
415
  logger.error(f"Discovery error details - URL: {connection_config.url}, Timeout: {timeout}s")
408
416
 
409
417
  # Fallback to static mode if available and not already static
418
+ if isinstance(e, McpAuthorizationRequired):
419
+ # Authorization is required; surface upstream so the caller can prompt the user
420
+ raise
410
421
  if client and discovery_mode != "static":
411
422
  logger.info(f"Falling back to static discovery for toolkit '{toolkit_name}'")
412
423
  tools = cls._create_tools_static(toolkit_name, selected_tools, timeout, client)
@@ -532,6 +543,19 @@ class McpToolkit(BaseToolkit):
532
543
  timeout=timeout
533
544
  )
534
545
 
546
+ auth_header = response.headers.get('WWW-Authenticate', '')
547
+ if response.status_code == 401:
548
+ resource_metadata_url = extract_resource_metadata_url(auth_header)
549
+ metadata = fetch_resource_metadata(resource_metadata_url, timeout=timeout) if resource_metadata_url else None
550
+ raise McpAuthorizationRequired(
551
+ message=f"MCP server {connection_config.url} requires OAuth authorization",
552
+ server_url=canonical_resource(connection_config.url),
553
+ resource_metadata_url=resource_metadata_url,
554
+ www_authenticate=auth_header,
555
+ resource_metadata=metadata,
556
+ status=response.status_code,
557
+ )
558
+
535
559
  if response.status_code != 200:
536
560
  logger.error(f"MCP server returned non-200 status: {response.status_code}")
537
561
  raise Exception(f"HTTP {response.status_code}: {response.text}")
@@ -916,4 +940,4 @@ def get_all_discovered_servers():
916
940
  """Get status of all discovered servers."""
917
941
  from ..clients.mcp_discovery import get_discovery_service
918
942
  service = get_discovery_service()
919
- return service.get_server_health()
943
+ return service.get_server_health()
@@ -19,6 +19,7 @@ from ..tools.image_generation import ImageGenerationToolkit
19
19
  # Import community tools
20
20
  from ...community import get_toolkits as community_toolkits, get_tools as community_tools
21
21
  from ...tools.memory import MemoryToolkit
22
+ from ..utils.mcp_oauth import canonical_resource
22
23
  from ...tools.utils import TOOLKIT_SPLITTER
23
24
 
24
25
  logger = logging.getLogger(__name__)
@@ -37,7 +38,7 @@ def get_toolkits():
37
38
  return core_toolkits + community_toolkits() + alita_toolkits()
38
39
 
39
40
 
40
- def get_tools(tools_list: list, alita_client, llm, memory_store: BaseStore = None, debug_mode: Optional[bool] = False) -> list:
41
+ def get_tools(tools_list: list, alita_client, llm, memory_store: BaseStore = None, debug_mode: Optional[bool] = False, mcp_tokens: Optional[dict] = None) -> list:
41
42
  prompts = []
42
43
  tools = []
43
44
 
@@ -109,10 +110,20 @@ def get_tools(tools_list: list, alita_client, llm, memory_store: BaseStore = Non
109
110
  toolkit_name=tool.get('toolkit_name', ''),
110
111
  **tool['settings']).get_tools())
111
112
  elif tool['type'] == 'mcp':
113
+ settings = dict(tool['settings'])
114
+ url = settings.get('url')
115
+ headers = settings.get('headers')
116
+ token = None
117
+ if mcp_tokens and url:
118
+ token = mcp_tokens.get(canonical_resource(url))
119
+ if token:
120
+ merged_headers = dict(headers) if headers else {}
121
+ merged_headers.setdefault('Authorization', f'Bearer {token}')
122
+ settings['headers'] = merged_headers
112
123
  tools.extend(McpToolkit.get_toolkit(
113
124
  toolkit_name=tool.get('toolkit_name', ''),
114
125
  client=alita_client,
115
- **tool['settings']).get_tools())
126
+ **settings).get_tools())
116
127
  except Exception as e:
117
128
  logger.error(f"Error initializing toolkit for tool '{tool.get('name', 'unknown')}': {e}", exc_info=True)
118
129
  if debug_mode:
@@ -13,6 +13,12 @@ from typing import Any, Dict, Optional
13
13
 
14
14
  from .mcp_server_tool import McpServerTool
15
15
  from pydantic import Field
16
+ from ..utils.mcp_oauth import (
17
+ McpAuthorizationRequired,
18
+ canonical_resource,
19
+ extract_resource_metadata_url,
20
+ fetch_resource_metadata_async,
21
+ )
16
22
 
17
23
  logger = logging.getLogger(__name__)
18
24
 
@@ -48,6 +54,9 @@ class McpRemoteTool(McpServerTool):
48
54
  with ThreadPoolExecutor() as executor:
49
55
  future = executor.submit(self._run_in_new_loop, kwargs)
50
56
  return future.result(timeout=self.tool_timeout_sec)
57
+ except McpAuthorizationRequired:
58
+ # Bubble up so LangChain can surface a tool error with useful metadata
59
+ raise
51
60
  except Exception as e:
52
61
  logger.error(f"Error executing remote MCP tool '{self.name}': {e}")
53
62
  return f"Error executing tool: {e}"
@@ -110,6 +119,25 @@ class McpRemoteTool(McpServerTool):
110
119
  logger.debug(f"Request: {json.dumps(mcp_request, indent=2)}")
111
120
 
112
121
  async with session.post(self.server_url, json=mcp_request, headers=headers) as response:
122
+ auth_header = response.headers.get('WWW-Authenticate') or response.headers.get('Www-Authenticate')
123
+ if response.status == 401:
124
+ resource_metadata_url = extract_resource_metadata_url(auth_header)
125
+ metadata = None
126
+ if resource_metadata_url:
127
+ metadata = await fetch_resource_metadata_async(
128
+ resource_metadata_url,
129
+ session=session,
130
+ timeout=self.tool_timeout_sec,
131
+ )
132
+ raise McpAuthorizationRequired(
133
+ message=f"MCP server {self.server_url} requires OAuth authorization",
134
+ server_url=canonical_resource(self.server_url),
135
+ resource_metadata_url=resource_metadata_url,
136
+ www_authenticate=auth_header,
137
+ resource_metadata=metadata,
138
+ status=response.status,
139
+ )
140
+
113
141
  if response.status != 200:
114
142
  error_text = await response.text()
115
143
  raise Exception(f"HTTP {response.status}: {error_text}")
@@ -0,0 +1,103 @@
1
+ import json
2
+ import logging
3
+ import re
4
+ from typing import Any, Dict, Optional
5
+ from urllib.parse import urlparse
6
+
7
+ import requests
8
+ from langchain_core.tools import ToolException
9
+
10
+ logger = logging.getLogger(__name__)
11
+
12
+
13
+ class McpAuthorizationRequired(ToolException):
14
+ """Raised when an MCP server requires OAuth authorization before use."""
15
+
16
+ def __init__(
17
+ self,
18
+ message: str,
19
+ server_url: str,
20
+ resource_metadata_url: Optional[str] = None,
21
+ www_authenticate: Optional[str] = None,
22
+ resource_metadata: Optional[Dict[str, Any]] = None,
23
+ status: Optional[int] = None,
24
+ ):
25
+ super().__init__(message)
26
+ self.server_url = server_url
27
+ self.resource_metadata_url = resource_metadata_url
28
+ self.www_authenticate = www_authenticate
29
+ self.resource_metadata = resource_metadata
30
+ self.status = status
31
+
32
+ def to_dict(self) -> Dict[str, Any]:
33
+ return {
34
+ "message": str(self),
35
+ "server_url": self.server_url,
36
+ "resource_metadata_url": self.resource_metadata_url,
37
+ "www_authenticate": self.www_authenticate,
38
+ "resource_metadata": self.resource_metadata,
39
+ "status": self.status,
40
+ }
41
+
42
+
43
+ def extract_resource_metadata_url(www_authenticate: Optional[str]) -> Optional[str]:
44
+ """Pull the resource_metadata URL from a WWW-Authenticate header if present."""
45
+ if not www_authenticate:
46
+ return None
47
+
48
+ # RFC9728 returns `resource_metadata="<url>"` inside the header value
49
+ match = re.search(r'resource_metadata\s*=\s*\"?([^\", ]+)\"?', www_authenticate)
50
+ if match:
51
+ return match.group(1)
52
+ return None
53
+
54
+
55
+ def fetch_resource_metadata(resource_metadata_url: str, timeout: int = 10) -> Optional[Dict[str, Any]]:
56
+ """Fetch and parse the protected resource metadata document."""
57
+ try:
58
+ resp = requests.get(resource_metadata_url, timeout=timeout)
59
+ resp.raise_for_status()
60
+ return resp.json()
61
+ except Exception as exc: # broad catch – we want to surface auth requirement even if this fails
62
+ logger.warning("Failed to fetch resource metadata from %s: %s", resource_metadata_url, exc)
63
+ return None
64
+
65
+
66
+ async def fetch_resource_metadata_async(resource_metadata_url: str, session=None, timeout: int = 10) -> Optional[Dict[str, Any]]:
67
+ """Async variant for fetching protected resource metadata."""
68
+ try:
69
+ import aiohttp
70
+
71
+ client_timeout = aiohttp.ClientTimeout(total=timeout)
72
+ if session:
73
+ async with session.get(resource_metadata_url, timeout=client_timeout) as resp:
74
+ text = await resp.text()
75
+ else:
76
+ async with aiohttp.ClientSession(timeout=client_timeout) as local_session:
77
+ async with local_session.get(resource_metadata_url) as resp:
78
+ text = await resp.text()
79
+
80
+ try:
81
+ return json.loads(text)
82
+ except json.JSONDecodeError:
83
+ logger.warning("Resource metadata at %s is not valid JSON: %s", resource_metadata_url, text[:200])
84
+ return None
85
+ except Exception as exc:
86
+ logger.warning("Failed to fetch resource metadata from %s: %s", resource_metadata_url, exc)
87
+ return None
88
+
89
+
90
+ def canonical_resource(server_url: str) -> str:
91
+ """Produce a canonical resource identifier for the MCP server."""
92
+ parsed = urlparse(server_url)
93
+ # Normalize scheme/host casing per RFC guidance
94
+ normalized = parsed._replace(
95
+ scheme=parsed.scheme.lower(),
96
+ netloc=parsed.netloc.lower(),
97
+ )
98
+ resource = normalized.geturl()
99
+
100
+ # Prefer form without trailing slash unless path is meaningful
101
+ if resource.endswith("/") and parsed.path in ("", "/"):
102
+ resource = resource[:-1]
103
+ return resource
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: alita_sdk
3
- Version: 0.3.437
3
+ Version: 0.3.439
4
4
  Summary: SDK for building langchain agents using resources from Alita
5
5
  Author-email: Artem Rozumenko <artyom.rozumenko@gmail.com>, Mikalai Biazruchka <mikalai_biazruchka@epam.com>, Roman Mitusov <roman_mitusov@epam.com>, Ivan Krakhmaliuk <lifedj27@gmail.com>, Artem Dubrovskiy <ad13box@gmail.com>
6
6
  License-Expression: Apache-2.0
@@ -144,6 +144,7 @@ alita_sdk/runtime/utils/__init__.py
144
144
  alita_sdk/runtime/utils/constants.py
145
145
  alita_sdk/runtime/utils/evaluate.py
146
146
  alita_sdk/runtime/utils/logging.py
147
+ alita_sdk/runtime/utils/mcp_oauth.py
147
148
  alita_sdk/runtime/utils/save_dataframe.py
148
149
  alita_sdk/runtime/utils/streamlit.py
149
150
  alita_sdk/runtime/utils/toolkit_runtime.py
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "alita_sdk"
7
- version = "0.3.437"
7
+ version = "0.3.439"
8
8
  description = "SDK for building langchain agents using resources from Alita"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.10"
File without changes
File without changes