alita-sdk 0.3.201__tar.gz → 0.3.203__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 (314) hide show
  1. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/PKG-INFO +1 -1
  2. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/tools/carrier/api_wrapper.py +3 -0
  3. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/tools/carrier/backend_reports_tool.py +29 -1
  4. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/tools/carrier/backend_tests_tool.py +33 -30
  5. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/tools/carrier/carrier_sdk.py +14 -5
  6. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/tools/carrier/tools.py +2 -1
  7. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/tools/postman/api_wrapper.py +18 -12
  8. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/tools/slack/__init__.py +3 -2
  9. alita_sdk-0.3.203/alita_sdk/tools/slack/api_wrapper.py +316 -0
  10. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk.egg-info/PKG-INFO +1 -1
  11. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/pyproject.toml +1 -1
  12. alita_sdk-0.3.201/alita_sdk/tools/slack/api_wrapper.py +0 -183
  13. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/LICENSE +0 -0
  14. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/README.md +0 -0
  15. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/__init__.py +0 -0
  16. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/community/__init__.py +0 -0
  17. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/community/analysis/__init__.py +0 -0
  18. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/community/analysis/ado_analyse/__init__.py +0 -0
  19. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/community/analysis/ado_analyse/api_wrapper.py +0 -0
  20. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/community/analysis/github_analyse/__init__.py +0 -0
  21. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/community/analysis/github_analyse/api_wrapper.py +0 -0
  22. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/community/analysis/gitlab_analyse/__init__.py +0 -0
  23. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/community/analysis/gitlab_analyse/api_wrapper.py +0 -0
  24. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/community/analysis/jira_analyse/__init__.py +0 -0
  25. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/community/analysis/jira_analyse/api_wrapper.py +0 -0
  26. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/community/utils.py +0 -0
  27. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/runtime/__init__.py +0 -0
  28. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/runtime/clients/__init__.py +0 -0
  29. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/runtime/clients/artifact.py +0 -0
  30. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/runtime/clients/client.py +0 -0
  31. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/runtime/clients/datasource.py +0 -0
  32. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/runtime/clients/prompt.py +0 -0
  33. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/runtime/langchain/__init__.py +0 -0
  34. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/runtime/langchain/agents/__init__.py +0 -0
  35. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/runtime/langchain/agents/xml_chat.py +0 -0
  36. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/runtime/langchain/assistant.py +0 -0
  37. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/runtime/langchain/chat_message_template.py +0 -0
  38. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/runtime/langchain/constants.py +0 -0
  39. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/runtime/langchain/document_loaders/AlitaBDDScenariosLoader.py +0 -0
  40. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/runtime/langchain/document_loaders/AlitaCSVLoader.py +0 -0
  41. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/runtime/langchain/document_loaders/AlitaConfluenceLoader.py +0 -0
  42. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/runtime/langchain/document_loaders/AlitaDirectoryLoader.py +0 -0
  43. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/runtime/langchain/document_loaders/AlitaDocxMammothLoader.py +0 -0
  44. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/runtime/langchain/document_loaders/AlitaExcelLoader.py +0 -0
  45. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/runtime/langchain/document_loaders/AlitaGitRepoLoader.py +0 -0
  46. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/runtime/langchain/document_loaders/AlitaImageLoader.py +0 -0
  47. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/runtime/langchain/document_loaders/AlitaJiraLoader.py +0 -0
  48. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/runtime/langchain/document_loaders/AlitaQtestLoader.py +0 -0
  49. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/runtime/langchain/document_loaders/AlitaTableLoader.py +0 -0
  50. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/runtime/langchain/document_loaders/__init__.py +0 -0
  51. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/runtime/langchain/document_loaders/constants.py +0 -0
  52. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/runtime/langchain/document_loaders/utils.py +0 -0
  53. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/runtime/langchain/indexer.py +0 -0
  54. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/runtime/langchain/interfaces/__init__.py +0 -0
  55. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/runtime/langchain/interfaces/kwextractor.py +0 -0
  56. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/runtime/langchain/interfaces/llm_processor.py +0 -0
  57. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/runtime/langchain/interfaces/loaders.py +0 -0
  58. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/runtime/langchain/interfaces/splitters.py +0 -0
  59. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/runtime/langchain/langraph_agent.py +0 -0
  60. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/runtime/langchain/mixedAgentParser.py +0 -0
  61. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/runtime/langchain/mixedAgentRenderes.py +0 -0
  62. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/runtime/langchain/retrievers/AlitaRetriever.py +0 -0
  63. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/runtime/langchain/retrievers/VectorstoreRetriever.py +0 -0
  64. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/runtime/langchain/retrievers/__init__.py +0 -0
  65. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/runtime/langchain/store_manager.py +0 -0
  66. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/runtime/langchain/tools/__init__.py +0 -0
  67. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/runtime/langchain/tools/bdd_parser/__init__.py +0 -0
  68. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/runtime/langchain/tools/bdd_parser/bdd_exceptions.py +0 -0
  69. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/runtime/langchain/tools/bdd_parser/bdd_parser.py +0 -0
  70. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/runtime/langchain/tools/bdd_parser/feature_types.py +0 -0
  71. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/runtime/langchain/tools/bdd_parser/parser.py +0 -0
  72. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/runtime/langchain/tools/git.py +0 -0
  73. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/runtime/langchain/tools/log.py +0 -0
  74. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/runtime/langchain/tools/quota.py +0 -0
  75. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/runtime/langchain/tools/state.py +0 -0
  76. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/runtime/langchain/tools/utils.py +0 -0
  77. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/runtime/langchain/tools/vector.py +0 -0
  78. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/runtime/langchain/utils.py +0 -0
  79. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/runtime/llms/__init__.py +0 -0
  80. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/runtime/llms/alita.py +0 -0
  81. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/runtime/llms/preloaded.py +0 -0
  82. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/runtime/toolkits/__init__.py +0 -0
  83. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/runtime/toolkits/application.py +0 -0
  84. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/runtime/toolkits/artifact.py +0 -0
  85. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/runtime/toolkits/datasource.py +0 -0
  86. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/runtime/toolkits/prompt.py +0 -0
  87. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/runtime/toolkits/subgraph.py +0 -0
  88. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/runtime/toolkits/tools.py +0 -0
  89. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/runtime/toolkits/vectorstore.py +0 -0
  90. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/runtime/tools/__init__.py +0 -0
  91. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/runtime/tools/agent.py +0 -0
  92. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/runtime/tools/application.py +0 -0
  93. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/runtime/tools/artifact.py +0 -0
  94. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/runtime/tools/datasource.py +0 -0
  95. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/runtime/tools/echo.py +0 -0
  96. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/runtime/tools/function.py +0 -0
  97. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/runtime/tools/indexer_tool.py +0 -0
  98. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/runtime/tools/llm.py +0 -0
  99. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/runtime/tools/loop.py +0 -0
  100. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/runtime/tools/loop_output.py +0 -0
  101. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/runtime/tools/mcp_server_tool.py +0 -0
  102. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/runtime/tools/pgvector_search.py +0 -0
  103. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/runtime/tools/prompt.py +0 -0
  104. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/runtime/tools/router.py +0 -0
  105. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/runtime/tools/tool.py +0 -0
  106. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/runtime/tools/vectorstore.py +0 -0
  107. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/runtime/utils/AlitaCallback.py +0 -0
  108. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/runtime/utils/__init__.py +0 -0
  109. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/runtime/utils/constants.py +0 -0
  110. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/runtime/utils/evaluate.py +0 -0
  111. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/runtime/utils/logging.py +0 -0
  112. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/runtime/utils/save_dataframe.py +0 -0
  113. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/runtime/utils/streamlit.py +0 -0
  114. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/runtime/utils/utils.py +0 -0
  115. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/tools/__init__.py +0 -0
  116. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/tools/ado/__init__.py +0 -0
  117. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/tools/ado/repos/__init__.py +0 -0
  118. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/tools/ado/repos/repos_wrapper.py +0 -0
  119. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/tools/ado/test_plan/__init__.py +0 -0
  120. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/tools/ado/test_plan/test_plan_wrapper.py +0 -0
  121. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/tools/ado/utils.py +0 -0
  122. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/tools/ado/wiki/__init__.py +0 -0
  123. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/tools/ado/wiki/ado_wrapper.py +0 -0
  124. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/tools/ado/work_item/__init__.py +0 -0
  125. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/tools/ado/work_item/ado_wrapper.py +0 -0
  126. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/tools/advanced_jira_mining/__init__.py +0 -0
  127. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/tools/advanced_jira_mining/data_mining_wrapper.py +0 -0
  128. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/tools/azure_ai/__init__.py +0 -0
  129. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/tools/azure_ai/search/__init__.py +0 -0
  130. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/tools/azure_ai/search/api_wrapper.py +0 -0
  131. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/tools/base/__init__.py +0 -0
  132. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/tools/base/tool.py +0 -0
  133. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/tools/bitbucket/__init__.py +0 -0
  134. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/tools/bitbucket/api_wrapper.py +0 -0
  135. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/tools/bitbucket/bitbucket_constants.py +0 -0
  136. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/tools/bitbucket/cloud_api_wrapper.py +0 -0
  137. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/tools/bitbucket/tools.py +0 -0
  138. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/tools/browser/__init__.py +0 -0
  139. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/tools/browser/crawler.py +0 -0
  140. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/tools/browser/duck_duck_go_search.py +0 -0
  141. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/tools/browser/google_search_rag.py +0 -0
  142. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/tools/browser/utils.py +0 -0
  143. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/tools/browser/wiki.py +0 -0
  144. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/tools/carrier/__init__.py +0 -0
  145. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/tools/carrier/cancel_ui_test_tool.py +0 -0
  146. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/tools/carrier/create_ui_excel_report_tool.py +0 -0
  147. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/tools/carrier/create_ui_test_tool.py +0 -0
  148. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/tools/carrier/excel_reporter.py +0 -0
  149. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/tools/carrier/lighthouse_excel_reporter.py +0 -0
  150. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/tools/carrier/run_ui_test_tool.py +0 -0
  151. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/tools/carrier/tickets_tool.py +0 -0
  152. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/tools/carrier/ui_reports_tool.py +0 -0
  153. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/tools/carrier/update_ui_test_schedule_tool.py +0 -0
  154. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/tools/carrier/utils.py +0 -0
  155. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/tools/chunkers/__init__.py +0 -0
  156. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/tools/chunkers/code/__init__.py +0 -0
  157. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/tools/chunkers/code/codeparser.py +0 -0
  158. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/tools/chunkers/code/constants.py +0 -0
  159. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/tools/chunkers/code/treesitter/__init__.py +0 -0
  160. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/tools/chunkers/code/treesitter/treesitter.py +0 -0
  161. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/tools/chunkers/code/treesitter/treesitter_c.py +0 -0
  162. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/tools/chunkers/code/treesitter/treesitter_cpp.py +0 -0
  163. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/tools/chunkers/code/treesitter/treesitter_cs.py +0 -0
  164. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/tools/chunkers/code/treesitter/treesitter_go.py +0 -0
  165. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/tools/chunkers/code/treesitter/treesitter_hs.py +0 -0
  166. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/tools/chunkers/code/treesitter/treesitter_java.py +0 -0
  167. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/tools/chunkers/code/treesitter/treesitter_js.py +0 -0
  168. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/tools/chunkers/code/treesitter/treesitter_kt.py +0 -0
  169. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/tools/chunkers/code/treesitter/treesitter_py.py +0 -0
  170. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/tools/chunkers/code/treesitter/treesitter_rb.py +0 -0
  171. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/tools/chunkers/code/treesitter/treesitter_registry.py +0 -0
  172. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/tools/chunkers/code/treesitter/treesitter_rs.py +0 -0
  173. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/tools/chunkers/code/treesitter/treesitter_ts.py +0 -0
  174. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/tools/chunkers/models.py +0 -0
  175. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/tools/chunkers/sematic/__init__.py +0 -0
  176. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/tools/chunkers/sematic/base.py +0 -0
  177. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/tools/chunkers/sematic/markdown_chunker.py +0 -0
  178. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/tools/chunkers/sematic/proposal_chunker.py +0 -0
  179. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/tools/chunkers/sematic/statistical_chunker.py +0 -0
  180. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/tools/chunkers/utils.py +0 -0
  181. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/tools/cloud/__init__.py +0 -0
  182. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/tools/cloud/aws/__init__.py +0 -0
  183. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/tools/cloud/aws/api_wrapper.py +0 -0
  184. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/tools/cloud/azure/__init__.py +0 -0
  185. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/tools/cloud/azure/api_wrapper.py +0 -0
  186. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/tools/cloud/gcp/__init__.py +0 -0
  187. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/tools/cloud/gcp/api_wrapper.py +0 -0
  188. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/tools/cloud/k8s/__init__.py +0 -0
  189. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/tools/cloud/k8s/api_wrapper.py +0 -0
  190. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/tools/code/__init__.py +0 -0
  191. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/tools/code/linter/__init__.py +0 -0
  192. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/tools/code/linter/api_wrapper.py +0 -0
  193. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/tools/code/loaders/codesearcher.py +0 -0
  194. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/tools/code/sonar/__init__.py +0 -0
  195. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/tools/code/sonar/api_wrapper.py +0 -0
  196. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/tools/confluence/__init__.py +0 -0
  197. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/tools/confluence/api_wrapper.py +0 -0
  198. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/tools/confluence/loader.py +0 -0
  199. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/tools/confluence/utils.py +0 -0
  200. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/tools/custom_open_api/__init__.py +0 -0
  201. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/tools/custom_open_api/api_wrapper.py +0 -0
  202. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/tools/elastic/__init__.py +0 -0
  203. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/tools/elastic/api_wrapper.py +0 -0
  204. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/tools/elitea_base.py +0 -0
  205. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/tools/figma/__init__.py +0 -0
  206. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/tools/figma/api_wrapper.py +0 -0
  207. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/tools/github/__init__.py +0 -0
  208. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/tools/github/api_wrapper.py +0 -0
  209. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/tools/github/github_client.py +0 -0
  210. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/tools/github/graphql_client_wrapper.py +0 -0
  211. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/tools/github/schemas.py +0 -0
  212. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/tools/github/tool.py +0 -0
  213. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/tools/github/tool_prompts.py +0 -0
  214. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/tools/gitlab/__init__.py +0 -0
  215. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/tools/gitlab/api_wrapper.py +0 -0
  216. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/tools/gitlab/tools.py +0 -0
  217. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/tools/gitlab/utils.py +0 -0
  218. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/tools/gitlab_org/__init__.py +0 -0
  219. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/tools/gitlab_org/api_wrapper.py +0 -0
  220. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/tools/gmail/__init__.py +0 -0
  221. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/tools/gmail/gmail_wrapper.py +0 -0
  222. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/tools/gmail/utils.py +0 -0
  223. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/tools/google_places/__init__.py +0 -0
  224. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/tools/google_places/api_wrapper.py +0 -0
  225. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/tools/jira/__init__.py +0 -0
  226. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/tools/jira/api_wrapper.py +0 -0
  227. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/tools/keycloak/__init__.py +0 -0
  228. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/tools/keycloak/api_wrapper.py +0 -0
  229. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/tools/llm/__init__.py +0 -0
  230. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/tools/llm/img_utils.py +0 -0
  231. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/tools/llm/llm_utils.py +0 -0
  232. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/tools/localgit/__init__.py +0 -0
  233. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/tools/localgit/local_git.py +0 -0
  234. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/tools/localgit/tool.py +0 -0
  235. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/tools/memory/__init__.py +0 -0
  236. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/tools/ocr/__init__.py +0 -0
  237. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/tools/ocr/api_wrapper.py +0 -0
  238. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/tools/ocr/text_detection.py +0 -0
  239. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/tools/openapi/__init__.py +0 -0
  240. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/tools/pandas/__init__.py +0 -0
  241. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/tools/pandas/api_wrapper.py +0 -0
  242. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/tools/pandas/dataframe/__init__.py +0 -0
  243. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/tools/pandas/dataframe/errors.py +0 -0
  244. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/tools/pandas/dataframe/executor/__init__.py +0 -0
  245. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/tools/pandas/dataframe/executor/code_environment.py +0 -0
  246. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/tools/pandas/dataframe/executor/code_executor.py +0 -0
  247. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/tools/pandas/dataframe/generator/__init__.py +0 -0
  248. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/tools/pandas/dataframe/generator/base.py +0 -0
  249. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/tools/pandas/dataframe/generator/code_cleaning.py +0 -0
  250. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/tools/pandas/dataframe/generator/code_validator.py +0 -0
  251. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/tools/pandas/dataframe/prompts.py +0 -0
  252. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/tools/pandas/dataframe/serializer.py +0 -0
  253. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/tools/pandas/dataframe/utils.py +0 -0
  254. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/tools/pandas/statsmodels/__init__.py +0 -0
  255. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/tools/pandas/statsmodels/base_stats.py +0 -0
  256. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/tools/pandas/statsmodels/descriptive.py +0 -0
  257. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/tools/pandas/statsmodels/hypothesis_testing.py +0 -0
  258. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/tools/pandas/statsmodels/regression.py +0 -0
  259. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/tools/postman/__init__.py +0 -0
  260. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/tools/postman/postman_analysis.py +0 -0
  261. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/tools/pptx/__init__.py +0 -0
  262. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/tools/pptx/pptx_wrapper.py +0 -0
  263. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/tools/qtest/__init__.py +0 -0
  264. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/tools/qtest/api_wrapper.py +0 -0
  265. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/tools/qtest/tool.py +0 -0
  266. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/tools/rally/__init__.py +0 -0
  267. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/tools/rally/api_wrapper.py +0 -0
  268. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/tools/report_portal/__init__.py +0 -0
  269. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/tools/report_portal/api_wrapper.py +0 -0
  270. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/tools/report_portal/report_portal_client.py +0 -0
  271. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/tools/salesforce/__init__.py +0 -0
  272. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/tools/salesforce/api_wrapper.py +0 -0
  273. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/tools/salesforce/model.py +0 -0
  274. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/tools/servicenow/__init__.py +0 -0
  275. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/tools/servicenow/api_wrapper.py +0 -0
  276. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/tools/servicenow/servicenow_client.py +0 -0
  277. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/tools/sharepoint/__init__.py +0 -0
  278. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/tools/sharepoint/api_wrapper.py +0 -0
  279. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/tools/sharepoint/authorization_helper.py +0 -0
  280. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/tools/sharepoint/utils.py +0 -0
  281. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/tools/sql/__init__.py +0 -0
  282. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/tools/sql/api_wrapper.py +0 -0
  283. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/tools/sql/models.py +0 -0
  284. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/tools/testio/__init__.py +0 -0
  285. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/tools/testio/api_wrapper.py +0 -0
  286. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/tools/testrail/__init__.py +0 -0
  287. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/tools/testrail/api_wrapper.py +0 -0
  288. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/tools/utils/__init__.py +0 -0
  289. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/tools/utils/content_parser.py +0 -0
  290. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/tools/xray/__init__.py +0 -0
  291. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/tools/xray/api_wrapper.py +0 -0
  292. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/tools/yagmail/__init__.py +0 -0
  293. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/tools/yagmail/yagmail_wrapper.py +0 -0
  294. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/tools/zephyr/Zephyr.py +0 -0
  295. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/tools/zephyr/__init__.py +0 -0
  296. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/tools/zephyr/api_wrapper.py +0 -0
  297. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/tools/zephyr/rest_client.py +0 -0
  298. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/tools/zephyr_enterprise/__init__.py +0 -0
  299. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/tools/zephyr_enterprise/api_wrapper.py +0 -0
  300. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/tools/zephyr_enterprise/zephyr_enterprise.py +0 -0
  301. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/tools/zephyr_scale/__init__.py +0 -0
  302. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/tools/zephyr_scale/api_wrapper.py +0 -0
  303. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/tools/zephyr_squad/__init__.py +0 -0
  304. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/tools/zephyr_squad/api_wrapper.py +0 -0
  305. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk/tools/zephyr_squad/zephyr_squad_cloud_client.py +0 -0
  306. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk.egg-info/SOURCES.txt +0 -0
  307. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk.egg-info/dependency_links.txt +0 -0
  308. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk.egg-info/requires.txt +0 -0
  309. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/alita_sdk.egg-info/top_level.txt +0 -0
  310. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/setup.cfg +0 -0
  311. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/tests/test_ado_analysis.py +0 -0
  312. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/tests/test_github_analysis.py +0 -0
  313. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/tests/test_gitlab_analysis.py +0 -0
  314. {alita_sdk-0.3.201 → alita_sdk-0.3.203}/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.201
