alita-sdk 0.3.444__tar.gz → 0.3.446__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (376) hide show
  1. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/PKG-INFO +1 -1
  2. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/runtime/models/mcp_models.py +4 -0
  3. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/runtime/toolkits/mcp.py +138 -11
  4. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/runtime/toolkits/tools.py +32 -4
  5. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/runtime/tools/mcp_remote_tool.py +94 -13
  6. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk.egg-info/PKG-INFO +1 -1
  7. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/pyproject.toml +1 -1
  8. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/LICENSE +0 -0
  9. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/README.md +0 -0
  10. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/__init__.py +0 -0
  11. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/community/__init__.py +0 -0
  12. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/community/utils.py +0 -0
  13. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/configurations/__init__.py +0 -0
  14. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/configurations/ado.py +0 -0
  15. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/configurations/azure_search.py +0 -0
  16. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/configurations/bigquery.py +0 -0
  17. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/configurations/bitbucket.py +0 -0
  18. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/configurations/browser.py +0 -0
  19. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/configurations/carrier.py +0 -0
  20. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/configurations/confluence.py +0 -0
  21. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/configurations/delta_lake.py +0 -0
  22. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/configurations/embedding.py +0 -0
  23. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/configurations/figma.py +0 -0
  24. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/configurations/github.py +0 -0
  25. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/configurations/gitlab.py +0 -0
  26. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/configurations/google_places.py +0 -0
  27. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/configurations/jira.py +0 -0
  28. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/configurations/pgvector.py +0 -0
  29. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/configurations/postman.py +0 -0
  30. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/configurations/qtest.py +0 -0
  31. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/configurations/rally.py +0 -0
  32. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/configurations/report_portal.py +0 -0
  33. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/configurations/salesforce.py +0 -0
  34. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/configurations/service_now.py +0 -0
  35. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/configurations/sharepoint.py +0 -0
  36. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/configurations/slack.py +0 -0
  37. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/configurations/sonar.py +0 -0
  38. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/configurations/sql.py +0 -0
  39. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/configurations/testio.py +0 -0
  40. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/configurations/testrail.py +0 -0
  41. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/configurations/xray.py +0 -0
  42. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/configurations/zephyr.py +0 -0
  43. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/configurations/zephyr_enterprise.py +0 -0
  44. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/configurations/zephyr_essential.py +0 -0
  45. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/runtime/__init__.py +0 -0
  46. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/runtime/clients/__init__.py +0 -0
  47. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/runtime/clients/artifact.py +0 -0
  48. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/runtime/clients/client.py +0 -0
  49. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/runtime/clients/datasource.py +0 -0
  50. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/runtime/clients/mcp_discovery.py +0 -0
  51. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/runtime/clients/mcp_manager.py +0 -0
  52. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/runtime/clients/prompt.py +0 -0
  53. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/runtime/clients/sandbox_client.py +0 -0
  54. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/runtime/langchain/__init__.py +0 -0
  55. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/runtime/langchain/agents/__init__.py +0 -0
  56. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/runtime/langchain/agents/xml_chat.py +0 -0
  57. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/runtime/langchain/assistant.py +0 -0
  58. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/runtime/langchain/chat_message_template.py +0 -0
  59. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/runtime/langchain/constants.py +0 -0
  60. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/runtime/langchain/document_loaders/AlitaBDDScenariosLoader.py +0 -0
  61. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/runtime/langchain/document_loaders/AlitaCSVLoader.py +0 -0
  62. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/runtime/langchain/document_loaders/AlitaConfluenceLoader.py +0 -0
  63. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/runtime/langchain/document_loaders/AlitaDirectoryLoader.py +0 -0
  64. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/runtime/langchain/document_loaders/AlitaDocxMammothLoader.py +0 -0
  65. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/runtime/langchain/document_loaders/AlitaExcelLoader.py +0 -0
  66. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/runtime/langchain/document_loaders/AlitaGitRepoLoader.py +0 -0
  67. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/runtime/langchain/document_loaders/AlitaImageLoader.py +0 -0
  68. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/runtime/langchain/document_loaders/AlitaJSONLoader.py +0 -0
  69. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/runtime/langchain/document_loaders/AlitaJiraLoader.py +0 -0
  70. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/runtime/langchain/document_loaders/AlitaMarkdownLoader.py +0 -0
  71. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/runtime/langchain/document_loaders/AlitaPDFLoader.py +0 -0
  72. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/runtime/langchain/document_loaders/AlitaPowerPointLoader.py +0 -0
  73. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/runtime/langchain/document_loaders/AlitaPythonLoader.py +0 -0
  74. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/runtime/langchain/document_loaders/AlitaQtestLoader.py +0 -0
  75. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/runtime/langchain/document_loaders/AlitaTableLoader.py +0 -0
  76. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/runtime/langchain/document_loaders/AlitaTextLoader.py +0 -0
  77. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/runtime/langchain/document_loaders/ImageParser.py +0 -0
  78. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/runtime/langchain/document_loaders/__init__.py +0 -0
  79. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/runtime/langchain/document_loaders/constants.py +0 -0
  80. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/runtime/langchain/document_loaders/utils.py +0 -0
  81. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/runtime/langchain/indexer.py +0 -0
  82. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/runtime/langchain/interfaces/__init__.py +0 -0
  83. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/runtime/langchain/interfaces/kwextractor.py +0 -0
  84. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/runtime/langchain/interfaces/llm_processor.py +0 -0
  85. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/runtime/langchain/interfaces/loaders.py +0 -0
  86. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/runtime/langchain/interfaces/splitters.py +0 -0
  87. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/runtime/langchain/langraph_agent.py +0 -0
  88. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/runtime/langchain/mixedAgentParser.py +0 -0
  89. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/runtime/langchain/mixedAgentRenderes.py +0 -0
  90. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/runtime/langchain/retrievers/AlitaRetriever.py +0 -0
  91. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/runtime/langchain/retrievers/VectorstoreRetriever.py +0 -0
  92. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/runtime/langchain/retrievers/__init__.py +0 -0
  93. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/runtime/langchain/store_manager.py +0 -0
  94. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/runtime/langchain/tools/__init__.py +0 -0
  95. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/runtime/langchain/tools/bdd_parser/__init__.py +0 -0
  96. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/runtime/langchain/tools/bdd_parser/bdd_exceptions.py +0 -0
  97. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/runtime/langchain/tools/bdd_parser/bdd_parser.py +0 -0
  98. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/runtime/langchain/tools/bdd_parser/feature_types.py +0 -0
  99. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/runtime/langchain/tools/bdd_parser/parser.py +0 -0
  100. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/runtime/langchain/tools/git.py +0 -0
  101. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/runtime/langchain/tools/log.py +0 -0
  102. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/runtime/langchain/tools/quota.py +0 -0
  103. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/runtime/langchain/tools/state.py +0 -0
  104. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/runtime/langchain/tools/utils.py +0 -0
  105. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/runtime/langchain/tools/vector.py +0 -0
  106. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/runtime/langchain/utils.py +0 -0
  107. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/runtime/llms/__init__.py +0 -0
  108. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/runtime/llms/preloaded.py +0 -0
  109. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/runtime/toolkits/__init__.py +0 -0
  110. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/runtime/toolkits/application.py +0 -0
  111. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/runtime/toolkits/artifact.py +0 -0
  112. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/runtime/toolkits/configurations.py +0 -0
  113. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/runtime/toolkits/datasource.py +0 -0
  114. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/runtime/toolkits/prompt.py +0 -0
  115. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/runtime/toolkits/subgraph.py +0 -0
  116. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/runtime/toolkits/vectorstore.py +0 -0
  117. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/runtime/tools/__init__.py +0 -0
  118. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/runtime/tools/agent.py +0 -0
  119. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/runtime/tools/application.py +0 -0
  120. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/runtime/tools/artifact.py +0 -0
  121. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/runtime/tools/datasource.py +0 -0
  122. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/runtime/tools/echo.py +0 -0
  123. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/runtime/tools/function.py +0 -0
  124. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/runtime/tools/graph.py +0 -0
  125. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/runtime/tools/image_generation.py +0 -0
  126. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/runtime/tools/indexer_tool.py +0 -0
  127. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/runtime/tools/llm.py +0 -0
  128. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/runtime/tools/loop.py +0 -0
  129. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/runtime/tools/loop_output.py +0 -0
  130. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/runtime/tools/mcp_inspect_tool.py +0 -0
  131. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/runtime/tools/mcp_server_tool.py +0 -0
  132. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/runtime/tools/pgvector_search.py +0 -0
  133. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/runtime/tools/prompt.py +0 -0
  134. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/runtime/tools/router.py +0 -0
  135. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/runtime/tools/sandbox.py +0 -0
  136. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/runtime/tools/tool.py +0 -0
  137. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/runtime/tools/vectorstore.py +0 -0
  138. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/runtime/tools/vectorstore_base.py +0 -0
  139. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/runtime/utils/AlitaCallback.py +0 -0
  140. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/runtime/utils/__init__.py +0 -0
  141. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/runtime/utils/constants.py +0 -0
  142. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/runtime/utils/evaluate.py +0 -0
  143. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/runtime/utils/logging.py +0 -0
  144. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/runtime/utils/mcp_oauth.py +0 -0
  145. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/runtime/utils/save_dataframe.py +0 -0
  146. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/runtime/utils/streamlit.py +0 -0
  147. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/runtime/utils/toolkit_runtime.py +0 -0
  148. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/runtime/utils/toolkit_utils.py +0 -0
  149. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/runtime/utils/utils.py +0 -0
  150. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/tools/__init__.py +0 -0
  151. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/tools/ado/__init__.py +0 -0
  152. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/tools/ado/repos/__init__.py +0 -0
  153. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/tools/ado/repos/repos_wrapper.py +0 -0
  154. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/tools/ado/test_plan/__init__.py +0 -0
  155. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/tools/ado/test_plan/test_plan_wrapper.py +0 -0
  156. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/tools/ado/utils.py +0 -0
  157. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/tools/ado/wiki/__init__.py +0 -0
  158. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/tools/ado/wiki/ado_wrapper.py +0 -0
  159. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/tools/ado/work_item/__init__.py +0 -0
  160. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/tools/ado/work_item/ado_wrapper.py +0 -0
  161. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/tools/advanced_jira_mining/__init__.py +0 -0
  162. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/tools/advanced_jira_mining/data_mining_wrapper.py +0 -0
  163. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/tools/aws/__init__.py +0 -0
  164. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/tools/aws/delta_lake/__init__.py +0 -0
  165. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/tools/aws/delta_lake/api_wrapper.py +0 -0
  166. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/tools/aws/delta_lake/schemas.py +0 -0
  167. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/tools/aws/delta_lake/tool.py +0 -0
  168. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/tools/azure_ai/__init__.py +0 -0
  169. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/tools/azure_ai/search/__init__.py +0 -0
  170. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/tools/azure_ai/search/api_wrapper.py +0 -0
  171. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/tools/base/__init__.py +0 -0
  172. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/tools/base/tool.py +0 -0
  173. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/tools/base_indexer_toolkit.py +0 -0
  174. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/tools/bitbucket/__init__.py +0 -0
  175. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/tools/bitbucket/api_wrapper.py +0 -0
  176. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/tools/bitbucket/bitbucket_constants.py +0 -0
  177. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/tools/bitbucket/cloud_api_wrapper.py +0 -0
  178. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/tools/browser/__init__.py +0 -0
  179. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/tools/browser/crawler.py +0 -0
  180. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/tools/browser/duck_duck_go_search.py +0 -0
  181. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/tools/browser/google_search_rag.py +0 -0
  182. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/tools/browser/utils.py +0 -0
  183. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/tools/browser/wiki.py +0 -0
  184. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/tools/carrier/__init__.py +0 -0
  185. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/tools/carrier/api_wrapper.py +0 -0
  186. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/tools/carrier/backend_reports_tool.py +0 -0
  187. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/tools/carrier/backend_tests_tool.py +0 -0
  188. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/tools/carrier/cancel_ui_test_tool.py +0 -0
  189. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/tools/carrier/carrier_sdk.py +0 -0
  190. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/tools/carrier/create_ui_excel_report_tool.py +0 -0
  191. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/tools/carrier/create_ui_test_tool.py +0 -0
  192. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/tools/carrier/excel_reporter.py +0 -0
  193. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/tools/carrier/lighthouse_excel_reporter.py +0 -0
  194. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/tools/carrier/run_ui_test_tool.py +0 -0
  195. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/tools/carrier/tickets_tool.py +0 -0
  196. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/tools/carrier/tools.py +0 -0
  197. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/tools/carrier/ui_reports_tool.py +0 -0
  198. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/tools/carrier/update_ui_test_schedule_tool.py +0 -0
  199. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/tools/carrier/utils.py +0 -0
  200. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/tools/chunkers/__init__.py +0 -0
  201. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/tools/chunkers/code/__init__.py +0 -0
  202. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/tools/chunkers/code/codeparser.py +0 -0
  203. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/tools/chunkers/code/constants.py +0 -0
  204. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/tools/chunkers/code/treesitter/__init__.py +0 -0
  205. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/tools/chunkers/code/treesitter/treesitter.py +0 -0
  206. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/tools/chunkers/code/treesitter/treesitter_c.py +0 -0
  207. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/tools/chunkers/code/treesitter/treesitter_cpp.py +0 -0
  208. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/tools/chunkers/code/treesitter/treesitter_cs.py +0 -0
  209. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/tools/chunkers/code/treesitter/treesitter_go.py +0 -0
  210. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/tools/chunkers/code/treesitter/treesitter_hs.py +0 -0
  211. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/tools/chunkers/code/treesitter/treesitter_java.py +0 -0
  212. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/tools/chunkers/code/treesitter/treesitter_js.py +0 -0
  213. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/tools/chunkers/code/treesitter/treesitter_kt.py +0 -0
  214. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/tools/chunkers/code/treesitter/treesitter_py.py +0 -0
  215. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/tools/chunkers/code/treesitter/treesitter_rb.py +0 -0
  216. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/tools/chunkers/code/treesitter/treesitter_registry.py +0 -0
  217. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/tools/chunkers/code/treesitter/treesitter_rs.py +0 -0
  218. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/tools/chunkers/code/treesitter/treesitter_ts.py +0 -0
  219. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/tools/chunkers/models.py +0 -0
  220. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/tools/chunkers/sematic/__init__.py +0 -0
  221. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/tools/chunkers/sematic/base.py +0 -0
  222. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/tools/chunkers/sematic/json_chunker.py +0 -0
  223. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/tools/chunkers/sematic/markdown_chunker.py +0 -0
  224. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/tools/chunkers/sematic/proposal_chunker.py +0 -0
  225. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/tools/chunkers/sematic/statistical_chunker.py +0 -0
  226. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/tools/chunkers/utils.py +0 -0
  227. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/tools/cloud/__init__.py +0 -0
  228. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/tools/cloud/aws/__init__.py +0 -0
  229. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/tools/cloud/aws/api_wrapper.py +0 -0
  230. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/tools/cloud/azure/__init__.py +0 -0
  231. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/tools/cloud/azure/api_wrapper.py +0 -0
  232. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/tools/cloud/gcp/__init__.py +0 -0
  233. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/tools/cloud/gcp/api_wrapper.py +0 -0
  234. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/tools/cloud/k8s/__init__.py +0 -0
  235. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/tools/cloud/k8s/api_wrapper.py +0 -0
  236. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/tools/code/__init__.py +0 -0
  237. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/tools/code/linter/__init__.py +0 -0
  238. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/tools/code/linter/api_wrapper.py +0 -0
  239. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/tools/code/loaders/codesearcher.py +0 -0
  240. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/tools/code/sonar/__init__.py +0 -0
  241. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/tools/code/sonar/api_wrapper.py +0 -0
  242. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/tools/code_indexer_toolkit.py +0 -0
  243. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/tools/confluence/__init__.py +0 -0
  244. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/tools/confluence/api_wrapper.py +0 -0
  245. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/tools/confluence/loader.py +0 -0
  246. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/tools/confluence/utils.py +0 -0
  247. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/tools/custom_open_api/__init__.py +0 -0
  248. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/tools/custom_open_api/api_wrapper.py +0 -0
  249. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/tools/elastic/__init__.py +0 -0
  250. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/tools/elastic/api_wrapper.py +0 -0
  251. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/tools/elitea_base.py +0 -0
  252. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/tools/figma/__init__.py +0 -0
  253. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/tools/figma/api_wrapper.py +0 -0
  254. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/tools/github/__init__.py +0 -0
  255. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/tools/github/api_wrapper.py +0 -0
  256. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/tools/github/github_client.py +0 -0
  257. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/tools/github/graphql_client_wrapper.py +0 -0
  258. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/tools/github/schemas.py +0 -0
  259. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/tools/github/tool.py +0 -0
  260. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/tools/github/tool_prompts.py +0 -0
  261. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/tools/gitlab/__init__.py +0 -0
  262. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/tools/gitlab/api_wrapper.py +0 -0
  263. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/tools/gitlab/tools.py +0 -0
  264. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/tools/gitlab/utils.py +0 -0
  265. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/tools/gitlab_org/__init__.py +0 -0
  266. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/tools/gitlab_org/api_wrapper.py +0 -0
  267. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/tools/gmail/__init__.py +0 -0
  268. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/tools/gmail/gmail_wrapper.py +0 -0
  269. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/tools/gmail/utils.py +0 -0
  270. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/tools/google/__init__.py +0 -0
  271. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/tools/google/bigquery/__init__.py +0 -0
  272. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/tools/google/bigquery/api_wrapper.py +0 -0
  273. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/tools/google/bigquery/schemas.py +0 -0
  274. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/tools/google/bigquery/tool.py +0 -0
  275. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/tools/google_places/__init__.py +0 -0
  276. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/tools/google_places/api_wrapper.py +0 -0
  277. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/tools/jira/__init__.py +0 -0
  278. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/tools/jira/api_wrapper.py +0 -0
  279. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/tools/keycloak/__init__.py +0 -0
  280. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/tools/keycloak/api_wrapper.py +0 -0
  281. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/tools/llm/__init__.py +0 -0
  282. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/tools/llm/img_utils.py +0 -0
  283. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/tools/llm/llm_utils.py +0 -0
  284. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/tools/localgit/__init__.py +0 -0
  285. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/tools/localgit/local_git.py +0 -0
  286. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/tools/localgit/tool.py +0 -0
  287. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/tools/memory/__init__.py +0 -0
  288. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/tools/non_code_indexer_toolkit.py +0 -0
  289. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/tools/ocr/__init__.py +0 -0
  290. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/tools/ocr/api_wrapper.py +0 -0
  291. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/tools/ocr/text_detection.py +0 -0
  292. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/tools/openapi/__init__.py +0 -0
  293. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/tools/pandas/__init__.py +0 -0
  294. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/tools/pandas/api_wrapper.py +0 -0
  295. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/tools/pandas/dataframe/__init__.py +0 -0
  296. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/tools/pandas/dataframe/errors.py +0 -0
  297. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/tools/pandas/dataframe/executor/__init__.py +0 -0
  298. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/tools/pandas/dataframe/executor/code_environment.py +0 -0
  299. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/tools/pandas/dataframe/executor/code_executor.py +0 -0
  300. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/tools/pandas/dataframe/generator/__init__.py +0 -0
  301. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/tools/pandas/dataframe/generator/base.py +0 -0
  302. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/tools/pandas/dataframe/generator/code_cleaning.py +0 -0
  303. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/tools/pandas/dataframe/generator/code_validator.py +0 -0
  304. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/tools/pandas/dataframe/prompts.py +0 -0
  305. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/tools/pandas/dataframe/serializer.py +0 -0
  306. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/tools/pandas/dataframe/utils.py +0 -0
  307. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/tools/pandas/statsmodels/__init__.py +0 -0
  308. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/tools/pandas/statsmodels/base_stats.py +0 -0
  309. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/tools/pandas/statsmodels/descriptive.py +0 -0
  310. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/tools/pandas/statsmodels/hypothesis_testing.py +0 -0
  311. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/tools/pandas/statsmodels/regression.py +0 -0
  312. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/tools/postman/__init__.py +0 -0
  313. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/tools/postman/api_wrapper.py +0 -0
  314. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/tools/postman/postman_analysis.py +0 -0
  315. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/tools/pptx/__init__.py +0 -0
  316. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/tools/pptx/pptx_wrapper.py +0 -0
  317. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/tools/qtest/__init__.py +0 -0
  318. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/tools/qtest/api_wrapper.py +0 -0
  319. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/tools/qtest/tool.py +0 -0
  320. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/tools/rally/__init__.py +0 -0
  321. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/tools/rally/api_wrapper.py +0 -0
  322. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/tools/report_portal/__init__.py +0 -0
  323. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/tools/report_portal/api_wrapper.py +0 -0
  324. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/tools/report_portal/report_portal_client.py +0 -0
  325. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/tools/salesforce/__init__.py +0 -0
  326. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/tools/salesforce/api_wrapper.py +0 -0
  327. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/tools/salesforce/model.py +0 -0
  328. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/tools/servicenow/__init__.py +0 -0
  329. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/tools/servicenow/api_wrapper.py +0 -0
  330. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/tools/servicenow/servicenow_client.py +0 -0
  331. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/tools/sharepoint/__init__.py +0 -0
  332. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/tools/sharepoint/api_wrapper.py +0 -0
  333. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/tools/sharepoint/authorization_helper.py +0 -0
  334. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/tools/sharepoint/utils.py +0 -0
  335. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/tools/slack/__init__.py +0 -0
  336. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/tools/slack/api_wrapper.py +0 -0
  337. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/tools/sql/__init__.py +0 -0
  338. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/tools/sql/api_wrapper.py +0 -0
  339. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/tools/sql/models.py +0 -0
  340. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/tools/testio/__init__.py +0 -0
  341. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/tools/testio/api_wrapper.py +0 -0
  342. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/tools/testrail/__init__.py +0 -0
  343. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/tools/testrail/api_wrapper.py +0 -0
  344. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/tools/utils/__init__.py +0 -0
  345. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/tools/utils/available_tools_decorator.py +0 -0
  346. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/tools/utils/content_parser.py +0 -0
  347. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/tools/vector_adapters/VectorStoreAdapter.py +0 -0
  348. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/tools/vector_adapters/__init__.py +0 -0
  349. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/tools/xray/__init__.py +0 -0
  350. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/tools/xray/api_wrapper.py +0 -0
  351. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/tools/yagmail/__init__.py +0 -0
  352. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/tools/yagmail/yagmail_wrapper.py +0 -0
  353. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/tools/zephyr/Zephyr.py +0 -0
  354. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/tools/zephyr/__init__.py +0 -0
  355. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/tools/zephyr/api_wrapper.py +0 -0
  356. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/tools/zephyr/rest_client.py +0 -0
  357. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/tools/zephyr_enterprise/__init__.py +0 -0
  358. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/tools/zephyr_enterprise/api_wrapper.py +0 -0
  359. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/tools/zephyr_enterprise/zephyr_enterprise.py +0 -0
  360. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/tools/zephyr_essential/__init__.py +0 -0
  361. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/tools/zephyr_essential/api_wrapper.py +0 -0
  362. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/tools/zephyr_essential/client.py +0 -0
  363. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/tools/zephyr_scale/__init__.py +0 -0
  364. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/tools/zephyr_scale/api_wrapper.py +0 -0
  365. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/tools/zephyr_squad/__init__.py +0 -0
  366. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/tools/zephyr_squad/api_wrapper.py +0 -0
  367. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk/tools/zephyr_squad/zephyr_squad_cloud_client.py +0 -0
  368. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk.egg-info/SOURCES.txt +0 -0
  369. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk.egg-info/dependency_links.txt +0 -0
  370. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk.egg-info/requires.txt +0 -0
  371. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/alita_sdk.egg-info/top_level.txt +0 -0
  372. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/setup.cfg +0 -0
  373. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/tests/test_ado_analysis.py +0 -0
  374. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/tests/test_github_analysis.py +0 -0
  375. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/tests/test_gitlab_analysis.py +0 -0
  376. {alita_sdk-0.3.444 → alita_sdk-0.3.446}/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.444
