alita-sdk 0.3.256__tar.gz → 0.3.258__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 (353) hide show
  1. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/PKG-INFO +1 -1
  2. alita_sdk-0.3.258/alita_sdk/configurations/github.py +87 -0
  3. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/runtime/clients/client.py +2 -2
  4. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/ado/__init__.py +2 -1
  5. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/ado/repos/__init__.py +3 -8
  6. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/ado/repos/repos_wrapper.py +0 -9
  7. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/ado/test_plan/test_plan_wrapper.py +0 -5
  8. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/ado/wiki/ado_wrapper.py +0 -12
  9. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/ado/work_item/ado_wrapper.py +0 -5
  10. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/base_indexer_toolkit.py +2 -4
  11. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/bitbucket/tools.py +1 -1
  12. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/chunkers/__init__.py +3 -1
  13. alita_sdk-0.3.258/alita_sdk/tools/chunkers/sematic/json_chunker.py +24 -0
  14. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/jira/api_wrapper.py +36 -36
  15. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/qtest/__init__.py +1 -1
  16. alita_sdk-0.3.258/alita_sdk/tools/utils/available_tools_decorator.py +6 -0
  17. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/xray/__init__.py +3 -6
  18. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/zephyr_enterprise/api_wrapper.py +18 -13
  19. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/zephyr_essential/api_wrapper.py +40 -30
  20. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/zephyr_scale/api_wrapper.py +35 -31
  21. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk.egg-info/PKG-INFO +1 -1
  22. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk.egg-info/SOURCES.txt +2 -0
  23. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/pyproject.toml +1 -1
  24. alita_sdk-0.3.256/alita_sdk/configurations/github.py +0 -45
  25. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/LICENSE +0 -0
  26. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/README.md +0 -0
  27. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/__init__.py +0 -0
  28. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/community/__init__.py +0 -0
  29. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/community/utils.py +0 -0
  30. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/configurations/__init__.py +0 -0
  31. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/configurations/ado.py +0 -0
  32. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/configurations/azure_search.py +0 -0
  33. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/configurations/bigquery.py +0 -0
  34. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/configurations/bitbucket.py +0 -0
  35. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/configurations/confluence.py +0 -0
  36. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/configurations/delta_lake.py +0 -0
  37. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/configurations/embedding.py +0 -0
  38. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/configurations/figma.py +0 -0
  39. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/configurations/gitlab.py +0 -0
  40. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/configurations/jira.py +0 -0
  41. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/configurations/pgvector.py +0 -0
  42. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/configurations/postman.py +0 -0
  43. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/configurations/qtest.py +0 -0
  44. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/configurations/rally.py +0 -0
  45. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/configurations/service_now.py +0 -0
  46. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/configurations/slack.py +0 -0
  47. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/configurations/testrail.py +0 -0
  48. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/configurations/xray.py +0 -0
  49. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/configurations/zephyr.py +0 -0
  50. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/configurations/zephyr_enterprise.py +0 -0
  51. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/runtime/__init__.py +0 -0
  52. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/runtime/clients/__init__.py +0 -0
  53. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/runtime/clients/artifact.py +0 -0
  54. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/runtime/clients/datasource.py +0 -0
  55. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/runtime/clients/prompt.py +0 -0
  56. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/runtime/langchain/__init__.py +0 -0
  57. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/runtime/langchain/agents/__init__.py +0 -0
  58. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/runtime/langchain/agents/xml_chat.py +0 -0
  59. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/runtime/langchain/assistant.py +0 -0
  60. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/runtime/langchain/chat_message_template.py +0 -0
  61. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/runtime/langchain/constants.py +0 -0
  62. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/runtime/langchain/document_loaders/AlitaBDDScenariosLoader.py +0 -0
  63. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/runtime/langchain/document_loaders/AlitaCSVLoader.py +0 -0
  64. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/runtime/langchain/document_loaders/AlitaConfluenceLoader.py +0 -0
  65. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/runtime/langchain/document_loaders/AlitaDirectoryLoader.py +0 -0
  66. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/runtime/langchain/document_loaders/AlitaDocxMammothLoader.py +0 -0
  67. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/runtime/langchain/document_loaders/AlitaExcelLoader.py +0 -0
  68. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/runtime/langchain/document_loaders/AlitaGitRepoLoader.py +0 -0
  69. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/runtime/langchain/document_loaders/AlitaImageLoader.py +0 -0
  70. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/runtime/langchain/document_loaders/AlitaJSONLoader.py +0 -0
  71. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/runtime/langchain/document_loaders/AlitaJiraLoader.py +0 -0
  72. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/runtime/langchain/document_loaders/AlitaPDFLoader.py +0 -0
  73. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/runtime/langchain/document_loaders/AlitaPowerPointLoader.py +0 -0
  74. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/runtime/langchain/document_loaders/AlitaQtestLoader.py +0 -0
  75. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/runtime/langchain/document_loaders/AlitaTableLoader.py +0 -0
  76. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/runtime/langchain/document_loaders/AlitaTextLoader.py +0 -0
  77. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/runtime/langchain/document_loaders/__init__.py +0 -0
  78. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/runtime/langchain/document_loaders/constants.py +0 -0
  79. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/runtime/langchain/document_loaders/utils.py +0 -0
  80. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/runtime/langchain/indexer.py +0 -0
  81. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/runtime/langchain/interfaces/__init__.py +0 -0
  82. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/runtime/langchain/interfaces/kwextractor.py +0 -0
  83. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/runtime/langchain/interfaces/llm_processor.py +0 -0
  84. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/runtime/langchain/interfaces/loaders.py +0 -0
  85. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/runtime/langchain/interfaces/splitters.py +0 -0
  86. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/runtime/langchain/langraph_agent.py +0 -0
  87. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/runtime/langchain/mixedAgentParser.py +0 -0
  88. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/runtime/langchain/mixedAgentRenderes.py +0 -0
  89. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/runtime/langchain/retrievers/AlitaRetriever.py +0 -0
  90. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/runtime/langchain/retrievers/VectorstoreRetriever.py +0 -0
  91. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/runtime/langchain/retrievers/__init__.py +0 -0
  92. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/runtime/langchain/store_manager.py +0 -0
  93. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/runtime/langchain/tools/__init__.py +0 -0
  94. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/runtime/langchain/tools/bdd_parser/__init__.py +0 -0
  95. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/runtime/langchain/tools/bdd_parser/bdd_exceptions.py +0 -0
  96. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/runtime/langchain/tools/bdd_parser/bdd_parser.py +0 -0
  97. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/runtime/langchain/tools/bdd_parser/feature_types.py +0 -0
  98. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/runtime/langchain/tools/bdd_parser/parser.py +0 -0
  99. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/runtime/langchain/tools/git.py +0 -0
  100. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/runtime/langchain/tools/log.py +0 -0
  101. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/runtime/langchain/tools/quota.py +0 -0
  102. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/runtime/langchain/tools/state.py +0 -0
  103. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/runtime/langchain/tools/utils.py +0 -0
  104. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/runtime/langchain/tools/vector.py +0 -0
  105. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/runtime/langchain/utils.py +0 -0
  106. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/runtime/llms/__init__.py +0 -0
  107. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/runtime/llms/preloaded.py +0 -0
  108. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/runtime/toolkits/__init__.py +0 -0
  109. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/runtime/toolkits/application.py +0 -0
  110. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/runtime/toolkits/artifact.py +0 -0
  111. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/runtime/toolkits/configurations.py +0 -0
  112. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/runtime/toolkits/datasource.py +0 -0
  113. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/runtime/toolkits/prompt.py +0 -0
  114. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/runtime/toolkits/subgraph.py +0 -0
  115. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/runtime/toolkits/tools.py +0 -0
  116. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/runtime/toolkits/vectorstore.py +0 -0
  117. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/runtime/tools/__init__.py +0 -0
  118. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/runtime/tools/agent.py +0 -0
  119. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/runtime/tools/application.py +0 -0
  120. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/runtime/tools/artifact.py +0 -0
  121. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/runtime/tools/datasource.py +0 -0
  122. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/runtime/tools/echo.py +0 -0
  123. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/runtime/tools/function.py +0 -0
  124. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/runtime/tools/indexer_tool.py +0 -0
  125. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/runtime/tools/llm.py +0 -0
  126. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/runtime/tools/loop.py +0 -0
  127. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/runtime/tools/loop_output.py +0 -0
  128. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/runtime/tools/mcp_server_tool.py +0 -0
  129. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/runtime/tools/pgvector_search.py +0 -0
  130. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/runtime/tools/prompt.py +0 -0
  131. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/runtime/tools/router.py +0 -0
  132. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/runtime/tools/tool.py +0 -0
  133. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/runtime/tools/vectorstore.py +0 -0
  134. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/runtime/tools/vectorstore_base.py +0 -0
  135. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/runtime/utils/AlitaCallback.py +0 -0
  136. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/runtime/utils/__init__.py +0 -0
  137. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/runtime/utils/constants.py +0 -0
  138. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/runtime/utils/evaluate.py +0 -0
  139. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/runtime/utils/logging.py +0 -0
  140. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/runtime/utils/save_dataframe.py +0 -0
  141. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/runtime/utils/streamlit.py +0 -0
  142. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/runtime/utils/toolkit_runtime.py +0 -0
  143. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/runtime/utils/toolkit_utils.py +0 -0
  144. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/runtime/utils/utils.py +0 -0
  145. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/__init__.py +0 -0
  146. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/ado/test_plan/__init__.py +0 -0
  147. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/ado/utils.py +0 -0
  148. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/ado/wiki/__init__.py +0 -0
  149. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/ado/work_item/__init__.py +0 -0
  150. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/advanced_jira_mining/__init__.py +0 -0
  151. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/advanced_jira_mining/data_mining_wrapper.py +0 -0
  152. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/aws/__init__.py +0 -0
  153. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/aws/delta_lake/__init__.py +0 -0
  154. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/aws/delta_lake/api_wrapper.py +0 -0
  155. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/aws/delta_lake/schemas.py +0 -0
  156. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/aws/delta_lake/tool.py +0 -0
  157. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/azure_ai/__init__.py +0 -0
  158. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/azure_ai/search/__init__.py +0 -0
  159. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/azure_ai/search/api_wrapper.py +0 -0
  160. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/base/__init__.py +0 -0
  161. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/base/tool.py +0 -0
  162. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/bitbucket/__init__.py +0 -0
  163. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/bitbucket/api_wrapper.py +0 -0
  164. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/bitbucket/bitbucket_constants.py +0 -0
  165. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/bitbucket/cloud_api_wrapper.py +0 -0
  166. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/browser/__init__.py +0 -0
  167. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/browser/crawler.py +0 -0
  168. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/browser/duck_duck_go_search.py +0 -0
  169. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/browser/google_search_rag.py +0 -0
  170. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/browser/utils.py +0 -0
  171. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/browser/wiki.py +0 -0
  172. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/carrier/__init__.py +0 -0
  173. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/carrier/api_wrapper.py +0 -0
  174. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/carrier/backend_reports_tool.py +0 -0
  175. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/carrier/backend_tests_tool.py +0 -0
  176. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/carrier/cancel_ui_test_tool.py +0 -0
  177. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/carrier/carrier_sdk.py +0 -0
  178. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/carrier/create_ui_excel_report_tool.py +0 -0
  179. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/carrier/create_ui_test_tool.py +0 -0
  180. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/carrier/excel_reporter.py +0 -0
  181. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/carrier/lighthouse_excel_reporter.py +0 -0
  182. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/carrier/run_ui_test_tool.py +0 -0
  183. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/carrier/tickets_tool.py +0 -0
  184. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/carrier/tools.py +0 -0
  185. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/carrier/ui_reports_tool.py +0 -0
  186. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/carrier/update_ui_test_schedule_tool.py +0 -0
  187. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/carrier/utils.py +0 -0
  188. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/chunkers/code/__init__.py +0 -0
  189. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/chunkers/code/codeparser.py +0 -0
  190. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/chunkers/code/constants.py +0 -0
  191. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/chunkers/code/treesitter/__init__.py +0 -0
  192. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/chunkers/code/treesitter/treesitter.py +0 -0
  193. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/chunkers/code/treesitter/treesitter_c.py +0 -0
  194. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/chunkers/code/treesitter/treesitter_cpp.py +0 -0
  195. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/chunkers/code/treesitter/treesitter_cs.py +0 -0
  196. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/chunkers/code/treesitter/treesitter_go.py +0 -0
  197. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/chunkers/code/treesitter/treesitter_hs.py +0 -0
  198. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/chunkers/code/treesitter/treesitter_java.py +0 -0
  199. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/chunkers/code/treesitter/treesitter_js.py +0 -0
  200. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/chunkers/code/treesitter/treesitter_kt.py +0 -0
  201. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/chunkers/code/treesitter/treesitter_py.py +0 -0
  202. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/chunkers/code/treesitter/treesitter_rb.py +0 -0
  203. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/chunkers/code/treesitter/treesitter_registry.py +0 -0
  204. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/chunkers/code/treesitter/treesitter_rs.py +0 -0
  205. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/chunkers/code/treesitter/treesitter_ts.py +0 -0
  206. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/chunkers/models.py +0 -0
  207. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/chunkers/sematic/__init__.py +0 -0
  208. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/chunkers/sematic/base.py +0 -0
  209. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/chunkers/sematic/markdown_chunker.py +0 -0
  210. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/chunkers/sematic/proposal_chunker.py +0 -0
  211. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/chunkers/sematic/statistical_chunker.py +0 -0
  212. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/chunkers/utils.py +0 -0
  213. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/cloud/__init__.py +0 -0
  214. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/cloud/aws/__init__.py +0 -0
  215. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/cloud/aws/api_wrapper.py +0 -0
  216. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/cloud/azure/__init__.py +0 -0
  217. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/cloud/azure/api_wrapper.py +0 -0
  218. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/cloud/gcp/__init__.py +0 -0
  219. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/cloud/gcp/api_wrapper.py +0 -0
  220. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/cloud/k8s/__init__.py +0 -0
  221. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/cloud/k8s/api_wrapper.py +0 -0
  222. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/code/__init__.py +0 -0
  223. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/code/linter/__init__.py +0 -0
  224. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/code/linter/api_wrapper.py +0 -0
  225. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/code/loaders/codesearcher.py +0 -0
  226. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/code/sonar/__init__.py +0 -0
  227. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/code/sonar/api_wrapper.py +0 -0
  228. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/confluence/__init__.py +0 -0
  229. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/confluence/api_wrapper.py +0 -0
  230. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/confluence/loader.py +0 -0
  231. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/confluence/utils.py +0 -0
  232. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/custom_open_api/__init__.py +0 -0
  233. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/custom_open_api/api_wrapper.py +0 -0
  234. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/elastic/__init__.py +0 -0
  235. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/elastic/api_wrapper.py +0 -0
  236. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/elitea_base.py +0 -0
  237. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/figma/__init__.py +0 -0
  238. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/figma/api_wrapper.py +0 -0
  239. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/github/__init__.py +0 -0
  240. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/github/api_wrapper.py +0 -0
  241. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/github/github_client.py +0 -0
  242. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/github/graphql_client_wrapper.py +0 -0
  243. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/github/schemas.py +0 -0
  244. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/github/tool.py +0 -0
  245. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/github/tool_prompts.py +0 -0
  246. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/gitlab/__init__.py +0 -0
  247. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/gitlab/api_wrapper.py +0 -0
  248. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/gitlab/tools.py +0 -0
  249. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/gitlab/utils.py +0 -0
  250. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/gitlab_org/__init__.py +0 -0
  251. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/gitlab_org/api_wrapper.py +0 -0
  252. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/gmail/__init__.py +0 -0
  253. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/gmail/gmail_wrapper.py +0 -0
  254. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/gmail/utils.py +0 -0
  255. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/google/__init__.py +0 -0
  256. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/google/bigquery/__init__.py +0 -0
  257. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/google/bigquery/api_wrapper.py +0 -0
  258. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/google/bigquery/schemas.py +0 -0
  259. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/google/bigquery/tool.py +0 -0
  260. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/google_places/__init__.py +0 -0
  261. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/google_places/api_wrapper.py +0 -0
  262. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/jira/__init__.py +0 -0
  263. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/keycloak/__init__.py +0 -0
  264. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/keycloak/api_wrapper.py +0 -0
  265. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/llm/__init__.py +0 -0
  266. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/llm/img_utils.py +0 -0
  267. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/llm/llm_utils.py +0 -0
  268. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/localgit/__init__.py +0 -0
  269. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/localgit/local_git.py +0 -0
  270. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/localgit/tool.py +0 -0
  271. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/memory/__init__.py +0 -0
  272. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/non_code_indexer_toolkit.py +0 -0
  273. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/ocr/__init__.py +0 -0
  274. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/ocr/api_wrapper.py +0 -0
  275. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/ocr/text_detection.py +0 -0
  276. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/openapi/__init__.py +0 -0
  277. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/pandas/__init__.py +0 -0
  278. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/pandas/api_wrapper.py +0 -0
  279. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/pandas/dataframe/__init__.py +0 -0
  280. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/pandas/dataframe/errors.py +0 -0
  281. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/pandas/dataframe/executor/__init__.py +0 -0
  282. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/pandas/dataframe/executor/code_environment.py +0 -0
  283. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/pandas/dataframe/executor/code_executor.py +0 -0
  284. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/pandas/dataframe/generator/__init__.py +0 -0
  285. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/pandas/dataframe/generator/base.py +0 -0
  286. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/pandas/dataframe/generator/code_cleaning.py +0 -0
  287. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/pandas/dataframe/generator/code_validator.py +0 -0
  288. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/pandas/dataframe/prompts.py +0 -0
  289. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/pandas/dataframe/serializer.py +0 -0
  290. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/pandas/dataframe/utils.py +0 -0
  291. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/pandas/statsmodels/__init__.py +0 -0
  292. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/pandas/statsmodels/base_stats.py +0 -0
  293. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/pandas/statsmodels/descriptive.py +0 -0
  294. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/pandas/statsmodels/hypothesis_testing.py +0 -0
  295. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/pandas/statsmodels/regression.py +0 -0
  296. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/postman/__init__.py +0 -0
  297. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/postman/api_wrapper.py +0 -0
  298. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/postman/postman_analysis.py +0 -0
  299. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/pptx/__init__.py +0 -0
  300. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/pptx/pptx_wrapper.py +0 -0
  301. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/qtest/api_wrapper.py +0 -0
  302. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/qtest/tool.py +0 -0
  303. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/rally/__init__.py +0 -0
  304. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/rally/api_wrapper.py +0 -0
  305. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/report_portal/__init__.py +0 -0
  306. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/report_portal/api_wrapper.py +0 -0
  307. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/report_portal/report_portal_client.py +0 -0
  308. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/salesforce/__init__.py +0 -0
  309. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/salesforce/api_wrapper.py +0 -0
  310. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/salesforce/model.py +0 -0
  311. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/servicenow/__init__.py +0 -0
  312. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/servicenow/api_wrapper.py +0 -0
  313. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/servicenow/servicenow_client.py +0 -0
  314. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/sharepoint/__init__.py +0 -0
  315. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/sharepoint/api_wrapper.py +0 -0
  316. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/sharepoint/authorization_helper.py +0 -0
  317. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/sharepoint/utils.py +0 -0
  318. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/slack/__init__.py +0 -0
  319. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/slack/api_wrapper.py +0 -0
  320. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/sql/__init__.py +0 -0
  321. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/sql/api_wrapper.py +0 -0
  322. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/sql/models.py +0 -0
  323. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/testio/__init__.py +0 -0
  324. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/testio/api_wrapper.py +0 -0
  325. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/testrail/__init__.py +0 -0
  326. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/testrail/api_wrapper.py +0 -0
  327. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/utils/__init__.py +0 -0
  328. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/utils/content_parser.py +0 -0
  329. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/vector_adapters/VectorStoreAdapter.py +0 -0
  330. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/vector_adapters/__init__.py +0 -0
  331. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/xray/api_wrapper.py +0 -0
  332. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/yagmail/__init__.py +0 -0
  333. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/yagmail/yagmail_wrapper.py +0 -0
  334. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/zephyr/Zephyr.py +0 -0
  335. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/zephyr/__init__.py +0 -0
  336. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/zephyr/api_wrapper.py +0 -0
  337. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/zephyr/rest_client.py +0 -0
  338. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/zephyr_enterprise/__init__.py +0 -0
  339. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/zephyr_enterprise/zephyr_enterprise.py +0 -0
  340. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/zephyr_essential/__init__.py +0 -0
  341. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/zephyr_essential/client.py +0 -0
  342. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/zephyr_scale/__init__.py +0 -0
  343. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/zephyr_squad/__init__.py +0 -0
  344. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/zephyr_squad/api_wrapper.py +0 -0
  345. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/zephyr_squad/zephyr_squad_cloud_client.py +0 -0
  346. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk.egg-info/dependency_links.txt +0 -0
  347. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk.egg-info/requires.txt +0 -0
  348. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk.egg-info/top_level.txt +0 -0
  349. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/setup.cfg +0 -0
  350. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/tests/test_ado_analysis.py +0 -0
  351. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/tests/test_github_analysis.py +0 -0
  352. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/tests/test_gitlab_analysis.py +0 -0
  353. {alita_sdk-0.3.256 → alita_sdk-0.3.258}/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.256
