alita-sdk 0.3.201__tar.gz → 0.3.202__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (314) hide show
  1. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/PKG-INFO +1 -1
  2. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/tools/postman/api_wrapper.py +1 -1
  3. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/tools/slack/__init__.py +3 -2
  4. alita_sdk-0.3.202/alita_sdk/tools/slack/api_wrapper.py +301 -0
  5. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk.egg-info/PKG-INFO +1 -1
  6. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/pyproject.toml +1 -1
  7. alita_sdk-0.3.201/alita_sdk/tools/slack/api_wrapper.py +0 -183
  8. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/LICENSE +0 -0
  9. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/README.md +0 -0
  10. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/__init__.py +0 -0
  11. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/community/__init__.py +0 -0
  12. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/community/analysis/__init__.py +0 -0
  13. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/community/analysis/ado_analyse/__init__.py +0 -0
  14. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/community/analysis/ado_analyse/api_wrapper.py +0 -0
  15. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/community/analysis/github_analyse/__init__.py +0 -0
  16. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/community/analysis/github_analyse/api_wrapper.py +0 -0
  17. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/community/analysis/gitlab_analyse/__init__.py +0 -0
  18. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/community/analysis/gitlab_analyse/api_wrapper.py +0 -0
  19. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/community/analysis/jira_analyse/__init__.py +0 -0
  20. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/community/analysis/jira_analyse/api_wrapper.py +0 -0
  21. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/community/utils.py +0 -0
  22. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/runtime/__init__.py +0 -0
  23. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/runtime/clients/__init__.py +0 -0
  24. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/runtime/clients/artifact.py +0 -0
  25. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/runtime/clients/client.py +0 -0
  26. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/runtime/clients/datasource.py +0 -0
  27. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/runtime/clients/prompt.py +0 -0
  28. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/runtime/langchain/__init__.py +0 -0
  29. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/runtime/langchain/agents/__init__.py +0 -0
  30. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/runtime/langchain/agents/xml_chat.py +0 -0
  31. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/runtime/langchain/assistant.py +0 -0
  32. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/runtime/langchain/chat_message_template.py +0 -0
  33. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/runtime/langchain/constants.py +0 -0
  34. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/runtime/langchain/document_loaders/AlitaBDDScenariosLoader.py +0 -0
  35. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/runtime/langchain/document_loaders/AlitaCSVLoader.py +0 -0
  36. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/runtime/langchain/document_loaders/AlitaConfluenceLoader.py +0 -0
  37. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/runtime/langchain/document_loaders/AlitaDirectoryLoader.py +0 -0
  38. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/runtime/langchain/document_loaders/AlitaDocxMammothLoader.py +0 -0
  39. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/runtime/langchain/document_loaders/AlitaExcelLoader.py +0 -0
  40. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/runtime/langchain/document_loaders/AlitaGitRepoLoader.py +0 -0
  41. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/runtime/langchain/document_loaders/AlitaImageLoader.py +0 -0
  42. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/runtime/langchain/document_loaders/AlitaJiraLoader.py +0 -0
  43. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/runtime/langchain/document_loaders/AlitaQtestLoader.py +0 -0
  44. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/runtime/langchain/document_loaders/AlitaTableLoader.py +0 -0
  45. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/runtime/langchain/document_loaders/__init__.py +0 -0
  46. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/runtime/langchain/document_loaders/constants.py +0 -0
  47. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/runtime/langchain/document_loaders/utils.py +0 -0
  48. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/runtime/langchain/indexer.py +0 -0
  49. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/runtime/langchain/interfaces/__init__.py +0 -0
  50. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/runtime/langchain/interfaces/kwextractor.py +0 -0
  51. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/runtime/langchain/interfaces/llm_processor.py +0 -0
  52. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/runtime/langchain/interfaces/loaders.py +0 -0
  53. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/runtime/langchain/interfaces/splitters.py +0 -0
  54. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/runtime/langchain/langraph_agent.py +0 -0
  55. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/runtime/langchain/mixedAgentParser.py +0 -0
  56. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/runtime/langchain/mixedAgentRenderes.py +0 -0
  57. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/runtime/langchain/retrievers/AlitaRetriever.py +0 -0
  58. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/runtime/langchain/retrievers/VectorstoreRetriever.py +0 -0
  59. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/runtime/langchain/retrievers/__init__.py +0 -0
  60. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/runtime/langchain/store_manager.py +0 -0
  61. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/runtime/langchain/tools/__init__.py +0 -0
  62. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/runtime/langchain/tools/bdd_parser/__init__.py +0 -0
  63. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/runtime/langchain/tools/bdd_parser/bdd_exceptions.py +0 -0
  64. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/runtime/langchain/tools/bdd_parser/bdd_parser.py +0 -0
  65. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/runtime/langchain/tools/bdd_parser/feature_types.py +0 -0
  66. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/runtime/langchain/tools/bdd_parser/parser.py +0 -0
  67. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/runtime/langchain/tools/git.py +0 -0
  68. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/runtime/langchain/tools/log.py +0 -0
  69. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/runtime/langchain/tools/quota.py +0 -0
  70. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/runtime/langchain/tools/state.py +0 -0
  71. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/runtime/langchain/tools/utils.py +0 -0
  72. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/runtime/langchain/tools/vector.py +0 -0
  73. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/runtime/langchain/utils.py +0 -0
  74. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/runtime/llms/__init__.py +0 -0
  75. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/runtime/llms/alita.py +0 -0
  76. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/runtime/llms/preloaded.py +0 -0
  77. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/runtime/toolkits/__init__.py +0 -0
  78. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/runtime/toolkits/application.py +0 -0
  79. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/runtime/toolkits/artifact.py +0 -0
  80. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/runtime/toolkits/datasource.py +0 -0
  81. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/runtime/toolkits/prompt.py +0 -0
  82. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/runtime/toolkits/subgraph.py +0 -0
  83. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/runtime/toolkits/tools.py +0 -0
  84. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/runtime/toolkits/vectorstore.py +0 -0
  85. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/runtime/tools/__init__.py +0 -0
  86. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/runtime/tools/agent.py +0 -0
  87. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/runtime/tools/application.py +0 -0
  88. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/runtime/tools/artifact.py +0 -0
  89. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/runtime/tools/datasource.py +0 -0
  90. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/runtime/tools/echo.py +0 -0
  91. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/runtime/tools/function.py +0 -0
  92. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/runtime/tools/indexer_tool.py +0 -0
  93. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/runtime/tools/llm.py +0 -0
  94. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/runtime/tools/loop.py +0 -0
  95. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/runtime/tools/loop_output.py +0 -0
  96. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/runtime/tools/mcp_server_tool.py +0 -0
  97. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/runtime/tools/pgvector_search.py +0 -0
  98. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/runtime/tools/prompt.py +0 -0
  99. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/runtime/tools/router.py +0 -0
  100. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/runtime/tools/tool.py +0 -0
  101. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/runtime/tools/vectorstore.py +0 -0
  102. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/runtime/utils/AlitaCallback.py +0 -0
  103. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/runtime/utils/__init__.py +0 -0
  104. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/runtime/utils/constants.py +0 -0
  105. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/runtime/utils/evaluate.py +0 -0
  106. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/runtime/utils/logging.py +0 -0
  107. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/runtime/utils/save_dataframe.py +0 -0
  108. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/runtime/utils/streamlit.py +0 -0
  109. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/runtime/utils/utils.py +0 -0
  110. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/tools/__init__.py +0 -0
  111. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/tools/ado/__init__.py +0 -0
  112. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/tools/ado/repos/__init__.py +0 -0
  113. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/tools/ado/repos/repos_wrapper.py +0 -0
  114. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/tools/ado/test_plan/__init__.py +0 -0
  115. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/tools/ado/test_plan/test_plan_wrapper.py +0 -0
  116. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/tools/ado/utils.py +0 -0
  117. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/tools/ado/wiki/__init__.py +0 -0
  118. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/tools/ado/wiki/ado_wrapper.py +0 -0
  119. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/tools/ado/work_item/__init__.py +0 -0
  120. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/tools/ado/work_item/ado_wrapper.py +0 -0
  121. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/tools/advanced_jira_mining/__init__.py +0 -0
  122. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/tools/advanced_jira_mining/data_mining_wrapper.py +0 -0
  123. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/tools/azure_ai/__init__.py +0 -0
  124. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/tools/azure_ai/search/__init__.py +0 -0
  125. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/tools/azure_ai/search/api_wrapper.py +0 -0
  126. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/tools/base/__init__.py +0 -0
  127. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/tools/base/tool.py +0 -0
  128. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/tools/bitbucket/__init__.py +0 -0
  129. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/tools/bitbucket/api_wrapper.py +0 -0
  130. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/tools/bitbucket/bitbucket_constants.py +0 -0
  131. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/tools/bitbucket/cloud_api_wrapper.py +0 -0
  132. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/tools/bitbucket/tools.py +0 -0
  133. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/tools/browser/__init__.py +0 -0
  134. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/tools/browser/crawler.py +0 -0
  135. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/tools/browser/duck_duck_go_search.py +0 -0
  136. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/tools/browser/google_search_rag.py +0 -0
  137. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/tools/browser/utils.py +0 -0
  138. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/tools/browser/wiki.py +0 -0
  139. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/tools/carrier/__init__.py +0 -0
  140. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/tools/carrier/api_wrapper.py +0 -0
  141. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/tools/carrier/backend_reports_tool.py +0 -0
  142. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/tools/carrier/backend_tests_tool.py +0 -0
  143. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/tools/carrier/cancel_ui_test_tool.py +0 -0
  144. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/tools/carrier/carrier_sdk.py +0 -0
  145. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/tools/carrier/create_ui_excel_report_tool.py +0 -0
  146. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/tools/carrier/create_ui_test_tool.py +0 -0
  147. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/tools/carrier/excel_reporter.py +0 -0
  148. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/tools/carrier/lighthouse_excel_reporter.py +0 -0
  149. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/tools/carrier/run_ui_test_tool.py +0 -0
  150. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/tools/carrier/tickets_tool.py +0 -0
  151. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/tools/carrier/tools.py +0 -0
  152. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/tools/carrier/ui_reports_tool.py +0 -0
  153. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/tools/carrier/update_ui_test_schedule_tool.py +0 -0
  154. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/tools/carrier/utils.py +0 -0
  155. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/tools/chunkers/__init__.py +0 -0
  156. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/tools/chunkers/code/__init__.py +0 -0
  157. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/tools/chunkers/code/codeparser.py +0 -0
  158. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/tools/chunkers/code/constants.py +0 -0
  159. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/tools/chunkers/code/treesitter/__init__.py +0 -0
  160. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/tools/chunkers/code/treesitter/treesitter.py +0 -0
  161. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/tools/chunkers/code/treesitter/treesitter_c.py +0 -0
  162. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/tools/chunkers/code/treesitter/treesitter_cpp.py +0 -0
  163. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/tools/chunkers/code/treesitter/treesitter_cs.py +0 -0
  164. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/tools/chunkers/code/treesitter/treesitter_go.py +0 -0
  165. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/tools/chunkers/code/treesitter/treesitter_hs.py +0 -0
  166. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/tools/chunkers/code/treesitter/treesitter_java.py +0 -0
  167. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/tools/chunkers/code/treesitter/treesitter_js.py +0 -0
  168. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/tools/chunkers/code/treesitter/treesitter_kt.py +0 -0
  169. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/tools/chunkers/code/treesitter/treesitter_py.py +0 -0
  170. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/tools/chunkers/code/treesitter/treesitter_rb.py +0 -0
  171. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/tools/chunkers/code/treesitter/treesitter_registry.py +0 -0
  172. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/tools/chunkers/code/treesitter/treesitter_rs.py +0 -0
  173. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/tools/chunkers/code/treesitter/treesitter_ts.py +0 -0
  174. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/tools/chunkers/models.py +0 -0
  175. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/tools/chunkers/sematic/__init__.py +0 -0
  176. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/tools/chunkers/sematic/base.py +0 -0
  177. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/tools/chunkers/sematic/markdown_chunker.py +0 -0
  178. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/tools/chunkers/sematic/proposal_chunker.py +0 -0
  179. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/tools/chunkers/sematic/statistical_chunker.py +0 -0
  180. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/tools/chunkers/utils.py +0 -0
  181. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/tools/cloud/__init__.py +0 -0
  182. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/tools/cloud/aws/__init__.py +0 -0
  183. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/tools/cloud/aws/api_wrapper.py +0 -0
  184. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/tools/cloud/azure/__init__.py +0 -0
  185. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/tools/cloud/azure/api_wrapper.py +0 -0
  186. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/tools/cloud/gcp/__init__.py +0 -0
  187. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/tools/cloud/gcp/api_wrapper.py +0 -0
  188. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/tools/cloud/k8s/__init__.py +0 -0
  189. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/tools/cloud/k8s/api_wrapper.py +0 -0
  190. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/tools/code/__init__.py +0 -0
  191. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/tools/code/linter/__init__.py +0 -0
  192. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/tools/code/linter/api_wrapper.py +0 -0
  193. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/tools/code/loaders/codesearcher.py +0 -0
  194. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/tools/code/sonar/__init__.py +0 -0
  195. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/tools/code/sonar/api_wrapper.py +0 -0
  196. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/tools/confluence/__init__.py +0 -0
  197. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/tools/confluence/api_wrapper.py +0 -0
  198. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/tools/confluence/loader.py +0 -0
  199. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/tools/confluence/utils.py +0 -0
  200. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/tools/custom_open_api/__init__.py +0 -0
  201. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/tools/custom_open_api/api_wrapper.py +0 -0
  202. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/tools/elastic/__init__.py +0 -0
  203. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/tools/elastic/api_wrapper.py +0 -0
  204. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/tools/elitea_base.py +0 -0
  205. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/tools/figma/__init__.py +0 -0
  206. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/tools/figma/api_wrapper.py +0 -0
  207. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/tools/github/__init__.py +0 -0
  208. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/tools/github/api_wrapper.py +0 -0
  209. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/tools/github/github_client.py +0 -0
  210. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/tools/github/graphql_client_wrapper.py +0 -0
  211. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/tools/github/schemas.py +0 -0
  212. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/tools/github/tool.py +0 -0
  213. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/tools/github/tool_prompts.py +0 -0
  214. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/tools/gitlab/__init__.py +0 -0
  215. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/tools/gitlab/api_wrapper.py +0 -0
  216. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/tools/gitlab/tools.py +0 -0
  217. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/tools/gitlab/utils.py +0 -0
  218. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/tools/gitlab_org/__init__.py +0 -0
  219. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/tools/gitlab_org/api_wrapper.py +0 -0
  220. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/tools/gmail/__init__.py +0 -0
  221. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/tools/gmail/gmail_wrapper.py +0 -0
  222. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/tools/gmail/utils.py +0 -0
  223. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/tools/google_places/__init__.py +0 -0
  224. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/tools/google_places/api_wrapper.py +0 -0
  225. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/tools/jira/__init__.py +0 -0
  226. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/tools/jira/api_wrapper.py +0 -0
  227. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/tools/keycloak/__init__.py +0 -0
  228. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/tools/keycloak/api_wrapper.py +0 -0
  229. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/tools/llm/__init__.py +0 -0
  230. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/tools/llm/img_utils.py +0 -0
  231. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/tools/llm/llm_utils.py +0 -0
  232. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/tools/localgit/__init__.py +0 -0
  233. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/tools/localgit/local_git.py +0 -0
  234. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/tools/localgit/tool.py +0 -0
  235. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/tools/memory/__init__.py +0 -0
  236. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/tools/ocr/__init__.py +0 -0
  237. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/tools/ocr/api_wrapper.py +0 -0
  238. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/tools/ocr/text_detection.py +0 -0
  239. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/tools/openapi/__init__.py +0 -0
  240. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/tools/pandas/__init__.py +0 -0
  241. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/tools/pandas/api_wrapper.py +0 -0
  242. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/tools/pandas/dataframe/__init__.py +0 -0
  243. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/tools/pandas/dataframe/errors.py +0 -0
  244. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/tools/pandas/dataframe/executor/__init__.py +0 -0
  245. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/tools/pandas/dataframe/executor/code_environment.py +0 -0
  246. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/tools/pandas/dataframe/executor/code_executor.py +0 -0
  247. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/tools/pandas/dataframe/generator/__init__.py +0 -0
  248. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/tools/pandas/dataframe/generator/base.py +0 -0
  249. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/tools/pandas/dataframe/generator/code_cleaning.py +0 -0
  250. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/tools/pandas/dataframe/generator/code_validator.py +0 -0
  251. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/tools/pandas/dataframe/prompts.py +0 -0
  252. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/tools/pandas/dataframe/serializer.py +0 -0
  253. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/tools/pandas/dataframe/utils.py +0 -0
  254. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/tools/pandas/statsmodels/__init__.py +0 -0
  255. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/tools/pandas/statsmodels/base_stats.py +0 -0
  256. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/tools/pandas/statsmodels/descriptive.py +0 -0
  257. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/tools/pandas/statsmodels/hypothesis_testing.py +0 -0
  258. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/tools/pandas/statsmodels/regression.py +0 -0
  259. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/tools/postman/__init__.py +0 -0
  260. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/tools/postman/postman_analysis.py +0 -0
  261. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/tools/pptx/__init__.py +0 -0
  262. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/tools/pptx/pptx_wrapper.py +0 -0
  263. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/tools/qtest/__init__.py +0 -0
  264. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/tools/qtest/api_wrapper.py +0 -0
  265. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/tools/qtest/tool.py +0 -0
  266. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/tools/rally/__init__.py +0 -0
  267. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/tools/rally/api_wrapper.py +0 -0
  268. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/tools/report_portal/__init__.py +0 -0
  269. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/tools/report_portal/api_wrapper.py +0 -0
  270. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/tools/report_portal/report_portal_client.py +0 -0
  271. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/tools/salesforce/__init__.py +0 -0
  272. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/tools/salesforce/api_wrapper.py +0 -0
  273. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/tools/salesforce/model.py +0 -0
  274. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/tools/servicenow/__init__.py +0 -0
  275. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/tools/servicenow/api_wrapper.py +0 -0
  276. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/tools/servicenow/servicenow_client.py +0 -0
  277. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/tools/sharepoint/__init__.py +0 -0
  278. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/tools/sharepoint/api_wrapper.py +0 -0
  279. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/tools/sharepoint/authorization_helper.py +0 -0
  280. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/tools/sharepoint/utils.py +0 -0
  281. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/tools/sql/__init__.py +0 -0
  282. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/tools/sql/api_wrapper.py +0 -0
  283. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/tools/sql/models.py +0 -0
  284. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/tools/testio/__init__.py +0 -0
  285. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/tools/testio/api_wrapper.py +0 -0
  286. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/tools/testrail/__init__.py +0 -0
  287. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/tools/testrail/api_wrapper.py +0 -0
  288. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/tools/utils/__init__.py +0 -0
  289. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/tools/utils/content_parser.py +0 -0
  290. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/tools/xray/__init__.py +0 -0
  291. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/tools/xray/api_wrapper.py +0 -0
  292. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/tools/yagmail/__init__.py +0 -0
  293. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/tools/yagmail/yagmail_wrapper.py +0 -0
  294. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/tools/zephyr/Zephyr.py +0 -0
  295. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/tools/zephyr/__init__.py +0 -0
  296. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/tools/zephyr/api_wrapper.py +0 -0
  297. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/tools/zephyr/rest_client.py +0 -0
  298. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/tools/zephyr_enterprise/__init__.py +0 -0
  299. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/tools/zephyr_enterprise/api_wrapper.py +0 -0
  300. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/tools/zephyr_enterprise/zephyr_enterprise.py +0 -0
  301. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/tools/zephyr_scale/__init__.py +0 -0
  302. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/tools/zephyr_scale/api_wrapper.py +0 -0
  303. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/tools/zephyr_squad/__init__.py +0 -0
  304. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/tools/zephyr_squad/api_wrapper.py +0 -0
  305. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk/tools/zephyr_squad/zephyr_squad_cloud_client.py +0 -0
  306. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk.egg-info/SOURCES.txt +0 -0
  307. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk.egg-info/dependency_links.txt +0 -0
  308. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk.egg-info/requires.txt +0 -0
  309. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/alita_sdk.egg-info/top_level.txt +0 -0
  310. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/setup.cfg +0 -0
  311. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/tests/test_ado_analysis.py +0 -0
  312. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/tests/test_github_analysis.py +0 -0
  313. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/tests/test_gitlab_analysis.py +0 -0
  314. {alita_sdk-0.3.201 → alita_sdk-0.3.202}/tests/test_jira_analysis.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: alita_sdk
