alita-sdk 0.3.317__tar.gz → 0.3.319__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 (365) hide show
  1. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/PKG-INFO +1 -1
  2. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/runtime/langchain/document_loaders/AlitaExcelLoader.py +15 -0
  3. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/runtime/langchain/document_loaders/AlitaTableLoader.py +0 -3
  4. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/runtime/langchain/document_loaders/constants.py +2 -0
  5. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/runtime/tools/vectorstore_base.py +5 -16
  6. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/tools/ado/test_plan/test_plan_wrapper.py +1 -1
  7. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/tools/ado/wiki/ado_wrapper.py +1 -1
  8. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/tools/base_indexer_toolkit.py +6 -8
  9. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/tools/carrier/backend_reports_tool.py +8 -4
  10. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/tools/carrier/excel_reporter.py +8 -4
  11. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/tools/confluence/api_wrapper.py +2 -8
  12. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/tools/elitea_base.py +6 -3
  13. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/tools/jira/api_wrapper.py +33 -8
  14. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/tools/utils/content_parser.py +28 -19
  15. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/tools/xray/api_wrapper.py +2 -2
  16. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/tools/zephyr_enterprise/api_wrapper.py +3 -2
  17. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/tools/zephyr_scale/api_wrapper.py +1 -1
  18. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk.egg-info/PKG-INFO +1 -1
  19. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/pyproject.toml +1 -1
  20. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/LICENSE +0 -0
  21. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/README.md +0 -0
  22. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/__init__.py +0 -0
  23. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/community/__init__.py +0 -0
  24. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/community/utils.py +0 -0
  25. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/configurations/__init__.py +0 -0
  26. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/configurations/ado.py +0 -0
  27. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/configurations/azure_search.py +0 -0
  28. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/configurations/bigquery.py +0 -0
  29. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/configurations/bitbucket.py +0 -0
  30. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/configurations/browser.py +0 -0
  31. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/configurations/carrier.py +0 -0
  32. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/configurations/confluence.py +0 -0
  33. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/configurations/delta_lake.py +0 -0
  34. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/configurations/embedding.py +0 -0
  35. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/configurations/figma.py +0 -0
  36. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/configurations/github.py +0 -0
  37. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/configurations/gitlab.py +0 -0
  38. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/configurations/google_places.py +0 -0
  39. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/configurations/jira.py +0 -0
  40. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/configurations/pgvector.py +0 -0
  41. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/configurations/postman.py +0 -0
  42. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/configurations/qtest.py +0 -0
  43. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/configurations/rally.py +0 -0
  44. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/configurations/report_portal.py +0 -0
  45. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/configurations/salesforce.py +0 -0
  46. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/configurations/service_now.py +0 -0
  47. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/configurations/sharepoint.py +0 -0
  48. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/configurations/slack.py +0 -0
  49. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/configurations/sonar.py +0 -0
  50. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/configurations/sql.py +0 -0
  51. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/configurations/testio.py +0 -0
  52. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/configurations/testrail.py +0 -0
  53. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/configurations/xray.py +0 -0
  54. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/configurations/zephyr.py +0 -0
  55. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/configurations/zephyr_enterprise.py +0 -0
  56. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/configurations/zephyr_essential.py +0 -0
  57. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/runtime/__init__.py +0 -0
  58. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/runtime/clients/__init__.py +0 -0
  59. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/runtime/clients/artifact.py +0 -0
  60. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/runtime/clients/client.py +0 -0
  61. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/runtime/clients/datasource.py +0 -0
  62. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/runtime/clients/prompt.py +0 -0
  63. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/runtime/langchain/__init__.py +0 -0
  64. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/runtime/langchain/agents/__init__.py +0 -0
  65. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/runtime/langchain/agents/xml_chat.py +0 -0
  66. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/runtime/langchain/assistant.py +0 -0
  67. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/runtime/langchain/chat_message_template.py +0 -0
  68. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/runtime/langchain/constants.py +0 -0
  69. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/runtime/langchain/document_loaders/AlitaBDDScenariosLoader.py +0 -0
  70. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/runtime/langchain/document_loaders/AlitaCSVLoader.py +0 -0
  71. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/runtime/langchain/document_loaders/AlitaConfluenceLoader.py +0 -0
  72. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/runtime/langchain/document_loaders/AlitaDirectoryLoader.py +0 -0
  73. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/runtime/langchain/document_loaders/AlitaDocxMammothLoader.py +0 -0
  74. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/runtime/langchain/document_loaders/AlitaGitRepoLoader.py +0 -0
  75. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/runtime/langchain/document_loaders/AlitaImageLoader.py +0 -0
  76. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/runtime/langchain/document_loaders/AlitaJSONLoader.py +0 -0
  77. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/runtime/langchain/document_loaders/AlitaJiraLoader.py +0 -0
  78. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/runtime/langchain/document_loaders/AlitaMarkdownLoader.py +0 -0
  79. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/runtime/langchain/document_loaders/AlitaPDFLoader.py +0 -0
  80. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/runtime/langchain/document_loaders/AlitaPowerPointLoader.py +0 -0
  81. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/runtime/langchain/document_loaders/AlitaPythonLoader.py +0 -0
  82. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/runtime/langchain/document_loaders/AlitaQtestLoader.py +0 -0
  83. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/runtime/langchain/document_loaders/AlitaTextLoader.py +0 -0
  84. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/runtime/langchain/document_loaders/ImageParser.py +0 -0
  85. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/runtime/langchain/document_loaders/__init__.py +0 -0
  86. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/runtime/langchain/document_loaders/utils.py +0 -0
  87. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/runtime/langchain/indexer.py +0 -0
  88. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/runtime/langchain/interfaces/__init__.py +0 -0
  89. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/runtime/langchain/interfaces/kwextractor.py +0 -0
  90. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/runtime/langchain/interfaces/llm_processor.py +0 -0
  91. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/runtime/langchain/interfaces/loaders.py +0 -0
  92. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/runtime/langchain/interfaces/splitters.py +0 -0
  93. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/runtime/langchain/langraph_agent.py +0 -0
  94. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/runtime/langchain/mixedAgentParser.py +0 -0
  95. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/runtime/langchain/mixedAgentRenderes.py +0 -0
  96. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/runtime/langchain/retrievers/AlitaRetriever.py +0 -0
  97. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/runtime/langchain/retrievers/VectorstoreRetriever.py +0 -0
  98. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/runtime/langchain/retrievers/__init__.py +0 -0
  99. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/runtime/langchain/store_manager.py +0 -0
  100. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/runtime/langchain/tools/__init__.py +0 -0
  101. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/runtime/langchain/tools/bdd_parser/__init__.py +0 -0
  102. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/runtime/langchain/tools/bdd_parser/bdd_exceptions.py +0 -0
  103. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/runtime/langchain/tools/bdd_parser/bdd_parser.py +0 -0
  104. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/runtime/langchain/tools/bdd_parser/feature_types.py +0 -0
  105. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/runtime/langchain/tools/bdd_parser/parser.py +0 -0
  106. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/runtime/langchain/tools/git.py +0 -0
  107. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/runtime/langchain/tools/log.py +0 -0
  108. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/runtime/langchain/tools/quota.py +0 -0
  109. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/runtime/langchain/tools/state.py +0 -0
  110. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/runtime/langchain/tools/utils.py +0 -0
  111. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/runtime/langchain/tools/vector.py +0 -0
  112. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/runtime/langchain/utils.py +0 -0
  113. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/runtime/llms/__init__.py +0 -0
  114. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/runtime/llms/preloaded.py +0 -0
  115. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/runtime/toolkits/__init__.py +0 -0
  116. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/runtime/toolkits/application.py +0 -0
  117. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/runtime/toolkits/artifact.py +0 -0
  118. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/runtime/toolkits/configurations.py +0 -0
  119. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/runtime/toolkits/datasource.py +0 -0
  120. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/runtime/toolkits/prompt.py +0 -0
  121. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/runtime/toolkits/subgraph.py +0 -0
  122. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/runtime/toolkits/tools.py +0 -0
  123. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/runtime/toolkits/vectorstore.py +0 -0
  124. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/runtime/tools/__init__.py +0 -0
  125. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/runtime/tools/agent.py +0 -0
  126. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/runtime/tools/application.py +0 -0
  127. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/runtime/tools/artifact.py +0 -0
  128. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/runtime/tools/datasource.py +0 -0
  129. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/runtime/tools/echo.py +0 -0
  130. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/runtime/tools/function.py +0 -0
  131. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/runtime/tools/graph.py +0 -0
  132. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/runtime/tools/indexer_tool.py +0 -0
  133. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/runtime/tools/llm.py +0 -0
  134. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/runtime/tools/loop.py +0 -0
  135. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/runtime/tools/loop_output.py +0 -0
  136. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/runtime/tools/mcp_server_tool.py +0 -0
  137. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/runtime/tools/pgvector_search.py +0 -0
  138. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/runtime/tools/prompt.py +0 -0
  139. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/runtime/tools/router.py +0 -0
  140. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/runtime/tools/tool.py +0 -0
  141. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/runtime/tools/vectorstore.py +0 -0
  142. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/runtime/utils/AlitaCallback.py +0 -0
  143. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/runtime/utils/__init__.py +0 -0
  144. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/runtime/utils/constants.py +0 -0
  145. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/runtime/utils/evaluate.py +0 -0
  146. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/runtime/utils/logging.py +0 -0
  147. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/runtime/utils/save_dataframe.py +0 -0
  148. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/runtime/utils/streamlit.py +0 -0
  149. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/runtime/utils/toolkit_runtime.py +0 -0
  150. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/runtime/utils/toolkit_utils.py +0 -0
  151. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/runtime/utils/utils.py +0 -0
  152. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/tools/__init__.py +0 -0
  153. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/tools/ado/__init__.py +0 -0
  154. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/tools/ado/repos/__init__.py +0 -0
  155. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/tools/ado/repos/repos_wrapper.py +0 -0
  156. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/tools/ado/test_plan/__init__.py +0 -0
  157. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/tools/ado/utils.py +0 -0
  158. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/tools/ado/wiki/__init__.py +0 -0
  159. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/tools/ado/work_item/__init__.py +0 -0
  160. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/tools/ado/work_item/ado_wrapper.py +0 -0
  161. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/tools/advanced_jira_mining/__init__.py +0 -0
  162. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/tools/advanced_jira_mining/data_mining_wrapper.py +0 -0
  163. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/tools/aws/__init__.py +0 -0
  164. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/tools/aws/delta_lake/__init__.py +0 -0
  165. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/tools/aws/delta_lake/api_wrapper.py +0 -0
  166. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/tools/aws/delta_lake/schemas.py +0 -0
  167. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/tools/aws/delta_lake/tool.py +0 -0
  168. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/tools/azure_ai/__init__.py +0 -0
  169. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/tools/azure_ai/search/__init__.py +0 -0
  170. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/tools/azure_ai/search/api_wrapper.py +0 -0
  171. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/tools/base/__init__.py +0 -0
  172. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/tools/base/tool.py +0 -0
  173. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/tools/bitbucket/__init__.py +0 -0
  174. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/tools/bitbucket/api_wrapper.py +0 -0
  175. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/tools/bitbucket/bitbucket_constants.py +0 -0
  176. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/tools/bitbucket/cloud_api_wrapper.py +0 -0
  177. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/tools/browser/__init__.py +0 -0
  178. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/tools/browser/crawler.py +0 -0
  179. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/tools/browser/duck_duck_go_search.py +0 -0
  180. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/tools/browser/google_search_rag.py +0 -0
  181. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/tools/browser/utils.py +0 -0
  182. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/tools/browser/wiki.py +0 -0
  183. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/tools/carrier/__init__.py +0 -0
  184. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/tools/carrier/api_wrapper.py +0 -0
  185. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/tools/carrier/backend_tests_tool.py +0 -0
  186. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/tools/carrier/cancel_ui_test_tool.py +0 -0
  187. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/tools/carrier/carrier_sdk.py +0 -0
  188. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/tools/carrier/create_ui_excel_report_tool.py +0 -0
  189. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/tools/carrier/create_ui_test_tool.py +0 -0
  190. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/tools/carrier/lighthouse_excel_reporter.py +0 -0
  191. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/tools/carrier/run_ui_test_tool.py +0 -0
  192. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/tools/carrier/tickets_tool.py +0 -0
  193. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/tools/carrier/tools.py +0 -0
  194. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/tools/carrier/ui_reports_tool.py +0 -0
  195. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/tools/carrier/update_ui_test_schedule_tool.py +0 -0
  196. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/tools/carrier/utils.py +0 -0
  197. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/tools/chunkers/__init__.py +0 -0
  198. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/tools/chunkers/code/__init__.py +0 -0
  199. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/tools/chunkers/code/codeparser.py +0 -0
  200. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/tools/chunkers/code/constants.py +0 -0
  201. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/tools/chunkers/code/treesitter/__init__.py +0 -0
  202. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/tools/chunkers/code/treesitter/treesitter.py +0 -0
  203. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/tools/chunkers/code/treesitter/treesitter_c.py +0 -0
  204. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/tools/chunkers/code/treesitter/treesitter_cpp.py +0 -0
  205. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/tools/chunkers/code/treesitter/treesitter_cs.py +0 -0
  206. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/tools/chunkers/code/treesitter/treesitter_go.py +0 -0
  207. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/tools/chunkers/code/treesitter/treesitter_hs.py +0 -0
  208. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/tools/chunkers/code/treesitter/treesitter_java.py +0 -0
  209. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/tools/chunkers/code/treesitter/treesitter_js.py +0 -0
  210. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/tools/chunkers/code/treesitter/treesitter_kt.py +0 -0
  211. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/tools/chunkers/code/treesitter/treesitter_py.py +0 -0
  212. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/tools/chunkers/code/treesitter/treesitter_rb.py +0 -0
  213. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/tools/chunkers/code/treesitter/treesitter_registry.py +0 -0
  214. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/tools/chunkers/code/treesitter/treesitter_rs.py +0 -0
  215. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/tools/chunkers/code/treesitter/treesitter_ts.py +0 -0
  216. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/tools/chunkers/models.py +0 -0
  217. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/tools/chunkers/sematic/__init__.py +0 -0
  218. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/tools/chunkers/sematic/base.py +0 -0
  219. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/tools/chunkers/sematic/json_chunker.py +0 -0
  220. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/tools/chunkers/sematic/markdown_chunker.py +0 -0
  221. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/tools/chunkers/sematic/proposal_chunker.py +0 -0
  222. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/tools/chunkers/sematic/statistical_chunker.py +0 -0
  223. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/tools/chunkers/utils.py +0 -0
  224. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/tools/cloud/__init__.py +0 -0
  225. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/tools/cloud/aws/__init__.py +0 -0
  226. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/tools/cloud/aws/api_wrapper.py +0 -0
  227. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/tools/cloud/azure/__init__.py +0 -0
  228. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/tools/cloud/azure/api_wrapper.py +0 -0
  229. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/tools/cloud/gcp/__init__.py +0 -0
  230. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/tools/cloud/gcp/api_wrapper.py +0 -0
  231. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/tools/cloud/k8s/__init__.py +0 -0
  232. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/tools/cloud/k8s/api_wrapper.py +0 -0
  233. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/tools/code/__init__.py +0 -0
  234. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/tools/code/linter/__init__.py +0 -0
  235. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/tools/code/linter/api_wrapper.py +0 -0
  236. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/tools/code/loaders/codesearcher.py +0 -0
  237. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/tools/code/sonar/__init__.py +0 -0
  238. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/tools/code/sonar/api_wrapper.py +0 -0
  239. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/tools/confluence/__init__.py +0 -0
  240. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/tools/confluence/loader.py +0 -0
  241. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/tools/confluence/utils.py +0 -0
  242. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/tools/custom_open_api/__init__.py +0 -0
  243. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/tools/custom_open_api/api_wrapper.py +0 -0
  244. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/tools/elastic/__init__.py +0 -0
  245. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/tools/elastic/api_wrapper.py +0 -0
  246. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/tools/figma/__init__.py +0 -0
  247. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/tools/figma/api_wrapper.py +0 -0
  248. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/tools/github/__init__.py +0 -0
  249. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/tools/github/api_wrapper.py +0 -0
  250. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/tools/github/github_client.py +0 -0
  251. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/tools/github/graphql_client_wrapper.py +0 -0
  252. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/tools/github/schemas.py +0 -0
  253. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/tools/github/tool.py +0 -0
  254. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/tools/github/tool_prompts.py +0 -0
  255. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/tools/gitlab/__init__.py +0 -0
  256. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/tools/gitlab/api_wrapper.py +0 -0
  257. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/tools/gitlab/tools.py +0 -0
  258. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/tools/gitlab/utils.py +0 -0
  259. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/tools/gitlab_org/__init__.py +0 -0
  260. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/tools/gitlab_org/api_wrapper.py +0 -0
  261. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/tools/gmail/__init__.py +0 -0
  262. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/tools/gmail/gmail_wrapper.py +0 -0
  263. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/tools/gmail/utils.py +0 -0
  264. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/tools/google/__init__.py +0 -0
  265. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/tools/google/bigquery/__init__.py +0 -0
  266. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/tools/google/bigquery/api_wrapper.py +0 -0
  267. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/tools/google/bigquery/schemas.py +0 -0
  268. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/tools/google/bigquery/tool.py +0 -0
  269. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/tools/google_places/__init__.py +0 -0
  270. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/tools/google_places/api_wrapper.py +0 -0
  271. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/tools/jira/__init__.py +0 -0
  272. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/tools/keycloak/__init__.py +0 -0
  273. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/tools/keycloak/api_wrapper.py +0 -0
  274. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/tools/llm/__init__.py +0 -0
  275. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/tools/llm/img_utils.py +0 -0
  276. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/tools/llm/llm_utils.py +0 -0
  277. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/tools/localgit/__init__.py +0 -0
  278. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/tools/localgit/local_git.py +0 -0
  279. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/tools/localgit/tool.py +0 -0
  280. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/tools/memory/__init__.py +0 -0
  281. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/tools/non_code_indexer_toolkit.py +0 -0
  282. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/tools/ocr/__init__.py +0 -0
  283. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/tools/ocr/api_wrapper.py +0 -0
  284. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/tools/ocr/text_detection.py +0 -0
  285. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/tools/openapi/__init__.py +0 -0
  286. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/tools/pandas/__init__.py +0 -0
  287. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/tools/pandas/api_wrapper.py +0 -0
  288. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/tools/pandas/dataframe/__init__.py +0 -0
  289. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/tools/pandas/dataframe/errors.py +0 -0
  290. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/tools/pandas/dataframe/executor/__init__.py +0 -0
  291. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/tools/pandas/dataframe/executor/code_environment.py +0 -0
  292. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/tools/pandas/dataframe/executor/code_executor.py +0 -0
  293. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/tools/pandas/dataframe/generator/__init__.py +0 -0
  294. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/tools/pandas/dataframe/generator/base.py +0 -0
  295. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/tools/pandas/dataframe/generator/code_cleaning.py +0 -0
  296. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/tools/pandas/dataframe/generator/code_validator.py +0 -0
  297. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/tools/pandas/dataframe/prompts.py +0 -0
  298. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/tools/pandas/dataframe/serializer.py +0 -0
  299. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/tools/pandas/dataframe/utils.py +0 -0
  300. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/tools/pandas/statsmodels/__init__.py +0 -0
  301. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/tools/pandas/statsmodels/base_stats.py +0 -0
  302. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/tools/pandas/statsmodels/descriptive.py +0 -0
  303. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/tools/pandas/statsmodels/hypothesis_testing.py +0 -0
  304. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/tools/pandas/statsmodels/regression.py +0 -0
  305. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/tools/postman/__init__.py +0 -0
  306. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/tools/postman/api_wrapper.py +0 -0
  307. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/tools/postman/postman_analysis.py +0 -0
  308. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/tools/pptx/__init__.py +0 -0
  309. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/tools/pptx/pptx_wrapper.py +0 -0
  310. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/tools/qtest/__init__.py +0 -0
  311. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/tools/qtest/api_wrapper.py +0 -0
  312. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/tools/qtest/tool.py +0 -0
  313. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/tools/rally/__init__.py +0 -0
  314. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/tools/rally/api_wrapper.py +0 -0
  315. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/tools/report_portal/__init__.py +0 -0
  316. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/tools/report_portal/api_wrapper.py +0 -0
  317. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/tools/report_portal/report_portal_client.py +0 -0
  318. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/tools/salesforce/__init__.py +0 -0
  319. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/tools/salesforce/api_wrapper.py +0 -0
  320. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/tools/salesforce/model.py +0 -0
  321. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/tools/servicenow/__init__.py +0 -0
  322. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/tools/servicenow/api_wrapper.py +0 -0
  323. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/tools/servicenow/servicenow_client.py +0 -0
  324. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/tools/sharepoint/__init__.py +0 -0
  325. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/tools/sharepoint/api_wrapper.py +0 -0
  326. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/tools/sharepoint/authorization_helper.py +0 -0
  327. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/tools/sharepoint/utils.py +0 -0
  328. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/tools/slack/__init__.py +0 -0
  329. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/tools/slack/api_wrapper.py +0 -0
  330. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/tools/sql/__init__.py +0 -0
  331. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/tools/sql/api_wrapper.py +0 -0
  332. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/tools/sql/models.py +0 -0
  333. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/tools/testio/__init__.py +0 -0
  334. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/tools/testio/api_wrapper.py +0 -0
  335. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/tools/testrail/__init__.py +0 -0
  336. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/tools/testrail/api_wrapper.py +0 -0
  337. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/tools/utils/__init__.py +0 -0
  338. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/tools/utils/available_tools_decorator.py +0 -0
  339. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/tools/vector_adapters/VectorStoreAdapter.py +0 -0
  340. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/tools/vector_adapters/__init__.py +0 -0
  341. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/tools/xray/__init__.py +0 -0
  342. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/tools/yagmail/__init__.py +0 -0
  343. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/tools/yagmail/yagmail_wrapper.py +0 -0
  344. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/tools/zephyr/Zephyr.py +0 -0
  345. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/tools/zephyr/__init__.py +0 -0
  346. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/tools/zephyr/api_wrapper.py +0 -0
  347. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/tools/zephyr/rest_client.py +0 -0
  348. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/tools/zephyr_enterprise/__init__.py +0 -0
  349. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/tools/zephyr_enterprise/zephyr_enterprise.py +0 -0
  350. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/tools/zephyr_essential/__init__.py +0 -0
  351. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/tools/zephyr_essential/api_wrapper.py +0 -0
  352. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/tools/zephyr_essential/client.py +0 -0
  353. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/tools/zephyr_scale/__init__.py +0 -0
  354. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/tools/zephyr_squad/__init__.py +0 -0
  355. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/tools/zephyr_squad/api_wrapper.py +0 -0
  356. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk/tools/zephyr_squad/zephyr_squad_cloud_client.py +0 -0
  357. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk.egg-info/SOURCES.txt +0 -0
  358. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk.egg-info/dependency_links.txt +0 -0
  359. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk.egg-info/requires.txt +0 -0
  360. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/alita_sdk.egg-info/top_level.txt +0 -0
  361. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/setup.cfg +0 -0
  362. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/tests/test_ado_analysis.py +0 -0
  363. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/tests/test_github_analysis.py +0 -0
  364. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/tests/test_gitlab_analysis.py +0 -0
  365. {alita_sdk-0.3.317 → alita_sdk-0.3.319}/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.317