3
+ Version: 0.3.258
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
@@ -0,0 +1,87 @@
1
+ from typing import Optional
2
+
3
+ from pydantic import BaseModel, ConfigDict, Field, SecretStr, model_validator
4
+
5
+
6
+ class GithubConfiguration(BaseModel):
7
+ model_config = ConfigDict(
8
+ json_schema_extra={
9
+ "metadata": {
10
+ "label": "GitHub",
11
+ "icon_url": None,
12
+ "sections": {
13
+ "auth": {
14
+ "required": False,
15
+ "subsections": [
16
+ {
17
+ "name": "Token",
18
+ "fields": ["access_token"]
19
+ },
20
+ {
21
+ "name": "Password",
22
+ "fields": ["username", "password"]
23
+ },
24
+ {
25
+ "name": "App private key",
26
+ "fields": ["app_id", "app_private_key"]
27
+ }
28
+ ]
29
+ },
30
+ },
31
+ "section": "credentials",
32
+ "type": "github",
33
+ "categories": ["code repositories"],
34
+ "extra_categories": ["github", "git", "repository", "code", "version control"],
35
+ }
36
+ }
37
+ )
38
+
39
+ base_url: Optional[str] = Field(description="Base API URL", default="https://api.github.com")
40
+ app_id: Optional[str] = Field(description="Github APP ID", default=None)
41
+ app_private_key: Optional[SecretStr] = Field(description="Github APP private key", default=None)
42
+
43
+ access_token: Optional[SecretStr] = Field(description="Github Access Token", default=None)
44
+
45
+ username: Optional[str] = Field(description="Github Username", default=None)
46
+ password: Optional[SecretStr] = Field(description="Github Password", default=None)
47
+
48
+ @model_validator(mode='before')
49
+ @classmethod
50
+ def validate_auth_sections(cls, data):
51
+ if not isinstance(data, dict):
52
+ return data
53
+
54
+ has_token = bool(data.get('access_token') and str(data.get('access_token')).strip())
55
+ has_password = bool(
56
+ data.get('username') and str(data.get('username')).strip() and
57
+ data.get('password') and str(data.get('password')).strip()
58
+ )
59
+ has_app_key = bool(
60
+ data.get('app_id') and str(data.get('app_id')).strip() and
61
+ data.get('app_private_key') and str(data.get('app_private_key')).strip()
62
+ )
63
+
64
+ # If any method is partially configured, raise exception
65
+ if (
66
+ (data.get('username') and not data.get('password')) or
67
+ (data.get('password') and not data.get('username')) or
68
+ (data.get('app_id') and not data.get('app_private_key')) or
69
+ (data.get('app_private_key') and not data.get('app_id'))
70
+ ):
71
+ raise ValueError(
72
+ "Authentication is misconfigured: both username and password, or both app_id and app_private_key, must be provided together."
73
+ )
74
+
75
+ # If all are missing, allow anonymous
76
+ if not (has_token or has_password or has_app_key):
77
+ return data
78
+
79
+ # If any method is fully configured
80
+ if has_token or has_password or has_app_key:
81
+ return data
82
+
83
+ raise ValueError(
84
+ "Authentication is misconfigured: provide either Token (access_token), "
85
+ "Password (username + password), App private key (app_id + app_private_key), "
86
+ "or leave all blank for anonymous access."
87
+ )
@@ -364,8 +364,8 @@ class AlitaClient:
364
364
  return data.content