3
- Version: 0.3.201
3
+ Version: 0.3.202
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
@@ -1283,7 +1283,7 @@ class PostmanApiWrapper(BaseToolApiWrapper):
1283
1283
  self.analyzer.remove_item_ids(collection_data.get("item", []))
1284
1284
 
1285
1285
  response = self._make_request(
1286
- 'POST', '/collections', json={"collection": collection_data})
1286
+ 'POST', f'/collections?workspace={self.workspace_id}', json={"collection": collection_data})
1287
1287
  return json.dumps(response, indent=2)
1288
1288
  except Exception as e:
1289
1289
  stacktrace = format_exc()
@@ -25,6 +25,7 @@ def get_tools(tool):
25
25
 
26
26
  class SlackToolkit(BaseToolkit):
27
27
  tools: List[BaseTool] = []
28
+ toolkit_max_length: int = 0
28
29
 
29
30
  @staticmethod
30
31
  def toolkit_config_schema() -> BaseModel:
@@ -52,7 +53,7 @@ class SlackToolkit(BaseToolkit):
52
53
  'configuration_title': True})),
53
54
  slack_token=(SecretStr, Field(description="Slack Token like XOXB-*****-*****-*****-*****",
54
55
  json_schema_extra={'secret': True, 'configuration': True})),
