alita-sdk 0.3.163__tar.gz → 0.3.165__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 (342) hide show
  1. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/PKG-INFO +4 -3
  2. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/runtime/langchain/assistant.py +2 -2
  3. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/runtime/langchain/store_manager.py +22 -1
  4. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/runtime/toolkits/tools.py +1 -1
  5. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/tools/__init__.py +6 -1
  6. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/tools/carrier/api_wrapper.py +2 -2
  7. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/tools/carrier/backend_reports_tool.py +31 -12
  8. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/tools/carrier/backend_tests_tool.py +14 -8
  9. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/tools/carrier/carrier_sdk.py +34 -18
  10. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/tools/carrier/create_ui_excel_report_tool.py +1 -1
  11. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/tools/github/github_client.py +9 -1
  12. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/tools/memory/__init__.py +7 -0
  13. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/tools/postman/__init__.py +7 -0
  14. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/tools/postman/api_wrapper.py +335 -0
  15. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk.egg-info/PKG-INFO +4 -3
  16. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk.egg-info/requires.txt +3 -2
  17. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/pyproject.toml +3 -3
  18. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/LICENSE +0 -0
  19. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/README.md +0 -0
  20. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/__init__.py +0 -0
  21. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/community/__init__.py +0 -0
  22. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/community/analysis/__init__.py +0 -0
  23. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/community/analysis/ado_analyse/__init__.py +0 -0
  24. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/community/analysis/ado_analyse/api_wrapper.py +0 -0
  25. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/community/analysis/github_analyse/__init__.py +0 -0
  26. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/community/analysis/github_analyse/api_wrapper.py +0 -0
  27. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/community/analysis/gitlab_analyse/__init__.py +0 -0
  28. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/community/analysis/gitlab_analyse/api_wrapper.py +0 -0
  29. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/community/analysis/jira_analyse/__init__.py +0 -0
  30. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/community/analysis/jira_analyse/api_wrapper.py +0 -0
  31. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/community/browseruse/__init__.py +0 -0
  32. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/community/browseruse/api_wrapper.py +0 -0
  33. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/community/deep_researcher/__init__.py +0 -0
  34. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/community/deep_researcher/agents/__init__.py +0 -0
  35. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/community/deep_researcher/agents/baseclass.py +0 -0
  36. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/community/deep_researcher/agents/knowledge_gap_agent.py +0 -0
  37. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/community/deep_researcher/agents/long_writer_agent.py +0 -0
  38. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/community/deep_researcher/agents/planner_agent.py +0 -0
  39. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/community/deep_researcher/agents/proofreader_agent.py +0 -0
  40. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/community/deep_researcher/agents/thinking_agent.py +0 -0
  41. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/community/deep_researcher/agents/tool_agents/__init__.py +0 -0
  42. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/community/deep_researcher/agents/tool_agents/crawl_agent.py +0 -0
  43. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/community/deep_researcher/agents/tool_agents/search_agent.py +0 -0
  44. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/community/deep_researcher/agents/tool_selector_agent.py +0 -0
  45. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/community/deep_researcher/agents/utils/__init__.py +0 -0
  46. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/community/deep_researcher/agents/utils/parse_output.py +0 -0
  47. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/community/deep_researcher/agents/writer_agent.py +0 -0
  48. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/community/deep_researcher/api_wrapper.py +0 -0
  49. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/community/deep_researcher/deep_research.py +0 -0
  50. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/community/deep_researcher/examples/deep_example.py +0 -0
  51. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/community/deep_researcher/examples/iterative_example.py +0 -0
  52. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/community/deep_researcher/examples/report_plan_example.py +0 -0
  53. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/community/deep_researcher/iterative_research.py +0 -0
  54. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/community/deep_researcher/llm_config.py +0 -0
  55. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/community/deep_researcher/main.py +0 -0
  56. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/community/deep_researcher/tools/__init__.py +0 -0
  57. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/community/deep_researcher/tools/crawl_website.py +0 -0
  58. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/community/deep_researcher/tools/web_search.py +0 -0
  59. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/community/deep_researcher/utils/__init__.py +0 -0
  60. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/community/deep_researcher/utils/md_to_pdf.py +0 -0
  61. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/community/deep_researcher/utils/os.py +0 -0
  62. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/community/utils.py +0 -0
  63. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/runtime/__init__.py +0 -0
  64. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/runtime/clients/__init__.py +0 -0
  65. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/runtime/clients/artifact.py +0 -0
  66. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/runtime/clients/client.py +0 -0
  67. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/runtime/clients/datasource.py +0 -0
  68. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/runtime/clients/prompt.py +0 -0
  69. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/runtime/langchain/__init__.py +0 -0
  70. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/runtime/langchain/agents/__init__.py +0 -0
  71. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/runtime/langchain/agents/xml_chat.py +0 -0
  72. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/runtime/langchain/chat_message_template.py +0 -0
  73. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/runtime/langchain/constants.py +0 -0
  74. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/runtime/langchain/document_loaders/AlitaBDDScenariosLoader.py +0 -0
  75. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/runtime/langchain/document_loaders/AlitaCSVLoader.py +0 -0
  76. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/runtime/langchain/document_loaders/AlitaConfluenceLoader.py +0 -0
  77. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/runtime/langchain/document_loaders/AlitaDirectoryLoader.py +0 -0
  78. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/runtime/langchain/document_loaders/AlitaDocxMammothLoader.py +0 -0
  79. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/runtime/langchain/document_loaders/AlitaExcelLoader.py +0 -0
  80. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/runtime/langchain/document_loaders/AlitaGitRepoLoader.py +0 -0
  81. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/runtime/langchain/document_loaders/AlitaImageLoader.py +0 -0
  82. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/runtime/langchain/document_loaders/AlitaJiraLoader.py +0 -0
  83. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/runtime/langchain/document_loaders/AlitaQtestLoader.py +0 -0
  84. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/runtime/langchain/document_loaders/AlitaTableLoader.py +0 -0
  85. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/runtime/langchain/document_loaders/__init__.py +0 -0
  86. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/runtime/langchain/document_loaders/constants.py +0 -0
  87. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/runtime/langchain/document_loaders/utils.py +0 -0
  88. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/runtime/langchain/indexer.py +0 -0
  89. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/runtime/langchain/interfaces/__init__.py +0 -0
  90. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/runtime/langchain/interfaces/kwextractor.py +0 -0
  91. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/runtime/langchain/interfaces/llm_processor.py +0 -0
  92. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/runtime/langchain/interfaces/loaders.py +0 -0
  93. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/runtime/langchain/interfaces/splitters.py +0 -0
  94. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/runtime/langchain/langraph_agent.py +0 -0
  95. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/runtime/langchain/mixedAgentParser.py +0 -0
  96. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/runtime/langchain/mixedAgentRenderes.py +0 -0
  97. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/runtime/langchain/retrievers/AlitaRetriever.py +0 -0
  98. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/runtime/langchain/retrievers/VectorstoreRetriever.py +0 -0
  99. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/runtime/langchain/retrievers/__init__.py +0 -0
  100. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/runtime/langchain/tools/__init__.py +0 -0
  101. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/runtime/langchain/tools/bdd_parser/__init__.py +0 -0
  102. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/runtime/langchain/tools/bdd_parser/bdd_exceptions.py +0 -0
  103. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/runtime/langchain/tools/bdd_parser/bdd_parser.py +0 -0
  104. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/runtime/langchain/tools/bdd_parser/feature_types.py +0 -0
  105. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/runtime/langchain/tools/bdd_parser/parser.py +0 -0
  106. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/runtime/langchain/tools/git.py +0 -0
  107. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/runtime/langchain/tools/log.py +0 -0
  108. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/runtime/langchain/tools/quota.py +0 -0
  109. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/runtime/langchain/tools/state.py +0 -0
  110. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/runtime/langchain/tools/utils.py +0 -0
  111. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/runtime/langchain/tools/vector.py +0 -0
  112. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/runtime/langchain/utils.py +0 -0
  113. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/runtime/llms/__init__.py +0 -0
  114. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/runtime/llms/alita.py +0 -0
  115. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/runtime/llms/preloaded.py +0 -0
  116. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/runtime/toolkits/__init__.py +0 -0
  117. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/runtime/toolkits/application.py +0 -0
  118. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/runtime/toolkits/artifact.py +0 -0
  119. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/runtime/toolkits/datasource.py +0 -0
  120. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/runtime/toolkits/prompt.py +0 -0
  121. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/runtime/toolkits/subgraph.py +0 -0
  122. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/runtime/toolkits/vectorstore.py +0 -0
  123. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/runtime/tools/__init__.py +0 -0
  124. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/runtime/tools/agent.py +0 -0
  125. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/runtime/tools/application.py +0 -0
  126. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/runtime/tools/artifact.py +0 -0
  127. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/runtime/tools/datasource.py +0 -0
  128. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/runtime/tools/echo.py +0 -0
  129. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/runtime/tools/function.py +0 -0
  130. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/runtime/tools/indexer_tool.py +0 -0
  131. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/runtime/tools/llm.py +0 -0
  132. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/runtime/tools/loop.py +0 -0
  133. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/runtime/tools/loop_output.py +0 -0
  134. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/runtime/tools/mcp_server_tool.py +0 -0
  135. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/runtime/tools/pgvector_search.py +0 -0
  136. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/runtime/tools/prompt.py +0 -0
  137. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/runtime/tools/router.py +0 -0
  138. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/runtime/tools/tool.py +0 -0
  139. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/runtime/tools/vectorstore.py +0 -0
  140. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/runtime/utils/AlitaCallback.py +0 -0
  141. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/runtime/utils/__init__.py +0 -0
  142. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/runtime/utils/constants.py +0 -0
  143. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/runtime/utils/evaluate.py +0 -0
  144. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/runtime/utils/logging.py +0 -0
  145. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/runtime/utils/save_dataframe.py +0 -0
  146. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/runtime/utils/streamlit.py +0 -0
  147. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/runtime/utils/utils.py +0 -0
  148. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/tools/ado/__init__.py +0 -0
  149. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/tools/ado/repos/__init__.py +0 -0
  150. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/tools/ado/repos/repos_wrapper.py +0 -0
  151. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/tools/ado/test_plan/__init__.py +0 -0
  152. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/tools/ado/test_plan/test_plan_wrapper.py +0 -0
  153. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/tools/ado/utils.py +0 -0
  154. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/tools/ado/wiki/__init__.py +0 -0
  155. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/tools/ado/wiki/ado_wrapper.py +0 -0
  156. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/tools/ado/work_item/__init__.py +0 -0
  157. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/tools/ado/work_item/ado_wrapper.py +0 -0
  158. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/tools/advanced_jira_mining/__init__.py +0 -0
  159. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/tools/advanced_jira_mining/data_mining_wrapper.py +0 -0
  160. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/tools/azure_ai/__init__.py +0 -0
  161. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/tools/azure_ai/search/__init__.py +0 -0
  162. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/tools/azure_ai/search/api_wrapper.py +0 -0
  163. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/tools/base/__init__.py +0 -0
  164. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/tools/base/tool.py +0 -0
  165. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/tools/bitbucket/__init__.py +0 -0
  166. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/tools/bitbucket/api_wrapper.py +0 -0
  167. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/tools/bitbucket/bitbucket_constants.py +0 -0
  168. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/tools/bitbucket/cloud_api_wrapper.py +0 -0
  169. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/tools/bitbucket/tools.py +0 -0
  170. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/tools/browser/__init__.py +0 -0
  171. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/tools/browser/crawler.py +0 -0
  172. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/tools/browser/duck_duck_go_search.py +0 -0
  173. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/tools/browser/google_search_rag.py +0 -0
  174. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/tools/browser/utils.py +0 -0
  175. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/tools/browser/wiki.py +0 -0
  176. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/tools/carrier/__init__.py +0 -0
  177. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/tools/carrier/cancel_ui_test_tool.py +0 -0
  178. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/tools/carrier/create_ui_test_tool.py +0 -0
  179. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/tools/carrier/excel_reporter.py +0 -0
  180. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/tools/carrier/lighthouse_excel_reporter.py +0 -0
  181. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/tools/carrier/run_ui_test_tool.py +0 -0
  182. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/tools/carrier/tickets_tool.py +0 -0
  183. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/tools/carrier/tools.py +0 -0
  184. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/tools/carrier/ui_reports_tool.py +0 -0
  185. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/tools/carrier/update_ui_test_schedule_tool.py +0 -0
  186. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/tools/carrier/utils.py +0 -0
  187. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/tools/chunkers/__init__.py +0 -0
  188. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/tools/chunkers/code/__init__.py +0 -0
  189. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/tools/chunkers/code/codeparser.py +0 -0
  190. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/tools/chunkers/code/constants.py +0 -0
  191. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/tools/chunkers/code/treesitter/__init__.py +0 -0
  192. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/tools/chunkers/code/treesitter/treesitter.py +0 -0
  193. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/tools/chunkers/code/treesitter/treesitter_c.py +0 -0
  194. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/tools/chunkers/code/treesitter/treesitter_cpp.py +0 -0
  195. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/tools/chunkers/code/treesitter/treesitter_cs.py +0 -0
  196. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/tools/chunkers/code/treesitter/treesitter_go.py +0 -0
  197. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/tools/chunkers/code/treesitter/treesitter_hs.py +0 -0
  198. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/tools/chunkers/code/treesitter/treesitter_java.py +0 -0
  199. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/tools/chunkers/code/treesitter/treesitter_js.py +0 -0
  200. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/tools/chunkers/code/treesitter/treesitter_kt.py +0 -0
  201. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/tools/chunkers/code/treesitter/treesitter_py.py +0 -0
  202. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/tools/chunkers/code/treesitter/treesitter_rb.py +0 -0
  203. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/tools/chunkers/code/treesitter/treesitter_registry.py +0 -0
  204. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/tools/chunkers/code/treesitter/treesitter_rs.py +0 -0
  205. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/tools/chunkers/code/treesitter/treesitter_ts.py +0 -0
  206. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/tools/chunkers/models.py +0 -0
  207. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/tools/chunkers/sematic/__init__.py +0 -0
  208. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/tools/chunkers/sematic/base.py +0 -0
  209. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/tools/chunkers/sematic/markdown_chunker.py +0 -0
  210. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/tools/chunkers/sematic/proposal_chunker.py +0 -0
  211. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/tools/chunkers/sematic/statistical_chunker.py +0 -0
  212. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/tools/chunkers/utils.py +0 -0
  213. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/tools/cloud/__init__.py +0 -0
  214. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/tools/cloud/aws/__init__.py +0 -0
  215. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/tools/cloud/aws/api_wrapper.py +0 -0
  216. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/tools/cloud/azure/__init__.py +0 -0
  217. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/tools/cloud/azure/api_wrapper.py +0 -0
  218. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/tools/cloud/gcp/__init__.py +0 -0
  219. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/tools/cloud/gcp/api_wrapper.py +0 -0
  220. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/tools/cloud/k8s/__init__.py +0 -0
  221. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/tools/cloud/k8s/api_wrapper.py +0 -0
  222. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/tools/code/__init__.py +0 -0
  223. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/tools/code/linter/__init__.py +0 -0
  224. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/tools/code/linter/api_wrapper.py +0 -0
  225. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/tools/code/loaders/codesearcher.py +0 -0
  226. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/tools/code/sonar/__init__.py +0 -0
  227. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/tools/code/sonar/api_wrapper.py +0 -0
  228. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/tools/confluence/__init__.py +0 -0
  229. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/tools/confluence/api_wrapper.py +0 -0
  230. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/tools/confluence/loader.py +0 -0
  231. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/tools/confluence/utils.py +0 -0
  232. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/tools/custom_open_api/__init__.py +0 -0
  233. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/tools/custom_open_api/api_wrapper.py +0 -0
  234. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/tools/elastic/__init__.py +0 -0
  235. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/tools/elastic/api_wrapper.py +0 -0
  236. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/tools/elitea_base.py +0 -0
  237. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/tools/figma/__init__.py +0 -0
  238. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/tools/figma/api_wrapper.py +0 -0
  239. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/tools/github/__init__.py +0 -0
  240. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/tools/github/api_wrapper.py +0 -0
  241. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/tools/github/graphql_client_wrapper.py +0 -0
  242. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/tools/github/schemas.py +0 -0
  243. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/tools/github/tool.py +0 -0
  244. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/tools/github/tool_prompts.py +0 -0
  245. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/tools/gitlab/__init__.py +0 -0
  246. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/tools/gitlab/api_wrapper.py +0 -0
  247. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/tools/gitlab/tools.py +0 -0
  248. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/tools/gitlab/utils.py +0 -0
  249. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/tools/gitlab_org/__init__.py +0 -0
  250. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/tools/gitlab_org/api_wrapper.py +0 -0
  251. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/tools/gmail/__init__.py +0 -0
  252. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/tools/gmail/gmail_wrapper.py +0 -0
  253. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/tools/gmail/utils.py +0 -0
  254. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/tools/google_places/__init__.py +0 -0
  255. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/tools/google_places/api_wrapper.py +0 -0
  256. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/tools/jira/__init__.py +0 -0
  257. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/tools/jira/api_wrapper.py +0 -0
  258. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/tools/keycloak/__init__.py +0 -0
  259. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/tools/keycloak/api_wrapper.py +0 -0
  260. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/tools/llm/__init__.py +0 -0
  261. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/tools/llm/img_utils.py +0 -0
  262. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/tools/llm/llm_utils.py +0 -0
  263. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/tools/localgit/__init__.py +0 -0
  264. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/tools/localgit/local_git.py +0 -0
  265. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/tools/localgit/tool.py +0 -0
  266. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/tools/ocr/__init__.py +0 -0
  267. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/tools/ocr/api_wrapper.py +0 -0
  268. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/tools/ocr/text_detection.py +0 -0
  269. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/tools/openapi/__init__.py +0 -0
  270. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/tools/pandas/__init__.py +0 -0
  271. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/tools/pandas/api_wrapper.py +0 -0
  272. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/tools/pandas/dataframe/__init__.py +0 -0
  273. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/tools/pandas/dataframe/errors.py +0 -0
  274. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/tools/pandas/dataframe/executor/__init__.py +0 -0
  275. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/tools/pandas/dataframe/executor/code_environment.py +0 -0
  276. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/tools/pandas/dataframe/executor/code_executor.py +0 -0
  277. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/tools/pandas/dataframe/generator/__init__.py +0 -0
  278. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/tools/pandas/dataframe/generator/base.py +0 -0
  279. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/tools/pandas/dataframe/generator/code_cleaning.py +0 -0
  280. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/tools/pandas/dataframe/generator/code_validator.py +0 -0
  281. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/tools/pandas/dataframe/prompts.py +0 -0
  282. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/tools/pandas/dataframe/serializer.py +0 -0
  283. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/tools/pandas/dataframe/utils.py +0 -0
  284. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/tools/pandas/statsmodels/__init__.py +0 -0
  285. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/tools/pandas/statsmodels/base_stats.py +0 -0
  286. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/tools/pandas/statsmodels/descriptive.py +0 -0
  287. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/tools/pandas/statsmodels/hypothesis_testing.py +0 -0
  288. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/tools/pandas/statsmodels/regression.py +0 -0
  289. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/tools/postman/postman_analysis.py +0 -0
  290. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/tools/pptx/__init__.py +0 -0
  291. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/tools/pptx/pptx_wrapper.py +0 -0
  292. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/tools/qtest/__init__.py +0 -0
  293. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/tools/qtest/api_wrapper.py +0 -0
  294. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/tools/qtest/tool.py +0 -0
  295. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/tools/rally/__init__.py +0 -0
  296. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/tools/rally/api_wrapper.py +0 -0
  297. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/tools/report_portal/__init__.py +0 -0
  298. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/tools/report_portal/api_wrapper.py +0 -0
  299. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/tools/report_portal/report_portal_client.py +0 -0
  300. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/tools/salesforce/__init__.py +0 -0
  301. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/tools/salesforce/api_wrapper.py +0 -0
  302. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/tools/salesforce/model.py +0 -0
  303. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/tools/servicenow/__init__.py +0 -0
  304. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/tools/servicenow/api_wrapper.py +0 -0
  305. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/tools/servicenow/servicenow_client.py +0 -0
  306. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/tools/sharepoint/__init__.py +0 -0
  307. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/tools/sharepoint/api_wrapper.py +0 -0
  308. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/tools/sharepoint/authorization_helper.py +0 -0
  309. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/tools/sharepoint/utils.py +0 -0
  310. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/tools/sql/__init__.py +0 -0
  311. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/tools/sql/api_wrapper.py +0 -0
  312. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/tools/sql/models.py +0 -0
  313. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/tools/testio/__init__.py +0 -0
  314. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/tools/testio/api_wrapper.py +0 -0
  315. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/tools/testrail/__init__.py +0 -0
  316. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/tools/testrail/api_wrapper.py +0 -0
  317. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/tools/utils/__init__.py +0 -0
  318. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/tools/utils/content_parser.py +0 -0
  319. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/tools/xray/__init__.py +0 -0
  320. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/tools/xray/api_wrapper.py +0 -0
  321. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/tools/yagmail/__init__.py +0 -0
  322. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/tools/yagmail/yagmail_wrapper.py +0 -0
  323. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/tools/zephyr/Zephyr.py +0 -0
  324. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/tools/zephyr/__init__.py +0 -0
  325. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/tools/zephyr/api_wrapper.py +0 -0
  326. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/tools/zephyr/rest_client.py +0 -0
  327. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/tools/zephyr_enterprise/__init__.py +0 -0
  328. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/tools/zephyr_enterprise/api_wrapper.py +0 -0
  329. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/tools/zephyr_enterprise/zephyr_enterprise.py +0 -0
  330. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/tools/zephyr_scale/__init__.py +0 -0
  331. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/tools/zephyr_scale/api_wrapper.py +0 -0
  332. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/tools/zephyr_squad/__init__.py +0 -0
  333. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/tools/zephyr_squad/api_wrapper.py +0 -0
  334. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk/tools/zephyr_squad/zephyr_squad_cloud_client.py +0 -0
  335. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk.egg-info/SOURCES.txt +0 -0
  336. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk.egg-info/dependency_links.txt +0 -0
  337. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/alita_sdk.egg-info/top_level.txt +0 -0
  338. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/setup.cfg +0 -0
  339. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/tests/test_ado_analysis.py +0 -0
  340. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/tests/test_github_analysis.py +0 -0
  341. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/tests/test_gitlab_analysis.py +0 -0
  342. {alita_sdk-0.3.163 → alita_sdk-0.3.165}/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.163