3
+ Version: 0.3.319
4
4
  Summary: SDK for building langchain agents using resources from Alita
5
5
  Author-email: Artem Rozumenko <artyom.rozumenko@gmail.com>, Mikalai Biazruchka <mikalai_biazruchka@epam.com>, Roman Mitusov <roman_mitusov@epam.com>, Ivan Krakhmaliuk <lifedj27@gmail.com>, Artem Dubrovskiy <ad13box@gmail.com>
6
6
  License-Expression: Apache-2.0
@@ -17,6 +17,7 @@ import pandas as pd
17
17
  from json import loads
18
18
 
19
19
  from langchain_core.tools import ToolException
20
+ from langchain_core.documents import Document
20
21
  from .AlitaTableLoader import AlitaTableLoader
21
22
 
22
23
 
@@ -65,6 +66,20 @@ class AlitaExcelLoader(AlitaTableLoader):
65
66
  else:
66
67
  return df.to_string(index=False)
67
68
 
69
+ def load(self) -> list:
70
+ docs = []
71
+ content_per_sheet = self.get_content()
72
+ for sheet_name, content in content_per_sheet.items():
73
+ metadata = {
74
+ "source": f'{self.file_path}:{sheet_name}',
75
+ "sheet_name": sheet_name,
76
+ "file_type": "excel",
77
+ "excel_by_sheets": self.excel_by_sheets,
78
+ "return_type": self.return_type,
79
+ }
80
+ docs.append(Document(page_content=f"Sheet: {sheet_name}\n {str(content)}", metadata=metadata))
81
+ return docs
82
+
68
83
  def read(self, lazy: bool = False):