3
+ Version: 0.3.203
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>, Artem Dubrovskiy <ad13box@gmail.com>
6
6
  License-Expression: Apache-2.0
@@ -61,6 +61,9 @@ class CarrierAPIWrapper(BaseModel):
61
61
  def get_reports_list(self) -> List[Dict[str, Any]]:
62
62
  return self._client.get_reports_list()
63
63
 
64
+ def add_tag_to_report(self, report_id, tag_name):
65
+ return self._client.add_tag_to_report(report_id, tag_name)
66
+
64
67
  def get_tests_list(self) -> List[Dict[str, Any]]:
65
68
  return self._client.get_tests_list()
66
69
 
@@ -23,10 +23,11 @@ class GetReportsTool(BaseTool):
23
23
  description: str = "Get list of reports from the Carrier platform."
24
24
  args_schema: Type[BaseModel] = create_model(
25
25
  "GetReportsInput",
26
+ name=(str, Field(default="", description="Optional parameter. Report name to filter reports")),
26
27
  tag_name=(str, Field(default="", description="Optional parameter. Tag name to filter reports")),
27
28
  )
28
29
 
29
- def _run(self, tag_name=""):
30
+ def _run(self, name="", tag_name=""):
30
31
  try:
31
32
  reports = self.api_wrapper.get_reports_list()