3
+ Version: 0.3.446
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
@@ -19,6 +19,10 @@ class McpConnectionConfig(BaseModel):
19
19
  default=None,
20
20
  description="HTTP headers for the connection (JSON object)"
21
21
  )
22
+ session_id: Optional[str] = Field(
23
+ default=None,
24
+ description="MCP session ID for stateful SSE servers (managed by client)"
25
+ )
22
26
 
23
27
  @validator('url')
24
28
  def validate_url(cls, v):
@@ -340,9 +340,14 @@ class McpToolkit(BaseToolkit):
340
340
  logger.error(f"Headers must be a dictionary or JSON string, got: {type(headers)}")
341
341
  raise ValueError(f"Headers must be a dictionary or JSON string, got: {type(headers)}")
342
342
 
343
+ # Extract session_id from kwargs if provided
344
+ session_id = kwargs.get('session_id')
345
+ if session_id:
346
+ logger.info(f"[MCP Session] Using provided session ID for toolkit '{toolkit_name}': {session_id}")
347
+
343
348
  # Create MCP connection configuration
344
349
  try:
345
- connection_config = McpConnectionConfig(url=url, headers=parsed_headers)
350
+ connection_config = McpConnectionConfig(url=url, headers=parsed_headers, session_id=session_id)
346
351
  except Exception as e:
347
352
  logger.error(f"Invalid MCP connection configuration: {e}")
348
353
  raise ValueError(f"Invalid MCP connection configuration: {e}")
@@ -382,7 +387,7 @@ class McpToolkit(BaseToolkit):
382
387
  logger.info(f"Discovering tools from MCP toolkit '{toolkit_name}' at {connection_config.url}")
383
388
 
384
389
  # Use synchronous HTTP discovery for toolkit initialization
385
- tool_metadata_list = cls._discover_tools_sync(
390
+ tool_metadata_list, session_id = cls._discover_tools_sync(
386
391
  toolkit_name=toolkit_name,
387
392
  connection_config=connection_config,
388
393
  timeout=timeout
@@ -397,13 +402,15 @@ class McpToolkit(BaseToolkit):
397
402
  ]
398
403
 
399
404
  # Create BaseTool instances from discovered metadata
405
+ # Use session_id from connection_config (passed from UI) instead of discovery
400
406
  for tool_metadata in tool_metadata_list:
401
407
  server_tool = cls._create_tool_from_dict(
402
408
  tool_dict=tool_metadata,
403
409
  toolkit_name=toolkit_name,
404
410
  connection_config=connection_config,
405
411
  timeout=timeout,
406
- client=client
412
+ client=client,
413
+ session_id=connection_config.session_id # Use session from connection config
407
414
  )
408
415
 
409
416
  if server_tool:
@@ -455,12 +462,19 @@ class McpToolkit(BaseToolkit):
455
462
  """
456
463
  all_tools = []
457
464
 
465
+ # Note: We don't initialize MCP session here because:
466
+ # 1. Discovery happens before we have OAuth tokens
467
+ # 2. Sessions are initialized on-demand during first tool call (when we have auth)
468
+ # 3. Sessions are stored in UI sessionStorage and passed back via mcp_tokens
469
+ session_id = None
470
+
458
471
  # Discover regular tools
459
472
  tools_data = cls._discover_mcp_endpoint(
460
473
  endpoint="tools/list",
461
474
  toolkit_name=toolkit_name,
462
475
  connection_config=connection_config,
463
- timeout=timeout
476
+ timeout=timeout,
477
+ session_id=session_id
464
478
  )
465
479
  all_tools.extend(tools_data)
466
480
  logger.info(f"Discovered {len(tools_data)} tools from MCP toolkit '{toolkit_name}'")
@@ -471,7 +485,8 @@ class McpToolkit(BaseToolkit):
471
485
  endpoint="prompts/list",
472
486
  toolkit_name=toolkit_name,
473
487
  connection_config=connection_config,
474
- timeout=timeout
488
+ timeout=timeout,
489
+ session_id=session_id
475
490
  )
476
491
  # Convert prompts to tool format
477
492
  for prompt in prompts_data:
@@ -504,7 +519,107 @@ class McpToolkit(BaseToolkit):
504
519
  logger.warning(f"Failed to discover prompts from MCP toolkit '{toolkit_name}': {e}")
505
520
 
506
521
  logger.info(f"Total discovered {len(all_tools)} tools+prompts from MCP toolkit '{toolkit_name}'")
507
- return all_tools
522
+ return all_tools, session_id
523
+
524
+ @classmethod
525
+ def _initialize_mcp_session(
526
+ cls,
527
+ toolkit_name: str,
528
+ connection_config: McpConnectionConfig,
529
+ timeout: int,
530
+ extra_headers: Optional[Dict[str, str]] = None
531
+ ) -> Optional[str]:
532
+ """
533
+ Initialize an MCP session for stateful SSE servers.
534
+ Returns sessionId if successful, None if server doesn't require sessions.
535
+
536
+ Note: This session should be stored by the caller (e.g., UI sessionStorage)
537
+ and passed back for subsequent requests. Sessions should NOT be cached
538
+ on the backend for security reasons (multi-tenant environment).
539
+
540
+ Args:
541
+ toolkit_name: Name of the toolkit
542
+ connection_config: MCP connection configuration
543
+ timeout: Request timeout in seconds
544
+ extra_headers: Additional headers (e.g., Authorization) to include
545
+ """
546
+ import time
547
+
548
+ mcp_request = {
549
+ "jsonrpc": "2.0",
550
+ "id": f"initialize_{int(time.time())}",
551
+ "method": "initialize",
552
+ "params": {
553
+ "protocolVersion": "2024-11-05",
554
+ "capabilities": {
555
+ "roots": {"listChanged": True},
556
+ "sampling": {}
557
+ },
558
+ "clientInfo": {
559
+ "name": "Alita MCP Client",
560
+ "version": "1.0.0"
561
+ }
562
+ }
563
+ }
564
+
565
+ headers = {
566
+ "Content-Type": "application/json",
567
+ "Accept": "application/json, text/event-stream"
568
+ }
569
+ if connection_config.headers:
570
+ headers.update(connection_config.headers)
571
+ if extra_headers:
572
+ headers.update(extra_headers)
573
+ logger.debug(f"[MCP Session] Added extra headers: {list(extra_headers.keys())}")
574
+
575
+ try:
576
+ logger.info(f"[MCP Session] Attempting to initialize session for {connection_config.url}")
577
+ logger.debug(f"[MCP Session] Initialize request: {mcp_request}")
578
+ response = requests.post(
579
+ connection_config.url,
580
+ json=mcp_request,
581
+ headers=headers,
582
+ timeout=timeout
583
+ )
584
+
585
+ logger.info(f"[MCP Session] Initialize response status: {response.status_code}")
586
+ if response.status_code == 200:
587
+ # Parse the response to extract sessionId
588
+ content_type = response.headers.get('Content-Type', '')
589
+ logger.debug(f"[MCP Session] Response Content-Type: {content_type}")
590
+
591
+ if 'text/event-stream' in content_type:
592
+ data = cls._parse_sse_response(response.text)
593
+ elif 'application/json' in content_type:
594
+ data = response.json()
595
+ else:
596
+ logger.warning(f"[MCP Session] Unexpected Content-Type during initialize: {content_type}")
597
+ logger.debug(f"[MCP Session] Response text: {response.text[:500]}")
598
+ return None
599
+
600
+ logger.debug(f"[MCP Session] Parsed response: {data}")
601
+
602
+ # Extract sessionId from response
603
+ result = data.get("result", {})
604
+ session_id = result.get("sessionId")
605
+ if session_id:
606
+ logger.info(f"[MCP Session] ✓ Session initialized for '{toolkit_name}': {session_id}")
607
+ logger.info(f"[MCP Session] This sessionId should be stored by the caller and sent back for subsequent requests")
608
+ return session_id
609
+ else:
610
+ logger.info(f"[MCP Session] No sessionId in initialize response for '{toolkit_name}' - server may not require sessions")
611
+ logger.debug(f"[MCP Session] Full result: {result}")
612
+ return None
613
+ else:
614
+ logger.warning(f"[MCP Session] Initialize returned {response.status_code} for '{toolkit_name}' - server may not support sessions")
615
+ logger.debug(f"[MCP Session] Response: {response.text[:500]}")
616
+ return None
617
+
618
+ except Exception as e:
619
+ logger.warning(f"[MCP Session] Failed to initialize MCP session for '{toolkit_name}': {e} - proceeding without session")
620
+ import traceback
621
+ logger.debug(f"[MCP Session] Traceback: {traceback.format_exc()}")
622
+ return None
508
623
 
509
624
  @classmethod
510
625
  def _discover_mcp_endpoint(
@@ -512,7 +627,8 @@ class McpToolkit(BaseToolkit):
512
627
  endpoint: str,
513
628
  toolkit_name: str,
514
629
  connection_config: McpConnectionConfig,
515
- timeout: int
630
+ timeout: int,
631
+ session_id: Optional[str] = None
516
632
  ) -> List[Dict[str, Any]]:
517
633
  """
518
634
  Discover items from a specific MCP endpoint (tools/list or prompts/list).
@@ -535,10 +651,19 @@ class McpToolkit(BaseToolkit):
535
651
  if connection_config.headers:
536
652
  headers.update(connection_config.headers)
537
653
 
654
+ # Add sessionId to URL if provided (for stateful SSE servers)
655
+ url = connection_config.url
656
+ if session_id:
657
+ separator = '&' if '?' in url else '?'
658
+ url = f"{url}{separator}sessionId={session_id}"
659
+ logger.info(f"[MCP Session] Using session {session_id} for {endpoint} request")
660
+ else:
661
+ logger.debug(f"[MCP Session] No session ID available for {endpoint} request - server may not require sessions")
662
+
538
663
  try:
539
- logger.debug(f"Sending MCP {endpoint} request to {connection_config.url}")
664
+ logger.debug(f"Sending MCP {endpoint} request to {url}")
540
665
  response = requests.post(
541
- connection_config.url,
666
+ url,
542
667
  json=mcp_request,
543
668
  headers=headers,
544
669
  timeout=timeout
@@ -643,7 +768,8 @@ class McpToolkit(BaseToolkit):
643
768
  toolkit_name: str,
644
769
  connection_config: McpConnectionConfig,
645
770
  timeout: int,
646
- client
771
+ client,
772
+ session_id: Optional[str] = None
647
773
  ) -> Optional[BaseTool]:
648
774
  """Create a BaseTool from a tool/prompt dictionary (from direct HTTP discovery)."""
649
775
  try:
@@ -680,7 +806,8 @@ class McpToolkit(BaseToolkit):
680
806
  tool_timeout_sec=timeout,
681
807
  is_prompt=is_prompt,
682
808
  prompt_name=tool_dict.get("_mcp_prompt_name") if is_prompt else None,
683
- original_tool_name=tool_dict.get('name') # Store original name for MCP server invocation
809
+ original_tool_name=tool_dict.get('name'), # Store original name for MCP server invocation
810
+ session_id=session_id # Pass session ID for stateful SSE servers
684
811
  )