365
365
 
366
366
  def delete_artifact(self, bucket_name, artifact_name):
367
- url = f'{self.artifact_url}/{bucket_name}/{quote(artifact_name)}'
368
- data = requests.delete(url, headers=self.headers, verify=False)
367
+ url = f'{self.artifact_url}/{bucket_name}'
368
+ data = requests.delete(url, headers=self.headers, verify=False, params={'filename': quote(artifact_name)})
369
369
  return self._process_requst(data)
370
370
 
371
371
  def _prepare_messages(self, messages: list[BaseMessage]):
@@ -14,11 +14,12 @@ def get_tools(tool_type, tool):
14
14
  "limit": tool['settings'].get('limit', 5),
15
15
  "toolkit_name": tool.get('toolkit_name', ''),
16
16
  # indexer settings
17
+ "alita": tool['settings'].get('alita', None),
17
18
  "llm": tool['settings'].get('llm', None),
18
19
  "pgvector_configuration": tool['settings'].get('pgvector_configuration', {}),
19
20
  "collection_name": tool['toolkit_name'],
20
21
  "doctype": 'doc',
21
- "embedding_model": tool['settings'].get('embedding_configuration', {}).get('name', None),
22
+ "embedding_model": tool['settings'].get('embedding_model'),
22
23
  "vectorstore_type": "PGVector"