3
+ Version: 0.3.165
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 <lifedjik@gmail.com>
6
6
  License-Expression: Apache-2.0
@@ -31,8 +31,8 @@ Requires-Dist: langchain_community~=0.3.7; extra == "runtime"
31
31
  Requires-Dist: langchain-openai~=0.3.0; extra == "runtime"
32
32
  Requires-Dist: langgraph-checkpoint-sqlite~=2.0.0; extra == "runtime"
33
33
  Requires-Dist: langgraph-checkpoint-postgres~=2.0.1; extra == "runtime"
34
- Requires-Dist: langsmith==0.1.144; extra == "runtime"
35
- Requires-Dist: langgraph~=0.2.53; extra == "runtime"
34
+ Requires-Dist: langsmith>=0.3.45; extra == "runtime"
35
+ Requires-Dist: langgraph>=0.4.8; extra == "runtime"
36
36
  Requires-Dist: langchain_chroma~=0.2.2; extra == "runtime"
37
37
  Requires-Dist: langchain-unstructured~=0.1.6; extra == "runtime"
38
38
  Requires-Dist: langchain-postgres~=0.0.13; extra == "runtime"
@@ -122,6 +122,7 @@ Requires-Dist: yagmail==0.15.293; extra == "tools"
122
122
  Requires-Dist: pysnc==1.1.10; extra == "tools"
