alita-sdk 0.3.436__tar.gz → 0.3.438__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 (375) hide show
  1. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/PKG-INFO +1 -1
  2. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/runtime/toolkits/mcp.py +43 -16
  3. alita_sdk-0.3.438/alita_sdk/runtime/tools/mcp_remote_tool.py +177 -0
  4. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/runtime/tools/mcp_server_tool.py +9 -76
  5. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk.egg-info/PKG-INFO +1 -1
  6. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk.egg-info/SOURCES.txt +1 -0
  7. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/pyproject.toml +1 -1
  8. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/LICENSE +0 -0
  9. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/README.md +0 -0
  10. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/__init__.py +0 -0
  11. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/community/__init__.py +0 -0
  12. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/community/utils.py +0 -0
  13. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/configurations/__init__.py +0 -0
  14. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/configurations/ado.py +0 -0
  15. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/configurations/azure_search.py +0 -0
  16. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/configurations/bigquery.py +0 -0
  17. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/configurations/bitbucket.py +0 -0
  18. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/configurations/browser.py +0 -0
  19. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/configurations/carrier.py +0 -0
  20. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/configurations/confluence.py +0 -0
  21. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/configurations/delta_lake.py +0 -0
  22. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/configurations/embedding.py +0 -0
  23. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/configurations/figma.py +0 -0
  24. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/configurations/github.py +0 -0
  25. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/configurations/gitlab.py +0 -0
  26. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/configurations/google_places.py +0 -0
  27. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/configurations/jira.py +0 -0
  28. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/configurations/pgvector.py +0 -0
  29. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/configurations/postman.py +0 -0
  30. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/configurations/qtest.py +0 -0
  31. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/configurations/rally.py +0 -0
  32. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/configurations/report_portal.py +0 -0
  33. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/configurations/salesforce.py +0 -0
  34. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/configurations/service_now.py +0 -0
  35. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/configurations/sharepoint.py +0 -0
  36. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/configurations/slack.py +0 -0
  37. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/configurations/sonar.py +0 -0
  38. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/configurations/sql.py +0 -0
  39. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/configurations/testio.py +0 -0
  40. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/configurations/testrail.py +0 -0
  41. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/configurations/xray.py +0 -0
  42. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/configurations/zephyr.py +0 -0
  43. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/configurations/zephyr_enterprise.py +0 -0
  44. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/configurations/zephyr_essential.py +0 -0
  45. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/runtime/__init__.py +0 -0
  46. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/runtime/clients/__init__.py +0 -0
  47. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/runtime/clients/artifact.py +0 -0
  48. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/runtime/clients/client.py +0 -0
  49. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/runtime/clients/datasource.py +0 -0
  50. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/runtime/clients/mcp_discovery.py +0 -0
  51. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/runtime/clients/mcp_manager.py +0 -0
  52. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/runtime/clients/prompt.py +0 -0
  53. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/runtime/clients/sandbox_client.py +0 -0
  54. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/runtime/langchain/__init__.py +0 -0
  55. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/runtime/langchain/agents/__init__.py +0 -0
  56. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/runtime/langchain/agents/xml_chat.py +0 -0
  57. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/runtime/langchain/assistant.py +0 -0
  58. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/runtime/langchain/chat_message_template.py +0 -0
  59. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/runtime/langchain/constants.py +0 -0
  60. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/runtime/langchain/document_loaders/AlitaBDDScenariosLoader.py +0 -0
  61. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/runtime/langchain/document_loaders/AlitaCSVLoader.py +0 -0
  62. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/runtime/langchain/document_loaders/AlitaConfluenceLoader.py +0 -0
  63. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/runtime/langchain/document_loaders/AlitaDirectoryLoader.py +0 -0
  64. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/runtime/langchain/document_loaders/AlitaDocxMammothLoader.py +0 -0
  65. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/runtime/langchain/document_loaders/AlitaExcelLoader.py +0 -0
  66. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/runtime/langchain/document_loaders/AlitaGitRepoLoader.py +0 -0
  67. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/runtime/langchain/document_loaders/AlitaImageLoader.py +0 -0
  68. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/runtime/langchain/document_loaders/AlitaJSONLoader.py +0 -0
  69. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/runtime/langchain/document_loaders/AlitaJiraLoader.py +0 -0
  70. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/runtime/langchain/document_loaders/AlitaMarkdownLoader.py +0 -0
  71. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/runtime/langchain/document_loaders/AlitaPDFLoader.py +0 -0
  72. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/runtime/langchain/document_loaders/AlitaPowerPointLoader.py +0 -0
  73. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/runtime/langchain/document_loaders/AlitaPythonLoader.py +0 -0
  74. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/runtime/langchain/document_loaders/AlitaQtestLoader.py +0 -0
  75. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/runtime/langchain/document_loaders/AlitaTableLoader.py +0 -0
  76. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/runtime/langchain/document_loaders/AlitaTextLoader.py +0 -0
  77. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/runtime/langchain/document_loaders/ImageParser.py +0 -0
  78. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/runtime/langchain/document_loaders/__init__.py +0 -0
  79. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/runtime/langchain/document_loaders/constants.py +0 -0
  80. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/runtime/langchain/document_loaders/utils.py +0 -0
  81. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/runtime/langchain/indexer.py +0 -0
  82. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/runtime/langchain/interfaces/__init__.py +0 -0
  83. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/runtime/langchain/interfaces/kwextractor.py +0 -0
  84. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/runtime/langchain/interfaces/llm_processor.py +0 -0
  85. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/runtime/langchain/interfaces/loaders.py +0 -0
  86. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/runtime/langchain/interfaces/splitters.py +0 -0
  87. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/runtime/langchain/langraph_agent.py +0 -0
  88. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/runtime/langchain/mixedAgentParser.py +0 -0
  89. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/runtime/langchain/mixedAgentRenderes.py +0 -0
  90. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/runtime/langchain/retrievers/AlitaRetriever.py +0 -0
  91. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/runtime/langchain/retrievers/VectorstoreRetriever.py +0 -0
  92. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/runtime/langchain/retrievers/__init__.py +0 -0
  93. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/runtime/langchain/store_manager.py +0 -0
  94. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/runtime/langchain/tools/__init__.py +0 -0
  95. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/runtime/langchain/tools/bdd_parser/__init__.py +0 -0
  96. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/runtime/langchain/tools/bdd_parser/bdd_exceptions.py +0 -0
  97. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/runtime/langchain/tools/bdd_parser/bdd_parser.py +0 -0
  98. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/runtime/langchain/tools/bdd_parser/feature_types.py +0 -0
  99. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/runtime/langchain/tools/bdd_parser/parser.py +0 -0
  100. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/runtime/langchain/tools/git.py +0 -0
  101. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/runtime/langchain/tools/log.py +0 -0
  102. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/runtime/langchain/tools/quota.py +0 -0
  103. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/runtime/langchain/tools/state.py +0 -0
  104. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/runtime/langchain/tools/utils.py +0 -0
  105. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/runtime/langchain/tools/vector.py +0 -0
  106. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/runtime/langchain/utils.py +0 -0
  107. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/runtime/llms/__init__.py +0 -0
  108. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/runtime/llms/preloaded.py +0 -0
  109. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/runtime/models/mcp_models.py +0 -0
  110. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/runtime/toolkits/__init__.py +0 -0
  111. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/runtime/toolkits/application.py +0 -0
  112. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/runtime/toolkits/artifact.py +0 -0
  113. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/runtime/toolkits/configurations.py +0 -0
  114. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/runtime/toolkits/datasource.py +0 -0
  115. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/runtime/toolkits/prompt.py +0 -0
  116. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/runtime/toolkits/subgraph.py +0 -0
  117. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/runtime/toolkits/tools.py +0 -0
  118. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/runtime/toolkits/vectorstore.py +0 -0
  119. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/runtime/tools/__init__.py +0 -0
  120. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/runtime/tools/agent.py +0 -0
  121. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/runtime/tools/application.py +0 -0
  122. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/runtime/tools/artifact.py +0 -0
  123. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/runtime/tools/datasource.py +0 -0
  124. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/runtime/tools/echo.py +0 -0
  125. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/runtime/tools/function.py +0 -0
  126. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/runtime/tools/graph.py +0 -0
  127. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/runtime/tools/image_generation.py +0 -0
  128. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/runtime/tools/indexer_tool.py +0 -0
  129. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/runtime/tools/llm.py +0 -0
  130. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/runtime/tools/loop.py +0 -0
  131. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/runtime/tools/loop_output.py +0 -0
  132. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/runtime/tools/mcp_inspect_tool.py +0 -0
  133. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/runtime/tools/pgvector_search.py +0 -0
  134. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/runtime/tools/prompt.py +0 -0
  135. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/runtime/tools/router.py +0 -0
  136. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/runtime/tools/sandbox.py +0 -0
  137. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/runtime/tools/tool.py +0 -0
  138. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/runtime/tools/vectorstore.py +0 -0
  139. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/runtime/tools/vectorstore_base.py +0 -0
  140. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/runtime/utils/AlitaCallback.py +0 -0
  141. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/runtime/utils/__init__.py +0 -0
  142. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/runtime/utils/constants.py +0 -0
  143. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/runtime/utils/evaluate.py +0 -0
  144. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/runtime/utils/logging.py +0 -0
  145. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/runtime/utils/save_dataframe.py +0 -0
  146. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/runtime/utils/streamlit.py +0 -0
  147. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/runtime/utils/toolkit_runtime.py +0 -0
  148. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/runtime/utils/toolkit_utils.py +0 -0
  149. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/runtime/utils/utils.py +0 -0
  150. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/tools/__init__.py +0 -0
  151. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/tools/ado/__init__.py +0 -0
  152. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/tools/ado/repos/__init__.py +0 -0
  153. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/tools/ado/repos/repos_wrapper.py +0 -0
  154. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/tools/ado/test_plan/__init__.py +0 -0
  155. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/tools/ado/test_plan/test_plan_wrapper.py +0 -0
  156. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/tools/ado/utils.py +0 -0
  157. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/tools/ado/wiki/__init__.py +0 -0
  158. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/tools/ado/wiki/ado_wrapper.py +0 -0
  159. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/tools/ado/work_item/__init__.py +0 -0
  160. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/tools/ado/work_item/ado_wrapper.py +0 -0
  161. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/tools/advanced_jira_mining/__init__.py +0 -0
  162. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/tools/advanced_jira_mining/data_mining_wrapper.py +0 -0
  163. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/tools/aws/__init__.py +0 -0
  164. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/tools/aws/delta_lake/__init__.py +0 -0
  165. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/tools/aws/delta_lake/api_wrapper.py +0 -0
  166. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/tools/aws/delta_lake/schemas.py +0 -0
  167. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/tools/aws/delta_lake/tool.py +0 -0
  168. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/tools/azure_ai/__init__.py +0 -0
  169. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/tools/azure_ai/search/__init__.py +0 -0
  170. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/tools/azure_ai/search/api_wrapper.py +0 -0
  171. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/tools/base/__init__.py +0 -0
  172. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/tools/base/tool.py +0 -0
  173. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/tools/base_indexer_toolkit.py +0 -0
  174. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/tools/bitbucket/__init__.py +0 -0
  175. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/tools/bitbucket/api_wrapper.py +0 -0
  176. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/tools/bitbucket/bitbucket_constants.py +0 -0
  177. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/tools/bitbucket/cloud_api_wrapper.py +0 -0
  178. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/tools/browser/__init__.py +0 -0
  179. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/tools/browser/crawler.py +0 -0
  180. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/tools/browser/duck_duck_go_search.py +0 -0
  181. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/tools/browser/google_search_rag.py +0 -0
  182. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/tools/browser/utils.py +0 -0
  183. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/tools/browser/wiki.py +0 -0
  184. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/tools/carrier/__init__.py +0 -0
  185. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/tools/carrier/api_wrapper.py +0 -0
  186. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/tools/carrier/backend_reports_tool.py +0 -0
  187. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/tools/carrier/backend_tests_tool.py +0 -0
  188. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/tools/carrier/cancel_ui_test_tool.py +0 -0
  189. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/tools/carrier/carrier_sdk.py +0 -0
  190. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/tools/carrier/create_ui_excel_report_tool.py +0 -0
  191. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/tools/carrier/create_ui_test_tool.py +0 -0
  192. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/tools/carrier/excel_reporter.py +0 -0
  193. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/tools/carrier/lighthouse_excel_reporter.py +0 -0
  194. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/tools/carrier/run_ui_test_tool.py +0 -0
  195. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/tools/carrier/tickets_tool.py +0 -0
  196. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/tools/carrier/tools.py +0 -0
  197. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/tools/carrier/ui_reports_tool.py +0 -0
  198. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/tools/carrier/update_ui_test_schedule_tool.py +0 -0
  199. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/tools/carrier/utils.py +0 -0
  200. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/tools/chunkers/__init__.py +0 -0
  201. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/tools/chunkers/code/__init__.py +0 -0
  202. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/tools/chunkers/code/codeparser.py +0 -0
  203. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/tools/chunkers/code/constants.py +0 -0
  204. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/tools/chunkers/code/treesitter/__init__.py +0 -0
  205. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/tools/chunkers/code/treesitter/treesitter.py +0 -0
  206. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/tools/chunkers/code/treesitter/treesitter_c.py +0 -0
  207. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/tools/chunkers/code/treesitter/treesitter_cpp.py +0 -0
  208. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/tools/chunkers/code/treesitter/treesitter_cs.py +0 -0
  209. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/tools/chunkers/code/treesitter/treesitter_go.py +0 -0
  210. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/tools/chunkers/code/treesitter/treesitter_hs.py +0 -0
  211. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/tools/chunkers/code/treesitter/treesitter_java.py +0 -0
  212. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/tools/chunkers/code/treesitter/treesitter_js.py +0 -0
  213. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/tools/chunkers/code/treesitter/treesitter_kt.py +0 -0
  214. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/tools/chunkers/code/treesitter/treesitter_py.py +0 -0
  215. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/tools/chunkers/code/treesitter/treesitter_rb.py +0 -0
  216. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/tools/chunkers/code/treesitter/treesitter_registry.py +0 -0
  217. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/tools/chunkers/code/treesitter/treesitter_rs.py +0 -0
  218. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/tools/chunkers/code/treesitter/treesitter_ts.py +0 -0
  219. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/tools/chunkers/models.py +0 -0
  220. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/tools/chunkers/sematic/__init__.py +0 -0
  221. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/tools/chunkers/sematic/base.py +0 -0
  222. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/tools/chunkers/sematic/json_chunker.py +0 -0
  223. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/tools/chunkers/sematic/markdown_chunker.py +0 -0
  224. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/tools/chunkers/sematic/proposal_chunker.py +0 -0
  225. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/tools/chunkers/sematic/statistical_chunker.py +0 -0
  226. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/tools/chunkers/utils.py +0 -0
  227. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/tools/cloud/__init__.py +0 -0
  228. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/tools/cloud/aws/__init__.py +0 -0
  229. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/tools/cloud/aws/api_wrapper.py +0 -0
  230. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/tools/cloud/azure/__init__.py +0 -0
  231. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/tools/cloud/azure/api_wrapper.py +0 -0
  232. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/tools/cloud/gcp/__init__.py +0 -0
  233. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/tools/cloud/gcp/api_wrapper.py +0 -0
  234. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/tools/cloud/k8s/__init__.py +0 -0
  235. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/tools/cloud/k8s/api_wrapper.py +0 -0
  236. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/tools/code/__init__.py +0 -0
  237. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/tools/code/linter/__init__.py +0 -0
  238. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/tools/code/linter/api_wrapper.py +0 -0
  239. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/tools/code/loaders/codesearcher.py +0 -0
  240. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/tools/code/sonar/__init__.py +0 -0
  241. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/tools/code/sonar/api_wrapper.py +0 -0
  242. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/tools/code_indexer_toolkit.py +0 -0
  243. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/tools/confluence/__init__.py +0 -0
  244. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/tools/confluence/api_wrapper.py +0 -0
  245. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/tools/confluence/loader.py +0 -0
  246. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/tools/confluence/utils.py +0 -0
  247. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/tools/custom_open_api/__init__.py +0 -0
  248. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/tools/custom_open_api/api_wrapper.py +0 -0
  249. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/tools/elastic/__init__.py +0 -0
  250. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/tools/elastic/api_wrapper.py +0 -0
  251. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/tools/elitea_base.py +0 -0
  252. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/tools/figma/__init__.py +0 -0
  253. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/tools/figma/api_wrapper.py +0 -0
  254. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/tools/github/__init__.py +0 -0
  255. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/tools/github/api_wrapper.py +0 -0
  256. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/tools/github/github_client.py +0 -0
  257. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/tools/github/graphql_client_wrapper.py +0 -0
  258. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/tools/github/schemas.py +0 -0
  259. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/tools/github/tool.py +0 -0
  260. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/tools/github/tool_prompts.py +0 -0
  261. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/tools/gitlab/__init__.py +0 -0
  262. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/tools/gitlab/api_wrapper.py +0 -0
  263. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/tools/gitlab/tools.py +0 -0
  264. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/tools/gitlab/utils.py +0 -0
  265. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/tools/gitlab_org/__init__.py +0 -0
  266. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/tools/gitlab_org/api_wrapper.py +0 -0
  267. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/tools/gmail/__init__.py +0 -0
  268. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/tools/gmail/gmail_wrapper.py +0 -0
  269. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/tools/gmail/utils.py +0 -0
  270. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/tools/google/__init__.py +0 -0
  271. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/tools/google/bigquery/__init__.py +0 -0
  272. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/tools/google/bigquery/api_wrapper.py +0 -0
  273. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/tools/google/bigquery/schemas.py +0 -0
  274. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/tools/google/bigquery/tool.py +0 -0
  275. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/tools/google_places/__init__.py +0 -0
  276. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/tools/google_places/api_wrapper.py +0 -0
  277. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/tools/jira/__init__.py +0 -0
  278. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/tools/jira/api_wrapper.py +0 -0
  279. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/tools/keycloak/__init__.py +0 -0
  280. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/tools/keycloak/api_wrapper.py +0 -0
  281. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/tools/llm/__init__.py +0 -0
  282. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/tools/llm/img_utils.py +0 -0
  283. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/tools/llm/llm_utils.py +0 -0
  284. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/tools/localgit/__init__.py +0 -0
  285. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/tools/localgit/local_git.py +0 -0
  286. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/tools/localgit/tool.py +0 -0
  287. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/tools/memory/__init__.py +0 -0
  288. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/tools/non_code_indexer_toolkit.py +0 -0
  289. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/tools/ocr/__init__.py +0 -0
  290. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/tools/ocr/api_wrapper.py +0 -0
  291. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/tools/ocr/text_detection.py +0 -0
  292. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/tools/openapi/__init__.py +0 -0
  293. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/tools/pandas/__init__.py +0 -0
  294. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/tools/pandas/api_wrapper.py +0 -0
  295. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/tools/pandas/dataframe/__init__.py +0 -0
  296. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/tools/pandas/dataframe/errors.py +0 -0
  297. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/tools/pandas/dataframe/executor/__init__.py +0 -0
  298. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/tools/pandas/dataframe/executor/code_environment.py +0 -0
  299. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/tools/pandas/dataframe/executor/code_executor.py +0 -0
  300. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/tools/pandas/dataframe/generator/__init__.py +0 -0
  301. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/tools/pandas/dataframe/generator/base.py +0 -0
  302. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/tools/pandas/dataframe/generator/code_cleaning.py +0 -0
  303. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/tools/pandas/dataframe/generator/code_validator.py +0 -0
  304. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/tools/pandas/dataframe/prompts.py +0 -0
  305. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/tools/pandas/dataframe/serializer.py +0 -0
  306. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/tools/pandas/dataframe/utils.py +0 -0
  307. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/tools/pandas/statsmodels/__init__.py +0 -0
  308. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/tools/pandas/statsmodels/base_stats.py +0 -0
  309. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/tools/pandas/statsmodels/descriptive.py +0 -0
  310. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/tools/pandas/statsmodels/hypothesis_testing.py +0 -0
  311. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/tools/pandas/statsmodels/regression.py +0 -0
  312. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/tools/postman/__init__.py +0 -0
  313. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/tools/postman/api_wrapper.py +0 -0
  314. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/tools/postman/postman_analysis.py +0 -0
  315. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/tools/pptx/__init__.py +0 -0
  316. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/tools/pptx/pptx_wrapper.py +0 -0
  317. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/tools/qtest/__init__.py +0 -0
  318. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/tools/qtest/api_wrapper.py +0 -0
  319. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/tools/qtest/tool.py +0 -0
  320. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/tools/rally/__init__.py +0 -0
  321. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/tools/rally/api_wrapper.py +0 -0
  322. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/tools/report_portal/__init__.py +0 -0
  323. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/tools/report_portal/api_wrapper.py +0 -0
  324. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/tools/report_portal/report_portal_client.py +0 -0
  325. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/tools/salesforce/__init__.py +0 -0
  326. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/tools/salesforce/api_wrapper.py +0 -0
  327. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/tools/salesforce/model.py +0 -0
  328. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/tools/servicenow/__init__.py +0 -0
  329. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/tools/servicenow/api_wrapper.py +0 -0
  330. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/tools/servicenow/servicenow_client.py +0 -0
  331. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/tools/sharepoint/__init__.py +0 -0
  332. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/tools/sharepoint/api_wrapper.py +0 -0
  333. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/tools/sharepoint/authorization_helper.py +0 -0
  334. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/tools/sharepoint/utils.py +0 -0
  335. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/tools/slack/__init__.py +0 -0
  336. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/tools/slack/api_wrapper.py +0 -0
  337. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/tools/sql/__init__.py +0 -0
  338. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/tools/sql/api_wrapper.py +0 -0
  339. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/tools/sql/models.py +0 -0
  340. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/tools/testio/__init__.py +0 -0
  341. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/tools/testio/api_wrapper.py +0 -0
  342. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/tools/testrail/__init__.py +0 -0
  343. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/tools/testrail/api_wrapper.py +0 -0
  344. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/tools/utils/__init__.py +0 -0
  345. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/tools/utils/available_tools_decorator.py +0 -0
  346. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/tools/utils/content_parser.py +0 -0
  347. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/tools/vector_adapters/VectorStoreAdapter.py +0 -0
  348. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/tools/vector_adapters/__init__.py +0 -0
  349. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/tools/xray/__init__.py +0 -0
  350. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/tools/xray/api_wrapper.py +0 -0
  351. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/tools/yagmail/__init__.py +0 -0
  352. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/tools/yagmail/yagmail_wrapper.py +0 -0
  353. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/tools/zephyr/Zephyr.py +0 -0
  354. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/tools/zephyr/__init__.py +0 -0
  355. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/tools/zephyr/api_wrapper.py +0 -0
  356. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/tools/zephyr/rest_client.py +0 -0
  357. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/tools/zephyr_enterprise/__init__.py +0 -0
  358. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/tools/zephyr_enterprise/api_wrapper.py +0 -0
  359. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/tools/zephyr_enterprise/zephyr_enterprise.py +0 -0
  360. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/tools/zephyr_essential/__init__.py +0 -0
  361. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/tools/zephyr_essential/api_wrapper.py +0 -0
  362. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/tools/zephyr_essential/client.py +0 -0
  363. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/tools/zephyr_scale/__init__.py +0 -0
  364. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/tools/zephyr_scale/api_wrapper.py +0 -0
  365. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/tools/zephyr_squad/__init__.py +0 -0
  366. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/tools/zephyr_squad/api_wrapper.py +0 -0
  367. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk/tools/zephyr_squad/zephyr_squad_cloud_client.py +0 -0
  368. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk.egg-info/dependency_links.txt +0 -0
  369. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk.egg-info/requires.txt +0 -0
  370. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/alita_sdk.egg-info/top_level.txt +0 -0
  371. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/setup.cfg +0 -0
  372. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/tests/test_ado_analysis.py +0 -0
  373. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/tests/test_github_analysis.py +0 -0
  374. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/tests/test_gitlab_analysis.py +0 -0
  375. {alita_sdk-0.3.436 → alita_sdk-0.3.438}/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.436