23
24
  }
24
25
  if tool_type == 'ado_plans':
@@ -23,10 +23,9 @@ def _get_toolkit(tool) -> BaseToolkit:
23
23
  active_branch=tool['settings'].get('active_branch', ""),
24
24
  toolkit_name=tool['settings'].get('toolkit_name', ""),
25
25
  pgvector_configuration=tool['settings'].get('pgvector_configuration', {}),
26
- collection_name=tool['toolkit_name'],
27
- doctype='code',
28
26
  embedding_model=tool['settings'].get('embedding_model'),
29
- vectorstore_type="PGVector",
27
+ collection_name=tool['toolkit_name'],
28
+ alita=tool['settings'].get('alita', None),
30
29
  )
31
30
 
32
31
  def get_toolkit():
@@ -62,11 +61,6 @@ class AzureDevOpsReposToolkit(BaseToolkit):
62
61
  "icon_url": "ado-repos-icon.svg",
63
62
  "categories": ["code repositories"],
64
63
  "extra_categories": ["code", "repository", "version control"],
65
- # "configuration_group": {
66
- # "name": "ado_repos",
67
- # "label": "Azure DevOps Repositories",
68
- # "icon_url": "ado-repos-icon.svg",
69
- # }
70
64
  }}}
71
65
  )