55
- channel_id=(str, Field(description="Channel ID", json_schema_extra={'configuration': True})),
56
+ channel_id=(Optional[str], Field(default=None, description="Channel ID", json_schema_extra={'configuration': True})),
56
57
  selected_tools=(List[Literal[tuple(selected_tools)]],
57
58
  Field(default=[], json_schema_extra={'args_schemas': selected_tools})),
58
59
  __config__={'json_schema_extra': {'metadata': {"label": "Slack", "icon_url": "slack-icon.svg"}}}
@@ -74,7 +75,7 @@ class SlackToolkit(BaseToolkit):
74
75
  tools.append(BaseAction(
75
76
  api_wrapper=slack_api_wrapper,
76
77
  name=prefix + tool["name"],
77
- description=tool["description"],
78
+ description=f"Slack Tool: {tool['description']}",
78
79
  args_schema=tool["args_schema"],
79
80
  ))
80
81
  return cls(tools=tools)
@@ -0,0 +1,301 @@
1
+ import logging
2
+ from typing import Optional
3
+ from pydantic import BaseModel, Field, SecretStr, create_model, model_validator
4
+ from slack_sdk import WebClient
5
+ from slack_sdk.errors import SlackApiError
6
+
7
+ from alita_sdk.tools.elitea_base import BaseToolApiWrapper
8
+
9
+
10
+ logger = logging.getLogger(__name__)
11
+
12
+ SendMessageModel = create_model(
13
+ "SendMessageModel",
14
+ channel_id=(Optional[str], Field(default=None,description="Channel ID, user ID, or conversation ID to send the message to. (like C12345678 for public channels, D12345678 for DMs)")),
15
+ message=(str, Field(description="The message text to send."))
16
+ )
17
+
18
+ ReadMessagesModel = create_model(
19
+ "ReadMessagesModel",
20
+ channel_id=(Optional[str], Field(default=None,description="Channel ID, user ID, or conversation ID to read messages from. (like C12345678 for public channels, D12345678 for DMs)")),
21
+ limit=(int, Field(default=10, description="The number of messages to fetch (default is 10)."))
22
+ )
23
+
24
+ CreateChannelModel = create_model(
25
+ "CreateChannelModel",
26
+ channel_name=(str, Field(description="Channel ID, user ID, or conversation ID to send the message to. (like C12345678 for public channels, D12345678 for DMs)")),
27
+ is_private=(bool, Field(default=False, description="Whether to make the channel private (default: False)."))
28
+ )
29
+
30
+ ListChannelUsersModel = create_model(
31
+ "ListChannelUsersModel",
32
+ channel_id=(Optional[str], Field(default=None,description="Channel ID, user ID, or conversation ID to read messages from. (like C12345678 for public channels, D12345678 for DMs)"))
33
+ )
34
+
35
+ ListWorkspaceUsersModel = create_model(
36
+ "ListWorkspaceUsersModel"
37
+ )
38
+
39
+ ListWorkspaceConversationsModel = create_model(
40
+ "ListWorkspaceConversationsModel"
41
+ )
42
+
43
+ InviteToConversationModel = create_model(
44
+ "InviteToConversationModel" ,
45
+ channel_id=(Optional[str], Field(default=None,description="Conversation ID of the channel.")),
46
+ user_ids=(list[str], Field(description="List of user IDs to invite."))
47
+ )
48
+
49
+
50
+
51
+ class SlackApiWrapper(BaseToolApiWrapper):
52
+
53
+ """
54
+ Slack API wrapper for interacting with Slack channels and messages.
55
+ """
56
+ slack_token: Optional[SecretStr] = Field(default=None,description="Slack Bot/User OAuth Token like XOXB-*****-*****-*****-*****")
57
+ channel_id: Optional[str] = Field(default=None, description="Channel ID, user ID, or conversation ID to send the message to. (like C12345678 for public channels, D12345678 for DMs)")
58
+
59
+ @model_validator(mode="before")
60
+ @classmethod
61
+ def validate_toolkit(cls, values):
62
+ token = values.get("slack_token")
63
+ if not token:
64
+ logger.error("Slack token is required for authentication.")
65
+ raise ValueError("Slack token is required for authentication.")
66
+ return values
67
+
68
+
69
+ def _get_client(self):
70
+ if not hasattr(self, "_client") or self._client is None:
71
+ self._client = WebClient(token=self.slack_token.get_secret_value())
72
+ return self._client
73
+
74
+ def send_message(self, message: str, channel_id: Optional[str] = None):
75
+ """
76
+ Sends a message to a specified Slack channel, user, or conversation.
77
+ Uses the provided channel_id if given, otherwise falls back to the instance's channel_id.
78
+ """
79
+
80
+ try:
81
+
82
+ client = self._get_client()
83
+
84
+ # Use the passed channel_id if provided, else use self.channel_id
85
+ channel = channel_id if channel_id else self.channel_id
86
+ response = client.chat_postMessage(channel=channel, text=message)
87
+ logger.info(f"Message sent to {channel}: {message}")
88
+ return f"Message sent successfully to {channel}."
89
+
90
+ except SlackApiError as e:
91
+ logger.error(f"Failed to send message to {channel}: {e.response['error']}")
92
+ return f"Received the error : {e.response['error']}"
93
+
94
+ def read_messages(self, limit=10, channel_id: Optional[str] = None):
95
+ """
96
+ Reads the latest messages from a Slack channel or conversation.
97
+
98
+ :param limit: int: The number of messages to fetch (default is 10)
99
+ :return: list: Returns a list of messages with metadata.
100
+ """
101
+ try:
102
+
103
+ client = self._get_client()
104
+ logger.info(f"auth test: {client.auth_test()}")
105
+ # Use the passed channel_id if provided, else use self.channel_id
106
+ channel = channel_id if channel_id else self.channel_id
107
+ # Fetch conversation history
108
+ response = client.conversations_history(
109
+ channel=channel,
110
+ limit=limit )
111
+
112
+ # Extract messages from the response
113
+ messages = self.extract_slack_messages(response.get('messages', []))
114
+
115
+ return messages
116
+
117
+ except SlackApiError as e:
118
+ # Handle errors from the Slack API
119
+ logger.error(f"Failed to read message from {channel}: {e.response['error']}")
120
+ return f"Received the error : {e.response['error']}"
121
+
122
+ def create_slack_channel(self, channel_name: str, is_private=False):
123
+ """
124
+ Creates a new Slack channel.
125
+
126
+ :param channel_name: str: Desired name for the channel (e.g., "my-new-channel").
127
+ :param is_private: bool: Whether to make the channel private (default: False).
128
+ :return: dict: Slack API response or error message.
129
+ """
130
+
131
+ try:
132
+ client = self._get_client()
133
+ response = client.conversations_create(
134
+ name=channel_name,
135
+ is_private=is_private
136
+ )
137
+ channel_id = response["channel"]["id"]
138
+ print(f"Channel '{channel_name}' created successfully! Channel ID: {channel_id}")
139
+ return {"success": True, "channel_id": channel_id}
140
+ except SlackApiError as e:
141
+ error_message = e.response.get("error", "unknown_error")
142
+ print(f"Failed to create channel '{channel_name}': {error_message}")
143
+ return {"success": False, "error": error_message}
144
+
145
+
146
+
147
+ def list_channel_users(self, channel_id: Optional[str] = None):
148
+ """
149
+ Lists all users in the specified Slack channel.
150
+
151
+ :param channel_id: Optional[str]: The channel ID to list users from. If not provided, uses self.channel_id.
152
+ :return: list: List of user dictionaries with their IDs and names.
153
+ """
154
+ try:
155
+ client = self._get_client()
156
+ # Use the passed channel_id if provided, else use self.channel_id
157
+ channel = channel_id if channel_id else self.channel_id
158
+ logger.info
159
+ if not channel:
160
+ logger.error("No channel_id provided to list_channel_users.")
161
+ return "Error: channel_id must be provided either as an argument or set on the instance."
162
+
163
+ # Get user IDs in the channel
164
+ members_response = client.conversations_members(channel=channel)
165
+ user_ids = members_response.get("members", [])
166
+
167
+ # Fetch user info for each user ID
168
+ users = []
169
+ for user_id in user_ids:
170
+ user_info = client.users_info(user=user_id)
171
+ user = user_info.get("user", {})
172
+ users.append({"id": user.get("id"), "name": user.get("name")})
173
+
174
+ return users
175
+
176
+ except SlackApiError as e:
177
+ logger.error(f"Failed to list users in channel {channel}: {e.response['error']}")
178
+ return f"Received the error : {e.response['error']}"
179
+
180
+ def list_workspace_users(self):
181
+ """
182
+ Fetches and returns a list of all users in the Slack workspace with selected user details.
183
+
184
+ :return: list: List of user dictionaries containing id, name, is_bot, email, and team.
185
+ """
186
+ try:
187
+ client = self._get_client()
188
+ response = client.users_list() # Fetch users
189
+ members = self.extract_required_user_fields(response.get('members', []))
190
+ print(f"Found {len(members)} users.")
191
+ return members # Return the list of users
192
+ except SlackApiError as e:
193
+ print(f"Error fetching users: {e.response['error']}")
194
+ return []
195
+
196
+ def list_workspace_conversations(self):
197
+ """
198
+ Retrieves and returns a list of all conversations (channels, groups, and direct messages) in the Slack workspace.
199
+
200
+ :return: list: List of conversation/channel dictionaries as returned by the Slack API.
201
+ """
202
+ try:
203
+ client = self._get_client()
204
+ response = client.conversations_list() # Fetch conversations
205
+ channels = response.get("channels", [])
206
+ print(f"Found {len(channels)} channels.")
207
+ return channels # Return the list of channels
208
+ except SlackApiError as e:
209
+ print(f"Error fetching conversations: {e.response['error']}")
210
+ return []
211
+
212
+ def invite_to_conversation(self, user_ids: list, channel_id: Optional[str] = None ):
213
+ """
214
+ Invite one or more users to a Slack channel.
215
+ :param client: Slack WebClient instance.
216
+ :param channel_id: Conversation ID of the channel.
217
+ :param user_ids: List of user IDs to invite.
218
+ """
219
+ try:
220
+ client = self._get_client()
221
+ # Use the passed channel_id if provided, else use self.channel_id
222
+ channel = channel_id if channel_id else self.channel_id
223
+ response = client.conversations_invite(channel=channel, users=",".join(user_ids))
224
+ print(f"Successfully invited users to {channel}.")
225
+ return response
226
+ except SlackApiError as e:
227
+ print(f"Error inviting users: {e.response['error']}")
228
+ return None
229
+
230
+ def extract_slack_messages(self, data):
231
+ extracted_info = []
232
+
233
+ for item in data:
234
+ # Extract 'user' and 'text'
235
+ user = item.get("user", "Undefined User")
236
+ message = item.get("text", "No message")
237
+
238
+ # Extract 'app name'
239
+ app_name = item.get("bot_profile", {}).get("name", "No App Name")
240
+
241
+ # Append to result
242
+ extracted_info.append({"user": user, "message": message, "app_name": app_name})
243
+
244
+ return extracted_info
245
+
246
+ # Function to extract required user details
247
+ def extract_required_user_fields(self, user_details):
248
+ extracted_user_data = []
249
+ for entry in user_details:
250
+ extracted_entry = {
251
+ "id": entry.get("id", None),
252
+ "name": entry.get("name", None),
253
+ "is_bot": entry.get("is_bot", None),
254
+ "email": entry.get("profile", {}).get("email", None),
255
+ "team": entry.get("profile", {}).get("team", None)
256
+ }
257
+ extracted_user_data.append(extracted_entry)
258
+ return extracted_user_data
259
+
260
+ def get_available_tools(self):
261
+ return [
262
+ {
263
+ "name": "send_message",
264
+ "description": self.send_message.__doc__ or "Send a message to a Slack channel, user, or conversation.",
265
+ "args_schema": SendMessageModel,
266
+ "ref": self.send_message
267
+
268
+ },
269
+ {
270
+ "name": "read_messages",
271
+ "description": self.read_messages.__doc__ or "Read a message from a Slack channel, user, or conversation.",
272
+ "args_schema": ReadMessagesModel,
273
+ "ref": self.read_messages
274
+ },
275
+ {
276
+ "name": "create_slack_channel",
277
+ "description": self.create_slack_channel.__doc__ or "Create a Slack channel",
278
+ "args_schema": CreateChannelModel,
279
+ "ref": self.create_slack_channel
280
+ },
281
+ {
282
+ "name": "list_channel_users",
283
+ "description": self.list_channel_users.__doc__ or "List all users in the Slack channel.",
284
+ "args_schema": ListChannelUsersModel,
285
+ "ref": self.list_channel_users
286
+ },
287
+ {
288
+ "name": "list_workspace_users",
289
+ "description": self.list_workspace_users.__doc__ or "List all users in the Slack workspace.",
290
+ "args_schema": ListWorkspaceUsersModel,
291
+ "ref": self.list_workspace_users
292
+ }
293
+ ,
294
+ {
295
+ "name": "invite_to_conversation",
296
+ "description": self.invite_to_conversation.__doc__ or "Invite to a conversation in the Slack workspace.",
297
+ "args_schema": InviteToConversationModel,
298
+ "ref": self.invite_to_conversation
299
+ }
300
+
301
+ ]
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: alita_sdk
3
- Version: 0.3.201
3
+ Version: 0.3.202
4
4
  Summary: SDK for building langchain agents using resources from Alita