123
123
  Requires-Dist: shortuuid==1.0.13; extra == "tools"
124
124
  Requires-Dist: yarl==1.17.1; extra == "tools"
125
+ Requires-Dist: langmem==0.0.27; extra == "tools"
125
126
  Provides-Extra: community
126
127
  Requires-Dist: retry-extended==0.2.3; extra == "community"
127
128
  Requires-Dist: browser-use==0.1.43; extra == "community"
@@ -61,8 +61,8 @@ class Assistant:
61
61
  "Review toolkits configuration or use pipeline as master agent.")
62
62
 
63
63
  # configure memory store if memory tool is defined
64
- # memory_tool = next((tool for tool in data['tools'] if tool['type'] == 'memory'), None)
65
- # self._configure_store(memory_tool)
64
+ memory_tool = next((tool for tool in data['tools'] if tool['type'] == 'memory'), None)
65
+ self._configure_store(memory_tool)
66
66
 
67
67
  # Lazy import to avoid circular dependency
68
68
  from ..toolkits.tools import get_tools
@@ -1,6 +1,8 @@
1
1
  import threading
2
2
  import atexit
3
3
  import logging
4
+ from urllib.parse import urlparse, unquote
5
+
4
6
  from psycopg import Connection
5
7
  from langgraph.store.postgres import PostgresStore