72
66
 
@@ -95,6 +89,7 @@ class AzureDevOpsReposToolkit(BaseToolkit):
95
89
  **kwargs,
96
90
  # TODO use ado_repos_configuration fields
97
91
  **kwargs['ado_repos_configuration'],
92
+ **kwargs['ado_repos_configuration']['ado_configuration'],
98
93
  **(kwargs.get('pgvector_configuration') or {}),
99
94
  }
100
95
  azure_devops_repos_wrapper = ReposApiWrapper(**wrapper_payload)
@@ -251,15 +251,6 @@ class ReposApiWrapper(BaseCodeToolApiWrapper):
251
251
  token: Optional[SecretStr]
252
252
  _client: Optional[GitClient] = PrivateAttr()
253
253
 
254
- llm: Optional[Any] = None
255
- # Vector store configuration
256
- connection_string: Optional[SecretStr] = None
257
- collection_name: Optional[str] = None
258
- doctype: Optional[str] = 'code'
259
- embedding_model: Optional[str] = "HuggingFaceEmbeddings"
260
- embedding_model_params: Optional[dict] = {"model_name": "sentence-transformers/all-MiniLM-L6-v2"}
261
- vectorstore_type: Optional[str] = "PGVector"
262
-
263
254
  class Config:
264
255
  arbitrary_types_allowed = True
265
256
 
@@ -16,11 +16,6 @@ from pydantic.fields import FieldInfo as Field
16
16
  from ..work_item import AzureDevOpsApiWrapper
17
17
  from ...elitea_base import BaseVectorStoreToolApiWrapper, extend_with_vector_tools
18
18
 
19
- try:
20
- from alita_sdk.runtime.langchain.interfaces.llm_processor import get_embeddings
21
- except ImportError:
22
- from alita_sdk.langchain.interfaces.llm_processor import get_embeddings
23
-
24
19
  logger = logging.getLogger(__name__)
25
20
 
26
21
  # Input models for Test Plan operations
@@ -17,11 +17,6 @@ from pydantic.fields import Field
17
17
 
18
18
  from ...elitea_base import BaseVectorStoreToolApiWrapper, extend_with_vector_tools
19
19
 
20
- try:
21
- from alita_sdk.runtime.langchain.interfaces.llm_processor import get_embeddings
22
- except ImportError:
23
- from alita_sdk.langchain.interfaces.llm_processor import get_embeddings
24
-
25
20
  logger = logging.getLogger(__name__)
26
21
 