5
5
  Author-email: Artem Rozumenko <artyom.rozumenko@gmail.com>, Mikalai Biazruchka <mikalai_biazruchka@epam.com>, Roman Mitusov <roman_mitusov@epam.com>, Ivan Krakhmaliuk <lifedjik@gmail.com>, Artem Dubrovskiy <ad13box@gmail.com>
6
6
  License-Expression: Apache-2.0
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "alita_sdk"
7
- version = "0.3.201"
7
+ version = "0.3.202"
8
8
  description = "SDK for building langchain agents using resources from Alita"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.10"
@@ -1,183 +0,0 @@
1
- import logging
2
- from typing import Optional
3
- from pydantic import BaseModel, Field, SecretStr, create_model, model_validator
4
- from slack_sdk import WebClient
5
- from slack_sdk.errors import SlackApiError
6
-
7
- from alita_sdk.tools.elitea_base import BaseToolApiWrapper
8
-
9
-
10
- logger = logging.getLogger(__name__)
11
-
12
- SendMessageModel = create_model(
13
- "SendMessageModel",
14
- message=(str, Field(description="The message text to send."))
15
- )
16
-
17
- ReadMessagesModel = create_model(
18
- "ReadMessagesModel",
19
- limit=(int, Field(default=10, description="The number of messages to fetch (default is 10)."))
20
- )
21
-
22
- CreateChannelModel = create_model(
23
- "CreateChannelModel",
24
- channel_name=(str, Field(description="Channel ID, user ID, or conversation ID to send the message to. (like C12345678 for public channels, D12345678 for DMs)")),
25
- is_private=(bool, Field(default=False, description="Whether to make the channel private (default: False)."))
26
- )
27
-
28
- ListUsersModel = create_model(
29
- "ListUsersModel"
30
- )
31
-
32
-
33
- class SlackApiWrapper(BaseToolApiWrapper):
34
-
35
- """
36
- Slack API wrapper for interacting with Slack channels and messages.
37
- """
38
- slack_token: Optional[SecretStr] = Field(default=None,description="Slack Bot/User OAuth Token like XOXB-*****-*****-*****-*****")
39
- channel_id: Optional[str] = Field(default=None, description="Channel ID, user ID, or conversation ID to send the message to. (like C12345678 for public channels, D12345678 for DMs)")
40
-
41
- @model_validator(mode="before")
42
- @classmethod
43
- def validate_toolkit(cls, values):
44
- token = values.get("slack_token")
45
- if not token:
46
- logger.error("Slack token is required for authentication.")
47
- raise ValueError("Slack token is required for authentication.")
48
- return values
49
- def _get_client(self):
50
- if not hasattr(self, "_client") or self._client is None:
51
- self._client = WebClient(token=self.slack_token.get_secret_value())
52
- return self._client
53
-
54
- def send_message(self, message: str):
55
- """
56
- Sends a message to a specified Slack channel, user, or conversation.
57
- """
58
-
59
- try:
60
-
61
- client = self._get_client()
62
- response = client.chat_postMessage(channel=self.channel_id, text=message)
63
- logger.info(f"Message sent to {self.channel_id}: {message}")
64
- return f"Message sent successfully to {self.channel_id}."
65
-
66
- except SlackApiError as e:
67
- logger.error(f"Failed to send message to {self.channel_id}: {e.response['error']}")
68
- return f"Received the error : {e.response['error']}"
69
-
70
- def read_messages(self, limit=10):
71
- """
72
- Reads the latest messages from a Slack channel or conversation.
73
-
74
- :param limit: int: The number of messages to fetch (default is 10)
75
- :return: list: Returns a list of messages with metadata.
76
- """
77
- try:
78
-
79
- client = self._get_client()
80
- logger.info(f"auth test: {client.auth_test()}")
81
- # Fetch conversation history
82
- response = client.conversations_history(
83
- channel=self.channel_id,
84
- limit=limit )
85
-
86
- # Extract messages from the response
87
- messages = self.extract_slack_messages(response.get('messages', []))
88
-
89
- return messages
90
-
91
- except SlackApiError as e:
92
- # Handle errors from the Slack API
93
- logger.error(f"Failed to read message from {self.channel_id}: {e.response['error']}")
94
- return f"Received the error : {e.response['error']}"
95
-
96
- def create_slack_channel(self, channel_name: str, is_private=False):
97
- """
98
- Creates a new Slack channel.
99
-
100
- :param channel_name: str: Desired name for the channel (e.g., "my-new-channel").
101
- :param is_private: bool: Whether to make the channel private (default: False).
102
- :return: dict: Slack API response or error message.
103
- """
104
-
105
- try:
106
- client = self._get_client()
107
- response = client.conversations_create(
108
- name=channel_name,
109
- is_private=is_private
110
- )
111
- channel_id = response["channel"]["id"]
112
- print(f"Channel '{channel_name}' created successfully! Channel ID: {channel_id}")
113
- return {"success": True, "channel_id": channel_id}
114
- except SlackApiError as e:
115
- error_message = e.response.get("error", "unknown_error")
116
- print(f"Failed to create channel '{channel_name}': {error_message}")
117
- return {"success": False, "error": error_message}
118
-
119
- def list_users(self):
120
- """
121
- Lists all users in the Slack workspace.
122
-
123
- :return: list: List of users with their IDs and names.
124
- """
125
-
126
-
127
- try:
128
- client = self._get_client()
129
- print(client.auth_test())
130
- response = client.users_list()
131
- users = response["members"]
132
- return [{"id": user["id"], "name": user["name"]} for user in users if not user["is_bot"]]
133
-
134
- except SlackApiError as e:
135
- logger.error(f"Failed to list users: {e.response['error']}")
136
- return f"Received the error : {e.response['error']}"
137
-
138
- def extract_slack_messages(self, data):
139
- extracted_info = []
140
-
141
- for item in data:
142
- # Extract 'user' and 'text'
143
- user = item.get("user", "Undefined User")
144
- message = item.get("text", "No message")
145
-
146
- # Extract 'app name'
147
- app_name = item.get("bot_profile", {}).get("name", "No App Name")
148
-
149
- # Append to result
150
- extracted_info.append({"user": user, "message": message, "app_name": app_name})
151
-
152
- return extracted_info
153
-
154
-
155
- def get_available_tools(self):
156
- return [
157
- {
158
- "name": "send_message",
159
- "description": self.send_message.__doc__ or "Send a message to a Slack channel, user, or conversation.",
160
- "args_schema": SendMessageModel,
161
- "ref": self.send_message
162
-
163
- },
164
- {
165
- "name": "read_messages",
166
- "description": self.read_messages.__doc__ or "Send a message to a Slack channel, user, or conversation.",
167
- "args_schema": ReadMessagesModel,
168
- "ref": self.read_messages
169
- },
170
- {
171
- "name": "create_channel",
172
- "description": self.create_slack_channel.__doc__ or "Send a message to a Slack channel, user, or conversation.",
173
- "args_schema": CreateChannelModel,
174
- "ref": self.create_slack_channel
175
- },
176
- {
177
- "name": "list_users",
178
- "description": self.list_users.__doc__ or "List all users in the Slack workspace.",
179
- "args_schema": ListUsersModel,
180
- "ref": self.list_users
181
- }
182
-
183
- ]
File without changes
File without changes