6
8
 
@@ -18,11 +20,30 @@ class StoreManager:
18
20
  cls._instance._stores = {}
19
21
  return cls._instance
20
22
 
23
+ def _parse_connection_string(self, conn_str: str) -> dict:
24
+ """
25
+ Parse the connection string from SQLAlchemy style to args dict.
26
+ """
27
+ if conn_str.startswith("postgresql+psycopg://"):
28
+ url = conn_str[len("postgresql+psycopg://"):]
29
+
30
+ parsed = urlparse(f"//{url}")
31
+
32
+ return {
33
+ "user": unquote(parsed.username) if parsed.username else None,
34
+ "password": unquote(parsed.password) if parsed.password else None,
35
+ "host": parsed.hostname,
36
+ "port": parsed.port,
37
+ "dbname": parsed.path.lstrip("/") if parsed.path else None
38
+ }
39
+
21
40
  def get_store(self, conn_str: str) -> PostgresStore:
22
41
  store = self._stores.get(conn_str)
23
42
  if store is None:
24
43
  logger.info(f"Creating new PostgresStore for connection: {conn_str}")
25
- conn = Connection.connect(conn_str, autocommit=True, prepare_threshold=0)
44
+ conn_params = self._parse_connection_string(conn_str)
45
+ conn_params.update({'autocommit': True, 'prepare_threshold': 0})
46
+ conn = Connection.connect(**conn_params)
26
47
  store = PostgresStore(conn)
