alita-sdk 0.3.553__tar.gz → 0.3.558__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 (458) hide show
  1. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/PKG-INFO +6 -6
  2. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/langchain/langraph_agent.py +2 -2
  3. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/toolkits/tools.py +15 -0
  4. alita_sdk-0.3.558/alita_sdk/runtime/tools/data_analysis.py +183 -0
  5. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/__init__.py +1 -1
  6. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/gitlab/api_wrapper.py +84 -36
  7. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/pandas/__init__.py +8 -3
  8. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/pandas/api_wrapper.py +9 -23
  9. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk.egg-info/PKG-INFO +6 -6
  10. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk.egg-info/SOURCES.txt +1 -0
  11. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk.egg-info/requires.txt +5 -5
  12. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/pyproject.toml +2 -2
  13. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/LICENSE +0 -0
  14. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/README.md +0 -0
  15. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/__init__.py +0 -0
  16. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/cli/__init__.py +0 -0
  17. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/cli/__main__.py +0 -0
  18. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/cli/agent/__init__.py +0 -0
  19. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/cli/agent/default.py +0 -0
  20. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/cli/agent_executor.py +0 -0
  21. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/cli/agent_loader.py +0 -0
  22. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/cli/agent_ui.py +0 -0
  23. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/cli/agents.py +0 -0
  24. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/cli/callbacks.py +0 -0
  25. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/cli/cli.py +0 -0
  26. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/cli/config.py +0 -0
  27. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/cli/context/__init__.py +0 -0
  28. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/cli/context/cleanup.py +0 -0
  29. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/cli/context/manager.py +0 -0
  30. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/cli/context/message.py +0 -0
  31. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/cli/context/strategies.py +0 -0
  32. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/cli/context/token_estimation.py +0 -0
  33. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/cli/formatting.py +0 -0
  34. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/cli/input_handler.py +0 -0
  35. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/cli/inventory.py +0 -0
  36. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/cli/mcp_loader.py +0 -0
  37. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/cli/toolkit.py +0 -0
  38. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/cli/toolkit_loader.py +0 -0
  39. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/cli/tools/__init__.py +0 -0
  40. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/cli/tools/approval.py +0 -0
  41. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/cli/tools/filesystem.py +0 -0
  42. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/cli/tools/planning.py +0 -0
  43. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/cli/tools/terminal.py +0 -0
  44. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/community/__init__.py +0 -0
  45. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/community/inventory/__init__.py +0 -0
  46. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/community/inventory/config.py +0 -0
  47. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/community/inventory/enrichment.py +0 -0
  48. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/community/inventory/extractors.py +0 -0
  49. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/community/inventory/ingestion.py +0 -0
  50. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/community/inventory/knowledge_graph.py +0 -0
  51. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/community/inventory/parsers/__init__.py +0 -0
  52. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/community/inventory/parsers/base.py +0 -0
  53. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/community/inventory/parsers/csharp_parser.py +0 -0
  54. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/community/inventory/parsers/go_parser.py +0 -0
  55. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/community/inventory/parsers/html_parser.py +0 -0
  56. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/community/inventory/parsers/java_parser.py +0 -0
  57. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/community/inventory/parsers/javascript_parser.py +0 -0
  58. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/community/inventory/parsers/kotlin_parser.py +0 -0
  59. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/community/inventory/parsers/markdown_parser.py +0 -0
  60. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/community/inventory/parsers/python_parser.py +0 -0
  61. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/community/inventory/parsers/rust_parser.py +0 -0
  62. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/community/inventory/parsers/swift_parser.py +0 -0
  63. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/community/inventory/parsers/text_parser.py +0 -0
  64. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/community/inventory/parsers/yaml_parser.py +0 -0
  65. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/community/inventory/patterns/__init__.py +0 -0
  66. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/community/inventory/patterns/ast_adapter.py +0 -0
  67. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/community/inventory/patterns/loader.py +0 -0
  68. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/community/inventory/patterns/registry.py +0 -0
  69. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/community/inventory/presets.py +0 -0
  70. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/community/inventory/retrieval.py +0 -0
  71. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/community/inventory/toolkit.py +0 -0
  72. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/community/inventory/toolkit_utils.py +0 -0
  73. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/community/inventory/visualize.py +0 -0
  74. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/community/utils.py +0 -0
  75. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/configurations/__init__.py +0 -0
  76. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/configurations/ado.py +0 -0
  77. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/configurations/azure_search.py +0 -0
  78. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/configurations/bigquery.py +0 -0
  79. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/configurations/bitbucket.py +0 -0
  80. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/configurations/browser.py +0 -0
  81. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/configurations/carrier.py +0 -0
  82. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/configurations/confluence.py +0 -0
  83. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/configurations/delta_lake.py +0 -0
  84. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/configurations/embedding.py +0 -0
  85. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/configurations/figma.py +0 -0
  86. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/configurations/github.py +0 -0
  87. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/configurations/gitlab.py +0 -0
  88. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/configurations/google_places.py +0 -0
  89. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/configurations/jira.py +0 -0
  90. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/configurations/openapi.py +0 -0
  91. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/configurations/pgvector.py +0 -0
  92. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/configurations/postman.py +0 -0
  93. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/configurations/qtest.py +0 -0
  94. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/configurations/rally.py +0 -0
  95. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/configurations/report_portal.py +0 -0
  96. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/configurations/salesforce.py +0 -0
  97. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/configurations/service_now.py +0 -0
  98. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/configurations/sharepoint.py +0 -0
  99. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/configurations/slack.py +0 -0
  100. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/configurations/sonar.py +0 -0
  101. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/configurations/sql.py +0 -0
  102. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/configurations/testio.py +0 -0
  103. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/configurations/testrail.py +0 -0
  104. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/configurations/xray.py +0 -0
  105. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/configurations/zephyr.py +0 -0
  106. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/configurations/zephyr_enterprise.py +0 -0
  107. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/configurations/zephyr_essential.py +0 -0
  108. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/__init__.py +0 -0
  109. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/clients/__init__.py +0 -0
  110. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/clients/artifact.py +0 -0
  111. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/clients/client.py +0 -0
  112. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/clients/datasource.py +0 -0
  113. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/clients/mcp_discovery.py +0 -0
  114. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/clients/mcp_manager.py +0 -0
  115. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/clients/prompt.py +0 -0
  116. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/clients/sandbox_client.py +0 -0
  117. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/langchain/__init__.py +0 -0
  118. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/langchain/agents/__init__.py +0 -0
  119. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/langchain/agents/xml_chat.py +0 -0
  120. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/langchain/assistant.py +0 -0
  121. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/langchain/chat_message_template.py +0 -0
  122. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/langchain/constants.py +0 -0
  123. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/langchain/document_loaders/AlitaBDDScenariosLoader.py +0 -0
  124. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/langchain/document_loaders/AlitaCSVLoader.py +0 -0
  125. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/langchain/document_loaders/AlitaConfluenceLoader.py +0 -0
  126. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/langchain/document_loaders/AlitaDirectoryLoader.py +0 -0
  127. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/langchain/document_loaders/AlitaDocxMammothLoader.py +0 -0
  128. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/langchain/document_loaders/AlitaExcelLoader.py +0 -0
  129. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/langchain/document_loaders/AlitaGitRepoLoader.py +0 -0
  130. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/langchain/document_loaders/AlitaImageLoader.py +0 -0
  131. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/langchain/document_loaders/AlitaJSONLinesLoader.py +0 -0
  132. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/langchain/document_loaders/AlitaJSONLoader.py +0 -0
  133. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/langchain/document_loaders/AlitaJiraLoader.py +0 -0
  134. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/langchain/document_loaders/AlitaMarkdownLoader.py +0 -0
  135. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/langchain/document_loaders/AlitaPDFLoader.py +0 -0
  136. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/langchain/document_loaders/AlitaPowerPointLoader.py +0 -0
  137. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/langchain/document_loaders/AlitaPythonLoader.py +0 -0
  138. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/langchain/document_loaders/AlitaQtestLoader.py +0 -0
  139. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/langchain/document_loaders/AlitaTableLoader.py +0 -0
  140. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/langchain/document_loaders/AlitaTextLoader.py +0 -0
  141. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/langchain/document_loaders/ImageParser.py +0 -0
  142. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/langchain/document_loaders/__init__.py +0 -0
  143. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/langchain/document_loaders/constants.py +0 -0
  144. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/langchain/document_loaders/utils.py +0 -0
  145. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/langchain/indexer.py +0 -0
  146. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/langchain/interfaces/__init__.py +0 -0
  147. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/langchain/interfaces/kwextractor.py +0 -0
  148. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/langchain/interfaces/llm_processor.py +0 -0
  149. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/langchain/interfaces/loaders.py +0 -0
  150. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/langchain/interfaces/splitters.py +0 -0
  151. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/langchain/mixedAgentParser.py +0 -0
  152. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/langchain/mixedAgentRenderes.py +0 -0
  153. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/langchain/retrievers/AlitaRetriever.py +0 -0
  154. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/langchain/retrievers/VectorstoreRetriever.py +0 -0
  155. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/langchain/retrievers/__init__.py +0 -0
  156. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/langchain/store_manager.py +0 -0
  157. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/langchain/tools/__init__.py +0 -0
  158. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/langchain/tools/bdd_parser/__init__.py +0 -0
  159. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/langchain/tools/bdd_parser/bdd_exceptions.py +0 -0
  160. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/langchain/tools/bdd_parser/bdd_parser.py +0 -0
  161. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/langchain/tools/bdd_parser/feature_types.py +0 -0
  162. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/langchain/tools/bdd_parser/parser.py +0 -0
  163. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/langchain/tools/git.py +0 -0
  164. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/langchain/tools/log.py +0 -0
  165. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/langchain/tools/quota.py +0 -0
  166. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/langchain/tools/state.py +0 -0
  167. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/langchain/tools/utils.py +0 -0
  168. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/langchain/tools/vector.py +0 -0
  169. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/langchain/utils.py +0 -0
  170. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/llms/__init__.py +0 -0
  171. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/llms/preloaded.py +0 -0
  172. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/models/mcp_models.py +0 -0
  173. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/skills/__init__.py +0 -0
  174. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/skills/callbacks.py +0 -0
  175. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/skills/discovery.py +0 -0
  176. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/skills/executor.py +0 -0
  177. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/skills/input_builder.py +0 -0
  178. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/skills/models.py +0 -0
  179. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/skills/registry.py +0 -0
  180. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/skills/skill_runner.py +0 -0
  181. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/toolkits/__init__.py +0 -0
  182. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/toolkits/application.py +0 -0
  183. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/toolkits/artifact.py +0 -0
  184. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/toolkits/configurations.py +0 -0
  185. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/toolkits/datasource.py +0 -0
  186. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/toolkits/mcp.py +0 -0
  187. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/toolkits/planning.py +0 -0
  188. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/toolkits/prompt.py +0 -0
  189. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/toolkits/skill_router.py +0 -0
  190. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/toolkits/subgraph.py +0 -0
  191. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/toolkits/vectorstore.py +0 -0
  192. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/tools/__init__.py +0 -0
  193. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/tools/agent.py +0 -0
  194. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/tools/application.py +0 -0
  195. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/tools/artifact.py +0 -0
  196. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/tools/datasource.py +0 -0
  197. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/tools/echo.py +0 -0
  198. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/tools/function.py +0 -0
  199. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/tools/graph.py +0 -0
  200. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/tools/image_generation.py +0 -0
  201. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/tools/indexer_tool.py +0 -0
  202. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/tools/llm.py +0 -0
  203. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/tools/loop.py +0 -0
  204. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/tools/loop_output.py +0 -0
  205. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/tools/mcp_inspect_tool.py +0 -0
  206. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/tools/mcp_remote_tool.py +0 -0
  207. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/tools/mcp_server_tool.py +0 -0
  208. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/tools/pgvector_search.py +0 -0
  209. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/tools/planning/__init__.py +0 -0
  210. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/tools/planning/models.py +0 -0
  211. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/tools/planning/wrapper.py +0 -0
  212. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/tools/prompt.py +0 -0
  213. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/tools/router.py +0 -0
  214. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/tools/sandbox.py +0 -0
  215. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/tools/skill_router.py +0 -0
  216. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/tools/tool.py +0 -0
  217. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/tools/vectorstore.py +0 -0
  218. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/tools/vectorstore_base.py +0 -0
  219. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/utils/AlitaCallback.py +0 -0
  220. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/utils/__init__.py +0 -0
  221. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/utils/constants.py +0 -0
  222. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/utils/evaluate.py +0 -0
  223. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/utils/logging.py +0 -0
  224. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/utils/mcp_client.py +0 -0
  225. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/utils/mcp_oauth.py +0 -0
  226. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/utils/mcp_sse_client.py +0 -0
  227. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/utils/mcp_tools_discovery.py +0 -0
  228. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/utils/save_dataframe.py +0 -0
  229. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/utils/streamlit.py +0 -0
  230. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/utils/toolkit_runtime.py +0 -0
  231. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/utils/toolkit_utils.py +0 -0
  232. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/utils/utils.py +0 -0
  233. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/ado/__init__.py +0 -0
  234. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/ado/repos/__init__.py +0 -0
  235. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/ado/repos/repos_wrapper.py +0 -0
  236. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/ado/test_plan/__init__.py +0 -0
  237. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/ado/test_plan/test_plan_wrapper.py +0 -0
  238. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/ado/utils.py +0 -0
  239. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/ado/wiki/__init__.py +0 -0
  240. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/ado/wiki/ado_wrapper.py +0 -0
  241. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/ado/work_item/__init__.py +0 -0
  242. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/ado/work_item/ado_wrapper.py +0 -0
  243. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/advanced_jira_mining/__init__.py +0 -0
  244. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/advanced_jira_mining/data_mining_wrapper.py +0 -0
  245. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/aws/__init__.py +0 -0
  246. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/aws/delta_lake/__init__.py +0 -0
  247. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/aws/delta_lake/api_wrapper.py +0 -0
  248. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/aws/delta_lake/schemas.py +0 -0
  249. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/aws/delta_lake/tool.py +0 -0
  250. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/azure_ai/__init__.py +0 -0
  251. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/azure_ai/search/__init__.py +0 -0
  252. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/azure_ai/search/api_wrapper.py +0 -0
  253. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/base/__init__.py +0 -0
  254. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/base/tool.py +0 -0
  255. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/base_indexer_toolkit.py +0 -0
  256. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/bitbucket/__init__.py +0 -0
  257. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/bitbucket/api_wrapper.py +0 -0
  258. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/bitbucket/bitbucket_constants.py +0 -0
  259. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/bitbucket/cloud_api_wrapper.py +0 -0
  260. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/browser/__init__.py +0 -0
  261. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/browser/crawler.py +0 -0
  262. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/browser/duck_duck_go_search.py +0 -0
  263. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/browser/google_search_rag.py +0 -0
  264. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/browser/utils.py +0 -0
  265. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/browser/wiki.py +0 -0
  266. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/carrier/__init__.py +0 -0
  267. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/carrier/api_wrapper.py +0 -0
  268. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/carrier/backend_reports_tool.py +0 -0
  269. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/carrier/backend_tests_tool.py +0 -0
  270. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/carrier/cancel_ui_test_tool.py +0 -0
  271. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/carrier/carrier_sdk.py +0 -0
  272. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/carrier/create_ui_excel_report_tool.py +0 -0
  273. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/carrier/create_ui_test_tool.py +0 -0
  274. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/carrier/excel_reporter.py +0 -0
  275. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/carrier/lighthouse_excel_reporter.py +0 -0
  276. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/carrier/run_ui_test_tool.py +0 -0
  277. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/carrier/tickets_tool.py +0 -0
  278. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/carrier/tools.py +0 -0
  279. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/carrier/ui_reports_tool.py +0 -0
  280. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/carrier/update_ui_test_schedule_tool.py +0 -0
  281. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/carrier/utils.py +0 -0
  282. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/chunkers/__init__.py +0 -0
  283. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/chunkers/code/__init__.py +0 -0
  284. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/chunkers/code/codeparser.py +0 -0
  285. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/chunkers/code/constants.py +0 -0
  286. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/chunkers/code/treesitter/__init__.py +0 -0
  287. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/chunkers/code/treesitter/treesitter.py +0 -0
  288. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/chunkers/code/treesitter/treesitter_c.py +0 -0
  289. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/chunkers/code/treesitter/treesitter_cpp.py +0 -0
  290. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/chunkers/code/treesitter/treesitter_cs.py +0 -0
  291. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/chunkers/code/treesitter/treesitter_go.py +0 -0
  292. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/chunkers/code/treesitter/treesitter_hs.py +0 -0
  293. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/chunkers/code/treesitter/treesitter_java.py +0 -0
  294. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/chunkers/code/treesitter/treesitter_js.py +0 -0
  295. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/chunkers/code/treesitter/treesitter_kt.py +0 -0
  296. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/chunkers/code/treesitter/treesitter_py.py +0 -0
  297. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/chunkers/code/treesitter/treesitter_rb.py +0 -0
  298. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/chunkers/code/treesitter/treesitter_registry.py +0 -0
  299. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/chunkers/code/treesitter/treesitter_rs.py +0 -0
  300. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/chunkers/code/treesitter/treesitter_ts.py +0 -0
  301. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/chunkers/models.py +0 -0
  302. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/chunkers/sematic/__init__.py +0 -0
  303. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/chunkers/sematic/base.py +0 -0
  304. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/chunkers/sematic/json_chunker.py +0 -0
  305. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/chunkers/sematic/markdown_chunker.py +0 -0
  306. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/chunkers/sematic/proposal_chunker.py +0 -0
  307. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/chunkers/sematic/statistical_chunker.py +0 -0
  308. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/chunkers/universal_chunker.py +0 -0
  309. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/chunkers/utils.py +0 -0
  310. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/cloud/__init__.py +0 -0
  311. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/cloud/aws/__init__.py +0 -0
  312. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/cloud/aws/api_wrapper.py +0 -0
  313. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/cloud/azure/__init__.py +0 -0
  314. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/cloud/azure/api_wrapper.py +0 -0
  315. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/cloud/gcp/__init__.py +0 -0
  316. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/cloud/gcp/api_wrapper.py +0 -0
  317. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/cloud/k8s/__init__.py +0 -0
  318. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/cloud/k8s/api_wrapper.py +0 -0
  319. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/code/__init__.py +0 -0
  320. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/code/linter/__init__.py +0 -0
  321. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/code/linter/api_wrapper.py +0 -0
  322. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/code/loaders/codesearcher.py +0 -0
  323. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/code/sonar/__init__.py +0 -0
  324. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/code/sonar/api_wrapper.py +0 -0
  325. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/code_indexer_toolkit.py +0 -0
  326. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/confluence/__init__.py +0 -0
  327. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/confluence/api_wrapper.py +0 -0
  328. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/confluence/loader.py +0 -0
  329. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/confluence/utils.py +0 -0
  330. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/custom_open_api/__init__.py +0 -0
  331. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/custom_open_api/api_wrapper.py +0 -0
  332. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/elastic/__init__.py +0 -0
  333. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/elastic/api_wrapper.py +0 -0
  334. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/elitea_base.py +0 -0
  335. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/figma/__init__.py +0 -0
  336. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/figma/api_wrapper.py +0 -0
  337. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/github/__init__.py +0 -0
  338. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/github/api_wrapper.py +0 -0
  339. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/github/github_client.py +0 -0
  340. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/github/graphql_client_wrapper.py +0 -0
  341. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/github/schemas.py +0 -0
  342. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/github/tool.py +0 -0
  343. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/github/tool_prompts.py +0 -0
  344. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/gitlab/__init__.py +0 -0
  345. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/gitlab/tools.py +0 -0
  346. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/gitlab/utils.py +0 -0
  347. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/gitlab_org/__init__.py +0 -0
  348. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/gitlab_org/api_wrapper.py +0 -0
  349. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/gmail/__init__.py +0 -0
  350. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/gmail/gmail_wrapper.py +0 -0
  351. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/gmail/utils.py +0 -0
  352. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/google/__init__.py +0 -0
  353. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/google/bigquery/__init__.py +0 -0
  354. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/google/bigquery/api_wrapper.py +0 -0
  355. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/google/bigquery/schemas.py +0 -0
  356. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/google/bigquery/tool.py +0 -0
  357. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/google_places/__init__.py +0 -0
  358. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/google_places/api_wrapper.py +0 -0
  359. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/jira/__init__.py +0 -0
  360. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/jira/api_wrapper.py +0 -0
  361. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/keycloak/__init__.py +0 -0
  362. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/keycloak/api_wrapper.py +0 -0
  363. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/llm/__init__.py +0 -0
  364. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/llm/img_utils.py +0 -0
  365. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/llm/llm_utils.py +0 -0
  366. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/localgit/__init__.py +0 -0
  367. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/localgit/local_git.py +0 -0
  368. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/localgit/tool.py +0 -0
  369. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/memory/__init__.py +0 -0
  370. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/non_code_indexer_toolkit.py +0 -0
  371. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/ocr/__init__.py +0 -0
  372. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/ocr/api_wrapper.py +0 -0
  373. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/ocr/text_detection.py +0 -0
  374. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/openapi/__init__.py +0 -0
  375. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/openapi/api_wrapper.py +0 -0
  376. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/openapi/tool.py +0 -0
  377. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/pandas/dataframe/__init__.py +0 -0
  378. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/pandas/dataframe/errors.py +0 -0
  379. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/pandas/dataframe/executor/__init__.py +0 -0
  380. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/pandas/dataframe/executor/code_environment.py +0 -0
  381. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/pandas/dataframe/executor/code_executor.py +0 -0
  382. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/pandas/dataframe/generator/__init__.py +0 -0
  383. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/pandas/dataframe/generator/base.py +0 -0
  384. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/pandas/dataframe/generator/code_cleaning.py +0 -0
  385. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/pandas/dataframe/generator/code_validator.py +0 -0
  386. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/pandas/dataframe/prompts.py +0 -0
  387. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/pandas/dataframe/serializer.py +0 -0
  388. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/pandas/dataframe/utils.py +0 -0
  389. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/pandas/statsmodels/__init__.py +0 -0
  390. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/pandas/statsmodels/base_stats.py +0 -0
  391. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/pandas/statsmodels/descriptive.py +0 -0
  392. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/pandas/statsmodels/hypothesis_testing.py +0 -0
  393. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/pandas/statsmodels/regression.py +0 -0
  394. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/postman/__init__.py +0 -0
  395. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/postman/api_wrapper.py +0 -0
  396. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/postman/postman_analysis.py +0 -0
  397. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/pptx/__init__.py +0 -0
  398. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/pptx/pptx_wrapper.py +0 -0
  399. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/qtest/__init__.py +0 -0
  400. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/qtest/api_wrapper.py +0 -0
  401. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/qtest/tool.py +0 -0
  402. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/rally/__init__.py +0 -0
  403. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/rally/api_wrapper.py +0 -0
  404. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/report_portal/__init__.py +0 -0
  405. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/report_portal/api_wrapper.py +0 -0
  406. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/report_portal/report_portal_client.py +0 -0
  407. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/salesforce/__init__.py +0 -0
  408. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/salesforce/api_wrapper.py +0 -0
  409. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/salesforce/model.py +0 -0
  410. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/servicenow/__init__.py +0 -0
  411. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/servicenow/api_wrapper.py +0 -0
  412. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/servicenow/servicenow_client.py +0 -0
  413. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/sharepoint/__init__.py +0 -0
  414. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/sharepoint/api_wrapper.py +0 -0
  415. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/sharepoint/authorization_helper.py +0 -0
  416. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/sharepoint/utils.py +0 -0
  417. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/slack/__init__.py +0 -0
  418. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/slack/api_wrapper.py +0 -0
  419. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/sql/__init__.py +0 -0
  420. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/sql/api_wrapper.py +0 -0
  421. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/sql/models.py +0 -0
  422. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/testio/__init__.py +0 -0
  423. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/testio/api_wrapper.py +0 -0
  424. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/testrail/__init__.py +0 -0
  425. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/testrail/api_wrapper.py +0 -0
  426. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/utils/__init__.py +0 -0
  427. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/utils/available_tools_decorator.py +0 -0
  428. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/utils/content_parser.py +0 -0
  429. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/utils/text_operations.py +0 -0
  430. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/vector_adapters/VectorStoreAdapter.py +0 -0
  431. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/vector_adapters/__init__.py +0 -0
  432. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/xray/__init__.py +0 -0
  433. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/xray/api_wrapper.py +0 -0
  434. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/yagmail/__init__.py +0 -0
  435. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/yagmail/yagmail_wrapper.py +0 -0
  436. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/zephyr/Zephyr.py +0 -0
  437. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/zephyr/__init__.py +0 -0
  438. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/zephyr/api_wrapper.py +0 -0
  439. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/zephyr/rest_client.py +0 -0
  440. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/zephyr_enterprise/__init__.py +0 -0
  441. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/zephyr_enterprise/api_wrapper.py +0 -0
  442. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/zephyr_enterprise/zephyr_enterprise.py +0 -0
  443. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/zephyr_essential/__init__.py +0 -0
  444. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/zephyr_essential/api_wrapper.py +0 -0
  445. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/zephyr_essential/client.py +0 -0
  446. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/zephyr_scale/__init__.py +0 -0
  447. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/zephyr_scale/api_wrapper.py +0 -0
  448. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/zephyr_squad/__init__.py +0 -0
  449. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/zephyr_squad/api_wrapper.py +0 -0
  450. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/zephyr_squad/zephyr_squad_cloud_client.py +0 -0
  451. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk.egg-info/dependency_links.txt +0 -0
  452. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk.egg-info/entry_points.txt +0 -0
  453. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk.egg-info/top_level.txt +0 -0
  454. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/setup.cfg +0 -0
  455. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/tests/test_ado_analysis.py +0 -0
  456. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/tests/test_github_analysis.py +0 -0
  457. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/tests/test_gitlab_analysis.py +0 -0
  458. {alita_sdk-0.3.553 → alita_sdk-0.3.558}/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.553