685
812
  except Exception as e:
686
813
  logger.error(f"Failed to create MCP tool '{tool_dict.get('name')}' from toolkit '{toolkit_name}': {e}")
@@ -113,13 +113,41 @@ def get_tools(tools_list: list, alita_client, llm, memory_store: BaseStore = Non
113
113
  settings = dict(tool['settings'])
114
114
  url = settings.get('url')
115
115
  headers = settings.get('headers')
116
- token = None
116
+ token_data = None
117
+ session_id = None
117
118
  if mcp_tokens and url:
118
- token = mcp_tokens.get(canonical_resource(url))
119
- if token:
119
+ canonical_url = canonical_resource(url)
120
+ logger.info(f"[MCP Auth] Looking for token for URL: {url}")
121
+ logger.info(f"[MCP Auth] Canonical URL: {canonical_url}")
122
+ logger.info(f"[MCP Auth] Available tokens: {list(mcp_tokens.keys())}")
123
+ token_data = mcp_tokens.get(canonical_url)
124
+ if token_data:
125
+ logger.info(f"[MCP Auth] Found token data for {canonical_url}")
126
+ # Handle both old format (string) and new format (dict with access_token and session_id)
127
+ if isinstance(token_data, dict):
128
+ access_token = token_data.get('access_token')
129
+ session_id = token_data.get('session_id')
130
+ logger.info(f"[MCP Auth] Token data: access_token={'present' if access_token else 'missing'}, session_id={session_id or 'none'}")
131
+ else:
132
+ # Backward compatibility: treat as plain token string
133
+ access_token = token_data
134
+ logger.info(f"[MCP Auth] Using legacy token format (string)")
135
+ else:
136
+ access_token = None
137
+ logger.warning(f"[MCP Auth] No token found for {canonical_url}")
138
+ else:
139
+ access_token = None
140
+
141
+ if access_token:
120
142
  merged_headers = dict(headers) if headers else {}
121
- merged_headers.setdefault('Authorization', f'Bearer {token}')
143
+ merged_headers.setdefault('Authorization', f'Bearer {access_token}')
122
144
  settings['headers'] = merged_headers
145
+ logger.info(f"[MCP Auth] Added Authorization header for {url}")
146
+
147
+ # Pass session_id to MCP toolkit if available
148
+ if session_id:
149
+ settings['session_id'] = session_id
150
+ logger.info(f"[MCP Auth] Passing session_id to toolkit: {session_id}")
123
151
  tools.extend(McpToolkit.get_toolkit(
124
152
  toolkit_name=tool.get('toolkit_name', ''),
125
153
  client=alita_client,
@@ -36,6 +36,22 @@ class McpRemoteTool(McpServerTool):
36
36
  original_tool_name: Optional[str] = Field(default=None, description="Original tool name from MCP server (before optimization)")
37
37
  is_prompt: bool = False # Flag to indicate if this is a prompt tool
38
38
  prompt_name: Optional[str] = None # Original prompt name if this is a prompt
39
+ session_id: Optional[str] = Field(default=None, description="MCP session ID for stateful SSE servers")
40
+
41
+ def model_post_init(self, __context: Any) -> None:
42
+ """Update metadata with session info after model initialization."""
43
+ super().model_post_init(__context)
44
+ self._update_metadata_with_session()
45
+
46
+ def _update_metadata_with_session(self):
47
+ """Update the metadata dict with current session information."""
48
+ if self.session_id:
49
+ if self.metadata is None:
50
+ self.metadata = {}
51
+ self.metadata.update({
52
+ 'mcp_session_id': self.session_id,
53
+ 'mcp_server_url': canonical_resource(self.server_url)
54
+ })
39
55
 
40
56
  def __getstate__(self):
41
57
  """Custom serialization for pickle compatibility."""
@@ -112,14 +128,21 @@ class McpRemoteTool(McpServerTool):
112
128
  if self.server_headers:
113
129
  headers.update(self.server_headers)
114
130
 
131
+ # Add sessionId to URL if this is a stateful SSE server
132
+ url = self.server_url
133
+ if self.session_id:
134
+ separator = '&' if '?' in url else '?'
135
+ url = f"{url}{separator}sessionId={self.session_id}"
136
+ logger.debug(f"Using session URL: {url}")
137
+
115
138
  # Execute the HTTP request
116
139
  timeout = aiohttp.ClientTimeout(total=self.tool_timeout_sec)
117
140
  async with aiohttp.ClientSession(timeout=timeout) as session:
118
141
  try:
119
- logger.debug(f"Calling remote MCP tool '{tool_name_for_server}' (optimized name: '{self.name}') at {self.server_url}")
142
+ logger.debug(f"Calling remote MCP tool '{tool_name_for_server}' (optimized name: '{self.name}') at {url}")
120
143
  logger.debug(f"Request: {json.dumps(mcp_request, indent=2)}")
121
144
 
122
- async with session.post(self.server_url, json=mcp_request, headers=headers) as response:
145
+ async with session.post(url, json=mcp_request, headers=headers) as response:
123
146
  auth_header = response.headers.get('WWW-Authenticate') or response.headers.get('Www-Authenticate')
124
147
  if response.status == 401:
125
148
  resource_metadata_url = extract_resource_metadata_url(auth_header, self.server_url)
@@ -159,19 +182,68 @@ class McpRemoteTool(McpServerTool):
159
182
  tool_name=self.name,
160
183
  )
161
184
 
185
+ # Check for errors first
186
+ data = None
162
187
  if response.status != 200:
163
188
  error_text = await response.text()
164
- raise Exception(f"HTTP {response.status}: {error_text}")
165
-
166
- # Handle both JSON and SSE responses
167
- content_type = response.headers.get('Content-Type', '')
168
- if 'text/event-stream' in content_type:
169
- # Parse SSE format
170
- text = await response.text()
171
- data = self._parse_sse(text)
172
- else:
173
- # Parse regular JSON
174
- data = await response.json()
189
+
190
+ # Check if this is a "Missing sessionId" error
191
+ if response.status == 404 and "sessionId" in error_text and not self.session_id:
192
+ logger.info(f"[MCP Session] Server requires session but none provided - attempting to initialize")
193
+ # Try to initialize session with current auth headers
194
+ from ..toolkits.mcp import McpToolkit
195
+ from ..models.mcp_models import McpConnectionConfig
196
+
197
+ connection_config = McpConnectionConfig(
198
+ url=self.server_url,
199
+ headers=self.server_headers
200
+ )
201
+
202
+ # Initialize session with auth headers
203
+ session_id = McpToolkit._initialize_mcp_session(
204
+ toolkit_name=self.server,
205
+ connection_config=connection_config,
206
+ timeout=self.tool_timeout_sec,
207
+ extra_headers=headers # Include Authorization header
208
+ )
209
+
210
+ if session_id:
211
+ # Retry the request with session
212
+ self.session_id = session_id
213
+ # Update metadata so callbacks can access session info
214
+ self._update_metadata_with_session()
215
+ separator = '&' if '?' in self.server_url else '?'
216
+ retry_url = f"{self.server_url}{separator}sessionId={session_id}"
217
+ logger.info(f"[MCP Session] Retrying tool call with new session: {session_id}")
218
+ logger.info(f"[MCP Session] Created session - server: {canonical_resource(self.server_url)}, session_id: {session_id}")
219
+
220
+ async with session.post(retry_url, json=mcp_request, headers=headers) as retry_response:
221
+ if retry_response.status != 200:
222
+ retry_error = await retry_response.text()
223
+ raise Exception(f"HTTP {retry_response.status} (after session init): {retry_error}")
224
+
225
+ # Process successful retry response
226
+ content_type = retry_response.headers.get('Content-Type', '')
227
+ if 'text/event-stream' in content_type:
228
+ text = await retry_response.text()
229
+ data = self._parse_sse(text)
230
+ else:
231
+ data = await retry_response.json()
232
+ else:
233
+ raise Exception(f"HTTP {response.status}: {error_text} (session initialization failed)")
234
+ else:
235
+ raise Exception(f"HTTP {response.status}: {error_text}")
236
+
237
+ # Parse response if not already done in retry logic
238
+ if data is None:
239
+ content_type = response.headers.get('Content-Type', '')
240
+ if 'text/event-stream' in content_type:
241
+ # Parse SSE format
242
+ text = await response.text()
243
+ data = self._parse_sse(text)
244
+ else:
245
+ # Parse regular JSON
246
+ data = await response.json()
175
247
 
176
248
  logger.debug(f"Response: {json.dumps(data, indent=2)}")
177
249
 
@@ -224,3 +296,12 @@ class McpRemoteTool(McpServerTool):
224
296
  json_str = line[5:].strip()
225
297
  return json.loads(json_str)
226
298
  raise ValueError("No data found in SSE response")
299
+
300
+ def get_session_metadata(self) -> dict:
301
+ """Return session metadata to be included in tool responses."""
302
+ if self.session_id:
303
+ return {
304
+ 'mcp_session_id': self.session_id,
305
+ 'mcp_server_url': canonical_resource(self.server_url)
306
+ }
307
+ return {}
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: alita_sdk
3
- Version: 0.3.444
3
+ Version: 0.3.446
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
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "alita_sdk"
7
- version = "0.3.444"
7
+ version = "0.3.446"
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