27
48
  store.setup()
28
49
  self._stores[conn_str] = store
@@ -95,7 +95,7 @@ def get_tools(tools_list: list, alita_client, llm, memory_store: BaseStore = Non
95
95
  # Add community tools
96
96
  tools += community_tools(tools_list, alita_client, llm)
97
97
  # Add alita tools
98
- tools += alita_tools(tools_list, alita_client, llm)
98
+ tools += alita_tools(tools_list, alita_client, llm, memory_store)
99
99
  # Add MCP tools
100
100
  tools += _mcp_tools(tools_list, alita_client)
101
101
 
@@ -1,5 +1,8 @@
1
1
  import logging
2
2
  from importlib import import_module
3
+ from typing import Optional
4
+
5
+ from langgraph.store.base import BaseStore
3
6
 
4
7
  logger = logging.getLogger(__name__)
5
8
 
@@ -74,6 +77,7 @@ _safe_import_tool('carrier', 'carrier', 'get_tools', 'AlitaCarrierToolkit')
74
77
  _safe_import_tool('ocr', 'ocr', 'get_tools', 'OCRToolkit')
75
78
  _safe_import_tool('pptx', 'pptx', 'get_tools', 'PPTXToolkit')
76
79
  _safe_import_tool('postman', 'postman', 'get_tools', 'PostmanToolkit')
80
+ _safe_import_tool('memory', 'memory', 'get_tools', 'MemoryToolkit')
77
81
  _safe_import_tool('zephyr_squad', 'zephyr_squad', 'get_tools', 'ZephyrSquadToolkit')
78
82
 
79
83
  # Log import summary
@@ -81,7 +85,7 @@ available_count = len(AVAILABLE_TOOLS)
81
85
  total_attempted = len(AVAILABLE_TOOLS) + len(FAILED_IMPORTS)
82
86
  logger.info(f"Tool imports completed: {available_count}/{total_attempted} successful")
83
87
 
84
- def get_tools(tools_list, alita, llm, *args, **kwargs):
88
+ def get_tools(tools_list, alita, llm, store: Optional[BaseStore] = None, *args, **kwargs):
85
89
  tools = []
86
90
  for tool in tools_list:
87
91
  # validate tool name syntax - it cannot be started with _
@@ -91,6 +95,7 @@ def get_tools(tools_list, alita, llm, *args, **kwargs):
91
95
 
92
96
  tool['settings']['alita'] = alita
93
97
  tool['settings']['llm'] = llm
98
+ tool['settings']['store'] = store
94
99
  tool_type = tool['type']
95
100
 
96
101
  # Check if tool is available and has get_tools function
@@ -80,8 +80,8 @@ class CarrierAPIWrapper(BaseModel):
80
80
  def get_report_file_log(self, bucket: str, file_name: str):
81
81
  return self._client.get_report_file_log(bucket, file_name)
82
82
 
83
- def upload_excel_report(self, bucket_name: str, excel_report_name: str):
84
- return self._client.upload_excel_report(bucket_name, excel_report_name)
83
+ def upload_file(self, bucket_name: str, file_name: str):
84
+ return self._client.upload_file(bucket_name, file_name)
85
85
 
86
86
  def get_ui_reports_list(self) -> List[Dict[str, Any]]:
87
87
  """Get list of UI test reports from the Carrier platform."""
@@ -1,6 +1,8 @@
1
1
  import logging
2
2
  from datetime import datetime
3
3
  import json
4
+ import zipfile
5
+ from itertools import islice
4
6
  import traceback
5
7
  from typing import Type
6
8
  from langchain_core.tools import BaseTool, ToolException
@@ -78,14 +80,31 @@ class GetReportByIDTool(BaseTool):
78
80
 
79
81
  def _run(self, report_id: str):
80
82
  try:
81
- reports = self.api_wrapper.get_reports_list()
82
- report_data = {}
83
- for report in reports:
84
- if report_id == str(report["id"]):
85
- report_data = report
86
- break
87
-
88
- return json.dumps(report_data)
83
+ report, test_log_file_path, errors_log_file_path = self.api_wrapper.get_report_file_name(report_id)
84
+ try:
85
+ with open(errors_log_file_path, mode='r') as f:
86
+ # Use islice to read up to 100 lines
87
+ errors = list(islice(f, 100))
88
+ report["errors_log"] = errors
89
+ # Archive with errors log file path
90
+ zip_file_path = f'/tmp/{report["build_id"]}_error_log_archive.zip'
91
+
92
+ # Create zip archive
93
+ with zipfile.ZipFile(zip_file_path, 'w', zipfile.ZIP_DEFLATED) as zipf:
94
+ arcname = os.path.basename(errors_log_file_path)
95
+ zipf.write(errors_log_file_path, arcname)
96
+
97
+ bucket_name = report["name"].replace("_", "").replace(" ", "").lower()
98
+ self.api_wrapper.upload_file(bucket_name, zip_file_path)
99
+ report["link_to_errors_file"] = f"{self.api_wrapper.url.rstrip('/')}/api/v1/artifacts/artifact/default/" \
100
+ f"{self.api_wrapper.project_id}/{bucket_name}/" \
101
+ f"{zip_file_path.replace('/tmp/', '')}"
102
+ except Exception as e:
103
+ logger.error(e)
104
+ report["errors_log"] = []
105
+ report["link_to_errors_file"] = "link is not available"
106
+
107
+ return json.dumps(report)
89
108
  except Exception:
90
109
  stacktrace = traceback.format_exc()
91
110
  logger.error(f"Error downloading reports: {stacktrace}")
@@ -164,17 +183,17 @@ class CreateExcelReportTool(BaseTool):
164
183
 
165
184
  def _process_report_by_id(self, report_id, parameters):
166
185
  """Process report using report ID."""
167
- report, file_path = self.api_wrapper.get_report_file_name(report_id)
186
+ report, test_log_file_path, errors_log_file_path = self.api_wrapper.get_report_file_name(report_id)
168
187
  carrier_report = f"{self.api_wrapper.url.rstrip('/')}/-/performance/backend/results?result_id={report_id}"
169
188
  lg_type = report.get("lg_type")
170
189
  excel_report_file_name = f'/tmp/reports_test_results_{report["build_id"]}_excel_report.xlsx'
171
190
  bucket_name = report["name"].replace("_", "").replace(" ", "").lower()
172
191
 
173
- result_stats_j = self._parse_report(file_path, lg_type, parameters["think_time"], is_absolute_file_path=True)
192
+ result_stats_j = self._parse_report(test_log_file_path, lg_type, parameters["think_time"], is_absolute_file_path=True)
174
193
  calc_thr_j = self._calculate_thresholds(result_stats_j, parameters)
175
194
 
176
195
  return self._generate_and_upload_report(
177
- result_stats_j, carrier_report, calc_thr_j, parameters, excel_report_file_name, bucket_name, file_path
196
+ result_stats_j, carrier_report, calc_thr_j, parameters, excel_report_file_name, bucket_name, test_log_file_path
178
197
  )
179
198
 
180
199
  def _process_report_by_file(self, bucket, file_name, parameters):
@@ -233,7 +252,7 @@ class CreateExcelReportTool(BaseTool):
233
252
  excel_reporter_object.prepare_headers_and_titles()
234
253
  excel_reporter_object.write_to_excel(result_stats_j, carrier_report, calc_thr_j, parameters["pct"])
235
254
 
236
- self.api_wrapper.upload_excel_report(bucket_name, excel_report_file_name)
255
+ self.api_wrapper.upload_file(bucket_name, excel_report_file_name)
237
256
 
238
257
  # Clean up
239
258
  self._cleanup(file_path, excel_report_file_name)
@@ -80,22 +80,28 @@ class RunTestByIDTool(BaseTool):
80
80
  description: str = "Execute test plan from the Carrier platform."
81
81
  args_schema: Type[BaseModel] = create_model(
82
82
  "RunTestByIdInput",
83
- test_id=(str, Field(default="", description="Test id to execute")),
83
+ test_id=(str, Field(default=None, description="Test id to execute")),
84
+ name=(str, Field(default=None, description="Test name to execute")),
84
85
  test_parameters=(dict, Field(default=None, description="Test parameters to override")),
85
86
  )
86
87
 
87
- def _run(self, test_id: str, test_parameters=None):
88
+ def _run(self, test_id=None, name=None, test_parameters=None):
88
89
  try:
90
+ if not test_id and not name:
91
+ return {"message": "Please provide test id or test name to start"}
92
+
89
93
  # Fetch test data
90
94
  tests = self.api_wrapper.get_tests_list()
91
- test_data = {}
92
- for test in tests:
93
- if test_id == str(test["id"]):
94
- test_data = test
95
- break
95
+
96
+ # Find the test data based on test_id or name
97
+ test_data = next(
98
+ (test for test in tests if
99
+ (test_id and str(test["id"]) == test_id) or (name and str(test["name"]) == name)),
100
+ None
101
+ )
96
102
 
97
103
  if not test_data:
98
- raise ValueError(f"Test with id {test_id} not found.")
104
+ raise ValueError(f"Test with id {test_id} or name {name} not found.")
99
105
 
100
106
  # Default test parameters
101
107
  default_test_parameters = test_data.get("test_parameters", [])
@@ -128,15 +128,17 @@ class CarrierClient(BaseModel):
128
128
  for file_name in file_list:
129
129
  if file_name.startswith(report_archive_prefix) and "excel_report" not in file_name:
130
130
  report_files_list.append(file_name)
131
- file_path = self.download_and_merge_reports(report_files_list, lg_type, bucket_name, extract_to)
131
+ test_log_file_path, errors_log_file_path = self.download_and_merge_reports(report_files_list, lg_type, bucket_name, extract_to)
132
132
 
133
- return report_info, file_path
133
+ return report_info, test_log_file_path, errors_log_file_path
134
134
 
135
- def download_and_merge_reports(self, report_files_list: list, lg_type: str, bucket: str, extract_to: str = "/tmp") -> str:
135
+ def download_and_merge_reports(self, report_files_list: list, lg_type: str, bucket: str, extract_to: str = "/tmp"):
136
136
  if lg_type == "jmeter":
137
137
  summary_log_file_path = f"summary_{bucket}_jmeter.jtl"
138
+ error_log_file_path = f"error_{bucket}_jmeter.log"
138
139
  else:
139
140
  summary_log_file_path = f"summary_{bucket}_simulation.log"
141
+ error_log_file_path = f"error_{bucket}_simulation.log"
140
142
  extracted_reports = []
141
143
  for each in report_files_list:
142
144
  endpoint = f"api/v1/artifacts/artifact/{self.credentials.project_id}/{bucket}/{each}"
@@ -158,10 +160,21 @@ class CarrierClient(BaseModel):
158
160
  os.remove(local_file_path)
159
161
  extracted_reports.append(extract_dir)
160
162
 
161
- # get files from extract_dirs and merge to summary_log_file_path
163
+ # get files from extract_dirs and merge to summary_log_file_path and error_log_file_path
162
164
  self.merge_log_files(summary_log_file_path, extracted_reports, lg_type)
165
+ try:
166
+ self.merge_error_files(error_log_file_path, extracted_reports)
167
+ except Exception as e:
168
+ logger.error(f"Failed to merge errors log: {e}")
169
+
170
+ # Clean up
171
+ for each in extracted_reports:
172
+ try:
173
+ shutil.rmtree(each)
174
+ except Exception as e:
175
+ logger.error(e)
163
176
 
164
- return summary_log_file_path
177
+ return summary_log_file_path, error_log_file_path
165
178
 
166
179
  def merge_log_files(self, summary_file, extracted_reports, lg_type):
167
180
  with open(summary_file, mode='w') as summary:
@@ -178,11 +191,14 @@ class CarrierClient(BaseModel):
178
191
  else:
179
192
  # Skip the first line (header) for subsequent files
180
193
  summary.writelines(lines[1:])
181
- for each in extracted_reports:
182
- try:
183
- shutil.rmtree(each)
184
- except Exception as e:
185
- logger.error(e)
194
+
195
+ def merge_error_files(self, error_file, extracted_reports):
196
+ with open(error_file, mode='w') as summary_errors:
197
+ for i, log_file in enumerate(extracted_reports):
198
+ report_file = f"{log_file}/simulation-errors.log"
199
+ with open(report_file, mode='r') as f:
200
+ lines = f.readlines()
201
+ summary_errors.writelines(lines)
186
202
 
187
203
  def get_report_file_log(self, bucket: str, file_name: str):
188
204
  bucket_endpoint = f"api/v1/artifacts/artifact/default/{self.credentials.project_id}/{bucket}/{file_name}"
@@ -195,10 +211,10 @@ class CarrierClient(BaseModel):
195
211
  f.write(response.content)
196
212
  return file_path
197
213
 
198
- def upload_excel_report(self, bucket_name: str, excel_report_name: str):
214
+ def upload_file(self, bucket_name: str, file_name: str):
199
215
  upload_url = f'api/v1/artifacts/artifacts/{self.credentials.project_id}/{bucket_name}'
200
216
  full_url = f"{self.credentials.url.rstrip('/')}/{upload_url.lstrip('/')}"
201
- files = {'file': open(excel_report_name, 'rb')}
217
+ files = {'file': open(file_name, 'rb')}
202
218
  headers = {'Authorization': f'bearer {self.credentials.token}'}
203
219
  s3_config = {'integration_id': 1, 'is_local': False}
204
220
  requests.post(full_url, params=s3_config, allow_redirects=True, files=files, headers=headers)
@@ -231,22 +247,22 @@ class CarrierClient(BaseModel):
231
247
  def create_ui_test(self, json_body: Dict[str, Any]) -> Dict[str, Any]:
232
248
  """Create a new UI test."""
233
249
  endpoint = f"api/v1/ui_performance/tests/{self.credentials.project_id}"
234
-
250
+
235
251
  # Print full JSON POST body for debugging
236
252
  print("=" * 60)
237
253
  print("DEBUG: Full JSON POST body for create_ui_test:")
238
254
  print("=" * 60)
239
255
  print(json.dumps(json_body, indent=2))
240
256
  print("=" * 60)
241
-
257
+
242
258
  # Use multipart/form-data with data field containing the JSON body
243
259
  form_data = {'data': json.dumps(json_body)}
244
-
260
+
245
261
  # Temporarily remove Content-Type header to let requests set it for multipart
246
262
  original_headers = self.session.headers.copy()
247
263
  if 'Content-Type' in self.session.headers:
248
264
  del self.session.headers['Content-Type']
249
-
265
+
250
266
  try:
251
267
  full_url = f"{self.credentials.url.rstrip('/')}/{endpoint.lstrip('/')}"
252
268
  response = self.session.post(full_url, data=form_data)
@@ -265,7 +281,7 @@ class CarrierClient(BaseModel):
265
281
  def cancel_ui_test(self, test_id: str) -> Dict[str, Any]:
266
282
  """Cancel a UI test by setting its status to Canceled."""
267
283
  endpoint = f"api/v1/ui_performance/report_status/{self.credentials.project_id}/{test_id}"
268
-
284
+
269
285
  cancel_body = {
270
286
  "test_status": {
271
287
  "status": "Canceled",
@@ -273,5 +289,5 @@ class CarrierClient(BaseModel):
273
289
  "description": "Test was canceled"
274
290
  }
275
291
  }
276
-
292
+
277
293
  return self.request('put', endpoint, json=cancel_body)
@@ -148,7 +148,7 @@ class CreateUIExcelReportTool(BaseTool):
148
148
  bucket_name = report_name.replace("_", "").replace(" ", "").lower()
149
149
  excel_file_basename = os.path.basename(excel_file_name)
150
150
 
151
- self.api_wrapper.upload_excel_report(bucket_name, excel_file_name)
151
+ self.api_wrapper.upload_file(bucket_name, excel_file_name)
152
152
 
153
153
  # Clean up temporary file
154
154
  if os.path.exists(excel_file_name):
@@ -491,8 +491,16 @@ class GitHubClient(BaseModel):
491
491
  """
492
492
  try:
493
493
  patch_content = self.alita.download_artifact(bucket_name, file_name)
494
- if not patch_content or not isinstance(patch_content, str):
494
+
495
+ if not patch_content:
495
496
  return {"error": "Patch file not found", "message": f"Patch file '{file_name}' not found in bucket '{bucket_name}'."}
497
+
498
+ # Convert bytes to string if necessary
499
+ if isinstance(patch_content, bytes):
500
+ patch_content = patch_content.decode('utf-8')
501
+ elif not isinstance(patch_content, str):
502
+ return {"error": "Invalid patch content", "message": f"Patch file '{file_name}' contains invalid content type."}
503
+
496
504
  # Apply the git patch using the content
497
505
  return self.apply_git_patch(patch_content, commit_message, repo_name)
498
506
  except Exception as e:
@@ -15,6 +15,13 @@ from pydantic import create_model, BaseModel, ConfigDict, Field, SecretStr
15
15
 
16
16
  name = "memory"
17
17
 
18
+ def get_tools(tool):
19
+ return MemoryToolkit().get_toolkit(
20
+ namespace=tool['settings'].get('namespace', str(tool['id'])),
21
+ store=tool['settings'].get('store', None),
22
+ toolkit_name=tool.get('toolkit_name', '')
23
+ ).get_tools()
24
+
18
25
  class MemoryToolkit(BaseToolkit):
19
26
  tools: List[BaseTool] = []
20
27
 
@@ -1,4 +1,5 @@
1
1
  from typing import List, Literal, Optional, Type
2
+ import json
2
3
 
3
4
  import requests
4
5
  from langchain_core.tools import BaseToolkit, BaseTool
@@ -25,6 +26,8 @@ class PostmanAction(BaseAction):
25
26
  return v.replace(' ', '')
26
27
 
27
28
  def get_tools(tool):
29
+ # Parse environment_config if it's a string (from UI)
30
+ environment_config = tool['settings'].get('environment_config', {})
28
31
  toolkit = PostmanToolkit.get_toolkit(
29
32
  selected_tools=tool['settings'].get('selected_tools', []),
30
33
  api_key=tool['settings'].get('api_key', None),
@@ -32,6 +35,7 @@ def get_tools(tool):
32
35
  'base_url', 'https://api.getpostman.com'),
33
36
  collection_id=tool['settings'].get('collection_id', None),
34
37
  workspace_id=tool['settings'].get('workspace_id', None),
38
+ environment_config=environment_config,
35
39
  toolkit_name=tool.get('toolkit_name')
36
40
  )
37
41
  return toolkit.tools
@@ -57,6 +61,9 @@ class PostmanToolkit(BaseToolkit):
57
61
  'toolkit_name': True, 'max_toolkit_length': PostmanToolkit.toolkit_max_length})),
58
62
  workspace_id=(str, Field(description="Default workspace ID",
59
63
  default="", json_schema_extra={'configuration': True})),
64
+ environment_config=(dict, Field(
65
+ description="JSON configuration for request execution (auth headers, project IDs, base URLs, etc.)",
66
+ default={})),
60
67
  selected_tools=(List[Literal[tuple(selected_tools)]], Field(
61
68
  default=[], json_schema_extra={'args_schemas': selected_tools})),
62
69
  __config__=ConfigDict(json_schema_extra={'metadata': {