3
+ Version: 0.3.558
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
@@ -68,11 +68,11 @@ Requires-Dist: pytesseract==0.3.13; extra == "runtime"
68
68
  Requires-Dist: markdown==3.5.1; extra == "runtime"
69
69
  Requires-Dist: beautifulsoup4==4.12.2; extra == "runtime"
70
70
  Requires-Dist: charset_normalizer==3.3.2; extra == "runtime"
71
- Requires-Dist: opentelemetry-exporter-otlp-proto-grpc==1.25.0; extra == "runtime"
72
- Requires-Dist: opentelemetry_api==1.25.0; extra == "runtime"
73
- Requires-Dist: opentelemetry_instrumentation==0.46b0; extra == "runtime"
74
- Requires-Dist: grpcio_status==1.63.0rc1; extra == "runtime"
75
- Requires-Dist: protobuf==4.25.7; extra == "runtime"
71
+ Requires-Dist: opentelemetry-exporter-otlp-proto-grpc>=1.25.0; extra == "runtime"
72
+ Requires-Dist: opentelemetry_api>=1.25.0; extra == "runtime"
73
+ Requires-Dist: opentelemetry_instrumentation>=0.46b0; extra == "runtime"
74
+ Requires-Dist: grpcio_status>=1.63.0rc1; extra == "runtime"
75
+ Requires-Dist: protobuf>=4.25.7; extra == "runtime"
76
76
  Requires-Dist: langchain-sandbox>=0.0.6; extra == "runtime"
