alita-sdk 0.3.188__tar.gz → 0.3.190__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 (313) hide show
  1. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/PKG-INFO +1 -1
  2. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/runtime/tools/llm.py +3 -2
  3. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/tools/ado/test_plan/test_plan_wrapper.py +105 -16
  4. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk.egg-info/PKG-INFO +1 -1
  5. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/pyproject.toml +1 -1
  6. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/LICENSE +0 -0
  7. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/README.md +0 -0
  8. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/__init__.py +0 -0
  9. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/community/__init__.py +0 -0
  10. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/community/analysis/__init__.py +0 -0
  11. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/community/analysis/ado_analyse/__init__.py +0 -0
  12. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/community/analysis/ado_analyse/api_wrapper.py +0 -0
  13. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/community/analysis/github_analyse/__init__.py +0 -0
  14. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/community/analysis/github_analyse/api_wrapper.py +0 -0
  15. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/community/analysis/gitlab_analyse/__init__.py +0 -0
  16. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/community/analysis/gitlab_analyse/api_wrapper.py +0 -0
  17. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/community/analysis/jira_analyse/__init__.py +0 -0
  18. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/community/analysis/jira_analyse/api_wrapper.py +0 -0
  19. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/community/utils.py +0 -0
  20. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/runtime/__init__.py +0 -0
  21. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/runtime/clients/__init__.py +0 -0
  22. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/runtime/clients/artifact.py +0 -0
  23. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/runtime/clients/client.py +0 -0
  24. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/runtime/clients/datasource.py +0 -0
  25. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/runtime/clients/prompt.py +0 -0
  26. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/runtime/langchain/__init__.py +0 -0
  27. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/runtime/langchain/agents/__init__.py +0 -0
  28. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/runtime/langchain/agents/xml_chat.py +0 -0
  29. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/runtime/langchain/assistant.py +0 -0
  30. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/runtime/langchain/chat_message_template.py +0 -0
  31. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/runtime/langchain/constants.py +0 -0
  32. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/runtime/langchain/document_loaders/AlitaBDDScenariosLoader.py +0 -0
  33. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/runtime/langchain/document_loaders/AlitaCSVLoader.py +0 -0
  34. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/runtime/langchain/document_loaders/AlitaConfluenceLoader.py +0 -0
  35. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/runtime/langchain/document_loaders/AlitaDirectoryLoader.py +0 -0
  36. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/runtime/langchain/document_loaders/AlitaDocxMammothLoader.py +0 -0
  37. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/runtime/langchain/document_loaders/AlitaExcelLoader.py +0 -0
  38. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/runtime/langchain/document_loaders/AlitaGitRepoLoader.py +0 -0
  39. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/runtime/langchain/document_loaders/AlitaImageLoader.py +0 -0
  40. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/runtime/langchain/document_loaders/AlitaJiraLoader.py +0 -0
  41. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/runtime/langchain/document_loaders/AlitaQtestLoader.py +0 -0
  42. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/runtime/langchain/document_loaders/AlitaTableLoader.py +0 -0
  43. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/runtime/langchain/document_loaders/__init__.py +0 -0
  44. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/runtime/langchain/document_loaders/constants.py +0 -0
  45. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/runtime/langchain/document_loaders/utils.py +0 -0
  46. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/runtime/langchain/indexer.py +0 -0
  47. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/runtime/langchain/interfaces/__init__.py +0 -0
  48. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/runtime/langchain/interfaces/kwextractor.py +0 -0
  49. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/runtime/langchain/interfaces/llm_processor.py +0 -0
  50. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/runtime/langchain/interfaces/loaders.py +0 -0
  51. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/runtime/langchain/interfaces/splitters.py +0 -0
  52. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/runtime/langchain/langraph_agent.py +0 -0
  53. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/runtime/langchain/mixedAgentParser.py +0 -0
  54. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/runtime/langchain/mixedAgentRenderes.py +0 -0
  55. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/runtime/langchain/retrievers/AlitaRetriever.py +0 -0
  56. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/runtime/langchain/retrievers/VectorstoreRetriever.py +0 -0
  57. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/runtime/langchain/retrievers/__init__.py +0 -0
  58. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/runtime/langchain/store_manager.py +0 -0
  59. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/runtime/langchain/tools/__init__.py +0 -0
  60. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/runtime/langchain/tools/bdd_parser/__init__.py +0 -0
  61. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/runtime/langchain/tools/bdd_parser/bdd_exceptions.py +0 -0
  62. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/runtime/langchain/tools/bdd_parser/bdd_parser.py +0 -0
  63. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/runtime/langchain/tools/bdd_parser/feature_types.py +0 -0
  64. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/runtime/langchain/tools/bdd_parser/parser.py +0 -0
  65. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/runtime/langchain/tools/git.py +0 -0
  66. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/runtime/langchain/tools/log.py +0 -0
  67. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/runtime/langchain/tools/quota.py +0 -0
  68. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/runtime/langchain/tools/state.py +0 -0
  69. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/runtime/langchain/tools/utils.py +0 -0
  70. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/runtime/langchain/tools/vector.py +0 -0
  71. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/runtime/langchain/utils.py +0 -0
  72. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/runtime/llms/__init__.py +0 -0
  73. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/runtime/llms/alita.py +0 -0
  74. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/runtime/llms/preloaded.py +0 -0
  75. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/runtime/toolkits/__init__.py +0 -0
  76. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/runtime/toolkits/application.py +0 -0
  77. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/runtime/toolkits/artifact.py +0 -0
  78. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/runtime/toolkits/datasource.py +0 -0
  79. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/runtime/toolkits/prompt.py +0 -0
  80. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/runtime/toolkits/subgraph.py +0 -0
  81. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/runtime/toolkits/tools.py +0 -0
  82. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/runtime/toolkits/vectorstore.py +0 -0
  83. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/runtime/tools/__init__.py +0 -0
  84. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/runtime/tools/agent.py +0 -0
  85. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/runtime/tools/application.py +0 -0
  86. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/runtime/tools/artifact.py +0 -0
  87. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/runtime/tools/datasource.py +0 -0
  88. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/runtime/tools/echo.py +0 -0
  89. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/runtime/tools/function.py +0 -0
  90. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/runtime/tools/indexer_tool.py +0 -0
  91. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/runtime/tools/loop.py +0 -0
  92. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/runtime/tools/loop_output.py +0 -0
  93. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/runtime/tools/mcp_server_tool.py +0 -0
  94. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/runtime/tools/pgvector_search.py +0 -0
  95. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/runtime/tools/prompt.py +0 -0
  96. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/runtime/tools/router.py +0 -0
  97. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/runtime/tools/tool.py +0 -0
  98. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/runtime/tools/vectorstore.py +0 -0
  99. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/runtime/utils/AlitaCallback.py +0 -0
  100. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/runtime/utils/__init__.py +0 -0
  101. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/runtime/utils/constants.py +0 -0
  102. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/runtime/utils/evaluate.py +0 -0
  103. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/runtime/utils/logging.py +0 -0
  104. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/runtime/utils/save_dataframe.py +0 -0
  105. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/runtime/utils/streamlit.py +0 -0
  106. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/runtime/utils/utils.py +0 -0
  107. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/tools/__init__.py +0 -0
  108. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/tools/ado/__init__.py +0 -0
  109. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/tools/ado/repos/__init__.py +0 -0
  110. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/tools/ado/repos/repos_wrapper.py +0 -0
  111. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/tools/ado/test_plan/__init__.py +0 -0
  112. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/tools/ado/utils.py +0 -0
  113. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/tools/ado/wiki/__init__.py +0 -0
  114. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/tools/ado/wiki/ado_wrapper.py +0 -0
  115. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/tools/ado/work_item/__init__.py +0 -0
  116. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/tools/ado/work_item/ado_wrapper.py +0 -0
  117. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/tools/advanced_jira_mining/__init__.py +0 -0
  118. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/tools/advanced_jira_mining/data_mining_wrapper.py +0 -0
  119. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/tools/azure_ai/__init__.py +0 -0
  120. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/tools/azure_ai/search/__init__.py +0 -0
  121. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/tools/azure_ai/search/api_wrapper.py +0 -0
  122. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/tools/base/__init__.py +0 -0
  123. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/tools/base/tool.py +0 -0
  124. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/tools/bitbucket/__init__.py +0 -0
  125. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/tools/bitbucket/api_wrapper.py +0 -0
  126. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/tools/bitbucket/bitbucket_constants.py +0 -0
  127. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/tools/bitbucket/cloud_api_wrapper.py +0 -0
  128. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/tools/bitbucket/tools.py +0 -0
  129. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/tools/browser/__init__.py +0 -0
  130. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/tools/browser/crawler.py +0 -0
  131. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/tools/browser/duck_duck_go_search.py +0 -0
  132. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/tools/browser/google_search_rag.py +0 -0
  133. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/tools/browser/utils.py +0 -0
  134. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/tools/browser/wiki.py +0 -0
  135. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/tools/carrier/__init__.py +0 -0
  136. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/tools/carrier/api_wrapper.py +0 -0
  137. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/tools/carrier/backend_reports_tool.py +0 -0
  138. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/tools/carrier/backend_tests_tool.py +0 -0
  139. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/tools/carrier/cancel_ui_test_tool.py +0 -0
  140. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/tools/carrier/carrier_sdk.py +0 -0
  141. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/tools/carrier/create_ui_excel_report_tool.py +0 -0
  142. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/tools/carrier/create_ui_test_tool.py +0 -0
  143. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/tools/carrier/excel_reporter.py +0 -0
  144. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/tools/carrier/lighthouse_excel_reporter.py +0 -0
  145. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/tools/carrier/run_ui_test_tool.py +0 -0
  146. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/tools/carrier/tickets_tool.py +0 -0
  147. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/tools/carrier/tools.py +0 -0
  148. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/tools/carrier/ui_reports_tool.py +0 -0
  149. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/tools/carrier/update_ui_test_schedule_tool.py +0 -0
  150. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/tools/carrier/utils.py +0 -0
  151. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/tools/chunkers/__init__.py +0 -0
  152. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/tools/chunkers/code/__init__.py +0 -0
  153. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/tools/chunkers/code/codeparser.py +0 -0
  154. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/tools/chunkers/code/constants.py +0 -0
  155. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/tools/chunkers/code/treesitter/__init__.py +0 -0
  156. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/tools/chunkers/code/treesitter/treesitter.py +0 -0
  157. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/tools/chunkers/code/treesitter/treesitter_c.py +0 -0
  158. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/tools/chunkers/code/treesitter/treesitter_cpp.py +0 -0
  159. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/tools/chunkers/code/treesitter/treesitter_cs.py +0 -0
  160. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/tools/chunkers/code/treesitter/treesitter_go.py +0 -0
  161. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/tools/chunkers/code/treesitter/treesitter_hs.py +0 -0
  162. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/tools/chunkers/code/treesitter/treesitter_java.py +0 -0
  163. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/tools/chunkers/code/treesitter/treesitter_js.py +0 -0
  164. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/tools/chunkers/code/treesitter/treesitter_kt.py +0 -0
  165. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/tools/chunkers/code/treesitter/treesitter_py.py +0 -0
  166. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/tools/chunkers/code/treesitter/treesitter_rb.py +0 -0
  167. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/tools/chunkers/code/treesitter/treesitter_registry.py +0 -0
  168. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/tools/chunkers/code/treesitter/treesitter_rs.py +0 -0
  169. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/tools/chunkers/code/treesitter/treesitter_ts.py +0 -0
  170. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/tools/chunkers/models.py +0 -0
  171. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/tools/chunkers/sematic/__init__.py +0 -0
  172. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/tools/chunkers/sematic/base.py +0 -0
  173. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/tools/chunkers/sematic/markdown_chunker.py +0 -0
  174. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/tools/chunkers/sematic/proposal_chunker.py +0 -0
  175. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/tools/chunkers/sematic/statistical_chunker.py +0 -0
  176. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/tools/chunkers/utils.py +0 -0
  177. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/tools/cloud/__init__.py +0 -0
  178. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/tools/cloud/aws/__init__.py +0 -0
  179. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/tools/cloud/aws/api_wrapper.py +0 -0
  180. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/tools/cloud/azure/__init__.py +0 -0
  181. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/tools/cloud/azure/api_wrapper.py +0 -0
  182. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/tools/cloud/gcp/__init__.py +0 -0
  183. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/tools/cloud/gcp/api_wrapper.py +0 -0
  184. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/tools/cloud/k8s/__init__.py +0 -0
  185. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/tools/cloud/k8s/api_wrapper.py +0 -0
  186. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/tools/code/__init__.py +0 -0
  187. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/tools/code/linter/__init__.py +0 -0
  188. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/tools/code/linter/api_wrapper.py +0 -0
  189. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/tools/code/loaders/codesearcher.py +0 -0
  190. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/tools/code/sonar/__init__.py +0 -0
  191. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/tools/code/sonar/api_wrapper.py +0 -0
  192. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/tools/confluence/__init__.py +0 -0
  193. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/tools/confluence/api_wrapper.py +0 -0
  194. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/tools/confluence/loader.py +0 -0
  195. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/tools/confluence/utils.py +0 -0
  196. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/tools/custom_open_api/__init__.py +0 -0
  197. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/tools/custom_open_api/api_wrapper.py +0 -0
  198. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/tools/elastic/__init__.py +0 -0
  199. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/tools/elastic/api_wrapper.py +0 -0
  200. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/tools/elitea_base.py +0 -0
  201. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/tools/figma/__init__.py +0 -0
  202. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/tools/figma/api_wrapper.py +0 -0
  203. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/tools/github/__init__.py +0 -0
  204. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/tools/github/api_wrapper.py +0 -0
  205. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/tools/github/github_client.py +0 -0
  206. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/tools/github/graphql_client_wrapper.py +0 -0
  207. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/tools/github/schemas.py +0 -0
  208. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/tools/github/tool.py +0 -0
  209. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/tools/github/tool_prompts.py +0 -0
  210. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/tools/gitlab/__init__.py +0 -0
  211. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/tools/gitlab/api_wrapper.py +0 -0
  212. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/tools/gitlab/tools.py +0 -0
  213. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/tools/gitlab/utils.py +0 -0
  214. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/tools/gitlab_org/__init__.py +0 -0
  215. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/tools/gitlab_org/api_wrapper.py +0 -0
  216. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/tools/gmail/__init__.py +0 -0
  217. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/tools/gmail/gmail_wrapper.py +0 -0
  218. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/tools/gmail/utils.py +0 -0
  219. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/tools/google_places/__init__.py +0 -0
  220. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/tools/google_places/api_wrapper.py +0 -0
  221. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/tools/jira/__init__.py +0 -0
  222. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/tools/jira/api_wrapper.py +0 -0
  223. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/tools/keycloak/__init__.py +0 -0
  224. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/tools/keycloak/api_wrapper.py +0 -0
  225. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/tools/llm/__init__.py +0 -0
  226. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/tools/llm/img_utils.py +0 -0
  227. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/tools/llm/llm_utils.py +0 -0
  228. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/tools/localgit/__init__.py +0 -0
  229. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/tools/localgit/local_git.py +0 -0
  230. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/tools/localgit/tool.py +0 -0
  231. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/tools/memory/__init__.py +0 -0
  232. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/tools/ocr/__init__.py +0 -0
  233. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/tools/ocr/api_wrapper.py +0 -0
  234. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/tools/ocr/text_detection.py +0 -0
  235. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/tools/openapi/__init__.py +0 -0
  236. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/tools/pandas/__init__.py +0 -0
  237. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/tools/pandas/api_wrapper.py +0 -0
  238. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/tools/pandas/dataframe/__init__.py +0 -0
  239. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/tools/pandas/dataframe/errors.py +0 -0
  240. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/tools/pandas/dataframe/executor/__init__.py +0 -0
  241. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/tools/pandas/dataframe/executor/code_environment.py +0 -0
  242. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/tools/pandas/dataframe/executor/code_executor.py +0 -0
  243. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/tools/pandas/dataframe/generator/__init__.py +0 -0
  244. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/tools/pandas/dataframe/generator/base.py +0 -0
  245. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/tools/pandas/dataframe/generator/code_cleaning.py +0 -0
  246. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/tools/pandas/dataframe/generator/code_validator.py +0 -0
  247. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/tools/pandas/dataframe/prompts.py +0 -0
  248. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/tools/pandas/dataframe/serializer.py +0 -0
  249. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/tools/pandas/dataframe/utils.py +0 -0
  250. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/tools/pandas/statsmodels/__init__.py +0 -0
  251. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/tools/pandas/statsmodels/base_stats.py +0 -0
  252. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/tools/pandas/statsmodels/descriptive.py +0 -0
  253. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/tools/pandas/statsmodels/hypothesis_testing.py +0 -0
  254. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/tools/pandas/statsmodels/regression.py +0 -0
  255. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/tools/postman/__init__.py +0 -0
  256. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/tools/postman/api_wrapper.py +0 -0
  257. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/tools/postman/postman_analysis.py +0 -0
  258. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/tools/pptx/__init__.py +0 -0
  259. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/tools/pptx/pptx_wrapper.py +0 -0
  260. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/tools/qtest/__init__.py +0 -0
  261. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/tools/qtest/api_wrapper.py +0 -0
  262. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/tools/qtest/tool.py +0 -0
  263. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/tools/rally/__init__.py +0 -0
  264. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/tools/rally/api_wrapper.py +0 -0
  265. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/tools/report_portal/__init__.py +0 -0
  266. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/tools/report_portal/api_wrapper.py +0 -0
  267. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/tools/report_portal/report_portal_client.py +0 -0
  268. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/tools/salesforce/__init__.py +0 -0
  269. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/tools/salesforce/api_wrapper.py +0 -0
  270. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/tools/salesforce/model.py +0 -0
  271. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/tools/servicenow/__init__.py +0 -0
  272. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/tools/servicenow/api_wrapper.py +0 -0
  273. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/tools/servicenow/servicenow_client.py +0 -0
  274. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/tools/sharepoint/__init__.py +0 -0
  275. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/tools/sharepoint/api_wrapper.py +0 -0
  276. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/tools/sharepoint/authorization_helper.py +0 -0
  277. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/tools/sharepoint/utils.py +0 -0
  278. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/tools/slack/__init__.py +0 -0
  279. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/tools/slack/api_wrapper.py +0 -0
  280. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/tools/sql/__init__.py +0 -0
  281. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/tools/sql/api_wrapper.py +0 -0
  282. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/tools/sql/models.py +0 -0
  283. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/tools/testio/__init__.py +0 -0
  284. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/tools/testio/api_wrapper.py +0 -0
  285. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/tools/testrail/__init__.py +0 -0
  286. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/tools/testrail/api_wrapper.py +0 -0
  287. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/tools/utils/__init__.py +0 -0
  288. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/tools/utils/content_parser.py +0 -0
  289. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/tools/xray/__init__.py +0 -0
  290. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/tools/xray/api_wrapper.py +0 -0
  291. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/tools/yagmail/__init__.py +0 -0
  292. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/tools/yagmail/yagmail_wrapper.py +0 -0
  293. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/tools/zephyr/Zephyr.py +0 -0
  294. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/tools/zephyr/__init__.py +0 -0
  295. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/tools/zephyr/api_wrapper.py +0 -0
  296. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/tools/zephyr/rest_client.py +0 -0
  297. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/tools/zephyr_enterprise/__init__.py +0 -0
  298. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/tools/zephyr_enterprise/api_wrapper.py +0 -0
  299. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/tools/zephyr_enterprise/zephyr_enterprise.py +0 -0
  300. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/tools/zephyr_scale/__init__.py +0 -0
  301. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/tools/zephyr_scale/api_wrapper.py +0 -0
  302. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/tools/zephyr_squad/__init__.py +0 -0
  303. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/tools/zephyr_squad/api_wrapper.py +0 -0
  304. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk/tools/zephyr_squad/zephyr_squad_cloud_client.py +0 -0
  305. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk.egg-info/SOURCES.txt +0 -0
  306. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk.egg-info/dependency_links.txt +0 -0
  307. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk.egg-info/requires.txt +0 -0
  308. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/alita_sdk.egg-info/top_level.txt +0 -0
  309. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/setup.cfg +0 -0
  310. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/tests/test_ado_analysis.py +0 -0
  311. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/tests/test_github_analysis.py +0 -0
  312. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/tests/test_gitlab_analysis.py +0 -0
  313. {alita_sdk-0.3.188 → alita_sdk-0.3.190}/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.188