32
33
 
@@ -38,6 +39,10 @@ class GetReportsTool(BaseTool):
38
39
 
39
40
  trimmed_reports = []
40
41
  for report in reports:
42
+ # Filter reports by name
43
+ if name and not name == report["name"]:
44
+ continue
45
+
41
46
  # Filter by tag title
42
47
  tags = report.get("tags", [])
43
48
  if tag_name and not any(tag.get("title") == tag_name for tag in tags):
@@ -111,6 +116,29 @@ class GetReportByIDTool(BaseTool):
111
116
  raise ToolException(stacktrace)
112
117
 
113
118
 
119
+ class AddTagToReportTool(BaseTool):
120
+ api_wrapper: CarrierAPIWrapper = Field(..., description="Carrier API Wrapper instance")
121
+ name: str = "add_tag_to_report"
122
+ description: str = "Add tag to backend report"
123
+ args_schema: Type[BaseModel] = create_model(
124
+ "AddTagToReportInput",
125
+ report_id=(str, Field(description="Report id to update")),
126
+ tag_name=(str, Field(description="Tag name to add to report")),
127
+ )
128
+
129
+ def _run(self, report_id: str, tag_name: str):
130
+ try:
131
+ res = self.api_wrapper.add_tag_to_report(report_id, tag_name)
132
+ if "Tags was updated" in res.text:
133
+ return f"Added tag {tag_name} to report id {report_id}"
134
+ else:
135
+ return f"Failed to add new tag to report id {report_id}"
136
+ except Exception:
137
+ stacktrace = traceback.format_exc()
138
+ logger.error(f"Error downloading reports: {stacktrace}")
139
+ raise ToolException(stacktrace)
140
+
141
+
114
142
  class CreateExcelReportTool(BaseTool):