69
84
  df = pd.read_excel(self.file_path, sheet_name=None)
70
85
  docs = []
@@ -17,8 +17,6 @@ from langchain_core.documents import Document
17
17
  from typing import List, Optional, Iterator
18
18
  from json import dumps
19
19
  from .utils import cleanse_data
20
- from ..tools.log import print_log
21
-
22
20
 
23
21
  class AlitaTableLoader(BaseLoader):
24
22
  def __init__(self,
@@ -74,7 +72,6 @@ class AlitaTableLoader(BaseLoader):
74
72
  docs.append(Document(page_content=row, metadata=metadata))
75
73
  continue
76
74
  if self.json_documents:
77
- # print_log(row)
78
75
  metadata['columns'] = list(row.keys())
79
76
  metadata['og_data'] = dumps(row)
80
77
  docs.append(Document(page_content=self.row_processor(row), metadata=metadata))
@@ -122,6 +122,7 @@ loaders_map = {
122
122
  'class': AlitaExcelLoader,
123
123
  'is_multimodal_processing': False,
124
124
  'kwargs': {
125
+ 'excel_by_sheets': True,
125
126
  'raw_content': True,
126
127
  'cleanse': False
127
128
  },
@@ -131,6 +132,7 @@ loaders_map = {
131
132
  'class': AlitaExcelLoader,
132
133
  'is_multimodal_processing': False,
133
134
  'kwargs': {
135
+ 'excel_by_sheets': True,
134
136
  'raw_content': True,
135
137
  'cleanse': False
136
138
  },
@@ -10,7 +10,6 @@ from pydantic import BaseModel, model_validator, Field
10
10
 
11
11
  from alita_sdk.tools.elitea_base import BaseToolApiWrapper
12
12
  from alita_sdk.tools.vector_adapters.VectorStoreAdapter import VectorStoreAdapterFactory
13
- from ..langchain.tools.vector import VectorAdapter
14
13
  from ..utils.logging import dispatch_custom_event
15
14
 
16
15
  logger = getLogger(__name__)
@@ -138,10 +137,7 @@ class VectorStoreWrapperBase(BaseToolApiWrapper):
138
137
  vectorstore_params: Optional[dict] = None
139
138
  max_docs_per_add: int = 100
140
139
  dataset: str = None
141
- embedding: Any = None
142
140
  vectorstore: Any = None
143
- # Review usage of old adapter
144
- vectoradapter: Any = None
145
141
  pg_helper: Any = None
146
142
  embeddings: Any = None
147
143
  # New adapter for vector database operations
@@ -152,17 +148,13 @@ class VectorStoreWrapperBase(BaseToolApiWrapper):
152
148
  def validate_toolkit(cls, values):
153
149
  from ..langchain.interfaces.llm_processor import get_vectorstore
154
150
  logger.debug(f"Validating toolkit: {values}")
155
- if 'vectorstore_params' in values:
156
- values["dataset"] = values.get('vectorstore_params').get('collection_name')
157
- if values.get('embedding_model'):
158
- values['embeddings'] = values['alita'].get_embeddings(values['embedding_model'])
151
+ values["dataset"] = values.get('collection_name')
152
+
153
+ if values.get('alita') and values.get('embedding_model'):
154
+ values['embeddings'] = values.get('alita').get_embeddings(values.get('embedding_model'))
155
+
159
156
  if values.get('vectorstore_type') and values.get('vectorstore_params') and values.get('embedding_model'):
160
157
  values['vectorstore'] = get_vectorstore(values['vectorstore_type'], values['vectorstore_params'], embedding_func=values['embeddings'])
161
- values['vectoradapter'] = VectorAdapter(
162
- vectorstore=values['vectorstore'],
163
- embeddings=values['embeddings'],
164
- quota_params=None,
165
- )
166
158
  # Initialize the new vector adapter
167
159
  values['vector_adapter'] = VectorStoreAdapterFactory.create_adapter(values['vectorstore_type'])
168
160
  logger.debug(f"Vectorstore wrapper initialized: {values}")
@@ -223,8 +215,6 @@ class VectorStoreWrapperBase(BaseToolApiWrapper):
223
215
  self._log_data("Cleaning index before re-indexing all documents. Previous index will be removed", tool_name="index_documents")
224
216
  try:
225
217
  self._clean_collection(collection_suffix)
226
- self.vectoradapter.persist()
227
- self.vectoradapter.vacuum()
228
218
  self._log_data("Previous index has been removed",
229
219
  tool_name="index_documents")
230
220
  except Exception as e:
@@ -238,7 +228,6 @@ class VectorStoreWrapperBase(BaseToolApiWrapper):
238
228
  logger.warning(f"Document is missing required metadata field 'id' or 'updated_on': {doc.metadata}")
239
229
 
240
230
  logger.debug(f"Indexing documents: {documents}")
241
- logger.debug(self.vectoradapter)
242
231
 
243
232
  # if collection_suffix is provided, add it to metadata of each document
244
233
  if collection_suffix:
@@ -411,11 +411,11 @@ class TestPlanApiWrapper(NonCodeIndexerToolkit):
411
411
  def _index_tool_params(self):
412
412
  """Return the parameters for indexing data."""
413
413
  return {
414
+ 'chunking_tool': (Literal['html', ''], Field(description="Name of chunking tool", default='html')),
414
415
  "plan_id": (int, Field(description="ID of the test plan for which test cases are requested")),
415
416
  "suite_ids": (Optional[List[int]], Field(description='List of test suite IDs for which test cases are requested '
416
417
  '(can be empty for all suites indexing from the plan). '
417
418
  'Example: [2, 23]', default=[])),
418
- 'chunking_tool':(Literal['html', ''], Field(description="Name of chunking tool", default='html'))
419
419
  }
420
420
 
421
421
  @extend_with_parent_available_tools
@@ -248,9 +248,9 @@ class AzureDevOpsApiWrapper(NonCodeIndexerToolkit):
248
248
  def _index_tool_params(self):
249
249
  """Return the parameters for indexing data."""
250
250
  return {
251
+ 'chunking_tool': (Literal['markdown', ''], Field(description="Name of chunking tool", default='markdown')),
251
252
  "wiki_identifier": (str, Field(description="Wiki identifier to index, e.g., 'ABCProject.wiki'")),
252
253
  'title_contains': (Optional[str], Field(default=None, description="Optional filter to include only pages with titles containing exact this string")),
253
- 'chunking_tool':(Literal['markdown', ''], Field(description="Name of chunking tool", default='markdown'))
254
254
  }
255
255
 
256
256
  @extend_with_parent_available_tools
@@ -5,7 +5,7 @@ from typing import Any, Optional, List, Literal, Dict, Generator
5
5
  from langchain_core.documents import Document
6
6
  from pydantic import create_model, Field, SecretStr
7
7
 
8
- from .utils.content_parser import file_extension_by_chunker, process_content_by_type
8
+ from .utils.content_parser import file_extension_by_chunker, process_document_by_type
9
9
  from .vector_adapters.VectorStoreAdapter import VectorStoreAdapterFactory
10
10
  from ..runtime.tools.vectorstore_base import VectorStoreWrapperBase
11
11
  from ..runtime.utils.utils import IndexerKeywords
@@ -87,10 +87,10 @@ BaseStepbackSearchParams = create_model(
87
87
  BaseIndexDataParams = create_model(
88
88
  "indexData",
89
89
  __base__=BaseIndexParams,
90
- progress_step=(Optional[int], Field(default=10, ge=0, le=100,
91
- description="Optional step size for progress reporting during indexing")),
92
90
  clean_index=(Optional[bool], Field(default=False,
93
91
  description="Optional flag to enforce clean existing index before indexing new data")),
92
+ progress_step=(Optional[int], Field(default=10, ge=0, le=100,
93
+ description="Optional step size for progress reporting during indexing")),
94
94
  chunking_config=(Optional[dict], Field(description="Chunking tool configuration", default_factory=dict)),
95
95
  )
96
96
 
@@ -102,7 +102,6 @@ class BaseIndexerToolkit(VectorStoreWrapperBase):
102
102
 
103
103
  connection_string: Optional[SecretStr] = None
104
104
  collection_name: Optional[str] = None
105
- _embedding: Optional[Any] = None
106
105
  alita: Any = None # Elitea client, if available
107
106
 
108
107
  def __init__(self, **kwargs):
@@ -116,7 +115,6 @@ class BaseIndexerToolkit(VectorStoreWrapperBase):
116
115
  if connection_string:
117
116
  # Initialize vectorstore params only if connection string is provided
118
117
  kwargs['vectorstore_params'] = VectorStoreAdapterFactory.create_adapter(vectorstore_type).get_vectorstore_params(collection_name, connection_string)
119
- kwargs['_embedding'] = kwargs.get('alita').get_embeddings(kwargs.get('embedding_model'))
120
118
  super().__init__(**kwargs)
121
119
 
122
120
  def _index_tool_params(self, **kwargs) -> dict[str, tuple[type, Field]]:
@@ -181,14 +179,14 @@ class BaseIndexerToolkit(VectorStoreWrapperBase):
181
179
 
182
180
  if chunking_config is None:
183
181
  chunking_config = {}
184
- chunking_config['embedding'] = self._embedding
182
+ chunking_config['embedding'] = self.embeddings
185
183
  chunking_config['llm'] = self.llm
186
184
 
187
185
  for document in documents:
188
186
  if content_type := document.metadata.get(IndexerKeywords.CONTENT_FILE_NAME.value, None):
189
187
  # apply parsing based on content type and chunk if chunker was applied to parent doc
190
188
  content = document.metadata.pop(IndexerKeywords.CONTENT_IN_BYTES.value, None)
191
- yield from process_content_by_type(
189
+ yield from process_document_by_type(
192
190
  document=document,
193
191
  content=content,
194
192
  extension_source=content_type, llm=self.llm, chunking_config=chunking_config)
@@ -199,7 +197,7 @@ class BaseIndexerToolkit(VectorStoreWrapperBase):
199
197
  continue
200
198
  # apply parsing based on content type resolved from chunking_tool
201
199
  content_type = file_extension_by_chunker(chunking_tool)
202
- yield from process_content_by_type(
200
+ yield from process_document_by_type(
203
201
  document=document,
204
202
  content=content_in_bytes,
205
203
  extension_source=content_type, llm=self.llm, chunking_config=chunking_config)
@@ -154,6 +154,7 @@ class CreateExcelReportTool(BaseTool):
154
154
  "tp_threshold": (int, Field(default=None, description="Throughput threshold")),
155
155
  "rt_threshold": (int, Field(default=None, description="Response time threshold")),
156
156
  "er_threshold": (int, Field(default=None, description="Error rate threshold")),
157
+ "include_group_pauses": (bool, Field(default=False, description="Include group pauses in Gatling Excel report")),
157
158
  }
158
159
  )
159
160
 
@@ -200,6 +201,7 @@ class CreateExcelReportTool(BaseTool):
200
201
  "tp_threshold": 10,
201
202
  "rt_threshold": 500,
202
203
  "er_threshold": 5,
204
+ "include_group_pauses": False,
203
205
  }
204
206
 
205
207
  def _request_parameter_confirmation(self, default_parameters):
@@ -217,7 +219,8 @@ class CreateExcelReportTool(BaseTool):
217
219
  excel_report_file_name = f'/tmp/reports_test_results_{report["build_id"]}_excel_report.xlsx'
218
220
  bucket_name = report["name"].replace("_", "").replace(" ", "").lower()
219
221
 
220
- result_stats_j = self._parse_report(test_log_file_path, lg_type, parameters["think_time"], is_absolute_file_path=True)
222
+ result_stats_j = self._parse_report(test_log_file_path, lg_type, parameters["think_time"],
223
+ parameters["include_group_pauses"], is_absolute_file_path=True)
221
224
  calc_thr_j = self._calculate_thresholds(result_stats_j, parameters)
222
225
 
223
226
  return self._generate_and_upload_report(
@@ -233,21 +236,22 @@ class CreateExcelReportTool(BaseTool):
233
236
  excel_report_file_name = f'{file_path}_{current_date}.xlsx'
234
237
  bucket_name = bucket
235
238
 
236
- result_stats_j = self._parse_report(file_path, lg_type, parameters["think_time"], is_absolute_file_path=True)
239
+ result_stats_j = self._parse_report(file_path, lg_type, parameters["think_time"],
240
+ parameters["include_group_pauses"], is_absolute_file_path=True)
237
241
  calc_thr_j = self._calculate_thresholds(result_stats_j, parameters)
238
242
 
239
243
  return self._generate_and_upload_report(
240
244
  result_stats_j, carrier_report, calc_thr_j, parameters, excel_report_file_name, bucket_name, file_path
241
245
  )
242
246
 
243
- def _parse_report(self, file_path, lg_type, think_time, is_absolute_file_path=False):
247
+ def _parse_report(self, file_path, lg_type, think_time, include_group_pauses, is_absolute_file_path=False):
244
248
  """Parse the report based on its type."""
245
249
  if lg_type == "gatling":
246
250
  if is_absolute_file_path:
247
251
  report_file = file_path
248
252
  else:
249
253
  report_file = get_latest_log_file(file_path, "simulation.log")
250
- parser = GatlingReportParser(report_file, think_time)
254
+ parser = GatlingReportParser(report_file, include_group_pauses, think_time)
251
255
  result_stats_j = parser.parse()
252
256
  result_stats_j["requests"].update(result_stats_j["groups"])
253
257
  elif lg_type == "jmeter":
@@ -118,9 +118,10 @@ class JMeterReportParser(PerformanceReportParser):
118
118
 
119
119
  class GatlingReportParser(PerformanceReportParser):
120
120
 
121
- def __init__(self, log_file: str, think_times="5,0-10,0"):
121
+ def __init__(self, log_file: str, include_group_pauses, think_times="5,0-10,0"):
122
122
  self.calculated_think_time = think_times
123
123
  self.log_file = log_file
124
+ self.include_group_pauses = include_group_pauses
124
125
 
125
126
  @staticmethod
126
127
  def convert_timestamp_to_datetime(timestamp: int) -> datetime:
@@ -210,7 +211,7 @@ class GatlingReportParser(PerformanceReportParser):
210
211
  ramp_end = self.convert_timestamp_to_datetime(int(line.split('\t')[3]))
211
212
 
212
213
  elif line.startswith('GROUP'):
213
- self.parse_group_line(groups, line)
214
+ self.parse_group_line(groups, line, self.include_group_pauses)
214
215
  except FileNotFoundError as e:
215
216
  print(f"File not found: {e}")
216
217
  raise
@@ -242,11 +243,14 @@ class GatlingReportParser(PerformanceReportParser):
242
243
  requests[request_name].append((response_time, status))
243
244
 
244
245
  @staticmethod
245
- def parse_group_line(groups, line):
246
+ def parse_group_line(groups, line, include_group_pauses):
246
247
  parts = line.split('\t')
247
248
  if len(parts) >= 6:
248
249
  group_name = parts[1]
249
- response_time = int(parts[4])
250
+ if include_group_pauses:
251
+ response_time = int(parts[3]) - int(parts[2])
252
+ else:
253
+ response_time = int(parts[4])
250
254
  status = parts[5].strip()
251
255
  groups[group_name].append((response_time, status))
252
256
 
@@ -1656,8 +1656,7 @@ class ConfluenceAPIWrapper(NonCodeIndexerToolkit):
1656
1656
 
1657
1657
  @extend_with_parent_available_tools
1658
1658
  def get_available_tools(self):
1659
- # Confluence-specific tools
1660
- confluence_tools = [
1659
+ return [
1661
1660
  {
1662
1661
  "name": "create_page",
1663
1662
  "ref": self.create_page,
@@ -1772,9 +1771,4 @@ class ConfluenceAPIWrapper(NonCodeIndexerToolkit):
1772
1771
  "description": self.get_page_attachments.__doc__,
1773
1772
  "args_schema": GetPageAttachmentsInput,
1774
1773
  }
1775
- ]
1776
-
1777
- # Add standardized vector search tools from base class
1778
- vector_search_tools = self._get_vector_search_tools()
1779
-
1780
- return confluence_tools + vector_search_tools
1774
+ ]
@@ -39,10 +39,13 @@ BaseIndexParams = create_model(
39
39
  BaseCodeIndexParams = create_model(
40
40
  "BaseCodeIndexParams",
41
41
  collection_suffix=(str, Field(description="Suffix for collection name (max 7 characters) used to separate datasets", min_length=1, max_length=7)),
42
+ clean_index=(Optional[bool], Field(default=False, description="Optional flag to enforce clean existing index before indexing new data")),
43
+ progress_step=(Optional[int], Field(default=5, ge=0, le=100,
44
+ description="Optional step size for progress reporting during indexing")),
42
45
  branch=(Optional[str], Field(description="Branch to index files from. Defaults to active branch if None.", default=None)),
43
46
  whitelist=(Optional[List[str]], Field(description='File extensions or paths to include. Defaults to all files if None. Example: ["*.md", "*.java"]', default=None)),
44
47
  blacklist=(Optional[List[str]], Field(description='File extensions or paths to exclude. Defaults to no exclusions if None. Example: ["*.md", "*.java"]', default=None)),
45
- clean_index=(Optional[bool], Field(default=False, description="Optional flag to enforce clean existing index before indexing new data")),
48
+
46
49
  )
47
50
 
48
51
  RemoveIndexParams = create_model(
@@ -115,10 +118,10 @@ BaseStepbackSearchParams = create_model(
115
118
  BaseIndexDataParams = create_model(
116
119
  "indexData",
117
120
  __base__=BaseIndexParams,
118
- progress_step=(Optional[int], Field(default=5, ge=0, le=100,
119
- description="Optional step size for progress reporting during indexing")),
120
121
  clean_index=(Optional[bool], Field(default=False,
121
122
  description="Optional flag to enforce clean existing index before indexing new data")),
123
+ progress_step=(Optional[int], Field(default=5, ge=0, le=100,
124
+ description="Optional step size for progress reporting during indexing")),
122
125
  chunking_tool=(Literal[None,'markdown', 'statistical', 'proposal'], Field(description="Name of chunking tool", default=None)),
123
126
  chunking_config=(Optional[dict], Field(description="Chunking tool configuration", default_factory=dict)),
124
127
  )
@@ -17,7 +17,7 @@ from ..llm.img_utils import ImageDescriptionCache
17
17
  from ..non_code_indexer_toolkit import NonCodeIndexerToolkit
18
18
  from ..utils import is_cookie_token, parse_cookie_string
19
19
  from ..utils.available_tools_decorator import extend_with_parent_available_tools
20
- from ..utils.content_parser import file_extension_by_chunker
20
+ from ..utils.content_parser import file_extension_by_chunker, process_content_by_type
21
21
  from ...runtime.utils.utils import IndexerKeywords
22
22
 
23
23
  logger = logging.getLogger(__name__)
@@ -132,6 +132,13 @@ GetRemoteLinks = create_model(
132
132
  jira_issue_key=(str, Field(description="Jira issue key from which remote links will be extracted, e.g. TEST-1234"))
133
133
  )
134
134
 
135
+ GetIssueAttachments = create_model(
136
+ "GetIssueAttachments",
137
+ jira_issue_key=(str, Field(description="Jira issue key from which remote links will be extracted, e.g. TEST-1234")),
138
+ attachment_pattern=(Optional[str], Field(description="Regex pattern to filter attachment filenames. If not provided,"
139
+ " all attachments will be processed", default=None))
140
+ )
141
+
135
142
  ListCommentsInput = create_model(
136
143
  "ListCommentsInputModel",
137
144
  issue_key=(str, Field(description="The issue key of the Jira issue from which comments will be extracted, e.g. 'TEST-123'."))
@@ -725,19 +732,37 @@ class JiraApiWrapper(NonCodeIndexerToolkit):
725
732
  logger.error(f"Error listing Jira projects: {stacktrace}")
726
733
  return ToolException(f"Error listing Jira projects: {stacktrace}")
727
734
 
728
- def get_attachments_content(self, jira_issue_key: str):
729
- """ Extract content of all attachments related to specified Jira issue key.
730
- NOTE: only parsable attachments will be considered """
735
+ def get_attachments_content(self, jira_issue_key: str, attachment_pattern: Optional[str] = None):
736
+ """ Extract the content of all attachments related to a specified Jira issue key.
737
+ NOTE: only parsable attachments will be considered
738
+ Args:
739
+ jira_issue_key: The key of the Jira issue, e.g. "TEST-123
740
+ attachment_pattern: Optional regex pattern to filter attachments by filename.
741
+ If provided, only attachments with filenames matching this pattern will be processed.
742
+ Returns:
743
+ A string containing the content of all relevant attachments, separated by double newlines.
744
+ """
731
745
 
732
746
  attachment_data = []
733
747
  attachments = self._client.get_attachments_ids_from_issue(issue=jira_issue_key)
734
748
  for attachment in attachments:
749
+ if attachment_pattern and not re.search(attachment_pattern, attachment['filename']):
750
+ logger.info(f"Skipping attachment {attachment['filename']} as it does not match pattern {attachment_pattern}")
751
+ continue
752
+ logger.info(f"Processing attachment {attachment['filename']} with ID {attachment['attachment_id']}")
735
753
  if self.api_version == "3":
736
754
  attachment_data.append(self._client.get_attachment_content(attachment['attachment_id']))
737
755
  else:
738
- extracted_attachment = self._client.get_attachment(attachment_id=attachment['attachment_id'])
739
- if extracted_attachment['mimeType'] in SUPPORTED_ATTACHMENT_MIME_TYPES:
740
- attachment_data.append(self._extract_attachment_content(extracted_attachment))
756
+ try:
757
+ attachment_content = self._client.get_attachment_content(attachment['attachment_id'])
758
+ except Exception as e:
759
+ logger.error(
760
+ f"Failed to download attachment {attachment['filename']} for issue {jira_issue_key}: {str(e)}")
761
+ attachment_content = self._client.get(
762
+ path=f"secure/attachment/{attachment['attachment_id']}/{attachment['filename']}", not_json_response=True)
763
+ content_docs = process_content_by_type(attachment_content, attachment['filename'], llm=self.llm)
764
+ attachment_data.append("filename: " + attachment['filename'] + "\ncontent: " + str([doc.page_content for doc in content_docs]))
765
+
741
766
  return "\n\n".join(attachment_data)
742
767
 
743
768
  def execute_generic_rq(self, method: str, relative_url: str, params: Optional[str] = "", *args):
@@ -1632,7 +1657,7 @@ class JiraApiWrapper(NonCodeIndexerToolkit):
1632
1657
  {
1633
1658
  "name": "get_attachments_content",
1634
1659
  "description": self.get_attachments_content.__doc__,
1635
- "args_schema": GetRemoteLinks,
1660
+ "args_schema": GetIssueAttachments,
1636
1661
  "ref": self.get_attachments_content,
1637
1662
  },
1638
1663
  {
@@ -201,17 +201,40 @@ def load_content_from_bytes(file_content: bytes, extension: str = None, loader_e
201
201
  if temp_file_path and os.path.exists(temp_file_path):
202
202
  os.remove(temp_file_path)
203
203
 
204
- def process_content_by_type(document: Document, content, extension_source: str, llm = None, chunking_config=None) -> Generator[Document, None, None]:
204
+ def process_document_by_type(content, extension_source: str, document: Document = None, llm = None, chunking_config=None) \
205
+ -> Generator[Document, None, None]:
206
+ """Process the content of a file based on its type using a configured loader cosidering the origin document."""
207
+ try:
208
+ chunks = process_content_by_type(content, extension_source, llm, chunking_config)
209
+ except Exception as e:
210
+ msg = f"Error during content for file {extension_source}:\n{e}"
211
+ logger.warning(msg)
212
+ yield Document(
213
+ page_content=msg,
214
+ metadata={**document.metadata, 'chunk_id': 1}
215
+ )
216
+ return
217
+ for chunk in chunks:
218
+ yield Document(
219
+ page_content=sanitize_for_postgres(chunk.page_content),
220
+ metadata={**document.metadata, **chunk.metadata}
221
+ )
222
+
223
+
224
+ def process_content_by_type(content, filename: str, llm=None, chunking_config=None) -> \
225
+ Generator[Document, None, None]:
226
+ """Process the content of a file based on its type using a configured loader."""
205
227
  temp_file_path = None
206
228
  try:
207
- extension = "." + extension_source.split('.')[-1].lower()
229
+ extension = "." + filename.split('.')[-1].lower()
208
230
 
209
231
  with tempfile.NamedTemporaryFile(mode='w+b', suffix=extension, delete=False) as temp_file:
210
232
  temp_file_path = temp_file.name
211
233
  if content is None:
212
- logger.warning(f"'{IndexerKeywords.CONTENT_IN_BYTES.value}' ie expected but not found in document metadata.")
234
+ logger.warning(
235
+ f"'{IndexerKeywords.CONTENT_IN_BYTES.value}' ie expected but not found in document metadata.")
213
236
  return
214
-
237
+
215
238
  temp_file.write(content)
216
239
  temp_file.flush()
217
240
 
@@ -238,21 +261,7 @@ def process_content_by_type(document: Document, content, extension_source: str,
238
261
  loader_kwargs.pop(LoaderProperties.PROMPT_DEFAULT.value)
239
262
  loader_kwargs[LoaderProperties.PROMPT.value] = image_processing_prompt
240
263
  loader = loader_cls(file_path=temp_file_path, **loader_kwargs)
241
- try:
242
- chunks = loader.load()
243
- except Exception as e:
244
- msg = f"Error during content for file {temp_file_path}:\n{e}"
245
- logger.warning(msg)
246
- yield Document(
247
- page_content=msg,
248
- metadata={**document.metadata, 'chunk_id':1}
249
- )
250
- return
251
- for chunk in chunks:
252
- yield Document(
253
- page_content=sanitize_for_postgres(chunk.page_content),
254
- metadata={**document.metadata, **chunk.metadata}
255
- )
264
+ return loader.load()
256
265
  finally:
257
266
  if temp_file_path and os.path.exists(temp_file_path):
258
267
  os.remove(temp_file_path)
@@ -561,6 +561,8 @@ class XrayApiWrapper(NonCodeIndexerToolkit):
561
561
 
562
562
  def _index_tool_params(self, **kwargs) -> dict[str, tuple[type, Field]]:
563
563
  return {
564
+ 'chunking_tool': (Literal['json', ''],
565
+ Field(description="Name of chunking tool for base document", default='json')),
564
566
  'jql': (Optional[str], Field(description="""JQL query for searching test cases in Xray.
565
567
 
566
568
  Standard JQL query syntax for filtering Xray test cases. Examples:
@@ -595,8 +597,6 @@ class XrayApiWrapper(NonCodeIndexerToolkit):
595
597
  'skip_attachment_extensions': (Optional[List[str]], Field(
596
598
  description="List of file extensions to skip when processing attachments (e.g., ['.exe', '.zip', '.bin'])",
597
599
  default=None)),
598
- 'chunking_tool': (Literal['json', ''],
599
- Field(description="Name of chunking tool for base document", default='json')),
600
600
  }
601
601
 
602
602
  def _get_tests_direct(self, jql: str) -> List[Dict]:
@@ -155,8 +155,9 @@ class ZephyrApiWrapper(NonCodeIndexerToolkit):
155
155
  Returns a list of fields for index_data args schema.
156
156
  """
157
157
  return {
158
- "zql": (str, Field(description=zql_description, examples=["folder=\"TestToolkit\"", "name~\"TestToolkit5\""])),
159
- 'chunking_tool': (Literal['json', ''], Field(description="Name of chunking tool", default='json'))
158
+ 'chunking_tool': (Literal['json', ''], Field(description="Name of chunking tool", default='json')),
159
+ "zql": (str, Field(description=zql_description, examples=["folder=\"TestToolkit\"", "name~\"TestToolkit5\""]))
160
+
160
161
  }
161
162
 
162
163
  def _base_loader(self, zql: str, **kwargs) -> Generator[Document, None, None]:
@@ -1198,6 +1198,7 @@ class ZephyrScaleApiWrapper(NonCodeIndexerToolkit):
1198
1198
  Returns a list of fields for index_data args schema.
1199
1199
  """
1200
1200
  return {
1201
+ "chunking_tool": (Literal['json', ''], Field(description="Name of chunking tool", default='json')),
1201
1202
  "project_key": (str, Field(description="Jira project key filter")),
1202
1203
  "jql":(str, Field(description="""JQL-like query for searching test cases.
1203
1204
  Supported fields:
@@ -1216,7 +1217,6 @@ class ZephyrScaleApiWrapper(NonCodeIndexerToolkit):
1216
1217
  Example:
1217
1218
  'folder = "Authentication" AND label in ("Smoke", "Critical") AND text ~ "login" AND orderBy = "name" AND orderDirection = "ASC"'
1218
1219
  """)),
1219
- 'chunking_tool': (Literal['json', ''], Field(description="Name of chunking tool", default='json'))
1220
1220
  }
1221
1221
 
1222
1222
  def _base_loader(self, project_key: str, jql: str, **kwargs) -> Generator[Document, None, None]:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: alita_sdk
3
- Version: 0.3.317
3
+ Version: 0.3.319
4
4
  Summary: SDK for building langchain agents using resources from Alita
5
5
  Author-email: Artem Rozumenko <artyom.rozumenko@gmail.com>, Mikalai Biazruchka <mikalai_biazruchka@epam.com>, Roman Mitusov <roman_mitusov@epam.com>, Ivan Krakhmaliuk <lifedj27@gmail.com>, Artem Dubrovskiy <ad13box@gmail.com>
6
6
  License-Expression: Apache-2.0
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "alita_sdk"
7
- version = "0.3.317"
7
+ version = "0.3.319"
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