3
+ Version: 0.3.190
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
@@ -35,9 +35,10 @@ def create_llm_input_with_messages(
35
35
  input_messages = []
36
36
 
37
37
  # Add system message from prompt if available
38
- if prompt and prompt.get('template'):
38
+ if prompt:
39
39
  try:
40
- system_content = prompt['template'].format(**params) if params else prompt['template']
40
+ # Format the system message using the prompt template or value and params
41
+ system_content = (prompt['template'] if 'template' in prompt else prompt['value']).format(**params) if params else prompt['template']
41
42
  input_messages.append(SystemMessage(content=system_content))
42
43
  except KeyError as e:
43
44
  error_msg = f"KeyError in prompt formatting: {e}. Available params: {list(params.keys())}"
@@ -96,13 +96,53 @@ TestCaseAddModel = create_model(
96
96
  suite_id=(int, Field(description="ID of the test suite to which test cases are to be added"))
97
97
  )
98
98
 
99
+
100
+ test_steps_description = """Json or XML array string with test steps.
101
+ Json example: [{"stepNumber": 1, "action": "Some action", "expectedResult": "Some expectation"},...]
102
+ XML example:
103
+ <Steps>
104
+ <Step>
105
+ <StepNumber>1</StepNumber>
106
+ <Action>Some action</Action>
107
+ <ExpectedResult>Some expectation</ExpectedResult>
108
+ </Step>
109
+ ...
110
+ </Steps>
111
+ """
112
+
113
+ TestCasesCreateModel = create_model(
114
+ "TestCasesCreateModel",
115
+ create_test_cases_parameters=(str, Field(description=f"""Json array where each object is separate test case to be created.
116
+ Input format:
117
+ [
118
+ {'{'}
119
+ plan_id: str
120
+ suite_id: str
121
+ title: str
122
+ description: str
123
+ test_steps: str
124
+ test_steps_format: str
125
+ {'}'}
126
+ ...
127
+ ]
128
+ Where:
129
+ plan_id - ID of the test plan to which test cases are to be added;
130
+ suite_id - ID of the test suite to which test cases are to be added
131
+ title - Test case title;
132
+ description - Test case description;
133
+ test_steps - {test_steps_description}
134
+ test_steps_format - Format of provided test steps. Possible values: json, xml
135
+ """))
136
+ )
137
+
99
138
  TestCaseCreateModel = create_model(
100
139
  "TestCaseCreateModel",
101
140
  plan_id=(int, Field(description="ID of the test plan to which test cases are to be added")),
102
141
  suite_id=(int, Field(description="ID of the test suite to which test cases are to be added")),
103
142
  title=(str, Field(description="Test case title")),
104
143
  description=(str, Field(description="Test case description")),
105
- test_steps=(str, Field(description="""Json array with test steps. Example: [{"action": "Some action", "expectedResult": "Some expectation"},...]""")),
144
+ test_steps=(str, Field(description=test_steps_description)),
145
+ test_steps_format=(Optional[str], Field(description="Format of provided test steps. Possible values: json, xml", default='json'))
106
146
  )
107
147
 
108
148
  TestCaseGetModel = create_model(
@@ -217,31 +257,38 @@ class TestPlanApiWrapper(BaseToolApiWrapper):
217
257
  logger.error(f"Error adding test case: {e}")
218
258
  return ToolException(f"Error adding test case: {e}")
219
259
 
220
- def create_test_case(self, plan_id: int, suite_id: int, title: str, description: str, test_steps: str):
260
+ def create_test_cases(self, create_test_cases_parameters):
261
+ """Creates new test cases in specified suite in Azure DevOps."""
262
+ test_cases = json.loads(create_test_cases_parameters)
263
+ return [self.create_test_case(
264
+ plan_id=test_case['plan_id'],
265
+ suite_id=test_case['suite_id'],
266
+ title=test_case['title'],
267
+ description=test_case['description'],
268
+ test_steps=test_case['test_steps'],
269
+ test_steps_format=test_case['test_steps_format']) for test_case in test_cases]
270
+
271
+
272
+ def create_test_case(self, plan_id: int, suite_id: int, title: str, description: str, test_steps: str, test_steps_format: str = 'json'):
221
273
  """Creates a new test case in specified suite in Azure DevOps."""
222
274
  work_item_wrapper = AzureDevOpsApiWrapper(organization_url=self.organization_url, token=self.token.get_secret_value(), project=self.project)
223
- work_item_json = self.build_ado_test_case(title, description, json.loads(test_steps))
275
+ if test_steps_format == 'json':
276
+ steps_xml = self.get_test_steps_xml(json.loads(test_steps))
277
+ elif test_steps_format == 'xml':
278
+ steps_xml = self.convert_steps_tag_to_ado_steps(test_steps)
279
+ else:
280
+ return ToolException("Unknown test steps format: " + test_steps_format)
281
+ work_item_json = self.build_ado_test_case(title, description, steps_xml)
224
282
  created_work_item_id = work_item_wrapper.create_work_item(work_item_json=json.dumps(work_item_json), wi_type="Test Case")['id']
225
283
  return self.add_test_case([{"work_item":{"id":created_work_item_id}}], plan_id, suite_id)
226
284
 
227
- def build_ado_test_case(self, title, description, steps):
285
+ def build_ado_test_case(self, title, description, steps_xml):
228
286
  """
229
287
  :param title: test title
230
288
  :param description: test description
231
- :param steps: steps [(action, expected result), ...]
289
+ :param steps_xml: steps xml
232
290
  :return: JSON with ADO fields
233
291
  """
234
- steps_elem = ET.Element("steps")
235
-
236
- for idx, step in enumerate(steps, start=1):
237
- step_elem = ET.SubElement(steps_elem, "step", id=str(idx), type="Action")
238
- action_elem = ET.SubElement(step_elem, "parameterizedString", isformatted="true")
239
- action_elem.text = step["action"]
240
- expected_elem = ET.SubElement(step_elem, "parameterizedString", isformatted="true")
241
- expected_elem.text = step["expectedResult"]
242
-
243
- steps_xml = ET.tostring(steps_elem, encoding="unicode")
244
-
245
292
  return {
246
293
  "fields": {
247
294
  "System.Title": title,
@@ -250,6 +297,42 @@ class TestPlanApiWrapper(BaseToolApiWrapper):
250
297
  }
251
298
  }
252
299
 
300
+ def get_test_steps_xml(self, steps: dict):
301
+ steps_elem = ET.Element("steps")
302
+ for step in steps:
303
+ step_number = step.get("stepNumber", 1)
304
+ action = step.get("action", "")
305
+ expected_result = step.get("expectedResult", "")
306
+ steps_elem.append(self.build_step_element(step_number, action, expected_result))
307
+ return ET.tostring(steps_elem, encoding="unicode")
308
+
309
+ def convert_steps_tag_to_ado_steps(self, input_xml: str) -> str:
310
+ """
311
+ Converts input XML from format:
312
+ <Steps><Step><Action>...</Action><ExpectedResult>...</ExpectedResult></Step></Steps>
313
+ to Azure DevOps test case format:
314
+ <steps><step id="1" type="Action">...</step>...</steps>
315
+ """
316
+ input_root = ET.fromstring(input_xml)
317
+ steps_elem = ET.Element("steps")
318
+ for step_node in input_root.findall("Step"):
319
+ step_number = step_node.findtext("StepNumber", default="1")
320
+ action = step_node.findtext("Action", default="")
321
+ expected_result = step_node.findtext("ExpectedResult", default="")
322
+ steps_elem.append(self.build_step_element(step_number, action, expected_result))
323
+ return ET.tostring(steps_elem, encoding="unicode")
324
+
325
+ def build_step_element(self, step_number: str, action: str, expected_result: str) -> ET.Element:
326
+ """
327
+ Creates an individual <step> element for Azure DevOps.
328
+ """
329
+ step_elem = ET.Element("step", id=str(step_number), type="Action")
330
+ action_elem = ET.SubElement(step_elem, "parameterizedString", isformatted="true")
331
+ action_elem.text = action or ""
332
+ expected_elem = ET.SubElement(step_elem, "parameterizedString", isformatted="true")
333
+ expected_elem.text = expected_result or ""
334
+ return step_elem
335
+
253
336
  def get_test_case(self, plan_id: int, suite_id: int, test_case_id: str):
254
337
  """Get a test case from a suite in Azure DevOps."""
255
338
  try:
@@ -323,6 +406,12 @@ class TestPlanApiWrapper(BaseToolApiWrapper):
323
406
  "args_schema": TestCaseCreateModel,
324
407
  "ref": self.create_test_case,
325
408
  },
409
+ {
410
+ "name": "create_test_cases",
411
+ "description": self.create_test_cases.__doc__,
412
+ "args_schema": TestCasesCreateModel,
413
+ "ref": self.create_test_cases,
414
+ },
326
415
  {
327
416
  "name": "get_test_case",
328
417
  "description": self.get_test_case.__doc__,
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: alita_sdk
3
- Version: 0.3.188
3
+ Version: 0.3.190
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
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "alita_sdk"
7
- version = "0.3.188"
7
+ version = "0.3.190"
8
8
  description = "SDK for building langchain agents using resources from Alita"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.10"
File without changes
File without changes