77
77
  Provides-Extra: tools
78
78
  Requires-Dist: dulwich==0.21.6; extra == "tools"
@@ -967,7 +967,7 @@ class LangGraphAgentRunnable(CompiledStateGraph):
967
967
  (msg.content for msg in reversed(messages)
968
968
  if not isinstance(msg, HumanMessage)),
969
969
  messages[-1].content
970
- )
970
+ ) if messages else result.get('output')
971
971
  elif printer_output is not None:
972
972
  # Printer node has output (interrupted state)
973
973
  output = printer_output
@@ -981,7 +981,7 @@ class LangGraphAgentRunnable(CompiledStateGraph):
981
981
  )
982
982
  except Exception:
983
983
  # Fallback: try to get last value or last message
984
- output = list(result.values())[-1] if result else None
984
+ output = str(list(result.values())[-1]) if result else 'Output is undefined'
985
985
  config_state = self.get_state(config)
986
986
  is_execution_finished = not config_state.next
987
987
  if is_execution_finished:
@@ -18,6 +18,7 @@ from .skill_router import SkillRouterToolkit
18
18
  from ..tools.mcp_server_tool import McpServerTool
19
19
  from ..tools.sandbox import SandboxToolkit
20
20
  from ..tools.image_generation import ImageGenerationToolkit