27
22
  GetWikiInput = create_model(
@@ -68,13 +63,6 @@ class AzureDevOpsApiWrapper(BaseVectorStoreToolApiWrapper):
68
63
  _client: Optional[WikiClient] = PrivateAttr() # Private attribute for the wiki client
69
64
  _core_client: Optional[CoreClient] = PrivateAttr() # Private attribute for the CoreClient client
70
65
 
71
- llm: Any = None
72
- connection_string: Optional[SecretStr] = None
73
- collection_name: Optional[str] = None
74
- embedding_model: Optional[str] = "HuggingFaceEmbeddings"
75
- embedding_model_params: Optional[Dict[str, Any]] = {"model_name": "sentence-transformers/all-MiniLM-L6-v2"}
76
- vectorstore_type: Optional[str] = "PGVector"
77
-
78
66
  class Config:
79
67
  arbitrary_types_allowed = True # Allow arbitrary types (e.g., WorkItemTrackingClient)
80
68
 
@@ -16,11 +16,6 @@ from pydantic.fields import Field
16
16
 
17
17
  from alita_sdk.tools.non_code_indexer_toolkit import NonCodeIndexerToolkit
18
18
 
19
- try:
20
- from alita_sdk.runtime.langchain.interfaces.llm_processor import get_embeddings
21
- except ImportError:
22
- from alita_sdk.langchain.interfaces.llm_processor import get_embeddings
23
-
24
19
  logger = logging.getLogger(__name__)
25
20
 
26
21
  create_wi_field = """JSON of the work item fields to create in Azure DevOps, i.e.
@@ -5,7 +5,6 @@ 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 alita_sdk.runtime.langchain.interfaces.llm_processor import get_embeddings
9
8
  from .utils.content_parser import process_content_by_type
10
9
  from .vector_adapters.VectorStoreAdapter import VectorStoreAdapterFactory
11
10
  from ..runtime.tools.vectorstore_base import VectorStoreWrapperBase
@@ -95,7 +94,6 @@ BaseIndexDataParams = create_model(
95
94
  description="Optional step size for progress reporting during indexing")),
96
95
  clean_index=(Optional[bool], Field(default=False,
97
96
  description="Optional flag to enforce clean existing index before indexing new data")),
98
- chunking_tool=(Literal[None,'markdown', 'statistical', 'proposal'], Field(description="Name of chunking tool", default=None)),
99
97
  chunking_config=(Optional[dict], Field(description="Chunking tool configuration", default_factory=dict)),
100
98
  )
101
99
 
@@ -162,7 +160,7 @@ class BaseIndexerToolkit(VectorStoreWrapperBase):
162
160
  chunking_config = kwargs.get("chunking_config")
163
161
  #
164
162
  if clean_index:
165
- self._clean_index()
163
+ self._clean_index(collection_suffix)
166
164
  #
167
165
  documents = self._base_loader(**kwargs)
168
166
  documents = self._reduce_duplicates(documents, collection_suffix)
@@ -173,7 +171,7 @@ class BaseIndexerToolkit(VectorStoreWrapperBase):
173
171
  return self._save_index(list(documents), collection_suffix=collection_suffix, progress_step=progress_step)
174
172
 
175
173
  def _apply_loaders_chunkers(self, documents: Generator[Document, None, None], chunking_tool: str=None, chunking_config=None) -> Generator[Document, None, None]:
176
- from alita_sdk.tools.chunkers import __confluence_chunkers__ as chunkers
174
+ from alita_sdk.tools.chunkers import __all__ as chunkers
177
175
 
178
176
  if chunking_config is None:
179
177
  chunking_config = {}
@@ -134,7 +134,7 @@ class ListBranchesTool(BaseTool):
134
134
  name: str = "list_branches_in_repo"
135
135
  description: str = """This tool is a wrapper for the Bitbucket API to fetch a list of all branches in the repository.
136
136
  It will return the name of each branch. No input parameters are required."""
137
- args_schema: Type[BaseModel] = None
137
+ args_schema: Type[BaseModel] = create_model("NoInput")
138
138
 
139
139
  def _run(self):
140
140
  try:
@@ -2,13 +2,15 @@ from .code.codeparser import parse_code_files_for_db
2
2
  from .sematic.statistical_chunker import statistical_chunker
3
3
  from .sematic.markdown_chunker import markdown_chunker
4
4
  from .sematic.proposal_chunker import proposal_chunker
5
+ from .sematic.json_chunker import json_chunker
5
6
  from .models import StatisticalChunkerConfig, MarkdownChunkerConfig, ProposalChunkerConfig
6
7
 
7
8
  __all__ = {
8
9
  'code_parser': parse_code_files_for_db,
9
10
  'statistical': statistical_chunker,
10
11
  'markdown': markdown_chunker,
11
- 'proposal': proposal_chunker
12
+ 'proposal': proposal_chunker,
13
+ 'json': json_chunker
12
14
  }
13
15
 
14
16
  __confluence_chunkers__ = {
@@ -0,0 +1,24 @@
1
+ import json
2
+ import logging
3
+ from typing import Generator
4
+ from langchain_text_splitters import RecursiveJsonSplitter
5
+ from langchain_core.documents import Document
6
+
7
+ def json_chunker(file_content_generator: Generator[Document, None, None], config: dict, *args, **kwargs) -> Generator[Document, None, None]:
8
+ max_tokens = config.get("max_tokens", 512)
9
+ for doc in file_content_generator:
10
+ try:
11
+ data_dict = json.loads(doc.page_content)
12
+ chunks = RecursiveJsonSplitter(max_chunk_size=max_tokens).split_json(json_data=data_dict, convert_lists=True)
13
+ if len(chunks) == 1:
14
+ yield doc
15
+ continue
16
+ chunk_id = 1
17
+ for chunk in chunks:
18
+ metadata = doc.metadata.copy()
19
+ metadata['chunk_id'] = chunk_id
20
+ chunk_id += 1
21
+ yield Document(page_content=json.dumps(chunk), metadata=metadata)
22
+ except Exception as e:
23
+ logging.error(f"Failed to chunk document: {e}")
24
+ yield doc
@@ -1237,11 +1237,11 @@ class JiraApiWrapper(BaseVectorStoreToolApiWrapper):
1237
1237
  jql = kwargs.get('jql')
1238
1238
  fields_to_extract = kwargs.get('fields_to_extract')
1239
1239
  fields_to_index = kwargs.get('fields_to_index')
1240
- include_attachments = kwargs.get('include_attachments', False)
1241
1240
  max_total_issues = kwargs.get('max_total_issues', 1000)
1242
1241
 
1243
- # set values for skipped attachment extensions
1242
+ # set values for skipped attachment extension
1244
1243
  self._skipped_attachment_extensions = kwargs.get('skip_attachment_extensions', [])
1244
+ self._include_attachments = kwargs.get('include_attachments', False)
1245
1245
  self._included_fields = fields_to_extract.copy() if fields_to_extract else []
1246
1246
 
1247
1247
  try:
@@ -1252,7 +1252,7 @@ class JiraApiWrapper(BaseVectorStoreToolApiWrapper):
1252
1252
  if fields_to_extract:
1253
1253
  fields.extend(fields_to_extract)
1254
1254
 
1255
- if include_attachments:
1255
+ if self._include_attachments:
1256
1256
  fields.append('attachment')
1257
1257
 
1258
1258
  # Use provided JQL query or default to all issues
@@ -1292,36 +1292,36 @@ class JiraApiWrapper(BaseVectorStoreToolApiWrapper):
1292
1292
 
1293
1293
  issue_key = base_document.metadata.get('issue_key')
1294
1294
  # get attachments content
1295
-
1296
- issue = self._client.issue(issue_key, fields="attachment")
1297
- attachments = issue.get('fields', {}).get('attachment', [])
1298
- for attachment in attachments:
1299
- # get extension
1300
- ext = f".{attachment['filename'].split('.')[-1].lower()}"
1301
- if ext not in self._skipped_attachment_extensions:
1302
- attachment_id = f"attach_{attachment['id']}"
1303
- base_document.metadata.setdefault(IndexerKeywords.DEPENDENT_DOCS.value, []).append(attachment_id)
1304
- try:
1305
- attachment_content = self._client.get_attachment_content(attachment['id'])
1306
- except Exception as e:
1307
- logger.error(f"Failed to download attachment {attachment['filename']} for issue {issue_key}: {str(e)}")
1308
- attachment_content = self._client.get(path=f"secure/attachment/{attachment['id']}/{attachment['filename']}", not_json_response=True)
1309
- content = load_content_from_bytes(attachment_content, ext, llm=self.llm) if ext not in '.pdf' \
1310
- else parse_file_content(file_content=attachment_content, file_name=attachment['filename'], llm=self.llm, is_capture_image=True)
1311
- if not content:
1312
- continue
1313
- yield Document(page_content=content,
1314
- metadata={
1315
- 'id': attachment_id,
1316
- 'issue_key': issue_key,
1317
- 'source': f"{self.base_url}/browse/{issue_key}",
1318
- 'filename': attachment['filename'],
1319
- 'created': attachment['created'],
1320
- 'mimeType': attachment['mimeType'],
1321
- 'author': attachment.get('author', {}).get('name'),
1322
- IndexerKeywords.PARENT.value: base_document.metadata.get('id', None),
1323
- 'type': 'attachment',
1324
- })
1295
+ if self._include_attachments:
1296
+ issue = self._client.issue(issue_key, fields="attachment")
1297
+ attachments = issue.get('fields', {}).get('attachment', [])
1298
+ for attachment in attachments:
1299
+ # get extension
1300
+ ext = f".{attachment['filename'].split('.')[-1].lower()}"
1301
+ if ext not in self._skipped_attachment_extensions:
1302
+ attachment_id = f"attach_{attachment['id']}"
1303
+ base_document.metadata.setdefault(IndexerKeywords.DEPENDENT_DOCS.value, []).append(attachment_id)
1304
+ try:
1305
+ attachment_content = self._client.get_attachment_content(attachment['id'])
1306
+ except Exception as e:
1307
+ logger.error(f"Failed to download attachment {attachment['filename']} for issue {issue_key}: {str(e)}")
1308
+ attachment_content = self._client.get(path=f"secure/attachment/{attachment['id']}/{attachment['filename']}", not_json_response=True)
1309
+ content = load_content_from_bytes(attachment_content, ext, llm=self.llm) if ext not in '.pdf' \
1310
+ else parse_file_content(file_content=attachment_content, file_name=attachment['filename'], llm=self.llm, is_capture_image=True)
1311
+ if not content:
1312
+ continue
1313
+ yield Document(page_content=content,
1314
+ metadata={
1315
+ 'id': attachment_id,
1316
+ 'issue_key': issue_key,
1317
+ 'source': f"{self.base_url}/browse/{issue_key}",
1318
+ 'filename': attachment['filename'],
1319
+ 'created': attachment['created'],
1320
+ 'mimeType': attachment['mimeType'],
1321
+ 'author': attachment.get('author', {}).get('name'),
1322
+ IndexerKeywords.PARENT.value: base_document.metadata.get('id', None),
1323
+ 'type': 'attachment',
1324
+ })
1325
1325
 
1326
1326
  def _jql_get_tickets(self, jql, fields="*all", start=0, limit=None, expand=None, validate_query=None):
1327
1327
  """
@@ -1430,9 +1430,9 @@ class JiraApiWrapper(BaseVectorStoreToolApiWrapper):
1430
1430
  Field(description="Whether to include attachment content in indexing",
1431
1431
  default=False)),