3
+ Version: 0.3.438
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
@@ -7,12 +7,13 @@ 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
14
14
 
15
15
  from ..tools.mcp_server_tool import McpServerTool
16
+ from ..tools.mcp_remote_tool import McpRemoteTool
16
17
  from ..tools.mcp_inspect_tool import McpInspectTool
17
18
  from ...tools.utils import TOOLKIT_SPLITTER, clean_string
18
19
  from ..models.mcp_models import McpConnectionConfig
@@ -199,11 +200,10 @@ class McpToolkit(BaseToolkit):
199
200
  )
200
201
  ),
201
202
  timeout=(
202
- int,
203
+ Union[int, str], # TODO: remove one I will figure out why UI sends str
203
204
  Field(
204
- default=60,
205
- ge=1, le=300,
206
- description="Request timeout in seconds"
205
+ default=300,
206
+ description="Request timeout in seconds (1-3600)"
207
207
  )
208
208
  ),
209
209
  discovery_mode=(
@@ -217,11 +217,10 @@ class McpToolkit(BaseToolkit):
217
217
  )
218
218
  ),
219
219
  discovery_interval=(
220
- int,
220
+ Union[int, str],
221
221
  Field(
222
222
  default=300,
223
- ge=60, le=3600,
224
- description="Discovery interval in seconds (for periodic discovery)"
223
+ description="Discovery interval in seconds (60-3600, for periodic discovery)"
225
224
  )
226
225
  ),