21
+ from ..tools.data_analysis import DataAnalysisToolkit
21
22
  # Import community tools
22
23
  from ...community import get_toolkits as community_toolkits, get_tools as community_tools
23
24
  from ...tools.memory import MemoryToolkit
@@ -36,6 +37,7 @@ def get_toolkits():
36
37
  VectorStoreToolkit.toolkit_config_schema(),
37
38
  SandboxToolkit.toolkit_config_schema(),
38
39
  ImageGenerationToolkit.toolkit_config_schema(),
40
+ DataAnalysisToolkit.toolkit_config_schema(),
39
41
  McpToolkit.toolkit_config_schema(),
40
42
  SkillRouterToolkit.toolkit_config_schema()
41
43
  ]
@@ -135,6 +137,19 @@ def get_tools(tools_list: list, alita_client=None, llm=None, memory_store: BaseS
135
137
  pgvector_configuration=tool.get('settings', {}).get('pgvector_configuration'),
136
138
  conversation_id=conversation_id,
137
139
  ).get_tools()
140
+ elif tool['name'] == 'data_analysis':
141
+ # Data Analysis internal tool - uses conversation attachment bucket
142
+ settings = tool.get('settings', {})
143
+ bucket_name = settings.get('bucket_name')
144
+ if bucket_name:
145
+ tools += DataAnalysisToolkit.get_toolkit(
146
+ alita_client=alita_client,
147
+ llm=llm,
148
+ bucket_name=bucket_name,
149
+ ).get_tools()
150
+ else:
151
+ logger.warning("Data Analysis internal tool requested "
152
+ "but no bucket_name provided in settings")
138
153
  elif tool['type'] == 'artifact':