1432
1432
  'max_total_issues': (Optional[int], Field(description="Maximum number of issues to index", default=1000)),
1433
- 'skip_attachment_extensions': (Optional[str], Field(
1434
- description="Comma-separated list of file extensions to skip when processing attachments",
1435
- default=None)),
1433
+ 'skip_attachment_extensions': (Optional[List[str]], Field(
1434
+ description="List of file extensions to skip when processing attachments: i.e. ['.png', '.jpg']",
1435
+ default=[])),
1436
1436
  }
1437
1437
 
1438
1438
  # def index_data(self,
@@ -35,7 +35,7 @@ class QtestToolkit(BaseToolkit):
35
35
  name,
36
36
  qtest_configuration=(Optional[QtestConfiguration], Field(description="QTest API token", json_schema_extra={
37
37
  'configuration_types': ['qtest']})),
38
- qtest_project_id=(int, Field(description="QTest project id", json_schema_extra={'toolkit_name': True,
38
+ qtest_project_id=(int, Field(default=None, description="QTest project id", json_schema_extra={'toolkit_name': True,
39
39
  'max_toolkit_length': QtestToolkit.toolkit_max_length})),
40
40
  selected_tools=(List[Literal[tuple(selected_tools)]],
41
41
  Field(default=[], json_schema_extra={'args_schemas': selected_tools})),
@@ -0,0 +1,6 @@
1
+ def extend_with_parent_available_tools(method):
2
+ def wrapper(self, *args, **kwargs):
3
+ child_tools = method(self, *args, **kwargs)
4
+ parent_tools = super(self.__class__, self).get_available_tools()
5
+ return parent_tools + child_tools
6
+ return wrapper
@@ -17,9 +17,7 @@ name = "xray_cloud"
17
17
  def get_tools(tool):
18
18
  return XrayToolkit().get_toolkit(
19
19
  selected_tools=tool['settings'].get('selected_tools', []),
20
- base_url=tool['settings'].get('base_url', None),
21
- client_id=tool['settings'].get('client_id', None),
22
- client_secret=tool['settings'].get('client_secret', None),
20
+ xray_configuration=tool['settings'].get('xray_configuration', {}),
23
21
  limit=tool['settings'].get('limit', 20),
24
22
  verify_ssl=tool['settings'].get('verify_ssl', True),
25
23
  toolkit_name=tool.get('toolkit_name'),
@@ -29,7 +27,6 @@ def get_tools(tool):
29
27
  pgvector_configuration=tool['settings'].get('pgvector_configuration', {}),
30
28
  embedding_model=tool['settings'].get('embedding_model'),
31
29
  collection_name=str(tool['toolkit_name']),
32
- vectorstore_type="PGVector"
33
30
  ).get_tools()
34
31
 
35
32
 
@@ -44,7 +41,7 @@ class XrayToolkit(BaseToolkit):
44
41
  return create_model(
45
42
  name,
46
43
  limit=(Optional[int], Field(description="Limit", default=100)),
47
- xray_configuration=(Optional[XrayConfiguration], Field(description="Xray Configuration", json_schema_extra={'configuration_types': ['xray']})),
44
+ xray_configuration=(XrayConfiguration, Field(description="Xray Configuration", json_schema_extra={'configuration_types': ['xray']})),
48
45
  pgvector_configuration=(Optional[PgVectorConfiguration], Field(default=None,
49
46
  description="PgVector Configuration",
50
47
  json_schema_extra={
@@ -71,7 +68,7 @@ class XrayToolkit(BaseToolkit):
71
68
  wrapper_payload = {
72
69
  **kwargs,
73
70
  # Use xray_configuration fields
74
- **kwargs.get('xray_configuration', {}),
71
+ **(kwargs.get('xray_configuration') or {}),
75
72
  **(kwargs.get('pgvector_configuration') or {}),
76
73
  }
77
74
  xray_api_wrapper = XrayApiWrapper(**wrapper_payload)
@@ -1,14 +1,13 @@
1
1
  import logging
2
- from importlib.metadata import metadata
3
- from operator import ifloordiv
4
- from typing import Optional, List, Generator
2
+ from typing import Optional, List, Generator, Literal
5
3
 
6
4
  from langchain_core.tools import ToolException
7
5
  from pydantic import create_model, model_validator, PrivateAttr, Field, SecretStr
8
6
 
9
7
  from langchain_core.documents import Document
10
8
  from .zephyr_enterprise import ZephyrClient
11
- from ..elitea_base import BaseToolApiWrapper, BaseVectorStoreToolApiWrapper, extend_with_vector_tools
9
+ from ..non_code_indexer_toolkit import NonCodeIndexerToolkit
10
+ from ..utils.available_tools_decorator import extend_with_parent_available_tools
12
11
 
13
12
  logger = logging.getLogger(__name__)
14
13
 
@@ -23,7 +22,7 @@ zql_description = """
23
22
  "folder=\"TestToolkit\"", "name~\"TestToolkit5\"
24
23
  """
25
24
 
26
- class ZephyrApiWrapper(BaseVectorStoreToolApiWrapper):
25
+ class ZephyrApiWrapper(NonCodeIndexerToolkit):
27
26
  base_url: str
28
27
  token: SecretStr
29
28
  _client: Optional[ZephyrClient] = PrivateAttr()
@@ -34,7 +33,7 @@ class ZephyrApiWrapper(BaseVectorStoreToolApiWrapper):
34
33
  base_url = values.get('base_url')
35
34
  token = values.get('token')
36
35
  cls._client = ZephyrClient(base_url=base_url, token=token)
37
- return values
36
+ return super().validate_toolkit(values)
38
37
 
39
38
  def get_test_case(self, testcase_id: str):
40
39
 
@@ -153,7 +152,8 @@ class ZephyrApiWrapper(BaseVectorStoreToolApiWrapper):
153
152
  Returns a list of fields for index_data args schema.
154
153
  """
155
154
  return {
156
- "zql": (str, Field(description=zql_description, examples=["folder=\"TestToolkit\"", "name~\"TestToolkit5\""]))
155
+ "zql": (str, Field(description=zql_description, examples=["folder=\"TestToolkit\"", "name~\"TestToolkit5\""])),
156
+ 'chunking_tool': (Literal['json'], Field(description="Name of chunking tool", default='json'))
157
157
  }
158
158
 
159
159
  def _base_loader(self, zql: str, **kwargs) -> Generator[Document, None, None]:
@@ -166,12 +166,17 @@ class ZephyrApiWrapper(BaseVectorStoreToolApiWrapper):
166
166
  }
167
167
  yield Document(page_content='', metadata=metadata)
168
168
 
169
- def _process_document(self, document: Document) -> Generator[Document, None, None]:
170
- id = document.metadata['id']
171
- test_case_content = self.get_test_case_steps(id)
172
- document.page_content = test_case_content
173
-
174
- @extend_with_vector_tools
169
+ def _extend_data(self, documents: Generator[Document, None, None]) -> Generator[Document, None, None]:
170
+ for document in documents:
171
+ try:
172
+ id = document.metadata['id']
173
+ test_case_content = self.get_test_case_steps(id)
174
+ document.page_content = test_case_content
175
+ except Exception as e:
176
+ logging.error(f"Failed to process document: {e}")
177
+ yield document
178
+
179
+ @extend_with_parent_available_tools
175
180
  def get_available_tools(self):
176
181
  return [
177
182
  {