227
226
  selected_tools=(
@@ -242,11 +241,10 @@ class McpToolkit(BaseToolkit):
242
241
  )
243
242
  ),
244
243
  cache_ttl=(
245
- int,
244
+ Union[int, str],
246
245
  Field(
247
246
  default=300,
248
- ge=60, le=3600,
249
- description="Cache TTL in seconds"
247
+ description="Cache TTL in seconds (60-3600)"
250
248
  )
251
249
  ),
252
250
  __config__=ConfigDict(
@@ -308,6 +306,11 @@ class McpToolkit(BaseToolkit):
308
306
  if not toolkit_name:
309
307
  raise ValueError("toolkit_name is required")
310
308
 
309
+ # Convert numeric parameters that may come as strings from UI
310
+ timeout = safe_int(timeout, 60)
311
+ discovery_interval = safe_int(discovery_interval, 300)
312
+ cache_ttl = safe_int(cache_ttl, 300)
313
+
311
314
  logger.info(f"Creating MCP toolkit: {toolkit_name}")
312
315
 
313
316
  # Parse headers if they're provided as a JSON string
@@ -391,6 +394,7 @@ class McpToolkit(BaseToolkit):
391
394
  server_tool = cls._create_tool_from_dict(
392
395
  tool_dict=tool_metadata,
393
396
  toolkit_name=toolkit_name,
397
+ connection_config=connection_config,
394
398
  timeout=timeout,
395
399
  client=client
396
400
  )
@@ -594,6 +598,7 @@ class McpToolkit(BaseToolkit):
594
598
  cls,
595
599
  tool_dict: Dict[str, Any],
596
600
  toolkit_name: str,
601
+ connection_config: McpConnectionConfig,
597
602
  timeout: int,
598
603
  client
599
604
  ) -> Optional[BaseTool]:
@@ -612,17 +617,27 @@ class McpToolkit(BaseToolkit):
612
617
  is_prompt = tool_dict.get("_mcp_type") == "prompt"
613
618
  item_type = "prompt" if is_prompt else "tool"
614
619
 
615
- return McpServerTool(
620
+ # Build description and ensure it doesn't exceed 1000 characters
621
+ description = f"MCP {item_type} '{tool_dict.get('name')}' from toolkit '{toolkit_name}': {tool_dict.get('description', '')}"
622
+ if len(description) > 1000:
623
+ description = description[:997] + "..."
624
+ logger.debug(f"Trimmed description for tool '{tool_dict.get('name')}' from {len(description)} to 1000 chars")
625
+
626
+ # Use McpRemoteTool for remote MCP servers (HTTP/SSE)
627
+ return McpRemoteTool(
616
628
  name=full_tool_name,
617
- description=f"MCP {item_type} '{tool_dict.get('name')}' from toolkit '{toolkit_name}': {tool_dict.get('description', '')}",
629
+ description=description,
618
630
  args_schema=McpServerTool.create_pydantic_model_from_schema(
619
631
  tool_dict.get("inputSchema", {})
620
632
  ),
621
633
  client=client,
622
634
  server=toolkit_name,
635
+ server_url=connection_config.url,
636
+ server_headers=connection_config.headers,
623
637
  tool_timeout_sec=timeout,
624
638
  is_prompt=is_prompt,
625
- prompt_name=tool_dict.get("_mcp_prompt_name") if is_prompt else None
639
+ prompt_name=tool_dict.get("_mcp_prompt_name") if is_prompt else None,
640
+ original_tool_name=tool_dict.get('name') # Store original name for MCP server invocation
626
641
  )
627
642
  except Exception as e:
628
643
  logger.error(f"Failed to create MCP tool '{tool_dict.get('name')}' from toolkit '{toolkit_name}': {e}")
@@ -714,9 +729,15 @@ class McpToolkit(BaseToolkit):
714
729
  # Optimize tool name to fit within 64 character limit
715
730
  full_tool_name = optimize_tool_name(clean_prefix, tool_metadata.name)
716
731
 
732
+ # Build description and ensure it doesn't exceed 1000 characters
733
+ description = f"MCP tool '{tool_metadata.name}' from server '{tool_metadata.server}': {tool_metadata.description}"
734
+ if len(description) > 1000:
735
+ description = description[:997] + "..."
736
+ logger.debug(f"Trimmed description for tool '{tool_metadata.name}' from {len(description)} to 1000 chars")
737
+
717
738
  return McpServerTool(
718
739
  name=full_tool_name,
719
- description=f"MCP tool '{tool_metadata.name}' from server '{tool_metadata.server}': {tool_metadata.description}",
740
+ description=description,
720
741
  args_schema=McpServerTool.create_pydantic_model_from_schema(tool_metadata.input_schema),
721
742
  client=client,
722
743
  server=tool_metadata.server,
@@ -745,9 +766,15 @@ class McpToolkit(BaseToolkit):
745
766
  # Optimize tool name to fit within 64 character limit
746
767
  full_tool_name = optimize_tool_name(clean_prefix, available_tool["name"])
747
768
 
769
+ # Build description and ensure it doesn't exceed 1000 characters
770
+ description = f"MCP tool '{available_tool['name']}' from toolkit '{toolkit_name}': {available_tool.get('description', '')}"
771
+ if len(description) > 1000:
772
+ description = description[:997] + "..."
773
+ logger.debug(f"Trimmed description for tool '{available_tool['name']}' from {len(description)} to 1000 chars")
774
+
748
775
  return McpServerTool(
749
776
  name=full_tool_name,
750
- description=f"MCP tool '{available_tool['name']}' from toolkit '{toolkit_name}': {available_tool.get('description', '')}",
777
+ description=description,
751
778
  args_schema=McpServerTool.create_pydantic_model_from_schema(
752
779
  available_tool.get("inputSchema", {})
753
780
  ),
@@ -0,0 +1,177 @@
1
+ """
2
+ MCP Remote Tool for direct HTTP/SSE invocation.
3
+ This tool is used for remote MCP servers accessed via HTTP/SSE.
4
+ """
5
+
6
+ import asyncio
7
+ import json
8
+ import logging
9
+ import time
10
+ import uuid
11
+ from concurrent.futures import ThreadPoolExecutor
12
+ from typing import Any, Dict, Optional
13
+
14
+ from .mcp_server_tool import McpServerTool
15
+ from pydantic import Field
16
+
17
+ logger = logging.getLogger(__name__)
18
+
19
+
20
+ class McpRemoteTool(McpServerTool):
21
+ """
22
+ Tool for invoking remote MCP server tools via HTTP/SSE.
23
+ Extends McpServerTool and overrides _run to use direct HTTP calls instead of client.mcp_tool_call.
24
+ """
25
+
26
+ # Remote MCP connection details
27
+ server_url: str = Field(..., description="URL of the remote MCP server")
28
+ server_headers: Optional[Dict[str, str]] = Field(default=None, description="HTTP headers for authentication")
29
+ original_tool_name: Optional[str] = Field(default=None, description="Original tool name from MCP server (before optimization)")
30
+ is_prompt: bool = False # Flag to indicate if this is a prompt tool
31
+ prompt_name: Optional[str] = None # Original prompt name if this is a prompt
32
+
33
+ def __getstate__(self):
34
+ """Custom serialization for pickle compatibility."""
35
+ state = super().__getstate__()
36
+ # Ensure headers are serializable
37
+ if 'server_headers' in state and state['server_headers'] is not None:
38
+ state['server_headers'] = dict(state['server_headers'])
39
+ return state
40
+
41
+ def _run(self, *args, **kwargs):
42
+ """
43
+ Execute the MCP tool via direct HTTP/SSE call to the remote server.
44
+ Overrides the parent method to avoid using client.mcp_tool_call.
45
+ """
46
+ try:
47
+ # Always create a new event loop for sync context
48
+ with ThreadPoolExecutor() as executor:
49
+ future = executor.submit(self._run_in_new_loop, kwargs)
50
+ return future.result(timeout=self.tool_timeout_sec)
51
+ except Exception as e:
52
+ logger.error(f"Error executing remote MCP tool '{self.name}': {e}")
53
+ return f"Error executing tool: {e}"
54
+
55
+ def _run_in_new_loop(self, kwargs: Dict[str, Any]) -> str:
56
+ """Run the async tool invocation in a new event loop."""
57
+ return asyncio.run(self._execute_remote_tool(kwargs))
58
+
59
+ async def _execute_remote_tool(self, kwargs: Dict[str, Any]) -> str:
60
+ """Execute the actual remote MCP tool call."""
61
+ import aiohttp
62
+ from ...tools.utils import TOOLKIT_SPLITTER
63
+
64
+ # Use the original tool name from discovery for MCP server invocation
65
+ # The MCP server doesn't know about our optimized names
66
+ tool_name_for_server = self.original_tool_name
67
+
68
+ # Fallback: extract from optimized name if original not stored (backwards compatibility)
69
+ if not tool_name_for_server:
70
+ tool_name_for_server = self.name.rsplit(TOOLKIT_SPLITTER, 1)[-1] if TOOLKIT_SPLITTER in self.name else self.name
71
+ logger.warning(f"original_tool_name not set for '{self.name}', using extracted name: {tool_name_for_server}")
72
+
73
+ # Build the MCP request based on whether this is a prompt or tool
74
+ if self.is_prompt:
75
+ # For prompts, use prompts/get endpoint
76
+ mcp_request = {
77
+ "jsonrpc": "2.0",
78
+ "id": f"prompt_get_{int(time.time())}_{uuid.uuid4().hex[:8]}",
79
+ "method": "prompts/get",
80
+ "params": {
81
+ "name": self.prompt_name or tool_name_for_server.replace("prompt_", ""),
82
+ "arguments": kwargs.get("arguments", kwargs)
83
+ }
84
+ }
85
+ else:
86
+ # For regular tools, use tools/call endpoint
87
+ mcp_request = {
88
+ "jsonrpc": "2.0",
89
+ "id": f"tool_call_{int(time.time())}_{uuid.uuid4().hex[:8]}",
90
+ "method": "tools/call",
91
+ "params": {
92
+ "name": tool_name_for_server,
93
+ "arguments": kwargs
94
+ }
95
+ }
96
+
97
+ # Set up headers
98
+ headers = {
99
+ "Content-Type": "application/json",
100
+ "Accept": "application/json, text/event-stream"
101
+ }
102
+ if self.server_headers:
103
+ headers.update(self.server_headers)
104
+
105
+ # Execute the HTTP request
106
+ timeout = aiohttp.ClientTimeout(total=self.tool_timeout_sec)
107
+ async with aiohttp.ClientSession(timeout=timeout) as session:
108
+ try:
109
+ logger.debug(f"Calling remote MCP tool '{tool_name_for_server}' (optimized name: '{self.name}') at {self.server_url}")
110
+ logger.debug(f"Request: {json.dumps(mcp_request, indent=2)}")
111
+
112
+ async with session.post(self.server_url, json=mcp_request, headers=headers) as response:
113
+ if response.status != 200:
114
+ error_text = await response.text()
115
+ raise Exception(f"HTTP {response.status}: {error_text}")
116
+
117
+ # Handle both JSON and SSE responses
118
+ content_type = response.headers.get('Content-Type', '')
119
+ if 'text/event-stream' in content_type:
120
+ # Parse SSE format
121
+ text = await response.text()
122
+ data = self._parse_sse(text)
123
+ else:
124
+ # Parse regular JSON
125
+ data = await response.json()
126
+
127
+ logger.debug(f"Response: {json.dumps(data, indent=2)}")
128
+
129
+ # Check for MCP error
130
+ if "error" in data:
131
+ error = data["error"]
132
+ error_msg = error.get("message", str(error))
133
+ raise Exception(f"MCP Error: {error_msg}")
134
+
135
+ # Extract result
136
+ result = data.get("result", {})
137
+
138
+ # Format the result based on content type
139
+ if isinstance(result, dict):
140
+ # Check for content array (common in MCP responses)
141
+ if "content" in result:
142
+ content_items = result["content"]
143
+ if isinstance(content_items, list):
144
+ # Extract text from content items
145
+ text_parts = []
146
+ for item in content_items:
147
+ if isinstance(item, dict):
148
+ if item.get("type") == "text" and "text" in item:
149
+ text_parts.append(item["text"])
150
+ elif "text" in item:
151
+ text_parts.append(item["text"])
152
+ else:
153
+ text_parts.append(json.dumps(item))
154
+ else:
155
+ text_parts.append(str(item))
156
+ return "\n".join(text_parts)
157
+
158
+ # Return formatted JSON if no content field
159
+ return json.dumps(result, indent=2)
160
+
161
+ # Return as string for other types
162
+ return str(result)
163
+
164
+ except asyncio.TimeoutError:
165
+ raise Exception(f"Tool execution timed out after {self.tool_timeout_sec}s")
166
+ except Exception as e:
167
+ logger.error(f"Error calling remote MCP tool '{tool_name_for_server}': {e}", exc_info=True)
168
+ raise
169
+
170
+ def _parse_sse(self, text: str) -> Dict[str, Any]:
171
+ """Parse Server-Sent Events (SSE) format response."""
172
+ for line in text.split('\n'):
173
+ line = line.strip()
174
+ if line.startswith('data:'):
175
+ json_str = line[5:].strip()
176
+ return json.loads(json_str)
177
+ raise ValueError("No data found in SSE response")
@@ -15,63 +15,12 @@ class McpServerTool(BaseTool):
15
15
  description: str
16
16
  args_schema: Optional[Type[BaseModel]] = None
17
17
  return_type: str = "str"
18
- client: Any = Field(default=None, exclude=True) # Exclude from serialization
18
+ client: Any
19
19
  server: str
20
20
  tool_timeout_sec: int = 60
21
- is_prompt: bool = False # Flag to indicate if this is a prompt tool
22
- prompt_name: Optional[str] = None # Original prompt name if this is a prompt
23
21
 
24
22
  model_config = ConfigDict(arbitrary_types_allowed=True)
25
23
 
26
- def __getstate__(self):
27
- """Custom serialization to exclude non-serializable objects."""
28
- state = self.__dict__.copy()
29
- # Remove the client since it contains threading objects that can't be pickled
30
- state['client'] = None
31
- # Store args_schema as a schema dict instead of the dynamic class
32
- if hasattr(self, 'args_schema') and self.args_schema is not None:
33
- # Convert the Pydantic model back to schema dict for pickling
34
- try:
35
- state['_args_schema_dict'] = self.args_schema.model_json_schema()
36
- state['args_schema'] = None
37
- except Exception as e:
38
- logger.warning(f"Failed to serialize args_schema: {e}")
39
- # If conversion fails, just remove it
40
- state['args_schema'] = None
41
- state['_args_schema_dict'] = {}
42
- return state
43
-
44
- def __setstate__(self, state):
45
- """Custom deserialization to handle missing objects."""
46
- # Restore the args_schema from the stored schema dict
47
- args_schema_dict = state.pop('_args_schema_dict', {})
48
-
49
- # Initialize required Pydantic internal attributes
50
- if '__pydantic_fields_set__' not in state:
51
- state['__pydantic_fields_set__'] = set(state.keys())
52
- if '__pydantic_extra__' not in state:
53
- state['__pydantic_extra__'] = None
54
- if '__pydantic_private__' not in state:
55
- state['__pydantic_private__'] = None
56
-
57
- # Directly update the object's __dict__ to bypass Pydantic validation
58
- self.__dict__.update(state)
59
-
60
- # Recreate the args_schema from the stored dict if available
61
- if args_schema_dict:
62
- try:
63
- recreated_schema = self.create_pydantic_model_from_schema(args_schema_dict)
64
- self.__dict__['args_schema'] = recreated_schema
65
- except Exception as e:
66
- logger.warning(f"Failed to recreate args_schema: {e}")
67
- self.__dict__['args_schema'] = None
68
- else:
69
- self.__dict__['args_schema'] = None
70
-
71
- # Note: client will be None after unpickling
72
- # The toolkit should reinitialize the client when needed
73
-
74
-
75
24
  @staticmethod
76
25
  def create_pydantic_model_from_schema(schema: dict, model_name: str = "ArgsSchema"):
77
26
  def parse_type(field: dict, name: str = "Field") -> Any:
@@ -143,30 +92,14 @@ class McpServerTool(BaseTool):
143
92
 
144
93
  def _run(self, *args, **kwargs):
145
94
  # Extract the actual tool/prompt name (remove toolkit prefix)
146
- actual_name = self.name.rsplit(TOOLKIT_SPLITTER)[1] if TOOLKIT_SPLITTER in self.name else self.name
147
-
148
- if self.is_prompt:
149
- # For prompts, use prompts/get endpoint
150
- call_data = {
151
- "server": self.server,
152
- "tool_timeout_sec": self.tool_timeout_sec,
153
- "tool_call_id": str(uuid.uuid4()),
154
- "method": "prompts/get",
155
- "params": {
156
- "name": self.prompt_name or actual_name.replace("prompt_", ""),
157
- "arguments": kwargs.get("arguments", kwargs)
158
- }
159
- }
160
- else:
161
- # For regular tools, use tools/call endpoint
162
- call_data = {
163
- "server": self.server,
164
- "tool_timeout_sec": self.tool_timeout_sec,
165
- "tool_call_id": str(uuid.uuid4()),
166
- "params": {
167
- "name": actual_name,
168
- "arguments": kwargs
169
- }
95
+ call_data = {
96
+ "server": self.server,
97
+ "tool_timeout_sec": self.tool_timeout_sec,
98
+ "tool_call_id": str(uuid.uuid4()),
99
+ "params": {
100
+ "name": self.name.rsplit(TOOLKIT_SPLITTER)[1] if TOOLKIT_SPLITTER in self.name else self.name,
101
+ "arguments": kwargs
170
102
  }
103
+ }
171
104
 
172
105
  return self.client.mcp_tool_call(call_data)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: alita_sdk
3
- Version: 0.3.436
3
+ Version: 0.3.438
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
@@ -130,6 +130,7 @@ alita_sdk/runtime/tools/llm.py
130
130
  alita_sdk/runtime/tools/loop.py
131
131
  alita_sdk/runtime/tools/loop_output.py
132
132
  alita_sdk/runtime/tools/mcp_inspect_tool.py
133
+ alita_sdk/runtime/tools/mcp_remote_tool.py
133
134
  alita_sdk/runtime/tools/mcp_server_tool.py
134
135
  alita_sdk/runtime/tools/pgvector_search.py
135
136
  alita_sdk/runtime/tools/prompt.py
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "alita_sdk"
7
- version = "0.3.436"
7
+ version = "0.3.438"
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