139
154
  tool_handled = True
140
155
  toolkit_tools = ArtifactToolkit.get_toolkit(
@@ -0,0 +1,183 @@
1
+ """
2
+ Data Analysis internal tool for Alita SDK.
3
+
4
+ This tool provides Pandas-based data analysis capabilities as an internal tool,
5
+ accessible through the "Enable internal tools" dropdown menu.
6
+
7
+ It uses the conversation attachment bucket for file storage, providing seamless
8
+ integration with drag-and-drop file uploads in chat.
9
+ """
10
+ import logging
11
+ from typing import Any, List, Literal, Optional, Type
12
+
13
+ from langchain_core.tools import BaseTool, BaseToolkit
14
+ from pydantic import BaseModel, ConfigDict, create_model, Field
15
+
16
+ logger = logging.getLogger(__name__)
17
+
18
+ name = "data_analysis"
19
+
20
+
21
+ def get_tools(tools_list: list, alita_client=None, llm=None, memory_store=None):
22
+ """
23
+ Get data analysis tools for the provided tool configurations.
24
+
25
+ Args:
26
+ tools_list: List of tool configurations
27
+ alita_client: Alita client instance (required for data analysis)
28
+ llm: LLM client instance (required for code generation)
29
+ memory_store: Optional memory store instance (unused)
30
+
31
+ Returns:
32
+ List of data analysis tools
33
+ """
34
+ all_tools = []
35
+
36
+ for tool in tools_list:
37
+ if (tool.get('type') == 'data_analysis' or
38
+ tool.get('toolkit_name') == 'data_analysis'):
39
+ try:
40
+ if not alita_client:
41
+ logger.error("Alita client is required for data analysis tools")
42
+ continue
43
+
44
+ settings = tool.get('settings', {})
45
+ bucket_name = settings.get('bucket_name')
46
+
47
+ if not bucket_name:
48
+ logger.error("bucket_name is required for data analysis tools")
49
+ continue
50
+
51
+ toolkit_instance = DataAnalysisToolkit.get_toolkit(
52
+ alita_client=alita_client,
53
+ llm=llm,
54
+ bucket_name=bucket_name,
55
+ toolkit_name=tool.get('toolkit_name', '')
56
+ )
57
+ all_tools.extend(toolkit_instance.get_tools())
58
+ except Exception as e:
59
+ logger.error(f"Error in data analysis toolkit get_tools: {e}")
60
+ logger.error(f"Tool config: {tool}")
61
+ raise
62
+
63
+ return all_tools
64
+
65
+
66
+ class DataAnalysisToolkit(BaseToolkit):
67
+ """
68
+ Data Analysis toolkit providing Pandas-based data analysis capabilities.
69
+
70
+ This is an internal tool that uses the conversation attachment bucket
71
+ for file storage, enabling seamless integration with chat file uploads.
72
+ """
73
+ tools: List[BaseTool] = []
74
+
75
+ @staticmethod
76
+ def toolkit_config_schema() -> Type[BaseModel]:
77
+ """Get the configuration schema for the data analysis toolkit."""
78
+ # Import PandasWrapper to get available tools schema
79
+ from alita_sdk.tools.pandas.api_wrapper import PandasWrapper
80
+
81
+ selected_tools = {
82
+ x['name']: x['args_schema'].model_json_schema()
83
+ for x in PandasWrapper.model_construct().get_available_tools()
84
+ }
85
+
86
+ return create_model(
87
+ 'data_analysis',
88
+ bucket_name=(
89
+ Optional[str],
90
+ Field(
91
+ default=None,
92
+ title="Bucket name",
93
+ description="Bucket where files are stored (auto-injected from conversation)"
94
+ )
95
+ ),
96
+ selected_tools=(
97
+ List[Literal[tuple(selected_tools)]],
98
+ Field(
99
+ default=[],
100
+ json_schema_extra={'args_schemas': selected_tools}
101
+ )
102
+ ),
103
+ __config__=ConfigDict(json_schema_extra={
104
+ 'metadata': {
105
+ "label": "Data Analysis",
106
+ "icon_url": "data-analysis.svg",
107
+ "hidden": True, # Hidden from regular toolkit menu
108
+ "categories": ["internal_tool"],
109
+ "extra_categories": ["data analysis", "pandas", "dataframes", "data science"],
110
+ }
111
+ })
112
+ )
113
+
114
+ @classmethod
115
+ def get_toolkit(
116
+ cls,
117
+ alita_client=None,
118
+ llm=None,
119
+ bucket_name: str = None,
120
+ toolkit_name: Optional[str] = None,
121
+ selected_tools: Optional[List[str]] = None,
122
+ **kwargs
123
+ ):
124
+ """
125
+ Get toolkit with data analysis tools.
126
+
127
+ Args:
128
+ alita_client: Alita client instance (required)
129
+ llm: LLM for code generation (optional, uses alita_client.llm if not provided)
130
+ bucket_name: Conversation attachment bucket (required)
131
+ toolkit_name: Optional name prefix for tools
132
+ selected_tools: Optional list of tool names to include (default: all)
133
+ **kwargs: Additional arguments
134
+
135
+ Returns:
136
+ DataAnalysisToolkit instance with configured tools
137
+
138
+ Raises:
139
+ ValueError: If alita_client or bucket_name is not provided
140
+ """
141
+ if not alita_client:
142
+ raise ValueError("Alita client is required for data analysis")
143
+
144
+ if not bucket_name:
145
+ raise ValueError("bucket_name is required for data analysis (should be conversation attachment bucket)")
146
+
147
+ # Import the PandasWrapper from existing toolkit
148
+ from alita_sdk.tools.pandas.api_wrapper import PandasWrapper
149
+ from alita_sdk.tools.base.tool import BaseAction
150
+
151
+ # Create wrapper with conversation bucket
152
+ wrapper = PandasWrapper(
153
+ alita=alita_client,
154
+ llm=llm,
155
+ bucket_name=bucket_name
156
+ )
157
+
158
+ # Get tools from wrapper
159
+ available_tools = wrapper.get_available_tools()
160
+ tools = []
161
+
162
+ for tool in available_tools:
163
+ # Filter by selected_tools if provided
164
+ if selected_tools and tool["name"] not in selected_tools:
165
+ continue
166
+
167
+ description = tool["description"]
168
+ if toolkit_name:
169
+ description = f"Toolkit: {toolkit_name}\n{description}"
170
+ description = description[:1000]
171
+
172
+ tools.append(BaseAction(
173
+ api_wrapper=wrapper,
174
+ name=tool["name"],
175
+ description=description,
176
+ args_schema=tool["args_schema"],
177
+ metadata={"toolkit_name": toolkit_name} if toolkit_name else {}
178
+ ))
179
+
180
+ return cls(tools=tools)
181
+
182
+ def get_tools(self):
183
+ return self.tools
@@ -102,7 +102,7 @@ _safe_import_tool('k8s', 'cloud.k8s', None, 'KubernetesToolkit')
102
102
  _safe_import_tool('elastic', 'elastic', None, 'ElasticToolkit')
103
103
  _safe_import_tool('keycloak', 'keycloak', None, 'KeycloakToolkit')
104
104
  _safe_import_tool('localgit', 'localgit', None, 'AlitaLocalGitToolkit')
105
- _safe_import_tool('pandas', 'pandas', 'get_tools', 'PandasToolkit')
105
+ # pandas toolkit removed - use Data Analysis internal tool instead
106
106
  _safe_import_tool('azure_search', 'azure_ai.search', 'get_tools', 'AzureSearchToolkit')
107
107
  _safe_import_tool('figma', 'figma', 'get_tools', 'FigmaToolkit')
108
108
  _safe_import_tool('salesforce', 'salesforce', 'get_tools', 'SalesforceToolkit')
@@ -2,6 +2,7 @@
2
2
  import fnmatch
3
3
  from typing import Any, Dict, List, Optional
4
4
 
5
+ from gitlab import GitlabGetError
5
6
  from langchain_core.tools import ToolException
6
7
  from pydantic import create_model, Field, model_validator, SecretStr, PrivateAttr
7
8
 
@@ -9,6 +10,7 @@ from ..code_indexer_toolkit import CodeIndexerToolkit
9
10
  from ..utils.available_tools_decorator import extend_with_parent_available_tools
10
11
  from ..elitea_base import extend_with_file_operations, BaseCodeToolApiWrapper
11
12
  from ..utils.content_parser import parse_file_content
13
+ from .utils import get_position
12
14
 
13
15
  AppendFileModel = create_model(
14
16
  "AppendFileModel",
@@ -35,7 +37,7 @@ ReadFileModel = create_model(
35
37
  )
36
38
  UpdateFileModel = create_model(
37
39
  "UpdateFileModel",
38
- file_query=(str, Field(description="The file query string")),
40
+ file_query=(str, Field(description="The file query string containing file path on first line, followed by OLD/NEW markers. Format: file_path\\nOLD <<<< old content >>>> OLD\\nNEW <<<< new content >>>> NEW")),
39
41
  branch=(str, Field(description="The branch to update the file in")),
40
42
  )
41
43
  CommentOnIssueModel = create_model(
@@ -90,9 +92,9 @@ GetPRChangesModel = create_model(
90
92
  CreatePRChangeCommentModel = create_model(
91
93
  "CreatePRChangeCommentModel",
92
94
  pr_number=(int, Field(description="GitLab Merge Request (Pull Request) number")),
93
- file_path=(str, Field(description="File path of the changed file")),
94
- line_number=(int, Field(description="Line number from the diff for a changed file")),
95
- comment=(str, Field(description="Comment content")),
95
+ file_path=(str, Field(description="File path of the changed file as shown in the diff")),
96
+ line_number=(int, Field(description="Line index (0-based) from the diff output. Use get_pr_changes first to see the diff and identify the correct line index to comment on.")),
97
+ comment=(str, Field(description="Comment content to add to the specific line")),
96
98
  )
97
99
  GetCommitsModel = create_model(
98
100
  "GetCommitsModel",
@@ -235,6 +237,8 @@ class GitLabAPIWrapper(CodeIndexerToolkit):
235
237
  Returns:
236
238
  File content as string
237
239
  """
240
+ # Default to active branch if branch is None, consistent with other methods
241
+ branch = branch if branch else self._active_branch
238
242
  return self.read_file(file_path, branch)
239
243
 
240
244
  def create_branch(self, branch_name: str) -> str:
@@ -323,6 +327,8 @@ class GitLabAPIWrapper(CodeIndexerToolkit):
323
327
  return "Unable to make comment due to error:\n" + str(e)
324
328
 
325
329
  def create_file(self, file_path: str, file_contents: str, branch: str) -> str:
330
+ # Default to active branch if branch is None
331
+ branch = branch if branch else self._active_branch
326
332
  try:
327
333
  self.set_active_branch(branch)
328
334
  self.repo_instance.files.get(file_path, branch)
@@ -339,6 +345,8 @@ class GitLabAPIWrapper(CodeIndexerToolkit):
339
345
  return "Created file " + file_path
340
346
 
341
347
  def read_file(self, file_path: str, branch: str) -> str:
348
+ # Default to active branch if branch is None
349
+ branch = branch if branch else self._active_branch
342
350
  self.set_active_branch(branch)
343
351
  file = self.repo_instance.files.get(file_path, branch)
344
352
  return parse_file_content(file_name=file_path,
@@ -406,43 +414,52 @@ class GitLabAPIWrapper(CodeIndexerToolkit):
406
414
  raise ToolException(f"Unable to write file {file_path}: {str(e)}")
407
415
 
408
416
  def update_file(self, file_query: str, branch: str) -> str:
417
+ """
418
+ Update file using edit_file functionality.
419
+
420
+ This method now delegates to edit_file which uses OLD/NEW markers.
421
+ For backwards compatibility, it extracts the file_path from the query.
422
+
423
+ Expected format:
424
+ file_path
425
+ OLD <<<<
426
+ old content
427
+ >>>> OLD
428
+ NEW <<<<
429
+ new content
430
+ >>>> NEW
431
+
432
+ Args:
433
+ file_query: File path on first line, followed by OLD/NEW markers
434
+ branch: Branch to update the file in
435
+
436
+ Returns:
437
+ Success or error message
438
+ """
409
439
  if branch == self.branch:
410
440
  return (
411
- "You're attempting to commit to the directly"
441
+ "You're attempting to commit directly "
412
442
  f"to the {self.branch} branch, which is protected. "
413
443
  "Please create a new branch and try again."
414
444
  )
415
445
  try:
416
- file_path: str = file_query.split("\n")[0]
417
- self.set_active_branch(branch)
418
- file_content = self.read_file(file_path, branch)
419
- updated_file_content = file_content
420
- for old, new in self.extract_old_new_pairs(file_query):
421
- if not old.strip():
422
- continue
423
- updated_file_content = updated_file_content.replace(old, new)
424
-
425
- if file_content == updated_file_content:
446
+ # Extract file path from first line
447
+ lines = file_query.split("\n", 1)
448
+ if len(lines) < 2:
426
449
  return (
427
- "File content was not updated because old content was not found or empty."
428
- "It may be helpful to use the read_file action to get "
429
- "the current file contents."
450
+ "Invalid file_query format. Expected:\n"
451
+ "file_path\n"
452
+ "OLD <<<< old content >>>> OLD\n"
453
+ "NEW <<<< new content >>>> NEW"
430
454
  )
431
455
 
432
- commit = {
433
- "branch": branch,
434
- "commit_message": "Create " + file_path,
435
- "actions": [
436
- {
437
- "action": "update",
438
- "file_path": file_path,
439
- "content": updated_file_content,
440
- }
441
- ],
442
- }
456
+ file_path = lines[0].strip()
457
+ edit_content = lines[1] if len(lines) > 1 else ""
458
+
459
+ # Delegate to edit_file method with appropriate commit message
460
+ commit_message = f"Update {file_path}"
461
+ return self.edit_file(file_path, edit_content, branch, commit_message)
443
462
 
444
- self.repo_instance.commits.create(commit)
445
- return "Updated file " + file_path
446
463
  except Exception as e:
447
464
  return "Unable to update file due to error:\n" + str(e)
448
465
 
@@ -494,10 +511,41 @@ class GitLabAPIWrapper(CodeIndexerToolkit):
494
511
  return res
495
512
 
496
513
  def create_pr_change_comment(self, pr_number: int, file_path: str, line_number: int, comment: str) -> str:
497
- mr = self.repo_instance.mergerequests.get(pr_number)
498
- position = {"position_type": "text", "new_path": file_path, "new_line": line_number}
499
- mr.discussions.create({"body": comment, "position": position})
500
- return "Comment added"
514
+ """
515
+ Create a comment on a specific line in a pull request (merge request) change in GitLab.
516
+
517
+ This method adds an inline comment to a specific line in the diff of a merge request.
518
+ The line_number parameter refers to the line index in the diff output (0-based),
519
+ not the line number in the original file.
520
+
521
+ **Important**: Use get_pr_changes first to see the diff and identify the correct
522
+ line index for commenting.
523
+
524
+ Parameters:
525
+ pr_number: GitLab Merge Request number
526
+ file_path: Path to the file being commented on (as shown in the diff)
527
+ line_number: Line index from the diff (0-based index)
528
+ comment: Comment text to add
529
+
530
+ Returns:
531
+ Success message or error description
532
+ """
533
+ try:
534
+ mr = self.repo_instance.mergerequests.get(pr_number)
535
+ except GitlabGetError as e:
536
+ if e.response_code == 404:
537
+ raise ToolException(f"Merge request number {pr_number} wasn't found: {e}")
538
+ raise ToolException(f"Error retrieving merge request {pr_number}: {e}")
539
+
540
+ try:
541
+ # Calculate proper position with SHA references and line mappings
542
+ position = get_position(file_path=file_path, line_number=line_number, mr=mr)
543
+
544
+ # Create discussion with the comment
545
+ mr.discussions.create({"body": comment, "position": position})
546
+ return f"Comment added successfully to line {line_number} in {file_path} on MR #{pr_number}"
547
+ except Exception as e:
548
+ raise ToolException(f"Failed to create comment on MR #{pr_number}: {e}")
501
549
 
502
550
  def get_commits(self, sha: Optional[str] = None, path: Optional[str] = None, since: Optional[str] = None, until: Optional[str] = None, author: Optional[str] = None):
503
551
  params = {}
@@ -620,7 +668,7 @@ class GitLabAPIWrapper(CodeIndexerToolkit):
620
668
  {
621
669
  "name": "create_pr_change_comment",
622
670
  "ref": self.create_pr_change_comment,
623
- "description": "Create a comment on a pull request change.",
671
+ "description": self.create_pr_change_comment.__doc__ or "Create an inline comment on a specific line in a pull request change. Use get_pr_changes first to see the diff and identify the line index for commenting. The line_number is a 0-based index from the diff output, not the file line number.",
624
672
  "args_schema": CreatePRChangeCommentModel,
625
673
  },
626
674
  {
@@ -29,9 +29,14 @@ class PandasToolkit(BaseToolkit):
29
29
  name,
30
30
  bucket_name=(str, Field(default=None, title="Bucket name", description="Bucket where the content file is stored")),
31
31
  selected_tools=(List[Literal[tuple(selected_tools)]], Field(default=[], json_schema_extra={'args_schemas': selected_tools})),
32
- __config__=ConfigDict(json_schema_extra={'metadata': {"label": "Pandas", "icon_url": "pandas-icon.svg",
33
- "categories": ["analysis"],
34
- "extra_categories": ["data science", "data manipulation", "dataframes"]}})
32
+ __config__=ConfigDict(json_schema_extra={'metadata': {
33
+ "label": "Pandas (Deprecated)",
34
+ "icon_url": "pandas-icon.svg",
35
+ "categories": ["analysis"],
36
+ "deprecated": True,
37
+ "deprecation_message": "This toolkit is deprecated. Use the 'Data Analysis' internal tool instead. Enable it via the 'Internal Tools' menu in chat.",
38
+ "extra_categories": ["data science", "data manipulation", "dataframes"]
39
+ }})
35
40
  )
36
41
 
37
42
  @classmethod
@@ -158,21 +158,17 @@ class PandasWrapper(BaseToolApiWrapper):
158
158
  f"Retrying Code Generation ({attempts}/{max_retries})..."
159
159
  )
160
160
 
161
- def process_query(self, query: str, filename: str) -> str:
162
- """Analyze and process using query on dataset"""
161
+ def analyse_data(self, query: str, filename: str) -> str:
162
+ """Analyze data from a file using natural language query. Supports CSV, Excel, Parquet, JSON, and other common data formats."""
163
163
  df = self._get_dataframe(filename)
164
164
  code = self.generate_code_with_retries(df, query)
165
- self._log_tool_event(tool_name="process_query",
165
+ self._log_tool_event(tool_name="analyse_data",
166
166
  message=f"Executing generated code... \n\n```python\n{code}\n```")
167
167
  try:
168
168
  result = self.execute_code(df, code)
169
169
  except Exception as e:
170
170
  logger.error(f"Code execution failed: {format_exc()}")
171
- self._log_tool_event(tool_name="process_query",
172
- message=f"Executing generated code... \n\n```python\n{code}\n```")
173
171
  raise
174
- self._log_tool_event(tool_name="process_query",
175
- message=f"Executing generated code... \n\n```python\n{code}\n```")
176
172
  if result.get("df") is not None:
177
173
  df = result.pop("df")
178
174
  # Not saving dataframe to artifact repo for now
@@ -253,23 +249,13 @@ class PandasWrapper(BaseToolApiWrapper):
253
249
  def get_available_tools(self):
254
250
  return [
255
251
  {
256
- "name": "process_query",
257
- "ref": self.process_query,
258
- "description": self.process_query.__doc__,
259
- "args_schema": create_model(
260
- "ProcessQueryModel",
261
- query=(str, Field(description="Task to solve")),
262
- filename=(str, Field(description="File to be processed"))
263
- )
264
- },
265
- {
266
- "name": "save_dataframe",
267
- "ref": self.save_dataframe,
268
- "description": self.save_dataframe.__doc__,
252
+ "name": "analyse_data",
253
+ "ref": self.analyse_data,
254
+ "description": self.analyse_data.__doc__,
269
255
  "args_schema": create_model(
270
- "SaveDataFrameModel",
271
- source_df=(str, Field(description="Source dataframe file to be saved")),
272
- target_file=(str, Field(description="Target filename with extension for saving"))
256
+ "AnalyseDataModel",
257
+ query=(str, Field(description="Natural language query describing what analysis to perform on the data")),
258
+ filename=(str, Field(description="Name of the file to analyze (e.g., 'data.csv', 'report.xlsx')"))
273
259
  )
274
260
  }
275
261
  ]
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: alita_sdk
3
- Version: 0.3.553
3
+ Version: 0.3.558
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
@@ -68,11 +68,11 @@ Requires-Dist: pytesseract==0.3.13; extra == "runtime"
68
68
  Requires-Dist: markdown==3.5.1; extra == "runtime"
69
69
  Requires-Dist: beautifulsoup4==4.12.2; extra == "runtime"
70
70
  Requires-Dist: charset_normalizer==3.3.2; extra == "runtime"
71
- Requires-Dist: opentelemetry-exporter-otlp-proto-grpc==1.25.0; extra == "runtime"
72
- Requires-Dist: opentelemetry_api==1.25.0; extra == "runtime"
73
- Requires-Dist: opentelemetry_instrumentation==0.46b0; extra == "runtime"
74
- Requires-Dist: grpcio_status==1.63.0rc1; extra == "runtime"
75
- Requires-Dist: protobuf==4.25.7; extra == "runtime"
71
+ Requires-Dist: opentelemetry-exporter-otlp-proto-grpc>=1.25.0; extra == "runtime"
72
+ Requires-Dist: opentelemetry_api>=1.25.0; extra == "runtime"
73
+ Requires-Dist: opentelemetry_instrumentation>=0.46b0; extra == "runtime"
74
+ Requires-Dist: grpcio_status>=1.63.0rc1; extra == "runtime"
75
+ Requires-Dist: protobuf>=4.25.7; extra == "runtime"
76
76
  Requires-Dist: langchain-sandbox>=0.0.6; extra == "runtime"
77
77
  Provides-Extra: tools
78
78
  Requires-Dist: dulwich==0.21.6; extra == "tools"
@@ -190,6 +190,7 @@ alita_sdk/runtime/tools/__init__.py
190
190
  alita_sdk/runtime/tools/agent.py
191
191
  alita_sdk/runtime/tools/application.py
192
192
  alita_sdk/runtime/tools/artifact.py
193
+ alita_sdk/runtime/tools/data_analysis.py
193
194
  alita_sdk/runtime/tools/datasource.py
194
195
  alita_sdk/runtime/tools/echo.py
195
196
  alita_sdk/runtime/tools/function.py
@@ -80,11 +80,11 @@ pytesseract==0.3.13
80
80
  markdown==3.5.1
81
81
  beautifulsoup4==4.12.2
82
82
  charset_normalizer==3.3.2
83
- opentelemetry-exporter-otlp-proto-grpc==1.25.0
84
- opentelemetry_api==1.25.0
85
- opentelemetry_instrumentation==0.46b0
86
- grpcio_status==1.63.0rc1
87
- protobuf==4.25.7
83
+ opentelemetry-exporter-otlp-proto-grpc>=1.25.0
84
+ opentelemetry_api>=1.25.0
85
+ opentelemetry_instrumentation>=0.46b0
86
+ grpcio_status>=1.63.0rc1
87
+ protobuf>=4.25.7
88
88
  langchain-sandbox>=0.0.6
89
89
 
90
90
  [tools]
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "alita_sdk"
7
- version = "0.3.553"
7
+ version = "0.3.558"
8
8
  description = "SDK for building langchain agents using resources from Alita"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.10"
@@ -32,7 +32,7 @@ name = "Artem Dubrovskiy"
32
32
  email = "ad13box@gmail.com"
33
33
 
34
34
  [project.optional-dependencies]
35
- runtime = [ "streamlit>=1.28.0", "langchain_core>=0.3.76,<0.4.0", "langchain>=0.3.22,<0.4.0", "langchain_community>=0.3.7,<0.4.0", "langchain-openai>=0.3.0,<0.4.0", "langchain-anthropic>=0.3.20,<0.4.0", "anthropic>=0.57.0", "langgraph>=0.4.8,<0.5", "langgraph-prebuilt==0.5.2", "langgraph-checkpoint-sqlite~=2.0.0", "langgraph-checkpoint-postgres==2.0.21", "langsmith>=0.3.45", "langchain_chroma>=0.2.2,<0.3.0", "chromadb==0.5.20", "pgvector==0.2.5", "langchain-unstructured~=0.1.6", "langchain-postgres~=0.0.13", "unstructured[local-inference]==0.16.23", "unstructured_pytesseract==0.3.13", "unstructured_inference==0.8.7", "python-pptx==1.0.2", "python-docx==1.1.2", "openpyxl==3.1.2", "pypdf==4.3.1", "pdfminer.six==20240706", "pdf2image==1.16.3", "pikepdf==8.7.1", "docx2txt==0.8", "mammoth==1.9.0", "reportlab==4.2.5", "svglib==1.5.1", "cairocffi==1.7.1", "rlpycairo==0.3.0", "keybert==0.8.3", "sentence-transformers==2.7.0", "gensim==4.3.3", "scipy==1.13.1", "opencv-python==4.11.0.86", "pytesseract==0.3.13", "markdown==3.5.1", "beautifulsoup4==4.12.2", "charset_normalizer==3.3.2", "opentelemetry-exporter-otlp-proto-grpc==1.25.0", "opentelemetry_api==1.25.0", "opentelemetry_instrumentation==0.46b0", "grpcio_status==1.63.0rc1", "protobuf==4.25.7", "langchain-sandbox>=0.0.6",]
35
+ runtime = [ "streamlit>=1.28.0", "langchain_core>=0.3.76,<0.4.0", "langchain>=0.3.22,<0.4.0", "langchain_community>=0.3.7,<0.4.0", "langchain-openai>=0.3.0,<0.4.0", "langchain-anthropic>=0.3.20,<0.4.0", "anthropic>=0.57.0", "langgraph>=0.4.8,<0.5", "langgraph-prebuilt==0.5.2", "langgraph-checkpoint-sqlite~=2.0.0", "langgraph-checkpoint-postgres==2.0.21", "langsmith>=0.3.45", "langchain_chroma>=0.2.2,<0.3.0", "chromadb==0.5.20", "pgvector==0.2.5", "langchain-unstructured~=0.1.6", "langchain-postgres~=0.0.13", "unstructured[local-inference]==0.16.23", "unstructured_pytesseract==0.3.13", "unstructured_inference==0.8.7", "python-pptx==1.0.2", "python-docx==1.1.2", "openpyxl==3.1.2", "pypdf==4.3.1", "pdfminer.six==20240706", "pdf2image==1.16.3", "pikepdf==8.7.1", "docx2txt==0.8", "mammoth==1.9.0", "reportlab==4.2.5", "svglib==1.5.1", "cairocffi==1.7.1", "rlpycairo==0.3.0", "keybert==0.8.3", "sentence-transformers==2.7.0", "gensim==4.3.3", "scipy==1.13.1", "opencv-python==4.11.0.86", "pytesseract==0.3.13", "markdown==3.5.1", "beautifulsoup4==4.12.2", "charset_normalizer==3.3.2", "opentelemetry-exporter-otlp-proto-grpc>=1.25.0", "opentelemetry_api>=1.25.0", "opentelemetry_instrumentation>=0.46b0", "grpcio_status>=1.63.0rc1", "protobuf>=4.25.7", "langchain-sandbox>=0.0.6",]
36
36
  tools = [ "dulwich==0.21.6", "paramiko==3.3.1", "pygithub==2.3.0", "python-gitlab==4.5.0", "gitpython==3.1.43", "atlassian-python-api~=4.0.7", "jira==3.8.0", "qtest-swagger-client==0.0.3", "testrail-api==1.13.4", "azure-devops==7.1.0b4", "msrest==0.7.1", "python-graphql-client~=0.4.3", "zephyr-python-api==0.1.0", "pyral==1.6.0", "boto3>=1.37.23", "azure-core==1.30.2", "azure-identity==1.16.0", "azure-keyvault-keys==4.9.0", "azure-keyvault-secrets==4.8.0", "azure-mgmt-core==1.4.0", "azure-mgmt-resource==23.0.1", "azure-mgmt-storage==21.1.0", "azure-storage-blob==12.23.1", "azure-search-documents==11.5.2", "PyMySQL==1.1.1", "psycopg2-binary==2.9.10", "Office365-REST-Python-Client==2.5.14", "pypdf2~=3.0.1", "FigmaPy==2018.1.0", "pandas==2.2.3", "factor_analyzer==0.5.1", "statsmodels==0.14.4", "tabulate==0.9.0", "tree_sitter==0.20.2", "tree-sitter-languages==1.10.2", "astor~=0.8.1", "markdownify~=1.1.0", "requests_openapi==1.0.5", "duckduckgo_search==5.3.0", "playwright>=1.52.0", "google-api-python-client==2.154.0", "wikipedia==1.4.0", "lxml==5.2.2", "pymupdf==1.24.9", "googlemaps==4.10.0", "yagmail==0.15.293", "pysnc==1.1.10", "shortuuid==1.0.13", "yarl==1.17.1", "langmem==0.0.27", "textract-py3==2.1.1", "slack_sdk==3.35.0", "deltalake==1.0.2", "google_cloud_bigquery==3.34.0", "python-calamine==0.5.3",]
37
37
  community = [ "retry-extended==0.2.3", "pyobjtojson==0.3", "elitea-analyse==0.1.2", "networkx>=3.0",]
38
38
  all = [ "alita-sdk[runtime]", "alita-sdk[tools]", "alita-sdk[community]",]
File without changes
File without changes