115
143
  api_wrapper: CarrierAPIWrapper = Field(..., description="Carrier API Wrapper instance")
116
144
  name: str = "create_excel_report"
@@ -7,7 +7,6 @@ from pydantic.fields import Field
7
7
  from pydantic import create_model, BaseModel
8
8
  from .api_wrapper import CarrierAPIWrapper
9
9
 
10
-
11
10
  logger = logging.getLogger(__name__)
12
11
 
13
12
 
@@ -79,8 +78,10 @@ class RunTestByIDTool(BaseTool):
79
78
  description: str = "Execute test plan from the Carrier platform."
80
79
  args_schema: Type[BaseModel] = create_model(
81
80
  "RunTestByIdInput",
82
- test_id=(int, Field(default=None, description="Test id to execute. Use test_id if user provide id in int format")),
83
- name=(str, Field(default=None, description="Test name to execute. Use name if user provide name in str format")),
81
+ test_id=(
82
+ int, Field(default=None, description="Test id to execute. Use test_id if user provide id in int format")),
83
+ name=(
84
+ str, Field(default=None, description="Test name to execute. Use name if user provide name in str format")),
84
85
  test_parameters=(list, Field(
85
86
  default=None,
86
87
  description=(
@@ -200,7 +201,6 @@ class RunTestByIDTool(BaseTool):
200
201
  # Validate and merge user-provided cloud_settings with available parameters
201
202
  cloud_settings = self._merge_cloud_settings(available_cloud_settings, cloud_settings)
202
203
 
203
-
204
204
  # Build common_params dictionary
205
205
  common_params = {
206
206
  param["name"]: param
@@ -307,7 +307,8 @@ class CreateBackendTestInput(BaseModel):
307
307
  test_type: str = Field(..., description="Test type")
308
308
  env_type: str = Field(..., description="Env type")
309
309
  entrypoint: str = Field(..., description="Entrypoint for the test (JMeter script path or Gatling simulation path)")
310
- custom_cmd: str = Field(..., description="Custom command line to execute the test (e.g., -l /tmp/reports/jmeter.jtl -e -o /tmp/reports/html_report)")
310
+ custom_cmd: str = Field(...,
311
+ description="Custom command line to execute the test (e.g., -l /tmp/reports/jmeter.jtl -e -o /tmp/reports/html_report)")
311
312
  runner: str = Field(..., description="Test runner (Gatling or JMeter)")
312
313
  source: Optional[Dict[str, Optional[str]]] = Field(
313
314
  None,
@@ -474,8 +475,11 @@ class CreateBackendTestTool(BaseTool):
474
475
  return {
475
476
  "message": "Do you want to configure email integration?",
476
477
  "instructions": (
478
+ "If the user indicates no integrations are needed make sure to pass email_integration"
479
+ " as empty dict to _run method and invoke it ones again with email_integration={}."
477
480
  "If yes, select an integration from the available options below and provide email recipients.\n"
478
- "If no, respond with 'no'."
481
+ "If no, respond with 'no'. "
482
+
479
483
  ),
480
484
  "available_integrations": [
481
485
  {
@@ -491,6 +495,28 @@ class CreateBackendTestTool(BaseTool):
491
495
  },
492
496
  }
493
497
 
498
+ # Ensure email_integrations is an empty dict if the user indicates no integrations are needed
499
+ if isinstance(email_integration, str) and email_integration.lower() == "no":
500
+ email_integration = {}
501
+ elif (
502
+ len(integrations_list) > 0
503
+ and isinstance(email_integration, dict)
504
+ and "integration_id" in email_integration
505
+ and "recipients" in email_integration
506
+ ):
507
+ email_integration = {
508
+ "reporters": {
509
+ "reporter_email": {
510
+ "id": email_integration["integration_id"],
511
+ "is_local": True,
512
+ "project_id": integrations_list[0]["project_id"],
513
+ "recipients": email_integration["recipients"],
514
+ }
515
+ }
516
+ }
517
+ else:
518
+ email_integration = {}
519
+
494
520
  # Prepare the final data dictionary
495
521
  data = {
496
522
  "common_params": {
@@ -512,16 +538,7 @@ class CreateBackendTestTool(BaseTool):
512
538
  "location": "default", # TODO update location
513
539
  },
514
540
  "test_parameters": test_parameters,
515
- "integrations": {
516
- "reporters": {
517
- "reporter_email": {
518
- "id": email_integration["integration_id"],
519
- "is_local": True,
520
- "project_id": integrations_list[0]["project_id"], # Example project_id
521
- "recipients": email_integration["recipients"],
522
- }
523
- }
524
- },
541
+ "integrations": email_integration,
525
542
  "scheduling": [],
526
543
  "run_test": False,
527
544
  }
@@ -539,17 +556,3 @@ class CreateBackendTestTool(BaseTool):
539
556
  stacktrace = traceback.format_exc()
540
557
  logger.error(f"Error while creating test: {stacktrace}")
541
558
  raise ToolException(stacktrace)
542
-
543
- # data = {"common_params":{"name":"toolkit_demo","test_type":"toolkit_demo","env_type":"toolkit_demo",
544
- # "entrypoint":"tests/BasicEcommerceWithTransaction.jmx","runner":"v5.6.3",
545
- # "source":{"name":"git_https","repo":"https://git.epam.com/epm-perf/boilerplate.git",
546
- # "branch":"jmeter","username":"mykhailo_hunko@epam.com",
547
- # "password":"{{secret.mykhailo_gitlab}}"},
548
- # "env_vars":{"cpu_quota":2,"memory_quota":6,"cloud_settings":{},
549
- # "custom_cmd":"-l /tmp/reports/jmeter.jtl -e -o /tmp/reports/html_report"},
550
- # "parallel_runners":1,"cc_env_vars":{},"customization":{},"location":"default"},
551
- # "test_parameters":[{"name":"VUSERS","default":"5","type":"string","description":"","action":""},
552
- # {"name":"DURATION","default":"60","type":"string","description":"","action":""}],
553
- # "integrations":{"reporters":{"reporter_email":{"id":1,"is_local":True,"project_id":36,
554
- # "recipients":["mykhailo_hunko@epam.com"]}}},
555
- # "scheduling":[],"run_test":True}
@@ -77,6 +77,17 @@ class CarrierClient(BaseModel):
77
77
  endpoint = f"api/v1/backend_performance/reports/{self.credentials.project_id}"
78
78
  return self.request('get', endpoint).get("rows", [])
79
79
 
80
+ def add_tag_to_report(self, report_id, tag_name):
81
+ endpoint = f"api/v1/backend_performance/tags/{self.credentials.project_id}/{report_id}"
82
+ full_url = f"{self.credentials.url.rstrip('/')}/{endpoint.lstrip('/')}"
83
+ headers = {
84
+ 'Authorization': f'bearer {self.credentials.token}',
85
+ 'content-type': 'application/json'
86
+ }
87
+ data = {"tags": [{"title": tag_name, "hex": "#5933c6"}]}
88
+ res = requests.post(full_url, headers=headers, json=data)
89
+ return res
90
+
80
91
  def get_tests_list(self) -> List[Dict[str, Any]]:
81
92
  endpoint = f"api/v1/backend_performance/tests/{self.credentials.project_id}"
82
93
  return self.request('get', endpoint).get("rows", [])
@@ -90,9 +101,6 @@ class CarrierClient(BaseModel):
90
101
  form_data = {"data": dumps(data)}
91
102
  # Send the POST request
92
103
  res = requests.post(full_url, headers=headers, data=form_data)
93
- print("************************* response")
94
- print(res.text)
95
- print("**********************************")
96
104
  return res
97
105
 
98
106
  def run_test(self, test_id: str, json_body):
@@ -150,7 +158,8 @@ class CarrierClient(BaseModel):
150
158
  for file_name in file_list:
151
159
  if file_name.startswith(report_archive_prefix) and "excel_report" not in file_name:
152
160
  report_files_list.append(file_name)
153
- test_log_file_path, errors_log_file_path = self.download_and_merge_reports(report_files_list, lg_type, bucket_name, extract_to)
161
+ test_log_file_path, errors_log_file_path = self.download_and_merge_reports(report_files_list, lg_type,
162
+ bucket_name, extract_to)
154
163
 
155
164
  return report_info, test_log_file_path, errors_log_file_path
156
165
 
@@ -312,4 +321,4 @@ class CarrierClient(BaseModel):
312
321
  }
313
322
  }
314
323
 
315
- return self.request('put', endpoint, json=cancel_body)
324
+ return self.request('put', endpoint, json=cancel_body)
@@ -1,6 +1,6 @@
1
1
  # import all available tools
2
2
  from .tickets_tool import FetchTicketsTool, CreateTicketTool
3
- from .backend_reports_tool import GetReportsTool, GetReportByIDTool, CreateExcelReportTool
3
+ from .backend_reports_tool import GetReportsTool, GetReportByIDTool, CreateExcelReportTool, AddTagToReportTool
4
4
  from .backend_tests_tool import GetTestsTool, GetTestByIDTool, RunTestByIDTool, CreateBackendTestTool
5
5
  from .ui_reports_tool import GetUIReportsTool, GetUIReportByIDTool, GetUITestsTool
6
6
  from .run_ui_test_tool import RunUITestTool
@@ -14,6 +14,7 @@ __all__ = [
14
14
  {"name": "create_ticket", "tool": CreateTicketTool},
15
15
  {"name": "get_reports", "tool": GetReportsTool},
16
16
  {"name": "get_report_by_id", "tool": GetReportByIDTool},
17
+ {"name": "add_tag_to_report", "tool": AddTagToReportTool},
17
18
  {"name": "create_excel_report", "tool": CreateExcelReportTool},
18
19
  {"name": "get_tests", "tool": GetTestsTool},
19
20
  {"name": "get_test_by_id", "tool": GetTestByIDTool},
@@ -91,12 +91,16 @@ PostmanUpdateCollectionDescription = create_model(
91
91
 
92
92
  PostmanUpdateCollectionVariables = create_model(
93
93
  "PostmanUpdateCollectionVariables",
94
- variables=(List[Dict], Field(description="Updated collection variables"))
94
+ variables=(Optional[List[Dict[str, Any]]], Field(default=None,
95
+ description="List of collection variables objects. "
96
+ "Example: [{'key': 'project_id', 'type': 'string', 'value': '15', 'enabled': true}]"))
95
97
  )
96
98
 
97
99
  PostmanUpdateCollectionAuth = create_model(
98
100
  "PostmanUpdateCollectionAuth",
99
- auth=(Dict, Field(description="Updated authentication settings"))
101
+ auth=(Optional[Dict[str, Any]], Field(default=None,
102
+ description="Updated authentication settings. Example: {'type': 'bearer',token '': 'your_token'}"
103
+ ))
100
104
  )
101
105
 
102
106
  PostmanDeleteCollection = create_model(
@@ -190,19 +194,21 @@ PostmanUpdateRequestDescription = create_model(
190
194
  PostmanUpdateRequestHeaders = create_model(
191
195
  "PostmanUpdateRequestHeaders",
192
196
  request_path=(str, Field(description="Path to the request (folder/requestName)")),
193
- headers=(List[Dict], Field(description="Request headers"))
197
+ headers=(Optional[List[Dict[str, Any]]], Field(default=None, description="Request headers."))
194
198
  )
195
199
 
196
200
  PostmanUpdateRequestBody = create_model(
197
201
  "PostmanUpdateRequestBody",
198
202
  request_path=(str, Field(description="Path to the request (folder/requestName)")),
199
- body=(Dict, Field(description="Request body"))
203
+ body=(Optional[Dict[str, Any]], Field(default=None, description="Request body."))
200
204
  )
201
205
 
202
206
  PostmanUpdateRequestAuth = create_model(
203
207
  "PostmanUpdateRequestAuth",
204
208
  request_path=(str, Field(description="Path to the request (folder/requestName)")),
205
- auth=(Dict, Field(description="Request authentication"))
209
+ auth=(Optional[Dict[str, Any]], Field(default=None,
210
+ description="Updated authentication settings. Example: {'type': 'bearer',token '': 'your_token'}"
211
+ ))
206
212
  )
207
213
 
208
214
  PostmanUpdateRequestTests = create_model(
@@ -692,7 +698,7 @@ class PostmanApiWrapper(BaseToolApiWrapper):
692
698
  def get_collections(self, **kwargs) -> str:
693
699
  """Get all Postman collections accessible to the user."""
694
700
  try:
695
- response = self._make_request('GET', '/collections')
701
+ response = self._make_request('GET', f'/collections?workspace={self.workspace_id}')
696
702
  return json.dumps(response, indent=2)
697
703
  except Exception as e:
698
704
  stacktrace = format_exc()
@@ -1214,7 +1220,7 @@ class PostmanApiWrapper(BaseToolApiWrapper):
1214
1220
  raise ToolException(
1215
1221
  f"Unable to update collection {self.collection_id} description: {str(e)}")
1216
1222
 
1217
- def update_collection_variables(self, variables: List[Dict], **kwargs) -> str:
1223
+ def update_collection_variables(self, variables: List[Dict[str, Any]], **kwargs) -> str:
1218
1224
  """Update collection variables."""
1219
1225
  try:
1220
1226
  # Get current collection
@@ -1234,7 +1240,7 @@ class PostmanApiWrapper(BaseToolApiWrapper):
1234
1240
  raise ToolException(
1235
1241
  f"Unable to update collection {self.collection_id} variables: {str(e)}")
1236
1242
 
1237
- def update_collection_auth(self, auth: Dict, **kwargs) -> str:
1243
+ def update_collection_auth(self, auth: Dict[str, Any], **kwargs) -> str:
1238
1244
  """Update collection authentication settings."""
1239
1245
  try:
1240
1246
  # Get current collection
@@ -1283,7 +1289,7 @@ class PostmanApiWrapper(BaseToolApiWrapper):
1283
1289
  self.analyzer.remove_item_ids(collection_data.get("item", []))
1284
1290
 
1285
1291
  response = self._make_request(
1286
- 'POST', '/collections', json={"collection": collection_data})
1292
+ 'POST', f'/collections?workspace={self.workspace_id}', json={"collection": collection_data})
1287
1293
  return json.dumps(response, indent=2)
1288
1294
  except Exception as e:
1289
1295
  stacktrace = format_exc()
@@ -1638,7 +1644,7 @@ class PostmanApiWrapper(BaseToolApiWrapper):
1638
1644
  raise ToolException(
1639
1645
  f"Unable to update request '{request_path}' description: {str(e)}")
1640
1646
 
1641
- def update_request_headers(self, request_path: str, headers: List[Dict], **kwargs) -> str:
1647
+ def update_request_headers(self, request_path: str, headers: Dict[str, Any], **kwargs) -> str:
1642
1648
  """Update request headers."""
1643
1649
  try:
1644
1650
  # Get request item and ID
@@ -1659,7 +1665,7 @@ class PostmanApiWrapper(BaseToolApiWrapper):
1659
1665
  raise ToolException(
1660
1666
  f"Unable to update request '{request_path}' headers: {str(e)}")
1661
1667
 
1662
- def update_request_body(self, request_path: str, body: Dict, **kwargs) -> str:
1668
+ def update_request_body(self, request_path: str, body: Dict[str, Any], **kwargs) -> str:
1663
1669
  """Update request body."""
1664
1670
  try:
1665
1671
  # Get request item and ID
@@ -1680,7 +1686,7 @@ class PostmanApiWrapper(BaseToolApiWrapper):
1680
1686
  raise ToolException(
1681
1687
  f"Unable to update request '{request_path}' body: {str(e)}")
1682
1688
 
1683
- def update_request_auth(self, request_path: str, auth: Dict, **kwargs) -> str:
1689
+ def update_request_auth(self, request_path: str, auth: Dict[str, Any], **kwargs) -> str:
1684
1690
  """Update request authentication."""
1685
1691
  try:
1686
1692
  # Get request item and ID
@@ -25,6 +25,7 @@ def get_tools(tool):
25
25
 
26
26
  class SlackToolkit(BaseToolkit):
27
27
  tools: List[BaseTool] = []
28
+ toolkit_max_length: int = 0
28
29
 
29
30
  @staticmethod
30
31
  def toolkit_config_schema() -> BaseModel:
@@ -52,7 +53,7 @@ class SlackToolkit(BaseToolkit):
52
53
  'configuration_title': True})),
53
54
  slack_token=(SecretStr, Field(description="Slack Token like XOXB-*****-*****-*****-*****",
54
55
  json_schema_extra={'secret': True, 'configuration': True})),
55
- channel_id=(str, Field(description="Channel ID", json_schema_extra={'configuration': True})),
56
+ channel_id=(Optional[str], Field(default=None, description="Channel ID", json_schema_extra={'configuration': True})),
56
57
  selected_tools=(List[Literal[tuple(selected_tools)]],
57
58
  Field(default=[], json_schema_extra={'args_schemas': selected_tools})),
58
59
  __config__={'json_schema_extra': {'metadata': {"label": "Slack", "icon_url": "slack-icon.svg"}}}
@@ -74,7 +75,7 @@ class SlackToolkit(BaseToolkit):
74
75
  tools.append(BaseAction(
75
76
  api_wrapper=slack_api_wrapper,
76
77
  name=prefix + tool["name"],
77
- description=tool["description"],
78
+ description=f"Slack Tool: {tool['description']}",
78
79
  args_schema=tool["args_schema"],
79
80
  ))
80
81
  return cls(tools=tools)